/* SENTINEL HQ — desktop command console. FHT design language, scaled up. */
:root{
  --bg:#14110D;
  --card:#1F1A14;
  --cream:#2A241D;
  --border:#3A2E25;
  --gold:#D4AA45;
  --gold-light:#E5BD5A;
  --gold-soft:rgba(212,170,69,.13);
  --gold-glow:rgba(212,170,69,.5);
  --ink:#F5F0E8;
  --ink-mid:#B0A89C;
  --ink-mute:#7A7066;
  --green:#6BB87C;
  --red:#D9523F;
  --purple:#9B7FC8;
  --blue:#5A93C8;
  --orange:#D97A2A;
  --shadow:0 2px 12px rgba(0,0,0,.4);
  --shadow-lg:0 8px 32px rgba(0,0,0,.55);
  --rail-w:220px;
  --comms-w:360px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg)}
body{
  height:100vh;overflow:hidden;color:var(--ink);
  font-family:'DM Sans',system-ui,sans-serif;font-weight:400;
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(ellipse 60% 50% at 0% 0%, rgba(212,170,69,.06), transparent 70%),
    radial-gradient(ellipse 55% 50% at 100% 100%, rgba(126,184,212,.04), transparent 70%),
    var(--bg);
}
button{font-family:inherit;background:none;border:none;color:inherit;cursor:pointer}
input,textarea,select{font-family:inherit;color:inherit}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:10px}

/* ---------- shell grid ---------- */
#shell{display:grid;grid-template-columns:var(--rail-w) 1fr auto;height:100vh}
#main{overflow-y:auto;padding:22px 26px 40px;scroll-behavior:smooth}
#view{max-width:1440px;margin:0 auto}

/* ---------- rail ---------- */
#rail{display:flex;flex-direction:column;border-right:1px solid var(--border);background:rgba(20,17,13,.7);padding:18px 12px 14px;gap:6px}
.wordmark{font-family:'Bebas Neue',sans-serif;font-size:19px;letter-spacing:3px;color:var(--ink);padding:2px 10px 14px}
.wordmark .dot{color:var(--gold);font-size:12px;margin:0 3px}
.wordmark .hq{color:var(--gold)}
#nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}
.nav-btn{display:flex;align-items:center;gap:10px;text-align:left;padding:9px 10px;border-radius:11px;color:var(--ink-mute);font-family:'Bebas Neue',sans-serif;font-size:14px;letter-spacing:1.6px;transition:all .18s ease;position:relative}
.nav-btn .nb-ico{font-size:9px;color:var(--ink-mute);transition:color .18s ease;width:12px;text-align:center}
.nav-btn .nb-key{margin-left:auto;font-family:ui-monospace,monospace;font-size:9px;color:var(--ink-mute);opacity:0;transition:opacity .18s ease;border:1px solid var(--border);border-radius:5px;padding:1px 5px}
.nav-btn:hover{color:var(--ink-mid);background:rgba(42,36,29,.5)}
.nav-btn:hover .nb-key{opacity:.7}
.nav-btn.active{background:var(--gold-soft);color:var(--gold)}
.nav-btn.active .nb-ico{color:var(--gold)}
.nav-btn.soon{opacity:.45}
.rail-foot{border-top:1px solid var(--border);padding:12px 10px 0;display:flex;flex-direction:column;gap:5px}
.rail-status{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:1.5px;color:var(--ink-mute);text-transform:uppercase}
.link-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-mute);transition:background .25s ease}
.link-dot.up{background:var(--green);box-shadow:0 0 8px rgba(107,184,124,.6)}
.link-dot.down{background:var(--red)}
.rail-clock{display:flex;align-items:baseline;gap:7px}
.rail-clock b{font-family:'Bebas Neue',sans-serif;font-size:22px;font-weight:400;letter-spacing:1.5px;color:var(--ink)}
.rail-clock small{font-size:8px;letter-spacing:2px;color:var(--ink-mute)}
.rail-date{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12.5px;color:var(--ink-mid)}

/* ---------- auth gate ---------- */
#auth{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:center;justify-content:center}
#auth.hidden{display:none}
.auth-box{display:flex;flex-direction:column;gap:12px;width:320px;text-align:center;animation:up .4s ease}
.auth-mark{font-family:'Bebas Neue',sans-serif;font-size:34px;letter-spacing:5px;color:var(--ink)}
.auth-mark .dot{color:var(--gold);font-size:20px;margin:0 6px}
.auth-sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;color:var(--ink-mute);margin-bottom:10px}
#auth-key{background:var(--card);border:1px solid var(--border);border-radius:12px;color:var(--ink);font-size:15px;padding:13px 16px;text-align:center;letter-spacing:2px}
#auth-key:focus{outline:none;border-color:var(--gold)}
.auth-err{min-height:18px;font-size:12px;color:var(--red)}

/* ---------- bento & cards ---------- */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.b2{grid-column:span 2}
.b3{grid-column:span 3}
.b4{grid-column:span 4}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:border-color .25s ease,transform .25s ease}
.bento>.card:hover{border-color:rgba(212,170,69,.28)}
.sh{display:flex;align-items:center;gap:10px;margin:20px 2px 10px}
.sh:first-child{margin-top:2px}
.sh-label{font-size:9px;letter-spacing:2px;color:var(--gold);font-weight:600;text-transform:uppercase}
.sh-line{flex:1;height:1px;background:linear-gradient(to right,var(--gold) 0%,transparent 100%);opacity:.5}
.card-sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:var(--ink-mute)}
.card-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.card-title{font-family:'Bebas Neue',sans-serif;font-size:16px;letter-spacing:1.5px;color:var(--ink)}
.card-label{font-size:9px;letter-spacing:2px;color:var(--gold);font-weight:600;text-transform:uppercase;margin-bottom:8px}
.empty{padding:14px 2px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14.5px;color:var(--ink-mute)}
.page-anim{animation:up .3s ease}
@keyframes up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* skeleton shimmer */
.skel{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:14px;min-height:120px}
.skel::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(212,170,69,.05) 50%,transparent 70%);animation:shimmer 1.6s infinite}
@keyframes shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

