/* ============================================================
   DarsYar — styles
   ============================================================ */
:root{
  --bg:#f4f7ff;
  --bg-soft:#e9efff;
  --surface:#ffffff;
  --surface-2:#f8faff;
  --ink:#17203a;
  --ink-soft:#3d4763;
  --muted:#6b7590;
  --line:#e3e9f8;
  --primary:#5b6cff;
  --primary-dark:#4051f0;
  --primary-soft:#e8ebff;
  --accent:#ff8a5c;
  --mint:#18b8a6;
  --sun:#ffc247;
  --danger:#e5484d;
  --shadow-sm:0 2px 6px rgba(26,37,74,.06);
  --shadow-md:0 10px 30px rgba(26,37,74,.10);
  --shadow-lg:0 24px 60px rgba(26,37,74,.18);
  --radius:22px;
  --radius-sm:14px;
  --header-h:74px;
  --font:"Vazirmatn","IRANSansX","IRANSans","Segoe UI",Tahoma,system-ui,-apple-system,sans-serif;
}
html[data-theme="dark"]{
  --bg:#0f1424;
  --bg-soft:#161d33;
  --surface:#18203a;
  --surface-2:#1e2744;
  --ink:#eef2ff;
  --ink-soft:#c9d2ef;
  --muted:#95a0c2;
  --line:#2a3454;
  --primary:#7c8bff;
  --primary-dark:#6876f7;
  --primary-soft:#252f58;
  --accent:#ff9d74;
  --shadow-sm:0 2px 6px rgba(0,0,0,.35);
  --shadow-md:0 12px 32px rgba(0,0,0,.42);
  --shadow-lg:0 26px 70px rgba(0,0,0,.55);
}
html[data-theme="library"]{
  --bg:#f3e6cf;
  --bg-soft:#eddcc0;
  --surface:#fbf2df;
  --surface-2:#f6ebd4;
  --ink:#3a2d20;
  --ink-soft:#574634;
  --muted:#8b7458;
  --line:#e2d0b0;
  --primary:#a9712f;
  --primary-dark:#8a5a22;
  --primary-soft:#f0ddbc;
  --accent:#c2733a;
  --mint:#7f8a4a;
  --sun:#d9a441;
  --danger:#b4472f;
  --shadow-sm:0 2px 6px rgba(90,62,30,.10);
  --shadow-md:0 10px 30px rgba(90,62,30,.14);
  --shadow-lg:0 24px 60px rgba(90,62,30,.22);
}
html[data-theme="library"] body{
  background:
    radial-gradient(1100px 520px at 12% -10%, rgba(196,140,66,.16), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(210,170,96,.14), transparent 62%),
    var(--bg);
}
html[data-theme="library"] .card::after{opacity:.30}
html[data-theme="library"] .kid-box{background:linear-gradient(135deg,#fdf1d8,#f7e3c1);border-color:#e8cf9f;color:#5a4020}
html[data-theme="library"] body{line-height:1.85}
html[data-theme="library"] .hero h2{color:var(--ink)}
html[data-theme="library"] .search-btn,
html[data-theme="library"] .primary-btn,
html[data-theme="library"] .mini-btn.solid{background:linear-gradient(135deg,#b17a35,#8a5a22);box-shadow:0 8px 18px rgba(138,90,34,.32)}
html[data-theme="library"] .chat-toggle{background:linear-gradient(135deg,#4a3520,#2f2214)}
html[data-theme="library"] .filter-chip[aria-pressed="true"],
html[data-theme="library"] .nav-btn.on,
html[data-theme="library"] .kind-btn.on{background:linear-gradient(135deg,#b17a35,#8a5a22)}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font);
  background:
    radial-gradient(1100px 520px at 12% -10%, rgba(91,108,255,.16), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(255,138,92,.14), transparent 62%),
    var(--bg);
  color:var(--ink);
  line-height:1.75;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.lock{overflow:hidden}
h1,h2,h3,h4{margin:0;line-height:1.45;font-weight:800;letter-spacing:-.01em}
p{margin:0}
button,input{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
::selection{background:var(--primary);color:#fff}
:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:8px}

.skip-link{
  position:fixed;top:-60px;right:16px;z-index:200;
  background:var(--primary);color:#fff;padding:10px 18px;border-radius:12px;
  transition:top .2s;font-weight:700;
}
.skip-link:focus{top:12px}

/* ---------- top bar ---------- */
.topbar{
  position:sticky;top:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px clamp(16px,4vw,44px);
  height:var(--header-h);
  background:color-mix(in srgb, var(--bg) 95%, transparent);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.logo{
  width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;
  font-size:26px;border-radius:16px;
  background:linear-gradient(145deg,#ffe6b8,#ffc247 55%,#ff9d5c);
  box-shadow:0 6px 16px rgba(255,164,66,.4);
  transform:rotate(-4deg);
}
.brand-text h1{font-size:1.35rem;letter-spacing:-.02em}
.brand-text p{margin:0;font-size:.78rem;color:var(--muted);line-height:1.4}
.top-actions{display:flex;align-items:center;gap:8px}

.icon-btn{
  width:42px;height:42px;border-radius:14px;display:grid;place-items:center;
  font-size:18px;background:var(--surface);border:1px solid var(--line);
  box-shadow:var(--shadow-sm);transition:transform .16s, box-shadow .16s, background .16s;
}
.icon-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.icon-btn.small{width:34px;height:34px;font-size:15px;border-radius:11px;box-shadow:none}
.pill-btn{
  height:42px;padding:0 16px;border-radius:14px;font-weight:800;font-size:.85rem;
  background:var(--primary-soft);color:var(--primary-dark);border:1px solid transparent;
  transition:transform .16s;
}
.pill-btn:hover{transform:translateY(-2px)}

/* ---------- hero ---------- */
main{max-width:1220px;margin:0 auto;padding:clamp(14px,3vw,30px) clamp(14px,4vw,36px) 60px}
.hero{text-align:center;padding:clamp(2px,1vw,8px) 0 2px}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--surface);border:1px solid var(--line);
  padding:7px 15px;border-radius:999px;font-size:.8rem;font-weight:700;color:var(--ink-soft);
  box-shadow:var(--shadow-sm);margin-bottom:12px;
  animation:pop .5s cubic-bezier(.2,.9,.3,1.2) both;
}
.hero h2{
  font-size:clamp(1.35rem,3.1vw,2.05rem);
  line-height:1.4;max-width:30ch;margin:0 auto 10px;
  background:linear-gradient(100deg,var(--ink) 42%,var(--primary-dark));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:fadeUp .55s .05s both;
}
.hero-sub{
  max-width:60ch;margin:0 auto;color:var(--muted);font-size:clamp(.84rem,1.7vw,.95rem);
  animation:fadeUp .55s .12s both;
}

.search{
  position:relative;display:flex;align-items:center;gap:8px;
  max-width:720px;margin:18px auto 0;padding:7px 7px 7px 11px;
  background:var(--surface);border:1.5px solid var(--line);border-radius:20px;
  box-shadow:var(--shadow-md);transition:border-color .2s, box-shadow .2s;
  animation:fadeUp .55s .18s both;
}
.search:focus-within{border-color:var(--primary);box-shadow:0 0 0 5px var(--primary-soft),var(--shadow-md)}
.search-icon{font-size:17px;opacity:.65;padding-inline-start:6px}
.search input{
  flex:1;min-width:0;border:0;background:none;padding:10px 4px;font-size:1rem;outline:none;
}
.search input::-webkit-search-cancel-button{display:none}
.dice-btn{
  width:40px;height:40px;border-radius:12px;font-size:17px;background:var(--surface-2);
  transition:transform .2s;
}
.dice-btn:hover{transform:rotate(-12deg) scale(1.06)}
.search-btn{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;
  font-weight:800;padding:11px 26px;border-radius:14px;font-size:.95rem;
  box-shadow:0 8px 18px rgba(91,108,255,.35);transition:transform .16s, box-shadow .16s;
}
.search-btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(91,108,255,.42)}
.search-btn:active{transform:translateY(0)}

.quick-row{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px;
  margin:18px auto 0;max-width:820px;
}
.quick-chip{
  background:var(--surface);border:1px dashed var(--line);color:var(--ink-soft);
  padding:7px 14px;border-radius:999px;font-size:.82rem;font-weight:600;
  transition:all .16s;
}
.quick-chip:hover{border-style:solid;border-color:var(--primary);color:var(--primary-dark);transform:translateY(-2px)}
.hero-stats{margin-top:20px;font-size:.8rem;color:var(--muted);display:flex;gap:10px;justify-content:center;flex-wrap:wrap;align-items:center}
.stat-item{white-space:nowrap}
.stat-sep{opacity:.4}
.hero-stats b{color:var(--ink)}

/* ---------- filters ---------- */
.filters{margin:12px 0 12px}
.filter-row{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none;-ms-overflow-style:none}
.filter-row::-webkit-scrollbar{display:none}
.filter-chip{
  white-space:nowrap;display:inline-flex;align-items:center;gap:6px;
  padding:9px 16px;border-radius:14px;font-size:.86rem;font-weight:700;
  background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);
  box-shadow:var(--shadow-sm);transition:all .16s;
}
.filter-chip:hover{transform:translateY(-2px);border-color:var(--primary)}
.filter-chip[aria-pressed="true"]{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:transparent;
  box-shadow:0 10px 20px rgba(91,108,255,.32);
}

/* ---------- results ---------- */
.results-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 18px}
.results-head h3{font-size:1.12rem}
.results-count{font-size:.82rem;color:var(--muted);background:var(--surface);border:1px solid var(--line);padding:3px 11px;border-radius:999px}
.text-btn{margin-inline-start:auto;font-size:.82rem;font-weight:700;color:var(--primary);padding:6px 10px;border-radius:10px}
.text-btn:hover{background:var(--primary-soft)}

.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.card{
  position:relative;display:flex;flex-direction:column;gap:10px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;text-align:start;box-shadow:var(--shadow-sm);
  transition:transform .18s cubic-bezier(.2,.8,.3,1), box-shadow .18s, border-color .18s;
  animation:fadeUp .38s both;overflow:hidden;
}
.card::after{
  content:"";position:absolute;inset-inline-end:-34px;top:-34px;width:88px;height:88px;border-radius:50%;
  background:var(--card-tint,var(--primary-soft));opacity:.45;pointer-events:none;
}
html[data-theme="dark"] .card::after{opacity:.16}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--primary) 40%,var(--line))}
.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1}
.card-emoji{
  width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;font-size:26px;
  border-radius:16px;background:var(--card-tint,var(--primary-soft));
}
.level-tag{
  font-size:.68rem;font-weight:800;color:var(--muted);background:var(--surface-2);
  border:1px solid var(--line);padding:3px 9px;border-radius:999px;white-space:nowrap;
}
.card h4{font-size:1.03rem;margin-top:2px;position:relative;z-index:1}
.card .en-name{font-size:.78rem;color:var(--muted);direction:ltr;text-align:start;margin-top:-4px;font-weight:600}
.card p{font-size:.84rem;color:var(--ink-soft);position:relative;z-index:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.tag{
  font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:9px;
  background:var(--surface-2);color:var(--muted);border:1px solid var(--line);
}
.card-actions{display:flex;gap:8px;margin-top:12px;position:relative;z-index:1}
.mini-btn{
  flex:1;padding:9px 10px;border-radius:12px;font-size:.8rem;font-weight:800;
  background:var(--surface-2);border:1px solid var(--line);transition:all .15s;
}
.mini-btn:hover{background:var(--primary-soft);color:var(--primary-dark);border-color:transparent}
.mini-btn.solid{background:var(--primary);color:#fff;border-color:transparent}
.mini-btn.solid:hover{background:var(--primary-dark);color:#fff}

.empty{text-align:center;padding:60px 20px;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius)}
.empty-emoji{font-size:52px;margin-bottom:8px}
.empty h3{font-size:1.1rem;margin-bottom:6px}
.empty p{color:var(--muted);font-size:.9rem;margin-bottom:18px}

.primary-btn{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;
  padding:11px 22px;border-radius:14px;font-weight:800;font-size:.9rem;
  box-shadow:0 8px 18px rgba(91,108,255,.32);transition:transform .15s;
}
.primary-btn:hover{transform:translateY(-2px)}
.ghost-btn{
  padding:11px 20px;border-radius:14px;font-weight:800;font-size:.9rem;
  background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft);
}
.ghost-btn:hover{border-color:var(--danger);color:var(--danger)}

/* ---------- footer ---------- */
.footer{text-align:center;color:var(--muted);font-size:.78rem;padding:26px 20px 40px;border-top:1px solid var(--line)}

/* ---------- chat ---------- */
.chat-toggle{
  position:fixed;inset-inline-end:22px;bottom:22px;z-index:80;
  display:inline-flex;align-items:center;gap:9px;
  padding:13px 20px;border-radius:999px;font-weight:800;font-size:.9rem;
  background:linear-gradient(135deg,#2b3559,#171e35);color:#fff;
  box-shadow:0 14px 34px rgba(20,26,48,.4);
  transition:transform .18s, box-shadow .18s;
}
.chat-toggle:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 18px 40px rgba(20,26,48,.5)}
.chat-toggle-emoji{font-size:20px}
.chat-panel{
  position:fixed;inset-inline-end:22px;bottom:22px;z-index:90;
  width:min(400px, calc(100vw - 28px));height:min(640px, calc(100vh - 40px));
  display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--line);border-radius:26px;
  box-shadow:var(--shadow-lg);overflow:hidden;
  transform:translateY(24px) scale(.96);opacity:0;pointer-events:none;
  transition:transform .24s cubic-bezier(.2,.9,.3,1.1), opacity .2s;
}
.chat-panel.open{transform:none;opacity:1;pointer-events:auto}
.chat-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px;border-bottom:1px solid var(--line);
  background:linear-gradient(135deg,var(--primary-soft),transparent);
}
.chat-id{display:flex;align-items:center;gap:10px}
.chat-avatar{
  width:40px;height:40px;border-radius:14px;display:grid;place-items:center;font-size:21px;
  background:linear-gradient(145deg,#dbe1ff,#aab6ff);box-shadow:var(--shadow-sm);
}
.chat-id strong{display:block;font-size:.95rem}
.chat-id small{color:var(--muted);font-size:.72rem;display:flex;align-items:center;gap:5px}
.chat-id small::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mint);display:inline-block}
.chat-id small.online::before{background:var(--accent)}
.chat-head-actions{display:flex;gap:6px}
.chat-log{
  flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;
  scroll-behavior:smooth;background:var(--surface-2);
  scrollbar-width:thin;scrollbar-color:var(--line) transparent;
}
.chat-log::-webkit-scrollbar,.modal-card::-webkit-scrollbar{width:9px;height:9px}
.chat-log::-webkit-scrollbar-thumb,.modal-card::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.chat-log::-webkit-scrollbar-track,.modal-card::-webkit-scrollbar-track{background:transparent}
.modal-card{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.msg{max-width:88%;display:flex;flex-direction:column;gap:6px;animation:fadeUp .25s both}
.msg.user{align-self:flex-end;align-items:flex-end}
.msg.bot{align-self:flex-start;align-items:flex-start}
.bubble{
  padding:11px 15px;border-radius:18px;font-size:.88rem;line-height:1.8;
  box-shadow:var(--shadow-sm);overflow-wrap:anywhere;
}
.msg.user .bubble{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-end-end-radius:6px}
.msg.bot .bubble{background:var(--surface);border:1px solid var(--line);border-start-start-radius:6px}
.bubble p+p{margin-top:8px}
.bubble h4{font-size:.9rem;margin-bottom:4px;color:var(--primary-dark)}
.bubble ul{margin:6px 0;padding-inline-start:18px}
.bubble li{margin:3px 0}
.bubble .note{
  margin-top:8px;padding:8px 10px;border-radius:10px;font-size:.8rem;
  background:var(--primary-soft);color:var(--ink-soft);
}
.bubble .hint{font-size:.76rem;color:var(--muted);margin-top:6px}
.msg-time{font-size:.66rem;color:var(--muted);padding-inline:6px}
.video-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.video-link{
  display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:700;
  padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);
  color:var(--ink-soft);
}
.video-link:hover{text-decoration:none;border-color:var(--primary);color:var(--primary-dark)}
.course-mini{
  display:flex;align-items:center;gap:8px;width:100%;text-align:start;
  padding:8px 10px;border-radius:12px;background:var(--surface);
  border:1px solid var(--line);font-size:.8rem;font-weight:700;color:var(--ink-soft);
}
.course-mini:hover{border-color:var(--primary);color:var(--primary-dark)}
.course-mini span{font-size:17px}

