:root{color-scheme:dark;--bg:#161a14;--side:#1b2118;--card:#22291e;--edge:#394431;--ink:#f4efe5;--muted:#bfc5b6;--gold:#efb85e;--green:#b4c492;font-family:"DM Sans",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.55}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}h1,h2,p{margin-top:0}h1,h2,.brand{font-family:"Barlow Condensed","Arial Narrow",Impact,sans-serif}h1{font-size:clamp(2.7rem,6vw,4.5rem);line-height:.94;margin-bottom:18px}.brand{font-size:28px;font-weight:800;letter-spacing:.09em}.brand b{color:var(--gold)}p{color:var(--muted);line-height:1.55}
button,.attachment{background:var(--card);border:1px solid var(--edge);padding:9px 13px;border-radius:6px;font-weight:700}button:hover:not(:disabled),.attachment:hover{border-color:var(--gold)}.primary{background:var(--gold);color:#251d12;border-color:var(--gold)}.secondary{width:100%}input:not([type=checkbox]):not([type=range]),textarea,select{width:100%;background:#121610;border:1px solid #536048;border-radius:6px;padding:10px 12px}textarea{min-height:90px;resize:vertical}label{display:grid;gap:5px;font-weight:600}input[type=checkbox],input[type=range]{accent-color:var(--gold)}
.login{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.login-art{min-height:100%;position:relative;display:grid;place-items:end center;overflow:hidden;border-right:1px solid var(--edge);background:radial-gradient(ellipse at 55% 42%,#58633e,#262e21 63%,#1a2017);isolation:isolate}.login-art::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 32px,#bac69220 33px),repeating-linear-gradient(90deg,transparent 0 32px,#bac69220 33px);z-index:-1}.login-art img{width:min(93%,610px);max-height:90vh;object-fit:contain;object-position:bottom}.login-art .brand{position:absolute;top:32px;left:32px}.login-content{width:min(430px,calc(100% - 48px));margin:auto;padding-block:44px}.login-content>.brand{display:none}.login-content form,.panel form{display:grid;gap:15px}.notice{margin:22px 0 12px;padding:12px;border-left:3px solid var(--gold);background:var(--card);font-size:.9rem}
.shell{display:grid;grid-template-columns:265px minmax(0,1fr);min-height:100dvh}.sidebar{display:flex;flex-direction:column;gap:16px;padding:20px;background:var(--side);border-right:1px solid var(--edge);height:100dvh;position:sticky;top:0;overflow:auto}.sidebar nav,.history,#chat-list{display:grid;gap:6px}.sidebar nav button,#chat-list button{text-align:left;border-color:transparent;background:transparent}.sidebar button[aria-current=page],#chat-list button[aria-current=true]{background:var(--card);border-color:var(--edge);color:var(--gold)}.history{border-top:1px solid var(--edge);padding-top:15px}.history label{color:var(--muted);font-size:.82rem}.account{margin-top:auto;border-top:1px solid var(--edge);padding-top:12px}
.main{min-width:0}.main header{height:67px;border-bottom:1px solid var(--edge);display:flex;align-items:center;gap:12px;padding:0 26px;background:var(--bg)}header span{margin-left:auto;color:var(--green);font-size:.8rem;padding:3px 10px;border:1px solid var(--edge);border-radius:20px}#menu{display:none}#status:empty{display:none}#status{margin:12px auto 0;width:min(800px,calc(100% - 40px));color:var(--green)}
.chat{min-height:calc(100dvh - 67px);display:flex;flex-direction:column}.transcript,.composer,.panel{width:min(850px,calc(100% - 48px));margin-inline:auto}.transcript{flex:1;display:flex;flex-direction:column;gap:14px;padding:30px 0}.welcome{margin:auto 0;padding:32px 0}.welcome h1{font-size:clamp(3.5rem,9vw,6.2rem)}.welcome p{max-width:420px}.prompts,.compose-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.turn{padding:13px 16px;border:1px solid var(--edge);border-radius:9px;max-width:88%;background:var(--card);white-space:pre-wrap;overflow-wrap:anywhere}.turn.user{align-self:end;background:#38422d}.turn p{margin:4px 0 0;color:var(--ink)}.composer{position:sticky;bottom:0;background:var(--bg);display:flex;align-items:end;gap:12px;padding-bottom:18px}.companion{text-align:center;font-size:.78rem}.companion img{object-fit:contain}.companion label{display:flex;align-items:center;justify-content:center;gap:3px}.input-area{border:1px solid var(--edge);border-radius:10px;background:var(--card);padding:9px;flex:1;min-width:0}.input-area textarea{min-height:60px;background:transparent;border:0}.attachment{cursor:pointer;display:inline-flex;font-size:.85rem}.attachment input,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.attachment:focus-within{outline:2px solid var(--gold)}.compose-actions button{margin-left:auto}#attachment-name{font-size:.8rem;overflow-wrap:anywhere}
.panel{padding-block:38px 48px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check{display:flex;align-items:center;gap:8px}.panel form .primary{justify-self:start}fieldset,.pending{border:1px solid var(--edge);border-radius:8px;padding:14px;display:grid;gap:12px}legend{padding-inline:6px;font-weight:700}.pending{margin-top:18px}.pending h2,.pending p{margin:0}.inline{display:flex!important;align-items:end;flex-wrap:wrap;margin-bottom:18px}.item{margin-top:9px;padding:9px 13px;border:1px solid var(--edge);border-radius:6px;overflow-wrap:anywhere}.item-actions{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.item-actions button{font-size:.8rem;padding:5px 7px}
@media(max-width:760px){.login{grid-template-columns:1fr}.login-art{display:none}.login-content>.brand{display:block;margin-bottom:24px}.shell{grid-template-columns:1fr}#menu{display:block}.sidebar{display:none;position:fixed;z-index:2;top:67px;width:min(290px,90%);height:calc(100dvh - 67px);box-shadow:0 0 35px #0009}.sidebar.open{display:flex}.main header{padding-inline:15px}.panel,.transcript,.composer{width:calc(100% - 28px)}.fields{grid-template-columns:1fr}}

/* Keep account controls visible while the conversation list scrolls. */
.sidebar{overflow:hidden}
.sidebar>*{flex-shrink:0}
.sidebar .history{display:flex;flex:1 1 0;flex-direction:column;min-height:0}
.sidebar #chat-list{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.sidebar .account{margin-top:0}
.composer .latest-message{position:absolute;z-index:1;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);width:max-content;border-radius:999px;box-shadow:0 3px 12px #0007}
#reply-status{margin:0 0 5px;color:var(--green)}
#file-status,#mic-status{font-size:.82rem;overflow-wrap:anywhere}

/* Sergeant safe Markdown rendering */
.markdown-body { white-space:normal; overflow-wrap:anywhere; line-height:1.65; min-width:0; }
.markdown-body p { white-space:normal; margin:.65em 0; }
.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6 { line-height:1.3; margin:1.1em 0 .5em; font-weight:700; }
.markdown-body h2 { font-size:1.35em; } .markdown-body h3 { font-size:1.2em; }
.markdown-body h4,.markdown-body h5,.markdown-body h6 { font-size:1.08em; }
.markdown-body strong { font-weight:700; } .markdown-body em { font-style:italic; }
.markdown-body ul,.markdown-body ol { padding-left:1.5em; margin:.65em 0; }
.markdown-body li { margin:.3em 0; } .markdown-body li p { margin:.25em 0; }
.markdown-body pre { white-space:pre; overflow-x:auto; max-width:100%; padding:1em; border:1px solid #536047; border-radius:8px; background:#11170f; }
.markdown-body code { font-family:ui-monospace,Consolas,monospace; font-size:.92em; background:#11170f; padding:.12em .3em; border-radius:3px; }
.markdown-body pre code { padding:0; background:transparent; }
.markdown-body blockquote { margin:1em 0; padding:.2em 1em; border-left:3px solid #eeb75b; color:#d1d8ca; }
.markdown-body a { color:#f2c778; text-decoration:underline; }
.markdown-table { overflow-x:auto; max-width:100%; }
.markdown-body table { border-collapse:collapse; margin:.8em 0; }
.markdown-body th,.markdown-body td { border:1px solid #536047; padding:.45em .7em; text-align:left; }
.markdown-body hr { border:0; border-top:1px solid #536047; margin:1em 0; }

/* Responsive Sergeant navigation and Android download */
html,body { max-width:100%; overflow-x:clip; }
.shell { display:block; min-height:100dvh; }
.main { width:100%; min-width:0; }
.main .app-header { position:sticky; top:0; z-index:10; height:64px; padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left)); }
.header-brand { font-size:1.15rem; letter-spacing:.02em; }
.app-header .page-name { margin-left:auto; border:0; padding:0; font-size:.85rem; }
#menu { display:block; min-width:44px; min-height:44px; font-size:1.35rem; line-height:1; margin-left:8px; }
#sidebar { display:none; position:fixed; z-index:30; top:0; right:0; left:auto; width:min(340px,90vw); height:100dvh; padding:16px 18px max(20px,env(safe-area-inset-bottom)); border-left:1px solid var(--edge); box-shadow:-12px 0 40px #0007; }
#sidebar.open { display:flex; }
#close-menu { position:absolute; top:10px; right:10px; min-width:44px; min-height:44px; }
#sidebar>.brand { padding-right:48px; margin:10px 0; font-size:25px; }
.nav-backdrop { position:fixed; inset:0; width:100%; height:100%; z-index:20; border:0; border-radius:0; background:#0009; }
.app-download { display:block; padding:12px; background:var(--gold); color:#251d12; font-weight:700; text-align:center; text-decoration:none; border-radius:7px; }
.download-note { display:block; color:var(--muted); font-size:.75rem; line-height:1.4; margin:5px 0 12px; text-align:center; }
.login-content>.app-download { margin-top:24px; }
.chat { min-height:calc(100dvh - 64px); }
.transcript,.composer,.panel { width:min(850px,calc(100% - 32px)); min-width:0; }
.turn { min-width:0; max-width:100%; }
.turn.user { max-width:90%; }
.compose-actions button { margin-left:0; min-height:44px; }
.compose-actions button[type=submit] { margin-left:auto; }
#attach,#microphone { min-width:44px; padding:8px; }
.composer { padding-bottom:max(12px,env(safe-area-inset-bottom)); }
.panel { padding-bottom:max(48px,env(safe-area-inset-bottom)); }
.input-area textarea { font-size:16px; max-height:140px; }
#sidebar .account { gap:4px; }
@media(max-width:1100px) {
  .login { grid-template-columns:1fr; } .login-art { display:none; }
  .login-content>.brand { display:block; margin-bottom:24px; }
  .transcript,.composer,.panel { width:calc(100% - 24px); }
  .transcript { padding:18px 0; gap:12px; }
  .turn { padding:12px; font-size:1rem; }
  .composer { display:block; padding-top:42px; }
  .companion { position:absolute; left:4px; top:0; height:42px; }
  .companion img { width:40px; height:42px; }
  .composer .latest-message { bottom:calc(100% + 4px); }
  .input-area { width:100%; padding:7px; }
  .input-area textarea { min-height:52px; padding:9px 7px; }
  .compose-actions { gap:5px; }
  #file-status:not(:empty),#mic-status:not(:empty) { flex-basis:100%; order:2; }
  .fields { grid-template-columns:1fr; }
  .panel { padding-top:24px; }
}
@media(max-height:600px) { #sidebar { overflow-y:auto; } #sidebar .history { flex:0 0 auto; } #sidebar #chat-list { max-height:150px; } }

body.nav-open { overflow:hidden; }
.nav-backdrop { touch-action:none; }
.app-header .header-brand { position:absolute; left:50%; transform:translateX(-50%); white-space:nowrap; }
.app-header .page-name { margin-left:0; max-width:23%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-header #menu { margin-left:auto; }

.sso-signin{display:block;padding:14px;background:var(--gold);color:#251d12;font-weight:700;text-align:center;text-decoration:none;border-radius:7px}.sso-note{font-size:.85rem;margin:12px 0 20px}#alternate-login summary{cursor:pointer;margin-bottom:14px}#alternate-login{margin-bottom:18px}

/* Saved library and generated images */
.file-card{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin:1rem 0;padding:.8rem;border:1px solid #536047;border-radius:12px;max-width:100%;overflow-wrap:anywhere}
.file-card img{display:block;max-width:100%;height:auto;border-radius:8px;flex-basis:100%;object-fit:contain;max-height:640px}
.saved-file{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;padding:1rem 0;border-bottom:1px solid #536047}
.saved-file strong{flex:1 1 100%;overflow-wrap:anywhere}
#file-list{list-style:none;padding:0}#library-search{display:flex;flex-wrap:wrap;gap:.6rem}#library-search label{flex-basis:100%}#library-query{flex:1;min-width:0}

.image-preview-open{display:block;flex-basis:100%;padding:0;border:0;background:transparent;cursor:zoom-in;max-width:100%}
.image-viewer{background:#20291e;color:#f4f2e8;border:1px solid #68765c;border-radius:12px;padding:16px;width:min(1100px,94vw);max-width:94vw;max-height:90dvh;overflow:auto;box-sizing:border-box}
.image-viewer::backdrop{background:rgba(0,0,0,.85)}
.image-viewer img{display:block;width:100%;height:auto;max-height:72dvh;object-fit:contain;margin:12px auto}
.image-viewer-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.image-viewer-controls strong{flex:1;overflow-wrap:anywhere;min-width:120px}
.image-viewer button{min-height:44px}.image-preview-open:focus-visible{outline:3px solid #efbd64;outline-offset:3px}