/* ---------- NOW card ---------- */
.now-card{border-top:3px solid var(--gold)}
.now-card::after{content:"";position:absolute;top:-30px;right:-30px;width:150px;height:150px;background:radial-gradient(circle,var(--gold-soft),transparent 65%);pointer-events:none}
.now-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 var(--gold-soft)}50%{box-shadow:0 0 0 8px rgba(212,170,69,0)}}
.pulse-dot.moving{background:var(--purple)}
.now-label{font-size:9px;letter-spacing:2.5px;color:var(--gold);font-weight:700;text-transform:uppercase}
.now-time{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;color:var(--ink-mute);margin-bottom:4px}
.now-name{font-family:'Bebas Neue',sans-serif;font-size:34px;letter-spacing:1.5px;line-height:1.05;color:var(--ink);margin-bottom:8px}
.now-name.idle{color:var(--ink-mid)}
.now-divider{height:1px;background:var(--border);margin:13px 0 9px}
.next-label{font-size:8.5px;letter-spacing:2px;color:var(--ink-mute);text-transform:uppercase;margin-bottom:5px}
.next-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.next-left{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.next-name{font-family:'Bebas Neue',sans-serif;font-size:17px;letter-spacing:1px;color:var(--ink-mid);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.next-time{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12px;color:var(--ink-mute)}

.cd-pill{display:inline-flex;align-items:center;gap:6px;font-family:ui-monospace,monospace;font-size:11px;background:var(--cream);border:1px solid var(--border);padding:5px 11px;border-radius:14px;letter-spacing:.4px;font-weight:600;white-space:nowrap;flex-shrink:0;color:var(--ink-mid)}
.cd-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-mute);flex-shrink:0}
.cd-pill.far{color:var(--green);border-color:rgba(107,184,124,.4);background:rgba(107,184,124,.08)}
.cd-pill.far .cd-dot{background:var(--green);box-shadow:0 0 8px rgba(107,184,124,.55)}
.cd-pill.mid{color:var(--orange);border-color:rgba(217,122,42,.45);background:rgba(217,122,42,.08)}
.cd-pill.mid .cd-dot{background:var(--orange);box-shadow:0 0 8px rgba(217,122,42,.55)}
.cd-pill.near{color:var(--red);border-color:rgba(217,82,63,.45);background:rgba(217,82,63,.08)}
.cd-pill.near .cd-dot{background:var(--red);box-shadow:0 0 10px rgba(217,82,63,.65);animation:pulse-near 1s ease-in-out infinite}
.cd-pill.live{color:var(--gold);border-color:var(--gold);background:var(--gold-soft)}
.cd-pill.live .cd-dot{background:var(--gold);box-shadow:0 0 12px var(--gold);animation:pulse-near .9s ease-in-out infinite}
@keyframes pulse-near{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}

/* status pills */
.mode-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,rgba(212,170,69,.16),rgba(229,189,90,.08));border:1px solid rgba(212,170,69,.45);color:var(--gold-light);font-family:'Bebas Neue',sans-serif;letter-spacing:1.8px;font-size:14px;padding:5px 12px;border-radius:999px}
.mode-pill .cd-dot{background:var(--gold-light);animation:pulse 1.8s ease-in-out infinite}
.sys-warn{background:rgba(217,122,42,.10);border:1px solid rgba(217,122,42,.4);color:var(--orange);border-radius:10px;padding:7px 11px;font-size:12.5px}
.pill{font-size:8px;letter-spacing:1px;border-radius:8px;padding:2px 8px;text-transform:uppercase}
.pill.ok{color:var(--green);background:rgba(107,184,124,.1)}
.pill.dim{color:var(--ink-mute);background:var(--cream)}

