/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   DESIGN TOKENS — Luxury Dark Theme
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
:root{
  /* ── Backgrounds ── */
  --bg:#f7f9f7; --bg2:#eff5ef; --s0:#ffffff; --s1:#f4f9f4; --s2:#eaf4ea; --s3:#d9edd9;
  /* ── Borders ── */
  --b0:#e2ede2; --b1:#d0e6d0; --b2:#b8d4b8; --b3:#94bc94;
  /* ── 主色：嫩绿 ── */
  --cyan:#3a9e5f; --cyan2:#2d7a49; --cyan-d:rgba(58,158,95,.10); --cyan-g:rgba(58,158,95,.25);
  /* ── 辅色 ── */
  --gold:#b45309; --gold2:#92400e; --gold-d:rgba(180,83,9,.07); --gold-g:rgba(180,83,9,.18);
  --jade:#3a9e5f; --jade2:#2d7a49; --jade-d:rgba(58,158,95,.08); --jade-g:rgba(58,158,95,.2);
  --rose:#dc2626; --rose2:#b91c1c; --rose-d:rgba(220,38,38,.07); --rose-g:rgba(220,38,38,.18);
  --indigo:#4f46e5; --indigo-d:rgba(79,70,229,.07);
  --violet:#7c3aed; --violet-d:rgba(124,58,237,.07);
  --amber:#d97706; --amber-d:rgba(217,119,6,.07);
  --sky:#3a9e5f; --sky-d:rgba(58,158,95,.07);
  /* ── Text ── */
  --tx:#1a2e1a; --tx2:#374737; --tx3:#6b7d6b; --tx4:#9cac9c;
  /* ── Misc ── */
  --r:6px; --r2:10px; --r3:14px;
  --shadow:0 2px 16px rgba(0,0,0,.06);
  --glow-cyan:none; --glow-gold:none;
  --nav:52px; --sb:216px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden}
body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Helvetica Neue','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--tx);font-size:14px;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}

/* ━━━ ACTIVATION SCREEN ━━━ */
#activation-screen{
  position:fixed;inset:0;background:var(--bg);z-index:1000;
  display:flex;align-items:center;justify-content:center;
  background:var(--s1);
}
.act-box{
  width:420px;max-width:92vw;
  background:var(--s0);border:1px solid var(--b0);border-radius:var(--r3);
  padding:36px;box-shadow:0 4px 24px rgba(0,0,0,.08);
  animation:actIn .4s ease;
}
@keyframes actIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
.act-logo{text-align:center;margin-bottom:28px}
.act-brand{font-family:inherit;font-size:24px;font-weight:700;
  color:var(--tx);letter-spacing:-.03em}
.act-tagline{font-size:12px;color:var(--tx3);margin-top:5px;letter-spacing:.02em}
.act-badge{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--b1);
  border-radius:4px;padding:4px 12px;font-size:11px;color:var(--tx3);margin-top:10px;font-weight:400;letter-spacing:.03em}
.act-login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.act-tab{border:1px solid var(--b2);background:var(--s1);color:var(--tx2);padding:10px 8px;border-radius:10px;cursor:pointer;font-size:12px;font-weight:700;transition:all .2s}
.act-tab.on{background:var(--cyan-d);border-color:var(--cyan-g);color:var(--cyan)}
.act-inline{display:flex;gap:8px;align-items:center}
.act-mini-btn{white-space:nowrap;padding:0 12px;height:46px;border-radius:10px;border:1px solid var(--cyan-g);background:var(--cyan-d);color:var(--cyan);cursor:pointer;font-size:12px;font-weight:700}
.act-mini-btn:disabled{opacity:.6;cursor:not-allowed}
.act-panel{display:none}
.act-panel.on{display:block}
.act-input-wrap{position:relative;margin-bottom:14px}
.act-input{width:100%;background:var(--s1);border:1px solid var(--b2);border-radius:var(--r);
  padding:14px 16px;color:var(--tx);font-size:15px;outline:none;
  font-family:'JetBrains Mono',monospace;letter-spacing:.08em;
  transition:all .2s;text-align:center}