.typing{display:flex;gap:4px;padding:14px 16px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);opacity:.5;animation:blink 1.2s infinite}
.typing i:nth-child(2){animation-delay:.2s}
.typing i:nth-child(3){animation-delay:.4s}

.chat-chips{display:flex;flex-wrap:wrap;gap:6px;padding:9px 12px;border-top:1px solid var(--line);background:var(--surface)}
.chat-chips::-webkit-scrollbar{display:none}
.chat-chip{
  white-space:nowrap;font-size:.74rem;font-weight:700;padding:6px 12px;border-radius:999px;
  border:1px solid var(--line);background:var(--surface-2);color:var(--ink-soft);transition:all .15s;
}
.chat-chip:hover{border-color:var(--primary);color:var(--primary-dark)}
.chat-form{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--line);background:var(--surface)}
.chat-form input{
  flex:1;min-width:0;border:1.5px solid var(--line);background:var(--surface-2);
  border-radius:14px;padding:11px 14px;font-size:.88rem;outline:none;transition:border-color .15s;
}
.chat-form input:focus{border-color:var(--primary)}
.send-btn{
  width:44px;height:44px;flex:0 0 44px;border-radius:14px;font-size:19px;font-weight:800;
  background:var(--primary);color:#fff;display:grid;place-items:center;transition:background .15s;
}
.send-btn:hover{background:var(--primary-dark)}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(14,20,38,.55);backdrop-filter:blur(4px);animation:fade .2s both}
.modal-card:focus{outline:none}
.modal-card{
  position:relative;width:min(760px,100%);max-height:calc(100vh - 40px);overflow-y:auto;
  background:var(--surface);border-radius:28px;padding:clamp(20px,3vw,34px);
  box-shadow:var(--shadow-lg);animation:pop .28s cubic-bezier(.2,.9,.3,1.1) both;
}
.modal-card.narrow{width:min(460px,100%)}
.modal-x{
  position:absolute;inset-inline-end:16px;top:16px;width:36px;height:36px;border-radius:12px;
  background:var(--surface-2);font-size:15px;display:grid;place-items:center;z-index:2;
}
.modal-x:hover{background:var(--danger);color:#fff}

.detail-head{display:flex;gap:16px;align-items:flex-start;padding-inline-end:34px}
.detail-emoji{
  width:66px;height:66px;flex:0 0 66px;display:grid;place-items:center;font-size:32px;
  border-radius:20px;background:var(--card-tint,var(--primary-soft));
}
.detail-head h2{font-size:clamp(1.15rem,3vw,1.5rem)}
.detail-head .en{color:var(--muted);font-size:.86rem;direction:ltr;text-align:start;font-weight:700}
.detail-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.detail-meta span{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.kid-box{
  margin:22px 0;padding:18px 20px;border-radius:20px;position:relative;
  background:linear-gradient(135deg,#fff6e2,#ffe9d1);border:1px solid #ffdca8;color:#5a3c12;
}
html[data-theme="dark"] .kid-box{background:linear-gradient(135deg,#3a2c14,#2c230f);border-color:#5b4718;color:#ffdda3}
.kid-box .kid-label{font-size:.74rem;font-weight:900;letter-spacing:.02em;opacity:.85;display:flex;gap:6px;align-items:center}
.kid-box p{font-size:.98rem;margin-top:8px;line-height:1.95}
.detail-section{margin-top:22px}
.detail-section h3{font-size:.92rem;margin-bottom:10px;display:flex;align-items:center;gap:7px}
.detail-desc{color:var(--ink-soft);font-size:.9rem}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{
  font-size:.79rem;font-weight:700;padding:6px 12px;border-radius:11px;
  background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft);
}
.video-grid{display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:520px){.video-grid{grid-template-columns:1fr}}
.video-btn{
  display:flex;align-items:center;gap:10px;text-align:start;padding:11px 13px;border-radius:14px;
  background:var(--surface-2);border:1px solid var(--line);transition:all .15s;color:var(--ink-soft);
}
.video-btn:hover{text-decoration:none;border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.video-btn .vb-icon{font-size:20px}
.video-btn b{display:block;font-size:.82rem}
.video-btn small{display:block;font-size:.68rem;color:var(--muted)}
.related{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.detail-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}

.field{margin-top:16px;display:flex;flex-direction:column;gap:8px}
.field span{font-size:.8rem;font-weight:800;color:var(--ink-soft)}
.field input{
  border:1.5px solid var(--line);background:var(--surface-2);border-radius:12px;
  padding:11px 13px;font-size:.85rem;outline:none;transition:border-color .15s;
  direction:ltr;text-align:left;
}
.field input:focus{border-color:var(--primary)}
.check{display:flex;align-items:center;gap:9px;margin-top:16px;font-size:.85rem;font-weight:700;color:var(--ink-soft)}
.check input{width:20px;height:20px;accent-color:var(--primary)}
.muted{color:var(--muted);font-size:.85rem}
.warn{color:var(--accent);font-size:.78rem;margin-top:10px}
.settings-actions{display:flex;gap:9px;margin-top:22px}

/* ---------- toast ---------- */
.toast{
  position:fixed;left:50%;bottom:100px;transform:translateX(-50%) translateY(14px);
  background:#1b2340;color:#fff;padding:11px 20px;border-radius:14px;font-size:.85rem;font-weight:700;
  box-shadow:var(--shadow-lg);z-index:140;opacity:0;transition:opacity .2s, transform .2s;
}
.toast.show{opacity:1;transform:translateX(-50%)}
.toast[hidden]{display:none}

/* ---------- animations ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes blink{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:.9;transform:translateY(-3px)}}

/* ---------- responsive ---------- */
@media (max-width:720px){
  .brand-text p{display:none}
  .hero h2{max-width:none}
  .search{padding:7px}
  .search-btn{padding:11px 16px}
  .dice-btn{display:none}
  .card{padding:16px}
  .modal{padding:0;align-items:flex-end}
  .modal-card{max-height:92vh;border-radius:24px 24px 0 0;width:100%}
  .chat-panel{inset-inline:0;bottom:0;width:100%;height:88vh;border-radius:24px 24px 0 0}
  .chat-toggle{inset-inline-end:14px;bottom:14px;padding:12px 17px}
  .chat-toggle span:not(.chat-toggle-emoji){display:none}
  .chat-toggle{padding:14px;border-radius:50%}
}
@media (max-width:420px){
  .grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}
  html{scroll-behavior:auto}
}


/* ---------- kinds, library, books, google ---------- */
.kind-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:10px 0 8px}
.kind-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.86rem;color:var(--muted);box-shadow:var(--shadow-sm);transition:all .15s}
.kind-btn b{font-weight:800}
.kind-btn:hover{transform:translateY(-2px);border-color:var(--primary)}
.kind-btn.on{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:transparent;box-shadow:0 10px 20px rgba(91,108,255,.3)}
.lib-tabs{margin-bottom:16px}
.books-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.book-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:7px;box-shadow:var(--shadow-sm);transition:transform .15s, box-shadow .15s}
.book-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.book-top{display:flex;justify-content:space-between;align-items:center}
.book-emoji{font-size:26px}
.book-free{font-size:.66rem;font-weight:800;color:#0d7a5f;background:#dcf7ee;padding:3px 9px;border-radius:999px}
html[data-theme="dark"] .book-free{color:#7cf0c8;background:#113a2f}
.book-card h4{font-size:.98rem;line-height:1.5}
.book-author{font-size:.75rem;color:var(--muted)}
.book-why{font-size:.83rem;color:var(--ink-soft);flex:1;line-height:1.8}
.book-meta{display:flex;gap:8px;font-size:.7rem;color:var(--muted);flex-wrap:wrap}
.book-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}
.book-actions .mini-btn{flex:0 0 auto;text-decoration:none;text-align:center}
.books-note{margin-bottom:12px;line-height:1.8}
.google-box{margin-top:16px}
.or-line{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.75rem;margin:10px 0 14px}
.or-line::before,.or-line::after{content:"";flex:1;height:1px;background:var(--line)}
.google-btn-holder{display:flex;justify-content:center;min-height:0}
@media (max-width:620px){
  .kind-row{flex-wrap:wrap;justify-content:center;gap:5px;overflow:visible;padding-bottom:0}
  .kind-btn{padding:5px 7px;font-size:.62rem;gap:2px;flex:0 0 auto}
  .kind-btn b{font-size:.62rem}
  .stat-sep{display:none}
  .hero-stats{gap:12px 14px}
  #fieldChips{gap:6px}
  #fieldChips .filter-chip:not(.more-chip):not(.active){display:none}
}

.file-upload{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.file-upload input[type="file"]{flex:1;min-width:180px;border:1px dashed var(--line);border-radius:12px;padding:8px;background:var(--surface-2);font-size:.8rem}
.file-list{display:flex;flex-direction:column;gap:6px}
.file-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.file-row .mini-btn{flex:0 0 auto;width:36px;height:34px;padding:0;display:grid;place-items:center}
.file-icon{font-size:18px}
.file-main{flex:1;min-width:0;display:flex;flex-direction:column}
.file-main b{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-main small{color:var(--muted);font-size:.7rem}
.profile-handle{font-size:.85rem;font-weight:800;color:var(--primary-dark);direction:ltr;text-align:start;margin-top:2px}
.profile-bio{white-space:pre-wrap}
.bio-count{display:block;text-align:end;margin-top:2px}
.relation-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}
.rel-btn{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:.8rem;font-weight:800;color:var(--ink-soft)}
.rel-btn:hover{border-color:var(--primary);color:var(--primary-dark)}
.danger-ghost{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,var(--line))}
.blocked-note{margin-top:16px}

/* ---------- feynman summary ---------- */
.summary-tldr{background:var(--primary-soft);border-radius:16px;padding:14px 16px;margin:14px 0}
.summary-tldr b{font-size:.82rem;color:var(--primary-dark)}
.summary-tldr p{margin-top:6px;font-size:.95rem;line-height:1.9}
.summary-loading{padding:40px 10px;text-align:center;color:var(--muted);font-size:.9rem}

/* ---------- jobs ---------- */
.jobs-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.job-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-sm);transition:transform .15s, box-shadow .15s}
.job-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.job-top{display:flex;gap:6px;justify-content:flex-end}
.job-type{font-size:.68rem;font-weight:800;padding:3px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark)}
.job-remote{font-size:.68rem;font-weight:800;padding:3px 10px;border-radius:999px;background:#dcf7ee;color:#0d7a5f}
html[data-theme="dark"] .job-remote{background:#113a2f;color:#7cf0c8}
.job-card h4{font-size:1rem}
.job-company{font-size:.82rem;color:var(--muted)}
.job-salary{font-size:.8rem;color:var(--ink-soft);font-weight:700}
.job-desc{font-size:.84rem;color:var(--ink-soft);line-height:1.8}
.job-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:9px;border-top:1px solid var(--line);flex-wrap:wrap}
.job-full-desc{line-height:1.95;margin:12px 0;white-space:pre-wrap;color:var(--ink-soft)}

/* ---------- admin dashboard ---------- */
.admin-tabs{margin-bottom:18px}
.admin-pane{animation:fadeUp .2s both}
.admin-meta{margin:12px 0 4px}
.admin-list{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:8px;margin-bottom:10px}
.admin-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px}
.admin-row:hover{background:var(--surface-2)}
.admin-row-main{flex:1;min-width:0;display:flex;flex-direction:column}
.admin-row-main b{font-size:.86rem}
.admin-row-main small{color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-emoji{font-size:18px;width:22px;text-align:center}
.row-actions{display:flex;gap:4px}
.mini-select{padding:6px 8px;font-size:.75rem;max-width:120px}
.badge-soft{font-size:.66rem;font-weight:800;padding:3px 8px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);white-space:nowrap}
.vote-pill{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:2px 9px;font-size:.72rem;font-weight:800}
.toggle-row{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.content-list{max-height:58vh;overflow-y:auto}
.admin-pane .panel-card{max-width:820px}
.editor-form{max-height:64vh;overflow-y:auto;padding-inline-end:6px}
@media (max-width:600px){.grid-2{grid-template-columns:1fr}}

/* ---------- theme choice ---------- */
.theme-row{display:flex;gap:6px;margin:12px 0 4px;flex-wrap:wrap}
.theme-chip{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:9px 8px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);font-size:.78rem;font-weight:800;color:var(--ink-soft)}
.theme-chip.on{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:transparent}
.theme-chip:hover{border-color:var(--primary)}