/* ---------- stats / numbers ---------- */
.big-stat{display:flex;align-items:baseline;gap:10px;margin-bottom:4px;flex-wrap:wrap}
.big-num{font-family:'Bebas Neue',sans-serif;font-size:42px;letter-spacing:1px;color:var(--ink);line-height:1}
.big-unit{font-family:'Bebas Neue',sans-serif;font-size:17px;color:var(--ink-mute)}
.delta{font-size:12px;font-weight:500;padding:3px 9px;border-radius:10px}
.delta.down{color:var(--green);background:rgba(107,184,124,.1)}
.delta.up{color:var(--red);background:rgba(217,82,63,.1)}
.delta.flat{color:var(--ink-mute);background:var(--cream)}
.prog-row{display:flex;align-items:center;gap:10px;margin:10px 0 4px}
.prog-bar{flex:1;height:8px;background:var(--cream);border-radius:4px;overflow:hidden;border:1px solid var(--border)}
.prog-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--gold),var(--gold-light));transition:width .8s ease}
.prog-fill.green{background:linear-gradient(90deg,var(--green),#7fcf91)}
.prog-pct{font-family:'Bebas Neue',sans-serif;font-size:13px;letter-spacing:1px;color:var(--gold)}
.chart-wrap{width:100%;overflow:hidden;margin-top:6px}
.chart-wrap svg{display:block;width:100%;height:auto}
.chart-caption{font-size:10px;color:var(--ink-mute);margin-top:6px;display:flex;justify-content:space-between;font-family:'Cormorant Garamond',serif;font-style:italic}
.chart-line{stroke-dasharray:1400;stroke-dashoffset:1400;animation:drawline 1.2s ease forwards}
@keyframes drawline{to{stroke-dashoffset:0}}

/* quick stat tiles */
.stat-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stat-tile{background:var(--cream);border:1px solid var(--border);border-radius:11px;padding:11px 13px;display:flex;flex-direction:column;gap:2px}
.stat-tile .st-num{font-family:'Bebas Neue',sans-serif;font-size:26px;color:var(--ink);line-height:1}
.stat-tile .st-num small{font-size:13px;color:var(--ink-mute)}
.stat-tile .st-label{font-size:8px;letter-spacing:1.5px;color:var(--gold);text-transform:uppercase;font-weight:600}
.stat-tile .st-sub{font-size:10.5px;color:var(--ink-mute);font-family:'Cormorant Garamond',serif;font-style:italic}

/* biz rows */
.biz-row{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}
.biz-row:last-child{border-bottom:none}
.biz-num{font-family:'Bebas Neue',sans-serif;font-size:19px;color:var(--ink);min-width:58px;text-align:right}
.biz-num.gold{color:var(--gold)}
.biz-label{font-size:12px;color:var(--ink-mid);flex:1}
.biz-delta{font-size:10.5px;color:var(--green)}

/* ---------- rows: tasks / focus / lists ---------- */
.frow{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}
.frow:last-of-type{border-bottom:none}
.frank{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:1px;color:var(--gold);min-width:18px;text-align:center;flex-shrink:0}
.ftext{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.ftitle{font-size:13.5px;color:var(--ink);font-weight:500}
.fwhy{font-size:12px;color:var(--ink-mute);font-family:'Cormorant Garamond',serif;font-style:italic}
.frow.done .ftitle{text-decoration:line-through;color:var(--ink-mute)}
.frow.done .frank{color:var(--ink-mute)}
.fstamp{font-size:10px;letter-spacing:1.2px;color:var(--ink-mute);text-transform:uppercase;padding:8px 0 2px;text-align:right}
.mrow{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}
.mrow:last-child{border-bottom:none}
.m-check{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;transition:all .15s ease}
.m-check:hover{border-color:var(--gold)}
.m-check.done{background:var(--green);border-color:var(--green);color:#fff}
.mrow .mtitle{font-size:13.5px;flex:1;color:var(--ink);min-width:0}
.mrow .mtitle .mmeta{display:block;font-size:11px;color:var(--ink-mute);margin-top:2px;font-family:'Cormorant Garamond',serif;font-style:italic}
.mrow.done .mtitle{text-decoration:line-through;color:var(--ink-mute)}
.item-del{color:var(--ink-mute);font-size:12px;padding:4px 6px;flex-shrink:0}
.item-del:hover{color:var(--red)}
.form-row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.form-row input{background:var(--cream);border:1px solid var(--border);border-radius:10px;color:var(--ink);font-size:13px;padding:9px 12px;flex:1;min-width:100px}
.form-row input:focus{outline:none;border-color:var(--gold)}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#14110D;border:none;border-radius:10px;font-family:'Bebas Neue',sans-serif;font-size:14px;letter-spacing:1.5px;padding:9px 20px;box-shadow:0 4px 14px rgba(212,170,69,.25);transition:transform .12s ease}
.btn-gold:hover{transform:translateY(-1px)}
.btn-gold:active{transform:scale(.97)}

/* up next */
.up-row{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);align-items:baseline}
.up-row:last-child{border-bottom:none}
.up-when{font-family:'Bebas Neue',sans-serif;font-size:13px;letter-spacing:1px;color:var(--gold);min-width:96px}
.up-title{font-size:13.5px;color:var(--ink);flex:1}
.up-title .loc{display:block;font-size:11px;color:var(--ink-mute)}
.up-src{font-size:7.5px;letter-spacing:1.5px;color:var(--ink-mute);text-transform:uppercase;border:1px solid var(--border);border-radius:8px;padding:2px 7px}

/* brief */
.sitrep-body{font-size:13.5px;line-height:1.75;white-space:pre-wrap;color:var(--ink-mid)}
.sitrep-body.clamped{display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
.brief-toggle{margin-top:12px;width:100%;padding:9px;border-radius:10px;background:var(--cream);border:1px solid var(--border);color:var(--ink-mid);font-family:'Bebas Neue',sans-serif;font-size:12px;letter-spacing:1.5px;transition:color .15s ease}
.brief-toggle:hover{color:var(--gold)}

/* location */
.loc-now{display:flex;align-items:center;gap:10px}
.loc-now-place{font-family:'Bebas Neue',sans-serif;font-size:27px;letter-spacing:1.2px;color:var(--ink);line-height:1}
.loc-now-dur{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:var(--ink-mute);margin-left:auto}

/* ---------- comms pane ---------- */
#comms{position:relative;width:var(--comms-w);border-left:1px solid var(--border);background:rgba(26,22,17,.75);display:flex;flex-direction:column;transition:width .25s ease}
#comms.collapsed{width:0;border-left:none}
#comms.collapsed .comms-inner{display:none}
#comms-tab{position:absolute;left:-34px;top:50%;transform:translateY(-50%);width:28px;height:64px;border-radius:10px 0 0 10px;background:var(--card);border:1px solid var(--border);border-right:none;color:var(--gold);font-size:11px;display:none;align-items:center;justify-content:center;box-shadow:var(--shadow)}
#comms.collapsed #comms-tab{display:flex}
.comms-inner{display:flex;flex-direction:column;height:100%;min-width:var(--comms-w)}
.comms-head{display:flex;align-items:baseline;gap:10px;padding:15px 16px;border-bottom:1px solid var(--border);background:rgba(42,36,29,.5)}
.comms-title{font-family:'Bebas Neue',sans-serif;font-size:16px;letter-spacing:2.5px;color:var(--ink)}
.comms-sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12px;color:var(--ink-mute)}
#comms-collapse{margin-left:auto;color:var(--ink-mute);font-size:16px;padding:0 4px}
#comms-collapse:hover{color:var(--gold)}
#comms-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:9px}
.msg{max-width:88%;padding:9px 13px;font-size:13px;line-height:1.6;white-space:pre-wrap;border-radius:14px}
.msg.me{align-self:flex-end;background:var(--gold-soft);border:1px solid rgba(212,170,69,.3);color:var(--ink);border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;background:var(--cream);border:1px solid var(--border);color:var(--ink-mid);border-bottom-left-radius:4px}
.msg.pending{opacity:.5;font-family:'Cormorant Garamond',serif;font-style:italic}
.comms-input{display:flex;gap:7px;padding:12px;border-top:1px solid var(--border)}
.comms-input input{flex:1;background:var(--cream);border:1px solid var(--border);border-radius:12px;font-size:13px;padding:10px 13px;min-width:0}
.comms-input input:focus{outline:none;border-color:var(--gold)}
#comms-send{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#14110D;border-radius:12px;font-family:'Bebas Neue',sans-serif;font-size:13px;letter-spacing:1.5px;padding:0 16px}
#comms-mic{background:var(--cream);border:1px solid var(--border);border-radius:12px;font-size:15px;padding:0 12px;color:var(--ink-mid);transition:all .2s ease}
#comms-mic.recording{border-color:var(--red);color:var(--red);background:rgba(217,82,63,.08);animation:mic-pulse 1.2s ease-in-out infinite}
@keyframes mic-pulse{0%,100%{box-shadow:0 0 0 0 rgba(217,82,63,.35)}50%{box-shadow:0 0 0 6px rgba(217,82,63,0)}}

/* toast */
.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,20px);background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#14110D;font-family:'Bebas Neue',sans-serif;font-size:13px;letter-spacing:1.5px;border-radius:12px;padding:10px 24px;opacity:0;transition:all .25s;z-index:50;box-shadow:var(--shadow-lg)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* coming-soon placeholder */
.soon-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:70px 20px;text-align:center}
.soon-ico{font-size:22px;color:var(--gold);opacity:.6}
.soon-title{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:2.5px;color:var(--ink-mid)}
.soon-sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;color:var(--ink-mute);max-width:420px;line-height:1.6}
.soon-phase{font-size:9px;letter-spacing:2px;color:var(--gold);text-transform:uppercase;border:1px solid var(--gold-soft);border-radius:999px;padding:4px 12px;margin-top:6px}