.act-input.email{letter-spacing:0;text-align:left;font-family:'Sora',sans-serif}
.act-input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,212,255,.1)}
.act-input.error{border-color:var(--rose);box-shadow:0 0 0 3px rgba(244,63,94,.1);animation:shake .4s ease}
@keyframes shake{0%,100%{transform:none}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.act-btn{width:100%;padding:14px;border-radius:var(--r);border:none;cursor:pointer;
  font-size:14px;font-weight:700;font-family:'Sora',sans-serif;transition:all .2s;
  background:var(--cyan);color:#fff;}
.act-btn:hover{background:var(--cyan2)}
.act-btn:active{transform:scale(.98)}
.act-hint{text-align:center;font-size:11px;color:var(--tx3);margin-top:14px;line-height:1.6}
.act-hint a{color:var(--cyan);text-decoration:none}
.act-err{color:var(--rose);font-size:12px;text-align:center;margin-top:10px;min-height:18px;font-weight:500}

/* ━━━ APP SHELL ━━━ */
#app{display:flex;flex-direction:column;height:100%;opacity:0;pointer-events:none;transition:opacity .4s}
#app.unlocked{opacity:1;pointer-events:all}

/* Top Bar */
.topbar{
  height:var(--nav);background:var(--s0);
  border-bottom:1px solid var(--b0);
  display:flex;align-items:center;padding:0 16px;gap:12px;flex-shrink:0;position:relative;z-index:50
}
.tb-brand{font-family:inherit;font-size:14px;font-weight:700;color:var(--cyan);letter-spacing:-.02em}
.tb-title{font-size:14px;font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:none}
.tb-right{display:flex;align-items:center;gap:8px;margin-left:auto}
.tb-spacer{flex:1}
.ib{width:32px;height:32px;border-radius:6px;background:transparent;border:1px solid var(--b1);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s;font-size:14px;flex-shrink:0;color:var(--tx3)}
.ib:hover,.ib:active{background:var(--s2);border-color:var(--b2);color:var(--tx)}
.ib.cyan{background:var(--s1);border-color:var(--b1);color:var(--cyan)}
.ib.gold{background:var(--s1);border-color:var(--b1);color:var(--gold)}
.user-pill{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;
  background:var(--s1);border:1px solid var(--b1);border-radius:20px;cursor:pointer;transition:all .2s}
.user-pill:hover{border-color:var(--b2)}
.ava{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--gold));
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#000;flex-shrink:0}
.ava-name{font-size:11px;font-weight:600;color:var(--tx2)}

/* Body */
.app-body{flex:1;display:flex;overflow:hidden}

/* Sidebar */
.sidebar{width:var(--sb);background:var(--s1);border-right:1px solid var(--b0);
  display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;scrollbar-width:none;padding-bottom:16px}
.sidebar::-webkit-scrollbar{display:none}
@media(max-width:768px){.sidebar{display:none}}
.sb-sec{font-size:10px;letter-spacing:.08em;color:var(--tx4);padding:14px 16px 4px;font-weight:500;text-transform:none}
.sb-it{display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:5px;
  cursor:pointer;font-size:13px;color:var(--tx2);transition:all .1s;
  margin:1px 6px;border:none;position:relative;font-weight:400}
.sb-it:hover{background:var(--cyan-d);color:var(--tx)}.sb-it:hover .sb-ico{color:var(--cyan)}
.sb-it.on{font-weight:600}
.sb-it.on[data-c=cyan]{background:var(--cyan-d);color:var(--cyan);font-weight:600}.sb-it.on .sb-ico{color:var(--cyan)}
.sb-it.on[data-c=gold]{background:var(--cyan-d);border-color:transparent;color:var(--cyan);font-weight:600}
.sb-it.on[data-c=jade]{background:var(--cyan-d);border-color:transparent;color:var(--cyan);font-weight:600}
.sb-it.on[data-c=rose]{background:var(--cyan-d);border-color:transparent;color:var(--cyan);font-weight:600}
.sb-it.on[data-c=violet]{background:var(--violet-d);border-color:rgba(167,139,250,.2);color:var(--violet)}
.sb-it.on[data-c=indigo]{background:var(--indigo-d);border-color:rgba(99,102,241,.2);color:var(--indigo)}
.sb-it.on[data-c=amber]{background:var(--amber-d);border-color:rgba(245,158,11,.2);color:var(--amber)}
.sb-ico{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--tx3)}
.sb-svg{width:14px;height:14px;flex-shrink:0;display:block}
.sb-bdg{margin-left:auto;font-size:9px;border-radius:10px;padding:2px 7px;font-weight:700}
.sb-bdg.r{background:var(--rose);color:#fff}
.sb-bdg.g{background:var(--jade);color:#000}
.sb-bdg.gold{background:none;color:var(--gold);border:1px solid var(--gold-g)}
.sb-new{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--rose)}
.sb-footer{padding:14px;border-top:1px solid var(--b0);margin-top:auto}

/* Content */
.content{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--b2) transparent}
.content::-webkit-scrollbar{width:4px}
.content::-webkit-scrollbar-thumb{background:var(--b2);border-radius:4px}
.page{display:none;padding:16px;animation:pgIn .2s ease;min-height:100%}
@media(min-width:600px){.page{padding:20px 24px}}
.page.on{display:block}
@keyframes pgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Mobile Nav */
.mobnav{display:none;height:var(--nav);background:var(--s0);
  border-top:1px solid var(--b0);flex-shrink:0;z-index:50}

.mbn-items{display:flex;height:100%}
.mbn-it{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;cursor:pointer;color:var(--tx4);transition:color .2s;padding:6px 0;position:relative}
.mbn-it.on{color:var(--cyan);font-weight:600}
.mbn-ico{font-size:19px;line-height:1}
.mbn-lbl{font-size:9px;font-weight:600;letter-spacing:.02em}
.mbn-dot{position:absolute;top:5px;right:calc(50% - 15px);width:7px;height:7px;
  border-radius:50%;background:var(--rose);border:2px solid var(--s0)}
.mob-more{position:fixed;inset:0;background:rgba(0,0,0,.3);backdrop-filter:blur(4px);z-index:120;display:none;align-items:flex-end}
.mob-more.on{display:flex}
.mob-more-sheet{width:100%;max-height:min(72vh,620px);background:var(--s0);border-top:1px solid var(--b0);border-radius:16px 16px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.08);padding:12px 14px calc(16px + env(safe-area-inset-bottom));overflow-y:auto}
.mob-more-grip{width:46px;height:4px;border-radius:999px;background:var(--b2);margin:0 auto 12px}
.mob-more-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.mob-more-title{font-size:14px;font-weight:800}
.mob-more-close{width:32px;height:32px;border-radius:10px;border:1px solid var(--b1);background:var(--s1);color:var(--tx2);cursor:pointer}
.mob-more-section{margin-bottom:14px}
.mob-more-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx4);margin:0 0 8px 2px}
.mob-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mob-more-item{display:flex;align-items:center;gap:10px;padding:12px 12px;border-radius:14px;border:1px solid var(--b1);background:var(--s1);color:var(--tx);cursor:pointer;min-width:0}
.mob-more-item.on{border-color:var(--cyan-g);background:var(--cyan-d);color:var(--cyan);font-weight:600}
.mob-more-ico{font-size:18px;line-height:1;flex-shrink:0}
.mob-more-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.mob-more-name{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mob-more-sub{font-size:10px;color:var(--tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:768px){.mobnav{display:block;position:relative}}
@media(min-width:769px){.mob-more{display:none!important}}

/* Sync Overlay */
.server-sync-overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;
  background:rgba(3,8,18,.72);backdrop-filter:blur(10px);z-index:1400;padding:20px}
.server-sync-overlay.on{display:flex}
.server-sync-box{width:min(360px,100%);background:linear-gradient(180deg,rgba(17,24,41,.96),rgba(9,13,24,.98));
  border:1px solid rgba(0,212,255,.18);border-radius:22px;box-shadow:0 28px 70px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.02) inset;
  padding:24px 22px;display:flex;flex-direction:column;align-items:center;text-align:center}
.server-sync-spinner{width:44px;height:44px;border-radius:50%;border:3px solid rgba(0,212,255,.14);border-top-color:var(--cyan);border-right-color:rgba(240,180,41,.8);
  box-shadow:0 0 26px rgba(0,212,255,.12);animation:serverSyncSpin .8s linear infinite}
.server-sync-title{margin-top:16px;font-size:16px;font-weight:800;letter-spacing:.02em}
.server-sync-message{margin-top:8px;font-size:12px;line-height:1.7;color:var(--tx2)}
@keyframes serverSyncSpin{to{transform:rotate(360deg)}}

/* ━━━ COMPONENTS ━━━ */
.card{background:var(--s0);border:1px solid var(--b0);border-radius:var(--r2);overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.card-h{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--b0);gap:10px;background:var(--s1)}
.card-t{font-size:13px;font-weight:600;flex:1;color:var(--tx)}