/* ---------- fields modal ---------- */
.fields-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-top:14px;max-height:60vh;overflow-y:auto}
.field-tile{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:start;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);transition:all .15s}
.field-tile:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.ft-emoji{font-size:18px}
.field-tile b{font-size:.82rem}
.field-tile small{color:var(--muted);font-size:.7rem}

/* ---------- note finder ---------- */
.finder-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:14px}
.finder-link{display:flex;align-items:center;gap:9px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);font-size:.84rem;color:var(--ink-soft);transition:all .15s}
.finder-link:hover{border-color:var(--primary);transform:translateY(-2px);text-decoration:none;box-shadow:var(--shadow-sm)}
.finder-link .vb-icon{font-size:18px}
.finder-results{display:flex;flex-direction:column;gap:18px;margin-top:16px}
.finder-group-title{font-size:.92rem;margin-bottom:8px}
.finder-group .finder-grid{margin-top:0}
.finder-user{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}
.finder-user h3{font-size:.9rem;margin-bottom:8px}
.finder-user .primary-btn{margin-top:8px}

/* ---------- LTR tweaks ---------- */
html[dir="ltr"] .card .en-name,html[dir="ltr"] .detail-head .en{text-align:left}
html[dir="ltr"] .hero h2{direction:ltr}


/* ============================================================
   v2 — navigation, notes, chat, profile, admin, depth
   ============================================================ */