/* ---------- toolbars / filters ---------- */
.tl-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 14px}
.tl-layers{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.filter-btn{background:var(--card);border:1px solid var(--border);border-radius:11px;color:var(--ink-mute);font-size:10px;letter-spacing:1.2px;padding:7px 12px;text-transform:uppercase;transition:all .16s ease}
.filter-btn:hover{color:var(--ink-mid);border-color:var(--ink-mute)}
.filter-btn.active{border-color:var(--gold);color:var(--gold);background:var(--gold-soft)}
.date-in{background:var(--card);border:1px solid var(--border);border-radius:11px;color:var(--ink);font-size:12px;padding:6px 10px}
.date-in:focus{outline:none;border-color:var(--gold)}

/* ---------- year heatmap ---------- */
.hm-card{overflow-x:auto}
.hm-wrap{display:flex;flex-direction:column;gap:4px;min-width:max-content;padding-bottom:4px}
.hm-months{display:grid;gap:2px;font-size:9px;letter-spacing:1px;color:var(--ink-mute);text-transform:uppercase;height:12px}
.hm-grid{display:grid;grid-auto-flow:column;gap:2px;grid-template-rows:repeat(7,11px)}
.hm-cell{width:11px;height:11px;border-radius:2px;background:var(--cream);border:1px solid rgba(58,46,37,.6);cursor:default}
.hm-cell.hm-out{background:transparent;border-color:transparent}
.hm-cell.hm-none{background:var(--cream)}
.hm-cell.hm-1{background:rgba(212,170,69,.25);border-color:rgba(212,170,69,.3);cursor:pointer}
.hm-cell.hm-2{background:rgba(212,170,69,.45);border-color:rgba(212,170,69,.45);cursor:pointer}
.hm-cell.hm-3{background:rgba(212,170,69,.7);border-color:rgba(212,170,69,.6);cursor:pointer}
.hm-cell.hm-4{background:var(--gold);border-color:var(--gold-light);cursor:pointer;box-shadow:0 0 6px var(--gold-soft)}
.hm-cell.hm-kg{background:rgba(90,147,200,.55);border-color:rgba(90,147,200,.5);cursor:pointer}
.hm-cell.hm-0{background:var(--cream)}
.hm-cell:hover{outline:1px solid var(--gold-light)}
.tl-legend{display:flex;align-items:center;gap:4px;font-size:9px;color:var(--ink-mute);text-transform:uppercase;letter-spacing:1px}
.tl-legend i{width:11px;height:11px;border-radius:2px;display:inline-block}

/* ---------- timeline feed ---------- */
.tl-feed{display:flex;flex-direction:column;gap:14px}
.tlday{scroll-margin-top:20px}
.tl-flash{animation:tlflash 1.4s ease}
@keyframes tlflash{0%,100%{box-shadow:var(--shadow)}30%{box-shadow:0 0 0 2px var(--gold),0 0 24px var(--gold-soft)}}
.tl-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:12px}
.tl-date{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:1.5px;color:var(--gold)}
.tl-dow{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;color:var(--ink-mute)}
.tl-chips{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.tl-chip{font-size:10px;letter-spacing:.6px;background:var(--cream);border:1px solid var(--border);border-radius:9px;padding:3px 9px;color:var(--ink-mid)}
.tl-chip.gold{color:var(--gold);border-color:rgba(212,170,69,.4);background:var(--gold-soft);font-family:ui-monospace,monospace;font-weight:600}
.tl-chip.dim{color:var(--ink-mute)}
.tl-body{display:flex;flex-direction:column;gap:14px}
.tl-sec-t{font-size:8.5px;letter-spacing:2px;color:var(--gold);text-transform:uppercase;font-weight:600;margin-bottom:6px}
.tl-item{display:flex;gap:12px;align-items:baseline;padding:4px 0}
.tl-time{font-family:ui-monospace,monospace;font-size:11px;color:var(--ink-mute);min-width:44px;flex-shrink:0}
.tl-txt{font-size:13px;color:var(--ink);line-height:1.55;flex:1;min-width:0}
.tl-txt b{color:var(--ink);font-weight:600}
.tl-note{display:block;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12.5px;color:var(--ink-mute);line-height:1.5;margin-top:2px}
.tl-miss{color:var(--red);font-size:10px;letter-spacing:1px;text-transform:uppercase;border:1px solid rgba(217,82,63,.4);border-radius:7px;padding:1px 6px}
.tl-done{text-decoration:line-through;color:var(--ink-mute)}
.tl-dir{font-family:'Bebas Neue',sans-serif;margin-right:4px}
.tl-dir.enter{color:var(--green)}
.tl-dir.leave{color:var(--orange)}
.tl-photo{width:150px;border-radius:10px;overflow:hidden;border:1px solid var(--border);cursor:pointer}
.tl-photo img{width:100%;display:block;transition:transform .35s ease}
.tl-photo:hover img{transform:scale(1.05)}
.tl-acc-h{width:100%;display:flex;justify-content:space-between;align-items:center;padding:9px 0;font-size:8.5px;letter-spacing:2px;color:var(--gold);text-transform:uppercase;font-weight:600}
.tl-arrow{font-size:9px;transition:transform .2s ease;color:var(--ink-mute)}
.tl-acc.open .tl-arrow,.note-card.open .tl-arrow{transform:rotate(45deg);color:var(--gold)}
.tl-acc-b{display:none;padding-bottom:8px}
.tl-acc.open .tl-acc-b{display:block}
.tl-loading{padding:24px;text-align:center;font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--ink-mute)}
.tl-end{padding:30px;text-align:center;font-family:'Bebas Neue',sans-serif;letter-spacing:2px;font-size:12px;color:var(--ink-mute)}

