/* ============================================================
   AIDEX — product app styles (extends site.css tokens)
   ============================================================ */

.app-body{overflow:hidden;height:100vh;height:100dvh}
.app{display:flex;flex-direction:column;height:100vh;height:100dvh}

@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.view-host>*{animation:viewIn .4s cubic-bezier(.2,.7,.25,1) backwards}
.view-host>*:nth-child(2){animation-delay:.03s}
.view-host>*:nth-child(3){animation-delay:.06s}
.view-host>*:nth-child(4){animation-delay:.09s}
.view-host>*:nth-child(n+5){animation-delay:.12s}
.rail-item{transition:background .2s,color .2s,transform .15s}
.rail-item:active{transform:scale(.95)}

/* topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:58px;flex:none;
  padding:0 18px;border-bottom:1px solid var(--line);background:var(--card)}
.topbar .logo{font-size:16px}
.corpus-tag{font-family:var(--mono);font-weight:500;font-size:10px!important;letter-spacing:.1em;color:var(--muted);
  border-left:1px solid var(--line);padding-left:10px;margin-left:8px;text-transform:uppercase}
.top-actions{display:flex;align-items:center;gap:12px}
.engine-badge{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.12em;color:var(--s);
  background:var(--s-bg);padding:5px 10px;border-radius:7px;cursor:help}
.embed .story-link,.embed .engine-badge{display:none}

.guide-btn{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);
  color:var(--ink-2);border-radius:10px;padding:8px 13px;cursor:pointer;font-family:var(--sans);
  font-size:12.5px;font-weight:650;transition:all .2s}
.guide-btn:hover{border-color:var(--brand);color:var(--brand-ink);transform:translateY(-1px);box-shadow:var(--shadow)}
.guide-btn.pulse{animation:guidePulse 2s ease-in-out 3}
@keyframes guidePulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--brand) 35%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--brand) 0%,transparent)}}
.embed .guide-menu-wrap{display:none}
.gd-chev{transition:transform .25s cubic-bezier(.2,.7,.25,1)}
.guide-btn[aria-expanded="true"] .gd-chev{transform:rotate(180deg)}

/* ---------- guide dropdown ---------- */
.guide-menu-wrap{position:relative}
.guide-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:296px;z-index:120;
  background:linear-gradient(180deg,color-mix(in srgb,var(--card) 85%,transparent),color-mix(in srgb,var(--card) 96%,transparent));
  backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);
  border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:16px;
  box-shadow:var(--shadow-lg);padding:8px;
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top right;
  transition:opacity .22s cubic-bezier(.2,.7,.25,1),transform .22s cubic-bezier(.2,.7,.25,1),visibility 0s .22s}
.guide-dropdown.open{opacity:1;visibility:visible;transform:none;transition:opacity .22s cubic-bezier(.2,.7,.25,1),transform .22s cubic-bezier(.2,.7,.25,1),visibility 0s}
.guide-dd-item{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:11px;cursor:pointer;
  border:0;background:none;width:100%;text-align:left;font-family:var(--sans);transition:background .18s}
.guide-dd-item:hover,.guide-dd-item:focus-visible{background:color-mix(in srgb,var(--brand) 8%,transparent)}
.guide-dd-item + .guide-dd-item{margin-top:2px}
.gdd-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;font-size:13px;flex:none}
.gdd-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.gdd-title{font-size:12.5px;font-weight:650;color:var(--ink)}
.gdd-sub{font-size:10.5px;color:var(--muted);line-height:1.4}

/* ---------- mini toggle switch ---------- */
.mini-toggle{flex:none;width:34px;height:19px;border-radius:99px;background:var(--line);position:relative;
  transition:background .25s;cursor:pointer}
.mini-toggle.on{background:var(--brand)}
.mini-knob{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .25s cubic-bezier(.3,1.5,.5,1)}
.mini-toggle.on .mini-knob{transform:translateX(15px)}
.guide-tt-row{display:flex;align-items:center;gap:9px;cursor:pointer;padding:4px 2px;border-radius:8px}
.guide-tt-row:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.gtt-label{font-size:11.5px;color:var(--ink-3);font-weight:600;white-space:nowrap}