.topbar{gap:12px}
.main-nav{display:flex;gap:3px;background:var(--surface);border:1px solid var(--line);padding:5px;border-radius:16px;box-shadow:var(--shadow-sm);margin-inline:auto}
.nav-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:12px;font-weight:800;font-size:.84rem;color:var(--muted);transition:all .15s}
.nav-btn span{font-size:15px}
.nav-btn:hover{color:var(--ink);background:var(--surface-2)}
.nav-btn.on{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 8px 16px rgba(91,108,255,.28)}

.auth-btn{display:inline-flex;align-items:center;gap:7px;height:42px;padding:0 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line);font-weight:800;font-size:.82rem;box-shadow:var(--shadow-sm);max-width:180px}
.auth-btn:hover{border-color:var(--primary)}
.auth-btn b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px}
.auth-btn.signed{background:var(--primary-soft);border-color:transparent;color:var(--primary-dark)}
.auth-avatar{width:26px;height:26px;flex:0 0 26px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#dbe1ff,#aab6ff);color:#2b3559;font-size:.78rem;font-weight:900;background-size:cover;background-position:center;overflow:hidden}

.view{animation:fadeUp .28s both}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:12px 0 18px;flex-wrap:wrap}
.page-head h2{font-size:1.5rem}
.page-head p{margin-top:4px;font-size:.86rem}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;align-items:center}
.tool-input{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 13px;font-size:.85rem;outline:none;min-width:0;max-width:100%}
.tool-input:focus{border-color:var(--primary)}
select.tool-input{max-width:300px;cursor:pointer}
textarea.tool-input{resize:vertical;font-family:inherit;width:100%}
.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:3px;gap:2px}
.seg button{padding:7px 14px;border-radius:9px;font-size:.8rem;font-weight:800;color:var(--muted)}
.seg button.on{background:var(--primary);color:#fff}
.seg-wide{width:100%}
.seg-wide button{flex:1;padding:9px 10px}

.notes-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.note-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm);transition:transform .15s, box-shadow .15s}
.note-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.note-card.static{text-decoration:none;color:inherit;flex-direction:row;align-items:center;gap:12px}
.note-card.featured{border-color:color-mix(in srgb,var(--sun) 55%,var(--line));box-shadow:0 10px 26px rgba(255,194,71,.18)}
.note-head{display:flex;justify-content:space-between;gap:8px;align-items:center}
.note-course{font-size:.7rem;font-weight:800;color:var(--primary-dark);background:var(--primary-soft);padding:3px 10px;border-radius:999px}
.note-featured{font-size:.68rem;font-weight:800;color:#8a5b00;background:#fff2cf;padding:3px 8px;border-radius:999px}
.note-badge{font-size:22px}
.note-body{min-width:0}
.note-card h4{font-size:1rem;line-height:1.5}
.note-desc{font-size:.84rem;color:var(--ink-soft)}
.note-meta{display:flex;align-items:center;gap:6px;font-size:.74rem;color:var(--muted);flex-wrap:wrap}
.note-meta .dot{opacity:.5}
.note-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:9px;border-top:1px solid var(--line)}
.note-actions .mini-btn{flex:0 0 auto;text-decoration:none;text-align:center}
.avatar{width:34px;height:34px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#dbe1ff,#b9c3ff);color:#2b3559;font-weight:900;font-size:.85rem;background-size:cover;background-position:center;overflow:hidden}
.avatar.small{width:30px;height:30px;font-size:.78rem}
.avatar.tiny{width:22px;height:22px;font-size:.68rem}
.avatar.big{width:84px;height:84px;font-size:2rem;border-radius:26px}
.vote{display:inline-flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:3px 5px}
.vote-btn{width:26px;height:26px;border-radius:8px;font-size:11px;color:var(--muted)}
.vote-btn:hover{background:var(--primary-soft);color:var(--primary-dark)}
.vote-score{font-weight:900;font-size:.84rem;min-width:18px;text-align:center}
.mini-btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 28%,var(--line))}