/* ---------- tables ---------- */
.trow{display:flex;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--border);font-size:12.5px}
.trow:last-child{border-bottom:none}
.trow:hover{background:rgba(42,36,29,.35)}
.trow.missed{opacity:.5}
.tr-date{font-family:'Bebas Neue',sans-serif;font-size:13px;letter-spacing:1px;color:var(--gold);min-width:74px}
.tr-time{font-family:ui-monospace,monospace;font-size:11px;color:var(--ink-mute);min-width:44px}
.tr-type{flex:1;color:var(--ink);min-width:0}
.tr-src{font-size:9px;letter-spacing:1px;color:var(--ink-mute);text-transform:uppercase}
.tr-more{font-size:9px;letter-spacing:1px;color:var(--ink-mute);text-transform:uppercase;border:1px solid var(--border);border-radius:7px;padding:2px 8px}
.tr-more:hover{color:var(--gold);border-color:var(--gold)}
.tr-notes{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:var(--ink-mid);line-height:1.6;padding:2px 0 12px 74px;border-bottom:1px solid var(--border)}
.wk-head{font-size:8.5px;letter-spacing:2px;color:var(--gold);text-transform:uppercase;font-weight:600;margin:14px 0 6px}
.wk-head:first-child{margin-top:0}
.fact-row{padding:7px 0;border-bottom:1px solid var(--border);display:flex;gap:12px;align-items:baseline;font-size:12.5px;color:var(--ink-mid)}
.fact-row:last-child{border-bottom:none}
.fact-row .pill{margin-left:auto;flex-shrink:0}
.pat-row{padding:11px 0;border-bottom:1px solid var(--border)}
.pat-row:last-child{border-bottom:none}
.pat-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}
.pat-domain{font-size:8px;letter-spacing:1.5px;color:var(--gold);text-transform:uppercase;font-weight:600}
.pat-conf{font-size:9px;letter-spacing:1px;color:var(--gold)}
.pat-text{font-size:13px;color:var(--ink);line-height:1.45}

/* log / conversation */
.log-row{padding:11px 0;border-bottom:1px solid var(--border)}
.log-row:last-child{border-bottom:none}
.log-meta{display:flex;gap:10px;align-items:baseline;margin-bottom:3px;flex-wrap:wrap}
.log-when{font-family:'Bebas Neue',sans-serif;font-size:11px;letter-spacing:1px;color:var(--gold)}
.log-kind{font-size:8px;letter-spacing:1.5px;color:var(--ink-mute);text-transform:uppercase}
.log-text{font-size:13px;line-height:1.6;color:var(--ink-mid);white-space:pre-wrap}
.cv-row{padding:9px 0;border-bottom:1px solid var(--border)}
.cv-row:last-child{border-bottom:none}
.cv-meta{font-size:9px;letter-spacing:1.2px;color:var(--ink-mute);text-transform:uppercase;margin-bottom:3px}
.cv-txt{font-size:13px;line-height:1.6;white-space:pre-wrap}
.cv-in .cv-txt{color:var(--ink);border-left:2px solid var(--gold);padding-left:10px}
.cv-out .cv-txt{color:var(--ink-mid);border-left:2px solid var(--border);padding-left:10px}