/* Stat Cards */
.sgrid{display:grid;gap:10px;margin-bottom:16px}
.sg4{grid-template-columns:repeat(4,1fr)}
.sg3{grid-template-columns:repeat(3,1fr)}
.sg2{grid-template-columns:repeat(2,1fr)}
@media(max-width:600px){.sg4,.sg3{grid-template-columns:repeat(2,1fr)}}
.sc{background:var(--s0);border:1px solid var(--b0);border-radius:var(--r2);padding:16px;
  position:relative;overflow:hidden;transition:box-shadow .15s;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.sc:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}
.sc::before{content:'';position:absolute;top:0;left:0;width:3px;bottom:0;border-radius:var(--r2) 0 0 var(--r2)}
.sc.cyan::before{background:var(--cyan)}.sc.gold::before{background:var(--gold)}
.sc.jade::before{background:var(--jade)}.sc.rose::before{background:var(--rose)}
.sc.violet::before{background:var(--violet)}.sc.indigo::before{background:var(--indigo)}
.sc.amber::before{background:var(--amber)}.sc.sky::before{background:var(--sky)}
.sc-l{font-size:11px;color:var(--tx3);margin-bottom:6px;font-weight:500}
.sc-v{font-size:22px;font-weight:700;line-height:1;color:var(--tx)}
.sc-s{font-size:11px;color:var(--tx3);margin-top:4px}

/* Badges */
.bdg{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:600;white-space:nowrap}
.bdg-cyan{background:var(--cyan-d);color:var(--cyan);border:1px solid rgba(0,212,255,.2)}
.bdg-gold{background:var(--gold-d);color:var(--gold);border:1px solid rgba(240,180,41,.2)}
.bdg-jade{background:var(--jade-d);color:var(--jade);border:1px solid rgba(16,185,129,.2)}
.bdg-rose{background:var(--rose-d);color:var(--rose);border:1px solid rgba(244,63,94,.2)}
.bdg-violet{background:var(--violet-d);color:var(--violet);border:1px solid rgba(167,139,250,.2)}
.bdg-gray{background:var(--s2);color:var(--tx2);border:1px solid var(--b1)}
.bdg-amber{background:var(--amber-d);color:var(--amber);border:1px solid rgba(245,158,11,.2)}
.bdg-sky{background:var(--sky-d);color:var(--sky);border:1px solid rgba(56,189,248,.2)}
.bdg-indigo{background:var(--indigo-d);color:var(--indigo);border:1px solid rgba(99,102,241,.2)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r);
  font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .18s;
  font-family:'Sora',sans-serif;white-space:nowrap;justify-content:center;letter-spacing:.01em}
.btn:active{transform:scale(.96)}
.btn-cyan{background:var(--cyan);color:#fff;border-radius:5px;}
.btn-cyan:hover{background:var(--cyan2)}
.btn-gold{background:var(--gold);color:#fff;}
.btn-gold:hover{filter:brightness(1.1)}
.btn-jade{background:var(--jade-d);color:var(--jade);border:1px solid var(--jade-g)}
.btn-jade:hover{background:rgba(16,185,129,.15)}
.btn-rose{background:var(--rose-d);color:var(--rose);border:1px solid var(--rose-g)}
.btn-rose:hover{background:rgba(244,63,94,.15)}
.btn-violet{background:var(--violet-d);color:var(--violet);border:1px solid rgba(167,139,250,.25)}
.btn-ghost{background:transparent;color:var(--tx2);border:1px solid var(--b2)}
.btn-ghost:hover{background:var(--s1);color:var(--tx);border-color:var(--b3)}
.btn-ai{background:linear-gradient(135deg,rgba(0,212,255,.1),rgba(240,180,41,.06));
  color:var(--cyan);border:1px solid rgba(0,212,255,.25);position:relative;overflow:hidden}
.btn-ai::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent);
  transform:translateX(-100%);transition:transform .4s}
.btn-ai:hover::before{transform:translateX(100%)}
.btn-ai:hover{box-shadow:0 4px 20px rgba(0,212,255,.15)}
.upload-cta{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 14px;border-radius:var(--r);
  cursor:pointer;font-size:12px;color:var(--tx);transition:all .18s;position:relative;overflow:hidden;
  background:linear-gradient(135deg,rgba(0,212,255,.14),rgba(240,180,41,.08));
  border:1px solid rgba(0,212,255,.24);box-shadow:0 10px 24px rgba(0,212,255,.08)}
.upload-cta::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);
  transform:translateX(-100%);transition:transform .35s}
.upload-cta:hover{transform:translateY(-1px);border-color:rgba(0,212,255,.42);box-shadow:0 14px 28px rgba(0,212,255,.16)}
.upload-cta:hover::before{transform:translateX(100%)}
.upload-cta-main,.upload-cta-sub{position:relative;z-index:1}
.upload-cta-main{font-size:13px;font-weight:800;color:var(--cyan);letter-spacing:.01em}
.upload-cta-sub{font-size:11px;color:var(--tx2)}
.prd-shell{background:
  radial-gradient(circle at top right, rgba(0,212,255,.08), transparent 32%),
  linear-gradient(180deg,rgba(12,20,34,.96),rgba(10,17,29,.98));
  border:1px solid rgba(87,117,153,.22);box-shadow:0 18px 44px rgba(0,0,0,.22)}
.prd-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.prd-toolbar-copy{display:flex;align-items:center;gap:10px;min-width:220px}
.prd-toolbar-title{font-size:14px;font-weight:800;letter-spacing:.01em}
.prd-toolbar-sub{font-size:10px;color:var(--tx3);margin-top:4px}
.prd-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.prd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;padding:16px}
.prd-empty{grid-column:1/-1;padding:48px 20px;text-align:center;border:1px dashed rgba(0,212,255,.18);border-radius:18px;
  background:linear-gradient(135deg,rgba(0,212,255,.06),rgba(240,180,41,.04));color:var(--tx2)}
.prd-card{background:
  radial-gradient(circle at top right, rgba(0,212,255,.10), transparent 32%),
  linear-gradient(180deg,rgba(18,28,46,.98),rgba(12,20,34,.98));
  border:1px solid rgba(87,117,153,.18);border-radius:20px;overflow:hidden;cursor:pointer;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;box-shadow:0 16px 34px rgba(0,0,0,.22)}
.prd-card:hover{transform:translateY(-4px);border-color:rgba(0,212,255,.34);box-shadow:0 24px 42px rgba(0,0,0,.3)}
.prd-cover{position:relative;height:176px;overflow:hidden;background:
  radial-gradient(circle at top right, rgba(0,212,255,.2), transparent 32%),
  linear-gradient(135deg,rgba(10,17,29,.98),rgba(20,34,52,.95));border-bottom:1px solid rgba(87,117,153,.16)}