.chat-shell{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;height:calc(100vh - 190px);min-height:520px}
.chat-side{background:var(--surface);border:1px solid var(--line);border-radius:22px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-sm);min-height:0}
.chat-side-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line)}
.chat-side-head h3{font-size:.95rem}
.thread-list{overflow-y:auto;flex:1;padding:8px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.thread-row{display:flex;align-items:center;gap:10px;width:100%;text-align:start;padding:9px 10px;border-radius:14px;transition:background .15s}
.thread-row:hover{background:var(--surface-2)}
.thread-row.on{background:var(--primary-soft)}
.thread-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.thread-mid b{font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thread-mid span{font-size:.74rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thread-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.66rem;color:var(--muted)}
.unread{background:var(--primary);color:#fff;border-radius:999px;min-width:18px;height:18px;display:grid;place-items:center;font-style:normal;font-size:.64rem;font-weight:900;padding:0 4px}
.chat-main{background:var(--surface);border:1px solid var(--line);border-radius:22px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-sm);min-height:0}
.convo-head{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--line);min-height:60px}
.convo-head b{display:block;font-size:.92rem}
.convo-head small{color:var(--muted);font-size:.72rem}
.msg-list{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:10px;background:var(--surface-2);scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.msg-row{display:flex;flex-direction:column;max-width:78%;animation:fadeUp .2s both}
.msg-row.mine{align-self:flex-end;align-items:flex-end}
.msg-row.theirs{align-self:flex-start;align-items:flex-start}
.msg-bubble{background:var(--surface);border:1px solid var(--line);padding:9px 13px;border-radius:16px;font-size:.88rem;line-height:1.8;box-shadow:var(--shadow-sm);overflow-wrap:anywhere}
.msg-row.mine .msg-bubble{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:0;border-end-end-radius:5px}
.msg-row.theirs .msg-bubble{border-start-start-radius:5px}
.msg-meta{display:flex;gap:8px;justify-content:flex-end;font-size:.62rem;opacity:.75;margin-top:4px}
.msg-author{font-size:.7rem;font-weight:800;color:var(--primary-dark);margin-bottom:-4px;padding-inline-start:6px}
.msg-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}
.msg-form input{flex:1;border:1.5px solid var(--line);background:var(--surface-2);border-radius:14px;padding:11px 14px;font-size:.88rem;outline:none}
.msg-form input:focus{border-color:var(--primary)}
.chat-placeholder{margin:auto;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:10px;padding:30px}
.chat-placeholder span{font-size:40px}
.chat-placeholder p{font-size:.85rem;max-width:32ch}
.people-list{display:flex;flex-direction:column;gap:4px;margin-top:10px;max-height:340px;overflow-y:auto}
.people-row{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;text-align:start}
.people-row:hover{background:var(--surface-2)}
.people-row small{display:block;color:var(--muted);font-size:.73rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px}
.people-row b{font-size:.86rem}

.profile-head{display:flex;gap:18px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--shadow-sm);flex-wrap:wrap}
.profile-info h2{font-size:1.35rem}
.profile-info p{color:var(--muted);font-size:.88rem;max-width:60ch;margin-top:4px}
.panel-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:20px;margin-top:16px;box-shadow:var(--shadow-sm)}
.panel-card h3{font-size:1rem;margin-bottom:4px}
.panel-card.center{text-align:center}
.panel-card .primary-btn,.panel-card .ghost-btn{margin-top:12px}
.panel-card .field input,.panel-card .field textarea{max-width:560px}
.panel-card .field input[type="file"]{max-width:100%;border:0;background:none;padding:6px 0}
.notes-grid > .mini-btn{align-self:flex-start;margin-top:6px}
.section-title{margin:26px 0 12px;font-size:1.05rem}
.stat-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-sm)}
.stat-emoji{font-size:22px}
.stat-card b{font-size:1.55rem}
.stat-card small{color:var(--muted);font-size:.74rem;font-weight:700}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.admin-table{width:100%;border-collapse:collapse;font-size:.84rem;min-width:520px}
.admin-table th,.admin-table td{padding:10px 12px;text-align:start;border-bottom:1px solid var(--line)}
.admin-table th{color:var(--muted);font-size:.74rem;font-weight:800;background:var(--surface-2)}
.admin-table tr:last-child td{border-bottom:0}
.ltr{direction:ltr;text-align:start}

.depth-wrap{display:flex;align-items:center;gap:10px;margin:20px 0 8px;flex-wrap:wrap}
.depth-label{font-size:.76rem;font-weight:800;color:var(--muted);white-space:nowrap}
.depth-seg{flex:1;min-width:240px}
.depth-panel{animation:fadeUp .25s both}
.depth-note{color:var(--ink-soft);font-size:.9rem;margin-top:10px}
.depth-more{margin-top:12px}
.tips-list{margin:0;padding-inline-start:20px;color:var(--ink-soft);font-size:.87rem;line-height:2}
.resource-note{margin-top:10px;line-height:1.8}
.course-guide-intro{margin-top:10px;color:var(--ink-soft);font-size:.85rem;line-height:1.9}
.course-outcomes{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--primary-soft)}
.course-outcomes h4{font-size:.82rem;color:var(--primary-dark)}
.course-units{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:12px}
.course-unit{min-width:0;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}
.course-unit-head{display:flex;align-items:flex-start;gap:8px}
.course-unit-index{width:26px;height:26px;flex:0 0 26px;display:grid;place-items:center;border-radius:9px;background:var(--primary-soft);color:var(--primary-dark);font-size:.72rem;font-weight:900}
.course-unit-head h4{font-size:.86rem;line-height:1.65}
.course-unit-summary{margin-top:8px;color:var(--ink-soft);font-size:.78rem;line-height:1.9}
.course-unit-bullets{margin:7px 0 0;padding-inline-start:20px;color:var(--ink-soft);font-size:.77rem;line-height:1.8}
.course-unit-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.course-unit-actions .mini-btn{flex:1 1 auto}
.course-unit-actions .mini-btn:hover{border-color:var(--primary);color:var(--primary-dark)}
#courseMediaSection{scroll-margin-block:16px}