/* ---------- map ---------- */
.map-box{position:relative;height:420px;border:none;overflow:hidden;background:var(--cream)}
.map-full{height:520px}
.map-box .leaflet-container{background:#0d0b08;font-family:'DM Sans',sans-serif}
.map-box .leaflet-control-zoom a{background:var(--card);color:var(--ink-mid);border-color:var(--border)}
.map-box .leaflet-control-zoom a:hover{background:var(--cream);color:var(--gold)}
.map-box .leaflet-control-attribution{background:rgba(20,17,13,.7);color:var(--ink-mute);font-size:9px}
.map-box .leaflet-control-attribution a{color:var(--ink-mute)}
.map-box .leaflet-popup-content-wrapper,.map-box .leaflet-popup-tip{background:var(--card);color:var(--ink);border:1px solid var(--border)}
.map-box .leaflet-popup-content{font-size:12.5px;margin:9px 12px}
.map-box .leaflet-popup-content b{font-family:'Bebas Neue',sans-serif;letter-spacing:.8px;color:var(--gold);font-weight:400}
.loc-marker-dot{display:block;width:16px;height:16px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(20,17,13,.9),0 0 14px var(--gold);animation:pulse-near 1.1s ease-in-out infinite}
.play-row{display:flex;align-items:center;gap:12px}
.play-btn{width:36px;height:36px;border-radius:50%;background:var(--cream);border:1px solid var(--border);color:var(--gold);font-size:12px;flex-shrink:0}
.play-btn:hover{border-color:var(--gold)}
.play-scrub{flex:1;accent-color:var(--gold);height:4px}
.play-time{font-family:ui-monospace,monospace;font-size:13px;color:var(--gold);min-width:44px}
.loc-evt{display:flex;align-items:baseline;gap:11px;padding:8px 0;border-bottom:1px solid var(--border)}
.loc-evt:last-child{border-bottom:none}
.loc-evt-dir{font-family:'Bebas Neue',sans-serif;font-size:16px;width:18px;text-align:center;flex-shrink:0}
.loc-evt-dir.enter{color:var(--green)}
.loc-evt-dir.leave{color:var(--orange)}
.loc-evt-place{font-size:13.5px;color:var(--ink);flex:1}
.loc-evt-meta{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12px;color:var(--ink-mute)}
.place-kind{font-size:8px;letter-spacing:1.2px;text-transform:uppercase;font-weight:600;border-radius:8px;padding:3px 8px;flex-shrink:0;background:var(--cream);color:var(--ink-mute);min-width:48px;text-align:center}
.place-kind.k-home{color:var(--green);background:rgba(107,184,124,.12)}
.place-kind.k-gym{color:var(--gold);background:var(--gold-soft)}
.place-kind.k-store{color:var(--purple);background:rgba(155,127,200,.12)}
.dwell-row{display:flex;align-items:center;gap:12px;padding:5px 0}
.dwell-name{font-size:12.5px;color:var(--ink);min-width:120px}
.dwell-bar{flex:1;height:8px;background:var(--cream);border-radius:4px;overflow:hidden;border:1px solid var(--border)}
.dwell-fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-light));border-radius:4px}
.dwell-val{font-family:ui-monospace,monospace;font-size:11px;color:var(--gold);min-width:60px;text-align:right}
.dwell-visits{font-size:10px;color:var(--ink-mute);min-width:60px}

/* ---------- week grid ---------- */
.week7{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.w7col{border:1px solid var(--border);border-radius:11px;padding:9px;background:var(--cream);min-height:90px}
.w7col.today{border-color:var(--gold);box-shadow:0 0 16px var(--gold-soft)}
.w7col.past{opacity:.45}
.w7head{font-family:'Bebas Neue',sans-serif;font-size:12px;letter-spacing:1.4px;color:var(--ink-mid);padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline}
.w7head span{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:11px;color:var(--ink-mute)}
.w7col.today .w7head{color:var(--gold)}
.w7item{border-radius:8px;padding:5px 7px;margin-bottom:4px;background:var(--card);border:1px solid var(--border)}
.w7item.gym{border-color:rgba(212,170,69,.4);background:var(--gold-soft)}
.w7item.calendar{border-color:rgba(90,147,200,.35)}
.w7time{display:block;font-family:'Bebas Neue',sans-serif;font-size:10.5px;letter-spacing:.6px;color:var(--gold)}
.w7item.other .w7time,.w7item.calendar .w7time{color:var(--ink-mute)}
.w7title{display:block;font-size:10.5px;line-height:1.3;color:var(--ink-mid);margin-top:1px}
.w7empty{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:11.5px;color:var(--ink-mute)}
.mode-row{display:flex;gap:8px;flex-wrap:wrap}
.mode-btn{flex:1;min-width:180px;border:1px solid var(--border);background:var(--cream);border-radius:11px;padding:11px 14px;color:var(--ink-mid);font-size:12.5px;text-align:left;transition:all .18s ease}
.mode-btn:hover{border-color:var(--ink-mute)}
.mode-btn.active{border-color:var(--gold);color:var(--gold);background:var(--gold-soft)}
.orow{display:flex;gap:9px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--border)}
.orow:last-of-type{border-bottom:none}
.odot{color:var(--gold);font-size:10px}
.otext{color:var(--ink);font-size:13.5px;line-height:1.5;flex:1}

