:root {
  --bg:#0b0d10; --surface:#12151c; --surface2:#181c26; --surface3:#1e2330;
  --border:#222636; --border2:#2a3048;
  --accent:#f0a030; --accent-dim:#8a5a10; --accent-glow:rgba(240,160,48,0.10);
  --text:#dde2ee; --text-dim:#7080a0; --text-muted:#404860;
  --red:#d85050; --green:#40b070; --blue:#4090d0; --purple:#9070d0;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'IBM Plex Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;font-size:13px;}

/* ── Header ── */
#header{background:var(--surface);border-bottom:1px solid var(--border);padding:13px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200;}
#logo{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:17px;letter-spacing:3px;color:var(--accent);text-transform:uppercase;}
#logo span{color:var(--text-dim);font-weight:300;}
#auth-area{font-size:10px;letter-spacing:1px;color:var(--text-dim);display:flex;align-items:center;gap:10px;}
.dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0;}
.dot.green{background:var(--green);box-shadow:0 0 6px var(--green);}
.dot.red{background:var(--red);}
.dot.amber{background:var(--accent);}

/* ── Nav ── */
#nav{background:var(--surface);border-bottom:1px solid var(--border);padding:0 16px 0 8px;display:flex;align-items:center;overflow-x:auto;}
#nav-logo{height:28px;width:28px;margin-right:8px;flex-shrink:0;}
.nav-btn{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;padding:11px 14px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;transition:all .15s;white-space:nowrap;}
.nav-btn:hover{color:var(--text-dim);}
.nav-btn.active{color:var(--accent);border-bottom-color:var(--accent);}

/* ── Main ── */
#main{max-width:960px;margin:0 auto;padding:28px 24px;}

/* ── Setup ── */
#setup-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:72vh;text-align:center;gap:22px;}
#setup-screen h1{font-family:'Barlow Condensed',sans-serif;font-size:46px;font-weight:700;letter-spacing:6px;color:var(--accent);text-transform:uppercase;}
.setup-field{width:100%;max-width:460px;text-align:left;}

/* ── Forms ── */
label{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--text-dim);display:block;margin-bottom:6px;}
input,select,textarea{width:100%;padding:9px 12px;background:var(--surface2);border:1px solid var(--border2);color:var(--text);font-family:inherit;font-size:12px;border-radius:3px;outline:none;transition:border-color .15s;}
input:focus,select:focus,textarea:focus{border-color:var(--accent-dim);}
textarea{resize:vertical;line-height:1.7;}
select{cursor:pointer;}

/* ── Buttons ── */
.btn{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;padding:9px 18px;border-radius:2px;cursor:pointer;transition:all .15s;border:1px solid;}
.btn-primary{border-color:var(--accent);background:var(--accent-glow);color:var(--accent);}
.btn-primary:hover{background:rgba(240,160,48,.18);}
.btn-secondary{border-color:var(--border2);background:transparent;color:var(--text-dim);}
.btn-secondary:hover{border-color:var(--text-dim);color:var(--text);}
.btn-danger{border-color:var(--red);background:rgba(216,80,80,.08);color:var(--red);}
.btn-ghost{border-color:transparent;background:transparent;color:var(--text-muted);padding:5px 9px;}
.btn-ghost:hover{color:var(--accent);}
.btn-promote{border-color:var(--green);background:rgba(64,176,112,.08);color:var(--green);}
.btn-edit{border-color:var(--blue);background:rgba(64,144,208,.08);color:var(--blue);}
.btn-edit:hover{background:rgba(64,144,208,.16);}
.btn-promote:hover{background:rgba(64,176,112,.16);}
.btn-sm{padding:5px 12px;font-size:8px;}
.btn:disabled{opacity:.4;cursor:not-allowed;}

/* ── Status ── */
.status{padding:9px 14px;border-radius:3px;font-size:10px;letter-spacing:1px;margin-bottom:14px;border:1px solid;}
.status.success{border-color:var(--green);color:var(--green);background:rgba(64,176,112,.08);}
.status.error{border-color:var(--red);color:var(--red);background:rgba(216,80,80,.08);}
.status.info{border-color:var(--blue);color:var(--blue);background:rgba(64,144,208,.08);}
.status.warning{border-color:var(--accent);color:var(--accent);background:var(--accent-glow);}
#edit-banner{display:none;background:rgba(64,144,208,.10);border:1px solid var(--blue);border-left:3px solid var(--blue);border-radius:4px;padding:12px 18px;margin-bottom:18px;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
#edit-banner.visible{display:flex;}
.edit-banner-label{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--blue);margin-bottom:3px;}

