:root{color-scheme:dark;--bg:#101419;--ink:#edf2f7;--muted:#a3b0be;--line:#303b48;--accent:#87d9ba;--white:#181f27}
*{box-sizing:border-box}
body{margin:0;font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:235px;flex:none;background:#181f27;border-right:1px solid var(--line);padding:34px 22px;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:7px;font-size:22px;color:var(--ink);letter-spacing:-.6px}
.brand b{font-weight:400;color:var(--muted)}
.brand-mark{background:var(--accent);color:#10271e;border-radius:10px;padding:0 10px;font-weight:700;margin-right:3px}
.nav-label{color:#9aa9b8;font-size:10px;letter-spacing:1.7px;margin-top:55px}
.sidebar nav a{display:block;color:#c4ced8;padding:12px;border-radius:7px}
.sidebar nav a:hover{background:#25352f;text-decoration:none}
.sidebar-bottom{margin-top:auto;padding-top:60px;color:#a1c3b2}
.sidebar-bottom small{display:block;margin-top:5px;color:var(--muted)}
.dot{display:inline-block;width:7px;height:7px;background:#87d9ba;border-radius:50%;margin-right:6px}
.workspace{min-width:0;flex:1}
.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;background:#181f27;border-bottom:1px solid var(--line);padding:0 42px;color:var(--muted);font-size:12px}
.simulation-label{letter-spacing:1.5px;font-size:10px;border:1px solid var(--line);padding:4px 9px;border-radius:4px}
main{max-width:1400px;margin:auto;padding:28px 42px 60px}
.notice{color:#b2d8c6;background:#1b2c25;border:1px solid #345044;padding:10px 14px;border-radius:7px;font-size:12px;margin-bottom:35px}
.page-heading{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:28px}
.eyebrow{font-size:10px;letter-spacing:1.8px;color:#a3b9ad;font-weight:600;margin:0 0 9px}
h1{font-size:32px;line-height:1.2;letter-spacing:-1px;font-weight:600;margin:0 0 12px}
h2{font-size:16px;font-weight:600;margin:0 0 16px}
h3{font-size:13px;font-weight:600;overflow-wrap:anywhere}
.muted{color:var(--muted)}
.button{display:inline-block;border:1px solid var(--accent);background:var(--accent);color:#10271e;padding:10px 16px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.button:hover{text-decoration:none;filter:brightness(1.1)}
.button.secondary{background:#181f27;color:var(--ink);border-color:var(--line)}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px}
.metrics>div{border:1px solid var(--line);background:#181f27;border-radius:10px;padding:20px 23px}
.metrics span{display:block;color:var(--muted);font-size:12px}
.metrics strong{display:block;font-size:31px;font-weight:500;margin-top:8px}
.panel{background:#181f27;border:1px solid var(--line);border-radius:10px;margin-bottom:20px;overflow:hidden}
.padded{padding:24px}
.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;gap:16px}
.panel-heading h2{margin:0}
.panel-heading select{width:auto;margin-right:5px;padding:7px 10px}
.table-scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;text-align:left}
th{font-size:10px;text-transform:uppercase;letter-spacing:1px;font-weight:500;color:var(--muted);background:#141b22}
th,td{padding:16px 22px;border-top:1px solid var(--line)}
td{font-size:12px}
.request-link{display:block;font-weight:600;font-size:13px;color:var(--ink)}
small{font-size:11px;color:var(--muted)}
.badge{display:inline-block;border:1px solid #3b4857;background:#232e39;color:#b8c6d4;padding:4px 9px;border-radius:6px;font-size:11px;white-space:nowrap}
.badge.preparing,.badge.no_change,.badge.approved{background:#20382d;border-color:#3b614a;color:#a5dfb8}
.badge.needs_human{background:#382e1e;border-color:#655132;color:#f0ca88}
.badge.rejected{background:#38252a;border-color:#65404a;color:#f1aeb5}
.empty{text-align:center;padding:55px;color:var(--muted)}
.empty h3{font-size:19px;color:var(--ink)}
.columns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px}
.columns>*{min-width:0}
label{display:block;font-size:12px;font-weight:600;margin-bottom:6px}
input,textarea,select{padding:10px 11px;background:#181f27;border:1px solid #435161;border-radius:6px;color:var(--ink);width:100%;max-width:100%}
textarea{resize:vertical}
input[type=checkbox]{width:auto}
input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid #a4ebd0;outline-offset:2px}
.helptext{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.errorlist{color:#ffaeb6;padding-left:20px}
.flash{background:#332c1e;border:1px solid #665632;padding:12px 16px;border-radius:7px;margin-bottom:20px}
.message-body{background:#111820;border-radius:7px;padding:18px;margin:16px 0;overflow-wrap:anywhere}
.back-link{display:block;font-size:12px;margin-bottom:24px}
.log-entry{border-top:1px solid var(--line);padding:16px 0}
.log-entry:first-of-type{border-top:0}
dl{font-size:12px;margin-bottom:0}
dt{color:var(--muted);margin-top:8px}
dd{margin-left:0;overflow-wrap:anywhere}
.job+.job{border-top:1px solid var(--line);margin-top:18px}
hr{border:0;border-top:1px solid var(--line);margin:24px 0}
.link-button{background:none;border:0;padding:18px 0 0;color:var(--muted);font-size:11px;cursor:pointer}
.login-panel{max-width:450px;margin:60px auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1000px){.sidebar{width:185px;padding:28px 15px}
main{padding:25px}
.topbar{padding:0 25px}
.columns{grid-template-columns:1fr}
.metrics{gap:10px}
.metrics>div{padding:15px}
}
@media(max-width:650px){.app-shell{display:block}
.sidebar{width:100%;padding:18px;border-right:0;border-bottom:1px solid var(--line)}
.sidebar nav{display:flex;flex-wrap:wrap;margin-top:12px}
.sidebar nav a{font-size:12px;padding:7px 12px}
.nav-label,.sidebar-bottom{display:none}
.brand{font-size:20px}
.topbar{height:45px;padding:0 18px}
main{padding:20px 16px}
.notice{margin-bottom:25px}
.page-heading{align-items:flex-start;flex-direction:column}
h1{font-size:28px}
.metrics{grid-template-columns:1fr 1fr}
.panel-heading{align-items:flex-start;flex-direction:column}
.padded{padding:20px}
.login-panel{margin:20px auto}
}


.badge.awaiting_approval,.badge.needs_customer{background:#233145;border-color:#405777;color:#b3d2ff}
input,textarea,select{background:#111820}
input::placeholder,textarea::placeholder{color:#8e9eae;opacity:1}
input[type=checkbox]{accent-color:var(--accent)}
::selection{background:#365d4d;color:#f3fff9}
summary{cursor:pointer}
summary:focus-visible{outline:2px solid #a4ebd0;outline-offset:4px}


.auth-layout main{display:grid;place-items:center;min-height:100vh;min-height:100svh;max-width:none;padding:24px 16px}.auth-layout .login-panel{width:100%;max-width:450px;margin:0}.auth-layout .login-panel .button{width:100%;margin-top:8px}
.site-search{display:flex;align-items:center;gap:12px;margin-bottom:20px;max-width:620px}.site-search input{flex:1;min-width:0}.site-search a{font-size:12px}.site-list-head,.site-list-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:24px;align-items:center;padding:20px 24px}.site-list-head{background:#141b22;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1px}.site-list-row{border-top:1px solid var(--line);color:var(--ink)}.site-list-row:hover{background:#202b35;text-decoration:none}.site-list-name{display:flex;gap:14px;align-items:center;min-width:0}.site-list-name strong,.site-list-name small{display:block;overflow-wrap:anywhere}.site-list-name small{margin-top:3px}.site-monogram{display:grid;place-items:center;width:40px;height:40px;flex:none;background:#253a32;border:1px solid #345044;color:var(--accent);border-radius:10px;font-weight:600;font-size:17px}.site-customer{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.site-open{font-size:12px;color:var(--accent);text-align:right}.site-pagination{display:flex;justify-content:center;gap:24px}.site-sender{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.site-sender>span:first-child{min-width:0}.site-evidence{margin-top:22px}.site-evidence summary{color:var(--muted);font-size:12px}.site-request{display:block;border-top:1px solid var(--line);padding:14px 0;color:var(--ink)}.site-request small{display:block;margin-top:4px}@media(max-width:650px){.site-list-head{display:none}.site-list-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:18px}.site-list-row:first-of-type{border-top:0}.site-customer{grid-column:1;grid-row:2;padding-left:54px}.site-open{grid-column:2;grid-row:1}.site-search{gap:8px}.site-pagination{gap:16px}}

.site-list-row{position:relative}.site-list-name{color:var(--ink)}.site-list-name::after{content:"";position:absolute;inset:0}.site-list-name:focus-visible::after{outline:2px solid var(--accent);outline-offset:-3px}.site-actions{display:flex;align-items:center;gap:18px;position:relative;z-index:1}@media(max-width:650px){.site-actions{grid-column:1 / -1;grid-row:3;padding-left:54px;flex-wrap:wrap;gap:14px}.site-list-name{grid-column:1 / -1}}

.customer-review main{max-width:1120px;padding:40px 24px 64px}.review-brand{display:flex;align-items:center;gap:12px;margin-bottom:56px;font-size:18px}.review-brand>.muted{margin-left:auto;font-size:12px}.review-intro{font-size:17px;color:var(--muted);margin-bottom:30px}.review-intro strong{color:var(--ink)}.review-preview{margin-bottom:24px}.review-comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.review-comparison figure{margin:0;min-width:0}.review-comparison figcaption{color:var(--muted);font-size:12px;margin-bottom:12px}.review-comparison img{display:block;width:100%;height:auto;border-radius:8px;border:1px solid var(--line)}.review-decision{margin-top:32px}.review-decision textarea{width:100%;margin:10px 0 18px;resize:vertical}.review-actions{display:flex;gap:12px;flex-wrap:wrap}.review-actions button{font-size:14px;padding:13px 20px}.review-footer{margin-top:35px;text-align:center;font-size:12px}@media(max-width:650px){.customer-review main{padding:24px 16px}.review-brand{margin-bottom:36px}.review-comparison{grid-template-columns:1fr}.review-actions{flex-direction:column}.review-actions button{width:100%}}

.review-extra{border:1px solid var(--line);border-radius:8px;margin:10px 0;background:var(--white)}.review-extra>summary{padding:14px 20px;color:var(--muted)}.review-extra .review-preview{border:0;margin:0}

.feedback-drop { margin: 1.25rem 0; padding: 1.25rem; border: 2px dashed #465967; border-radius: 12px; }
.feedback-drop.drag-over { border-color: #89d9bb; background: #20352d; }
.feedback-drop input[type=file] { max-width: 100%; }
#feedback-files { padding-left: 1.25rem; overflow-wrap: anywhere; }
#feedback-files li { margin: .75rem 0; }
#upload-error { color: #f5b9a9; }

.ticket-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:18px}
.ticket-action-buttons{display:flex;align-items:center;gap:8px}
.ticket-action-buttons .button{gap:16px}
.ticket-more{position:relative}
.ticket-more>summary{list-style:none;cursor:pointer;padding:10px 14px;letter-spacing:2px}
.ticket-more>summary::-webkit-details-marker{display:none}
.ticket-more-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:5;min-width:175px;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 12px 32px #0005}
.ticket-more-menu button{width:100%;text-align:left;background:none;border:0;border-radius:6px;padding:10px 12px;color:#f1a9a9;cursor:pointer}
.ticket-more-menu button:hover{background:#38262b}
.closure-dialog{width:min(580px,calc(100vw - 32px));max-height:90dvh;padding:0;color:var(--ink);background:var(--white);border:1px solid #3c4958;border-radius:18px;box-shadow:0 24px 100px #0009}
.closure-dialog::backdrop{background:#060a10b8;backdrop-filter:blur(5px)}
.closure-header{display:flex;justify-content:space-between;gap:20px;padding:28px 28px 18px}
.closure-header .eyebrow{font-size:10px;margin:0 0 10px}
.closure-header h2{font-size:26px;letter-spacing:-.6px;margin:0 0 5px}
.closure-header p{margin:0}
.closure-dismiss{align-self:flex-start;background:none;border:0;color:var(--muted);font-size:28px;line-height:1;cursor:pointer;padding:2px 6px}
.closure-outcomes{border:0;margin:0;padding:0 28px 22px;display:grid;gap:8px}
.closure-outcomes legend{font-weight:600;font-size:12px;margin-bottom:10px}
.closure-choice{position:relative;display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:13px 15px;background:#131a22;cursor:pointer;margin:0}
.closure-choice:has(input:checked){border-color:var(--accent);background:#1e322b}
.closure-choice:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.closure-choice input[type=radio]{width:16px;height:16px;margin:0;accent-color:var(--accent);flex:none}
.closure-choice strong{display:block;font-size:14px;font-weight:600}
.closure-choice small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.choice-mark{margin-left:auto;color:var(--accent);opacity:0}
.closure-choice:has(input:checked) .choice-mark{opacity:1}
.closure-note{padding:0 28px 20px}
.closure-note label,.closure-notify label{font-size:12px}
.closure-note label .muted{font-weight:400}
.closure-note textarea{min-height:88px;resize:vertical}
.closure-notify{padding:18px 28px;border-top:1px solid var(--line)}
.closure-notify-label{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0;cursor:pointer}
.closure-notify-label strong{display:block;font-size:14px}
.closure-notify-label small{display:block;color:var(--muted);font-weight:400;margin-top:3px}
.closure-notify input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);margin:0}
#closure-customer-message:not([hidden]){margin-top:18px}
.closure-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 28px;border-top:1px solid var(--line);background:#141b23}
.closure-footer>span{font-size:11px;max-width:140px}
.closure-footer>div{display:flex;gap:8px}
@media(max-width:650px){.ticket-heading-actions{align-items:flex-start}.closure-header{padding:22px 20px 18px}.closure-outcomes{padding:0 20px 20px}.closure-note,.closure-notify{padding-left:20px;padding-right:20px}.closure-footer{padding:16px 20px;flex-wrap:wrap}.closure-footer>span{max-width:none}.closure-footer>div{margin-left:auto}}
.closure-footer{position:sticky;bottom:0;z-index:2;box-shadow:0 -8px 18px #141b2318}