/* ---------- guide modal ---------- */
.guide-scrim{position:fixed;inset:0;background:rgba(8,8,12,.55);backdrop-filter:blur(3px);z-index:400;
  opacity:0;transition:opacity .35s}
.guide-scrim.show{opacity:1}
.guide-modal{position:fixed;top:50%;left:50%;width:min(560px,92vw);max-height:min(600px,86vh);
  background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg);
  z-index:401;display:flex;flex-direction:column;overflow:hidden;
  transform:translate(-50%,-46%) scale(.96);opacity:0;pointer-events:none;visibility:hidden;
  transition:transform .4s cubic-bezier(.2,.7,.25,1),opacity .35s,visibility 0s .4s}
.guide-modal.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto;visibility:visible;
  transition:transform .4s cubic-bezier(.2,.7,.25,1),opacity .35s,visibility 0s}
.guide-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:9px;border:1px solid var(--line);
  background:var(--card);color:var(--ink-3);cursor:pointer;font-size:13px;z-index:2;transition:all .2s}
.guide-close:hover{color:var(--bad);border-color:var(--bad)}
.guide-body{position:relative;padding:38px 32px 26px;flex:1;overflow-y:auto;min-height:280px}
.guide-modal::after{content:"";position:absolute;left:1px;right:1px;bottom:73px;height:36px;pointer-events:none;
  background:linear-gradient(180deg,transparent,var(--card) 85%);border-radius:0 0 21px 21px;z-index:1}
.guide-pane{display:none;animation:guideFade .4s cubic-bezier(.2,.7,.25,1)}
.guide-pane.active{display:block}
@keyframes guideFade{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.guide-kicker{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.16em;color:var(--brand-ink);
  text-transform:uppercase;margin-bottom:12px}
.guide-pane h2{font-family:var(--disp);font-size:clamp(20px,2.6vw,25px);font-weight:800;letter-spacing:-.02em;
  line-height:1.25;margin-bottom:14px}
.guide-lede{font-size:14px;line-height:1.68;color:var(--ink-3);margin-bottom:12px}
.guide-lede b{color:var(--ink-2)}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.guide-card{border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:4px}
.guide-card .gc-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;font-size:13px;margin-bottom:4px}
.guide-card b{font-size:13.5px;font-weight:750}
.guide-card span{font-size:12px;color:var(--ink-3);line-height:1.5}
.guide-verbs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.gv{border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:12px;color:var(--ink-3);line-height:1.5}
.gv b{display:block;font-family:var(--mono);font-size:12.5px;font-weight:700;color:var(--brand-ink);letter-spacing:.06em;margin-bottom:3px}
.gv-load{grid-column:1/-1;border-color:color-mix(in srgb,var(--n) 40%,var(--line));background:color-mix(in srgb,var(--n) 5%,transparent)}
.gv-load b{color:var(--n)}
.guide-steps{margin:18px 0 0;padding:0;list-style:none;counter-reset:gs}
.guide-steps li{counter-increment:gs;position:relative;padding:0 0 16px 34px;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.guide-steps li:last-child{padding-bottom:0}
.guide-steps li::before{content:counter(gs);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:8px;
  background:var(--brand);color:#fff;font-family:var(--mono);font-size:11px;font-weight:700;display:grid;place-items:center}
.guide-steps b{color:var(--brand-ink);font-family:var(--mono);font-size:12px;letter-spacing:.04em}
.guide-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 32px;
  border-top:1px solid var(--line);background:var(--bg-2);flex:none;flex-wrap:wrap}
.guide-foot .guide-dots{margin-left:auto}
.guide-dots{display:flex;gap:6px}
.guide-dots span{width:7px;height:7px;border-radius:50%;background:var(--line);transition:all .3s;cursor:pointer}
.guide-dots span.on{background:var(--brand);width:20px;border-radius:4px}
.guide-nav{display:flex;gap:8px}
.guide-nav #guidePrev{visibility:hidden}
@media (max-width:520px){
  .guide-grid,.guide-verbs{grid-template-columns:1fr}
  .guide-body{padding:32px 22px 20px}
  .guide-foot{padding:14px 22px}
  .guide-foot .guide-dots{margin-left:0;order:3;width:100%;justify-content:center;padding-top:10px;border-top:1px dashed var(--line)}
  .guide-menu-wrap .guide-dropdown{right:auto;left:50%;transform:translateX(-50%) translateY(-8px) scale(.98);
    transform-origin:top center;width:min(296px,88vw)}
  .guide-menu-wrap .guide-dropdown.open{transform:translateX(-50%) translateY(0) scale(1)}
}

/* layout */
.app-main{display:flex;flex:1;min-height:0;position:relative;overflow:hidden}
.rail{width:190px;flex:none;border-right:1px solid var(--line);background:var(--bg-2);
  display:flex;flex-direction:column;padding:14px 10px;gap:4px}
.rail-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 13px;border-radius:11px;border:0;
  background:none;cursor:pointer;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.12em;
  color:var(--ink-3);transition:background .2s,color .2s,transform .2s;text-align:left}