/* ── Layout ── */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.grid-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px;}
.grid-5{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;gap:10px;}
.gap{margin-bottom:18px;}
.gap-sm{margin-bottom:10px;}
.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;}

/* ── Cards ── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:18px;margin-bottom:10px;}
.card-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;}
.card-title{font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:700;letter-spacing:2px;color:var(--accent);text-transform:uppercase;}
.card-sub{font-size:10px;color:var(--text-dim);}
.meta-row{display:flex;gap:16px;flex-wrap:wrap;font-size:10px;color:var(--text-dim);margin-bottom:12px;}
.meta-row strong{color:var(--text);}

/* ── Corner blocks ── */
.corner-block{border-left:2px solid var(--border2);padding:10px 14px;margin-bottom:8px;transition:border-color .15s;}
.corner-block:hover{border-left-color:var(--accent-dim);}
.corner-title{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--accent);text-transform:uppercase;margin-bottom:7px;display:flex;justify-content:space-between;align-items:center;}
.phase-row{display:flex;gap:8px;margin-bottom:4px;align-items:baseline;}
.phase-lbl{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);min-width:68px;flex-shrink:0;}
.phase-txt{font-size:11px;color:var(--text-dim);line-height:1.5;}

/* ── Tags ── */
.tag{display:inline-block;padding:2px 7px;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;border-radius:2px;border:1px solid;margin-right:4px;margin-bottom:2px;}
.tag-corner{border-color:var(--purple);color:var(--purple);}
.tag-wet{border-color:var(--blue);color:var(--blue);}
.tag-setup{border-color:var(--accent);color:var(--accent);}
.tag-promoted{border-color:var(--green);color:var(--green);}

/* ── Media chips ── */
.media-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);}
.media-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:2px;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;border:1px solid;transition:all .15s;white-space:nowrap;}
.chip-video{border-color:var(--red);color:var(--red);background:rgba(216,80,80,.07);}
.chip-video:hover{background:rgba(216,80,80,.16);}
.chip-data{border-color:var(--blue);color:var(--blue);background:rgba(64,144,208,.07);}
.chip-data:hover{background:rgba(64,144,208,.16);}
.chip-drive{border-color:var(--green);color:var(--green);background:rgba(64,176,112,.07);}
.chip-drive:hover{background:rgba(64,176,112,.16);}
.chip-other{border-color:var(--border2);color:var(--text-dim);}

/* ── Media input ── */
.media-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.media-entry{display:flex;gap:7px;align-items:center;margin-bottom:6px;}
.media-entry .url-in{flex:1;min-width:0;}
.media-entry .lbl-in{width:170px;flex-shrink:0;}
.rm-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:0 3px;flex-shrink:0;}
.rm-btn:hover{color:var(--red);}
.up-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;padding:0 3px;flex-shrink:0;}
.up-btn:hover{color:var(--accent);}

/* ── Mode toggle ── */
.mode-toggle{display:inline-flex;border:1px solid var(--border2);border-radius:3px;overflow:hidden;margin-bottom:18px;}
.mode-btn{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;padding:7px 14px;background:transparent;border:none;border-right:1px solid var(--border2);color:var(--text-muted);cursor:pointer;transition:all .15s;}
.mode-btn:last-child{border-right:none;}
.mode-btn.active{background:var(--accent-glow);color:var(--accent);}

/* ── Corner forms ── */
.corner-form{margin-bottom:9px;}
.cf-header{padding:9px 13px;background:var(--surface2);border:1px solid var(--border2);border-radius:3px 3px 0 0;font-size:10px;font-weight:700;letter-spacing:2px;color:var(--accent);text-transform:uppercase;cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none;}
.cf-body{border:1px solid var(--border2);border-top:none;border-radius:0 0 3px 3px;padding:13px;}
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:9px;}
.cf-grid .full{grid-column:1/-1;}
.cf-field label{font-size:8px;}
.cf-field textarea{min-height:52px;}

/* ── AI output ── */
.ai-out{background:var(--surface2);border:1px solid var(--accent-dim);border-left:3px solid var(--accent);border-radius:4px;padding:22px;font-size:12px;line-height:1.9;color:var(--text);margin-bottom:12px;}