.footer-quote{font-weight:800;font-size:1rem;color:var(--ink-soft);margin-bottom:6px;letter-spacing:.01em}
.tiny{font-size:.72rem}
.center{text-align:center}
.form-error{color:var(--danger);font-size:.8rem;margin:10px 0 0}
.primary-btn.wide{width:100%;margin-top:14px}
.primary-btn:disabled{opacity:.6;cursor:not-allowed}
select.tool-input,.field select.tool-input{width:100%}

@media (max-width:900px){
  .filter-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
  .filter-row::-webkit-scrollbar{display:none}
  .main-nav{position:fixed;inset-inline:0;bottom:0;z-index:70;background:var(--surface);border-top:1px solid var(--line);border-radius:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -6px 24px rgba(20,26,48,.12);margin:0}
  .nav-btn{flex:1;flex-direction:column;gap:2px;padding:6px 4px;font-size:.66rem;box-shadow:none}
  .nav-btn.on{background:transparent;color:var(--primary-dark);box-shadow:none}
  .nav-btn.on span{transform:scale(1.12)}
  body{padding-bottom:66px}
  .chat-toggle{bottom:80px}
  .chat-shell{grid-template-columns:1fr;height:auto;min-height:0}
  .chat-side{max-height:230px}
  .chat-main{min-height:62vh}
  .footer{padding-bottom:80px}
  .auth-btn b{display:none}
  .top-actions{gap:6px}
}
@media (max-width:620px){
  .topbar{padding:9px 12px;height:64px;gap:8px}
  .brand{gap:8px}
  .brand .logo{width:38px;height:38px;flex-basis:38px;font-size:22px;border-radius:13px}
  .brand-text h1{font-size:1.05rem}
  #settingsBtn,#installBtn{display:none}
  .icon-btn{width:38px;height:38px;font-size:16px}
  .pill-btn{height:38px;padding:0 11px;font-size:.78rem}
  .auth-btn{height:38px;padding:0 7px;max-width:46px;justify-content:center}
  .auth-avatar{width:24px;height:24px;flex-basis:24px;font-size:.7rem}
  .search-btn{padding:10px 14px;font-size:.85rem}
  .hero h2{font-size:1.32rem}
}
@media (max-width:720px){
  .page-head h2{font-size:1.25rem}
  .notes-grid{grid-template-columns:1fr}
  .profile-head{padding:16px}
  .avatar.big{width:64px;height:64px;border-radius:20px;font-size:1.5rem}
}


/* ============================================================
   v14 — tidy home: rhythm, controls, cards
   ============================================================ */

/* --- header: keep the tagline on one line, or drop it when tight --- */
.brand{flex:0 0 auto;min-width:0}
.brand-text p{white-space:nowrap}
@media (max-width:1200px){.brand-text p{display:none}}

/* --- hero: soft solid headline, tighter rhythm --- */
.hero{padding:4px 0 0}
.hero-badge{margin-bottom:10px}
.hero h2{
  max-width:34ch;margin-bottom:8px;
  background-image:none;
  -webkit-background-clip:border-box;background-clip:border-box;
  color:var(--ink);-webkit-text-fill-color:currentColor;
}
.hero-sub{max-width:58ch;line-height:1.9}

/* --- search: one clean pill, equal heights --- */
.search{max-width:680px;margin-top:16px;padding:6px;gap:6px;border-radius:18px}
.search-icon{padding-inline-start:9px;opacity:.5}
.search input{padding:10px 4px;min-height:42px}
.dice-btn{
  width:42px;height:42px;border-radius:12px;font-size:15px;
  background:var(--surface-2);color:var(--muted);opacity:.9;
}
.dice-btn:hover{background:var(--primary-soft);transform:none}
.search-btn{min-height:42px;padding:0 24px;border-radius:13px}
.search-btn:hover{transform:none;box-shadow:0 10px 22px rgba(91,108,255,.4)}

/* --- hero stats: one calm meta line --- */
.hero-stats{margin-top:14px;gap:8px;font-size:.78rem}
.stat-sep{opacity:.3;font-size:.72rem}

/* --- content type: a segmented control, not more chips --- */
.kind-row{
  display:flex;flex-wrap:nowrap;width:fit-content;max-width:100%;
  justify-content:center;gap:3px;margin:20px auto 8px;padding:5px;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow-sm);
}
.kind-btn{
  background:transparent;border:0;box-shadow:none;
  padding:8px 15px;border-radius:11px;font-size:.84rem;color:var(--muted);
  white-space:nowrap;
}
.kind-btn:hover{transform:none;background:var(--surface-2);border:0;color:var(--ink)}
.kind-btn.on{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 6px 14px rgba(91,108,255,.26)}

/* --- field filters: quiet chips under the control --- */
.filters{margin:0 0 18px}
.filter-row{justify-content:center;gap:6px;padding:2px 0 6px}
.filter-chip{
  padding:7px 13px;border-radius:999px;font-size:.8rem;font-weight:700;
  background:transparent;border:1px solid transparent;box-shadow:none;color:var(--muted);
}
.filter-chip:hover{transform:none;background:var(--surface);border-color:var(--line);color:var(--ink)}
.filter-chip[aria-pressed="true"],
.filter-chip.active{
  background:var(--primary-soft);border-color:transparent;color:var(--primary-dark);box-shadow:none;
}
.filter-chip.more-chip{border-style:dashed;border-color:var(--line)}

/* --- results head: title and count on one baseline --- */
.results-head{margin:0 0 14px;gap:10px;align-items:baseline}
.results-head h3{font-size:1.06rem}
.results-count{background:var(--surface-2);border:0;padding:2px 10px;font-size:.76rem}
.text-btn{font-size:.78rem;padding:4px 9px}

/* --- cards: no blob under the level tag, steady heights --- */
.grid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(266px,1fr))}
.card{padding:18px;gap:8px;border-radius:20px}
.card::after{top:auto;inset-inline-start:-48px;bottom:-48px;width:132px;height:132px;opacity:.18}
html[data-theme="dark"] .card::after{opacity:.1}
.card-top{align-items:center}
.card-emoji{width:46px;height:46px;flex:0 0 46px;font-size:23px;border-radius:14px}
.level-tag{background:transparent;font-size:.66rem;padding:2px 8px}
.card h4{font-size:1rem}
.card .en-name{margin-top:-2px}
.card p{line-height:1.75;min-height:3.5em}
.card-tags{min-height:24px;padding-top:2px}
.card-actions{margin-top:8px;gap:7px}
.card .mini-btn{padding:8px 10px;border-radius:11px;font-size:.78rem}