.prd-cover img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.01)}
.prd-cover::after{content:'';position:absolute;inset:auto 0 0;height:68px;background:linear-gradient(180deg,transparent,rgba(8,13,24,.82))}
.prd-cover-empty{position:absolute;inset:0;padding:16px;display:flex;flex-direction:column;justify-content:space-between}
.prd-cover-top,.prd-cover-bottom{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px}
.prd-cover-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:10px;font-weight:700;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px)}
.prd-cover-badge.muted{color:var(--tx2)}
.prd-cover-initial{font-size:48px;font-weight:900;line-height:1;color:rgba(255,255,255,.18);letter-spacing:.04em}
.prd-cover-hint{font-size:11px;color:var(--tx2);line-height:1.7;max-width:190px}
.prd-cover-overlay{position:absolute;inset:0;padding:16px;display:flex;flex-direction:column;justify-content:space-between}
.prd-cover-meta{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.prd-cover-meta .prd-cover-hint{color:rgba(255,255,255,.82)}
.prd-card-body{padding:16px}
.prd-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.prd-card-name{font-size:16px;font-weight:800;line-height:1.45;color:var(--tx)}
.prd-card-sku{margin-top:6px;font-size:11px;font-family:'JetBrains Mono',monospace;color:var(--tx3)}
.prd-card-side{font-size:10px;color:var(--tx3);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}
.prd-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.prd-kpi{padding:10px 11px;border-radius:14px;border:1px solid rgba(87,117,153,.16);background:rgba(255,255,255,.03)}
.prd-kpi-label{font-size:9px;color:var(--tx3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.prd-kpi-value{font-size:14px;font-weight:800}
.prd-kpi.cyan{background:rgba(0,212,255,.08);border-color:rgba(0,212,255,.18)}
.prd-kpi.cyan .prd-kpi-value{color:var(--cyan)}
.prd-kpi.gold{background:rgba(240,180,41,.08);border-color:rgba(240,180,41,.18)}
.prd-kpi.gold .prd-kpi-value{color:var(--gold)}
.prd-kpi.jade{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.18)}
.prd-kpi.jade .prd-kpi-value{color:var(--jade)}
.prd-card-spec{font-size:11px;color:var(--tx2);line-height:1.8;padding:10px 0 0;border-top:1px solid rgba(87,117,153,.14)}
.prd-list-wrap{overflow-x:auto;width:100%}
.prd-list-wrap table{border-radius:0}
.prd-list-wrap tr:hover td{background:var(--s2)!important}
.prd-card-desc{font-size:11px;color:var(--tx3);line-height:1.8;margin-top:8px;min-height:40px}
.prd-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(87,117,153,.14)}
.prd-card-meta{font-size:10px;color:var(--tx3)}
.prd-card-cta{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;font-size:11px;font-weight:800;
  color:#001018;background:linear-gradient(135deg,var(--cyan),#4fe2ff);box-shadow:0 8px 20px rgba(0,212,255,.18)}
.btn-sm{padding:6px 12px;font-size:11px}
.btn-xs{padding:4px 9px;font-size:10px}
.btn-full{width:100%}
.btn-icon{width:32px;height:32px;padding:0}

/* Forms */
.fg{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.fg:last-child{margin-bottom:0}
.fl{font-size:10px;color:var(--tx3);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.fi{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);
  padding:10px 12px;color:var(--tx);font-size:13px;outline:none;
  transition:all .15s;font-family:'Sora',sans-serif;width:100%}
.fi:focus{border-color:var(--cyan);box-shadow:0 0 0 2px rgba(0,212,255,.08)}
.fi::placeholder{color:var(--tx4)}
select.fi option{background:var(--s1)}
textarea.fi{resize:vertical;line-height:1.7;min-height:80px}
.frow{display:grid;gap:10px}
.fr2{grid-template-columns:1fr 1fr}
.fr3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:500px){.fr2,.fr3{grid-template-columns:1fr}}

/* Table */
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;min-width:480px}
thead tr{border-bottom:1px solid var(--b0)}
th{padding:10px 14px;font-size:10px;font-weight:600;color:var(--tx3);text-align:left;
  letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
td{padding:12px 14px;font-size:12px;border-bottom:1px solid var(--b0);vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr{transition:background .15s;cursor:pointer}
tbody tr:hover{background:rgba(255,255,255,.02)}

/* Modal */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.8);backdrop-filter:blur(10px);
  z-index:300;display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .25s}
.ov.open{opacity:1;pointer-events:all}
@media(min-width:600px){.ov{align-items:center;justify-content:center}}
.modal{background:var(--s0);border:1px solid var(--b2);
  border-radius:var(--r3) var(--r3) 0 0;width:100%;max-height:94vh;
  overflow-y:auto;transform:translateY(30px);
  transition:transform .3s cubic-bezier(.34,1.4,.64,1);box-shadow:var(--shadow)}
@media(min-width:600px){.modal{border-radius:var(--r3);width:600px;max-width:96vw;max-height:90vh;transform:translateY(16px) scale(.98)}}
.ov.open .modal{transform:none}

/* Import modal (modal-overlay / modal-box) */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);backdrop-filter:blur(10px);
  z-index:300;display:flex;align-items:flex-end;justify-content:center;padding:16px}
@media(min-width:600px){.modal-overlay{align-items:center}}
.modal-box{background:var(--s0);border:1px solid var(--b2);
  border-radius:var(--r3) var(--r3) 0 0;width:100%;
  box-shadow:var(--shadow)}
@media(min-width:600px){.modal-box{border-radius:var(--r3)}}
.drag-bar{width:38px;height:4px;background:var(--b2);border-radius:2px;margin:10px auto 0}
@media(min-width:600px){.drag-bar{display:none}}
.mh{display:flex;align-items:center;padding:15px 18px;border-bottom:1px solid var(--b0);
  gap:10px;position:sticky;top:0;background:var(--s0);z-index:1;backdrop-filter:blur(10px)}