.rail-item .ri{font-size:13px;width:16px}
.rail-item:hover{background:color-mix(in srgb,var(--brand) 7%,transparent);color:var(--ink)}
.rail-item.active{background:var(--brand);color:#fff;box-shadow:0 6px 18px color-mix(in srgb,var(--brand) 30%,transparent)}
.rail-badge{margin-left:auto;font-size:9px;background:color-mix(in srgb,var(--ink) 10%,transparent);
  border-radius:99px;padding:2px 7px;min-width:10px;text-align:center}
.rail-item.active .rail-badge{background:rgba(255,255,255,.25)}
.rail-badge:empty{display:none}
.rail-foot{margin-top:auto;padding:12px 6px 4px;border-top:1px dashed var(--line)}
.rail-verbs-label{font-family:var(--mono);font-size:8.5px;letter-spacing:.18em;color:var(--muted);margin:0 0 8px}
.rail-verbs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}
.rail-verbs span{font-family:var(--mono);font-size:8.5px;font-weight:600;color:var(--brand-ink);
  background:color-mix(in srgb,var(--brand) 9%,transparent);padding:3px 7px;border-radius:5px;cursor:help}
.reset-btn{width:100%;font-size:11px;padding:7px 10px}

.view-host{flex:1;overflow-y:auto;padding:26px clamp(18px,3vw,40px) 60px;scroll-behavior:smooth}
.view-host:has(.session-wrap){display:flex;flex-direction:column;overflow:hidden;padding:0}
.view-title{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:6px;flex-wrap:wrap}
.view-title h2{font-size:clamp(21px,2.4vw,27px)}
.view-title .vt-agent{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.12em;color:#fff;
  padding:5px 11px;border-radius:7px}
.view-sub{font-size:13.5px;color:var(--ink-3);margin-bottom:26px;max-width:640px;line-height:1.6}

/* ---------- MAP ---------- */
.health-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow);margin-bottom:18px}
.health-bar{display:flex;height:12px;border-radius:99px;overflow:hidden;gap:2px;margin:14px 0 10px}
.health-bar i{transition:width .8s cubic-bezier(.2,.65,.25,1)}
.health-legend{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;color:var(--muted)}
.health-legend b{color:var(--ink-2)}
.map-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}
.type-tile{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;
  transition:transform .25s,box-shadow .25s,border-color .25s}
.type-tile:hover,.type-tile.on{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--brand)}
.type-tile:active{transform:translateY(-1px) scale(.98)}
.type-tile .n{font-family:var(--disp);font-weight:800;font-size:24px}
.type-tile .l{font-size:11.5px;color:var(--muted);margin:2px 0 9px}
.doc-list{display:grid;gap:9px}
.doc-row{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:13px;
  padding:13px 16px;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s;text-align:left;width:100%}
.doc-row:hover{transform:translateX(3px);border-color:var(--brand);box-shadow:var(--shadow)}
.doc-row:active{transform:translateX(1px) scale(.99)}
.doc-row .d-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:14px;flex:none;
  background:color-mix(in srgb,var(--brand) 9%,transparent);color:var(--brand-ink)}