@media (max-width:620px){
  .kind-row{width:100%;overflow:visible;padding:4px;gap:2px}
  /* label-only pills: the bare emoji text node shrinks to 0, the <b> label stays readable */
  .kind-btn{flex:1 1 0;min-width:0;justify-content:center;padding:7px 2px;font-size:0;gap:0}
  .kind-btn b{font-size:.74rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .card p{min-height:0}
  .results-head{gap:8px}
}


/* ============================================================
   v15 — animations (ManimGX): intro text, player, chapter list
   ============================================================ */
.media-section{margin-top:24px}
.media-body{display:flex;flex-direction:column;gap:12px}
.media-intro{
  background:var(--primary-soft);border-radius:16px;padding:13px 15px;
  font-size:.88rem;line-height:1.95;color:var(--ink-soft);
}
.media-sub{font-size:.92rem;margin-top:4px}
.media-video{
  border-radius:18px;overflow:hidden;background:#0b1020;
  border:1px solid var(--line);box-shadow:var(--shadow-sm);
}
.media-video-el{width:100%;display:block;aspect-ratio:16/9;background:#0b1020}
.media-chapters{display:flex;flex-direction:column;gap:8px}
.media-chapter{
  border:1px solid var(--line);border-radius:16px;background:var(--surface);
  overflow:hidden;box-shadow:var(--shadow-sm);
}
.media-chapter-btn{
  display:flex;align-items:center;gap:10px;width:100%;text-align:start;
  padding:11px 12px;font-weight:800;font-size:.86rem;color:var(--ink-soft);
}
.media-chapter-btn:hover{background:var(--surface-2);color:var(--ink)}
.media-chapter-btn.on{background:var(--primary-soft);color:var(--primary-dark)}
.media-chapter-idx{
  width:26px;height:26px;flex:0 0 26px;border-radius:9px;display:grid;place-items:center;
  background:var(--primary-soft);color:var(--primary-dark);font-size:.72rem;
}
.media-chapter-btn.on .media-chapter-idx{background:var(--primary);color:#fff}
.media-chapter-title{flex:1;min-width:0}
.media-chapter-play{color:var(--primary);font-size:.78rem}
.media-chapter-bullets{
  margin:0;padding:2px 16px 12px 34px;color:var(--muted);font-size:.8rem;line-height:1.95;
}
.media-chapter-bullets li{margin:2px 0}
.media-chapter-video{border-top:1px solid var(--line);padding:10px}
.media-chapter-video:empty{display:none}
.media-admin{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.media-admin .ghost-btn,.media-admin .primary-btn{padding:9px 16px;font-size:.82rem}
.tag-media{background:var(--primary-soft);color:var(--primary-dark);border-color:transparent}
.media-card-btn{background:var(--primary-soft);color:var(--primary-dark);border-color:transparent}
.media-card-btn:hover{background:var(--primary);color:#fff}


/* ============================================================
   v16 — compact: tighter rhythm, smaller controls, denser cards
   ============================================================ */
:root{
  --radius:16px;
  --radius-sm:10px;
  --header-h:58px;
  --shadow-md:0 8px 22px rgba(26,37,74,.09);
  --shadow-lg:0 18px 46px rgba(26,37,74,.16);
}
html[data-theme="dark"]{
  --shadow-md:0 9px 24px rgba(0,0,0,.4);
  --shadow-lg:0 20px 52px rgba(0,0,0,.52);
}
html[data-theme="library"]{
  --shadow-md:0 8px 22px rgba(90,62,30,.13);
  --shadow-lg:0 18px 46px rgba(90,62,30,.2);
}
body{line-height:1.65}
h1,h2,h3,h4{line-height:1.4}

/* --- top bar: slimmer --- */
.topbar{padding:8px clamp(12px,3vw,32px);gap:10px}
.logo{width:38px;height:38px;flex:0 0 38px;font-size:21px;border-radius:12px;box-shadow:0 4px 10px rgba(255,164,66,.32)}
.brand{gap:9px}
.brand-text h1{font-size:1.15rem}
.brand-text p{font-size:.72rem}
.top-actions{gap:6px}
.icon-btn{width:36px;height:36px;font-size:16px;border-radius:11px}
.icon-btn.small{width:30px;height:30px;font-size:13px;border-radius:9px}
.pill-btn{height:36px;padding:0 12px;border-radius:11px;font-size:.78rem}
.auth-btn{height:36px;padding:0 10px;border-radius:11px;font-size:.78rem}
.auth-avatar{width:22px;height:22px;flex-basis:22px;font-size:.7rem}
.main-nav{padding:3px;border-radius:12px;gap:2px}
.nav-btn{padding:6px 11px;border-radius:9px;font-size:.78rem;gap:5px}
.nav-btn span{font-size:13px}

/* --- page rhythm --- */
main{max-width:1120px;padding:clamp(10px,2vw,20px) clamp(12px,3vw,28px) 40px}
.view{animation-duration:.22s}

/* --- hero: shorter and calmer --- */
.hero{padding:2px 0 0}
.hero-badge{padding:4px 11px;font-size:.72rem;margin-bottom:8px;gap:6px}
.hero h2{font-size:clamp(1.15rem,2.3vw,1.55rem);max-width:32ch;margin-bottom:6px}
.hero-sub{font-size:clamp(.78rem,1.5vw,.86rem);max-width:56ch;line-height:1.8}

.search{max-width:600px;margin-top:12px;padding:5px;gap:5px;border-radius:15px;border-width:1px}
.search:focus-within{box-shadow:0 0 0 4px var(--primary-soft),var(--shadow-sm)}
.search-icon{font-size:14px;padding-inline-start:8px}
.search input{padding:7px 3px;min-height:34px;font-size:.9rem}
.dice-btn{width:36px;height:36px;border-radius:10px;font-size:14px}
.search-btn{min-height:36px;padding:0 18px;border-radius:11px;font-size:.86rem}
.hero-stats{margin-top:10px;gap:7px;font-size:.72rem}

/* --- content type + filters: one quiet strip --- */
.kind-row{margin:14px auto 6px;padding:4px;gap:2px;border-radius:13px}
.kind-btn{padding:6px 12px;border-radius:9px;font-size:.78rem;gap:5px}
.kind-btn.on{box-shadow:0 4px 10px rgba(91,108,255,.22)}
.filters{margin:0 0 12px}
.filter-row{gap:5px;padding:2px 0 4px}
.filter-chip{padding:5px 11px;font-size:.74rem;gap:4px}

/* --- results --- */
.results-head{margin:0 0 10px;gap:8px}
.results-head h3{font-size:.98rem}
.results-count{font-size:.7rem;padding:2px 9px}
.text-btn{font-size:.74rem}

/* --- cards: denser grid, compact body --- */
.grid{gap:11px;grid-template-columns:repeat(auto-fill,minmax(232px,1fr))}
.card{padding:13px 14px;gap:6px;border-radius:var(--radius)}
.card::after{inset-inline-start:-56px;bottom:-56px;width:118px;height:118px;opacity:.14}
.card:hover{transform:translateY(-3px)}
.card-emoji{width:38px;height:38px;flex:0 0 38px;font-size:19px;border-radius:11px}
.level-tag{font-size:.62rem;padding:2px 7px}
.card h4{font-size:.92rem;margin-top:0}
.card .en-name{font-size:.72rem;margin-top:-1px}
.card p{font-size:.78rem;line-height:1.7;min-height:0}
.card-tags{gap:4px;min-height:0;padding-top:2px}
.tag{font-size:.64rem;padding:2px 7px;border-radius:7px}
.card-actions{margin-top:6px;gap:6px}
.card .mini-btn,.mini-btn{padding:7px 9px;border-radius:9px;font-size:.74rem}

.empty{padding:40px 16px}
.empty-emoji{font-size:40px;margin-bottom:6px}
.empty p{margin-bottom:12px;font-size:.82rem}

.primary-btn{padding:9px 18px;border-radius:11px;font-size:.84rem}
.ghost-btn{padding:9px 16px;border-radius:11px;font-size:.84rem}

/* --- footer --- */
.footer{padding:18px 16px 30px;font-size:.72rem}
.footer-quote{font-size:.9rem;margin-bottom:4px}

/* --- notes / books / jobs lists --- */
.page-head{margin:8px 0 12px;gap:10px}
.page-head h2{font-size:1.25rem}
.page-head p{margin-top:2px;font-size:.78rem}
.lib-tabs{margin-bottom:12px}
.toolbar{gap:6px;margin-bottom:12px}
.tool-input{padding:8px 11px;font-size:.8rem;border-radius:10px}
.seg{padding:2px;border-radius:10px}
.seg button{padding:5px 11px;font-size:.74rem;border-radius:8px}
.seg-wide button{padding:7px 8px}
.notes-grid,.books-grid{gap:11px;grid-template-columns:repeat(auto-fill,minmax(258px,1fr))}
.jobs-grid{gap:11px;grid-template-columns:repeat(auto-fill,minmax(264px,1fr))}
.note-card,.book-card,.job-card{padding:12px 13px;gap:6px;border-radius:16px}
.note-card h4,.book-card h4,.job-card h4{font-size:.9rem}
.note-desc,.book-why,.job-desc{font-size:.78rem;line-height:1.7}
.note-meta,.book-meta{font-size:.68rem}
.book-emoji,.note-badge{font-size:20px}
.note-actions,.book-actions,.job-foot{padding-top:7px;gap:5px}
.vote{padding:2px 4px;border-radius:10px}
.vote-btn{width:24px;height:24px}
.books-note{margin-bottom:8px;font-size:.68rem}
.avatar{width:30px;height:30px;font-size:.78rem}
.avatar.small{width:26px;height:26px;font-size:.72rem}
.avatar.tiny{width:20px;height:20px;font-size:.62rem}
.avatar.big{width:68px;height:68px;font-size:1.6rem;border-radius:20px}

/* --- chat page --- */
.chat-shell{grid-template-columns:280px minmax(0,1fr);gap:11px;height:calc(100vh - 150px);min-height:440px}
.chat-side,.chat-main{border-radius:16px}
.chat-side-head{padding:10px 13px}
.chat-side-head h3{font-size:.88rem}
.thread-row{padding:7px 9px;gap:8px;border-radius:11px}
.thread-mid b{font-size:.8rem}
.thread-mid span{font-size:.68rem}
.convo-head{padding:9px 13px;min-height:52px}
.convo-head b{font-size:.86rem}
.msg-list{padding:14px;gap:8px}
.msg-bubble{padding:8px 12px;font-size:.82rem;line-height:1.7;border-radius:14px}
.msg-form{padding:8px 10px}
.msg-form input{padding:9px 12px;font-size:.82rem;border-radius:12px}
.send-btn{width:38px;height:38px;flex-basis:38px;font-size:17px;border-radius:11px}
.chat-placeholder{padding:20px}
.chat-placeholder span{font-size:32px}

/* --- floating AI panel --- */
.chat-toggle{padding:10px 16px;font-size:.82rem;gap:7px;inset-inline-end:16px;bottom:16px}
.chat-toggle-emoji{font-size:17px}
.chat-panel{width:min(360px,calc(100vw - 24px));height:min(560px,calc(100vh - 32px));border-radius:20px;inset-inline-end:16px;bottom:16px}
.chat-head{padding:11px 13px}
.chat-avatar{width:34px;height:34px;font-size:18px;border-radius:11px}
.chat-id strong{font-size:.88rem}
.chat-log{padding:12px;gap:9px}
.bubble{padding:9px 12px;font-size:.82rem;line-height:1.7;border-radius:15px}
.chat-chips{padding:7px 10px;gap:5px}
.chat-chip{font-size:.68rem;padding:5px 10px}
.chat-form{padding:8px 10px 10px}
.chat-form input{padding:9px 12px;font-size:.82rem;border-radius:12px}

/* --- modals --- */
.modal-card{border-radius:20px;padding:clamp(16px,2.4vw,26px);max-height:calc(100vh - 32px)}
.modal-x{width:32px;height:32px;border-radius:10px;font-size:13px;inset-inline-end:13px;top:13px}
.detail-head{gap:12px;padding-inline-end:28px}
.detail-emoji{width:52px;height:52px;flex-basis:52px;font-size:26px;border-radius:15px}
.detail-head h2{font-size:clamp(1.05rem,2.4vw,1.3rem)}
.detail-meta{margin-top:6px}
.kid-box{margin:14px 0;padding:13px 15px;border-radius:15px}
.kid-box p{font-size:.9rem;margin-top:6px;line-height:1.85}
.detail-section{margin-top:14px}
.detail-section h3{font-size:.84rem;margin-bottom:7px}
.detail-desc{font-size:.82rem}
.chips{gap:5px}
.chip{font-size:.72rem;padding:4px 10px;border-radius:9px}
.video-grid{gap:7px}
.video-btn{padding:8px 11px;gap:8px;border-radius:11px}
.video-btn b{font-size:.76rem}
.detail-actions{margin-top:18px;padding-top:12px;gap:7px}
.field{margin-top:11px;gap:5px}
.field span{font-size:.74rem}
.field input{padding:8px 11px;font-size:.8rem;border-radius:10px}
.check{margin-top:11px;font-size:.78rem}
.settings-actions{margin-top:14px;gap:7px}
.google-box{margin-top:12px}
.or-line{margin:8px 0 10px}

/* --- profile / admin --- */
.profile-head{padding:15px 16px;gap:13px;border-radius:18px}
.profile-info h2{font-size:1.15rem}
.profile-info p{font-size:.8rem}
.panel-card{padding:15px 16px;margin-top:12px;border-radius:16px}
.panel-card h3{font-size:.9rem}
.section-title{margin:18px 0 8px;font-size:.95rem}
.stat-grid{gap:9px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.stat-card{padding:11px 13px;border-radius:14px}
.stat-emoji{font-size:18px}
.stat-card b{font-size:1.25rem}
.admin-list{padding:6px;border-radius:14px;margin-bottom:8px}
.admin-row{padding:6px 8px;gap:8px;border-radius:10px}
.admin-table th,.admin-table td{padding:7px 10px}
.admin-table{font-size:.78rem}
.depth-wrap{margin:14px 0 6px;gap:8px}

/* --- fields / finder --- */
.fields-grid{gap:6px;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));margin-top:10px}
.field-tile{padding:8px 10px;border-radius:11px}
.finder-grid{gap:6px;margin-top:10px}
.finder-link{padding:8px 11px;font-size:.78rem;border-radius:11px}
.finder-user{margin-top:12px;padding-top:10px}

/* --- media / summary --- */
.media-section{margin-top:16px}
.media-intro{padding:10px 13px;font-size:.8rem;border-radius:13px}
.media-chapter-btn{padding:8px 10px;font-size:.8rem;gap:8px}
.media-chapter-idx{width:22px;height:22px;flex-basis:22px;font-size:.66rem;border-radius:7px}
.media-chapter-bullets{font-size:.74rem;padding:2px 12px 9px 28px}
.summary-tldr{padding:10px 13px;margin:10px 0;border-radius:13px}
.summary-tldr p{font-size:.86rem}

/* --- toast --- */
.toast{padding:9px 16px;font-size:.8rem;border-radius:12px;bottom:84px}

/* --- responsive compact --- */
@media (max-width:900px){
  .chat-toggle{bottom:74px;padding:9px 13px}
  body{padding-bottom:60px}
  .chat-shell{height:auto}
}
@media (max-width:720px){
  .page-head h2{font-size:1.12rem}
  .profile-head{padding:12px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
  .card{padding:11px 12px}
}
@media (max-width:620px){
  .topbar{padding:7px 10px;height:52px;gap:7px}
  .brand .logo{width:32px;height:32px;flex-basis:32px;font-size:18px;border-radius:10px}
  .brand-text h1{font-size:.98rem}
  .icon-btn{width:34px;height:34px;font-size:15px}
  .pill-btn{height:34px;padding:0 9px;font-size:.72rem}
  .auth-btn{height:34px;padding:0 6px;max-width:42px}
  .auth-avatar{width:21px;height:21px;flex-basis:21px}
  .search-btn{padding:0 12px;font-size:.8rem}
  .hero h2{font-size:1.15rem}
  .kind-btn{padding:6px 2px}
  .kind-btn b{font-size:.68rem}
}
@media (max-width:420px){
  .grid{grid-template-columns:1fr 1fr;gap:8px}
  .card-actions{flex-direction:column}
}