.mt{font-size:14px;font-weight:700;flex:1}
.mc{width:28px;height:28px;border-radius:50%;background:var(--s2);border:none;
  color:var(--tx2);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.mc:hover{background:var(--b2);color:var(--tx)}
.mb{padding:18px}
.mf{padding:13px 18px;border-top:1px solid var(--b0);display:flex;gap:8px;justify-content:flex-end;
  position:sticky;bottom:0;background:var(--s0)}

/* Delete confirm */
.del-confirm{background:var(--rose-d);border:1px solid rgba(244,63,94,.25);border-radius:var(--r);
  padding:12px;margin-top:8px;font-size:12px;color:var(--rose);line-height:1.6}

/* Toast */
#toasts{position:fixed;top:72px;right:16px;z-index:500;display:flex;flex-direction:column;gap:7px;pointer-events:none}
@media(max-width:600px){#toasts{top:auto;bottom:72px;left:16px;right:16px}}
.toast{background:var(--s1);border:1px solid var(--b2);border-radius:var(--r);
  padding:11px 14px;font-size:12px;font-weight:500;box-shadow:var(--shadow);
  display:flex;align-items:center;gap:9px;animation:tIn .3s ease;max-width:320px;pointer-events:all}
.toast.ok{border-left:3px solid var(--jade)}
.toast.err{border-left:3px solid var(--rose)}
.toast.ai{border-left:3px solid var(--cyan)}
@keyframes tIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
@media(max-width:600px){@keyframes tIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}

/* ━━━ AI SECTION ━━━ */
.ai-hero{
  background:linear-gradient(135deg,var(--s1) 0%,rgba(0,212,255,.04) 50%,rgba(240,180,41,.03) 100%);
  border:1px solid rgba(0,212,255,.12);border-radius:var(--r3);padding:22px;margin-bottom:18px;
  position:relative;overflow:hidden}
.ai-hero::before{content:'AI';position:absolute;right:-10px;top:-20px;font-size:120px;
  font-weight:900;font-family:'Noto Serif SC',serif;
  background:linear-gradient(135deg,rgba(0,212,255,.04),rgba(240,180,41,.03));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  pointer-events:none;letter-spacing:-.05em}
.ai-title{font-family:'Noto Serif SC',serif;font-size:20px;font-weight:900;
  background:linear-gradient(135deg,var(--cyan2),var(--gold2));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:6px}
.ai-card{background:var(--s0);border:1px solid var(--b0);border-radius:var(--r2);padding:18px;
  cursor:pointer;transition:all .22s;position:relative;overflow:hidden}
.ai-card:hover{border-color:rgba(0,212,255,.25);transform:translateY(-2px);box-shadow:0 12px 40px rgba(0,0,0,.4),var(--glow-cyan)}
.ai-card:active{transform:scale(.98)}
.ai-card.active{border-color:rgba(0,212,255,.35);background:rgba(0,212,255,.04)}
.ai-card-icon{font-size:28px;margin-bottom:10px;display:block}
.ai-card-name{font-size:13px;font-weight:700;margin-bottom:4px}
.ai-card-desc{font-size:11px;color:var(--tx3);line-height:1.6}
.ai-hot{display:inline-flex;align-items:center;gap:4px;font-size:9px;
  background:linear-gradient(135deg,var(--gold-d),rgba(240,180,41,.04));
  color:var(--gold);border:1px solid rgba(240,180,41,.2);border-radius:4px;
  padding:2px 8px;margin-top:8px;font-weight:700;letter-spacing:.02em}

/* AI output */
.ai-out{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);
  padding:14px;font-size:12px;line-height:1.9;color:var(--tx2);white-space:pre-wrap;
  min-height:200px;max-height:500px;overflow-y:auto;font-family:'Sora',sans-serif;
  transition:all .2s}
.ai-out[contenteditable="true"]{outline:none;cursor:text}
.ai-out[contenteditable="true"]:focus{border-color:var(--cyan);box-shadow:0 0 0 2px rgba(0,212,255,.12)}
.ai-out.glow{border-color:rgba(0,212,255,.3);box-shadow:0 0 20px rgba(0,212,255,.08)}
.ai-pulse{display:inline-block;width:8px;height:15px;background:var(--cyan);border-radius:1px;
  animation:blink .7s infinite;vertical-align:middle;margin-left:2px}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.ai-ph{color:var(--tx4);font-style:italic;font-size:11px;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:120px;gap:8px}

/* Prospecting */
.prospect-step{background:var(--s0);border:1px solid var(--b0);border-radius:var(--r2);
  padding:16px;margin-bottom:12px;position:relative}
.prospect-step::before{content:attr(data-step);position:absolute;top:16px;left:16px;
  width:22px;height:22px;border-radius:50%;background:var(--cyan-d);border:1px solid var(--cyan-g);
  color:var(--cyan);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;
  text-align:center;line-height:1}
.prospect-step .step-body{margin-left:34px}
.prospect-step .step-title{font-size:12px;font-weight:700;margin-bottom:8px;color:var(--tx2)}
.lead-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);padding:14px;
  margin-bottom:10px;transition:all .2s;position:relative}
.lead-card:hover{border-color:var(--cyan-g,rgba(0,212,255,.35));background:var(--s2);box-shadow:0 4px 16px rgba(0,0,0,.08)}
.lead-score{position:absolute;top:14px;right:14px;font-size:11px;font-weight:700;
  font-family:'JetBrains Mono',monospace}

/* Settings */
.settings-section{background:var(--s0);border:1px solid var(--b0);border-radius:var(--r2);
  overflow:hidden;margin-bottom:14px}
.settings-row{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--b0);
  gap:12px;transition:background .15s;cursor:default}
.settings-row:last-child{border-bottom:none}
.settings-row:hover{background:var(--s1)}
.settings-row.clickable{cursor:pointer}
.sr-icon{width:34px;height:34px;border-radius:var(--r);display:flex;align-items:center;
  justify-content:center;font-size:16px;flex-shrink:0}
.sr-info{flex:1;min-width:0}
.sr-title{font-size:13px;font-weight:600;margin-bottom:2px}
.sr-sub{font-size:11px;color:var(--tx3);line-height:1.4}
.toggle{width:42px;height:24px;border-radius:12px;background:var(--b2);border:none;cursor:pointer;
  position:relative;transition:background .2s;flex-shrink:0}
.toggle.on{background:var(--cyan)}
.toggle::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;
  border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.toggle.on::after{transform:translateX(18px)}

.sup-star:hover { color: var(--gold) !important; transform: scale(1.2); }
.ord-tab { transition: color .2s, border-bottom-color .2s; }
.ord-tab:hover { color: var(--tx1) !important; }
.crm-tab { transition: color .2s, border-bottom-color .2s; }
.crm-tab:hover { color: var(--tx1) !important; }
.sup-star { display: inline-block; transition: all .15s; }
/* Activation key display */
.key-display{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);
  padding:12px 16px;font-family:'JetBrains Mono',monospace;font-size:13px;
  letter-spacing:.08em;color:var(--cyan);text-align:center;margin:12px 0}
.key-status{display:flex;align-items:center;gap:8px;padding:10px 14px;
  background:var(--jade-d);border:1px solid var(--jade-g);border-radius:var(--r);
  margin-bottom:12px}