/* ── Setup KB ── */
.kb-entry{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:14px;margin-bottom:8px;}
.kb-entry-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;}
.kb-param{font-size:11px;font-weight:600;color:var(--accent);}
.kb-effect{font-size:11px;color:var(--text-dim);line-height:1.6;margin-top:6px;}

/* ── Section header ── */
.section-hd{font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:18px;}

/* ── Divider ── */
.divider{border-top:1px solid var(--border);margin:20px 0;}

/* ── Empty ── */
.empty{text-align:center;padding:50px 0;color:var(--text-muted);font-size:11px;letter-spacing:1px;}

/* ── Spinner ── */
@keyframes spin{to{transform:rotate(360deg);}}
.spinner{width:13px;height:13px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block;vertical-align:middle;}

/* ── Search ── */
.search-filters{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:16px;margin-bottom:18px;}
.filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;}

/* ── Responsive ── */
@media(max-width:640px){
  .grid-2,.grid-3,.grid-4,.grid-5,.cf-grid{grid-template-columns:1fr;}
  #main{padding:18px 14px;}
  #header{flex-direction:column;gap:8px;}
  .media-entry{flex-wrap:wrap;}
  .media-entry .lbl-in{width:100%;}
}

/* ── Outdoor / high-contrast mode ── */
body[data-theme="outdoor"]{
  --bg:#f5f0e8; --surface:#ffffff; --surface2:#f0ece0; --surface3:#e8e4d8;
  --border:#c8c0a8; --border2:#b0a888;
  --accent:#b05000; --accent-dim:#8a3800; --accent-glow:rgba(176,80,0,0.10);
  --text:#0a0808; --text-dim:#302820; --text-muted:#605040;
  --red:#b02020; --green:#1a7040; --blue:#1a5090; --purple:#5040a0;
  font-size:14px;
}
body[data-theme="outdoor"] label,
body[data-theme="outdoor"] .btn,
body[data-theme="outdoor"] .nav-btn{font-size:10px;}
body[data-theme="outdoor"] #outdoor-btn{color:var(--accent);border-bottom-color:var(--accent);}
/* ── Chat tab ── */
.telem-run{padding:10px 12px;background:var(--bg2);border-radius:4px;margin-bottom:8px;border:1px solid var(--border);}
.telem-run-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.telem-run-head .telem-label{flex:1;font-weight:600;}
.telem-vbo-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:8px;}
.telem-vbo-lbl{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;flex-shrink:0;width:56px;}
.telem-vbo-name{flex:1;min-width:0;font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.telem-vbo-name.has-vbo{color:var(--green);}
.telem-vbo-times{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0;}
.telem-vbo-times .t-val{color:var(--text);font-weight:600;}
.telem-vbo-times .t-ideal{color:var(--green);}
.telem-videos{display:flex;flex-direction:column;gap:5px;}
.telem-video-row{display:flex;gap:6px;align-items:center;}
.telem-video-row .telem-vid-lbl{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;flex-shrink:0;width:56px;}
.telem-video-row input{flex:1;font-size:11px;}
.telem-vbo-times{font-size:10px;color:var(--text-muted);white-space:nowrap;padding:0 4px;}
.telem-vbo-times .t-val{color:var(--text);font-weight:600;}
.telem-vbo-times .t-ideal{color:var(--green);}
.session-perf{display:flex;gap:20px;align-items:baseline;padding:8px 0 10px;border-bottom:1px solid var(--border);margin-bottom:10px;flex-wrap:wrap;}
.session-perf-stat{display:flex;flex-direction:column;gap:1px;}
.session-perf-stat .sp-lbl{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);}
.session-perf-stat .sp-val{font-size:18px;font-weight:700;color:var(--text);letter-spacing:-0.5px;line-height:1.1;}
.session-perf-stat .sp-val.sp-ideal{color:var(--green);font-size:15px;}
.session-perf-stat .sp-val.sp-laps{color:var(--text-muted);font-size:13px;font-weight:400;}
.drive-folder-row{display:flex;gap:6px;align-items:center;margin-top:8px;}
.drive-folder-row input{flex:1;}
.chat-wrap{max-width:800px;margin:0 auto;}
.chat-thread{min-height:80px;max-height:60vh;overflow-y:auto;padding:8px 0;display:flex;flex-direction:column;gap:12px;margin-bottom:12px;}
.chat-msg{max-width:92%;line-height:1.55;font-size:13px;word-wrap:break-word;}
.chat-msg.user{align-self:flex-end;background:var(--accent);color:#fff;padding:9px 14px;border-radius:12px 12px 2px 12px;}
.chat-msg.assistant{align-self:flex-start;background:var(--bg-card);border:1px solid var(--border);padding:11px 16px;border-radius:2px 12px 12px 12px;}
.chat-msg.assistant h2{margin:14px 0 6px;font-size:14px;}
.chat-msg.assistant h3{margin:12px 0 5px;font-size:13px;color:var(--accent);}
.chat-msg.assistant h4{margin:10px 0 4px;font-size:12px;}
.chat-msg.assistant ul{margin:6px 0;padding-left:18px;}
.chat-msg.assistant li{margin:3px 0;}
.chat-msg.assistant hr{border:none;border-top:1px solid var(--border);margin:10px 0;}
.chat-msg.assistant code{background:var(--bg-dark);padding:1px 5px;border-radius:3px;font-family:'IBM Plex Mono',monospace;font-size:11px;}
.chat-msg.assistant strong{color:var(--text);}
.chat-tools{font-size:10px;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;padding:2px 0 2px 6px;}
.chat-typing{color:var(--text-muted);font-size:20px;padding:4px 0;letter-spacing:4px;}
.chat-input-row{display:flex;gap:8px;padding-top:10px;border-top:1px solid var(--border);}
.chat-input-row textarea{flex:1;resize:vertical;font-family:inherit;font-size:13px;padding:9px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;color:var(--text);}
.chat-input-row textarea:focus{outline:none;border-color:var(--accent);}

/* ── VBO analysis panel (v17+) — per-session findings + notes ── */
.session-analysis{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);}
.analysis-summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:10px;user-select:none;}
.analysis-summary::-webkit-details-marker{display:none;}
.analysis-summary::before{content:'▸';font-size:11px;color:var(--text-muted);transition:transform .15s;display:inline-block;width:12px;}
.session-analysis[open] .analysis-summary::before{transform:rotate(90deg);}
.analysis-title{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);font-weight:700;}
.analysis-count{font-size:10px;color:var(--text-muted);}
.analysis-body{margin-top:12px;}
.analysis-stint{margin-bottom:14px;}
.analysis-stint:last-child{margin-bottom:0;}
.analysis-stint-title{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim);font-weight:600;margin-bottom:8px;padding-bottom:4px;border-bottom:1px dashed var(--border);}
.analysis-stint-meta{color:var(--text-muted);font-weight:400;letter-spacing:1px;text-transform:none;font-size:10px;margin-left:8px;}
.analysis-rest{font-size:10px;color:var(--text-muted);font-style:italic;padding:4px 0 0 4px;}
.finding-row{background:var(--surface2);border-left:2px solid var(--border2);border-radius:3px;padding:10px 12px;margin-bottom:8px;transition:border-color .15s;}
.finding-row[data-status="studied"]{border-left-color:var(--blue);opacity:.9;}
.finding-row[data-status="actioned"]{border-left-color:var(--green);opacity:.85;}
.finding-row[data-status="dismissed"]{border-left-color:var(--text-muted);opacity:.55;}
.finding-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;flex-wrap:wrap;}
.severity-badge{display:inline-block;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;color:#fff;padding:1px 6px;border-radius:2px;font-weight:700;flex-shrink:0;}
.finding-headline{font-size:11px;color:var(--text);font-weight:600;flex:1;}
.finding-score{font-size:9px;color:var(--text-muted);font-family:'IBM Plex Mono',monospace;}
.finding-detail{font-size:11px;color:var(--text-dim);line-height:1.5;margin-bottom:4px;}
.finding-hint{font-size:10px;color:var(--text-muted);line-height:1.5;margin-left:8px;font-style:italic;}
.finding-note{display:block;width:100%;margin-top:8px;font-size:11px;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:6px 8px;border-radius:3px;resize:vertical;min-height:40px;box-sizing:border-box;font-family:inherit;}
.finding-note:focus{outline:none;border-color:var(--accent);}
.finding-actions{display:flex;gap:8px;align-items:center;margin-top:6px;}
.finding-status{font-size:10px;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:3px 6px;border-radius:3px;font-family:inherit;}
.finding-status:focus{outline:none;border-color:var(--accent);}
.finding-saved{font-size:9px;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;}

@media print{
  body>*:not(#setup-sheet-print-root){display:none!important;}
  #setup-sheet-print-root{display:block!important;}
  #setup-sheet-modal{position:static!important;background:none!important;padding:0!important;display:block!important;}
  .sheet-no-print{display:none!important;}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}
