:root{color-scheme:dark;--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--fs-xl:24px;--fs-2xl:32px;--text-muted:#9fb2c8;--bg:#0c1325;--side:#101a2b;--panel:#152238;--panel2:#1c2b42;--stroke:#2b3850;--text:#f0f6fd;--muted:#92a5bf;--teal:#50dfbe;--teal2:#1ba992;--gold:#d5bd7c;--shadow:0 20px 85px #0007;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.hidden{display:none!important}.app{height:100vh;height:100dvh;min-height:580px;display:flex;overflow:hidden}.sidebar{width:275px;min-width:275px;background:var(--side);border-right:1px solid #ffffff13;display:flex;flex-direction:column;padding:27px 17px 18px}.brand,.login-logo{display:flex;gap:10px;align-items:center;padding:0 9px}.brand strong,.login-logo strong{display:block;font-size:var(--fs-xl);letter-spacing:-1.15px}.brand strong span,.login-logo strong span{color:var(--teal)}.brand small,.login-logo small{display:block;color:var(--text-muted);letter-spacing:.2px;font-size:var(--fs-xs);font-weight:700;margin-top:1px}.new-chat{margin:35px 6px 29px;padding:12px 14px;border-radius:10px;background:#193f40;color:#b4ffeb;border:1px solid #2e6c65;text-align:left;font-weight:600;font-size:var(--fs-sm);transition:.2s}.new-chat:hover{background:#21524e}.side-label,.small-label{font-size:var(--fs-xs);font-weight:700;letter-spacing:.2px;color:var(--text-muted)}.side-label{padding:0 12px;margin-bottom:12px}.manual-nav{display:grid;gap:4px}.guide{display:flex;align-items:center;gap:12px;text-align:left;padding:12px 11px;border:0;background:transparent;color:#94a7c1;border-radius:10px;font-size:var(--fs-sm);font-weight:600}.guide:hover,.side-link:hover{background:#ffffff0b}.guide.active{background:#25364a;color:#eafdf6}.guide-icon{font-size:var(--fs-xl);width:22px;line-height:20px;color:#7faab3}.guide.active .guide-icon{color:var(--teal)}.guide-check{margin-left:auto;display:none;color:var(--teal)}.guide.active .guide-check{display:block}.side-spacer{flex:1}.side-bottom{border-top:1px solid #29384b;padding:24px 11px 0}.edition-row{display:flex;gap:8px;align-items:center;margin-top:9px;font-size:var(--fs-sm);font-weight:700}.status-dot{height:7px;width:7px;border-radius:100%;background:var(--teal);box-shadow:0 0 14px #33c99a88}.side-subtitle{font-size:var(--fs-xs);color:var(--text-muted);margin-top:6px;line-height:1.5}.side-link{color:#b2c2d5;text-align:left;font-size:var(--fs-xs);margin-top:15px;padding:9px 6px;background:transparent;border:none;display:block;width:100%;border-radius:6px}.prototype-label{color:var(--text-muted);letter-spacing:.2px;font-size:var(--fs-xs);font-weight:700;margin-top:20px}.main{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;background:radial-gradient(circle at 65% -30%,#193147 0,transparent 38%),var(--bg)}.topbar{height:67px;border-bottom:1px solid #ffffff10;padding:0 37px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.top-location{font-size:var(--fs-xs);letter-spacing:.2px;color:var(--text-muted);font-weight:700}.top-location b{color:#ccdaec}.private-pill{display:flex;gap:8px;align-items:center;background:#163b36;color:#8ef8d4;border:1px solid #276051;border-radius:30px;padding:7px 12px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.4px}.private-pill span{width:5px;height:5px;border-radius:50%;background:var(--teal)}.mobile-nav{display:none}.chat-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-color:#34445e transparent}.empty-state{max-width:760px;padding:10px 32px 20px;margin:auto;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.big-emblem{height:75px;width:75px;display:grid;place-items:center;border:1px solid #395851;border-radius:22px;background:#193c3c;box-shadow:0 10px 35px #060f2377}.big-emblem img{height:55px;width:55px}.empty-eyebrow{letter-spacing:.2px;color:var(--teal);font-size:var(--fs-xs);font-weight:700;margin-top:25px}.empty-state h1{font-size:clamp(31px,3.7vw,48px);line-height:1.12;letter-spacing:-1.8px;margin:16px 0}.empty-state h1 em{font-style:normal;color:var(--teal)}.empty-state>p{color:#9aaac0;font-size:var(--fs-sm);line-height:1.75;max-width:525px;margin:0 auto}.prompts{display:grid;grid-template-columns:1fr 1fr;text-align:left;gap:10px;margin-top:35px;width:min(620px,100%)}.prompt{border:1px solid #354359;background:#172339;padding:15px 16px;color:#cbd7e8;text-align:left;border-radius:11px;font-size:var(--fs-xs);line-height:1.5;display:flex;gap:6px;justify-content:space-between;transition:.2s}.prompt:hover{border-color:#3a9588;background:#1b2e40}.prompt span{color:var(--teal)}.composer-area{padding:13px max(28px,calc((100% - 805px)/2)) 15px;flex-shrink:0;background:linear-gradient(0deg,#0c1325 85%,#0c132500)}.composer{border:1px solid #33445b;border-radius:16px;background:#18253a;padding:13px 14px 9px;box-shadow:0 8px 30px #0002;max-width:805px}.composer:focus-within{border-color:#3b9b8d}.composer textarea{width:100%;resize:none;outline:0;max-height:145px;min-height:28px;background:transparent;border:0;color:#eef9fd;font-size:var(--fs-sm);line-height:1.5;display:block}.composer textarea::placeholder{color:var(--text-muted)}.composer-actions{display:flex;align-items:center;justify-content:space-between;margin-top:3px}.composer-tip{font-size:var(--fs-xs);color:var(--text-muted)}.action-buttons{display:flex;gap:8px}.mic-btn,.send-btn{height:38px;width:38px;border-radius:11px;border:1px solid #3b4c63;display:grid;place-items:center;color:#d0e6ef;background:#23364c}.mic-btn svg{height:20px;width:20px}.mic-btn.recording{background:#913e4d;border-color:#e38290;animation:pulse 1s infinite}.send-btn{background:var(--teal);border:0;color:#0a2630;font-size:var(--fs-lg)}.send-btn:hover{background:#81efdc}@keyframes pulse{50%{box-shadow:0 0 0 7px #ff526b20}}.disclaimer{text-align:center;color:var(--text-muted);font-size:var(--fs-xs);line-height:1.45;margin:10px auto 0;max-width:680px}.messages{max-width:805px;margin:0 auto;padding:27px 28px 40px;display:grid;gap:22px}.message{display:flex;gap:15px;align-items:start}.message.user{justify-content:flex-end}.bubble-user{background:#26494b;border:1px solid #347770;border-radius:14px 14px 2px 14px;padding:13px 17px;max-width:80%;white-space:pre-wrap;line-height:1.55;font-size:var(--fs-sm)}.bubble-answer{flex:1;min-width:0;max-width:100%}.assistant-head{display:flex;align-items:center;gap:9px;font-size:var(--fs-xs);color:#d7f5ec;font-weight:700;margin-bottom:10px}.assistant-head img{width:23px;height:23px}.answer-text{white-space:pre-wrap;line-height:1.75;color:#d5e1ec;font-size:var(--fs-sm);overflow-wrap:anywhere}.source-list{margin-top:16px;padding-top:12px;border-top:1px solid #324052}.source-label{font-size:var(--fs-xs);letter-spacing:.2px;font-weight:700;color:var(--text-muted);margin-bottom:8px}.source{display:block;width:100%;background:#16253a;text-align:left;border:1px solid #2d4055;color:#c9d9e5;padding:10px 12px;border-radius:8px;margin-bottom:6px}.source>span{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-xs);font-weight:600}.source small{display:block;color:#9bb0c4;font-size:var(--fs-xs);white-space:pre-wrap;line-height:1.6;margin-top:10px;font-weight:500}.source .source-arrow{color:var(--teal)}.message-actions{display:flex;gap:8px;margin-top:10px}.ghost-btn{font-size:var(--fs-xs);background:transparent;color:#86a9ae;border:0;padding:8px 4px;display:flex;gap:6px;align-items:center}.ghost-btn:hover{color:var(--teal)}.waiting .answer-text{color:#9bb3bd}/* Problems: a calm slate panel with an info icon (no red); good news (.ok) is solid teal. */
.flash{background:#22344f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239fc2e6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E") no-repeat 12px 12px/17px 17px;color:#e4eef8;font-size:var(--fs-xs);padding:12px 14px 12px 38px;border:1px solid #46617f;border-radius:9px;margin-bottom:9px}.notice{background:#634a25;color:#ffe5ad;padding:11px 24px;text-align:center;font-size:var(--fs-xs)}.login-screen{min-height:100vh;min-height:100dvh;background:#0c1325;display:grid;place-items:center;position:relative;overflow:hidden;padding:28px}.login-ambient{position:absolute;width:650px;height:650px;border-radius:50%;filter:blur(90px);pointer-events:none;opacity:.18}.login-ambient.a{background:#179d82;left:-260px;top:-230px}.login-ambient.b{background:#2f4679;right:-260px;bottom:-280px}.login-card{border:1px solid #33465b;border-radius:19px;background:#121f33eb;width:min(100%,450px);padding:37px;position:relative;box-shadow:var(--shadow)}.login-logo{padding:0}.login-logo img{height:48px;width:48px}.login-logo strong{font-size:var(--fs-2xl)}.login-rule{border-top:1px solid #344254;margin:32px 0}.login-card .small-label{color:var(--teal)}.login-card h1{font-size:42px;line-height:1.12;letter-spacing:-1.4px;margin:12px 0}.login-card p{color:#9baec4;font-size:var(--fs-sm);line-height:1.8;margin:0 0 29px}.input-label{display:block;color:#bfcedd;font-size:var(--fs-xs);font-weight:700;margin:16px 0 8px}.login-card input,.modal input[type=month]{background:#0e192b;color:#fff;border:1px solid #3b4d64;border-radius:10px;padding:13px 14px;width:100%;outline:0}.login-card input:focus,.modal input:focus{border-color:#4db9a5}.primary-btn{background:var(--teal);color:#0a2b30;border:0;border-radius:10px;padding:12px 16px;font-size:var(--fs-sm);font-weight:700}.primary-btn:hover{background:#81f8dd}.login-submit{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:18px;padding:15px}.login-error{color:#ffb2ad;font-size:var(--fs-xs);margin-top:12px;min-height:16px}.login-bottom{border-top:1px solid #2f4058;padding-top:24px;margin-top:20px;color:var(--text-muted);font-size:var(--fs-xs)}.login-bottom span{color:var(--teal);margin-right:6px}.modal-wrap{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:25px}.modal-backdrop{position:absolute;inset:0;background:#030914dc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal{position:relative;z-index:1;width:min(100%,670px);max-height:min(900px,94vh);max-height:min(900px,94dvh);overflow:auto;background:#142238;border:1px solid #41536b;border-radius:16px;box-shadow:var(--shadow);padding:28px}.modal-heading{display:flex;justify-content:space-between;gap:20px}.label-mini{font-size:var(--fs-xs);color:var(--teal);font-weight:700;letter-spacing:.2px}.modal h2{font-size:var(--fs-xl);margin:8px 0 5px;letter-spacing:-.6px}.modal-heading p{color:#9fb0c6;font-size:var(--fs-xs);line-height:1.6;margin:0}.close{align-self:start;background:#263950;border:0;color:#c9d8e8;padding:9px 13px;border-radius:9px}.admin-active{display:flex;align-items:center;justify-content:space-between;background:#1d3140;border:1px solid #35575b;border-radius:10px;padding:14px 18px;margin:23px 0}.admin-active strong{display:block;font-size:var(--fs-md);margin-top:6px}.badge-soft{border-radius:30px;background:#255d4c;color:#9ef2d1;font-size:var(--fs-xs);font-weight:700;padding:7px 10px}.admin-draft{background:#101c2e;border:1px solid #33445a;border-radius:12px;padding:22px}.field-heading{display:flex;justify-content:space-between;align-items:center}.field-heading h3{font-size:var(--fs-md);margin:0}.step-num{color:var(--text-muted);font-size:var(--fs-xs);font-weight:700;letter-spacing:.2px}.file-drop{padding:24px 18px;border:1px dashed #49617a;background:#17273b;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;border-radius:10px;cursor:pointer}.file-drop:hover{border-color:#5bb7a9}.file-drop-icon{font-size:var(--fs-xl);color:var(--teal)}.file-drop strong{font-size:var(--fs-sm)}.file-drop span:last-child{font-size:var(--fs-xs);color:#90a2b6}.selected-files{display:grid;gap:6px;max-height:240px;overflow:auto;margin-top:14px}.selected-file{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#1b2b40;border:1px solid #32465b;padding:8px 10px;border-radius:7px;font-size:var(--fs-xs);color:#c5d4e5}.selected-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.selected-file select{background:#142238;color:#d8f4ed;border:1px solid #416273;padding:7px;border-radius:6px;max-width:125px;font-size:var(--fs-xs)}.upload-summary{margin-top:13px;font-size:var(--fs-xs);color:#819aaf}.admin-buttons{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:18px}.secondary-btn{padding:11px 14px;background:transparent;border:1px solid #4c5b6e;border-radius:9px;color:#adbccf;font-size:var(--fs-xs)}.secondary-btn:hover{background:#35445d}.upload-progress{margin-top:18px}.progress-text{font-size:var(--fs-xs);color:#a1c9c5;margin-bottom:8px}.progress-track{background:#2b3e52;border-radius:99px;height:8px;overflow:hidden}.progress-track>div{background:var(--teal);height:100%;width:0;transition:width .2s}.draft-status{margin-top:14px;color:#bfe9d6;font-size:var(--fs-xs);line-height:1.6;background:#213c41;border:1px solid #3b6562;padding:11px;border-radius:8px}.admin-foot{color:var(--text-muted);line-height:1.6;font-size:var(--fs-xs);margin:16px 3px 0}
@media(max-width:850px){.sidebar{width:232px;min-width:232px}.composer-area{padding:12px 20px}.topbar{padding:0 20px}.messages{padding:27px 20px}}@media(max-width:690px){.app{min-height:0}.sidebar{position:fixed;z-index:80;top:0;bottom:0;left:0;transform:translateX(-110%);width:278px;box-shadow:10px 0 50px #0009;transition:transform .2s}.sidebar.open{transform:translateX(0)}.mobile-nav{display:block;color:#a5c1ce;background:transparent;border:0;font-size:var(--fs-lg);padding:9px}.topbar{height:55px;padding:0 13px}.top-location{font-size:var(--fs-xs);margin-right:auto;margin-left:8px}.private-pill{font-size:var(--fs-xs)}.empty-state{justify-content:center;padding:15px 20px 40px}.big-emblem{height:64px;width:64px}.big-emblem img{width:47px;height:47px}.empty-state h1{font-size:var(--fs-2xl)}.empty-state>p{font-size:var(--fs-xs)}.empty-eyebrow{font-size:var(--fs-xs)}.prompts{margin-top:25px;gap:8px}.prompt{font-size:var(--fs-xs);padding:12px;min-height:72px}.composer-area{padding:8px 12px max(10px,env(safe-area-inset-bottom))}.disclaimer{font-size:var(--fs-xs);margin:7px auto 0}.composer{padding:11px}.messages{padding:20px 13px}.bubble-user{max-width:85%}.modal-wrap{padding:8px}.modal{padding:19px;max-height:96vh;max-height:96dvh}.admin-draft{padding:14px}.login-card{padding:28px}.login-card h1{font-size:35px}}@media(max-width:380px){.prompts{grid-template-columns:1fr}.prompt{min-height:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.index-diagnostics{margin-top:10px;background:#3b292e;color:#ffe6e6;border:1px solid #945e68;padding:13px;border-radius:9px;font-size:var(--fs-xs);line-height:1.6;overflow-wrap:anywhere}.index-diagnostics strong{font-weight:700}.index-diagnostics ul{margin:8px 0 0;padding-left:20px}.index-diagnostics li{margin:5px 0}.index-diagnostics p{margin:8px 0 0;color:#ffd5d5}
/* v0.2: procedure-level PDF page viewer */
.source-overlay {position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px}
.source-overlay.hidden {display:none}
.source-backdrop {position:absolute;inset:0;background:rgba(2,8,22,.86)}
.source-window {position:relative;display:flex;flex-direction:column;width:min(900px,100%);max-height:94vh;background:#0f1b2f;border:1px solid #34506a;border-radius:16px;box-shadow:0 28px 70px #0009;overflow:hidden}
.source-header {padding:16px 20px;border-bottom:1px solid #31465b;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#111f32}
.source-header strong {display:block;font-size:var(--fs-lg);color:#eef6fa}
.source-header small {display:block;font-size:var(--fs-xs);color:#a0b8c5;margin-top:4px}
.source-close {background:#283c55;color:#e7f3f8;padding:9px 12px;border:0;border-radius:10px;cursor:pointer}
.source-status {padding:10px 20px;color:#9fdfd1;font-size:var(--fs-sm)}
.source-status:empty {display:none}
.source-pages-container {padding:16px;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:20px;overscroll-behavior:contain}
.source-page {max-width:100%;width:fit-content;display:flex;flex-direction:column;gap:8px}
.source-page figcaption {font-size:var(--fs-xs);color:#b8d0dd}
.source-page canvas {display:block;max-width:100%;height:auto;background:#fff;box-shadow:0 5px 24px #0007}
button.source {cursor:pointer;text-align:left}
.source-title-label {font-weight:700;color:#def8f1;display:block}
.source-sub-label {font-size:var(--fs-xs);color:#a9bdc9;display:block;margin-top:5px}
@media(max-width:650px){.source-overlay {padding:0}.source-window{border-radius:0;max-height:100vh;height:100vh}.source-pages-container{padding:10px}.source-header{padding:14px}}

.source>.source-text {display:block;padding-right:22px}
.source {position:relative}
.source>.source-arrow {position:absolute;top:16px;right:13px;color:#46d4b3;font-size:var(--fs-lg)}

/* v0.2.1: private source attachment recovery for previously published editions */
.source-attach {margin:6px 20px 18px;padding:15px 17px;border:1px solid #426a6e;background:#173042;border-radius:10px;color:#d2e8ee;font-size:var(--fs-sm);line-height:1.5}
.source-attach.hidden {display:none}
.source-attach strong{display:block;color:#e9faf6;margin-bottom:5px}
.source-attach p{margin:5px 0 12px;color:#adc7cf}
.source-attach-select{display:inline-block;cursor:pointer;color:#e4fdf7;background:#194c52;border-color:#519a95}
.source-attach-progress{font-size:var(--fs-xs);color:#91d9ce;margin-top:9px;overflow-wrap:anywhere}

/* Fast / detailed answer selector */
.answer-mode-label{display:inline-flex;align-items:center;gap:6px;color:#a9b8d1;font-size:var(--fs-xs);white-space:nowrap}
.answer-mode-label select{background:#1a2d45;color:#e6f4fa;border:1px solid #395273;border-radius:7px;padding:5px 8px;font-size:var(--fs-xs);cursor:pointer}
.answer-mode-label select:focus{outline:2px solid #53d4bf;outline-offset:1px}
@media(max-width:520px){.answer-mode-label{font-size:var(--fs-xs)}.answer-mode-label select{padding:4px}.private-pill{display:none}}

.stream-pending{font-size:var(--fs-xs);color:#a9b8d1;margin:8px 0 2px;font-weight:600;letter-spacing:.03em}
/* v0.3.4 tester ratings and private activity review */
.feedback-widget{border-top:1px solid #2d4055;margin-top:10px;padding-top:10px;font-size:var(--fs-xs)}
.feedback-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.feedback-prompt{color:#9bb2c9;margin-right:8px}
.rate-btn{border:1px solid #35536b;background:#1b3043;border-radius:8px;color:#cfdeeb;padding:6px 12px;font-size:var(--fs-xs)}
.rate-btn:hover,.rate-btn.selected{border-color:#60bea5;color:#c7ffe9}
.feedback-comment{margin-top:12px;padding:12px;border-radius:10px;background:#1b2d40;border:1px solid #35536b}
.feedback-comment-label{display:block;font-weight:700;color:#bfd4e4;margin-bottom:8px}
.feedback-comment textarea{display:block;width:100%;border:1px solid #496178;border-radius:8px;background:#0f1b2e;color:#f0f7ff;padding:10px;font-size:var(--fs-sm);resize:vertical}
.feedback-comment-buttons{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}
.feedback-confirm{color:#8fefd2;padding-top:8px}
.feedback-admin-modal{width:min(1100px,97vw)}
.feedback-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:18px 0}
.feedback-toolbar label{display:grid;gap:5px;font-size:var(--fs-xs);color:#b4c7d8;flex:1;min-width:125px}
.feedback-toolbar input,.feedback-toolbar select{background:#101e32;color:#e4f0fa;border:1px solid #496078;border-radius:8px;padding:9px;min-height:36px;max-width:100%}
.feedback-stats{color:#98e5c7;border:1px solid #355a54;background:#172d37;padding:11px;border-radius:9px;font-size:var(--fs-xs);margin-bottom:12px}
.feedback-admin-layout{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(280px,1.1fr);gap:14px;max-height:55vh}
.feedback-entries,.feedback-details{overflow:auto;border:1px solid #354b64;background:#0f1b2e;border-radius:10px;padding:10px}
.feedback-entry{text-align:left;background:#192c40;color:#e0eef8;border:1px solid #344b62;border-radius:9px;width:100%;padding:12px;margin-bottom:8px}
.feedback-entry:hover{border-color:#5bc1ab}
.feedback-entry-head{display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-xs);align-items:center}
.feedback-entry-head span{color:#849cb2;font-size:var(--fs-xs)}
.feedback-entry p{margin:9px 0;line-height:1.5;font-size:var(--fs-xs);overflow-wrap:anywhere}
.feedback-rating{font-size:var(--fs-xs);color:#9baec7}
.feedback-rating.down{color:#ffb0a9}.feedback-rating.up{color:#a0f4cc}
.feedback-details h3{font-size:var(--fs-lg);margin:7px 0}
.feedback-detail-meta{color:#8ba3b9;font-size:var(--fs-xs)}
.feedback-detail-section{padding:12px 0;border-bottom:1px solid #2c4057}
.feedback-detail-section h4{font-size:var(--fs-xs);color:#9ce0cc;margin:0 0 8px}
.feedback-detail-text{font-size:var(--fs-xs);line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.feedback-empty{color:#98adc5;padding:10px;font-size:var(--fs-xs)}
.login-record-notice{border-left:3px solid #358f80;padding-left:11px!important;color:#a5c7c3!important;font-size:var(--fs-xs)!important}
@media(max-width:700px){.feedback-admin-layout{display:block;max-height:none}.feedback-entries{max-height:37vh}.feedback-details{max-height:45vh;margin-top:12px}.feedback-toolbar label{min-width:110px}}

.active-user{color:#729ab0;font-size:var(--fs-xs);margin-top:12px;padding-left:6px}

/* v0.3.5 dashboard-managed tester accounts */
.tester-admin-modal{width:min(880px,96vw)}
.tester-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;color:#9de4cd;font-size:var(--fs-sm);margin:18px 0}
#accountsGuideOpen{margin-left:auto}
.tester-create-form{background:#14273a;border:1px solid #355067;padding:16px;border-radius:11px;margin-bottom:16px}
.tester-create-form>label{display:block;font-size:var(--fs-xs);font-weight:700;color:#d4e5ec;margin-bottom:10px}
.tester-create-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tester-create-row input{background:#0c1c30;color:#fff;border:1px solid #496078;border-radius:8px;padding:11px 13px;flex:1;min-width:180px}
.tester-muted{color:#9bb0c3;font-size:var(--fs-xs);line-height:1.6;margin:11px 0 0}
.tester-account-list{display:grid;gap:10px;max-height:42vh;overflow:auto;padding-right:4px}
.tester-account{border:1px solid #2f4860;background:#122235;border-radius:11px;padding:13px;display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}
.tester-account-info{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:180px}
.tester-account-info strong{font-size:var(--fs-sm);color:#edf7ff}
.tester-account-info small{display:block;flex-basis:100%;color:#819bb2;font-size:var(--fs-xs)}
.tester-status{font-size:var(--fs-xs);border:1px solid #426b5e;background:#1a3c39;border-radius:50px;padding:3px 8px;color:#a4eed0}
.tester-status.disabled{background:#443329;border-color:#6f5846;color:#ffd49f}
.tester-account-actions{display:flex;gap:6px;flex-wrap:wrap}
.tester-account-actions .secondary-btn{padding:8px 9px;font-size:var(--fs-xs)}
.tester-secret{border:1px solid #4da38a;background:#143c3c;border-radius:11px;padding:15px;margin:14px 0}
.tester-secret strong{display:block;font-size:var(--fs-sm);margin-bottom:9px;color:#d7fff3}
.tester-secret code{display:block;background:#0c252f;padding:13px;border-radius:8px;font-size:var(--fs-md);color:#e7ffed;letter-spacing:.2px;overflow-wrap:anywhere;user-select:all}
.tester-secret-actions{display:flex;gap:8px;margin-top:12px}
@media(max-width:640px){.tester-account{align-items:stretch}.tester-account-actions{width:100%}.tester-account-list{max-height:35vh}}

/* v0.3.6 natural voice and model routing */
.voice-control-label{display:inline-flex;align-items:center;gap:6px;color:#a9b8d1;font-size:var(--fs-xs);white-space:nowrap}
.voice-control-label select{border-radius:7px;background:#1a2d45;color:#e6f4fa;border:1px solid #395273;padding:5px 7px;font-size:var(--fs-xs)}
.voice-control-label select:focus{outline:2px solid #53d4bf;outline-offset:1px}
@media(max-width:1000px){.topbar{gap:9px;padding-left:15px;padding-right:15px}.top-location{letter-spacing:.2px}.private-pill{display:none}}
@media(max-width:600px){.topbar{flex-wrap:wrap;justify-content:flex-start;height:auto;min-height:64px;padding-top:7px;padding-bottom:7px;gap:7px}.top-location{flex:1;min-width:110px}.answer-mode-label{margin-left:auto}.voice-control-label{font-size:var(--fs-xs)}}
@media(max-width:390px){.voice-control-label select,.answer-mode-label select{font-size:var(--fs-xs)}}

.natural-audio-player{display:block;max-width:100%;width:310px;height:40px;margin-top:7px;accent-color:#62cfb7}

/* v0.3.7 — Keep the directly governing manual procedure visibly first. */
.source>.citation-priority{display:inline-flex;align-items:center;margin-bottom:7px;padding:3px 9px;border:1px solid #4f6479;border-radius:999px;color:#acc3d6;font-size:var(--fs-xs);font-weight:700;line-height:1.35;letter-spacing:.35px}
.citation-priority.primary{background:#1e493f;border-color:#3d9b81;color:#b8fce1}
.citation-priority.supporting{background:#20364f;border-color:#43618a;color:#cedffc}
.citation-priority.related{background:#29323f;border-color:#536072;color:#aebfd1}
.source.source-primary{border-color:#368c79;background:#16332f}
.source.source-primary:hover{border-color:#52bd9f}

/* Upload diagnostics must remain visible above the chat area when the admin dialog is open. */
.admin-alert{position:sticky;top:0;z-index:5;margin:15px 0 0;padding:12px 14px 12px 38px;border:1px solid #46617f;border-radius:9px;color:#e4eef8;background:#22344f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239fc2e6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E") no-repeat 12px 13px/17px 17px;font-size:var(--fs-xs);line-height:1.6;overflow-wrap:anywhere}
.admin-alert[data-kind="ok"]{border-color:#347e67;background:#20473f;color:#dbfff2;padding-left:14px}

/* v0.3.8 Admin-only live three-model comparison */
#compareOpen.active{background:#1d433e;color:#baffeb}
.comparison-view{flex:1;min-height:0;overflow:auto;padding:28px clamp(14px,2.5vw,38px) 26px;scrollbar-color:#364e63 transparent}
.comparison-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.comparison-heading h1{font-size:var(--fs-2xl);letter-spacing:-.6px;margin:7px 0 5px}
.comparison-heading p{font-size:var(--fs-sm);line-height:1.6;color:#92aac3;margin:0}
.comparison-form{background:#14263b;border:1px solid #344a60;border-radius:13px;padding:17px;display:grid;gap:10px;margin-bottom:14px}
.comparison-form>label{font-size:var(--fs-xs);font-weight:700;color:#d7f3e9}
.comparison-form textarea{width:100%;border:1px solid #446079;outline:0;border-radius:9px;background:#0d1d30;color:#e4f2fa;padding:12px;resize:vertical;min-height:74px;line-height:1.6;font-size:var(--fs-sm)}
.comparison-form textarea:focus,.comparison-controls select:focus{border-color:#50dfbe;outline:1px solid #50dfbe}
.comparison-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.comparison-controls label{display:grid;gap:6px;color:#9aafc2;font-size:var(--fs-xs);flex:1;min-width:175px}
.comparison-controls select{border-radius:8px;background:#0d1d30;color:#e4f2fa;border:1px solid #446079;padding:11px 9px;width:100%;min-height:40px;font-size:var(--fs-xs)}
.comparison-controls button{min-height:40px;white-space:nowrap}
.comparison-summary{color:#a4e7d3;font-size:var(--fs-xs);line-height:1.5;min-height:38px;border:1px solid #3a665e;background:#17312f;border-radius:9px;padding:10px 12px;margin:12px 0 15px}
.comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:start}
.comparison-panel{min-width:0;background:#112035;border:1px solid #30465e;border-radius:13px;overflow:hidden;transition:border-color .2s}
.comparison-panel.compare-completed{border-color:#419879}.comparison-panel.compare-failed{border-color:#985568}
.comparison-panel>header{padding:15px;border-bottom:1px solid #2c4057;min-height:116px}
.comparison-model-tag{color:#87a2b8;font-weight:700;font-size:var(--fs-xs);letter-spacing:.9px}
.comparison-panel h2{font-size:var(--fs-lg);letter-spacing:-.25px;margin:7px 0}
.comparison-status{font-size:var(--fs-xs);color:#93dcc6}
.comparison-panel.compare-failed .comparison-status{color:#ffbfc1}
.comparison-metrics{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #2c4057}
.comparison-metrics div{padding:10px 8px;color:#879eb4;font-size:var(--fs-xs);text-align:center;border-right:1px solid #2c4057}
.comparison-metrics div:last-child{border:0}
.comparison-metrics strong{display:block;margin-top:5px;color:#ebf6ff;font-size:var(--fs-lg);letter-spacing:-.4px;font-variant-numeric:tabular-nums}
.comparison-answer{font-size:var(--fs-xs);line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;min-height:190px;color:#d5e3ef}
.comparison-citations{border-top:1px solid #2c4057;margin:0 12px;padding:12px 0}
.comparison-citations:empty{display:none}
.comparison-empty-sources{font-size:var(--fs-xs);color:#8daac0}
.compare-source{display:block;text-align:left;width:100%;padding:9px;margin:6px 0;border:1px solid #37526a;background:#182f45;border-radius:8px;color:#d6edee}
.compare-source:hover{border-color:#5dd0ad}
.compare-source strong{display:block;font-size:var(--fs-xs);line-height:1.45;margin:3px 0}
.compare-source small{display:block;color:#9db9ca;font-size:var(--fs-xs)}
.compare-source-priority{font-size:var(--fs-xs);font-weight:700;letter-spacing:.15px;color:#b4d0e7}
.compare-source-priority.primary{color:#7ceabf}
.comparison-panel footer{padding:10px 14px;color:var(--text-muted);font-size:var(--fs-xs)}
.comparison-disclaimer{font-size:var(--fs-xs);line-height:1.6;color:#829bb4;margin:18px 0}
@media(max-width:1190px){.comparison-grid{grid-template-columns:repeat(3,minmax(290px,1fr));overflow-x:auto;padding-bottom:6px}.comparison-answer{font-size:var(--fs-xs)}}
@media(max-width:690px){.comparison-view{padding:14px 12px}.comparison-heading h1{font-size:var(--fs-xl)}.comparison-heading p{font-size:var(--fs-xs)}.comparison-grid{grid-template-columns:1fr;overflow-x:visible}.comparison-panel>header{min-height:0}.comparison-controls label{min-width:130px}.comparison-controls button{flex:1}}

/* v0.3.9 Safe markdown rendering in both regular and side-by-side answers. */
.answer-text,.comparison-answer{white-space:normal;overflow-wrap:anywhere}
.answer-text p,.comparison-answer p{margin:0 0 .78em;white-space:pre-line}
.answer-text p:last-child,.comparison-answer p:last-child{margin-bottom:0}
.answer-text h1,.answer-text h2,.answer-text h3,.answer-text h4,
.comparison-answer h1,.comparison-answer h2,.comparison-answer h3,.comparison-answer h4{font-size:1.08em;line-height:1.4;color:#eafff9;letter-spacing:0;margin:1em 0 .42em;font-weight:700}
.answer-text h1:first-child,.answer-text h2:first-child,.answer-text h3:first-child,
.comparison-answer h1:first-child,.comparison-answer h2:first-child,.comparison-answer h3:first-child{margin-top:0}
.answer-text strong,.comparison-answer strong{color:#f7fffd;font-weight:700}
.answer-text ul,.answer-text ol,.comparison-answer ul,.comparison-answer ol{margin:.35em 0 1em;padding-left:1.55em}
.answer-text li,.comparison-answer li{padding-left:.15em;margin:.27em 0;line-height:1.65}
.answer-text li::marker,.comparison-answer li::marker{color:#68d9c1}
.answer-text code,.comparison-answer code{background:#23374a;padding:1px 4px;border-radius:4px;font-size:.93em}
.answer-code{overflow-wrap:anywhere;white-space:pre-wrap;background:#142438;border:1px solid #324960;border-radius:8px;padding:11px;margin:10px 0}

/* Format AI answer text in the administrator feedback review as well. */
.feedback-detail-text.markdown{white-space:normal}
.feedback-detail-text p{margin:0 0 8px;white-space:pre-line}
.feedback-detail-text h1,.feedback-detail-text h2,.feedback-detail-text h3,.feedback-detail-text h4{font-size:1.08em;color:#eafff9;margin:12px 0 6px;font-weight:700}
.feedback-detail-text li{margin:4px 0}
.feedback-detail-text ul,.feedback-detail-text ol{padding-left:22px;margin:6px 0 10px}
.feedback-detail-text strong{font-weight:700;color:#f7fffd}

/* v0.4.0 four-provider model benchmark; horizontal scroll preserves readable columns */
.comparison-grid.comparison-four{grid-template-columns:repeat(4,minmax(285px,1fr));overflow-x:auto;padding-bottom:10px}
@media(max-width:1320px){.comparison-grid.comparison-four{grid-template-columns:repeat(4,minmax(315px,1fr))}}
@media(max-width:690px){.comparison-grid.comparison-four{grid-template-columns:1fr;overflow-x:visible}}

/* v0.5 settings sheet, tap-to-talk voice input and mobile web app polish */
:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.message{scroll-margin-top:14px}.message:focus{outline:none}
.topbar{justify-content:flex-start;gap:12px}
.private-pill{margin-left:auto}
.settings-btn{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 13px;border-radius:10px;border:1px solid #395273;background:#1a2d45;color:#d6e6f3;font-size:var(--fs-xs);font-weight:600;flex-shrink:0}
.settings-btn svg{width:18px;height:18px}
.settings-btn:hover{border-color:#53d4bf;color:#fff}
.settings-modal{width:min(100%,480px)}
.settings-group{margin-top:22px}
.settings-group h3{font-size:var(--fs-xs);letter-spacing:.2px;color:var(--text-muted);margin:0 0 8px}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;margin-bottom:8px;border:1px solid #2f4258;border-radius:11px;background:#101c2e;cursor:pointer}
.settings-row strong{display:block;font-size:var(--fs-sm);color:#e9f4fb}
.settings-row small{display:block;margin-top:3px;font-size:var(--fs-xs);line-height:1.45;color:var(--text-muted)}
.settings-row select{min-height:40px;padding:8px 10px;border:1px solid #395273;border-radius:8px;background:#1a2d45;color:#e6f4fa;font-size:var(--fs-sm);cursor:pointer}
.switch{appearance:none;-webkit-appearance:none;position:relative;flex-shrink:0;width:48px;height:28px;margin:0;border-radius:99px;background:#33475f;cursor:pointer;transition:background .2s}
.switch::after{content:'';position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#e8f2f8;transition:transform .2s}
.switch:checked{background:var(--teal2)}.switch:checked::after{transform:translateX(20px)}
.empty-state>.voice-hint{display:flex;gap:10px;align-items:flex-start;max-width:470px;margin:22px auto 0;padding:12px 14px;border:1px solid #2f6b62;border-radius:12px;background:#16302f;color:#cfeee6;font-size:var(--fs-sm);line-height:1.55;text-align:left}
.voice-hint b{color:#effffa}
/* Composer: the microphone is the main control; typing stays available. */
.composer{display:flex;flex-direction:column;gap:8px;padding:12px}
.composer.listening{border-color:#5aa9ff;background:#14213a}
.composer.listening textarea{display:none}
.composer-actions{gap:10px;margin-top:0}
.mic-btn{display:inline-flex;align-items:center;gap:9px;width:auto;height:48px;padding:0 20px 0 15px;border:0;border-radius:999px;background:var(--teal);color:#08262c;font-size:var(--fs-sm);font-weight:700;box-shadow:0 6px 22px #50dfbe33;flex-shrink:0;transition:background .2s}
.mic-btn:hover{background:#81efdc}
.mic-btn svg{width:22px;height:22px}
.mic-btn .stop-icon{display:none}
.mic-btn.recording{background:#5aa9ff;color:#fff;border:0;animation:mic-pulse 1.4s infinite}
.mic-btn.recording:hover{background:#74b8ff}
.mic-btn.recording .mic-icon{display:none}.mic-btn.recording .stop-icon{display:block}
.mic-btn.busy,.mic-btn.busy:disabled{background:#2a3e56;color:#cfe3f1;box-shadow:none;opacity:1;cursor:progress}
@keyframes mic-pulse{0%{box-shadow:0 0 0 0 #5aa9ff99}70%{box-shadow:0 0 0 14px #5aa9ff00}100%{box-shadow:0 0 0 0 #5aa9ff00}}
.composer-tip{flex:1;min-width:0;font-size:var(--fs-xs);line-height:1.35;color:#8ea4be}
.send-btn{width:48px;height:48px;margin-left:auto;border-radius:14px;flex-shrink:0}
.send-btn.ready{animation:send-ready 1.1s ease 3}
@keyframes send-ready{50%{box-shadow:0 0 0 7px #50dfbe40}}
.voice-live{display:flex;align-items:center;gap:12px;min-height:58px;padding:2px}
.voice-live canvas{flex:1;min-width:0;height:50px}
.voice-live-text{display:grid;gap:3px;min-width:118px;text-align:right}
.voice-live-text strong{font-size:var(--fs-sm);color:#d6e9ff}
.voice-live-text strong:empty{display:none}
.voice-live-text span{font-size:var(--fs-xs);color:#a9bfd0;font-variant-numeric:tabular-nums}
.message-actions{flex-wrap:wrap}
.sidebar-scrim{display:none}
@media(max-width:1000px){.private-pill{display:none}.settings-btn{margin-left:auto}}
@media(max-width:690px){
  .sidebar-scrim{display:block;position:fixed;inset:0;z-index:79;background:#030914b0;opacity:0;pointer-events:none;transition:opacity .2s}
  .sidebar-scrim.show{opacity:1;pointer-events:auto}
  .side-link,.guide{min-height:44px}
  .topbar{flex-wrap:nowrap;height:56px;min-height:0;padding:0 10px}
  .mobile-nav{min-width:44px;min-height:44px}
  .settings-btn{min-width:44px;min-height:44px;justify-content:center;padding:8px}
  .composer textarea,.feedback-comment textarea,.settings-row select{font-size:var(--fs-md)}
  .mic-btn{flex:1;justify-content:center;height:54px;font-size:var(--fs-md)}
  .send-btn{width:54px;height:54px}
  .composer-tip{display:none}
  .composer.listening .composer-tip{display:none}
  .answer-text{font-size:var(--fs-md);line-height:1.7}
  .bubble-user{font-size:var(--fs-sm)}
  .ghost-btn{min-height:44px;padding:10px 12px;font-size:var(--fs-xs)}
  .rate-btn{min-height:40px;padding:8px 14px}
  .source{padding:12px}
  .empty-state h1{font-size:var(--fs-2xl)}
  .empty-state>.voice-hint{font-size:var(--fs-sm)}
  .settings-wrap{place-items:end stretch;padding:0}
  .settings-modal{width:100%;max-height:88vh;max-height:88dvh;border-radius:18px 18px 0 0;padding-bottom:max(20px,env(safe-area-inset-bottom))}
}
@media(max-width:520px){.settings-btn span{display:none}}
@media(max-width:480px){.prompts{grid-template-columns:1fr}.prompt{min-height:0}.voice-live-text{min-width:96px}}
/* Send stays secondary until there is a question to send, so the microphone reads as the main action. */
.send-btn{background:#23364c;color:#9fb6c9;border:1px solid #3b4c63}
.composer.has-text .send-btn,.send-btn.ready{background:var(--teal);color:#0a2630;border-color:transparent}

/* Title/rank question shown in the chat before a tester's first question */
.rank-prompt .bubble-answer{background:#14263b;border:1px solid #2f6b62;border-radius:14px;padding:16px}
.rank-question{margin:0 0 6px;font-size:var(--fs-md);font-weight:700;color:#effffa}
.rank-note{margin:0 0 14px;font-size:var(--fs-sm);line-height:1.55;color:#9fb6c9}
.rank-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.rank-option{min-height:48px;padding:10px 14px;border:1px solid #3b5a70;border-radius:11px;background:#1b3043;color:#e2f2f8;font-size:var(--fs-sm);font-weight:600;text-align:left}
.rank-option:hover{border-color:var(--teal);background:#1d3a45}
@media(max-width:480px){.rank-options{grid-template-columns:1fr}}

/* Admin: per-procedure citation PDFs */
.fast-citations{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:#14273a;border:1px solid #355067;border-radius:10px;padding:14px 18px;margin:-10px 0 23px}
.fast-citations strong{display:block;font-size:var(--fs-md);margin-top:6px}
.fast-citations small{display:block;margin-top:6px;color:var(--text-muted);font-size:var(--fs-xs);line-height:1.5;max-width:420px;overflow-wrap:anywhere}
.fast-citation-buttons{display:flex;gap:8px;flex-wrap:wrap}

/* Follow-up buttons under the latest answer, and Send turning into Stop while answering */
.follow-ups{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.follow-up{min-height:40px;padding:8px 14px;border:1px solid #3a6b67;border-radius:999px;background:#163033;color:#c9f5ea;font-size:var(--fs-sm);font-weight:600;text-align:left}
.follow-up:hover{background:#1d4043;border-color:var(--teal)}
.send-btn.stop,.composer.has-text .send-btn.stop{background:#e0485f;color:#fff;border-color:transparent;font-size:var(--fs-md)}
@media(max-width:690px){.follow-up{min-height:44px;font-size:var(--fs-sm)}}

/* Sign-in: keep me signed in, Face ID / passkey */
.remember-row{display:flex;align-items:center;gap:10px;margin-top:14px;color:#bfcedd;font-size:var(--fs-sm);cursor:pointer}
.remember-row input{width:20px;height:20px;accent-color:var(--teal);flex-shrink:0}
.passkey-login{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;min-height:48px;font-size:var(--fs-sm);color:#d8f4ed;border-color:#3b6f69}
.passkey-row .secondary-btn{flex-shrink:0;min-height:40px}
.passkey-list{display:grid;gap:6px}
.passkey-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border:1px solid #2f4258;border-radius:9px;color:#b9cadb;font-size:var(--fs-xs)}

/* Admin: Usage & costs */
.costs-modal{width:min(980px,97vw)}
.costs-toolbar{display:flex;align-items:end;gap:10px;margin:18px 0}
.costs-toolbar label{display:grid;gap:5px;font-size:var(--fs-xs);color:#b4c7d8}
.costs-toolbar select{background:#101e32;color:#e4f0fa;border:1px solid #496078;border-radius:8px;padding:9px;min-height:38px}
.costs-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:14px 0}
.costs-card{background:#14273a;border:1px solid #355067;border-radius:10px;padding:12px 14px}
.costs-card span{display:block;font-size:var(--fs-xs);color:var(--text-muted)}
.costs-card strong{display:block;font-size:var(--fs-xl);margin-top:6px;font-variant-numeric:tabular-nums}
.costs-heading{font-size:var(--fs-sm);color:#9ce0cc;margin:20px 0 8px}
.costs-daily{display:flex;align-items:flex-end;gap:3px;height:110px;padding:8px;background:#0f1b2e;border:1px solid #354b64;border-radius:10px}
.costs-bar{flex:1;height:100%;display:flex;align-items:flex-end;min-width:3px}
.costs-bar span{display:block;width:100%;background:var(--teal);border-radius:3px 3px 0 0}
.costs-table{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}
.costs-table th,.costs-table td{text-align:left;padding:8px 10px;border-bottom:1px solid #2c4057}
.costs-table th{color:var(--text-muted);font-weight:700}
.costs-table td.num,.costs-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.costs-empty{color:#98adc5}
.costs-prices{display:grid;gap:8px}
.costs-price-row{display:grid;grid-template-columns:minmax(120px,1.4fr) repeat(3,minmax(70px,1fr));gap:8px;align-items:center}
.costs-price-head{margin-top:14px;padding:9px 12px;border-radius:8px;background:#16253a;border:1px solid #2f435a;font-size:var(--fs-xs);font-weight:700;color:#cfe3f1}
.costs-price-note{margin-bottom:6px}
.costs-price-cell{display:grid;gap:4px}
.costs-price-cell span{font-size:var(--fs-xs);font-weight:700;letter-spacing:.6px;color:#8fb3cc}
.costs-price-model{font-size:var(--fs-xs);color:#e4f0fa;overflow-wrap:anywhere}
.costs-prices input{background:#101e32;color:#e4f0fa;border:1px solid #496078;border-radius:8px;padding:8px;min-height:36px;width:100%}
.costs-price-other{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:8px}
.costs-price-other label{display:grid;gap:5px;font-size:var(--fs-xs);color:#b4c7d8}
.costs-prices .primary-btn{justify-self:start;margin-top:6px}
@media(max-width:600px){.costs-price-row{grid-template-columns:1fr 1fr 1fr;padding-top:10px;border-top:1px solid #23364b}.costs-price-model{grid-column:1/-1;font-weight:700}}

/* "Current as of" date: admin fields (date inputs must not overflow on iPhone) and the note shown to officers */
.modal input[type=date]{display:block;width:100%;max-width:100%;min-width:0;-webkit-appearance:none;appearance:none;background:#0e192b;color:#fff;border:1px solid #3b4d64;border-radius:10px;padding:13px 14px;min-height:48px;text-align:left;font-size:var(--fs-md);outline:0}
.modal input[type=date]::-webkit-date-and-time-value{text-align:left}
.field-help{margin:8px 0 0;color:var(--text-muted);font-size:var(--fs-xs);line-height:1.5}
.as-of-editor{margin:-10px 0 23px;padding:14px 18px;background:#14273a;border:1px solid #355067;border-radius:10px}
.as-of-editor .input-label{margin-top:0}
.as-of-row{display:flex;gap:8px;align-items:stretch}
.as-of-row input{flex:1}
.as-of-row .secondary-btn{flex-shrink:0}
.empty-state>.as-of-note{margin:14px auto 0;color:#8ef8d4;font-size:var(--fs-sm);font-weight:600}

/* Test answers: per-panel Sol settings */
.panel-settings{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 4px}
.panel-settings label{display:grid;gap:4px;flex:1;min-width:110px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.4px;color:#87a2b8;}
.panel-settings select{min-height:38px;padding:7px 8px;border:1px solid #446079;border-radius:8px;background:#0d1d30;color:#e4f2fa;font-size:var(--fs-sm);text-transform:none;letter-spacing:0;font-weight:500}
@media(max-width:690px){.panel-settings select{font-size:var(--fs-md);min-height:44px}}

/* Admin: Saved answers */
.saved-list{display:grid;gap:8px;max-height:50vh;overflow:auto}
.saved-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #2f4860;background:#122235;border-radius:10px}
.saved-info{min-width:0}
.saved-info strong{display:block;font-size:var(--fs-sm);color:#edf7ff;overflow-wrap:anywhere}
.saved-info small{display:block;margin-top:4px;font-size:var(--fs-xs);color:var(--text-muted)}
.saved-item .secondary-btn{flex-shrink:0}

/* Saved answers: which questions reused an answer, with similarity scores */
.feedback-match{display:block;margin:0 0 6px;font-size:var(--fs-xs);color:#8ef8d4;overflow-wrap:anywhere}
.saved-matches-label{margin-top:8px;font-size:var(--fs-xs);color:#9ce0cc;font-weight:700}
.saved-matches{margin:4px 0 0;padding-left:18px;font-size:var(--fs-xs);color:#b9cadb;line-height:1.6}
.saved-matches li{overflow-wrap:anywhere}

/* Phones: the side menu fits on one screen (all admin links and Sign out), and can still scroll on very small phones. */
@media(max-width:690px){
  .sidebar{padding:14px 12px max(12px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .brand img{width:34px;height:34px}
  .brand strong{font-size:var(--fs-xl)}
  .new-chat{margin:14px 4px 12px;padding:10px 12px}
  .side-label{margin-bottom:4px}
  .manual-nav{gap:2px}
  .guide{min-height:40px;padding:7px 10px}
  .side-spacer{flex:1 0 6px}
  .side-bottom{padding:10px 8px 0}
  .edition-row{margin-top:4px}
  .side-subtitle{margin-top:2px}
  .side-link{min-height:38px;margin-top:2px;padding:8px 6px;font-size:var(--fs-sm)}
  .active-user{margin-top:6px}
  .prototype-label{margin-top:6px}
  /* Admin links in two columns; menu details and Sign out stay full width. */
  .side-bottom{display:grid;grid-template-columns:1fr 1fr;column-gap:6px;align-items:stretch}
  .side-bottom>*{grid-column:1/-1}
  .side-bottom>.side-link:not(#logout){grid-column:auto;display:flex;align-items:center;gap:6px;line-height:1.25;font-size:var(--fs-xs);padding:7px 6px;background:#ffffff07}
}

/* Usage & costs: daily cost cap */
.cap-editor{margin:14px 0 0}
.cap-editor input[type=number]{flex:1;min-width:0;background:#0e192b;color:#fff;border:1px solid #3b4d64;border-radius:10px;padding:11px 12px;font-size:var(--fs-md)}
#capStatus.cap-reached{color:#ffb0a9;font-weight:700}

/* Waiting for an answer: what is happening, a first-text timer, and a subtle animation */
.answer-progress{display:flex;align-items:center;gap:9px;margin:2px 0 10px;font-size:var(--fs-sm);color:#a9c9cf}
.progress-stage{flex:1;min-width:0}
.progress-timer{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:var(--fs-xs)}
.progress-pulse{width:9px;height:9px;border-radius:50%;background:var(--teal);flex-shrink:0;animation:progress-pulse 1.2s ease-in-out infinite}
.answer-progress.done .progress-pulse{animation:none;opacity:.5}
.answer-progress.done{color:var(--text-muted);font-size:var(--fs-xs)}
@keyframes progress-pulse{0%,100%{transform:scale(.75);opacity:.55}50%{transform:scale(1.15);opacity:1}}
.answer-skeleton{display:grid;gap:9px;margin-top:4px}
.answer-skeleton i{display:block;height:11px;border-radius:6px;background:linear-gradient(90deg,#1b2b40 0%,#26405a 45%,#1b2b40 90%);background-size:220% 100%;animation:answer-shimmer 1.6s linear infinite}
.answer-skeleton i:nth-child(1){width:92%}.answer-skeleton i:nth-child(2){width:78%}.answer-skeleton i:nth-child(3){width:58%}
@keyframes answer-shimmer{0%{background-position:120% 0}100%{background-position:-120% 0}}
.answer-timing{margin-left:auto;font-weight:500;font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.progress-pulse,.answer-skeleton i{animation:none}}

/* Admin: Example questions */
.examples-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:16px 0 4px}
.examples-toolbar label{display:grid;gap:5px;font-size:var(--fs-xs);color:#b4c7d8}
.examples-toolbar .examples-topic{flex:1;min-width:180px}
.examples-toolbar input,.examples-add input,.examples-search{background:#101e32;color:#e4f0fa;border:1px solid #496078;border-radius:8px;padding:9px;min-height:40px;font-size:var(--fs-sm)}
.examples-toolbar input[type=number]{width:80px}
.examples-add{display:grid;grid-template-columns:2fr 1fr 1.4fr auto;gap:8px;align-items:center;margin:10px 0;padding:12px;border:1px solid #355067;border-radius:10px;background:#14273a}
.examples-add strong{grid-column:1/-1;font-size:var(--fs-xs);color:#d4e5ec}
.examples-search{width:100%;margin-bottom:10px}
.examples-bulk{display:flex;gap:6px;flex-wrap:wrap}
.example-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;border:1px solid #2f4860;background:#122235;border-radius:10px;flex-wrap:wrap}
.example-item.draft{border-style:dashed;border-color:#4a6a86}
.example-status{display:inline-block;font-size:var(--fs-xs);font-weight:700;letter-spacing:.4px;padding:2px 8px;border-radius:999px;margin-bottom:6px}
.example-status.live{background:#1e493f;color:#b8fce1}.example-status.draft{background:#3a3424;color:#ffe2a8}
.example-actions{display:flex;gap:6px;flex-wrap:wrap}
.example-actions button{padding:7px 10px;font-size:var(--fs-xs)}
@media(max-width:690px){.examples-toolbar input,.examples-add input,.examples-search{font-size:var(--fs-md)}.examples-add{grid-template-columns:1fr}}
.example-status.numbered{background:#4a2630;color:#ffc4cf;margin-left:6px}

/* Start screen: 3 example questions, written out in full, one per row */
#examplePrompts{grid-template-columns:1fr;width:min(560px,100%)}
#examplePrompts .prompt{font-size:var(--fs-sm);min-height:0;align-items:center;padding:13px 16px}
#examplePrompts .prompt span{flex:none}
.examples-tabs{display:flex;gap:4px;margin:4px 0 10px;padding:3px;border:1px solid #355067;border-radius:10px;background:#101e32}
.examples-tabs button{flex:1;padding:8px;border-radius:7px;background:none;border:0;color:#b4c7d8;font-size:var(--fs-sm);font-weight:700}
.examples-tabs button[aria-pressed=true]{background:#1e493f;color:#b8fce1}
/* Where the manual comes from (public, nyc.gov) */
.source-note{margin:8px auto 0;color:#8ea3b8;font-size:var(--fs-xs)}
.source-note a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}
.empty-state>.source-note{margin-top:10px;font-size:var(--fs-xs);line-height:1.4}
/* Citation viewer: the pages are the city's published manual; FinestIQ is independent */
.source-origin{margin:0;padding:8px 20px;font-size:var(--fs-xs);line-height:1.45;color:#a0b8c5;background:#0f1c2d;border-bottom:1px solid #31465b}
.source-origin strong{color:#d4e5ec;font-weight:600}
.source-origin a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}
.source-note .independent{display:inline-block;margin-top:4px;font-size:var(--fs-xs);color:#7f93a7}
@media(max-width:650px){.source-origin{padding:8px 14px}}
/* Good-news messages: solid teal, like the Send button (errors keep the red style) */
.flash.ok{background:#5fe0c2;color:#062a24;border-color:#5fe0c2;font-weight:600;padding-left:14px}
/* Transcribing: bouncing bars in place of the waveform, and a gently pulsing mic button */
.transcribe-bars{display:none;flex:1;min-width:0;height:50px;align-items:center;justify-content:center;gap:6px}
.voice-live.transcribing canvas{display:none}
.voice-live.transcribing .transcribe-bars{display:flex}
.transcribe-bars i{width:5px;height:12px;border-radius:3px;background:#5fe0c2;animation:transcribeBar 1.1s ease-in-out infinite}
.transcribe-bars i:nth-child(2){animation-delay:.1s}.transcribe-bars i:nth-child(3){animation-delay:.2s}.transcribe-bars i:nth-child(4){animation-delay:.3s}
.transcribe-bars i:nth-child(5){animation-delay:.4s}.transcribe-bars i:nth-child(6){animation-delay:.5s}.transcribe-bars i:nth-child(7){animation-delay:.6s}
.transcribe-bars i:nth-child(8){animation-delay:.7s}.transcribe-bars i:nth-child(9){animation-delay:.8s}
@keyframes transcribeBar{0%,100%{height:10px;opacity:.45}50%{height:38px;opacity:1}}
.voice-live.transcribing .voice-live-text strong{color:#8ef8d4}
.mic-btn.busy{animation:micBusy 1.6s ease-in-out infinite}
@keyframes micBusy{0%,100%{background:#2a3e56}50%{background:#33576a}}
@media(prefers-reduced-motion:reduce){.transcribe-bars i,.mic-btn.busy{animation:none}.transcribe-bars i{height:20px;opacity:.8}}
.composer.listening.transcribing{border-color:#2f8f7c}
/* Administrator voice test */
.voice-test{display:grid;gap:6px;margin:4px 0 8px}
.voice-option{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #2f4860;border-radius:10px;background:#122235}
.voice-option.chosen{border-color:#2f8f7c;background:#14322e}
.voice-option .voice-name{flex:1;display:grid;gap:2px;min-width:0}
.voice-option .voice-name small{font-size:var(--fs-xs);color:#a0b8c5}
.voice-option button{padding:7px 11px;font-size:var(--fs-xs);min-width:44px}
/* Side menu: pinned answers and recent conversations */
.library{display:grid;gap:14px;margin:0 2px;min-height:0}
.library-label{margin:0 4px 6px}
.library-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.library-item{display:flex;align-items:stretch;border-radius:8px}
.library-item:hover,.library-item.current{background:#ffffff0b}
.library-open{flex:1;min-width:0;display:grid;gap:1px;text-align:left;background:none;border:0;padding:7px 6px;color:#d5e3ee;cursor:pointer}
.library-title{font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.library-sub{font-size:var(--fs-xs);color:#7f95aa}
.library-remove{background:none;border:0;color:var(--text-muted);font-size:var(--fs-xs);padding:0 9px;min-width:34px;cursor:pointer;border-radius:8px}
.library-remove:hover{color:#ffc4cf}
.library-empty{font-size:var(--fs-xs);color:#7f95aa;margin:0 6px}
.pin-note{margin:6px 0 10px;padding:8px 11px;border-radius:9px;background:#3a3020;color:#ffe2a8;font-size:var(--fs-xs)}
.pin-btn[aria-pressed=true]{color:#8ef8d4}
/* Top bar: New chat where the settings gear used to be */
.top-new-chat{margin-left:auto;font-size:var(--fs-sm)}
#settingsOpen.side-link{grid-column:1/-1}
/* Live words while talking */
.live-words{margin:0 4px 8px;font-size:var(--fs-md);line-height:1.45;color:#e4f0fa;max-height:4.4em;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
@media(max-width:690px){
  .library-open{min-height:40px}
  .library-remove{min-width:40px}
  .side-bottom>#settingsOpen.side-link{grid-column:1/-1;background:none}
}
@media(max-width:380px){.top-new-label{display:none}}
/* Test answers panel settings: even columns, boxes never spill into the next one, labels may wrap but boxes line up */
.panel-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
.panel-settings label{min-width:0}
.panel-settings select{width:100%;min-width:0;text-overflow:ellipsis}
/* Phones and narrow panels: Model on its own row so the full name fits; Length and Passages side by side; Searches below. */
@media(max-width:900px){.panel-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-settings label:first-child,.panel-settings label:last-child{grid-column:1/-1}}
/* Indented sub-points in answers */
.answer-text li>ul,.answer-text li>ol,.comparison-answer li>ul,.comparison-answer li>ol{margin:.2em 0 .3em;padding-left:1.25em}
/* Test answers: Talk button; 16px text on phones so iPhones don't zoom in when typing */
.compare-talk.recording{border-color:#5aa9ff;color:#d6e9ff;background:#14284a}
@media(max-width:690px){.comparison-form textarea{font-size:var(--fs-md)}}
/* Side menu on any screen: Pinned and Recent scroll in their own area instead of spilling over the section below;
   the bottom section is never squeezed; on very short windows the whole menu scrolls. */
.sidebar{overflow-y:auto;overscroll-behavior:contain}
.library{flex:0 0 auto;max-height:45vh;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
.side-spacer{flex:1 1 0;min-height:0}
.side-bottom{flex-shrink:0}
.new-chat,.brand{flex-shrink:0}
/* Settings: failure alert email */
.alert-row>span{display:grid;gap:6px;width:100%}
.alert-email{display:flex;gap:6px;flex-wrap:wrap}
.alert-email input{flex:1;min-width:180px;background:#101e32;color:#e4f0fa;border:1px solid #496078;border-radius:8px;padding:9px;font-size:var(--fs-sm)}
.model-health{color:#8ef8d4}
@media(max-width:690px){.alert-email input{font-size:var(--fs-md)}}
/* Share an answer */



/* Manual administration: nyc.gov updates */
.nyc-watch{margin-top:12px}
/* Admin window: every admin tool, grouped */
.hub-modal{width:min(100%,560px)}
.hub-section{margin-top:18px}
.hub-section h3{font-size:var(--fs-xs);font-weight:700;letter-spacing:.2px;color:var(--text-muted);margin:0 0 8px}
.hub-item{display:block;width:100%;text-align:left;background:#182a40;border:1px solid #2f435a;border-radius:10px;padding:11px 14px;margin-bottom:6px;color:#dbe7f3}
.hub-item:hover{border-color:#3a9588;background:#1b2e40}
.hub-item b{display:block;font-size:var(--fs-sm);font-weight:700}
.hub-item small{display:block;color:var(--text-muted);font-size:var(--fs-xs);margin-top:3px;line-height:1.45}
.settings-group#assistantSetting h3{margin-top:18px}
.settings-group#assistantSetting h3:first-child{margin-top:4px}
/* Help */
.help-modal{width:min(100%,720px)}
.help-search{width:100%;margin-top:16px;background:#0e192b;color:#fff;border:1px solid #3b4d64;border-radius:10px;padding:12px 14px;font-size:var(--fs-md);outline:0}
.help-search:focus{border-color:#4db9a5}
.help-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.help-chip{background:transparent;border:1px solid #3b4d64;color:#adbccf;border-radius:30px;padding:6px 11px;font-size:var(--fs-xs)}
.help-chip[aria-pressed=true]{background:#255d4c;border-color:#3a9588;color:#d6fff0}
.help-cat{font-size:var(--fs-xs);font-weight:700;letter-spacing:.2px;color:var(--teal);margin:18px 0 6px}
.help-topic{border:1px solid #2f435a;border-radius:10px;background:#16253a;margin-bottom:6px;padding:0 14px}
.help-topic summary{cursor:pointer;padding:12px 0;font-size:var(--fs-sm);color:#e2edf7;list-style-position:outside}
.help-topic-cat{display:none}
.help-list.searching .help-topic-cat{display:inline-block;font-size:var(--fs-xs);color:#7fbfb2;margin-right:8px;letter-spacing:.4px}
.help-topic p,.help-topic li{font-size:var(--fs-sm);line-height:1.65;color:#c3d2e1;margin:0 0 9px}
.help-topic ul{margin:0 0 9px;padding-left:20px}
.help-topic[open]{padding-bottom:4px}
/* Settings rows: a long select (e.g. "Close rewording (recommended)") drops below its label on phones instead of squeezing it */
.settings-row{flex-wrap:wrap}
.settings-row>span{flex:1 1 190px;min-width:0}
.settings-row select{flex:0 1 auto;max-width:100%}
/* Help: update log */
.help-log{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.help-log li{display:grid;grid-template-columns:auto 1fr auto;gap:4px 12px;align-items:baseline;border:1px solid #2f435a;border-radius:10px;background:#16253a;padding:10px 14px;font-size:var(--fs-sm);line-height:1.55;color:#c3d2e1}
.help-log time{color:#7fbfb2;font-size:var(--fs-xs);white-space:nowrap}
.help-log small{color:var(--text-muted);font-size:var(--fs-xs)}
@media(max-width:520px){.help-log li{grid-template-columns:1fr auto}.help-log li span{grid-column:1/-1;grid-row:2}}
/* Send: round, arrow up; gray until there is a question (or while talking, when it sends), ripple and bounce when pressed */
.send-btn{border-radius:50%;position:relative;overflow:hidden;transition:background .2s,color .2s}
.composer.listening .send-btn{background:var(--teal);color:#0a2630;border-color:transparent}
.send-arrow{width:22px;height:22px;display:block}
.send-stop{display:none;width:14px;height:14px;border-radius:3px;background:currentColor}
.send-btn.stop .send-arrow{display:none}
.send-btn.stop .send-stop{display:block}
.send-ripple{position:absolute;inset:0;border-radius:50%;background:#ffffff99;transform:scale(0);opacity:0;pointer-events:none}
.send-btn.pressed{animation:send-bounce .4s ease}
.send-btn.pressed .send-ripple{animation:send-ripple .45s ease-out}
@keyframes send-bounce{35%{transform:scale(.82)}70%{transform:scale(1.1)}100%{transform:scale(1)}}
@keyframes send-ripple{0%{transform:scale(0);opacity:1}100%{transform:scale(2.2);opacity:0}}
@media(prefers-reduced-motion:reduce){.send-btn.pressed,.send-btn.pressed .send-ripple{animation:none}}
/* Answer actions: one even bar of four buttons, icon above a short label */
.message-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:16px;border:1px solid #2d4055;border-radius:12px;background:#121e31;overflow:hidden;flex-wrap:nowrap}
.action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:62px;padding:10px 4px;background:transparent;border:0;color:#b9cadb;font-size:var(--fs-sm);font-weight:600;letter-spacing:.1px;transition:background .15s,color .15s}
.action-btn+.action-btn{border-left:1px solid #2d4055}
.action-btn svg{width:22px;height:22px;flex:none}
.action-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.action-btn:hover{background:#1a2a40;color:#e6f2fb}
.action-btn:active{background:#21344d}
.action-btn.on{color:#8ef8d4;background:#173a37}
.action-btn.busy svg{animation:action-spin 1s linear infinite}
@keyframes action-spin{to{transform:rotate(360deg)}}
.message-actions+.natural-audio-player{display:block;width:100%;margin-top:10px}
.action-btn .vbar{fill:currentColor;stroke:none;transform-box:fill-box;transform-origin:center}
.action-btn.playing .vbar{animation:vbar-bounce .9s ease-in-out infinite}
.action-btn.warming .vbar{animation:vbar-ripple 1.1s ease-in-out infinite}
.action-btn .vbar:nth-child(2){animation-delay:-.75s}.action-btn .vbar:nth-child(3){animation-delay:-.5s}.action-btn .vbar:nth-child(4){animation-delay:-.25s}
@keyframes vbar-bounce{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@keyframes vbar-ripple{0%,100%{transform:scaleY(.3);opacity:.45}50%{transform:scaleY(.65);opacity:1}}
@media(prefers-reduced-motion:reduce){.action-btn.busy svg,.action-btn .vbar{animation:none}}
/* Start screen (option A): brand in the top bar on phones, a short left-aligned hero, the manual edition box,
   example questions, and the source in one line. The top-bar brand reuses the side menu's lockup exactly:
   41px icon, 10px gap, 25px "FinestIQ" at -1.15px letter spacing. */
.top-brand{display:none;padding:0;gap:10px}
.top-brand strong{font-size:var(--fs-xl);letter-spacing:-1.15px;line-height:1}
@media(max-width:690px){
  .topbar{position:relative}
  /* Centered on the screen, not just between the menu and New chat buttons */
  .top-brand{display:flex;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;pointer-events:none}
  .topbar .top-new-chat{margin-left:auto}
  .topbar .top-location{display:none}
}
.empty-state{align-items:stretch;text-align:left;justify-content:center;max-width:640px;width:100%}
.empty-state h1{margin:0 0 12px}
.empty-state>.hero-sub{color:#9aaac0;font-size:var(--fs-md);line-height:1.6;margin:0;max-width:520px}
.edition-box{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding:11px 14px;border:1px solid #2d4055;border-radius:12px;background:#121e31;font-size:var(--fs-sm);color:#b9cadb}
.edition-box-name{display:flex;align-items:center;gap:8px;min-width:0}
.edition-dot{width:7px;height:7px;border-radius:50%;background:var(--teal);flex:none;box-shadow:0 0 10px #33c99a88}
.edition-box-status{color:var(--teal);font-weight:700;white-space:nowrap}
.edition-box-status:empty{display:none}
.edition-box[data-kind=newer] .edition-dot{background:#e6b850;box-shadow:0 0 10px #e6b85066}
.edition-box[data-kind=newer] .edition-box-status{color:#f0c96a}
.empty-state>.try-label{max-width:none;line-height:1.2;margin:26px 0 0;font-size:var(--fs-xs);font-weight:700;letter-spacing:.2px;color:var(--text-muted)}
.empty-state .prompts{margin-top:10px;width:100%}
.empty-state>.source-note{max-width:none;margin:18px 0 0;font-size:var(--fs-xs);color:#7f93a7;text-align:left}
@media(max-width:690px){
  .empty-state{padding:22px 18px 28px}
  .empty-state h1{font-size:36px;letter-spacing:-1.4px}
  .empty-state>.hero-sub{font-size:var(--fs-sm)}
  .empty-state .prompt{font-size:var(--fs-sm);min-height:0;padding:13px 14px}
}
/* Tap to talk: a radio-style key with an on-air light. Teal outline and light when ready; blinking teal light and "Listening – Tap to stop"
   while recording; a softly blinking teal light while transcribing. */
.mic-btn{background:#18253a;border:2px solid var(--teal);color:#e9f4fb;box-shadow:none;gap:11px;padding:0 22px;font-weight:700}
.mic-btn:hover{background:#1d3046}
.mic-btn .mic-icon,.mic-btn .stop-icon,.mic-btn.recording .stop-icon{display:none}
.on-air-led{width:10px;height:10px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px #50dfbe;flex:none;transition:background .2s,box-shadow .2s}
.mic-btn.recording{background:#14284a;border-color:#5aa9ff;color:#fff;animation:none}
.mic-btn.recording:hover{background:#1a3360}
.mic-btn.recording .on-air-led{background:#5aa9ff;box-shadow:0 0 12px #5aa9ff;animation:on-air 1s ease-in-out infinite}
.mic-btn.busy,.mic-btn.busy:disabled{background:#18253a;border-color:#3b5a63;color:#cfe3f1;animation:none}
.mic-btn.busy .on-air-led{animation:on-air 1.2s ease-in-out infinite}
@keyframes on-air{50%{opacity:.3}}
/* Procedure cards viewer (administrator) */
.library-filter{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:var(--fs-sm);color:#b9cadb}
.library-card{border:1px solid #2f435a;border-radius:10px;background:#16253a;margin-bottom:6px;padding:0 14px 12px}
.library-card summary{cursor:pointer;padding:12px 0;font-size:var(--fs-sm);color:#e2edf7}
.library-card summary strong{display:block;font-weight:700}
.library-meta{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin-top:3px}
.library-summary{font-size:var(--fs-sm);line-height:1.6;color:#c3d2e1;margin:0 0 8px}
.library-label{font-size:var(--fs-xs);font-weight:700;letter-spacing:.2px;color:var(--text-muted);margin:10px 0 5px}
.library-chips{display:flex;flex-wrap:wrap;gap:5px}
.library-chip{font-size:var(--fs-xs);color:#cfe3f1;background:#1d3046;border:1px solid #33465c;border-radius:12px;padding:3px 9px}
.library-questions{margin:0;padding-left:18px;font-size:var(--fs-xs);line-height:1.55;color:#c3d2e1}
.library-sol{margin-top:12px;padding:10px 12px;border-left:3px solid #8a7cf0;background:#1b2340;border-radius:0}
.library-card>.secondary-btn{margin-top:12px}
.library-text{white-space:pre-wrap;font-size:var(--fs-xs);line-height:1.5;color:#b9cadb;background:#0f1a2b;border:1px solid #2d4055;border-radius:8px;padding:10px;margin-top:8px;max-height:50vh;overflow:auto}
/* Live routing labels (administrator only) */
.route-badge{margin-left:auto;font-size:var(--fs-xs);font-weight:700;letter-spacing:.6px;padding:3px 8px;border-radius:10px;border:1px solid #3b4c63;color:#b9cadb}
.route-badge.tier-A{color:#8ef8d4;border-color:#2f6b62;background:#163b36}
.route-badge.tier-B{color:#9fd0ff;border-color:#2f5577;background:#162a40}
.route-badge.tier-C{color:#f0c96a;border-color:#6b5a2f;background:#2f2716}
.route-reason{margin:-4px 0 10px;font-size:var(--fs-xs);color:var(--text-muted)}
.route-more{margin-top:10px;width:100%}
.route-threshold-inputs{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.route-threshold-inputs label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);color:#b9cadb}
.route-threshold-inputs input{width:84px;background:#0e192b;color:#fff;border:1px solid #3b4d64;border-radius:8px;padding:8px;font-size:var(--fs-md)}
/* Routing test report */
.costs-card small{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin-top:4px}
.routing-bars{display:grid;gap:8px;margin:8px 0}
.routing-bar{position:relative;background:#121e31;border:1px solid #2d4055;border-radius:8px;height:30px;overflow:hidden}
.routing-bar b{position:relative;z-index:1;display:block;line-height:28px;padding-left:10px;font-size:var(--fs-xs);color:#e2edf7}
.routing-bar span{position:absolute;left:0;top:0;bottom:0}
.routing-bar .tier-A{background:#1f5a4c}.routing-bar .tier-B{background:#24476d}.routing-bar .tier-C{background:#5a4a24}
.routing-item{border-bottom:1px solid #2d4055;padding:10px 0}
.routing-q{font-size:var(--fs-sm);color:#e2edf7}
.routing-meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:4px;line-height:1.5}
.error-sample{font-size:var(--fs-xs);color:#b9cadb;margin:6px 0 2px;line-height:1.5}
/* Search check (Procedure cards window): OpenAI's passages next to FinestIQ's, and the past-questions comparison. */
.search-check{margin-top:14px;border:1px solid #2f435a;border-radius:10px;background:#16253a;padding:0 14px 12px}
.search-check>summary{cursor:pointer;padding:12px 0;font-size:var(--fs-sm);font-weight:700;color:#e2edf7}
.search-check-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.search-check-form .help-search{flex:1;min-width:200px;margin-top:0}
.search-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.search-check-grid h4{margin:0 0 6px;font-size:var(--fs-xs);letter-spacing:.2px;color:var(--text-muted)}
.search-check-row{border-top:1px solid #2d4055;padding:8px 0;font-size:var(--fs-xs);color:#c3d2e1}
.search-check-row strong{display:block;color:#e2edf7}
.search-check-row p{margin:4px 0 0;line-height:1.5;color:#b9cadb}
.search-eval-table{border-collapse:collapse;margin-top:10px;font-size:var(--fs-sm);color:#c3d2e1}
.search-eval-table th,.search-eval-table td{text-align:left;padding:6px 14px 6px 0;border-bottom:1px solid #2d4055}
.search-eval-table th{font-size:var(--fs-xs);letter-spacing:.2px;color:var(--text-muted)}
.search-eval-misses{margin-top:8px;font-size:var(--fs-xs);color:#b9cadb}
.search-eval-misses summary{cursor:pointer}
.search-eval-misses p{margin:4px 0}
@media (max-width:640px){.search-check-grid{grid-template-columns:1fr}}
/* Answer models & limits: each model's own settings in one row of small selects. */
.model-role-inputs{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.model-role-inputs label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);color:#b9cadb}
.model-role{flex-direction:column;align-items:stretch}
.backup-part{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid #23364b;font-size:var(--fs-sm);color:#c7d6e6}
.backup-part .secondary-btn{flex:none;padding:6px 12px}
.library-card a.secondary-btn{display:inline-block;margin:2px 0 8px;text-decoration:none}
.qtypes{display:grid;gap:8px}
.qtype{border:1px solid #2f435a;border-radius:10px;background:#16253a;padding:10px 12px}
.qtype-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:var(--fs-sm);color:#e2edf7}
.qtype-cost{font-weight:700;color:#7fe0c4;white-space:nowrap}
.qtype-meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:3px}
.qtype-bar{height:6px;border-radius:3px;background:#0f1b2c;margin-top:7px;overflow:hidden}
.qtype-bar span{display:block;height:100%;background:#4fc3a1;border-radius:3px}
.costs-card small{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin-top:3px}
.plan-check{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:end}
.plan-check label{display:grid;gap:4px;font-size:var(--fs-xs);color:#b4c7d8}
.plan-check input{background:#101e32;color:#e4f0fa;border:1px solid #496078;border-radius:8px;padding:8px;min-height:36px;width:100%;font-size:var(--fs-md)}
.plan-result{margin-top:10px;padding:10px 12px;border-radius:10px;background:#16253a;border:1px solid #2f435a;font-size:var(--fs-sm);line-height:1.5;color:#d6e4f0}
.plan-result p{margin:0 0 6px}.plan-result p:last-child{margin-bottom:0}
.plan-good{color:#7fe0c4;font-weight:700}.plan-bad{color:#ff9b8a;font-weight:700}
.side-icon{width:18px;height:18px;flex:none;vertical-align:-4px;margin-right:9px;color:var(--teal)}
.library-label .side-icon{width:15px;height:15px;vertical-align:-3px;margin-right:6px}
.side-bottom>.side-link:not(#logout) .side-icon{margin-right:3px}
.hub-item b{display:flex;align-items:center;gap:9px}
.hub-icon{width:19px;height:19px;flex:none;color:var(--teal)}
.hub-item small{padding-left:28px}
.settings-number{width:140px;min-height:38px;background:#101e32;color:#e4f0fa;border:1px solid #496078;border-radius:8px;padding:6px 8px;font-size:var(--fs-md)}
.gaps-group+.gaps-group{margin-top:14px}
.procedure-link{display:inline;background:none;border:0;padding:0;margin:0;font:inherit;color:var(--teal);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
/* Laws of UX pass: the bottom line stands out, its procedure is one tap away, fewer choices after an answer. */
.answer-text>p.bottom-line{background:#163049;border:1px solid #2c5272;border-left:3px solid var(--teal);border-radius:0 10px 10px 0;padding:10px 12px;margin-top:0}
.primary-chip{display:flex;min-width:0;box-sizing:border-box;align-items:center;gap:6px;width:100%;max-width:100%;margin:-4px 0 12px;padding:8px 12px 8px 11px;min-height:40px;border-radius:20px;border:1px solid #2f8f7c;background:#123a3a;color:#bff7e6;font:inherit;font-size:var(--fs-xs);letter-spacing:-.1px;text-align:left;cursor:pointer}
.primary-chip strong{flex:none;color:var(--teal);font-weight:700;white-space:nowrap}
.primary-chip-title{flex:1 1 0;width:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#d9f6ee}
.primary-chip-go{flex:none;white-space:nowrap;font-weight:600;color:var(--teal);padding-left:6px;border-left:1px solid #2f8f7c}
.feedback-row{justify-content:flex-end}
.feedback-row .rate-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:40px;padding:0;min-height:0}
.feedback-row .rate-btn svg{width:19px;height:19px}
.feedback-row .rate-btn.selected{border-color:var(--teal);color:var(--teal)}
.disclaimer-more{background:none;border:0;padding:0 2px;font:inherit;color:#8fb3cc;text-decoration:underline;cursor:pointer}
.primary-chip-pending{cursor:default;border-style:dashed;background:#10302f;color:#8fbfb3}
.primary-chip-pending strong,.primary-chip-pending .primary-chip-title{opacity:.7;animation:on-air 1.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.primary-chip-pending strong,.primary-chip-pending .primary-chip-title{animation:none}}
/* Practical UI pass (docs/DESIGN.md): login option C, calmer Settings, stacked edition box, readable labels. */
.login-minimal .login-logo{justify-content:center;flex-direction:column;text-align:center;gap:10px;margin-bottom:26px}
.login-minimal .login-logo small{display:block;margin-top:4px;color:var(--text-muted);font-size:var(--fs-sm);letter-spacing:0;font-weight:500}
.login-submit{justify-content:center}
.remember-row input{width:20px;height:20px;accent-color:var(--teal);flex:none}
.login-about-toggle{display:block;margin:18px auto 0;background:none;border:0;padding:6px;font:inherit;font-size:var(--fs-sm);color:var(--teal);text-decoration:underline;cursor:pointer}
.login-about{margin-top:12px;font-size:var(--fs-sm);line-height:1.55;color:var(--text-muted)}
.login-about p{margin:0 0 10px}
.login-error:not(:empty){background:#22344f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239fc2e6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E") no-repeat 12px 12px/17px 17px;color:#e4eef8;border:1px solid #46617f;border-radius:9px;padding:11px 12px 11px 38px}
.settings-group{border:1px solid #2f4258;border-radius:12px;background:#101c2e;padding:4px 14px}
.settings-group h3{margin:12px 0 2px;color:var(--text-muted);font-size:var(--fs-sm);letter-spacing:0}
.settings-group .settings-row{border:0;border-radius:0;background:none;margin:0;padding:13px 0;border-top:1px solid #23364b}
.settings-group h3+.settings-row{border-top:0}
/* Start screen: one line "● Department Manual · Oct 19, 2026 · Verified"; if a longer status has to wrap, both lines are centered. */
.edition-box{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;column-gap:6px;row-gap:3px;text-align:center}
.edition-box-status::before{content:"· ";color:#b9cadb;font-weight:400}
.message.summary-marker{display:flex;align-items:center;gap:10px;margin:6px 0;color:var(--text-muted);font-size:var(--fs-sm)}
.message.summary-marker::before,.message.summary-marker::after{content:"";flex:1;border-top:1px solid #2b3f57}
/* Share: while the links are made, the button animates instead of showing a box (docs/DESIGN.md). */
.action-btn.sharing{color:#8ef8d4;background:#173a37}
.action-btn.sharing svg{animation:share-bob .9s ease-in-out infinite}
@keyframes share-bob{0%,100%{transform:translateY(2px)}50%{transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.action-btn.sharing svg{animation:none}}
/* Colors: tapping the FinestIQ logo and name in the header switches the theme (no separate button); the theme's
   name flashes under the header (docs/DESIGN.md). */
.topbar{position:relative}
.topbar .top-brand{pointer-events:auto;background:#ffffff08;border:1px solid #2b3d55;color:var(--text);font:inherit;cursor:pointer;padding:4px 12px 4px 6px;gap:8px;border-radius:12px;-webkit-tap-highlight-color:transparent}
.topbar .top-brand img{width:34px;height:34px}
.topbar .top-brand:active{background:#ffffff14}
/* Tap feedback: the shield flips once while every color eases into the new theme (off with Reduce Motion). */
@media(prefers-reduced-motion:no-preference){
.top-brand.flipping img{animation:shield-flip .5s ease-in-out}
.theme-easing *,.theme-easing *:before,.theme-easing *:after{transition:background-color .35s ease,color .35s ease,border-color .35s ease,fill .35s ease,stroke .35s ease!important}
/* …except the FinestIQ box in the header, which takes its new colors at once (owner's choice). Its text color comes
   straight from --text, not inherited, or it would follow the header's easing. */
.theme-easing .top-brand,.theme-easing .top-brand *{transition:none!important}
}
@keyframes shield-flip{from{transform:perspective(200px) rotateY(0)}to{transform:perspective(200px) rotateY(360deg)}}
/* The menu button: a bigger, clearer three-line icon (was a small ☰ character). */
@media(max-width:690px){.topbar .mobile-nav{display:flex;align-items:center;justify-content:center;color:#cfdeeb}}
.topbar .mobile-nav svg{width:26px;height:26px}
.theme-toast{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;top:calc(100% + 8px);z-index:30;background:#1c2b42;border:1px solid #2f4258;color:#f0f6fd;border-radius:14px;padding:5px 12px;font-size:var(--fs-xs);font-weight:600;pointer-events:none}
/* Administrator only: the answer-model chip in the composer (tap to step Primary → Backup → Fast). */
.model-chip{display:inline-flex;align-self:flex-start;align-items:center;gap:4px;min-height:36px;margin:0;padding:4px 12px;border:1px solid #2f4258;border-radius:18px;background:#101c2e;color:#cfe3f1;font-size:var(--fs-sm);font-weight:600}
.model-chip b{color:#8ef8d4}
/* Side menu, Practical UI sizes ("Standard", docs/DESIGN.md): text people read 16 px, times and headings 14 px,
   24 px icons, 48 px rows. Scoped to .sidebar because the admin screens reuse some of these class names. */
.sidebar .new-chat{font-size:var(--fs-md);min-height:48px}
.sidebar .library-label{font-size:var(--fs-sm)}
.sidebar .library-label .side-icon{width:20px;height:20px}
.sidebar .library-open{min-height:48px;padding:8px 6px;gap:2px}
.sidebar .library-title{font-size:var(--fs-md)}
.sidebar .library-sub,.sidebar .library-empty{font-size:var(--fs-sm)}
.sidebar .library-remove{min-width:48px;font-size:var(--fs-md)}
.sidebar .small-label,.sidebar .side-subtitle,.sidebar .active-user,.sidebar .prototype-label{font-size:var(--fs-sm)}
.sidebar .edition-row{font-size:var(--fs-md)}
.sidebar .side-bottom>.side-link,.sidebar .side-bottom>.side-link:not(#logout){grid-column:1/-1;display:flex;align-items:center;gap:0;min-height:48px;font-size:var(--fs-md);padding:8px 6px}
.sidebar .side-bottom>.side-link .side-icon,.sidebar .side-bottom>.side-link:not(#logout) .side-icon{width:24px;height:24px;margin-right:12px;vertical-align:middle}
/* The pinned and recent lists use all the room above the manual details (they used to stop at 45% of the screen). */
.sidebar .library{flex:1 1 auto;max-height:none;min-height:120px;align-content:start}
.sidebar .side-spacer{flex:0 0 8px}
/* Advanced model behavior: the editable instructions (public/prompts-ui.js). */
.prompt-editor .prompt-group{margin-top:8px}
.prompt-field{padding:10px 0;border-top:1px solid #23364b}
.prompt-field:first-of-type{border-top:0}
.prompt-field-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.prompt-field-head label{font-weight:700;font-size:var(--fs-sm);color:#e2edf7;margin-right:auto}
.prompt-edited{display:none;font-size:var(--fs-xs);font-weight:700;color:#d5bd7c}
.prompt-field.edited .prompt-edited{display:inline}
.prompt-reset{padding:6px 10px}
.prompt-text{display:block;width:100%;margin-top:8px;min-height:90px;resize:vertical;background:#0e192b;color:#e4f0fa;border:1px solid #3b4d64;border-radius:10px;padding:10px 12px;font-size:var(--fs-sm);line-height:1.5;font-family:inherit}
.prompt-text:focus{outline:0;border-color:#4db9a5}
.prompt-locked{white-space:pre-wrap;overflow-wrap:anywhere;background:#0e192b;border:1px solid #2f435a;border-radius:10px;padding:10px 12px;font-size:var(--fs-xs);line-height:1.55;color:#c3d2e1;max-height:320px;overflow:auto;margin:6px 0 10px}
.prompt-locked-label{display:block;font-size:var(--fs-xs);color:#b9cadb;margin-top:8px}
.prompt-preview-pick{margin-top:8px;background:#0e192b;color:#e4f0fa;border:1px solid #3b4d64;border-radius:8px;padding:8px}
.prompt-version{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid #23364b;font-size:var(--fs-xs);color:#c3d2e1}
@media(max-width:690px){.prompt-text,.prompt-preview-pick{font-size:16px}}
/* Loading cited pages: a blank manual page whose lines shimmer, with what is opening (docs/DESIGN.md). */
.page-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 8px}
.page-loading-sheet{position:relative;overflow:hidden;width:150px;height:180px;border-radius:6px;background:#1a2a40;border:1px solid #2c4057;padding:18px 14px;display:grid;gap:9px;align-content:start}
.page-loading-sheet i{display:block;height:7px;border-radius:4px;background:#2b3e55}
.page-loading-sheet i:first-child{width:60%;background:#3a5a5a}
.page-loading-sheet i:nth-child(4){width:80%}.page-loading-sheet i:nth-child(6){width:70%}.page-loading-sheet i:nth-child(9){width:50%}
.page-loading-sheet::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#8ef8d41f 50%,transparent 70%);animation:page-shine 1.4s linear infinite}
@keyframes page-shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.page-loading-text{margin:0;color:#cfe3f1;font-size:var(--fs-sm);text-align:center}
/* Face ID offer after a password sign-in (one time per device). */
.faceid-offer{width:min(100%,400px);text-align:center;padding:28px 24px}
.faceid-offer h2{margin:12px 0 8px}
.faceid-offer p{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.6;margin:0 0 20px}
.faceid-offer .faceid-error{color:#e4eef8;background:#22344f;border:1px solid #46617f;border-radius:9px;padding:10px 12px;font-size:var(--fs-xs);text-align:left;margin:0 0 16px}
.faceid-icon{width:64px;height:64px;margin:0 auto;border-radius:16px;background:#0f2a2e;display:flex;align-items:center;justify-content:center;color:var(--teal)}
.faceid-icon svg{width:38px;height:38px}
.faceid-actions{display:grid;gap:10px}
.faceid-actions button{min-height:48px;font-size:var(--fs-md)}
/* Accounts: email on the sign-in screen, forgotten password, Settings › Account. */
.login-hint{margin:6px 0 0;color:var(--text-muted);font-size:var(--fs-xs)}
.login-sub p{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.6;margin:0 0 8px}
.login-link{display:block;margin:14px auto 0;background:none;border:0;padding:6px;font:inherit;font-size:var(--fs-sm);color:var(--teal);text-decoration:underline;cursor:pointer}
.login-note{color:#9fe8cf;font-size:var(--fs-sm);line-height:1.5;margin-top:10px}
.login-note:empty{display:none}
.login-sub input,.account-form input{background:#0e192b;color:#fff;border:1px solid #3b4d64;border-radius:10px;padding:13px 14px;width:100%;outline:0;font-size:var(--fs-md)}
.account-form{display:grid;gap:8px;padding:10px 0 12px;border-top:1px solid #23364b}
.account-form-title{font-size:var(--fs-sm)}
.account-form button{justify-self:start;min-height:44px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Continue with Apple / Google: white on dark, same size, the providers' own marks (their brand rules). */
.oauth-block{display:grid;gap:12px;margin-bottom:6px}
/* Outlined on the card's own color, regular-weight text, 50px tall (owner's option A, modeled on Claude's sign-in). */
.oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;border-radius:12px;background:transparent;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:var(--fs-md);font-weight:500;text-decoration:none;border:1px solid #4a5d75}
.oauth-btn:hover{background:#ffffff0b}
.login-card input:not([type=checkbox]){min-height:50px;border-radius:12px}.login-card .login-submit{min-height:50px;border-radius:12px}
.oauth-btn svg{width:18px;height:18px;flex:none}
.oauth-btn:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.or-line{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:var(--fs-sm);margin-top:6px}
.or-line:before,.or-line:after{content:"";flex:1;height:1px;background:#2f4058}
.login-legal{margin:12px 0 0;color:var(--text-muted);font-size:var(--fs-xs);text-align:center;line-height:1.5}
.login-legal a,.legal-links a{color:var(--teal)}
/* Accounts (Admin): plan, devices, Manage panel, invite codes, action log; Settings › Account: plan, devices, delete. */
.account-section{margin-top:14px}
.invite-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end;margin:8px 0 12px}
.invite-form label{display:grid;gap:4px;font-size:var(--fs-xs);color:var(--text-muted)}
.invite-form input,.invite-form select,.account-admin-form select,.account-admin-form input,.account-admin-form textarea{background:#0e192b;color:#e4f0fa;border:1px solid #3b4d64;border-radius:8px;padding:9px 10px;font:inherit;font-size:var(--fs-sm)}
.invite-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;border-top:1px solid #23364b;font-size:var(--fs-sm);color:#c3d2e1}
.invite-row code{font-weight:700;color:#8ef8d4}
.invite-row span{flex:1 1 220px;min-width:0}
.action-log ul,.account-history ul{list-style:none;margin:6px 0 0;padding:0;font-size:var(--fs-xs);color:#c3d2e1;max-height:280px;overflow:auto}
.action-log li,.account-history li{padding:5px 0;border-top:1px solid #23364b}
.account-admin{flex-basis:100%;display:grid;gap:12px;margin-top:10px;padding:12px;border:1px solid #2f4258;border-radius:10px;background:#101c2e}
.account-admin-form{display:grid;gap:6px}
.account-admin-form button,.account-admin>button{justify-self:start}
.account-admin-devices{display:grid;gap:6px;font-size:var(--fs-sm)}
.account-device{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-sm);color:#c3d2e1}
.account-devices{display:grid;gap:4px;margin-top:6px}
.account-flag{color:#d5bd7c}
.account-note{color:#b9cadb;font-style:italic}
.account-history summary{cursor:pointer;font-size:var(--fs-sm);color:#e2edf7}
.names-toggle{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:#c3d2e1;white-space:nowrap}
.names-toggle input{width:18px;height:18px;accent-color:var(--teal)}
.account-download{justify-self:start;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.account-danger-note{color:var(--text-muted);font-size:var(--fs-xs)}
.account-delete-btn{border-color:#46617f}
.tester-account{flex-wrap:wrap}
.tester-admin-modal .tester-account-list{max-height:none;overflow:visible}
/* FinestIQ Friends: gold accents so the thank-you plan feels special (premium switch, button, tag, welcome). */
.premium-chip,.get-premium{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;min-height:36px;padding:5px 12px;border:1px solid #5c4f2c;border-radius:18px;background:#211d12;color:#e8d6a4;font-size:var(--fs-sm);font-weight:600;cursor:pointer}
.premium-chip svg,.get-premium svg{width:15px;height:15px;color:#d5bd7c;flex:none}
.premium-chip b,.get-premium b{color:#f3dc98}
.premium-chip.on{background:#3a311a;border-color:#d5bd7c;color:#fff2cc;box-shadow:0 0 0 2px #d5bd7c33}
.premium-chip:disabled,.get-premium:disabled{opacity:.5;cursor:not-allowed}
.get-premium{margin-top:10px}
.premium-tag{margin-left:8px;padding:2px 8px;border-radius:10px;background:#2a2516;border:1px solid #5c4f2c;color:#f0dca8;font-size:var(--fs-xs);font-weight:700}
.friends-counts{margin:6px auto 0;max-width:805px;text-align:center;color:#d5bd7c;font-size:var(--fs-xs)}
.friends-welcome{width:min(100%,420px);text-align:center;padding:28px 24px}
.friends-welcome p,.friends-points{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.6;text-align:left}
.friends-points{padding-left:20px;margin:0 0 20px}
.friends-badge{width:64px;height:64px;margin:0 auto;border-radius:18px;background:linear-gradient(135deg,#3a311a,#211d12);border:1px solid #d5bd7c;display:flex;align-items:center;justify-content:center;color:#f3dc98}
.friends-badge svg{width:34px;height:34px}
.friends-welcome .primary-btn{width:100%;min-height:48px}
.length-row{display:flex;gap:6px}
.length-row input{flex:1;min-width:0}
.quick-ends{display:flex;flex-wrap:wrap;gap:4px}
/* Start screen (PR #88, owner's pick "Option 1 without the subtitle"): the headline, one quiet line for the manual,
   then the example questions as plain rows with thin dividers; no boxes. The administrator chooses how many
   questions (0–3) and where they sit: data-examples-at="top" | "middle" | "bottom" on #emptyState. */
#emptyState{justify-content:flex-start;padding-top:28px}
#emptyState h1{margin:0}
#asOfNote{justify-content:flex-start;text-align:left;flex-wrap:wrap;column-gap:.3em;row-gap:2px;margin:12px 0 0;padding:0;border:0;background:transparent;font-size:var(--fs-sm);color:var(--text-muted)}
#asOfNote .edition-box-source a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}
#startExamples{display:flex;flex-direction:column;width:100%;margin-top:28px}
#emptyState[data-examples-at=middle] #startExamples{margin-top:auto;margin-bottom:auto;padding-top:24px}
#emptyState[data-examples-at=bottom] #startExamples{margin-top:auto;padding-top:24px}
#startExamples .try-label{margin:0;max-width:none;line-height:1.2;font-size:var(--fs-sm);font-weight:700;color:var(--text-muted)}
#examplePrompts{display:flex;flex-direction:column;gap:0;margin-top:4px;width:100%}
#examplePrompts .prompt{border:0;border-bottom:1px solid var(--stroke);border-radius:0;background:transparent;color:var(--text);padding:14px 0;min-height:0;font-size:var(--fs-md);line-height:1.45;align-items:center}
#examplePrompts .prompt:last-child{border-bottom:0}
#examplePrompts .prompt:hover{background:transparent;color:var(--teal)}
@media(max-width:690px){#newChatTop{border-color:transparent;background:transparent}}
.examples-show{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 0}
.examples-show label{display:grid;gap:5px;font-size:var(--fs-xs);color:#b4c7d8}
.examples-show select{min-height:40px;padding:8px 10px;border:1px solid #395273;border-radius:8px;background:#1a2d45;color:#e6f4fa;font-size:var(--fs-sm)}
@media(max-width:690px){.examples-show select{font-size:16px}}
/* Admin › Plans (plans-ui.js): one card per plan; Accounts › Manage › balances (fair use). */
.plans-list{display:grid;gap:12px;margin:12px 0}
.plan-card{border:1px solid #2f4258;border-radius:10px;padding:10px 14px 12px;margin:0;background:#101c2e;min-width:0}
.plan-card-title{display:flex;align-items:center;gap:8px;padding:0 4px;font-weight:600;color:#e2edf7}
.plan-card .field-help{margin:0 0 6px}
.plan-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;font-size:var(--fs-sm);color:#c3d2e1;border-top:1px solid #23364b}
.plan-row input[type=number]{width:84px;flex:none;background:#0e192b;color:#e4f0fa;border:1px solid #3b4d64;border-radius:8px;padding:7px 9px;font:inherit;font-size:var(--fs-sm);text-align:right}
.plan-default{color:#d5bd7c;font-size:var(--fs-xs)}
.account-balances{display:grid;gap:4px;font-size:var(--fs-sm);color:#c3d2e1}
.balance-line{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.balance-bar{height:6px;border-radius:3px;background:#1d2d42;overflow:hidden;margin:2px 0 6px}
.balance-bar b{display:block;height:100%;background:var(--teal)}
@media(max-width:690px){.plan-row input[type=number]{font-size:16px}}
