:root{
  --ink:#2b2440; --ink-soft:#6b6480; --card:rgba(255,255,255,.72);
  --line:rgba(120,90,160,.18);
  --c1:#ff8fb1; --c2:#a78bfa; --c3:#5eead4; --c4:#fcd34d;
  --grad:linear-gradient(120deg,#ff8fb1,#a78bfa 55%,#5eead4);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);
  background:#fdf2f8;overflow-x:hidden;min-height:100vh}
.hidden{display:none!important}
button{cursor:pointer;font-family:inherit}
input{font-family:inherit}
.script{font-family:Pacifico,cursive;font-weight:400}

/* ---------- animated backdrop ---------- */
.aurora{position:fixed;inset:0;z-index:-2;background:linear-gradient(135deg,#fff1f6,#f5f0ff 45%,#ecfeff);overflow:hidden}
.aurora span{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:float 18s ease-in-out infinite}
.aurora span:nth-child(1){width:42vw;height:42vw;left:-8vw;top:-10vw;background:#ff8fb1;animation-delay:0s}
.aurora span:nth-child(2){width:38vw;height:38vw;right:-6vw;top:6vw;background:#a78bfa;animation-delay:-4s}
.aurora span:nth-child(3){width:34vw;height:34vw;left:18vw;bottom:-12vw;background:#5eead4;animation-delay:-8s}
.aurora span:nth-child(4){width:26vw;height:26vw;right:14vw;bottom:-6vw;background:#fcd34d;opacity:.4;animation-delay:-12s}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(4vw,-3vw) scale(1.08)}66%{transform:translate(-3vw,3vw) scale(.95)}}
.sparkles{position:fixed;inset:0;z-index:-1;pointer-events:none}
.sparkles i{position:absolute;font-size:14px;opacity:.5;animation:rise linear infinite}
@keyframes rise{from{transform:translateY(10px);opacity:0}10%{opacity:.6}to{transform:translateY(-110vh);opacity:0}}

.glass{background:var(--card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.6);box-shadow:0 20px 60px rgba(120,80,160,.18)}

/* ---------- LOGIN ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{width:380px;max-width:92vw;border-radius:26px;padding:40px 32px 28px;
  display:flex;flex-direction:column;gap:14px;text-align:center;position:relative}
.avatar-ring{position:relative;width:96px;height:96px;margin:-72px auto 4px;border-radius:50%;
  padding:4px;background:var(--grad);box-shadow:0 12px 30px rgba(167,139,250,.4)}
.avatar{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,#fff,#ffe4ef);
  display:flex;align-items:center;justify-content:center;font-family:Pacifico,cursive;
  font-size:38px;color:#d6477f;background-size:cover;background-position:center}
.avatar-ring .paw{position:absolute;right:-2px;bottom:-2px;font-size:22px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}
.avatar.sm{width:46px;height:46px;font-size:20px;border:2px solid #fff;box-shadow:0 4px 12px rgba(167,139,250,.35)}
.brand{font-family:Quicksand,sans-serif;font-weight:700;font-size:28px;letter-spacing:.3px}
.brand .script{font-size:30px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.subtitle{color:var(--ink-soft);font-size:13px;margin-top:-6px}
.login-card label{display:flex;flex-direction:column;gap:6px;text-align:left;font-size:12px;color:var(--ink-soft);font-weight:600}
.login-card input{background:rgba(255,255,255,.85);border:1.5px solid var(--line);border-radius:14px;
  padding:12px 14px;font-size:15px;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.login-card input:focus{outline:none;border-color:var(--c2);box-shadow:0 0 0 4px rgba(167,139,250,.18)}
.btn-primary{margin-top:6px;border:none;border-radius:16px;padding:13px;font-weight:700;font-size:15px;
  color:#fff;background:var(--grad);background-size:200% 200%;box-shadow:0 12px 26px rgba(255,143,177,.4);
  transition:transform .15s,box-shadow .2s,background-position .6s}
.btn-primary:hover{transform:translateY(-2px);background-position:100% 0;box-shadow:0 16px 34px rgba(167,139,250,.45)}
.error{color:#e11d72;font-size:13px;min-height:16px}
.login-quote{color:var(--ink-soft);font-style:italic;font-size:13px;margin-top:2px}

/* ---------- DASHBOARD ---------- */
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;
  gap:16px;margin:16px;padding:12px 20px;border-radius:20px}
.hello{display:flex;align-items:center;gap:12px}
.hello-title{font-family:Quicksand,sans-serif;font-weight:700;font-size:18px}
.hello-sub{color:var(--ink-soft);font-size:12px}
.brand-sm{font-family:Quicksand,sans-serif;font-weight:700;font-size:18px}
.brand-sm .script{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.btn-ghost{background:rgba(255,255,255,.6);border:1px solid var(--line);color:var(--ink-soft);
  border-radius:12px;padding:9px 14px;font-weight:600;font-size:13px}
.btn-ghost:hover{color:var(--ink);border-color:var(--c2)}

.dash{max-width:1080px;margin:0 auto;padding:8px 20px 60px}
.hero{display:grid;grid-template-columns:1.3fr 1fr 1.4fr;gap:16px;margin:10px 0 26px}
.hero-card{border-radius:20px;padding:20px}
.hero-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:700;margin-bottom:10px}
.affirm-text{font-family:Quicksand,sans-serif;font-weight:600;font-size:19px;line-height:1.4}
.weather-row{display:flex;align-items:center;gap:10px}
.weather-emoji{font-size:34px}.weather-temp{font-size:30px;font-weight:700}
.weather-sub{color:var(--ink-soft);font-size:12px;margin-top:6px}
.hero-eyebrow .wx-refresh{float:right;background:transparent;border:none;cursor:pointer;font-size:13px;
  color:var(--ink-soft);line-height:1;padding:0;opacity:.6;transition:transform .3s,opacity .2s}
.hero-eyebrow .wx-refresh:hover{opacity:1;transform:rotate(90deg)}
.wx-now{color:var(--ink-soft);font-size:12.5px;font-weight:600}
.wx-tomorrow{margin-top:12px;padding-top:11px;border-top:1px dashed var(--line);font-size:13px;line-height:1.5;color:var(--ink)}
.wx-tm-emoji{font-size:16px}
.wx-tomorrow b{color:#7c4dd6}
.wx-tm-meta{display:block;color:var(--ink-soft);font-size:11.5px;font-weight:600;margin-top:2px}
.wx-advice{font-size:13px;line-height:1.5;margin-top:8px;color:var(--ink)}
.wx-umbrella{margin-top:10px;font-size:12.5px;font-weight:700;border-radius:12px;padding:8px 11px;line-height:1.35}
.wx-umbrella.yes{background:rgba(56,120,220,.14);color:#2b5fb0}
.wx-umbrella.no{background:rgba(16,185,129,.14);color:#0f8b62}
.wx-umbrella:empty{display:none}
.fact-text{font-size:14px;line-height:1.5}
.tip-text{color:var(--ink-soft);font-size:12.5px;margin-top:10px;border-top:1px dashed var(--line);padding-top:10px}

.section-h{font-family:Quicksand,sans-serif;font-weight:700;font-size:16px;color:var(--ink-soft);margin:0 0 14px;letter-spacing:.02em}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.tile{position:relative;text-align:left;border:none;border-radius:22px;padding:22px;min-height:170px;
  display:flex;flex-direction:column;gap:8px;background:var(--card);backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.6);box-shadow:0 16px 40px rgba(120,80,160,.14);
  transition:transform .18s,box-shadow .2s}
.tile:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(167,139,250,.28)}
.tile-icon{font-size:30px}
.tile-title{font-family:Quicksand,sans-serif;font-weight:700;font-size:18px}
.tile-desc{font-size:13px;color:var(--ink-soft);line-height:1.5;flex:1}
.tile-cta{font-weight:700;font-size:13px;color:#d6477f}
.tile.feature{grid-column:span 2;background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(255,228,239,.7));
  border:1px solid rgba(255,143,177,.4)}
.tile.feature .tile-icon{font-size:38px}
.tile.feature .tile-title{font-size:22px}
.tile.soon{opacity:.72;cursor:default}
.tile.soon:hover{transform:none;box-shadow:0 16px 40px rgba(120,80,160,.14)}
.tile-soon{position:absolute;top:14px;right:14px;font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:#a78bfa;background:rgba(167,139,250,.14);border-radius:20px;padding:3px 9px}

@media(max-width:760px){.hero{grid-template-columns:1fr}.tile.feature{grid-column:span 1}}

/* ---------- SPOT CHECK ---------- */
#spotcheck-view{min-height:100vh}
.sc-status{color:var(--ink-soft);font-size:13px}
.sc-uploader{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin:0 16px 16px;padding:16px 20px;border-radius:18px}
.sc-file{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--ink-soft)}
.sc-file span{padding-left:2px}
.sc-file input{background:rgba(255,255,255,.85);border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--ink)}
.sc-file.mini input{width:74px}
.sc-uploader .btn-primary{padding:12px 20px}
.sc-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 16px 12px;padding:12px 18px;border-radius:16px}
.sc-booklet{font-family:Quicksand,sans-serif;font-weight:700}
.sc-summary{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.sc-flag{background:rgba(225,29,114,.12);color:#e11d72;border-radius:20px;padding:5px 13px;font-weight:700;font-size:13px}
.sc-ok{background:rgba(16,185,129,.14);color:#0f9d6b;border-radius:20px;padding:5px 13px;font-weight:700;font-size:13px}
.sc-gen{background:rgba(167,139,250,.14);color:#7c4dd6;border-radius:20px;padding:4px 11px;font-size:12px}
.sc-layout{display:grid;grid-template-columns:1fr 1fr;gap:0;height:calc(100vh - 220px);margin:0 16px}
.pane{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--line)}
.pane:last-child{border-right:none}
.pane-label{padding:6px 14px;font-size:12px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}
.chip{margin-left:6px;font-size:11px;color:#7c4dd6;background:rgba(167,139,250,.16);border-radius:10px;padding:2px 9px;text-transform:none;letter-spacing:0}
.surface-scroll{flex:1;overflow:auto;padding:12px;display:flex;justify-content:center;align-items:flex-start}
.page-surface{position:relative;width:100%;max-width:620px;background:#fff;border-radius:8px;
  box-shadow:0 10px 30px rgba(120,80,160,.2);overflow:hidden}
.surface-img{display:block;width:100%;height:auto;border-radius:8px}
/* if an image truly fails to load, show a labelled placeholder instead of a silent white box */
.page-surface.surface-broken{display:flex;align-items:center;justify-content:center;min-height:180px;
  background:repeating-linear-gradient(45deg,#faf5ff,#faf5ff 12px,#f3e9ff 12px,#f3e9ff 24px)}
.page-surface.surface-broken::after{content:"page image still loading — click ⟳ Refresh";
  font-size:12px;font-weight:700;color:#9a6bd6;text-align:center;padding:10px}
.sc-dot{position:absolute;width:24px;height:24px;border-radius:50%;border:2.5px solid #fff;cursor:pointer;
  transform:translate(-50%,-50%);box-shadow:0 2px 9px rgba(200,0,40,.45);padding:0;animation:pulse 1.6s infinite;background:#ef4444}
.sc-dot.sev-high,.sc-dot.sev-medium,.sc-dot.sev-low{background:#ef4444}
.sc-dot.noted{background:#10b981;animation:none}
.sc-dot:hover{transform:translate(-50%,-50%) scale(1.25)}
@keyframes pulse{0%,100%{box-shadow:0 2px 8px rgba(0,0,0,.3),0 0 0 0 rgba(239,68,68,.5)}50%{box-shadow:0 2px 8px rgba(0,0,0,.3),0 0 0 7px rgba(239,68,68,0)}}
/* finding drawer */
.sc-drawer{position:fixed;top:0;right:0;height:100vh;width:380px;max-width:90vw;z-index:30;padding:22px;
  display:flex;flex-direction:column;gap:12px;transform:translateX(105%);transition:transform .25s;overflow:auto;border-radius:22px 0 0 22px}
.sc-drawer.open{transform:translateX(0)}
.sc-drawer-head{display:flex;justify-content:space-between;align-items:center;font-family:Quicksand,sans-serif;font-size:16px}
.sc-x{background:transparent;border:none;font-size:18px;color:var(--ink-soft)}
.sc-block-text{font-style:italic;color:var(--ink);background:rgba(255,255,255,.6);border-radius:12px;padding:10px 12px;font-size:14px}
.sc-find{border-left:4px solid #f59e0b;background:rgba(255,255,255,.55);border-radius:10px;padding:10px 12px}
.sc-find.sev-high{border-left-color:#ef4444} .sc-find.sev-low{border-left-color:#a78bfa}
.sc-type{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ink-soft)}
.sc-issue{font-weight:600;font-size:14px;margin-top:3px}
.sc-sugg{color:#0f9d6b;font-size:13px;margin-top:4px}
.sc-comment-l{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:4px}
.sc-comment{min-height:90px;background:rgba(255,255,255,.85);border:1.5px solid var(--line);border-radius:12px;padding:10px;font-size:14px;font-family:inherit;color:var(--ink);resize:vertical}
.sc-drawer-row{display:flex;gap:10px;justify-content:space-between;margin-top:4px}
.sc-ignore{background:transparent;border:1px solid var(--line);color:var(--ink-soft);border-radius:12px;padding:9px 12px;font-size:12px;font-weight:600}
.sc-save{background:var(--grad);border:none;color:#fff;border-radius:12px;padding:9px 18px;font-weight:700}

/* source badges + teach-a-rule */
.sc-src{font-size:10px;font-weight:700;border-radius:8px;padding:2px 7px;letter-spacing:.03em;vertical-align:middle}
.sc-src.rule{background:rgba(16,185,129,.16);color:#0f9d6b}
.sc-src.ai{background:rgba(167,139,250,.16);color:#7c4dd6}
.sc-teach{background:rgba(255,255,255,.5);border:1px dashed var(--line);border-radius:12px;padding:10px 12px}
.sc-teach-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:8px}
.sc-teach-row{display:flex;align-items:center;gap:8px}
.sc-teach-row span{color:var(--ink-soft);font-weight:700}
.sc-teach-row input{flex:1;min-width:0;background:rgba(255,255,255,.9);border:1.5px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px;color:var(--ink)}

/* run feedback: banner + loading overlay + spinner */
.sc-banner{margin:0 16px 12px;padding:12px 18px;border-radius:14px;font-weight:600;font-size:14px}
.sc-banner.warn{background:rgba(252,211,77,.18);color:#9a6b00;border:1px solid rgba(252,211,77,.5)}
.sc-banner.err{background:rgba(225,29,114,.12);color:#c01060;border:1px solid rgba(225,29,114,.35)}
.btn-primary.working{opacity:.75;cursor:progress}
.sc-loading{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;
  background:rgba(253,242,248,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.sc-loading-card{border-radius:22px;padding:30px 36px;text-align:center;display:flex;flex-direction:column;
  align-items:center;gap:12px;min-width:280px}
.sc-loading-t{font-family:Quicksand,sans-serif;font-weight:700;font-size:18px}
.sc-loading-s{color:var(--ink-soft);font-size:13px}
.sc-spinner{width:44px;height:44px;border-radius:50%;border:4px solid rgba(167,139,250,.25);
  border-top-color:var(--c2);animation:scspin .8s linear infinite}
@keyframes scspin{to{transform:rotate(360deg)}}

/* ---------- SPOT CHECK: mode toggle, progress, book/page scan ---------- */
.sc-uploader{flex-direction:column;align-items:stretch}
.sc-mode{display:inline-flex;gap:4px;background:rgba(167,139,250,.12);border-radius:14px;padding:4px;align-self:flex-start;margin-bottom:6px}
.sc-mode-btn{border:none;background:transparent;border-radius:11px;padding:8px 16px;font-weight:700;font-size:13px;color:var(--ink-soft)}
.sc-mode-btn.active{background:#fff;color:var(--ink);box-shadow:0 3px 10px rgba(120,80,160,.18)}
.sc-mode-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}
.sc-mode-pane{display:flex;gap:14px;flex-wrap:wrap}
.sc-hint{color:var(--ink-soft);font-size:12px;margin-top:10px}
.sc-banner.ok{background:rgba(16,185,129,.14);color:#0f9d6b;border:1px solid rgba(16,185,129,.35)}

.sc-progress{margin:0 16px 16px;padding:14px 18px;border-radius:16px}
.sc-prog-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.sc-prog-label{font-family:Quicksand,sans-serif;font-weight:700;font-size:14px}
.sc-prog-count{color:var(--ink-soft);font-size:13px}
.sc-prog-track{height:10px;border-radius:20px;background:rgba(167,139,250,.18);overflow:hidden}
.sc-prog-bar{height:100%;width:8%;border-radius:20px;background:var(--grad);transition:width .5s ease}
.sc-pairs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.sc-pair{font-size:12px;background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:20px;padding:4px 11px}
.sc-unmatched{font-size:12px;background:rgba(252,211,77,.18);color:#9a6b00;border-radius:20px;padding:4px 11px}

.sc-book{margin:0 16px 18px;padding:16px 18px;border-radius:18px}
.sc-book-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.sc-book-name{font-family:Quicksand,sans-serif;font-weight:700;font-size:16px}
.sc-arrow{color:var(--c2)}
.sc-book-pages{display:flex;flex-direction:column;gap:18px}
.sc-page{border-top:1px dashed var(--line);padding-top:14px}
.sc-page:first-child{border-top:none;padding-top:0}
.sc-page-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.sc-page-num{font-family:Quicksand,sans-serif;font-weight:700;font-size:14px}
.sc-book .sc-layout{height:auto;grid-template-columns:1fr 1fr;margin:0}
.sc-book .surface-scroll{overflow:visible}
.sc-book .page-surface{max-width:100%}

/* ---------- review decisions + report bar ---------- */
.sc-dot.accepted{background:#10b981!important;animation:none}
.sc-dot.accepted::after{content:"✓";color:#fff;font-size:13px;font-weight:900;position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.sc-dot.dismissed{background:#b8b3c7!important;animation:none;opacity:.7}
.sc-book-pages{padding-bottom:8px}

.sc-decide{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}
.sc-decide .sc-dismiss{flex:0 0 auto;background:transparent;border:1.5px solid var(--line);color:var(--ink-soft);border-radius:12px;padding:10px 16px;font-weight:700;font-size:13px}
.sc-decide .sc-dismiss.on{border-color:#b8b3c7;background:rgba(184,179,199,.18);color:var(--ink)}
.sc-decide .sc-accept{flex:1 1 100%;background:linear-gradient(120deg,#34d399,#10b981);border:none;color:#fff;border-radius:12px;padding:10px 16px;font-weight:800;font-size:14px;box-shadow:0 8px 20px rgba(16,185,129,.3)}
.sc-decide .sc-accept.on{outline:3px solid rgba(16,185,129,.35)}
.sc-adv{margin-top:6px}
.sc-adv summary{cursor:pointer;font-size:12px;color:var(--ink-soft);font-weight:600;list-style:none}
.sc-adv summary::-webkit-details-marker{display:none}
.sc-adv-row{display:flex;gap:8px;margin-top:8px}
.sc-teach-btn{background:rgba(167,139,250,.16);color:#7c4dd6;border:none;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:700}

.sc-reviewbar{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;
  gap:14px;flex-wrap:wrap;margin:14px 16px;padding:14px 20px;border-radius:18px;
  box-shadow:0 -6px 30px rgba(120,80,160,.16)}
.sc-rb-counts{font-family:Quicksand,sans-serif;font-size:15px}
.sc-rb-counts b{color:#0f9d6b;font-size:18px}
.sc-rb-actions{display:flex;align-items:center;gap:14px}
.sc-rb-hint{color:var(--ink-soft);font-size:12px}
#sc-rb-report{padding:11px 22px}
#sc-rb-report:disabled{opacity:.5;cursor:default;box-shadow:none}

/* AI recommendation + ignore-once */
.sc-rec{margin-top:7px;font-size:12.5px;line-height:1.45;color:#2b2440;background:rgba(94,234,212,.16);
  border-radius:10px;padding:8px 10px;border:1px solid rgba(16,185,129,.22)}
.sc-onehint{font-size:11px;color:var(--ink-soft);margin-top:6px;line-height:1.4}
.sc-decide .sc-ignore-once{flex:0 0 auto;background:transparent;border:1.5px solid var(--line);
  color:var(--ink-soft);border-radius:12px;padding:10px 14px;font-weight:700;font-size:13px}
.sc-decide .sc-ignore-once.on{border-color:#b8b3c7;background:rgba(184,179,199,.18);color:var(--ink)}
.sc-decide .sc-accept-once{flex:1 1 auto;background:rgba(16,185,129,.1);border:1.5px solid rgba(16,185,129,.42);
  color:#0f9d6b;border-radius:12px;padding:10px 14px;font-weight:700;font-size:13px}
.sc-decide .sc-accept-once.on{background:rgba(16,185,129,.24);border-color:#10b981;color:#0b7a55}
.sc-rb-train{color:#7c4dd6;font-weight:700}

/* ---------- SETTINGS ---------- */
.topbar-actions{display:flex;align-items:center;gap:10px}
#settings-view{min-height:100vh}
.set-wrap{max-width:820px;margin:0 auto;padding:8px 20px 60px}
.set-card{border-radius:22px;padding:24px 26px}
.set-h{font-family:Quicksand,sans-serif;font-weight:700;font-size:20px;margin:0 0 6px}
.set-desc{color:var(--ink-soft);font-size:13.5px;line-height:1.55;margin:0 0 18px}
.set-fmt{border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin-bottom:14px;background:rgba(255,255,255,.5)}
.set-fmt-head{display:flex;align-items:flex-end;gap:12px;margin-bottom:12px}
.set-field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--ink-soft)}
.set-field.grow{flex:1}
.set-field input{background:rgba(255,255,255,.9);border:1.5px solid var(--line);border-radius:11px;padding:9px 12px;font-size:14px;color:var(--ink)}
.set-rm{background:transparent;border:1px solid var(--line);color:var(--ink-soft);border-radius:10px;width:36px;height:36px;font-size:14px;flex:0 0 auto}
.set-rm:hover{color:#e11d72;border-color:#e11d72}
.set-grid{display:flex;align-items:stretch;gap:14px;margin-bottom:12px}
.set-col{flex:1;display:flex;flex-direction:column;gap:8px;background:rgba(255,255,255,.55);border-radius:12px;padding:12px}
.set-col-h{font-size:12px;font-weight:700;color:var(--ink)}
.set-col input{background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:9px 11px;font-size:14px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ink)}
.set-arrow{display:flex;align-items:center;font-size:22px;color:var(--c2);font-weight:700}
.set-actions{display:flex;justify-content:flex-end;margin-top:6px}
#set-add{margin-bottom:8px}
@media(max-width:620px){.set-grid{flex-direction:column}.set-arrow{transform:rotate(90deg)}}

/* proofreading checkboxes */
.sc-proof{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px;
  padding-top:12px;border-top:1px dashed var(--line)}
.sc-proof-label{font-size:12px;font-weight:700;color:var(--ink)}
.sc-proof-sep{font-size:12px;color:var(--ink-soft)}
.sc-chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink-soft);
  background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:20px;padding:6px 12px;cursor:pointer;user-select:none}
.sc-chk:hover{border-color:var(--c2);color:var(--ink)}
.sc-chk input{accent-color:#a78bfa;width:15px;height:15px;cursor:pointer}
.sc-chk:has(input:checked){background:rgba(167,139,250,.16);border-color:var(--c2);color:var(--ink)}

/* check tags (AI vs dictionary) */
.sc-chk-tag{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  background:rgba(167,139,250,.18);color:#7c4dd6;border-radius:6px;padding:1px 5px;margin-left:2px}
.sc-chk-tag.dict{background:rgba(16,185,129,.16);color:#0f9d6b}

/* per-region flag breakdown + global final pick */
.sc-flags{margin-top:8px;display:flex;flex-direction:column;gap:3px;border-top:1px dashed rgba(16,185,129,.3);padding-top:7px}
.sc-flagrow{display:flex;align-items:center;gap:8px;font-size:12.5px}
.sc-flagx{font-size:15px;line-height:1;display:inline-flex;align-items:center;min-width:24px}
.sc-flagimg{width:24px;height:18px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.12);object-fit:cover;display:block}
.sc-flag-emoji{font-size:15px}
.sc-flagr{color:var(--ink-soft);min-width:104px;font-weight:600}
.sc-flagt{color:var(--ink);font-weight:600}
.sc-final-rec{margin-top:8px;background:rgba(167,139,250,.16);border:1px solid rgba(167,139,250,.35);
  border-radius:10px;padding:8px 10px;font-size:12.5px;line-height:1.45;color:#2b2440}
.sc-final-rec b{color:#6b3fc4}
.sc-final-sub{color:var(--ink-soft);font-size:11px;font-weight:400}

/* live-advice loading + model select */
.sc-advice-loading{margin-top:8px;font-size:12px;color:var(--ink-soft);display:flex;align-items:center;gap:8px}
.sc-mini-spin{width:13px;height:13px;border-radius:50%;border:2px solid rgba(167,139,250,.3);border-top-color:var(--c2);display:inline-block;animation:scspin .7s linear infinite}
.set-field select{background:rgba(255,255,255,.9);border:1.5px solid var(--line);border-radius:11px;padding:9px 12px;font-size:14px;color:var(--ink);min-width:240px}

/* ---------- COSTS ---------- */
#costs-view{min-height:100vh}
.cost-wrap{max-width:980px;margin:0 auto;padding:8px 20px 60px}
.cost-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:16px 20px;border-radius:18px;margin-bottom:16px}
.cost-filters .sc-file select{background:rgba(255,255,255,.9);border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--ink)}
.cost-filters .btn-primary{padding:11px 20px}
.cost-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:16px}
.cost-card{border-radius:18px;padding:18px 20px}
.cost-card-t{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}
.cost-card-v{font-family:Quicksand,sans-serif;font-weight:700;font-size:26px;margin:4px 0 2px}
.cost-card:first-child .cost-card-v{color:#0f9d6b}
.cost-card-s{font-size:12px;color:var(--ink-soft)}
.cost-section{border-radius:18px;padding:18px 22px;margin-bottom:16px}
.cost-h{font-family:Quicksand,sans-serif;font-weight:700;font-size:15px;margin:0 0 12px}
.cost-note{color:var(--ink-soft);font-size:12.5px;line-height:1.5;margin:0 0 12px}
.cost-chart{display:flex;flex-direction:column;gap:6px}
.cost-bar-row{display:flex;align-items:center;gap:10px;font-size:12px}
.cost-bar-lbl{width:90px;color:var(--ink-soft)}
.cost-bar-track{flex:1;height:14px;background:rgba(167,139,250,.14);border-radius:8px;overflow:hidden}
.cost-bar{display:block;height:100%;background:var(--grad);border-radius:8px}
.cost-bar-val{width:70px;text-align:right;font-weight:700}
.cost-table{overflow-x:auto}
table.ctab{width:100%;border-collapse:collapse;font-size:13px}
table.ctab th{text-align:left;color:var(--ink-soft);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:6px 10px;border-bottom:1px solid var(--line)}
table.ctab td{padding:8px 10px;border-bottom:1px solid rgba(120,90,160,.08)}
table.ctab td.r,table.ctab th.r{text-align:right;font-weight:700}
.cost-empty{color:var(--ink-soft);font-size:13px;padding:6px 0}

/* ---------- HISTORY ---------- */
#history-view{min-height:100vh}
.hist-wrap{max-width:1080px;margin:0 auto;padding:8px 20px 60px}
.hist-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:16px 20px;border-radius:18px;margin-bottom:12px}
.hist-filters .sc-file select{background:rgba(255,255,255,.9);border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--ink)}
.hist-count{color:var(--ink-soft);font-size:12px;margin:0 4px 8px}
.hist-tablewrap{border-radius:18px;padding:6px 8px;overflow-x:auto}
table.htab{width:100%;border-collapse:collapse;font-size:13px}
table.htab th{text-align:left;color:var(--ink-soft);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-bottom:1.5px solid var(--line);white-space:nowrap}
table.htab th.sortable{cursor:pointer;user-select:none}
table.htab th.sortable:hover{color:var(--ink)}
table.htab th.r,table.htab td.r{text-align:right}
table.htab td{padding:10px 12px;border-bottom:1px solid rgba(120,90,160,.08);vertical-align:middle}
table.htab tr:hover td{background:rgba(167,139,250,.06)}
.hist-flag{background:rgba(225,29,114,.12);color:#e11d72;border-radius:20px;padding:2px 9px;font-weight:700}
.hist-ok{background:rgba(16,185,129,.14);color:#0f9d6b;border-radius:20px;padding:2px 9px;font-weight:700}
.hist-actions{display:flex;gap:6px;white-space:nowrap}
.hist-btn{background:rgba(255,255,255,.7);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:6px 9px;font-size:12px;font-weight:600}
.hist-btn:hover{border-color:var(--c2)}
.hist-btn.danger:hover{border-color:#e11d72;color:#e11d72}

/* settings tabs + key tags */
.set-tabs{display:inline-flex;gap:4px;background:rgba(167,139,250,.12);border-radius:14px;padding:4px;margin-bottom:16px}
.set-tab{border:none;background:transparent;border-radius:11px;padding:9px 18px;font-weight:700;font-size:14px;color:var(--ink-soft)}
.set-tab.active{background:#fff;color:var(--ink);box-shadow:0 3px 10px rgba(120,80,160,.18)}
.set-pane{display:flex;flex-direction:column}
.set-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:8px;padding:1px 7px;margin-left:6px;background:rgba(120,90,160,.14);color:var(--ink-soft)}
.set-tag.on{background:rgba(16,185,129,.16);color:#0f9d6b}
.set-field select{background:rgba(255,255,255,.9);border:1.5px solid var(--line);border-radius:11px;padding:9px 12px;font-size:14px;color:var(--ink);min-width:260px}
.sc-mode-fields select#sc-model{background:rgba(255,255,255,.85);border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--ink);min-width:150px}

/* history: version badge + re-check button */
.hist-ver{display:inline-block;background:rgba(167,139,250,.18);color:#7c4dd6;border-radius:8px;padding:1px 7px;font-size:11px;font-weight:800;margin-left:4px}
.hist-btn.primary{background:var(--grad);color:#fff;border:none;font-weight:700}
.hist-btn.primary:hover{filter:brightness(1.05)}

/* cool confirm modal */
.cool-modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;
  background:rgba(80,50,120,.28);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.cool-modal.open{display:flex}
.cool-card{width:400px;max-width:92vw;border-radius:24px;padding:28px 28px 22px;text-align:center;
  display:flex;flex-direction:column;gap:10px;animation:coolpop .22s ease}
@keyframes coolpop{from{transform:translateY(12px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.cool-emoji{font-size:40px}
.cool-title{font-family:Quicksand,sans-serif;font-weight:700;font-size:20px}
.cool-msg{color:var(--ink-soft);font-size:14px;line-height:1.55}
.cool-msg b{color:var(--ink)}
.cool-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:12px}
.cool-btn{border-radius:14px;padding:11px 18px;font-weight:700;font-size:14px}
.cool-no{background:transparent;border:1.5px solid var(--line);color:var(--ink-soft)}
.cool-no:hover{color:var(--ink);border-color:var(--c2)}
.cool-alt{background:rgba(16,185,129,.12);border:1.5px solid rgba(16,185,129,.4);color:#0f9d6b}
.cool-alt:hover{background:rgba(16,185,129,.2)}
.cool-row .btn-primary{margin-top:0;padding:11px 20px}
.cool-hint{display:inline-block;margin-top:6px;font-size:12px;color:var(--ink-soft)}

/* Around Chicago — live events modal */
.around-card{width:560px;max-width:94vw;max-height:86vh;border-radius:24px;padding:22px 22px 16px;
  display:flex;flex-direction:column;gap:4px;animation:coolpop .22s ease}
.around-head{display:flex;align-items:center;justify-content:space-between}
.around-title{font-family:Quicksand,sans-serif;font-weight:700;font-size:20px}
.around-actions{display:flex;align-items:center;gap:6px}
.around-refresh,.around-x{background:transparent;border:none;font-size:16px;color:var(--ink-soft);
  border-radius:10px;padding:4px 8px;line-height:1}
.around-refresh:hover{color:var(--ink);transform:rotate(90deg);transition:transform .3s}
.around-x:hover{color:var(--ink)}
.around-sub{color:var(--ink-soft);font-size:12.5px;margin-bottom:8px}
.around-body{overflow:auto;padding-right:4px}
.ev-list{display:flex;flex-direction:column;gap:10px}
.ev-card{display:flex;gap:12px;background:rgba(255,255,255,.6);border:1px solid var(--line);
  border-radius:16px;padding:12px 14px}
.ev-emoji{font-size:26px;line-height:1.2}
.ev-main{flex:1;min-width:0}
.ev-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;margin-bottom:3px}
.ev-date{font-weight:800;color:#7c4dd6}
.ev-when{color:var(--ink-soft);font-weight:600}
.ev-cat{background:rgba(167,139,250,.16);color:#7c4dd6;border-radius:9px;padding:1px 8px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:10px}
.ev-kid{background:rgba(16,185,129,.14);color:#0f8b62;border-radius:9px;padding:1px 8px;font-weight:700;font-size:10px}
.ev-title{font-family:Quicksand,sans-serif;font-weight:700;font-size:15.5px;line-height:1.25}
.ev-blurb{font-size:13px;color:var(--ink);line-height:1.45;margin-top:2px}
.ev-link{display:inline-block;margin-top:5px;font-size:12px;font-weight:700;color:#a7508f;text-decoration:none}
.ev-link:hover{text-decoration:underline}
.around-foot{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);
  font-size:11.5px;color:var(--ink-soft);line-height:1.5}
.around-empty{padding:26px 10px;text-align:center;color:var(--ink-soft);font-size:14px}
.around-loading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:38px 10px;
  text-align:center;color:var(--ink-soft);font-size:14px;line-height:1.5}
.around-loading-sub{font-size:12px;opacity:.8}
.around-spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(167,139,250,.25);
  border-top-color:#a78bfa;animation:aspin .8s linear infinite}
@keyframes aspin{to{transform:rotate(360deg)}}

/* ---------- LEARNING / TRAINING ---------- */
#learning-view{min-height:100vh}
.learn-wrap{max-width:1000px;margin:0 auto;padding:8px 20px 60px}
.learn-actions{display:flex;flex-wrap:wrap;gap:10px}
.learn-tabs{display:inline-flex;gap:4px;background:rgba(167,139,250,.12);border-radius:12px;padding:4px;margin-bottom:14px}
.learn-tab{border:none;background:transparent;border-radius:9px;padding:7px 14px;font-weight:700;font-size:13px;color:var(--ink-soft)}
.learn-tab.active{background:#fff;color:var(--ink);box-shadow:0 3px 10px rgba(120,80,160,.18)}
.learn-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:8px;padding:1px 7px}
.learn-status.s-active{background:rgba(16,185,129,.16);color:#0f9d6b}
.learn-status.s-candidate{background:rgba(252,211,77,.2);color:#9a6b00}
.learn-status.s-ignored{background:rgba(184,179,199,.25);color:var(--ink-soft)}
.learn-dec{font-size:11px;font-weight:700;border-radius:8px;padding:2px 8px}
.learn-dec.d-accept{background:rgba(16,185,129,.16);color:#0f9d6b}
.learn-dec.d-ignore_once{background:rgba(184,179,199,.25);color:var(--ink-soft)}
.learn-dec.d-ignore_forever{background:rgba(225,29,114,.12);color:#c01060}
.learn-errs{display:flex;flex-direction:column;gap:10px}
.learn-err{border-left:3px solid #e11d72;background:rgba(225,29,114,.05);border-radius:10px;padding:10px 12px}
.learn-err-h{display:flex;justify-content:space-between;gap:10px;font-size:12px}
.learn-err-ctx{font-weight:700;color:#c01060}
.learn-err-ts{color:var(--ink-soft)}
.learn-err-msg{font-size:13px;margin-top:3px}
.learn-err details{margin-top:6px}
.learn-err summary{font-size:11px;color:var(--ink-soft);cursor:pointer}
.learn-trace{font-size:11px;background:rgba(0,0,0,.04);border-radius:8px;padding:8px;overflow-x:auto;white-space:pre-wrap;color:#555}

/* ================= MULTI-USER: HANDOFFS / DESIGN / TEAM / REPOSITORY ================= */
.sc-status.center{display:block;text-align:center;margin:10px auto}
.sc-rb-ctx{color:#a855f7;font-weight:600}

/* review-bar buttons spacing */
.sc-rb-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* ---- Design-team dashboard ---- */
.design-wrap,.handoffs-wrap{max-width:900px;margin:0 auto;padding:22px 18px 60px}
.design-intro{border-radius:18px;padding:18px 22px;margin-bottom:16px}
.design-intro h2{margin:0 0 6px;font-family:Quicksand,sans-serif}
.design-intro p{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.5}
.design-list{display:flex;flex-direction:column;gap:14px}
.design-empty{border-radius:16px;padding:30px;text-align:center;color:var(--ink-soft)}
.dcard{border-radius:16px;padding:16px 18px}
.dcard-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dcard-title{font-weight:700;font-size:16px}
.dcard-variant{font-weight:500;font-size:12px;color:#a855f7;background:rgba(168,85,247,.1);
  padding:2px 8px;border-radius:20px;margin-left:6px}
.dcard-meta{color:var(--ink-soft);font-size:12.5px;margin:6px 0 10px}
.dcard-actions{display:flex;gap:8px;flex-wrap:wrap}
.dcard-changes{margin:0 0 4px}
.dchg-list{list-style:none;margin:6px 0 12px;padding:10px 12px;background:rgba(120,90,160,.06);
  border-radius:12px;display:flex;flex-direction:column;gap:6px}
.dchg-list li{font-size:13px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.dchg-page{font-size:11px;color:var(--ink-soft);background:rgba(255,255,255,.7);padding:1px 7px;border-radius:8px}
.dchg-us{text-decoration:line-through;color:#ef4444}
.dchg-gl{color:#059669;font-weight:600}
.dchg-note{font-size:12px;color:#7c3aed}
.dchg-loading{font-size:12.5px;color:var(--ink-soft);padding:6px 0}

/* status badges (shared by design + handoffs) */
.hbadge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:20px;white-space:nowrap}
.hbadge.new{background:rgba(96,165,250,.15);color:#2563eb}
.hbadge.work{background:rgba(252,211,77,.22);color:#b45309}
.hbadge.warn{background:rgba(239,68,68,.14);color:#dc2626}
.hbadge.ok{background:rgba(16,185,129,.16);color:#059669}
.hbadge.done{background:rgba(120,90,160,.14);color:#6d28d9}

/* ---- Team management ---- */
.team-wrap{max-width:760px;margin:0 auto;padding:22px 18px 60px;display:flex;flex-direction:column;gap:16px}
.team-add{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.team-add .set-field{flex:1;min-width:150px}
.tmuted{color:var(--ink-soft);font-size:12px}

/* ---- File Repository ---- */
.repo-wrap{max-width:980px;margin:0 auto;padding:18px 16px 60px;display:flex;flex-direction:column;gap:14px}
.repo-toolbar{border-radius:16px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.repo-crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:14px}
.repo-crumbs .crumb{color:#7c3aed;cursor:pointer;font-weight:600;text-decoration:none}
.repo-crumbs .crumb:hover{text-decoration:underline}
.repo-crumbs .crumb-sep{color:var(--ink-soft)}
.repo-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.repo-search{border:1px solid var(--line);border-radius:20px;padding:7px 12px;min-width:180px;background:rgba(255,255,255,.7)}
.repo-body{border-radius:16px;padding:8px 6px;min-height:200px}
.repo-empty{padding:40px;text-align:center;color:var(--ink-soft)}
.repo-head,.repo-row{display:grid;grid-template-columns:34px 1fr 90px 140px 150px;align-items:center;gap:8px;padding:8px 12px}
.repo-head{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);border-bottom:1px solid var(--line)}
.repo-row{border-radius:10px}
.repo-row:hover{background:rgba(120,90,160,.06)}
.repo-name{display:flex;align-items:center;gap:8px;min-width:0}
.repo-name .rname{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.repo-row.folder .rname{font-weight:600}
.repo-parent{font-size:11px;color:var(--ink-soft);margin-left:6px}
.repo-size,.repo-when{font-size:12px;color:var(--ink-soft)}
.repo-ops{display:flex;gap:4px;justify-content:flex-end}
.repo-op{border:none;background:rgba(120,90,160,.08);border-radius:8px;padding:4px 8px;font-size:12px;color:var(--ink)}
.repo-op:hover{background:rgba(120,90,160,.16)}
.repo-op.danger:hover{background:rgba(239,68,68,.16);color:#dc2626}
.repo-check{display:flex;align-items:center;justify-content:center}
.hist-btn.ok{background:rgba(16,185,129,.14);color:#059669}
@media(max-width:640px){
  .repo-head,.repo-row{grid-template-columns:28px 1fr 70px;}
  .repo-when{display:none}
}

/* ---- Report preview popup ---- */
.report-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(40,25,60,.42);backdrop-filter:blur(4px)}
.report-modal.open{display:flex}
.report-card{width:min(920px,94vw);height:min(88vh,900px);border-radius:22px;padding:0;
  display:flex;flex-direction:column;overflow:hidden;background:rgba(255,255,255,.92)}
.report-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 20px;border-bottom:1px solid var(--line)}
.report-title{font-family:Quicksand,sans-serif;font-weight:700;font-size:17px}
.report-count{font-size:12px;font-weight:600;color:#a855f7;background:rgba(168,85,247,.12);
  padding:2px 10px;border-radius:20px;margin-left:8px}
.report-x{border:none;background:rgba(120,90,160,.1);border-radius:10px;width:34px;height:34px;font-size:15px}
.report-x:hover{background:rgba(239,68,68,.16);color:#dc2626}
.report-frame{flex:1;width:100%;border:none;background:#f5f3fa}
.report-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;
  padding:14px 20px;border-top:1px solid var(--line)}
.report-actions .btn-ghost[data-a="rereview"]{margin-right:auto}
@media(max-width:560px){
  .report-card{height:92vh}
  .report-actions{justify-content:center}
  .report-actions .btn-ghost[data-a="rereview"]{margin-right:0}
}

/* ---- Design queue filters ---- */
.design-filters{border-radius:14px;padding:10px 14px;margin-bottom:14px;display:flex;
  align-items:center;gap:10px;flex-wrap:wrap}
.design-filters .repo-search{flex:1;min-width:180px}
.design-filters select{border:1px solid var(--line);border-radius:20px;padding:7px 12px;
  background:rgba(255,255,255,.7);font-family:inherit;color:var(--ink)}
.design-count{margin-left:auto;font-size:12.5px;color:var(--ink-soft);white-space:nowrap}

/* ---- Finalise modal: inline subfolder creation ---- */
.final-folder-row{display:flex;gap:8px;align-items:center}
.final-folder-row select{flex:1;min-width:0}
.final-newrow{display:flex;gap:8px;align-items:center;margin:4px 0 2px}
.final-newrow.hidden{display:none}
.final-newrow input{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;
  padding:9px 12px;background:rgba(255,255,255,.85);font-family:inherit}
.final-newbtn{border:1px solid var(--line);background:rgba(255,255,255,.7);border-radius:12px;
  padding:9px 12px;font-size:13px;white-space:nowrap;color:var(--ink);font-family:inherit}
.final-newbtn:hover{background:rgba(120,90,160,.1)}
.final-newbtn.ok{background:var(--grad);color:#fff;border:none}

/* toolbar destructive button */
.btn-ghost.danger{color:#dc2626}
.btn-ghost.danger:hover:not(:disabled){background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.3)}
.btn-ghost.danger:disabled{color:var(--ink-soft);opacity:.6}

/* ================= SANDBOX ================= */
.sbx-wrap{max-width:1120px;margin:0 auto;padding:18px 16px 90px}
.btn-ghost.active{background:var(--grad);color:#fff;border:none}
.sbx-ask{border-radius:18px;padding:16px 18px;margin-bottom:16px}
.sbx-ask-row{display:flex;gap:10px;align-items:stretch}
.sbx-ask-row textarea{flex:1;border:1px solid var(--line);border-radius:14px;padding:12px 14px;
  font-family:inherit;font-size:15px;resize:vertical;background:rgba(255,255,255,.85);color:var(--ink)}
.sbx-mic{width:52px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.7);font-size:22px}
.sbx-mic:hover{background:rgba(120,90,160,.1)}
.sbx-mic.listening{background:#ef4444;color:#fff;border-color:#ef4444;animation:sbxpulse 1.1s ease-in-out infinite}
@keyframes sbxpulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.5)}50%{box-shadow:0 0 0 10px rgba(239,68,68,0)}}
.sbx-models-label{margin:14px 0 8px;font-weight:600;font-size:13px}
.sbx-dim{color:var(--ink-soft);font-weight:400}
.sbx-models{display:flex;flex-wrap:wrap;gap:8px}
.sbx-model{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:20px;
  padding:7px 14px;cursor:pointer;background:rgba(255,255,255,.6);font-size:13px}
.sbx-model.on{background:rgba(168,85,247,.14);border-color:rgba(168,85,247,.4)}
.sbx-model input{accent-color:#a855f7}
.sbx-model-name{font-weight:600}
.sbx-model-prov{color:var(--ink-soft);font-size:11px}
.sbx-ask-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.sbx-hint{color:var(--ink-soft);font-size:13px}
.sbx-loading,.sbx-empty{border-radius:16px;padding:28px;text-align:center;color:var(--ink-soft)}
.sbx-results{margin-top:4px}
.sbx-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;align-items:start}
.sbx-col{border-radius:16px;padding:12px 12px 8px;display:flex;flex-direction:column}
.sbx-col-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:2px 4px 10px;border-bottom:1px solid var(--line)}
.sbx-col-model{font-weight:700}
.sbx-col-prov{font-size:11px;color:#a855f7}
.sbx-col-count{margin-left:auto;font-size:11px;color:var(--ink-soft)}
.sbx-col-err{color:#dc2626;font-size:13px;padding:10px 4px}
.sbx-col-items{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.sbx-item{display:flex;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px;background:rgba(255,255,255,.55)}
.sbx-item.sel{background:rgba(94,234,212,.16);border-color:rgba(16,185,129,.4)}
.sbx-item-pick input{width:18px;height:18px;accent-color:#10b981;margin-top:2px}
.sbx-item-body{flex:1;min-width:0}
.sbx-item-text{font-size:14px;line-height:1.4}
.sbx-item-ans{font-size:12.5px;color:#059669;margin-top:4px}
.sbx-item-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.sbx-imgbtn{border:1px solid var(--line);background:rgba(255,255,255,.7);border-radius:20px;padding:4px 10px;font-size:12px;color:var(--ink)}
.sbx-imgbtn.on{background:rgba(168,85,247,.16);border-color:rgba(168,85,247,.4);color:#7c3aed;font-weight:600}
.sbx-imgsug{font-size:11px;color:var(--ink-soft);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbx-tray{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:12px 20px;border-top:1px solid var(--line);border-radius:18px 18px 0 0}
.sbx-tray-count{font-size:14px}
.sbx-tray-actions{display:flex;gap:10px}
.sbx-history{padding-top:4px}
/* detail modal */
.sbx-detail-body{flex:1;overflow-y:auto;padding:16px 20px}
.sbx-detail-prompt{font-size:13px;color:var(--ink-soft);margin-bottom:8px}
.sbx-detail-note{background:rgba(168,85,247,.1);border-radius:12px;padding:10px 12px;margin-bottom:14px;font-size:14px}
.sbx-ditems{display:flex;flex-direction:column;gap:12px}
.sbx-ditem{display:flex;gap:12px}
.sbx-ditem-n{flex:0 0 26px;height:26px;border-radius:50%;background:var(--grad);color:#fff;display:flex;
  align-items:center;justify-content:center;font-weight:700;font-size:13px}
.sbx-ditem-body{flex:1;min-width:0}
.sbx-ditem-img{display:inline-block;position:relative;margin-top:8px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.sbx-ditem-img img{display:block;max-width:280px;max-height:280px}
.sbx-img-dl{position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;padding:2px 8px;border-radius:10px}
.sbx-ditem-src{font-size:11px;color:var(--ink-soft);margin-top:6px}
.dcard-note{font-size:13px;color:#7c3aed;background:rgba(168,85,247,.08);border-radius:10px;padding:8px 10px;margin:6px 0 2px}

/* ---- Sandbox image picker ---- */
.sbx-item-thumb{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.sbx-img-card{width:min(760px,94vw);height:auto;max-height:90vh}
.sbx-img-body{padding:16px 20px;overflow-y:auto}
.sbx-img-item{font-size:14px;margin-bottom:10px}
.sbx-img-prompt{display:block;margin-bottom:12px}
.sbx-img-prompt span{display:block;font-size:12px;color:var(--ink-soft);margin-bottom:4px}
.sbx-img-prompt textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;
  font-family:inherit;font-size:14px;resize:vertical;background:rgba(255,255,255,.85);color:var(--ink)}
.sbx-img-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.sbx-img-loading{grid-column:1/-1;text-align:center;color:var(--ink-soft);padding:40px}
.sbx-imgopt{position:relative;border-radius:14px;overflow:hidden;border:2px solid transparent;cursor:pointer;aspect-ratio:1/1;background:#f5f3fa}
.sbx-imgopt img{width:100%;height:100%;object-fit:cover;display:block}
.sbx-imgopt:hover{border-color:rgba(168,85,247,.4)}
.sbx-imgopt.sel{border-color:#a855f7;box-shadow:0 0 0 3px rgba(168,85,247,.25)}
.sbx-imgchk{position:absolute;left:8px;top:8px;background:#a855f7;color:#fff;width:26px;height:26px;
  border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}
.sbx-imgrefine{position:absolute;right:8px;bottom:8px;border:none;background:rgba(0,0,0,.55);color:#fff;
  width:32px;height:32px;border-radius:50%;font-size:15px}
.sbx-imgrefine:hover{background:rgba(0,0,0,.8)}
.sbx-ask-btns{display:flex;gap:10px;align-items:center}

/* ---- Sandbox attachments (paste / upload / drag reference material) ---- */
.sbx-ask-side{display:flex;flex-direction:column;gap:6px;width:52px}
.sbx-ask-side .sbx-mic{width:52px;flex:1;font-size:20px}
.sbx-ask.drag{outline:2px dashed #a855f7;outline-offset:4px;background:rgba(168,85,247,.06)}
.sbx-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.sbx-att{position:relative;width:64px;height:64px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#f5f3fa}
.sbx-att img{width:100%;height:100%;object-fit:cover;display:block}
.sbx-att.file{width:auto;height:auto;display:flex;align-items:center;padding:6px 26px 6px 10px;font-size:12px}
.sbx-att-x{position:absolute;right:2px;top:2px;border:none;background:rgba(0,0,0,.6);color:#fff;width:18px;height:18px;
  border-radius:50%;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}
.sbx-att.file .sbx-att-x{top:50%;transform:translateY(-50%);right:4px}
.sbx-att-x:hover{background:#dc2626}

/* ── per-finding review (each finding decided independently) ── */
.sc-dot.partial{background:linear-gradient(135deg,#10b981 0 50%,#ef4444 50% 100%)!important}
.sc-src.chk{background:rgba(59,130,246,.16);color:#2563eb}
.sc-find-h{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.sc-find-decide{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.sc-find-decide button{border:1px solid var(--line);background:rgba(255,255,255,.75);border-radius:18px;
  padding:5px 11px;font-size:12.5px;color:var(--ink);font-family:inherit}
.sc-find-decide button:hover{background:rgba(120,90,160,.1)}
.sc-find-decide .ff-ig.on{background:rgba(148,163,184,.28);border-color:#94a3b8;color:#475569;font-weight:600}
.sc-find-decide .ff-ao.on,.sc-find-decide .ff-ac.on{background:rgba(16,185,129,.18);border-color:#10b981;color:#0f9d6b;font-weight:600}
.ff-note{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:10px;padding:7px 10px;
  font-family:inherit;font-size:13px;background:rgba(255,255,255,.8);color:var(--ink)}
.sc-find + .sc-find{margin-top:10px}
.sc-find.resolved{opacity:.5}