.doc-row .d-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.doc-row .d-name{font-size:13.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-row .d-meta{font-family:var(--mono);font-size:9.5px;color:var(--muted);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-row.unreadable{opacity:.75;border-style:dashed;cursor:default}
.doc-row.unreadable:hover{transform:none;border-color:var(--bad);box-shadow:none}
.tag{font-family:var(--mono);font-size:8.5px;font-weight:600;padding:4px 8px;border-radius:6px;letter-spacing:.08em;flex:none;white-space:nowrap}
.tag.high{color:var(--bad);background:var(--bad-bg)}
.tag.medium{color:var(--warn);background:var(--warn-bg)}
.tag.low{color:var(--muted);background:var(--line-2)}
.tag.user{color:var(--brand-ink);background:color-mix(in srgb,var(--brand) 10%,transparent)}
.map-actions{display:flex;gap:10px;margin-bottom:22px;flex-wrap:wrap}
.nba{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px dashed color-mix(in srgb,var(--brand) 45%,var(--line));
  background:color-mix(in srgb,var(--brand) 4%,transparent);border-radius:13px;padding:14px 18px;margin-bottom:22px;cursor:pointer;
  transition:background .2s;width:100%;text-align:left}
.nba:hover{background:color-mix(in srgb,var(--brand) 8%,transparent)}
.nba .t{font-size:13px;color:var(--ink-2)}
.nba .go{font-family:var(--mono);font-size:10.5px;font-weight:600;color:var(--brand);flex:none}

/* ---------- SESSIONS ---------- */
.session-wrap{max-width:820px;width:100%;margin:0 auto;display:flex;flex-direction:column;flex:1;min-height:0}
.sess-scroll{flex:1;min-height:0;overflow-y:auto;scroll-behavior:smooth;padding:26px clamp(18px,3vw,40px) 0}
.msgs{flex:1;display:grid;gap:18px;padding-bottom:24px}
.msg-q{justify-self:end;max-width:80%;background:var(--brand);color:#fff;border-radius:16px 16px 4px 16px;
  padding:12px 18px;font-size:14px;font-weight:550;box-shadow:var(--glow);animation:msgIn .4s cubic-bezier(.2,.65,.25,1)}
@keyframes msgIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.acard{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;
  animation:msgIn .5s cubic-bezier(.2,.65,.25,1)}
.acard.refusal{border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
.acard-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 18px;
  border-bottom:1px solid var(--line-2);background:var(--bg-2)}
.acard-head .ah-l{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.14em;color:var(--muted)}
.acard-head .ah-agent{font-family:var(--mono);font-size:9px;font-weight:600;color:#fff;background:var(--n);
  padding:3px 9px;border-radius:5px;letter-spacing:.1em}
.acard.refusal .acard-head .ah-agent{background:var(--bad)}
.acard-body{padding:18px}
.claim{padding:13px 0;border-bottom:1px dashed var(--line-2)}
.claim:first-child{padding-top:2px}
.claim .c-txt{font-size:14.5px;line-height:1.7;color:var(--ink)}
.claim .c-row{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.spanchip{font-family:var(--mono);font-size:9.5px;font-weight:600;background:var(--n);color:#fff;
  padding:3px 9px;border-radius:6px;cursor:pointer;border:0;letter-spacing:.03em;
  transition:transform .2s,box-shadow .2s}
.spanchip:hover{transform:translateY(-2px);box-shadow:0 5px 14px color-mix(in srgb,var(--n) 40%,transparent)}
.spanchip:active{transform:translateY(0) scale(.96)}
.spanchip.synth{background:transparent;color:var(--g);border:1px dashed var(--g);cursor:default}
.bandchip{font-family:var(--mono);font-size:9px;font-weight:700;padding:3px 9px;border-radius:6px;letter-spacing:.08em;cursor:help}
.band-high{background:var(--ok-bg);color:var(--ok)}
.band-moderate{background:var(--warn-bg);color:var(--warn)}
.band-low{background:var(--bad-bg);color:var(--bad)}
.claim .c-actions{display:flex;gap:7px;margin-left:auto}
.cbtn{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;padding:5px 11px;border-radius:7px;
  border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer;
  transition:all .2s}
.cbtn:hover{border-color:var(--brand);color:var(--brand-ink);transform:translateY(-1px)}
.cbtn:active{transform:translateY(0) scale(.95)}
.cbtn.approved{background:var(--ok-bg);color:var(--ok);border-color:transparent;cursor:default}
.cbtn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.acard-meta{padding:13px 18px;border-top:1px solid var(--line-2);background:var(--bg-2)}
.acard-meta .m-row{display:flex;gap:9px;font-family:var(--mono);font-size:9.5px;line-height:1.7;color:var(--muted);margin-bottom:4px}
.acard-meta .m-row:last-child{margin-bottom:0}
.acard-meta .m-row b{color:var(--ink-3);letter-spacing:.1em;flex:none}
.acard-meta .memnote{color:var(--l);font-weight:600}
.next-verbs{display:flex;gap:7px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--line-2)}
.next-verbs .nv{font-family:var(--mono);font-size:9.5px;font-weight:600;padding:6px 12px;border-radius:8px;
  border:1px solid var(--line);cursor:pointer;background:var(--card);color:var(--ink-2);transition:all .2s}
.next-verbs .nv:hover{border-color:var(--brand);color:var(--brand-ink);transform:translateY(-1px)}
.next-verbs .nv:active{transform:translateY(0) scale(.95)}
.remedies{padding:14px 18px;background:var(--bad-bg);border-top:1px solid color-mix(in srgb,var(--bad) 25%,transparent)}
.remedies .r-t{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.1em;color:var(--bad);margin-bottom:10px}
.remedies .rbtn{display:block;width:100%;text-align:left;margin-bottom:7px;padding:10px 13px;border-radius:9px;
  font-size:12.5px;border:1px solid color-mix(in srgb,var(--bad) 25%,var(--line));background:var(--card);
  color:var(--ink-2);cursor:pointer;transition:all .2s}
.remedies .rbtn:hover{border-color:var(--bad);transform:translateX(3px)}
.remedies .rbtn:active{transform:translateX(1px) scale(.99)}
.remedies .rbtn.primary{border-color:var(--bad);font-weight:600}
.ask-bar{flex:none;position:relative;isolation:isolate;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--bg) 38%,transparent) 0%,
    color-mix(in srgb,var(--bg) 78%,transparent) 45%,
    color-mix(in srgb,var(--bg) 92%,transparent) 100%);
  backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);
  border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent);
  box-shadow:0 -16px 40px -20px color-mix(in srgb,var(--ink) 22%,transparent);
  padding:12px clamp(18px,3vw,40px) calc(12px + env(safe-area-inset-bottom))}