/* ---------- photos + compare ---------- */
.pg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}
.pg-cell{position:relative;aspect-ratio:3/4;border-radius:10px;overflow:hidden;border:1px solid var(--border);cursor:pointer;background:var(--bg)}
.pg-cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.pg-cell:hover img{transform:scale(1.06)}
.pg-date{position:absolute;left:0;right:0;bottom:0;padding:14px 8px 6px;font-family:'Bebas Neue',sans-serif;font-size:11px;letter-spacing:1px;color:var(--ink);background:linear-gradient(to top,rgba(10,8,5,.9),transparent);pointer-events:none}
.pg-wt{position:absolute;top:6px;right:6px;font-family:ui-monospace,monospace;font-size:10px;font-weight:600;color:var(--gold);background:rgba(10,8,5,.62);border:1px solid var(--gold-soft);border-radius:8px;padding:2px 6px;pointer-events:none}
.pg-lb{position:fixed;inset:0;z-index:60;background:rgba(8,6,4,.94);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:32px;animation:pgfade .2s ease}
@keyframes pgfade{from{opacity:0}to{opacity:1}}
.pg-lb-box{position:relative;max-width:min(92vw,760px);max-height:90vh;display:flex;flex-direction:column;align-items:center}
.pg-lb-box img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow-lg)}
.pg-lb-meta{display:flex;align-items:center;gap:14px;margin-top:14px;flex-wrap:wrap;justify-content:center}
.pg-lb-date{font-family:'Bebas Neue',sans-serif;font-size:17px;letter-spacing:1.5px;color:var(--ink)}
.pg-lb-wt{font-family:ui-monospace,monospace;font-size:13px;font-weight:600;color:var(--gold)}
.pg-lb-cap{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;color:var(--ink-mid)}
.pg-lb-idx{font-size:10px;letter-spacing:1.5px;color:var(--ink-mute)}
.pg-lb-x{position:absolute;top:-8px;right:-8px;width:38px;height:38px;border-radius:50%;background:var(--card);border:1px solid var(--border);color:var(--ink);font-size:15px;display:flex;align-items:center;justify-content:center}
.pg-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(31,26,20,.85);border:1px solid var(--border);color:var(--gold);font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center}
.pg-prev{left:-14px}.pg-next{right:-14px}
.cmp{margin:14px 0}
.cmp-stage{position:relative;width:100%;max-width:620px;aspect-ratio:3/4;margin:0 auto;border-radius:12px;overflow:hidden;border:1px solid var(--border);cursor:ew-resize;user-select:none;touch-action:none;background:var(--bg)}
.cmp-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
/* the "now" image sits full-size on top and is revealed by clip-path, so the
   photo never distorts as the handle moves */
.cmp-a-wrap{position:absolute;inset:0;clip-path:inset(0 50% 0 0)}
.cmp-handle{position:absolute;top:0;bottom:0;width:2px;background:var(--gold);box-shadow:0 0 12px var(--gold);pointer-events:none;transform:translateX(-1px)}
.cmp-handle span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:var(--card);border:2px solid var(--gold);box-shadow:var(--shadow-lg)}
.cmp-tag{position:absolute;bottom:10px;font-family:'Bebas Neue',sans-serif;font-size:11px;letter-spacing:1.2px;color:var(--ink);background:rgba(10,8,5,.72);border-radius:8px;padding:3px 9px;pointer-events:none}
.cmp-tag-l{left:10px}.cmp-tag-r{right:10px}
.cmp-picks{display:flex;gap:16px;justify-content:center;margin-top:12px;font-size:11px;color:var(--ink-mute);letter-spacing:1px;text-transform:uppercase}
.cmp-picks select{background:var(--cream);border:1px solid var(--border);border-radius:9px;color:var(--ink);font-size:12px;padding:5px 8px;margin-left:6px}

/* ---------- content cards ---------- */
.ct-card{padding:0;display:flex;flex-direction:column}
.ct-thumb{aspect-ratio:16/10;background:var(--bg);overflow:hidden}
.ct-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ct-thumb.ct-none{display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:3px;color:var(--ink-mute);background:var(--cream)}
.ct-body{padding:13px 15px;flex:1;display:flex;flex-direction:column;gap:6px}
.ct-title{font-size:13px;color:var(--ink);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ct-meta{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:11.5px;color:var(--ink-mute)}
.ct-pills{display:flex;gap:5px;flex-wrap:wrap}
.ct-scores{font-family:ui-monospace,monospace;font-size:10px;color:var(--ink-mute)}
.ct-themes{display:flex;gap:4px;flex-wrap:wrap}
.ct-themes span{font-size:9px;letter-spacing:.8px;color:var(--ink-mute);border:1px solid var(--border);border-radius:7px;padding:2px 7px}
.ct-open{border-top:1px solid var(--border);padding:10px;font-family:'Bebas Neue',sans-serif;font-size:11px;letter-spacing:1.5px;color:var(--ink-mute);transition:all .18s ease}
.ct-open:hover{color:var(--gold);background:var(--gold-soft)}

/* ---------- systems rows ---------- */
.sys-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}
.sys-row:last-child{border-bottom:none}
.sys-name{font-family:'Bebas Neue',sans-serif;font-size:14px;letter-spacing:1.2px;color:var(--ink);min-width:130px}
.sys-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--ink-mute)}
.sys-dot.green{background:var(--green);box-shadow:0 0 8px rgba(107,184,124,.6)}
.sys-dot.orange{background:var(--orange);box-shadow:0 0 8px rgba(217,122,42,.6)}
.sys-dot.red{background:var(--red);box-shadow:0 0 8px rgba(217,82,63,.6);animation:pulse-near 1.2s ease-in-out infinite}
.sys-val{font-family:ui-monospace,monospace;font-size:12px;color:var(--ink-mid);min-width:120px}
.sys-sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12px;color:var(--ink-mute);flex:1}