.key-dot{width:8px;height:8px;border-radius:50%;background:var(--jade);flex-shrink:0;
  box-shadow:0 0 8px rgba(16,185,129,.4);animation:gpulse 2s infinite}
@keyframes gpulse{0%,100%{box-shadow:0 0 8px rgba(16,185,129,.4)}50%{box-shadow:0 0 16px rgba(16,185,129,.6)}}

/* Divider */
hr{border:none;border-top:1px solid var(--b0);margin:14px 0}

/* Empty state */
.empty{text-align:center;padding:50px 20px;color:var(--tx3)}
.empty-ico{font-size:44px;margin-bottom:12px;opacity:.6}

/* Finance */
.fin-bal{background:linear-gradient(135deg,var(--s1),var(--s2));border:1px solid var(--b1);
  border-radius:var(--r2);padding:22px;text-align:center;margin-bottom:12px;position:relative;overflow:hidden}
.fin-bal::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(16,185,129,.04),transparent)}
.fin-bal-v{font-size:32px;font-weight:800;font-family:'JetBrains Mono',monospace;line-height:1}
.fin-bal-v.pos{color:var(--jade)}.fin-bal-v.neg{color:var(--rose)}
.tx-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--b0);transition:background .15s;cursor:pointer}
.tx-row:hover{background:var(--s1)}
.tx-row:last-child{border-bottom:none}
.tx-ico{width:36px;height:36px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.tx-info{flex:1;min-width:0}
.tx-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tx-meta{font-size:10px;color:var(--tx3);margin-top:1px}
.tx-amt{font-size:14px;font-weight:700;font-family:'JetBrains Mono',monospace;flex-shrink:0}
.inc{color:var(--jade)}.exp{color:var(--rose)}
.cat-row{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.cat-bg{flex:1;height:5px;background:var(--s2);border-radius:3px;overflow:hidden}
.cat-fill{height:100%;border-radius:3px;transition:width 1s ease}

/* Diary */
.cgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cdn{font-size:9px;color:var(--tx3);text-align:center;padding:4px 0;font-weight:600;text-transform:uppercase}
.cd{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:6px;
  cursor:pointer;font-size:12px;position:relative;transition:all .15s;border:1px solid transparent}
.cd:hover{background:var(--s2)}
.cd.td{background:var(--cyan-d);border-color:var(--cyan-g);color:var(--cyan);font-weight:700}
.cd.sel{background:var(--cyan);color:#000;font-weight:700}
.cd.he::after{content:'';position:absolute;bottom:2px;width:4px;height:4px;border-radius:50%;background:var(--jade)}
.cd.sel.he::after{background:rgba(0,0,0,.5)}
.cd.oth{color:var(--tx4)}
.cd.chk::before{content:'';position:absolute;top:2px;right:2px;width:5px;height:5px;border-radius:50%;background:var(--jade)}
.hchip{padding:6px 12px;border-radius:20px;font-size:11px;cursor:pointer;border:1px solid var(--b1);
  color:var(--tx3);transition:all .18s;background:var(--s1);display:inline-flex;align-items:center;gap:5px;user-select:none;margin:3px}
.hchip:active{transform:scale(.95)}
.hchip.h0.on{background:var(--jade-d);border-color:var(--jade-g);color:var(--jade);font-weight:600}
.hchip.h1.on{background:var(--cyan-d);border-color:var(--cyan-g);color:var(--cyan);font-weight:600}
.hchip.h2.on{background:var(--gold-d);border-color:var(--gold-g);color:var(--gold);font-weight:600}
.hchip.h3.on{background:var(--violet-d);border-color:rgba(167,139,250,.2);color:var(--violet);font-weight:600}
.hchip.h4.on{background:var(--amber-d);border-color:rgba(245,158,11,.2);color:var(--amber);font-weight:600}
.hchip.h5.on{background:var(--rose-d);border-color:var(--rose-g);color:var(--rose);font-weight:600}
.mood-btn{font-size:22px;cursor:pointer;transition:transform .15s;border-radius:6px;padding:2px;border:2px solid transparent;user-select:none}
.mood-btn.sel{transform:scale(1.3);border-color:var(--cyan)}
.streak-bar{background:linear-gradient(135deg,rgba(16,185,129,.06),rgba(0,212,255,.04));
  border:1px solid rgba(16,185,129,.2);border-radius:var(--r2);
  padding:14px 18px;display:flex;align-items:center;gap:16px;margin-bottom:16px}
.streak-n{font-size:38px;font-weight:800;color:var(--jade);font-family:'JetBrains Mono',monospace;line-height:1}

/* Items */
.item-card{background:var(--s0);border:1px solid var(--b0);border-radius:var(--r2);padding:15px;
  cursor:pointer;transition:all .2s}
.item-card:hover{border-color:var(--b2);transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.wear-bg{height:5px;background:var(--s2);border-radius:3px;overflow:hidden;margin-bottom:8px}
.wear-fill{height:100%;border-radius:3px}

/* Social posts */
.pc{background:var(--s0);border:1px solid var(--b0);border-radius:var(--r2);padding:15px;
  cursor:pointer;transition:all .2s}
.pc:hover{border-color:var(--b2);transform:translateY(-1px)}
.pc-plat{width:32px;height:32px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.post-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.items-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.plat-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.ptab{padding:7px 13px;border-radius:var(--r);font-size:12px;cursor:pointer;
  border:1px solid var(--b1);color:var(--tx3);transition:all .18s;display:flex;align-items:center;gap:6px;white-space:nowrap;font-weight:500}
.ptab:hover{background:var(--s1)}
.ptab.on{font-weight:700}
.ptab.all.on{background:var(--cyan-d);border-color:var(--cyan-g);color:var(--cyan)}
.ptab.wc.on{background:rgba(7,193,96,.1);border-color:rgba(7,193,96,.3);color:#4ade80}
.ptab.xh.on{background:rgba(255,45,85,.1);border-color:rgba(255,45,85,.3);color:#fb7185}
.ptab.dy.on{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.15);color:var(--tx)}
.ptab.li.on{background:var(--sky-d);border-color:rgba(56,189,248,.25);color:var(--sky)}
.ptab.fb.on{background:var(--indigo-d);border-color:rgba(99,102,241,.25);color:var(--indigo)}
.fin-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.flt{padding:5px 12px;border-radius:6px;font-size:11px;cursor:pointer;border:1px solid var(--b1);color:var(--tx3);transition:all .15s;font-weight:500}
.flt.on{background:var(--cyan-d);border-color:var(--cyan-g);color:var(--cyan)}

/* ━━━ LIGHT THEME (default) ━━━ */
body.light {
  --bg:#f5f7fa; --bg2:#eef1f6; --s0:#ffffff; --s1:#f8fafc; --s2:#f0f4f8; --s3:#e5ecf3;
  --b0:#e8edf3; --b1:#dde4ed; --b2:#c8d3df; --b3:#aab9ca;
  --tx:#111827; --tx2:#374151; --tx3:#6b7280; --tx4:#9ca3af;
  --cyan:#0284c7; --cyan2:#0369a1; --cyan-d:rgba(2,132,199,.08); --cyan-g:rgba(2,132,199,.2);
  --gold:#b45309; --gold2:#92400e; --gold-d:rgba(180,83,9,.07); --gold-g:rgba(180,83,9,.18);
  --jade:#059669; --jade2:#047857; --jade-d:rgba(5,150,105,.07); --jade-g:rgba(5,150,105,.18);
  --rose:#dc2626; --rose2:#b91c1c; --rose-d:rgba(220,38,38,.07); --rose-g:rgba(220,38,38,.18);
  --shadow:0 4px 24px rgba(0,0,0,.08);
  --glow-cyan:none;
}
body.light .topbar { background:var(--s0);box-shadow:0 1px 3px rgba(0,0,0,.06); }
body.light .sidebar { background:var(--s0); }
body.light .fi { background:var(--s0); color:var(--tx); }
body.light .ai-out { background:var(--s1); color:var(--tx2); }
body.light #activation-screen { background:var(--s1); }
body.light .mobnav { background:var(--s0); }
body.light .toggle { background:var(--b2); }
body.light .prd-shell{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(246,250,253,.98));
  border-color:#d7e3ee;box-shadow:0 18px 40px rgba(122,145,168,.16)
}
body.light .prd-empty{
  border-color:rgba(0,153,187,.16);
  background:linear-gradient(135deg,rgba(0,153,187,.06),rgba(240,180,41,.05));
  color:var(--tx2)
}
body.light .prd-card{
  background:
    radial-gradient(circle at top right, rgba(0,153,187,.10), transparent 36%),
    linear-gradient(180deg,#ffffff,#f7fbff);
  border-color:#d7e3ee;box-shadow:0 16px 34px rgba(122,145,168,.14)
}
body.light .prd-card:hover{
  border-color:rgba(0,153,187,.26);box-shadow:0 24px 42px rgba(122,145,168,.2)
}
body.light .prd-cover{
  background:
    radial-gradient(circle at top right, rgba(0,153,187,.14), transparent 34%),
    linear-gradient(135deg,#f7fbff,#ebf3fa);
  border-bottom-color:#dfe8f1
}
body.light .prd-cover::after{
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.82))
}
body.light .prd-cover-badge{
  background:rgba(255,255,255,.76);
  border-color:rgba(143,170,191,.26);
  color:var(--tx2)
}
body.light .prd-cover-badge.muted{color:var(--tx3)}
body.light .prd-cover-initial{color:rgba(26,38,56,.18)}
body.light .prd-cover-hint{color:#58718a}
body.light .prd-cover-meta .prd-cover-hint{color:var(--tx2)}
body.light .prd-card-side{color:#7b91a8}
body.light .prd-kpi{border-color:#dce7f0;background:rgba(240,244,248,.72)}
body.light .prd-kpi.cyan{background:rgba(0,153,187,.08);border-color:rgba(0,153,187,.16)}
body.light .prd-kpi.gold{background:rgba(240,180,41,.08);border-color:rgba(240,180,41,.16)}
body.light .prd-kpi.jade{background:rgba(10,143,94,.08);border-color:rgba(10,143,94,.16)}
body.light .prd-card-spec,
body.light .prd-card-footer{border-top-color:#e4edf5}
body.light .prd-card-desc,
body.light .prd-card-meta{color:var(--tx2)}
body.light .prd-card-cta{box-shadow:0 8px 20px rgba(0,153,187,.18)}

/* ━━━ iOS DESIGN TOKENS ━━━ */
:root{
  --bg:#000000; --bg2:#0a0a0a; --s0:#1c1c1e; --s1:#2c2c2e; --s2:#3a3a3c; --s3:#48484a;
  --b0:#2c2c2e; --b1:#3a3a3c; --b2:#48484a; --b3:#636366;
  --r:12px; --r2:16px; --r3:20px;
  --shadow:0 8px 32px rgba(0,0,0,.5);
}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Display',sans-serif;-webkit-font-smoothing:antialiased}

/* ━━━ TODO ━━━ */
.todo-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--b0);transition:background .15s;position:relative}
.todo-item:last-child{border-bottom:none}
.todo-item:hover{background:var(--s1)}
.todo-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--b2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;font-size:12px}
.todo-check.done{background:var(--jade);border-color:var(--jade)}
.todo-check.fail{background:var(--rose);border-color:var(--rose)}
.todo-text{flex:1;font-size:13px;line-height:1.5}
.todo-text.done{text-decoration:line-through;color:var(--tx3)}
.todo-text.fail{color:var(--rose);text-decoration:line-through}
.todo-pri{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.todo-pri.high{background:var(--rose)}.todo-pri.med{background:var(--gold)}.todo-pri.low{background:var(--jade)}
.todo-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}
.todo-item:hover .todo-actions{opacity:1}

/* ━━━ TIMELINE ━━━ */
.tl-wrap{position:relative;padding-left:24px}
.tl-wrap::before{content:'';position:absolute;left:8px;top:4px;bottom:4px;width:2px;background:linear-gradient(to bottom,var(--cyan),var(--b1))}
.tl-item{position:relative;margin-bottom:16px}
.tl-item::before{content:'';position:absolute;left:-20px;top:6px;width:10px;height:10px;border-radius:50%;border:2px solid var(--cyan);background:var(--bg);z-index:1}
.tl-item.email::before{border-color:var(--cyan);background:var(--cyan-d)}
.tl-item.phone::before{border-color:var(--jade);background:var(--jade-d)}
.tl-item.wa::before{border-color:var(--jade);background:var(--jade-d)}
.tl-item.visit::before{border-color:var(--gold);background:var(--gold-d)}
.tl-date{font-size:10px;color:var(--tx3);margin-bottom:4px;font-family:'JetBrains Mono',monospace;font-weight:600}
.tl-body{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);padding:10px 12px}
.tl-result{font-size:12px;color:var(--tx2);line-height:1.7}
.tl-next{font-size:11px;color:var(--jade);margin-top:5px}
.tl-imgs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tl-img{width:60px;height:60px;border-radius:8px;object-fit:cover;cursor:pointer;border:1px solid var(--b1);transition:transform .15s}
.tl-img:hover{transform:scale(1.05)}

/* ━━━ REVIEW ━━━ */
.rv-item{padding:13px 16px;border-bottom:1px solid var(--b0);cursor:pointer;transition:background .15s}
.rv-item:hover{background:var(--s1)}
.rv-item.active{background:var(--cyan-d);border-left:2px solid var(--cyan)}
.study-layout{display:grid;gap:14px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.study-pane{min-width:0;display:flex;flex-direction:column}
.study-list-card,.study-editor-shell,.study-placeholder-shell{min-width:0}
.study-editor-body{padding:14px;overflow-y:auto;max-height:calc(100vh - 200px);min-width:0}
.study-list-item{min-width:0}
.study-list-meta{display:flex;align-items:center;gap:6px;margin-bottom:3px;min-width:0}
.study-list-title{font-size:13px;font-weight:600;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.study-list-preview{font-size:11px;color:var(--tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){.study-layout{grid-template-columns:1fr}}

/* ━━━ IMAGE PREVIEW ━━━ */
.img-thumb{position:relative;display:inline-block}
.img-thumb img{width:70px;height:70px;object-fit:cover;border-radius:10px;border:1px solid var(--b1)}
.img-thumb .del-img{position:absolute;top:-5px;right:-5px;width:18px;height:18px;border-radius:50%;background:var(--rose);color:#fff;border:none;cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center}

/* ━━━ CSS STARS ━━━ */
.css-star{font-size:26px;cursor:pointer;transition:transform .15s,color .15s;color:var(--gold);opacity:.3;line-height:1}
.css-star.active{opacity:1;transform:scale(1.15)}

/* ━━━ LIGHTBOX ━━━ */
#lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:999;display:none;align-items:center;justify-content:center;backdrop-filter:blur(10px)}
#lightbox img{max-width:92vw;max-height:90vh;border-radius:12px}
#lightbox-close{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.15);border:none;color:#fff;font-size:20px;cursor:pointer}

/* ━━━ NOTIFICATION BANNER ━━━ */
.notif-banner{position:fixed;top:70px;left:50%;transform:translateX(-50%);width:min(480px,94vw);z-index:400;background:var(--s0);border:1px solid var(--b2);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.6);animation:notifIn .4s cubic-bezier(.34,1.4,.64,1);backdrop-filter:blur(30px);overflow:hidden}
@keyframes notifIn{from{opacity:0;transform:translateX(-50%) translateY(-20px) scale(.95)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}
.notif-banner.out{animation:notifOut .3s ease forwards}
@keyframes notifOut{to{opacity:0;transform:translateX(-50%) translateY(-16px) scale(.95)}}
.notif-top{background:linear-gradient(135deg,rgba(10,132,255,.12),rgba(255,214,10,.06));padding:14px 16px 12px;border-bottom:1px solid var(--b0)}
.notif-title{font-size:13px;font-weight:700;margin-bottom:2px;display:flex;align-items:center;gap:8px}
.notif-sub{font-size:11px;color:var(--tx3)}
.notif-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--b0);cursor:pointer;transition:background .15s}
.notif-row:hover{background:var(--s1)}
.notif-ico{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.notif-actions{padding:12px 16px;display:flex;gap:8px}

/* ━━━ SEND/TRACK BADGES ━━━ */
.track-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}
.track-dot.opened{background:var(--jade)}.track-dot.sent{background:var(--gold)}


/* ━━━ NOTION BLOCK EDITOR ━━━ */
.notion-block{display:flex;align-items:flex-start;gap:8px;padding:3px 6px;border-radius:6px;position:relative;margin-bottom:2px;min-height:30px}
.notion-block:hover{background:var(--s2)}
.notion-block:hover .block-del{opacity:1}
.block-del{opacity:0;transition:opacity .15s;background:none;border:none;cursor:pointer;color:var(--tx4);font-size:14px;padding:2px 5px;border-radius:4px;line-height:1;flex-shrink:0;margin-top:4px}
.block-del:hover{background:var(--rose-d);color:var(--rose)}
.block-handle{opacity:0;transition:opacity .15s;cursor:grab;color:var(--tx4);font-size:12px;padding:2px 3px;flex-shrink:0;margin-top:4px;user-select:none}
.notion-block:hover .block-handle{opacity:1}
.block-content{flex:1;outline:none;min-height:24px;line-height:1.7;word-break:break-word;caret-color:var(--cyan)}
.block-content:empty::before{content:attr(data-ph);color:var(--tx4);pointer-events:none}
/* Block types */
.block-h1 .block-content{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--tx1)}
.block-h2 .block-content{font-size:16px;font-weight:700;color:var(--tx1)}
.block-bullet::before{content:'•';color:var(--cyan);font-size:16px;margin-top:4px;flex-shrink:0;width:16px}
.block-numbered .block-num{color:var(--cyan);font-size:13px;font-weight:700;margin-top:4px;flex-shrink:0;min-width:20px;font-family:'JetBrains Mono',monospace}
.block-todo .block-checkbox{width:16px;height:16px;border-radius:4px;border:2px solid var(--b2);cursor:pointer;flex-shrink:0;margin-top:5px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.block-todo .block-checkbox.checked{background:var(--jade);border-color:var(--jade);color:#000;font-size:11px}
.block-todo.checked-block .block-content{text-decoration:line-through;color:var(--tx3)}
.block-quote{border-left:3px solid var(--cyan);padding-left:12px;margin-left:4px}
.block-quote .block-content{color:var(--tx2);font-style:italic}
.block-code .block-content{font-family:'JetBrains Mono',monospace;font-size:12px;background:var(--s2);padding:8px 12px;border-radius:6px;color:var(--jade);white-space:pre-wrap}
.block-divider{padding:8px 6px;align-items:center}
.block-divider hr{flex:1;border:none;border-top:1px solid var(--b2);margin:0}
.block-callout{background:rgba(255,214,10,.07);border:1px solid rgba(255,214,10,.2);border-radius:8px;padding:8px 12px}
.block-callout .block-content{color:var(--tx1)}

/* ─── Mail Module ─── */
#mail-app { font-family: inherit; }
#mail-list::-webkit-scrollbar { width: 4px; }
#mail-list::-webkit-scrollbar-thumb { background: var(--b2); border-radius: 2px; }
#mail-reader { display: flex; flex-direction: column; }
#mail-read-body img { max-width: 100%; }
.mail-tab-btn { transition: all .15s; white-space: nowrap; }
#mail-sidebar { transition: width .2s; }
#mail-compose-wrap { transition: none; }
@media(max-width:768px) {
  #mail-sidebar { width: 160px !important; }
  #mail-list-panel { width: 240px !important; }
}