.ask-bar::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(120% 140% at 15% 0%,color-mix(in srgb,var(--brand) 7%,transparent),transparent 60%);
  opacity:.7}
.ask-input-row{display:flex;gap:9px;
  background:color-mix(in srgb,var(--card) 68%,transparent);
  backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);
  border:1.5px solid color-mix(in srgb,var(--line) 85%,transparent);border-radius:15px;
  padding:7px 7px 7px 18px;
  box-shadow:var(--shadow-lg),inset 0 1px 0 color-mix(in srgb,#fff 22%,transparent);
  transition:border-color .25s,box-shadow .25s,background .25s}
.ask-input-row:focus-within{border-color:var(--brand);background:color-mix(in srgb,var(--card) 88%,transparent)}
.ask-input-row input{flex:1;border:0;background:none;font-family:var(--sans);font-size:14.5px;color:var(--ink);outline:none;min-width:0}
.ask-input-row input::placeholder{color:var(--muted)}
.suggestions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.sugg{font-size:12px;font-weight:550;padding:7px 14px;border-radius:99px;
  border:1px solid color-mix(in srgb,var(--line) 80%,transparent);
  background:color-mix(in srgb,var(--card) 46%,transparent);
  backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);
  color:var(--ink-3);cursor:pointer;
  box-shadow:0 1px 3px color-mix(in srgb,var(--ink) 7%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 18%,transparent);
  transition:all .2s}