/* ---------- vault ---------- */
.note-card{padding:0;overflow:hidden}
.note-head{width:100%;display:flex;align-items:baseline;gap:12px;padding:12px 16px;text-align:left}
.note-date{font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:1.2px;color:var(--gold)}
.note-path{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12px;color:var(--ink-mute);flex:1}
.note-body{display:none;padding:0 18px 18px}
.note-card.open .note-body,.note-body.open{display:block}
.vault-layout{display:grid;grid-template-columns:280px 1fr;gap:14px;align-items:start}
.vault-side{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px;max-height:70vh;display:flex;flex-direction:column;gap:8px}
.vault-search{background:var(--cream);border:1px solid var(--border);border-radius:10px;color:var(--ink);font-size:12px;padding:8px 11px}
.vault-search:focus{outline:none;border-color:var(--gold)}
.vault-list{overflow-y:auto;display:flex;flex-direction:column;gap:1px}
.vault-dir{font-size:8.5px;letter-spacing:1.6px;color:var(--gold);text-transform:uppercase;font-weight:600;margin:10px 0 3px;padding:0 4px}
.vault-file{text-align:left;font-size:12px;color:var(--ink-mid);padding:5px 8px;border-radius:8px;transition:all .14s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vault-file:hover{background:var(--cream);color:var(--ink)}
.vault-file.active{background:var(--gold-soft);color:var(--gold)}
.vault-pane{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:20px 24px;min-height:300px;max-height:70vh;overflow-y:auto}
.vault-title{font-family:'Bebas Neue',sans-serif;font-size:16px;letter-spacing:1.5px;color:var(--gold);padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:14px}
.md-body,.note-body{font-size:13.5px;line-height:1.7;color:var(--ink-mid)}
.md-body h1,.note-body h1{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:1.5px;color:var(--ink);margin:16px 0 8px}
.md-body h2,.note-body h2{font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:1.8px;color:var(--gold);margin:18px 0 6px;text-transform:uppercase}
.md-body h3,.note-body h3{font-size:14px;color:var(--ink);margin:12px 0 5px;font-weight:600}
.md-body p,.note-body p{margin:8px 0}
.md-body ul,.note-body ul{margin:6px 0 6px 18px}
.md-body li,.note-body li{margin:3px 0}
.md-body li.md-done{text-decoration:line-through;color:var(--ink-mute)}
.md-body blockquote,.note-body blockquote{border-left:2px solid var(--gold-soft);padding-left:12px;color:var(--ink-mute);font-family:'Cormorant Garamond',serif;font-style:italic;margin:8px 0}
.md-body code,.note-body code{font-family:ui-monospace,monospace;font-size:12px;background:var(--cream);padding:1px 5px;border-radius:5px;color:var(--gold)}
.md-pre{background:var(--cream);border:1px solid var(--border);border-radius:10px;padding:12px;overflow-x:auto;font-family:ui-monospace,monospace;font-size:11.5px;color:var(--ink-mid);white-space:pre-wrap}
.md-fm{background:var(--cream);border:1px solid var(--border);border-left:2px solid var(--gold);border-radius:8px;padding:10px 12px;font-family:ui-monospace,monospace;font-size:11px;color:var(--ink-mute);white-space:pre-wrap;margin-bottom:12px}
.md-img{max-width:280px;border-radius:10px;border:1px solid var(--border);display:block;margin:10px 0}
.md-wiki{color:var(--gold);cursor:pointer;border-bottom:1px dashed var(--gold-soft)}
.md-body hr,.note-body hr{border:none;border-top:1px solid var(--border);margin:14px 0}
.md-body a,.note-body a{color:var(--gold)}

/* ---------- command palette ---------- */
.pal-ov{position:fixed;inset:0;z-index:70;background:rgba(8,6,4,.72);backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;animation:pgfade .15s ease}
.pal{width:min(90vw,620px);background:var(--card);border:1px solid var(--gold-soft);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}
.pal-in{width:100%;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--ink);font-size:15px;padding:17px 20px}
.pal-in:focus{outline:none}
.pal-list{max-height:52vh;overflow-y:auto;padding:6px}
.pal-row{width:100%;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;text-align:left}
.pal-row.sel,.pal-row:hover{background:var(--gold-soft)}
.pal-ico{color:var(--gold);font-size:11px;width:16px;text-align:center}
.pal-label{flex:1;font-size:13.5px;color:var(--ink)}
.pal-hint{font-size:9px;letter-spacing:1.2px;color:var(--ink-mute);text-transform:uppercase}
.pal-foot{border-top:1px solid var(--border);padding:9px 18px;font-size:9px;letter-spacing:1.4px;color:var(--ink-mute);text-transform:uppercase}

/* ---------- responsive ---------- */
@media (max-width:1600px){.bento{grid-template-columns:repeat(3,1fr)}.b3,.b4{grid-column:span 3}}
@media (max-width:1280px){
  :root{--rail-w:64px}
  .wordmark{font-size:0;padding:2px 0 14px;text-align:center}
  .wordmark .dot{font-size:16px;margin:0}
  .wordmark .hq{display:none}
  .nav-btn{justify-content:center;padding:11px 0}
  .nav-btn span:not(.nb-ico){display:none}
  .rail-foot{align-items:center}
  .rail-date,.rail-status #link-label{display:none}
}
@media (max-width:1200px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .b2,.b3,.b4{grid-column:span 2}
  #comms{position:fixed;right:0;top:0;bottom:0;z-index:40;box-shadow:var(--shadow-lg)}
}
@media (max-width:1100px){
  .vault-layout{grid-template-columns:1fr}
  .vault-side{max-height:280px}
  .week7{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:900px){
  .bento{grid-template-columns:1fr}.b2,.b3,.b4{grid-column:span 1}
  .week7{grid-template-columns:repeat(2,1fr)}
  .stat-tiles{grid-template-columns:1fr 1fr !important}
  .sys-name{min-width:90px}.sys-val{min-width:90px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