.sugg:hover{border-color:var(--brand);color:var(--brand-ink);transform:translateY(-2px);
  background:color-mix(in srgb,var(--card) 78%,transparent);box-shadow:var(--shadow)}
.sugg:active{transform:translateY(0) scale(.96)}
.thinking{display:flex;gap:10px;align-items:center;font-family:var(--mono);font-size:10.5px;color:var(--muted);padding:8px 4px;letter-spacing:.06em}
.thinking .t-dots{display:flex;gap:4px}
.thinking .t-dots i{width:6px;height:6px;border-radius:50%;background:var(--brand);animation:tdot 1s ease-in-out infinite}
.thinking .t-dots i:nth-child(2){animation-delay:.15s}.thinking .t-dots i:nth-child(3){animation-delay:.3s}
@keyframes tdot{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}
.empty-state{text-align:center;padding:52px 20px;color:var(--muted)}
.empty-state .es-ic{font-size:34px;margin-bottom:14px;opacity:.6}
.empty-state h3{color:var(--ink-2);margin-bottom:8px;font-size:17px}
.empty-state p{font-size:13.5px;max-width:420px;margin:0 auto;line-height:1.65}

/* ---------- ARTIFACTS ---------- */
.artifact-card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:20px}
.artifact-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line);background:var(--bg-2);flex-wrap:wrap}
.artifact-head h3{font-size:15.5px}
.artifact-head .badge{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.12em;color:#fff;background:var(--a);padding:4px 10px;border-radius:6px}
.aclaim{display:flex;gap:13px;padding:14px 20px;border-bottom:1px dashed var(--line-2);align-items:flex-start}
.aclaim:last-of-type{border-bottom:0}
.astate{font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.1em;padding:4px 9px;border-radius:6px;flex:none;margin-top:2px;min-width:74px;text-align:center}
.astate.pending{background:var(--line-2);color:var(--muted)}
.astate.checking{background:var(--info-bg);color:var(--info);animation:checkPulse 1s ease-in-out infinite}
@keyframes checkPulse{50%{opacity:.55}}
.astate.verified{background:var(--ok-bg);color:var(--ok)}
.astate.blocked{background:var(--bad);color:#fff}
.aclaim .a-txt{font-size:13.5px;line-height:1.6;color:var(--ink-2);flex:1}
.aclaim .a-cite{display:block;font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:5px}
.aclaim .a-remove{border:0;background:none;color:var(--muted);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:6px;flex:none}
.aclaim .a-remove:hover{color:var(--bad);background:var(--bad-bg)}
.check-ticker{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;color:var(--info);padding:0 20px 10px;min-height:18px}
.artifact-foot{display:flex;gap:10px;padding:15px 20px;border-top:1px solid var(--line);background:var(--bg-2);flex-wrap:wrap;align-items:center}
.artifact-foot .spacer{flex:1}
.trail-banner{margin:0 20px 16px;padding:13px 16px;border-radius:11px;background:var(--ok-bg);color:var(--ok);
  font-family:var(--mono);font-size:10.5px;line-height:1.7;letter-spacing:.02em;animation:msgIn .5s}
.block-banner{margin:0 20px 16px;padding:13px 16px;border-radius:11px;background:var(--bad-bg);color:var(--bad);
  font-size:12.5px;line-height:1.6;animation:msgIn .4s}
.block-banner b{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em}
.export-row{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:14px 17px;margin-bottom:10px}
.export-row .e-ic{width:36px;height:36px;border-radius:10px;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center;font-size:15px;flex:none}
.export-row .e-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.export-row .e-name{font-size:13.5px;font-weight:650}
.export-row .e-meta{font-family:var(--mono);font-size:9.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.checks-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-top:18px}
.checks-legend .ck{display:flex;gap:8px;align-items:center;font-family:var(--mono);font-size:9.5px;color:var(--ink-3);
  border:1px dashed var(--line);border-radius:9px;padding:8px 11px}
.checks-legend .ck b{color:var(--a);flex:none}

/* ---------- MEMORY ---------- */
.mem-item{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:13px;
  padding:14px 17px;margin-bottom:10px;transition:border-color .2s}
.mem-item:hover{border-color:color-mix(in srgb,var(--l) 45%,var(--line))}
.mem-item.stale{border-style:dashed;opacity:.8}
.mem-item .m-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.mem-item .m-txt{font-size:13.5px;font-weight:550;line-height:1.5}
.mem-item .m-meta{font-family:var(--mono);font-size:9.5px;color:var(--muted)}
.mem-item .m-type{font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;color:var(--l);
  background:var(--l-bg);padding:4px 9px;border-radius:6px;flex:none}
.mem-item .m-type.stale-t{color:var(--warn);background:var(--warn-bg)}
.mem-item .m-del{border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px;padding:3px 7px;border-radius:6px;flex:none}
.mem-item .m-del:hover{color:var(--bad);background:var(--bad-bg)}
.mem-item .m-act{display:flex;gap:6px;flex:none}
.teach-form{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow);margin-bottom:26px}
.teach-form h3{font-size:15px;margin-bottom:5px}
.teach-form .tf-sub{font-size:12.5px;color:var(--muted);margin-bottom:14px}
.teach-row{display:flex;gap:9px;flex-wrap:wrap}
.teach-row input,.teach-row select{flex:1;min-width:140px;padding:11px 14px;border-radius:11px;border:1.5px solid var(--line);
  background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:13.5px;outline:none;transition:border-color .2s,box-shadow .2s}
.teach-row input:focus,.teach-row select:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)}
.teach-row select{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;width:150px;cursor:pointer;
  padding-right:34px;font-weight:550;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A8A9C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;background-size:15px}
[data-theme="dark"] .teach-row select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23787890' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}
.teach-row select:hover{border-color:var(--muted)}
.teach-row select option{background:var(--card);color:var(--ink)}
.mem-law{font-family:var(--mono);font-size:10px;color:var(--ink-3);border-top:1px dashed var(--line);
  padding-top:14px;margin-top:20px;letter-spacing:.04em;line-height:1.7}

/* ---------- drawer ---------- */
.drawer{position:absolute;top:0;right:0;bottom:0;width:min(520px,92vw);background:var(--card);border-left:1px solid var(--line);
  box-shadow:-24px 0 60px rgba(0,0,0,.14);transform:translateX(103%);transition:transform .45s cubic-bezier(.2,.7,.25,1);
  z-index:60;display:flex;flex-direction:column;visibility:hidden;transition:transform .45s cubic-bezier(.2,.7,.25,1),visibility 0s .45s}
.drawer.open{transform:none;visibility:visible;transition:transform .45s cubic-bezier(.2,.7,.25,1),visibility 0s 0s}
.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);flex:none}
.drawer-kicker{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.16em;color:var(--n);margin-bottom:5px}
.drawer-head h3{font-size:16px}
.drawer-close{border:1px solid var(--line);background:var(--card);width:32px;height:32px;border-radius:9px;cursor:pointer;
  color:var(--ink-3);font-size:13px;transition:all .2s;flex:none}
.drawer-close:hover{color:var(--bad);border-color:var(--bad)}
.drawer-body{flex:1;overflow-y:auto;padding:20px 22px}
.drawer-scrim{position:absolute;inset:0;background:rgba(0,0,0,.28);z-index:55;opacity:0;transition:opacity .4s}
.drawer-scrim.show{opacity:1}
.doc-sec{padding:13px 15px;border-radius:11px;margin-bottom:9px;border:1px solid var(--line-2);transition:background .3s,border-color .3s}
.doc-sec .s-id{font-family:var(--mono);font-size:9.5px;font-weight:600;color:var(--muted);letter-spacing:.08em;margin-bottom:6px}
.doc-sec .s-txt{font-size:13px;line-height:1.7;color:var(--ink-2);white-space:pre-wrap}
.doc-sec.hl{background:color-mix(in srgb,var(--n) 8%,transparent);border-color:var(--n);animation:hlPulse 1.6s ease-out}
.doc-sec.hl .s-id{color:var(--n)}
.doc-sec.hl mark{background:color-mix(in srgb,var(--n) 22%,transparent);color:var(--ink);border-radius:3px;padding:0 2px}
@keyframes hlPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--n) 45%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.doc-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.doc-meta-grid .dm{border:1px dashed var(--line);border-radius:9px;padding:9px 12px}
.doc-meta-grid .dm b{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;color:var(--muted);display:block;margin-bottom:2px}
.doc-meta-grid .dm span{font-size:12px;font-weight:600}

/* ---------- toasts ---------- */
.toasts{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:300;display:grid;gap:8px;width:min(430px,92vw)}
.toast{display:flex;align-items:center;gap:11px;background:var(--band);color:var(--band-ink);border-radius:13px;
  padding:13px 17px;font-size:13px;font-weight:550;box-shadow:var(--shadow-lg);
  animation:toastIn .45s cubic-bezier(.34,1.4,.5,1)}
.toast .t-ic{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:11px;flex:none;background:var(--ok);color:#fff}
.toast.warn .t-ic{background:var(--a)}
.toast.err .t-ic{background:var(--bad)}
.toast.out{animation:toastOut .35s forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateY(10px) scale(.97)}}

/* onboarding hint */
.hint-banner{display:flex;gap:12px;align-items:flex-start;background:color-mix(in srgb,var(--brand) 7%,var(--card));
  border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:13px;padding:13px 17px;margin-bottom:20px}
.hint-banner .h-ic{font-size:17px;flex:none;margin-top:1px}
.hint-banner p{flex:1;font-size:12.5px;color:var(--ink-2);line-height:1.55}
.hint-banner button{border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px;padding:4px 8px;border-radius:6px;flex:none;margin:-4px -4px -4px 0}
.hint-banner button:hover{color:var(--ink)}

/* embed + responsive */
.embed .topbar{height:50px}
@media (max-width:860px){
  .rail{width:64px;padding:12px 7px}
  .rail-item{justify-content:center;padding:12px 0}
  .rail-item .ri{width:auto}
  .rail-item .rl,.rail-item .rail-badge{display:none}
  .rail-foot{display:none}
  .map-grid{grid-template-columns:repeat(2,1fr)}
  .view-host{padding:18px 14px 50px}
  .sess-scroll{padding:18px 14px 0}
  .ask-bar{padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
  .engine-badge{display:none}
  .corpus-tag{display:none}
  .claim .c-actions{margin-left:0;width:100%}
  .mem-item{flex-wrap:wrap}
  .mem-item .m-t{flex:1 1 100%}
  .mem-item .m-type,.mem-item .m-act,.mem-item .m-del{margin-top:2px}
}
@media (max-width:520px){
  .map-grid{grid-template-columns:1fr 1fr}
  .story-link{padding:9px 11px}
  .story-link .sl-text{display:none}
  .msg-q{max-width:92%}
}

/* ---------- cursor tooltips ---------- */
[data-tip]{position:relative}
html.tooltips-on [data-tip]{cursor:help}
html.tooltips-on button[data-tip],html.tooltips-on [data-tip] button,html.tooltips-on a[data-tip]{cursor:pointer}
.app-tooltip{position:fixed;z-index:700;width:264px;max-width:calc(100vw - 24px);
  background:linear-gradient(180deg,color-mix(in srgb,var(--card) 88%,transparent),color-mix(in srgb,var(--card) 97%,transparent));
  backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);
  border:1px solid color-mix(in srgb,var(--line) 85%,transparent);border-radius:13px;
  box-shadow:var(--shadow-lg);padding:12px 14px;
  opacity:0;transform:translateY(5px) scale(.97);transform-origin:top left;
  transition:opacity .16s ease,transform .16s ease;pointer-events:none}
.app-tooltip.show{opacity:1;transform:none}
.app-tooltip .tt-term{font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:7px;padding-bottom:7px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.app-tooltip .tt-row{display:flex;gap:8px;font-size:11px;line-height:1.5;color:var(--ink-2)}
.app-tooltip .tt-row + .tt-row{margin-top:5px}
.app-tooltip .tt-label{font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.06em;
  color:var(--brand-ink);flex:none;width:32px;padding-top:1px}
