/* Lishan's Utility · stylesheet */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0;font-size:14px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
img,svg,video,canvas{max-width:100%}
[hidden]{display:none!important}
/* Layout: a parts cabinet. Labelled drawer rail on the left, one open drawer (the tool) on the right; rail becomes a scrolling strip on phones. */
:root{
  --bg:#EDF0F4; --surface:#FFFFFF; --surface-2:#E3E8EF; --ink:#172031; --muted:#566174; --line:#D1D8E2;
  --accent:#B9700F; --accent-strong:#9A5C08; --accent-soft:#F5E6CC; --on-accent:#FFFFFF;
  --steel:#26677A; --steel-soft:#D8E9ED;
  --good:#2A7548; --good-soft:#DCEFE3; --warn:#9C6410; --warn-soft:#F6E9D0; --bad:#B4372B; --bad-soft:#F5DCD8;
  --shadow:0 1px 2px rgba(23,32,49,.06),0 6px 20px rgba(23,32,49,.06);
  --display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --body:"Atkinson Hyperlegible","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:10px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0C1118; --surface:#141B26; --surface-2:#1C2532; --ink:#E4E9F1; --muted:#97A2B5; --line:#273142;
  --accent:#E8A645; --accent-strong:#F2BC6A; --accent-soft:#35280F; --on-accent:#1A1104;
  --steel:#6CB6C6; --steel-soft:#14303A;
  --good:#62C58E; --good-soft:#14301F; --warn:#E6B54E; --warn-soft:#33270E; --bad:#F07C6C; --bad-soft:#3B1C18;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0C1118; --surface:#141B26; --surface-2:#1C2532; --ink:#E4E9F1; --muted:#97A2B5; --line:#273142;
  --accent:#E8A645; --accent-strong:#F2BC6A; --accent-soft:#35280F; --on-accent:#1A1104;
  --steel:#6CB6C6; --steel-soft:#14303A;
  --good:#62C58E; --good-soft:#14301F; --warn:#E6B54E; --warn-soft:#33270E; --bad:#F07C6C; --bad-soft:#3B1C18;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15.5px;line-height:1.55}
h1,h2,h3,h4{font-family:var(--display);line-height:1.15;margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:800}
h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:700}
h3{font-size:1.15rem;font-weight:700}
h4{font-size:1rem;font-weight:700}
p{margin:0}
a{color:var(--steel)}
code,pre,kbd{font-family:var(--mono);font-size:.88em}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100%}
.rail{position:sticky;top:env(safe-area-inset-top,0px);height:100vh;overflow-y:auto;border-right:1px solid var(--line);background:var(--surface);padding:20px 14px;display:flex;flex-direction:column;gap:18px}
.brand{display:flex;align-items:center;gap:10px;padding:2px 6px;background:none;border:0;cursor:pointer;text-align:left}
.brand-mark{width:38px;height:38px;border-radius:9px;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1.05rem;letter-spacing:-.03em}
.brand-name{font-family:var(--display);font-weight:800;font-size:1.12rem;line-height:1.1}
.brand-sub{font-size:.72rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.nav{display:flex;flex-direction:column;gap:2px}
.nav-label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px 8px 4px}
.nav button{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border:0;border-radius:8px;background:none;cursor:pointer;text-align:left;font-size:.94rem;color:var(--ink)}
.nav button:hover{background:var(--surface-2)}
.nav button[aria-current="page"]{background:var(--accent-soft);color:var(--ink);font-weight:700}
.drawer-tag{flex:none;width:30px;height:24px;border-radius:5px;border:1px solid var(--line);background:var(--surface-2);font-family:var(--mono);font-size:.7rem;font-weight:600;display:grid;place-items:center;color:var(--muted)}
.nav button[aria-current="page"] .drawer-tag{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.rail-foot{margin-top:auto;font-size:.78rem;color:var(--muted);padding:0 8px;display:flex;flex-direction:column;gap:8px}
.theme-row{display:flex;gap:4px}
.theme-row button{flex:1;padding:5px 4px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:.75rem;cursor:pointer}
.theme-row button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
main{min-width:0;padding-inline:clamp(16px,4vw,44px);padding-block:28px 72px}
.view{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.view-head{display:flex;flex-direction:column;gap:6px;padding-bottom:4px}
.eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-strong)}
.lede{color:var(--muted);max-width:68ch}

@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .rail{position:fixed;top:0;left:0;bottom:0;width:min(292px,86vw);height:100%;z-index:60;transform:translateX(-104%);transition:transform .22s ease;padding-top:calc(18px + env(safe-area-inset-top,0px));padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
  .rail.open{transform:none;box-shadow:0 0 50px rgba(0,0,0,.35)}
}

/* ---------- components ---------- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow);min-width:0}
.panel-flat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}
.stack{display:flex;flex-direction:column;gap:12px;min-width:0}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.row.between{justify-content:space-between}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:900px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.grid-2,.grid-3{grid-template-columns:1fr}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:.92rem;font-weight:700;line-height:1.2;transition:background .15s,border-color .15s}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.btn.small{padding:5px 10px;font-size:.82rem}
.btn.ghost{background:none;border-color:transparent}
.btn.ghost:hover{background:var(--surface-2)}
.app-ver{display:block;margin-top:6px;font-size:.72rem;opacity:.7}
.btn.clear{color:var(--bad);border-color:var(--bad);background:var(--surface)}
.btn.clear:hover{background:var(--bad);color:#fff}
.btn.clear .i{flex-shrink:0}
.btn:disabled{opacity:.5;cursor:not-allowed}
label.field{display:flex;flex-direction:column;gap:5px;font-size:.84rem;font-weight:700;color:var(--muted);min-width:0}
input:not([type]),input[type=text],input[type=number],input[type=date],input[type=datetime-local],input[type=email],input[type=url],input[type=password],input[type=search],select,textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-weight:400;font-size:.95rem;color:var(--ink)}
textarea{resize:vertical;min-height:120px;line-height:1.55}
textarea.mono,.mono{font-family:var(--mono);font-size:.85rem}
input[type=range]{width:100%;accent-color:var(--accent)}
input[type=checkbox]{accent-color:var(--accent)}
.hint{font-size:.82rem;color:var(--muted)}
.seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;background:var(--surface-2);border-radius:9px;max-width:100%}
.seg button{border:0;background:none;padding:6px 12px;border-radius:7px;cursor:pointer;font-size:.88rem;font-weight:700;color:var(--muted)}
.seg button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:.78rem;font-weight:700;background:var(--surface-2);color:var(--muted);border:1px solid transparent}
.chip.good{background:var(--good-soft);color:var(--good)}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
.chip.bad{background:var(--bad-soft);color:var(--bad)}
.chip.steel{background:var(--steel-soft);color:var(--steel)}
.chip.example{background:var(--accent-soft);color:var(--accent-strong)}
.out{background:var(--surface-2);border-radius:8px;padding:12px 14px;min-height:46px;overflow-wrap:anywhere}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:.9rem}
.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.stat-row{display:flex;flex-wrap:wrap;gap:8px 22px}
.stat b{display:block;font-family:var(--display);font-size:1.5rem;font-variant-numeric:tabular-nums;line-height:1.1}
.stat span{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.tbl-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
td.num{font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:.84rem;white-space:nowrap}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:9px;font-weight:700;font-size:.9rem;opacity:0;pointer-events:none;transition:.25s;z-index:99;max-width:calc(100vw - 32px)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.drop{border:1.5px dashed var(--line);border-radius:var(--r);padding:18px;text-align:center;color:var(--muted);cursor:pointer;background:var(--surface)}
.drop.over{border-color:var(--accent);background:var(--accent-soft)}
.drop input{display:none}
details.guide{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:0 16px}
details.guide summary{cursor:pointer;padding:13px 0;font-family:var(--display);font-weight:700;font-size:1.02rem;list-style:none;display:flex;justify-content:space-between;gap:10px}
details.guide summary::after{content:"+";font-family:var(--mono);color:var(--accent)}
details.guide[open] summary::after{content:"−"}
details.guide .body{padding:0 0 16px;display:flex;flex-direction:column;gap:10px;max-width:72ch}
details.guide ul,details.guide ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width:600px){.compare{grid-template-columns:1fr}}
.compare div{padding:10px 12px;border-radius:8px;font-size:.9rem}
.compare .before{background:var(--bad-soft)}.compare .after{background:var(--good-soft)}
.compare b{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
pre.code{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:12px 14px;overflow-x:auto;margin:0;line-height:1.5;white-space:pre}
.save-note{font-size:.82rem;color:var(--muted);display:flex;gap:6px;align-items:center}
img.result{border-radius:8px;border:1px solid var(--line);background:var(--surface-2);max-width:100%;height:auto;display:block}
canvas{max-width:100%}

/* ---------- home ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;align-items:end;padding-bottom:8px;border-bottom:1px solid var(--line)}
@media (max-width:860px){.hero{grid-template-columns:1fr}}
.hero h1 span{color:var(--accent)}
.today{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.today .date{font-family:var(--display);font-weight:700;font-size:1.2rem}
.cabinet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:900px){.cabinet{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.cabinet{grid-template-columns:1fr}}
.drawer{display:flex;flex-direction:column;gap:8px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;min-width:0}
.drawer:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow)}
.drawer .top{display:flex;align-items:center;gap:10px}
.drawer .drawer-tag{width:36px;height:28px;font-size:.78rem}
.drawer:hover .drawer-tag{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.drawer h3{font-size:1.05rem}
.drawer p{font-size:.88rem;color:var(--muted)}
.drawer .handle{height:4px;width:44px;border-radius:2px;background:var(--line);margin-top:auto}

/* ---------- CV ---------- */
.score{display:flex;align-items:center;gap:16px}
.score svg{flex:none}
.score .big{font-family:var(--display);font-weight:800;font-size:1.6rem}
.checks{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.checks li{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-radius:8px;background:var(--surface-2);font-size:.9rem}
.checks li b{display:block}
.checks .chip{justify-content:center}

/* ---------- editor ---------- */
.marked{white-space:pre-wrap;line-height:1.75;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px;max-height:420px;overflow:auto;overflow-wrap:anywhere}
.marked mark{background:none;color:inherit;border-bottom:2px solid;cursor:pointer;padding:0 1px;border-radius:2px}
.marked mark.spelling{border-color:var(--bad);background:var(--bad-soft)}
.marked mark.grammar{border-color:var(--accent);background:var(--accent-soft)}
.marked mark.spacing{border-color:var(--muted);background:var(--surface-2)}
.marked mark.style{border-color:var(--steel);border-bottom-style:dashed}
.issues{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow:auto;padding-right:2px}
.issue{display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px 9px 0;border-radius:8px;background:var(--surface-2);font-size:.88rem;overflow:hidden}
.issue::before{content:"";align-self:stretch;border-radius:0 3px 3px 0}
.issue.spelling::before{background:var(--bad)}.issue.grammar::before{background:var(--accent)}.issue.spacing::before{background:var(--muted)}.issue.style::before{background:var(--steel)}
.issue.flash{outline:2px solid var(--accent)}
.issue q{font-family:var(--mono);font-size:.82rem;quotes:none;background:var(--surface);padding:0 4px;border-radius:3px}
.levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:900px){.levels{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.levels{grid-template-columns:1fr}}
.level{padding:12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-size:.86rem;display:flex;flex-direction:column;gap:4px}
.level .chip{align-self:flex-start}

/* ---------- photo ---------- */
.photo-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
@media (max-width:900px){.photo-layout{grid-template-columns:1fr}}
.stage{background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface) 0 50%) 0 0/20px 20px;border:1px solid var(--line);border-radius:var(--r);padding:12px;display:grid;place-items:center;min-height:260px}
.stage canvas{max-height:62vh;width:auto;height:auto;border-radius:4px}
.slider{display:grid;grid-template-columns:86px minmax(0,1fr) 40px;gap:8px;align-items:center;font-size:.84rem}
.slider output{font-family:var(--mono);font-size:.76rem;text-align:right;color:var(--muted)}

/* ---------- memos ---------- */
.memo-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:820px){.memo-layout{grid-template-columns:1fr}}
.memo-list{display:flex;flex-direction:column;gap:6px;max-height:560px;overflow:auto}
.memo-item{display:grid;grid-template-columns:6px minmax(0,1fr);gap:10px;text-align:left;padding:10px 10px 10px 0;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;overflow:hidden}
.memo-item::before{content:"";background:var(--mc,var(--line));border-radius:0 3px 3px 0}
.memo-item[aria-current="true"]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.memo-item b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.memo-item small{color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.swatches{display:flex;gap:6px}
.swatches button{width:22px;height:22px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer}
.swatches button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--ink)}
#memoBody{min-height:300px}

/* ---------- code ---------- */
.lesson-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:820px){.lesson-layout{grid-template-columns:1fr}}
.lesson-nav{display:flex;flex-direction:column;gap:4px}
@media (max-width:820px){.lesson-nav{flex-direction:row;overflow-x:auto}}
.lesson-nav button{text-align:left;border:1px solid transparent;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.9rem;display:flex;gap:8px;white-space:nowrap}
.lesson-nav button span{font-family:var(--mono);font-size:.78rem;color:var(--muted)}
.lesson-nav button[aria-selected="true"]{background:var(--surface);border-color:var(--line);font-weight:700}
.console{background:#0F1620;color:#D7E3EE;font-family:var(--mono);font-size:.82rem;border-radius:8px;padding:12px;min-height:120px;max-height:260px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.console .err{color:#FF8E7E}.console .warn{color:#F2C66D}.console .dim{color:#7F8EA0}
iframe.preview{width:100%;height:280px;border:1px solid var(--line);border-radius:8px;background:#fff}
iframe.runner{display:none}

/* ---------- games ---------- */
.game-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}
.board2048{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:var(--surface-2);padding:8px;border-radius:10px;width:min(360px,100%);aspect-ratio:1;touch-action:none;max-width:100%}
.tile{border-radius:7px;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:clamp(1rem,5vw,1.7rem);background:var(--surface);color:var(--ink);transition:background .1s}
.ttt{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:min(300px,100%);aspect-ratio:1}
.ttt button{border:1px solid var(--line);background:var(--surface);border-radius:10px;font-family:var(--display);font-weight:800;font-size:2.4rem;cursor:pointer;color:var(--ink)}
.ttt button.o{color:var(--steel)}.ttt button.x{color:var(--accent)}
.ttt button.win{background:var(--accent-soft)}
.memory{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:min(380px,100%)}
.card{aspect-ratio:1;border-radius:10px;border:1px solid var(--line);background:var(--ink);color:var(--bg);font-size:1.8rem;cursor:pointer;display:grid;place-items:center;font-family:var(--display)}
.card.up{background:var(--surface);color:var(--ink)}
.card.done{background:var(--good-soft);color:var(--good);border-color:transparent;cursor:default}
#snake{touch-action:none;border-radius:10px;border:1px solid var(--line);width:min(400px,100%);height:auto;aspect-ratio:1}
.pad{display:grid;grid-template-columns:repeat(3,52px);gap:6px}
.pad button{height:44px}
.typing-passage{font-family:var(--mono);font-size:1rem;line-height:1.8;background:var(--surface-2);border-radius:8px;padding:14px;overflow-wrap:anywhere}
.typing-passage .ok{color:var(--good)}.typing-passage .no{color:var(--bad);background:var(--bad-soft)}.typing-passage .cur{border-bottom:2px solid var(--accent)}

/* ---------- scanners / tools ---------- */
.pick-canvas{cursor:crosshair;border-radius:8px;border:1px solid var(--line)}
.swatch-big{width:100%;height:64px;border-radius:8px;border:1px solid var(--line)}
.palette{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.palette button{height:44px;border-radius:6px;border:1px solid var(--line);cursor:pointer}
.meter{height:10px;border-radius:5px;background:var(--surface-2);overflow:hidden}
.meter > i{display:block;height:100%;border-radius:5px;transition:width .2s,background .2s}
.found-group{display:flex;flex-direction:column;gap:6px}
.found-group .row{gap:6px}
.found-group code{background:var(--surface-2);padding:3px 7px;border-radius:5px;overflow-wrap:anywhere}
.pomo{font-family:var(--display);font-weight:800;font-size:clamp(3rem,10vw,4.5rem);font-variant-numeric:tabular-nums;text-align:center;line-height:1}
.qr-out{display:grid;place-items:center;min-height:160px;background:#fff;border-radius:8px;padding:14px}
.qr-out canvas{display:none}.qr-out img{display:block!important;width:100%;max-width:min(100%,360px);height:auto;aspect-ratio:1;image-rendering:pixelated;margin:0 auto}.qr-out .hint{color:#555}

/* ================= v2 UI layer: tool identities, top bar, home ================= */
:root{
  --t-home:#B9700F; --t-cv:#A86408; --t-editor:#22606F; --t-novel:#7E4592; --t-memos:#55701A; --t-photo:#B44A33;
  --t-code:#3A55B8; --t-tech:#0E7468; --t-games:#A83670; --t-scan:#22729F; --t-tools:#4F5A6C; --t-letters:#A0522D; --t-pdf:#B3261E; --t-money:#2E7D32; --t-study:#6A4FB3; --t-media:#0C8599; --t-food:#D9480F; --t-fitness:#0B7A4B; --t-remedy:#0C8599; --t-hygiene:#1971C2; --t-jokes:#D9480F; --t-mind:#9C36B5; --t-lang:#3B5BDB; --t-fun:#0B7285; --t-love:#D6336C; --t-settings:#5C6B80; --t-watch:#0C8599; --t-anime:#C2255C; --t-faith:#9C6B00; --t-listen:#6741D9; --t-relax:#2B8A3E; --on-tool:#FFFFFF; --tool:var(--accent);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --t-home:#E8A645; --t-cv:#E8A645; --t-editor:#6CB6C6; --t-novel:#C38AD6; --t-memos:#A7C35A; --t-photo:#F08A6E;
  --t-code:#8EA3F5; --t-tech:#4FCDB4; --t-games:#EE7DB0; --t-scan:#6EC1EE; --t-tools:#A9B3C4; --t-letters:#E39B6B; --t-pdf:#F2867D; --t-money:#7FD08A; --t-study:#B7A3F2; --t-media:#3BC9DB; --t-food:#FF922B; --t-fitness:#51CF66; --t-remedy:#3BC9DB; --t-hygiene:#74C0FC; --t-jokes:#FFA94D; --t-mind:#E599F7; --t-lang:#91A7FF; --t-fun:#66D9E8; --t-love:#FF8FAB; --t-settings:#A9B6C8; --t-watch:#3BC9DB; --t-anime:#F783AC; --t-faith:#F0C25A; --t-listen:#B197FC; --t-relax:#8CE99A; --on-tool:#10151D;
}}
:root[data-theme="dark"]{
  --t-home:#E8A645; --t-cv:#E8A645; --t-editor:#6CB6C6; --t-novel:#C38AD6; --t-memos:#A7C35A; --t-photo:#F08A6E;
  --t-code:#8EA3F5; --t-tech:#4FCDB4; --t-games:#EE7DB0; --t-scan:#6EC1EE; --t-tools:#A9B3C4; --t-letters:#E39B6B; --t-pdf:#F2867D; --t-money:#7FD08A; --t-study:#B7A3F2; --t-media:#3BC9DB; --t-food:#FF922B; --t-fitness:#51CF66; --t-remedy:#3BC9DB; --t-hygiene:#74C0FC; --t-jokes:#FFA94D; --t-mind:#E599F7; --t-lang:#91A7FF; --t-fun:#66D9E8; --t-love:#FF8FAB; --t-settings:#A9B6C8; --t-watch:#3BC9DB; --t-anime:#F783AC; --t-faith:#F0C25A; --t-listen:#B197FC; --t-relax:#8CE99A; --on-tool:#10151D;
}
.tint{background:color-mix(in srgb,var(--tool) 13%,var(--surface))}

/* rail */
.rail{gap:14px}
.nav button{position:relative;padding:8px 10px 8px 8px;color:var(--ink)}
.nav button .drawer-tag{color:var(--tool);border-color:color-mix(in srgb,var(--tool) 35%,var(--line));background:color-mix(in srgb,var(--tool) 10%,var(--surface))}
.nav button[aria-current="page"]{background:color-mix(in srgb,var(--tool) 13%,transparent);font-weight:700}
.nav button[aria-current="page"] .drawer-tag{background:var(--tool);border-color:var(--tool);color:var(--on-tool)}
.nav button[aria-current="page"]::after{content:"";position:absolute;right:8px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--tool)}
.icon-btn.rail-close{display:none}
.rail-backdrop{position:fixed;inset:0;background:rgba(8,12,18,.45);z-index:55}

/* top bar */
main{padding-block:0 72px}
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;display:flex;align-items:center;gap:10px;margin-inline:calc(-1*clamp(16px,4vw,44px));margin-bottom:26px;padding:10px clamp(16px,4vw,44px);background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.crumb{display:flex;align-items:center;gap:8px;min-width:0;flex:1;font-size:.92rem;white-space:nowrap;overflow:hidden}
.crumb .home-link{border:0;background:none;color:var(--muted);cursor:pointer;padding:0;font:inherit}
.crumb .home-link:hover{color:var(--ink)}
.crumb .sep{color:var(--line)}
.crumb b{display:inline-flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis}
.crumb b i{width:8px;height:8px;border-radius:50%;background:var(--tool);flex:none}
.search-trigger{display:inline-flex;align-items:center;gap:10px;padding:7px 8px 7px 12px;min-width:240px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:.9rem}
.search-trigger:hover{border-color:var(--muted)}
.search-trigger span{flex:1;text-align:left}
kbd{font-family:var(--mono);font-size:.7rem;padding:2px 6px;border-radius:5px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted)}
.icon-btn{width:38px;height:38px;flex:none;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;color:var(--ink)}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn svg,.search-trigger svg{width:18px;height:18px}
.menu-btn{display:none}

/* views */
@keyframes viewIn{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:none}}
.view:not([hidden]){animation:viewIn .28s ease both}
.view-head{flex-direction:row;align-items:flex-start;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.view-head::before{content:attr(data-tag);flex:none;width:54px;height:54px;border-radius:14px;background:var(--tool);color:var(--on-tool);display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:1.05rem;box-shadow:0 6px 18px color-mix(in srgb,var(--tool) 30%,transparent)}
.vh-text{display:flex;flex-direction:column;gap:6px;min-width:0}
.view .eyebrow{color:var(--tool)}
.view .btn.primary{background:var(--tool);border-color:var(--tool);color:var(--on-tool)}
.view .btn.primary:hover{filter:brightness(1.08)}
.view .seg button[aria-selected="true"]{box-shadow:0 1px 3px rgba(0,0,0,.12),inset 0 -2px 0 var(--tool)}
.panel{border-radius:14px}
.panel > h3:first-child,.panel > .row:first-child h3{letter-spacing:-.01em}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--tool);box-shadow:0 0 0 3px color-mix(in srgb,var(--tool) 20%,transparent)}

/* ---------- home ---------- */
.home-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(24px,4vw,48px);align-items:center;padding-block:8px 6px}
.home-hero h1,.home-hero .h1like{font-size:clamp(2.3rem,5.6vw,4rem);line-height:1;letter-spacing:-.03em}
.home-hero h1 em,.home-hero .h1like em{font-style:normal;color:var(--accent)}
.greet{font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}
.searchbox{position:relative}
.searchbox > svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:19px;height:19px;color:var(--muted);pointer-events:none}
.searchbox input{padding:15px 70px 15px 46px;border-radius:13px;font-size:1.03rem;box-shadow:var(--shadow);border-color:var(--line)}
.searchbox kbd{position:absolute;right:12px;top:50%;transform:translateY(-50%)}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:25;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:0 18px 40px rgba(10,16,26,.18);padding:6px;max-height:360px;overflow:auto}
.result-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:8px 10px;border:0;background:none;border-radius:9px;text-align:left;cursor:pointer;color:var(--ink)}
.result-item[aria-selected="true"],.result-item:hover{background:var(--surface-2)}
.result-item .ri-tag{width:36px;height:28px;border-radius:7px;display:grid;place-items:center;font-family:var(--mono);font-size:.7rem;font-weight:600;background:color-mix(in srgb,var(--tool) 14%,var(--surface));color:var(--tool)}
.result-item b{display:block;font-size:.93rem}
.result-item small{display:block;color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-item .ri-go{font-size:.75rem;color:var(--muted)}
.no-results{padding:14px;color:var(--muted);font-size:.9rem}
.quick{display:flex;flex-wrap:wrap;gap:8px}
.qa{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:700;font-size:.87rem;cursor:pointer;color:var(--ink);transition:border-color .15s,background .15s}
.qa i{width:9px;height:9px;border-radius:50%;background:var(--tool)}
.qa:hover{border-color:var(--tool);background:color-mix(in srgb,var(--tool) 8%,var(--surface))}
.cabinet-art{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.cabinet-art header{display:flex;justify-content:space-between;align-items:baseline;font-size:.78rem;color:var(--muted)}
.cabinet-art header b{font-family:var(--display);font-size:.95rem;color:var(--ink)}
.cab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
@keyframes cabIn{from{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:none}}
.cab-drawer{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-height:84px;padding:10px;border-radius:11px;border:1px solid var(--line);background:linear-gradient(180deg,var(--surface-2),color-mix(in srgb,var(--surface-2) 70%,var(--bg)));cursor:pointer;text-align:left;color:var(--ink);transition:transform .15s,border-color .15s,background .15s;animation:cabIn .45s ease both;animation-delay:calc(var(--i)*45ms);min-width:0}
.cab-drawer .lbl{font-family:var(--mono);font-weight:600;font-size:.74rem;background:var(--tool);color:var(--on-tool);border-radius:5px;padding:2px 7px;align-self:flex-start}
.cab-drawer small{font-size:.74rem;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.cab-drawer .pull{height:5px;width:42%;border-radius:3px;background:var(--line);align-self:center;transition:background .15s,width .15s}
.cab-drawer:hover{transform:translateY(-2px);border-color:var(--tool);background:color-mix(in srgb,var(--tool) 9%,var(--surface))}
.cab-drawer:hover .pull{background:var(--tool);width:55%}
.today-strip{display:grid;grid-template-columns:1.5fr repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.today-strip > div{background:var(--surface);padding:14px 18px;display:flex;flex-direction:column;gap:3px;min-width:0}
.today-strip .lab{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.today-strip .val{font-family:var(--display);font-weight:700;font-size:1.35rem;font-variant-numeric:tabular-nums;line-height:1.15}
.today-strip .val.clock{font-size:1.9rem}
.today-strip .sub{font-size:.8rem;color:var(--muted)}
.today-strip .meter{margin-top:6px;height:6px}
@media (max-width:900px){.today-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.today-strip > div:first-child{grid-column:1/-1}}
.sec-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.sec-title h2{font-size:1.35rem}
.recent-row{display:flex;flex-wrap:wrap;gap:10px}
.recent-item{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);font-weight:700;font-size:.9rem}
.recent-item span{width:34px;height:28px;border-radius:7px;display:grid;place-items:center;font-family:var(--mono);font-size:.72rem;background:var(--tool);color:var(--on-tool)}
.recent-item:hover{border-color:var(--tool)}
.seo-blurb{margin:28px 0 0;padding:20px 22px;border-radius:16px;border:1px solid var(--line);background:var(--surface)}
.seo-blurb h1{font-size:1.35rem;margin:0 0 6px}.seo-blurb p{margin:0 0 8px;color:var(--muted)}.seo-blurb ul{margin:0 0 8px;padding-left:20px}
.tool-links{margin:22px 0 8px;padding-top:16px;border-top:1px solid var(--line)}.tool-links h2{font-size:.95rem;margin:0 0 8px;color:var(--muted)}
.tool-links div{display:flex;flex-wrap:wrap;gap:4px 14px}.tool-links a{font-size:.84rem;color:var(--muted);text-decoration:none}.tool-links a:hover{color:var(--ink);text-decoration:underline}
.fd-top{gap:10px;flex-wrap:wrap}
.fd-find{gap:8px;flex-wrap:nowrap}.fd-cuisine{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;max-width:44%}
.fd-q{width:100%;flex:1;min-width:0;max-width:460px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}
.fd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.fd-card{display:flex;flex-direction:column;gap:4px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.fd-art{position:relative;display:grid;place-items:center;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,hsl(var(--h,25) 80% 88%),hsl(calc(var(--h,25) + 40) 75% 72%));font-size:3.2rem}
:root[data-theme="dark"] .fd-art{background:linear-gradient(135deg,hsl(var(--h,25) 35% 26%),hsl(calc(var(--h,25) + 40) 40% 18%))}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fd-art{background:linear-gradient(135deg,hsl(var(--h,25) 35% 26%),hsl(calc(var(--h,25) + 40) 40% 18%))}}
.fd-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fd-card:hover .fd-art{outline:3px solid var(--tool)}
.fd-card b{font-size:.95rem;line-height:1.25}.fd-card small{color:var(--muted);font-size:.8rem}
.fd-fav{position:absolute;top:8px;right:8px;font-style:normal;font-size:.9rem;background:rgba(0,0,0,.6);color:#ffd43b;border-radius:999px;padding:2px 7px}
.fd-detail{gap:14px}
.fd-head{display:flex;gap:16px;align-items:flex-start}
.fd-photo{width:180px;aspect-ratio:1;object-fit:cover;border-radius:14px;flex-shrink:0}
.fd-big{width:130px;aspect-ratio:1;border-radius:18px;display:grid;place-items:center;font-size:4rem;flex-shrink:0;background:linear-gradient(135deg,hsl(var(--h) 80% 88%),hsl(calc(var(--h) + 40) 75% 72%))}
@media (max-width:640px){.fd-head{flex-direction:column}.fd-photo{width:100%;aspect-ratio:16/10}.fd-big{width:90px;font-size:2.8rem}}
.fd-meta{color:var(--tool);font-weight:700;font-size:.9rem}
.fd-serv{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.88rem;padding:2px 4px 2px 12px;border:1px solid var(--line);border-radius:999px}.fd-serv b{min-width:20px;text-align:center}
.fd-body{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:22px}
@media (max-width:760px){.fd-body{grid-template-columns:1fr}}
.fd-body h4{margin:0 0 8px}
.fd-ing ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.fd-ing label{display:flex;gap:8px;align-items:flex-start;cursor:pointer;line-height:1.4}.fd-ing input{margin-top:3px;width:17px;height:17px;accent-color:var(--tool)}
.fd-ing input:checked+span{text-decoration:line-through;color:var(--muted)}
.fd-steps ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:10px;line-height:1.55}
.fd-tmr{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:1px 9px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}.fd-tmr:hover{border-color:var(--tool)}
.fd-tip{background:color-mix(in srgb,var(--tool) 10%,var(--surface));padding:10px 12px;border-radius:10px;margin:12px 0 0}
.fd-timers{display:flex;flex-wrap:wrap;gap:8px;position:sticky;top:64px;z-index:5}
.fd-t{display:inline-flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border-radius:999px;background:var(--tool);color:var(--on-tool);font-weight:800;font-variant-numeric:tabular-nums;box-shadow:var(--shadow)}
.fd-t small{font-weight:600;opacity:.85;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-t button{border:0;background:rgba(0,0,0,.2);color:inherit;border-radius:50%;width:22px;height:22px;cursor:pointer}
.fd-t.done{animation:fdPulse 1s infinite}@keyframes fdPulse{50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.fd-t.done{animation:none}}
.fd-cook{--tool:var(--t-food);position:fixed;inset:0;z-index:60;background:rgba(8,12,18,.6);display:grid;place-items:center;padding:16px}
.fd-cook[hidden]{display:none}
.fd-cook-in{width:min(680px,100%);background:var(--surface);color:var(--ink);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}
.fd-cook-step{font-size:clamp(1.15rem,3vw,1.5rem);line-height:1.5;margin:0}
.fd-prog{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.fd-prog i{display:block;height:100%;background:var(--t-food)}
.tc-wrap{position:relative;display:flex}.tc-wrap .tc-feats{padding-right:38px}.tc-wrap>.tool-card{flex:1}
.tc-pin{position:absolute;right:12px;bottom:12px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:1rem;cursor:pointer;display:grid;place-items:center;line-height:1}
.tc-pin:hover{color:var(--accent);border-color:var(--accent)}.tc-pin[aria-pressed="true"]{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}
.cont-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.cont-card{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 10px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;min-width:0}
.cont-card:hover{border-color:var(--tool)}
.cont-card img{width:64px;height:40px;object-fit:cover;border-radius:8px;flex-shrink:0;background:var(--surface-2)}
.cont-ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:color-mix(in srgb,var(--tool) 14%,var(--surface));color:var(--tool)}.cont-ic svg{width:20px;height:20px}
.cont-t{display:flex;flex-direction:column;min-width:0;flex:1}.cont-t b{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cont-t small{color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cont-go{color:var(--tool);font-size:.8rem}
.home-ml{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:980px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.tool-grid{grid-template-columns:1fr}}
.tool-card{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;color:var(--ink);transition:transform .15s,border-color .15s,background .15s,box-shadow .15s;min-width:0}
.tool-card:hover{transform:translateY(-3px);border-color:var(--tool);background:color-mix(in srgb,var(--tool) 5%,var(--surface));box-shadow:var(--shadow)}
.tc-top{display:flex;justify-content:space-between;align-items:center}
.tc-tag{width:44px;height:36px;border-radius:9px;display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:.85rem;background:color-mix(in srgb,var(--tool) 14%,var(--surface));color:var(--tool);transition:background .15s,color .15s}
.tool-card:hover .tc-tag{background:var(--tool);color:var(--on-tool)}
.tc-open{font-size:.82rem;font-weight:700;color:var(--tool);opacity:.75;transition:opacity .15s,transform .15s}
.tool-card:hover .tc-open{opacity:1;transform:translateX(2px)}
.tool-card h3{font-size:1.12rem}
.tool-card p{font-size:.88rem;color:var(--muted)}
.tc-feats{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:4px}
.tc-feats span{font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.home-bottom{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px}
@media (max-width:820px){.home-bottom{grid-template-columns:1fr}}
.memo-peek{display:flex;flex-direction:column;gap:8px}
.memo-peek button{display:grid;grid-template-columns:5px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px 10px 0;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;color:var(--ink);overflow:hidden}
.memo-peek button::before{content:"";align-self:stretch;background:var(--mc);border-radius:0 3px 3px 0}
.memo-peek b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.memo-peek small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.memo-peek em{font-style:normal;font-size:.75rem;color:var(--muted);white-space:nowrap}
.memo-peek button:hover{border-color:var(--t-memos)}
.tip-card{display:flex;flex-direction:column;gap:10px;padding:20px;border-radius:16px;background:var(--ink);color:var(--bg)}
.tip-card .eyebrow{color:var(--accent)}
.tip-card p{font-size:1.02rem;line-height:1.5}
.tip-card .btn{align-self:flex-start;background:transparent;color:var(--bg);border-color:color-mix(in srgb,var(--bg) 35%,transparent)}
.tip-card .btn:hover{background:color-mix(in srgb,var(--bg) 12%,transparent)}
.home-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.82rem;color:var(--muted);padding-top:16px;border-top:1px solid var(--line)}

/* command palette */
.cmdk-backdrop{position:fixed;inset:0;z-index:80;background:rgba(8,12,18,.45);display:flex;justify-content:center;align-items:flex-start;padding:calc(10vh + env(safe-area-inset-top,0px)) 16px 16px}
.cmdk{width:min(600px,100%);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 70px rgba(0,0,0,.35);overflow:hidden;display:flex;flex-direction:column;max-height:70vh;animation:viewIn .18s ease both}
.cmdk-in{display:flex;align-items:center;gap:10px;padding:4px 14px;border-bottom:1px solid var(--line)}
.cmdk-in svg{width:19px;height:19px;color:var(--muted);flex:none}
.cmdk-in input{border:0;box-shadow:none!important;padding:14px 0;font-size:1.05rem;background:transparent}
.cmdk-list{overflow:auto;padding:6px}
.cmdk-foot{display:flex;gap:14px;padding:9px 14px;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted);flex-wrap:wrap}

@media (max-width:860px){
  .menu-btn{display:inline-grid}
  .search-trigger{min-width:0;padding:0;width:38px;height:38px;justify-content:center;flex:none}
  .search-trigger span,.search-trigger kbd{display:none}
  .home-hero{grid-template-columns:1fr}
  .searchbox kbd{display:none}
  .searchbox input{padding-right:14px}
  .icon-btn.rail-close{display:inline-grid;position:absolute;right:12px;top:calc(16px + env(safe-area-inset-top,0px))}
}

/* service icons */
.drawer-tag{width:32px;height:32px;border-radius:9px}
.drawer-tag svg{width:17px;height:17px}
.brand-mark{background:var(--accent);color:var(--on-accent);border-radius:11px}
.brand-mark svg{width:21px;height:21px}
.view-head::before{content:none;display:none}
.vh-icon{flex:none;width:54px;height:54px;border-radius:14px;background:var(--tool);color:var(--on-tool);display:grid;place-items:center;box-shadow:0 6px 18px color-mix(in srgb,var(--tool) 30%,transparent)}
.vh-icon svg{width:26px;height:26px}
.cab-drawer .lbl{width:30px;height:30px;padding:0;border-radius:8px;display:grid;place-items:center}
.cab-drawer .lbl svg{width:17px;height:17px}
.tc-tag{width:44px;height:44px;border-radius:12px}
.tc-tag svg{width:22px;height:22px}
.result-item .ri-tag svg,.recent-item span svg{width:16px;height:16px}
.recent-item span{width:30px;height:30px;border-radius:8px}
@media (max-width:600px){.vh-icon{width:44px;height:44px;border-radius:12px}.vh-icon svg{width:22px;height:22px}}
.lvl-meter{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;max-width:240px}
.lvl-meter i{height:8px;border-radius:4px;background:var(--surface-2)}
.lvl-pill{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;padding:9px 11px;border-radius:8px;background:color-mix(in srgb,var(--tool) 10%,var(--surface));font-weight:400;color:var(--ink)}

/* CV upload + designer */
.drop{display:flex;flex-direction:column;align-items:center;gap:2px;padding:20px 16px}
.drop-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--tool) 14%,var(--surface));color:var(--tool);margin-bottom:6px}
.drop-icon svg{width:20px;height:20px}
.upload-status{font-size:.86rem;padding:9px 12px;border-radius:8px;background:var(--surface-2)}
.upload-status.ok{background:var(--good-soft);color:var(--good)}
.upload-status.bad{background:var(--bad-soft);color:var(--bad)}
.design-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:900px){.design-layout{grid-template-columns:1fr}}
.theme-picks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.tp{display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 6px 6px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;font-size:.78rem;font-weight:700;color:var(--ink)}
.tp svg{width:100%;max-width:64px;height:auto;border-radius:3px;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.tp[aria-pressed="true"]{border-color:var(--tool);background:color-mix(in srgb,var(--tool) 9%,var(--surface))}
.cv-sw{width:28px;height:28px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0;position:relative;overflow:hidden}
.cv-sw[aria-pressed="true"]{box-shadow:0 0 0 2px var(--ink)}
.cv-sw.custom{background:conic-gradient(#E34B4B,#E3B14B,#5BC46B,#4BA8E3,#8E5BE3,#E34B4B);display:inline-block}
.cv-sw.custom input{position:absolute;inset:-8px;width:44px;height:44px;opacity:0;cursor:pointer;border:0;padding:0}
.dl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.dl-grid .keep-dl{grid-column:1/-1;border-color:var(--accent);color:var(--accent-strong)}
.keep-tick{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:var(--surface)}
.keep-tick:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.keep-tick input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent);flex-shrink:0}
.keep-tick small{display:block;color:var(--muted);font-size:.82rem;margin-top:2px}
.keep-bar{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:10px;background:var(--surface-2)}
.keep-bar p{margin:0}
/* ===== Watch & Listen + new games ===== */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.game-wrap select{width:auto;min-width:130px}

.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.fm-card{display:flex;flex-direction:column;gap:4px;padding:0;border:0;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}
.fm-thumb{position:relative;display:block;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#111}
.fm-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.fm-card:hover .fm-thumb{outline:3px solid var(--tool)}
.fm-card b{font-size:.92rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fm-card small{color:var(--muted);font-size:.78rem}
#fmGrid .mv-card{max-width:none}
.wo-tools{gap:10px;align-items:flex-end;flex-wrap:wrap;justify-content:space-between}.wo-reg{min-width:200px}
.wo-rate,.wo-type{position:absolute;top:8px;padding:2px 7px;border-radius:999px;font:800 .72rem var(--body);background:rgba(0,0,0,.72);color:#fff}
.wo-rate{left:8px;color:#ffd43b}.wo-type{right:8px}
.wo-detail{display:flex;flex-direction:column;gap:12px;padding:0 0 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.wo-detail>*:not(.wo-hero){margin:0 14px}
.wo-hero{background:#0b1018 center/cover no-repeat;color:#eef2f7;padding:20px}
.wo-hero-in{display:flex;gap:18px;align-items:flex-start}
.wo-hero h3{margin:0;font-size:1.5rem;color:#fff}.wo-hero p{margin:0;line-height:1.55}.wo-hero i{color:#c9d1dc}
.wo-poster{width:140px;border-radius:10px;flex-shrink:0;box-shadow:0 6px 20px rgba(0,0,0,.5)}
.wo-meta{color:#ffd43b;font-weight:700;font-size:.9rem}.wo-cast{color:#c9d1dc;font-size:.88rem}
.wo-hero .btn.ghost{color:#fff}
@media (max-width:600px){.wo-hero-in{flex-direction:column}.wo-poster{width:110px}}
.wo-where{display:flex;flex-direction:column;gap:8px}.wo-where .btn{align-self:flex-start}.wo-where h4{margin:0}
.wo-prov{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wo-prov>span{width:110px;font-weight:700;font-size:.85rem;color:var(--muted)}
.wo-prov img{width:40px;height:40px;border-radius:9px;margin-right:6px}
.wo-credit{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tg-list{display:flex;flex-direction:column;gap:8px}
.tg-item{border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.tg-item summary{display:flex;gap:12px;align-items:center;padding:8px 10px;cursor:pointer;list-style:none}.tg-item summary::-webkit-details-marker{display:none}
.tg-img{width:52px;height:72px;border-radius:8px;overflow:hidden;background:var(--surface-2);flex-shrink:0}.tg-img img{width:100%;height:100%;object-fit:cover}
.tg-t{display:flex;flex-direction:column;gap:2px;min-width:0}.tg-t small{color:var(--muted)}.tg-g{font-size:.78rem}
.tg-more{padding:0 12px 12px 74px;display:flex;flex-direction:column;gap:8px}.tg-more p{margin:0}
@media (max-width:600px){.tg-more{padding-left:12px}}
#lnChips small{font-weight:400;opacity:.75;margin-left:4px}

.fs-card input[type=range],.rd-vol input{accent-color:var(--tool)}
.md-notice{padding:12px 14px;border-radius:10px;background:var(--warn-soft);color:var(--warn);font-weight:700;font-size:.9rem}
.md-empty{grid-column:1/-1;padding:28px 12px;text-align:center;color:var(--muted)}
.chips-row{display:flex;flex-wrap:wrap;gap:6px}
.chip-btn{padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.85rem;font-weight:700;cursor:pointer}
.chip-btn[aria-pressed="true"]{background:var(--tool);border-color:var(--tool);color:var(--on-tool)}
.mv-bar{justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.mv-search{gap:6px;flex:1;min-width:240px;max-width:420px}
.mv-search input{flex:1}
.mv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.mv-card{display:flex;flex-direction:column;gap:4px;padding:0;border:0;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}
.mv-poster{position:relative;aspect-ratio:3/4;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--tool) 35%,#111),#111);display:block}
.mv-poster img{width:100%;height:100%;object-fit:cover;display:block}
.mv-play{position:absolute;inset:auto 8px 8px auto;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;display:grid;place-items:center;font-size:.85rem;opacity:.9}
.mv-card:hover .mv-poster{outline:3px solid var(--tool)}
.mv-card b{font-size:.9rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mv-card small{color:var(--muted);font-size:.78rem}
.mv-player{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.mv-frame,.vn-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:10px;overflow:hidden}
.mv-frame iframe,.vn-frame iframe,.vn-frame>div{position:absolute;inset:0;width:100%;height:100%;border:0}
.rd-bar{gap:10px;align-items:flex-end;flex-wrap:wrap}.rd-bar .field{min-width:180px}.rd-q{flex:1}
.rd-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.rd-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer}
.rd-item:hover,.rd-item.on{border-color:var(--tool)}
.rd-item.on{background:color-mix(in srgb,var(--tool) 10%,var(--surface))}
.rd-logo{position:relative;width:42px;height:42px;border-radius:8px;flex-shrink:0;overflow:hidden;background:color-mix(in srgb,var(--tool) 20%,var(--surface-2));display:grid;place-items:center;font-weight:800}
.rd-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff}
.rd-t{flex:1;min-width:0;display:flex;flex-direction:column}.rd-t b,.rd-t small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rd-t small{color:var(--muted);font-size:.78rem}
.rd-pl{color:var(--tool)}
.rd-now{position:sticky;bottom:10px;z-index:4;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--tool);box-shadow:var(--shadow);flex-wrap:wrap}
.rd-now img{border-radius:8px;object-fit:cover;background:#fff}
.rd-now-t{flex:1;min-width:140px;display:flex;flex-direction:column}.rd-now-t small{color:var(--muted)}
.rd-vol input{width:110px}
.vn-bar{gap:8px;flex-wrap:wrap}.vn-bar input{flex:1;min-width:220px}
.vn-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:14px;align-items:start}
@media (max-width:900px){.vn-grid{grid-template-columns:1fr}}
.vn-empty{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center;color:#c9d1dc}
.vn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:360px;overflow:auto}
.vn-list li{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;border-radius:8px;background:var(--surface-2)}
.vn-list li>span{flex:1;white-space:pre-wrap}
.vn-ts{border:0;border-radius:6px;padding:2px 7px;background:var(--tool);color:var(--on-tool);font:700 .8rem var(--mono);cursor:pointer}
.vn-recent{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.vn-recent h4{margin:6px 0 2px}
.fs-timer{flex-direction:row;align-items:center;gap:8px}
.fa-note{padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--t-media) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--t-media) 30%,var(--line));font-size:.9rem;line-height:1.5}.fa-note a{font-weight:700;color:var(--t-media)}
.ml-bar{display:flex;justify-content:flex-end;margin:-4px 0 8px}.ml-n{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--t-media);color:#fff;font-size:.72rem;margin-left:4px}
.ml-panel{margin-bottom:12px}
.ml-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.ml-item{position:relative;display:flex;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.ml-item:hover{border-color:var(--t-media)}
.ml-open{flex:1;display:flex;gap:10px;align-items:center;padding:8px 34px 8px 8px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;min-width:0}
.ml-open img,.ml-ph{width:46px;height:64px;object-fit:cover;border-radius:6px;flex-shrink:0;background:var(--surface-2)}
.ml-t{display:flex;flex-direction:column;gap:2px;min-width:0}.ml-t b{font-size:.9rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ml-t small{color:var(--muted);font-size:.78rem}
.ml-st{font-style:normal;font-size:.74rem;font-weight:800;align-self:flex-start;padding:1px 8px;border-radius:999px}.ml-st.soon{background:var(--surface-2);color:var(--muted)}.ml-st.new{background:var(--good-soft);color:var(--good)}
.ml-x{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:.8rem}.ml-x:hover{background:var(--surface-2);color:var(--ink)}
.wo-go-row{display:flex;flex-wrap:wrap;gap:8px}
.wo-go{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:700;font-size:.86rem;text-decoration:none}
.wo-go img{width:30px!important;height:30px!important;border-radius:7px;margin:0!important}
.wo-go:hover{border-color:var(--t-media);background:color-mix(in srgb,var(--t-media) 8%,var(--surface))}
.wo-go.free{border-color:color-mix(in srgb,var(--good) 50%,var(--line))}.wo-go.free:hover{background:var(--good-soft)}
.wo-hero .wo-save{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.3)}
.md-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.md-groups button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;font:inherit;transition:border-color .15s,background .15s}
.md-groups button:hover{border-color:var(--t-media)}
.md-groups button[aria-pressed="true"]{border-color:var(--t-media);background:color-mix(in srgb,var(--t-media) 12%,var(--surface))}
.md-groups b{font-size:1.05rem}.md-groups small{color:var(--muted);font-size:.8rem;line-height:1.3}.mdg-ico{font-size:1.3rem}
@media (max-width:560px){.md-groups{gap:6px}.md-groups button{padding:10px;align-items:center;text-align:center}.md-groups small{display:none}}
.an-play{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:12px;align-items:start}
@media (max-width:820px){.an-play{grid-template-columns:1fr}}
.an-eps{list-style:none;margin:0;padding:0;max-height:420px;overflow:auto;display:flex;flex-direction:column;gap:4px}
.an-eps button{width:100%;text-align:left;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.84rem;cursor:pointer;line-height:1.3}
.an-eps button:hover{border-color:var(--t-media)}.an-eps button[aria-current="true"]{background:var(--t-media);border-color:var(--t-media);color:#fff;font-weight:700}
.mg-apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.mg-app{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none}
.mg-app:hover{border-color:var(--t-media)}.mg-app small{color:var(--muted);font-size:.8rem;line-height:1.35}
@media (max-width:560px){.md-groups b{font-size:.92rem}.mdg-ico{font-size:1.15rem}}
.mu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.mu-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;text-align:left}
.mu-tile:hover{border-color:var(--t-media);transform:translateY(-1px)}.mu-tile small{color:var(--muted);font-size:.8rem}.mu-ico{font-size:1.5rem}
.mu-live .mv-frame{margin-top:10px}
.br-wrap{display:grid;grid-template-columns:1fr minmax(240px,320px);gap:16px;align-items:center}
@media (max-width:720px){.br-wrap{grid-template-columns:1fr}}
.br-stage{position:relative;display:grid;place-items:center;min-height:300px}
.br-circle{width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 35% 35%,color-mix(in srgb,var(--t-media) 55%,#fff),var(--t-media));opacity:.75;transform:scale(1);transition:transform 1.2s ease-in-out,opacity 1.2s;box-shadow:0 0 0 18px color-mix(in srgb,var(--t-media) 12%,transparent)}
.br-circle.in{transform:scale(2.1);opacity:.95}.br-circle.hold{transform:scale(2.1);opacity:1}.br-circle.out{transform:scale(1);opacity:.7}.br-circle.hold2{transform:scale(1);opacity:.6}
.br-text{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none;color:var(--ink)}
.br-text b{font-size:1.1rem;background:color-mix(in srgb,var(--surface) 70%,transparent);padding:2px 10px;border-radius:999px}.br-text span{font-size:1.6rem;font-weight:700}
@media (prefers-reduced-motion:reduce){.br-circle{transition:opacity .4s!important}.br-circle.in,.br-circle.hold{transform:scale(1.15)}}
.fs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.fs-card{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface)}
.fs-card.on{border-color:var(--tool);background:color-mix(in srgb,var(--tool) 10%,var(--surface))}
.fs-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;padding:4px}
.fs-ico{font-size:1.8rem;line-height:1.1}.fs-btn small{color:var(--muted)}
.fs-card.on .fs-btn small{color:var(--tool);font-weight:700}
.sd-board{display:grid;grid-template-columns:repeat(9,1fr);width:min(100%,430px);aspect-ratio:1;border:2.5px solid var(--ink);border-radius:6px;overflow:hidden;background:var(--surface)}
.sd-c{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);color:var(--tool);font:700 clamp(1rem,4.6vw,1.45rem) var(--display);padding:0;cursor:pointer;position:relative}
.sd-c.giv{color:var(--ink)}.sd-c.br{border-right:2.5px solid var(--ink)}.sd-c.bb{border-bottom:2.5px solid var(--ink)}
.sd-c.peer{background:color-mix(in srgb,var(--tool) 8%,var(--surface))}.sd-c.same{background:color-mix(in srgb,var(--tool) 22%,var(--surface))}
.sd-c.sel{background:color-mix(in srgb,var(--tool) 35%,var(--surface))}.sd-c.bad{color:var(--bad);background:var(--bad-soft)}
.sd-m{position:absolute;inset:2px;display:grid;grid-template-columns:repeat(3,1fr);font:600 .55rem var(--body);color:var(--muted)}.sd-m i{font-style:normal;display:grid;place-items:center}
.sd-pad{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;width:min(100%,430px)}.sd-pad .btn{padding:8px 0;font-size:1.05rem}
.ms-scroll{max-width:100%;overflow:auto}
.ms-board{--ms:28px;display:grid;gap:2px;padding:6px;background:var(--surface-2);border-radius:8px;width:max-content}
.ms-c{width:var(--ms);height:var(--ms);border:0;border-radius:4px;background:color-mix(in srgb,var(--tool) 30%,var(--surface));font:800 .9rem var(--display);cursor:pointer;padding:0;color:var(--ink)}
.ms-c:hover:not(.open){filter:brightness(1.08)}
.ms-c.open{background:var(--surface);cursor:default}.ms-c.mine{background:var(--bad-soft);color:var(--bad)}.ms-c.hit{background:var(--bad);color:#fff}
.ms-c.n1{color:#2563eb}.ms-c.n2{color:#16a34a}.ms-c.n3{color:#dc2626}.ms-c.n4{color:#7c3aed}.ms-c.n5{color:#b45309}.ms-c.n6{color:#0891b2}.ms-c.n7{color:#111}.ms-c.n8{color:#6b7280}
.ms-c.open.n0,.ms-c.open:not([class*="n"]){color:transparent}
.wg-board{display:grid;gap:6px;width:min(100%,320px)}
.wg-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.wg-row.shake{animation:wgs .3s}@keyframes wgs{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.wg-t{aspect-ratio:1;display:grid;place-items:center;border:2px solid var(--line);border-radius:6px;font:800 1.6rem var(--display);text-transform:uppercase}
.wg-t.typed{border-color:var(--muted)}
.wg-t.hit,.wg-k.hit{background:#2E7D32;border-color:#2E7D32;color:#fff}
.wg-t.near,.wg-k.near{background:#C9A227;border-color:#C9A227;color:#fff}
.wg-t.miss,.wg-k.miss{background:#6B7280;border-color:#6B7280;color:#fff}
.wg-keys{display:flex;flex-direction:column;gap:6px;width:min(100%,500px)}
.wg-kr{display:flex;gap:5px;justify-content:center}
.wg-k{flex:1;max-width:44px;height:50px;border:0;border-radius:6px;background:var(--surface-2);color:var(--ink);font:800 .95rem var(--body);cursor:pointer;padding:0}
.wg-k.wide{max-width:70px;flex:1.5;font-size:.78rem}
@media (prefers-reduced-motion:reduce){.wg-row.shake{animation:none}}

.ad-slot{display:block;margin:22px 0 6px;padding:8px 0 4px;border-top:1px solid var(--line);min-height:110px;text-align:center}
.ad-slot .ad-label{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.rail-foot .ad-slot{margin:0 0 10px;min-height:250px;border:0;padding:0}
@media (max-width:1099px){.rail-foot .ad-slot{display:none!important}}
.site-links a{color:inherit}
.rail-foot .site-links{font-size:.75rem}

/* ===== new drawers: letters, pdf, money, study, toolbox extras ===== */
.check-row{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;cursor:pointer}
.check-row input{width:17px;height:17px;accent-color:var(--tool,var(--accent))}
.out.mono{font-family:var(--mono);font-size:.85rem;white-space:pre-wrap;word-break:break-all}
.linkish{background:none;border:0;padding:0;color:var(--tool,var(--accent));font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.lt-grid{align-items:start}
.lt-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lt-fields .field:has(textarea){grid-column:1/-1}
.lt-cv{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--tool) 12%,var(--surface));font-size:.88rem}
.lt-cv span{color:var(--muted)}
#ltOut{min-height:420px;font-size:.95rem;line-height:1.55}
@media (max-width:600px){.lt-fields{grid-template-columns:1fr}}
.pdf-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pdf-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.pl-n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--tool) 15%,var(--surface-2));font-weight:800;font-size:.8rem;flex-shrink:0}
.pl-img{width:44px;height:44px;object-fit:cover;border-radius:6px;flex-shrink:0}
.pl-name{flex:1;min-width:0;display:flex;flex-direction:column}
.pl-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-name small{color:var(--muted)}
.po-bar{align-items:flex-end;gap:8px}
.po-range{min-width:180px;flex:1}
.po-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.po-page{display:flex;flex-direction:column;gap:6px;padding:8px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);text-align:left;font:inherit;color:inherit}
.po-page.sel{border-color:var(--tool);box-shadow:0 0 0 3px color-mix(in srgb,var(--tool) 25%,transparent)}
button.po-page.p2{cursor:pointer}
button.po-page.p2:hover{border-color:var(--tool)}
.po-sel{display:block;width:100%;padding:0;border:0;background:var(--surface-2);border-radius:6px;cursor:pointer;aspect-ratio:3/4;overflow:hidden}
.po-page.p2 .po-thumb{background:var(--surface-2);border-radius:6px;aspect-ratio:3/4}
.po-thumb{display:grid;place-items:center;width:100%;height:100%;transition:transform .2s}
.po-thumb img{max-width:100%;max-height:100%;box-shadow:0 1px 4px rgba(0,0,0,.2);background:#fff}
.po-ph{font-size:1.6rem;font-weight:800;color:var(--muted)}
.po-meta{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;gap:4px}
.po-meta .btn.small{padding:2px 7px}
.mn-top{align-items:flex-end;gap:12px;flex-wrap:wrap}
.mn-cur{min-width:220px}
.mn-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:10px;background:color-mix(in srgb,var(--tool) 10%,var(--surface-2))}
.kpi span{font-size:.8rem;color:var(--muted)}
.kpi b{font-size:1.35rem;font-family:var(--display)}
.kpi small{font-size:.8rem;color:var(--muted)}
.kpi.neg b{color:var(--bad)}
.mn-chart svg{width:100%;height:auto;display:block}
.mn-chart .ax{font-size:10px;fill:var(--muted)}
.mn-chart .axl{stroke:var(--line)}
.legend{display:flex;gap:14px;font-size:.8rem;color:var(--muted);margin-top:4px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.mn-table summary{cursor:pointer;font-weight:700;padding:6px 0}
.mn-table>div{max-height:360px;overflow:auto}
.bg-list{display:flex;flex-direction:column;gap:6px}
.bg-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 100px 34px;gap:6px}
.bg-bar{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.meter{position:relative;height:10px;border-radius:6px;background:var(--surface-2);overflow:visible}
.meter i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--tool)}
.meter s{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.5}
.sl-t td{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.iv-items{display:flex;flex-direction:column;gap:6px}
.iv-row{display:grid;grid-template-columns:minmax(0,1fr) 80px 120px 120px 34px;gap:6px;align-items:center}
.iv-head{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.iv-amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.iv-total{font-size:.95rem}
@media (max-width:600px){.bg-row{grid-template-columns:minmax(0,1fr) 90px 34px}.bg-row select{grid-column:1/3}.iv-row{grid-template-columns:minmax(0,1fr) 60px 90px 30px}.iv-row .iv-amt{display:none}.iv-head span:nth-child(4){display:none}}
.fc-grid{align-items:start}
.fc-decks{display:flex;flex-direction:column;gap:6px}
.fc-deck{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;font:inherit;color:inherit}
.fc-deck small{color:var(--muted)}
.fc-deck.on{border-color:var(--tool);background:color-mix(in srgb,var(--tool) 8%,var(--surface))}
.fc-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:320px;overflow:auto}
.fc-cards li{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--surface-2)}
.fc-cards li>span:first-child{flex:1;min-width:0;display:flex;flex-direction:column}
.fc-cards small{color:var(--muted)}
.fc-mode{align-self:flex-start}
.fc-card{position:relative;display:block;width:100%;min-height:230px;border:0;padding:0;background:none;cursor:pointer;perspective:1200px;font:inherit;color:inherit}
.fc-face{position:absolute;inset:0;display:grid;place-items:center;padding:24px;border-radius:14px;backface-visibility:hidden;transition:transform .45s;font-size:1.25rem;text-align:center;box-shadow:var(--shadow);border:1px solid var(--line)}
.fc-face.front{background:color-mix(in srgb,var(--tool) 14%,var(--surface));font-family:var(--display);font-weight:800;font-size:1.6rem}
.fc-face.back{background:var(--surface);transform:rotateY(180deg)}
.fc-card.flipped .front{transform:rotateY(-180deg)}
.fc-card.flipped .back{transform:rotateY(0)}
@media (prefers-reduced-motion:reduce){.fc-face{transition:none}}
.fc-actions{justify-content:center}
.fc-done{display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px 10px;text-align:center}
.fc-done span{color:var(--muted)}
.fc-q{display:flex;flex-direction:column;gap:4px;padding:18px;border-radius:12px;background:color-mix(in srgb,var(--tool) 12%,var(--surface))}
.fc-q b{font-size:1.4rem;font-family:var(--display)}
.fc-opts{display:grid;gap:8px}
.fc-opt{padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);text-align:left;font:inherit;color:inherit;cursor:pointer}
.fc-opt:hover:not(:disabled){border-color:var(--tool)}
.fc-opt.good{border-color:var(--good);background:var(--good-soft)}
.fc-opt.bad{border-color:var(--bad);background:var(--bad-soft)}
.cite-out{padding:14px;border-radius:10px;background:var(--surface-2);min-height:60px;line-height:1.6;padding-left:2.2em;text-indent:-1.6em}
.cite-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.cite-list li{line-height:1.5}
.cite-list li>span{margin-right:6px}
.gp-rows{display:flex;flex-direction:column;gap:6px}
.gp-row{display:grid;grid-template-columns:minmax(0,1fr) 80px 130px 34px;gap:6px;align-items:center}
.gp-row select,.gp-row input{width:100%}
.gp-head{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.gp-big{display:flex;flex-direction:column;gap:4px;padding:18px;border-radius:12px;background:color-mix(in srgb,var(--tool) 12%,var(--surface))}
.gp-big b{font-size:2.6rem;font-family:var(--display);line-height:1}
.td-out del{background:var(--bad-soft);color:var(--bad);text-decoration:line-through;border-radius:3px}
.td-out ins{background:var(--good-soft);color:var(--good);text-decoration:none;border-radius:3px;font-weight:700}
.td-text{white-space:pre-wrap;line-height:1.6}
.tz-list{display:flex;flex-direction:column;gap:6px}
.tz-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2)}
.tz-row>span:first-child{flex:1;display:flex;flex-direction:column}
.tz-row small{color:var(--muted)}
.tz-time{font-family:var(--display);font-weight:800;font-size:1.25rem;font-variant-numeric:tabular-nums}
.tz-time.work{color:var(--good)}
.tz-time.night{color:var(--muted)}
.rp-n{flex-direction:row;align-items:center;gap:6px}
.rp-n input{width:64px}
.rp-big{font-family:var(--display);font-size:1.6rem;font-weight:800}
.rp-big.win{color:var(--tool,var(--accent))}
.rp-teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}

.pe-bar{position:sticky;top:64px;z-index:5;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:12px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(6px);border:1px solid var(--line);box-shadow:var(--shadow)}
.pe-row{gap:8px;align-items:center;flex-wrap:wrap}
.pe-tools button[aria-pressed="true"]{background:var(--tool);color:var(--on-tool)}
.pe-props{gap:8px;align-items:center;flex-wrap:wrap}
.pe-props select,.pe-props input[type=number]{width:auto;padding:5px 8px}
.pe-props input[type=number]{width:72px}
.pe-props input[type=color]{width:38px;height:32px;padding:2px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}
.pe-props [aria-pressed="true"]{background:var(--tool);color:var(--on-tool)}
.pe-bar .hint{margin:0}
.pe-pages{display:flex;flex-direction:column;align-items:center;gap:18px;padding:8px 0;overflow-x:auto}
.pe-pagebox{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.pe-pno{font-size:.78rem;color:var(--muted);font-weight:700}
.pe-page{position:relative;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.18);touch-action:none;user-select:none}
.pe-page canvas{display:block}
.pe-ov{position:absolute;inset:0}
.pe-line{position:absolute;border-radius:2px;cursor:text}
.pe-pages[data-tool="select"] .pe-line:hover{outline:1.5px dashed var(--tool);background:color-mix(in srgb,var(--tool) 10%,transparent)}
.pe-pages:not([data-tool="select"]) .pe-line{pointer-events:none}
.pe-pages[data-tool="text"] .pe-page{cursor:text}
.pe-pages[data-tool="white"] .pe-page,.pe-pages[data-tool="hl"] .pe-page{cursor:crosshair}
.pe-pages[data-tool="draw"] .pe-page{cursor:crosshair}
.pe-obj{position:absolute}
.pe-obj.pe-edited{outline:1px solid color-mix(in srgb,var(--tool) 45%,transparent)}
.pe-obj.pe-edited.deleted{outline:1px dashed var(--bad)}
.pe-obj.sel{outline:2px solid var(--tool)!important}
.pe-txt{outline:none;cursor:text;user-select:text;-webkit-user-select:text}
.pe-txt[contenteditable="true"],.pe-txt[contenteditable="plaintext-only"]{background:rgba(255,255,255,.6)}
.k-img img{width:100%;height:100%;display:block;pointer-events:none}
.k-ink svg{display:block;overflow:visible;pointer-events:none}
.pe-h{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--tool);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.3);display:none;touch-action:none}
.pe-obj.sel .pe-h{display:block}
.pe-move{left:-8px;top:-8px;cursor:move}
.pe-size{right:-8px;bottom:-8px;cursor:nwse-resize}
.pe-pages:not([data-tool="select"]) .pe-obj{pointer-events:none}
.pe-cancel{border-color:var(--ink);color:var(--ink)}
.pe-cancel:hover{background:var(--ink);color:var(--surface)}
.pe-save .btn{display:inline-flex;align-items:center;gap:6px}
.pe-save{position:sticky;bottom:10px;z-index:5;padding:10px;border-radius:12px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(6px);border:1px solid var(--line);box-shadow:var(--shadow);gap:8px;flex-wrap:wrap}
.rp-teams>div{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:8px;background:var(--surface)}

.keep-note{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--accent);font-size:.88rem}
.keep-note span{color:var(--muted)}
#cvDesign.keep-mode #dsDesignPane{opacity:.4;filter:grayscale(.7);pointer-events:none;user-select:none}
.is-disabled{opacity:.5;pointer-events:none}
.keep-empty{width:min(520px,100%);margin:40px auto;padding:28px;border-radius:12px;background:var(--surface);border:1.5px dashed var(--line);display:flex;flex-direction:column;gap:6px;text-align:center;color:var(--muted)}
.keep-empty b{color:var(--ink);font-size:1.05rem}
.scan-ov{position:fixed;inset:0;z-index:200;background:rgba(10,14,22,.55);backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px}
.scan-ov[hidden]{display:none}
body.scan-lock{overflow:hidden}
.scan-card{width:min(460px,100%);background:var(--surface);color:var(--ink);border-radius:16px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.3);display:flex;flex-direction:column;gap:16px}
.scan-top{display:flex;gap:16px;align-items:center}
.scan-top h3{margin:0 0 2px}
.scan-top p{margin:0}
.scan-ring{position:relative;width:64px;height:64px;flex-shrink:0}
.scan-ring svg{width:64px;height:64px;transform:rotate(-90deg)}
.scan-ring circle{fill:none;stroke-width:6}
.scan-ring .trk{stroke:var(--surface-2)}
.scan-ring .bar{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .35s ease}
.scan-ring span{position:absolute;inset:0;display:grid;place-items:center;font-weight:800;font-size:.9rem}
.scan-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.92rem}
.scan-steps li{display:flex;gap:10px;align-items:center;color:var(--muted)}
.scan-steps .st{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;box-sizing:border-box;position:relative}
.scan-steps li.on{color:var(--ink);font-weight:700}
.scan-steps li.on .st{border-color:var(--accent);border-top-color:transparent;animation:scanspin .7s linear infinite}
.scan-steps li.done{color:var(--ink)}
.scan-steps li.done .st{background:var(--good);border-color:var(--good)}
.scan-steps li.done .st::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.scan-steps li.skip{opacity:.55}
@keyframes scanspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.scan-steps li.on .st{animation:none}.scan-ring .bar{transition:none}}
.deep-scores{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.deep-score{flex:1;min-width:230px;display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:var(--surface-2)}
.deep-score>div{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.deep-score.after{background:var(--good-soft)}
.deep-arrow{font-size:1.6rem;color:var(--muted)}
.deep-t{width:100%;border-collapse:collapse;font-size:.88rem}
.deep-t th,.deep-t td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.deep-t thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.deep-t tbody th{font-weight:600;text-transform:none;letter-spacing:0;font-size:.88rem;color:var(--ink)}
.seg button:disabled{opacity:.4;cursor:not-allowed}
.deep-t td{white-space:nowrap}
.up{color:var(--good);font-size:.75rem}
.deep-diff{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface)}
.deep-diff summary{cursor:pointer;display:flex;gap:8px;align-items:center}
.deep-diff ol{margin:10px 0 0;padding-left:22px;display:flex;flex-direction:column;gap:10px;font-size:.9rem}
.deep-diff .was{color:var(--muted)}
.deep-diff .now{margin-top:2px}
.deep-diff del{background:var(--bad-soft);color:var(--bad);text-decoration:line-through;border-radius:3px;padding:0 2px}
.deep-diff ins{background:var(--good-soft);color:var(--good);text-decoration:none;border-radius:3px;padding:0 2px;font-weight:700}
.deep-docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.deep-docs figure{margin:0;display:flex;flex-direction:column;gap:6px}
.deep-docs figcaption{font-weight:700;font-size:.85rem}
@media (max-width:700px){.deep-docs{grid-template-columns:1fr}.deep-arrow{display:none}.deep-t td{white-space:normal}}

.cv-preview-wrap{background:var(--surface-2);border-radius:12px;padding:16px;min-width:0;overflow:hidden}
.cv-scale-box{overflow:hidden;margin:0 auto}
.cv-scale{transform-origin:top left}
#cvDoc .cv-page{box-shadow:0 6px 28px rgba(10,16,26,.18)}
.cv-pages{display:flex;flex-direction:column;gap:30px}
.cv-page{position:relative;overflow:hidden;background:#ffffff;flex-shrink:0}
.cv-page>.cvdoc{box-shadow:none!important}
.cv-pgno{position:absolute;right:18px;bottom:12px;font:600 19px/1 system-ui,sans-serif;color:#8a93a0;background:rgba(255,255,255,.88);padding:5px 10px;border-radius:8px;pointer-events:none}

/* Lishan chat */
.ls-launcher{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;align-items:center;gap:10px;padding:7px 18px 7px 7px;border:0;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:700;font-size:.93rem;cursor:pointer;box-shadow:0 10px 30px rgba(10,16,26,.28);transition:transform .15s,padding .15s}
.ls-launcher:hover{transform:translateY(-2px)}
.ls-face{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-family:var(--display);font-weight:800;font-size:1.15rem;position:relative}
.ls-face::after{content:"";position:absolute;right:1px;bottom:1px;width:10px;height:10px;border-radius:50%;background:#3FBF6E;border:2px solid var(--ink)}
.ls-x{display:none;width:20px;height:20px}
.ls-launcher.open{padding:12px}
.ls-launcher.open .ls-face,.ls-launcher.open .ls-label{display:none}
.ls-launcher.open .ls-x{display:block}
.ls-chat{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:70;width:min(390px,calc(100vw - 32px));height:min(600px,calc(100vh - 120px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(10,16,26,.3);overflow:hidden;animation:viewIn .2s ease both}
.ls-chat[hidden]{display:none}
.ls-head{display:flex;align-items:center;gap:10px;padding:12px 10px 12px 14px;background:var(--ink);color:var(--bg)}
.ls-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.ls-who b{font-family:var(--display);font-size:1.05rem}
.ls-who span{font-size:.75rem;opacity:.72}
.ls-hbtn{width:34px;height:34px;border-radius:9px;border:0;background:transparent;color:inherit;display:grid;place-items:center;cursor:pointer;opacity:.8}
.ls-hbtn:hover{background:color-mix(in srgb,var(--bg) 14%,transparent);opacity:1}
.ls-hbtn[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);opacity:1}
.ls-hbtn svg{width:18px;height:18px}
.ls-av{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-family:var(--display);font-weight:800;font-size:.85rem}
.ls-face,.ls-av{background:#FFF4CC url(data:image/webp;base64,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) center/84% no-repeat;box-shadow:inset 0 0 0 1.5px rgba(122,74,36,.25)}
.ls-av.big{width:38px;height:38px;font-size:1.1rem}
.ls-msgs{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:12px;background:var(--bg)}
.ls-msg{display:flex;gap:8px;align-items:flex-end;max-width:100%}
.ls-msg.me{justify-content:flex-end}
.ls-bub{padding:10px 13px;border-radius:16px;font-size:.92rem;line-height:1.5;max-width:82%;min-width:0;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:6px}
.ls-bub p{margin:0}
.ls-bub ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
.ls-bub code{background:var(--surface-2);padding:1px 5px;border-radius:4px}
.ls-code{margin:2px 0;background:#0F1620;color:#D7E3EE;border-radius:9px;padding:10px 12px;overflow-x:auto;font-size:.8rem;line-height:1.5;white-space:pre}
.ls-code code{background:none;padding:0;color:inherit}
.ls-msg.bot .ls-bub{background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:5px}
.ls-msg.me .ls-bub{background:var(--accent);color:var(--on-accent);border-bottom-right-radius:5px;display:block}
.ls-note{align-self:center;font-size:.75rem;color:var(--muted);background:var(--surface-2);padding:3px 10px;border-radius:999px}
.ls-chips{display:flex;flex-wrap:wrap;gap:6px;padding-left:36px}
.ls-chips button,.ls-actions button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:700;cursor:pointer}
.ls-chips button:hover{border-color:var(--accent)}
.ls-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.ls-actions button{border-color:var(--tool);color:var(--tool)}
.ls-cut{font-size:.78rem;color:var(--muted)}
.ls-typing{display:inline-flex;gap:4px;padding:4px 2px}
.ls-typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:lsDot 1s infinite ease-in-out}
.ls-typing i:nth-child(2){animation-delay:.15s}.ls-typing i:nth-child(3){animation-delay:.3s}
@keyframes lsDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.ls-compose{display:flex;align-items:flex-end;gap:8px;padding:10px 10px 6px;border-top:1px solid var(--line);background:var(--surface)}
.ls-compose textarea{min-height:42px;max-height:120px;resize:none;border-radius:12px;padding:10px 12px;font-size:.93rem}
.ls-send{flex:none;width:42px;height:42px;border-radius:12px;border:0;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;cursor:pointer}
.ls-send svg{width:19px;height:19px}
.ls-send .i-stop{display:none}
.ls-send.stop{background:var(--ink);color:var(--bg)}
.ls-send.stop .i-send{display:none}.ls-send.stop .i-stop{display:block}
.ls-fine{font-size:.7rem;color:var(--muted);text-align:center;padding:0 10px 8px;background:var(--surface);margin:0}
main{padding-bottom:110px}
@media (max-width:600px){
  .ls-label{display:none}
  .ls-launcher{padding:7px}
  .ls-chat{right:8px;left:8px;width:auto;bottom:calc(76px + env(safe-area-inset-bottom,0px));height:calc(100% - 96px - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px))}
}

/* code levels */
.level-tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 16px;line-height:1.2}
.lv-count{font-size:.72rem;font-weight:400;font-family:var(--mono)}
.lv-note{font-size:.8rem;color:var(--muted);padding:2px 10px 8px;margin:0}
@media (max-width:820px){.lv-note{display:none}}
.lesson-nav button span.lv-done{color:var(--good);font-weight:700}
.exercise{border:1.5px dashed var(--tool);border-radius:10px;padding:12px 14px;background:color-mix(in srgb,var(--tool) 6%,var(--surface));display:flex;flex-direction:column;gap:4px}
.lv-chip.lv-basic{background:var(--good-soft);color:var(--good)}
.lv-chip.lv-intermediate{background:var(--steel-soft);color:var(--steel)}
.lv-chip.lv-advanced{background:var(--warn-soft);color:var(--warn)}
.lv-chip.lv-professional{background:var(--bad-soft);color:var(--bad)}
.track-tabs button{font-size:.92rem;padding:7px 16px}

/* keep list rows at full height inside scrolling lists */
.issues > *,.memo-list > *,.ls-msgs > *,.memo-peek > *,.lesson-nav > *{flex-shrink:0}

/* tech guides */
.tg-form{display:flex;gap:8px;flex-wrap:wrap}
.tg-box{flex:1;min-width:220px}
.tg-box input{box-shadow:none}
.tg-sources{gap:14px}
.tg-group{display:flex;flex-direction:column;gap:8px;padding-top:4px}
.tg-group h4{font-size:1rem}
.tg-items{display:flex;flex-direction:column;gap:8px}
.tg-card{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);display:flex;flex-direction:column;gap:6px;min-width:0}
.tg-card p{font-size:.9rem;color:var(--ink)}
.tg-summary{background:color-mix(in srgb,var(--tool) 6%,var(--surface));border-color:color-mix(in srgb,var(--tool) 30%,var(--line))}
.tg-title{font-weight:700;color:var(--ink);text-decoration:none;font-size:.98rem;overflow-wrap:anywhere}
.tg-title:hover{color:var(--tool);text-decoration:underline}
.tg-meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:.78rem;color:var(--muted)}
.tg-meta a{color:var(--muted)}
.tg-tag{font-family:var(--mono);font-size:.72rem;background:var(--surface-2);padding:1px 6px;border-radius:4px}
.tg-answer{border-top:1px dashed var(--line);padding-top:6px}
.tg-answer summary{cursor:pointer;font-size:.84rem;font-weight:700;color:var(--tool)}
.tg-answer-body{display:flex;flex-direction:column;gap:8px;margin:8px 0;font-size:.9rem;max-width:80ch}
.tg-answer-body ul{margin:0;padding-left:20px}
.tg-answer-body blockquote{margin:0;padding-left:10px;border-left:3px solid var(--line);color:var(--muted)}
.tg-code{font-size:.78rem;max-height:240px}
.tg-loading{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.88rem;padding:6px 0}
.tg-web{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid var(--line)}
.tg-note{font-size:.9rem}
.tg-ex{cursor:pointer;border:1px solid var(--line);background:var(--surface)}
.tg-ex:hover{border-color:var(--tool);color:var(--tool)}
@media (min-width:981px){.tool-grid > :last-child:nth-child(3n+1){grid-column:1/-1}}
.cab-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.cab-drawer{min-height:78px;padding:9px 8px}
.cab-drawer small{white-space:normal;font-size:.68rem;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:520px){.cab-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* CV details editor */
.ds-mode{align-self:flex-start}
.design-layout.editing{grid-template-columns:minmax(0,440px) minmax(0,1fr)}
@media (max-width:900px){.design-layout.editing{grid-template-columns:1fr}}
@media (min-width:901px){.design-layout .cv-preview-wrap{position:sticky;top:76px}}
.ed-pane{gap:12px}
.ed-sec{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.ed-label{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ed-shead{display:flex;gap:8px;align-items:center}
.ed-shead .ed-in{flex:1}
.ed-in{padding:7px 10px!important;font-size:.9rem!important;border-radius:8px!important}
.ed-in.ed-name{font-family:var(--display);font-weight:700;font-size:1.05rem!important}
.ed-in.ed-stitle{font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.82rem!important;color:var(--tool)}
.ed-ta{min-height:38px;resize:none;line-height:1.45;overflow:hidden}
.ed-row{display:flex;gap:6px;align-items:flex-start}
.ed-row .ed-in{flex:1;min-width:0}
.ed-dot{color:var(--tool);padding-top:8px;font-weight:700}
.ed-2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:6px}
.ed-blk{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}
.ed-bhead{display:flex;justify-content:space-between;align-items:center}
.ed-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.ed-bctl{display:flex;gap:2px;flex:none}
.ed-ib{width:28px;height:28px;border-radius:7px;border:1px solid transparent;background:none;color:var(--muted);cursor:pointer;font-size:.85rem;display:grid;place-items:center}
.ed-ib:hover{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
.ed-ib.del:hover{color:var(--bad);border-color:var(--bad-soft);background:var(--bad-soft)}
.ed-add{align-self:flex-start}
.ed-adds{gap:4px}
.ed-newsec select{width:auto;flex:1}

/* smart scan */
.smart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
@media (max-width:1100px){.smart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sm-raw{grid-column:1/-1}}
@media (max-width:640px){.smart-grid{grid-template-columns:1fr}}
.sm-card,.sm-raw{display:flex;flex-direction:column;gap:10px;min-width:0}
.sm-head{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:34px}
.sm-head select{width:auto;padding:5px 8px;font-size:.85rem}
.sm-prev{background:var(--surface-2);border-radius:10px;overflow:hidden;border:1px solid var(--line);position:relative}
.sm-scale{transform-origin:top left}
.sm-scale .cvdoc{box-shadow:none}
.sm-scale .cv-pages{gap:26px;background:var(--surface-2)}
.sm-scale .cv-page{box-shadow:0 2px 10px rgba(10,16,26,.12)}
#smRaw{min-height:520px;font-size:.8rem;line-height:1.5;resize:vertical}
.cvdoc .cv-kv{margin-top:9px}
.cvdoc .cv-blocks > .cv-kv:first-child{margin-top:0}
.cvdoc .kv-l{display:block;font-size:11.5px;font-weight:700;color:var(--ink);margin-bottom:6px}
.cvdoc .kv-b{color:var(--ink)}
.t-creative .cv-side .kv-l,.t-creative .cv-side .kv-b{color:#ffffff}

/* tech guide reading layout */
.tl-title{font-size:1.4rem}
.tl-intro{font-size:1.04rem;line-height:1.65;max-width:70ch}
.tl-block h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--tool);margin-bottom:8px}
.tl-points{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;max-width:72ch;line-height:1.6}
.tl-points li::marker{color:var(--tool)}
.tl-example,.tl-quiz{border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.tl-example{background:color-mix(in srgb,var(--tool) 8%,var(--surface));border-left:4px solid var(--tool)}
.tl-ex-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--tool)}
.tl-terms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
@media (max-width:760px){.tl-terms{grid-template-columns:1fr}}
.tl-terms div{background:var(--surface-2);border-radius:10px;padding:10px 12px}
.tl-terms dt{font-weight:700;margin-bottom:2px}
.tl-terms dd{margin:0;font-size:.9rem;color:var(--muted)}
.tl-quiz{border:1.5px dashed var(--tool)}
.tl-q{font-weight:700}
.tl-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (max-width:600px){.tl-opts{grid-template-columns:1fr}}
.tl-opts button{text-align:left;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;color:var(--ink)}
.tl-opts button:hover:not(:disabled){border-color:var(--tool)}
.tl-opts button.right{background:var(--good-soft);border-color:var(--good);color:var(--good);font-weight:700}
.tl-opts button.wrong{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}
.tl-opts button:disabled{cursor:default}
.tl-why{font-size:.92rem}
.tl-related{display:flex;flex-direction:column;gap:8px;padding-top:6px;border-top:1px solid var(--line)}
.tl-related h4{font-size:1rem}
#tgRelated{display:flex;flex-direction:column;gap:8px}
.tl-weblinks{gap:6px}
.tg-src{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.tg-ans-meta{font-size:.8rem;font-weight:700;color:var(--tool)}
.tg-answer-body .btn{align-self:flex-start}

/* ================= v35 visual refresh ================= */
:root{--bg:#F5F6F8;--surface:#FFFFFF;--surface-2:#EEF0F3;--ink:#161A22;--muted:#5D6676;--line:#E2E5EA;--accent:#C97A00;--accent-strong:#9A5B00;--accent-soft:#FCF1DC;--on-accent:#FFFFFF;
  --display:"Familjen Grotesk","Segoe UI",system-ui,sans-serif;--shadow:0 1px 2px rgba(22,26,34,.05);--lift:0 12px 32px -12px rgba(22,26,34,.22);--r:10px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#14181E;--surface:#1B2028;--surface-2:#232A33;--ink:#E8ECF2;--muted:#9AA4B3;--line:#2C343F;--accent:#F2A93B;--accent-strong:#F7C06E;--accent-soft:#3A2C14;--on-accent:#1B1406;--shadow:0 1px 2px rgba(0,0,0,.25);--lift:0 14px 36px -12px rgba(0,0,0,.6)}}
:root[data-theme="dark"]{--bg:#14181E;--surface:#1B2028;--surface-2:#232A33;--ink:#E8ECF2;--muted:#9AA4B3;--line:#2C343F;--accent:#F2A93B;--accent-strong:#F7C06E;--accent-soft:#3A2C14;--on-accent:#1B1406;--shadow:0 1px 2px rgba(0,0,0,.25);--lift:0 14px 36px -12px rgba(0,0,0,.6)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{letter-spacing:-.015em;font-weight:700}
kbd{font-family:var(--body);font-size:.72rem;font-weight:700;padding:1px 7px;border-radius:6px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* rail */
.rail{background:var(--bg);border-right-color:var(--line);padding:22px 12px}
.brand-mark{background:var(--accent);color:var(--on-accent);border-radius:11px}
.brand-sub{text-transform:none;letter-spacing:0;font-size:.8rem}
.nav-label{text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:700;color:var(--muted);padding:14px 10px 4px}
.nav button{padding:7px 10px 7px 8px;border-radius:9px;font-size:.93rem;color:var(--ink)}
.nav button:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.nav button .drawer-tag{width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--tool)}
.nav button .drawer-tag svg{width:18px;height:18px}
.nav button[aria-current="page"]{background:var(--surface);box-shadow:var(--shadow),inset 0 0 0 1px var(--line);font-weight:700}
.nav button[aria-current="page"] .drawer-tag{background:color-mix(in srgb,var(--tool) 14%,var(--surface));color:var(--tool)}
.nav button[aria-current="page"]::after{right:auto;left:-12px;top:8px;bottom:8px;height:auto;width:3px;margin:0;border-radius:0 3px 3px 0}
/* topbar & view heads */
.topbar{background:color-mix(in srgb,var(--bg) 90%,transparent);border-bottom-color:transparent;box-shadow:0 1px 0 var(--line)}
.view-head{border-bottom:0;padding-bottom:6px;gap:16px;align-items:flex-start}
.view-head .vh-icon{margin-top:4px}
.eyebrow,.view .eyebrow,.tip-card .eyebrow{font-family:var(--body);text-transform:none;letter-spacing:0;font-size:.86rem;font-weight:700}
.view-head .eyebrow{display:none}
.view-head h2{font-size:clamp(1.7rem,3.2vw,2.3rem);letter-spacing:-.025em}
.vh-icon{width:48px;height:48px;border-radius:13px;background:color-mix(in srgb,var(--tool) 13%,var(--surface));color:var(--tool);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tool) 22%,transparent)}
.vh-icon svg{width:24px;height:24px}
.view-head .lede{font-size:1rem;line-height:1.6;max-width:64ch}
/* surfaces */
.panel{box-shadow:var(--shadow);border-radius:16px}
.seg{background:var(--surface-2);border-radius:11px;padding:4px}
.seg button{border-radius:8px;padding:7px 13px;font-weight:700}
.seg button[aria-selected="true"],.view .seg button[aria-selected="true"]{box-shadow:0 1px 2px rgba(22,26,34,.12),0 0 0 1px var(--line)}
.btn{border-radius:10px;font-weight:700}
.btn.primary{box-shadow:0 1px 0 rgba(0,0,0,.08)}
.chip-btn{font-weight:700}
input,select,textarea{border-radius:10px}
/* home */
.home-hero{align-items:start;padding-top:18px}
.greet{font-family:var(--body);font-size:1rem;letter-spacing:0;text-transform:none;font-weight:700;color:var(--muted)}
.home-hero h1,.home-hero .h1like{font-size:clamp(2.6rem,6.2vw,4.6rem);line-height:.98;letter-spacing:-.045em;font-weight:700;max-width:12ch}
.home-hero .lede{font-size:1.08rem;max-width:52ch}
.searchbox input{box-shadow:var(--lift);border-radius:14px}
.qa{padding:7px 14px;font-weight:700;background:transparent}
.qa i{display:none}
.qa:hover{background:var(--surface);border-color:var(--ink)}
.cabinet-art{background:var(--surface);border-radius:22px;box-shadow:var(--lift);padding:18px}
.cabinet-art header b{font-size:1rem}
.cab-drawer{background:var(--bg);border-color:var(--line);border-radius:12px}
.cab-drawer .lbl{background:transparent!important;color:var(--tool)!important;width:auto!important;height:auto!important;padding:0!important}
.cab-drawer .lbl svg{width:20px;height:20px}
.cab-drawer .pull{height:3px;width:28%;background:color-mix(in srgb,var(--ink) 14%,transparent)}
.cab-drawer:hover{transform:translateY(-2px);background:var(--surface);border-color:color-mix(in srgb,var(--tool) 50%,var(--line));box-shadow:var(--lift)}
.cab-drawer:hover .pull{background:var(--tool);width:40%}
@media (prefers-reduced-motion:reduce){.cab-drawer:hover{transform:none}.view:not([hidden]){animation:none}}
.today-strip{border-radius:18px;box-shadow:var(--shadow)}
.today-strip .lab{text-transform:none;letter-spacing:0;font-size:.84rem;font-weight:700}
.today-strip .val{letter-spacing:-.02em}
.sec-title h2{font-size:1.4rem;letter-spacing:-.02em}
.recent-item span{background:color-mix(in srgb,var(--tool) 14%,var(--surface));color:var(--tool)}
/* tool directory */
#homeTools.tool-grid{display:flex;flex-direction:column;gap:26px}
.tg h3{font-size:.95rem;color:var(--muted);font-family:var(--body);letter-spacing:0;margin:0 0 8px 2px}
.tg-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
@media (max-width:1100px){.tg-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.tg-list{grid-template-columns:1fr}}
.tg-list .tc-wrap{background:var(--surface);box-shadow:1px 0 0 var(--line),0 1px 0 var(--line)}
.tool-row{flex:1;display:flex;gap:14px;align-items:flex-start;padding:16px 50px 16px 16px;border:0;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;min-width:0;transition:background .15s}
.tool-row:hover{background:color-mix(in srgb,var(--tool) 6%,var(--surface))}
.tr-ic{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--tool) 12%,var(--surface));color:var(--tool)}
.tr-ic svg{width:20px;height:20px}
.tr-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.tr-t b{font-family:var(--display);font-size:1.05rem;letter-spacing:-.01em}
.tr-t small{color:var(--muted);font-size:.86rem;line-height:1.45}
.tg-list .tc-pin{top:14px;bottom:auto;right:12px;width:30px;height:30px;border-color:transparent;background:transparent;opacity:.55}
.tg-list .tc-wrap:hover .tc-pin,.tg-list .tc-pin[aria-pressed="true"],.tg-list .tc-pin:focus-visible{opacity:1}
.tg-list .tc-pin:hover{border-color:var(--line);background:var(--surface)}
@media (hover:none){.tg-list .tc-pin{opacity:1}}
.cont-card,.ml-item,.recent-item{box-shadow:var(--shadow)}
.fd-art,.fd-big{background:hsl(var(--h,25) 55% 92%)!important}
:root[data-theme="dark"] .fd-art,:root[data-theme="dark"] .fd-big{background:hsl(var(--h,25) 22% 22%)!important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fd-art,:root:not([data-theme="light"]) .fd-big{background:hsl(var(--h,25) 22% 22%)!important}}
.fd-card:hover .fd-art{outline:2px solid var(--tool);outline-offset:2px}
.fd-cuisine{max-width:220px}

.home-foot{color:var(--muted)}
.tool-links{border-top-color:var(--line)}

/* ================= v36 cinematic theme + home showcase ================= */
:root{--accent:#D62839;--accent-strong:#A61B2B;--accent-soft:#FBE3E6;--on-accent:#FFFFFF}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#121419;--surface:#1A1D24;--surface-2:#22262F;--ink:#ECEEF3;--muted:#9BA1AE;--line:#2A2E38;--accent:#E5383B;--accent-strong:#FF7477;--accent-soft:#3A1619;--on-accent:#FFFFFF}}
:root[data-theme="dark"]{--bg:#121419;--surface:#1A1D24;--surface-2:#22262F;--ink:#ECEEF3;--muted:#9BA1AE;--line:#2A2E38;--accent:#E5383B;--accent-strong:#FF7477;--accent-soft:#3A1619;--on-accent:#FFFFFF}
[data-view="home"]{display:flex;flex-direction:column;gap:30px}
[data-view="home"][hidden]{display:none}
/* hero */
.showcase{position:relative;margin:-26px calc(-1*clamp(16px,4vw,44px)) 0;height:clamp(420px,62vh,600px);overflow:hidden;background:#0B0C10;color:#F3F4F7;isolation:isolate}
.sc-slides{position:absolute;inset:0}
.sc-slide{position:absolute;inset:0;display:flex;align-items:flex-end;padding:0 clamp(16px,4vw,44px) clamp(96px,14vh,130px);opacity:0;visibility:hidden;transition:opacity .7s ease,visibility .7s}
.sc-slide.on{opacity:1;visibility:visible}
.sc-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;z-index:-2;transform:scale(1.04);transition:transform 7s ease-out}
.sc-slide.on .sc-bg{transform:scale(1)}
.sc-slide::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,11,15,.94) 0%,rgba(10,11,15,.72) 38%,rgba(10,11,15,.15) 72%),linear-gradient(0deg,var(--bg) 0%,rgba(10,11,15,0) 38%)}
.sc-slide.feat{background:radial-gradient(120% 90% at 85% 30%,color-mix(in srgb,var(--tint) 55%,#0B0C10) 0%,#0B0C10 62%)}
.sc-slide.feat::before{background:linear-gradient(0deg,var(--bg) 0%,rgba(10,11,15,0) 35%)}
.sc-art{position:absolute;right:clamp(16px,8vw,120px);top:50%;transform:translateY(-58%);font-size:clamp(7rem,18vw,15rem);line-height:1;filter:drop-shadow(0 30px 60px rgba(0,0,0,.5));z-index:-1}
.sc-copy{max-width:560px;display:flex;flex-direction:column;gap:12px}
.sc-k{font-weight:700;font-size:.92rem;color:#FF8A8C}
.sc-copy h2{font-size:clamp(2.2rem,5vw,3.8rem);line-height:1;letter-spacing:-.035em;color:#fff;text-wrap:balance}
.sc-copy p{margin:0;color:rgba(243,244,247,.82);font-size:1.02rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sc-meta{display:flex;align-items:center;gap:10px;font-weight:700;color:#fff!important}
.sc-meta i{display:inline-block;width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.5)}
.sc-star{color:#FFD166}
.sc-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.btn.sc-primary{background:var(--accent);border-color:var(--accent);color:#fff;padding:11px 20px;font-size:.98rem;border-radius:11px}
.btn.sc-primary:hover{background:color-mix(in srgb,var(--accent) 85%,#fff)}
.btn.sc-ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff;padding:11px 18px;font-size:.98rem;border-radius:11px;backdrop-filter:blur(6px)}
.btn.sc-ghost:hover{background:rgba(255,255,255,.2)}
.sc-ctrl{position:absolute;right:clamp(16px,4vw,44px);bottom:clamp(96px,14vh,130px);display:flex;align-items:center;gap:10px;z-index:2}
.sc-nav{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(10,11,15,.4);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;backdrop-filter:blur(6px)}
.sc-nav:hover{background:rgba(255,255,255,.18)}
.sc-dots{display:flex;gap:6px}
.sc-dots button{width:8px;height:8px;padding:0;border-radius:999px;border:0;background:rgba(255,255,255,.35);cursor:pointer;transition:width .3s,background .3s}
.sc-dots button[aria-current="true"]{width:26px;background:var(--accent)}
@media (max-width:700px){.showcase{height:520px}.sc-art{top:26%;right:50%;transform:translate(50%,-50%);font-size:7rem}.sc-slide{padding-bottom:110px}.sc-ctrl{bottom:auto;top:16px}.sc-copy h2{font-size:2rem}}
@media (prefers-reduced-motion:reduce){.sc-slide,.sc-bg{transition:none}.sc-bg{transform:none}}
/* shelves */
.shelf{display:flex;flex-direction:column;gap:12px;min-width:0}
.shelf[hidden]{display:none}
.sh-overlap{margin-top:calc(-1*clamp(84px,12vh,112px));position:relative;z-index:3}
.sh-overlap .sh-head h2{color:#fff}.sh-overlap .sh-more{color:rgba(255,255,255,.72)}.sh-overlap .sh-more:hover{color:#fff}
:root[data-theme="light"] .sc-slide::before{background:linear-gradient(90deg,rgba(10,11,15,.94) 0%,rgba(10,11,15,.72) 38%,rgba(10,11,15,.15) 72%),linear-gradient(0deg,#0B0C10 0%,rgba(10,11,15,0) 38%)}
:root[data-theme="light"] .sc-slide.feat::before{background:linear-gradient(0deg,#0B0C10 0%,rgba(10,11,15,0) 35%)}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]) .sc-slide::before{background:linear-gradient(90deg,rgba(10,11,15,.94) 0%,rgba(10,11,15,.72) 38%,rgba(10,11,15,.15) 72%),linear-gradient(0deg,#0B0C10 0%,rgba(10,11,15,0) 38%)}:root:not([data-theme="dark"]) .sc-slide.feat::before{background:linear-gradient(0deg,#0B0C10 0%,rgba(10,11,15,0) 35%)}}
.sh-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.sh-head h2{font-size:1.3rem;letter-spacing:-.02em}
.sh-more{border:0;background:none;color:var(--muted);font:inherit;font-size:.88rem;font-weight:700;cursor:pointer;padding:4px 0}
.sh-more:hover{color:var(--accent-strong)}
.sh-wrap{position:relative}
.sh-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:2px 2px 8px;scrollbar-width:none}
.sh-track::-webkit-scrollbar{display:none}
.sh-arrow{position:absolute;top:calc(50% - 30px);z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--ink);font-size:1.4rem;line-height:1;cursor:pointer;box-shadow:var(--lift);opacity:0;transition:opacity .2s;backdrop-filter:blur(6px)}
.sh-arrow.prev{left:-12px}.sh-arrow.next{right:-12px}
.sh-wrap:hover .sh-arrow,.sh-arrow:focus-visible{opacity:1}
@media (hover:none){.sh-arrow{display:none}}
.sh-card{flex:none;scroll-snap-align:start;display:flex;flex-direction:column;gap:6px;padding:0;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.sh-card b{font-size:.92rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sh-card small{color:var(--muted);font-size:.8rem}
.sh-img{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--surface-2)}
.sh-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.sh-card:hover .sh-img img{transform:scale(1.05)}
.sh-card:focus-visible{outline:none}.sh-card:focus-visible .sh-img{outline:2px solid var(--accent);outline-offset:2px}
.sh-img em{position:absolute;left:8px;top:8px;font-style:normal;font-size:.74rem;font-weight:800;padding:2px 7px;border-radius:999px;background:rgba(0,0,0,.7);color:#FFD166}
.poster{width:clamp(130px,14vw,170px)}.poster .sh-img{aspect-ratio:2/3}
.wide{width:clamp(220px,24vw,290px)}.wide .sh-img{aspect-ratio:16/9}
.sh-play{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:.8rem}
.dish{width:clamp(150px,16vw,190px)}.dish .sh-img{aspect-ratio:4/3;display:grid;place-items:center;background:hsl(var(--h) 55% 92%)}
:root[data-theme="dark"] .dish .sh-img{background:hsl(var(--h) 22% 22%)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .dish .sh-img{background:hsl(var(--h) 22% 22%)}}
.sh-emoji{font-size:3.2rem;transition:transform .35s ease}.dish:hover .sh-emoji{transform:scale(1.1) rotate(-4deg)}
.tool{width:200px;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);gap:4px}
.tool:hover{border-color:color-mix(in srgb,var(--tool) 55%,var(--line))}
.sh-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;margin-bottom:8px;background:color-mix(in srgb,var(--tool) 14%,var(--surface));color:var(--tool)}.sh-ic svg{width:21px;height:21px}
@media (prefers-reduced-motion:reduce){.sh-img img,.sh-emoji{transition:none}.sh-card:hover .sh-img img{transform:none}}
/* finder */
.finder{display:flex;flex-direction:column;gap:14px;padding:22px;border-radius:20px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.finder-h{font-size:clamp(1.35rem,2.6vw,1.75rem);letter-spacing:-.025em;font-weight:700}
.finder-h span{color:var(--muted)}
.finder .searchbox input{box-shadow:none;background:var(--bg)}
.finder .qa:hover{border-color:var(--accent)}

/* v37 tool directory: separate even tiles */
.tg h3{margin:0 0 10px 2px}
.tg-list{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))!important;gap:12px!important;background:none!important;border:0!important;border-radius:0!important;overflow:visible!important}
.tg-list .tc-wrap{background:none!important;box-shadow:none!important;display:flex}
.tg-list .tool-row{height:100%;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:16px 48px 16px 16px;transition:border-color .2s,background .2s,transform .2s}
.tg-list .tool-row:hover{border-color:color-mix(in srgb,var(--tool) 55%,var(--line));background:color-mix(in srgb,var(--tool) 6%,var(--surface));transform:translateY(-2px)}
.tg-list .tool-row:focus-visible{outline:2px solid var(--tool);outline-offset:2px}
.tg-list .tc-pin{top:12px;right:10px}
.tr-t small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (prefers-reduced-motion:reduce){.tg-list .tool-row:hover{transform:none}}

/* v38 brand */
.brand{gap:11px;align-items:center}
.brand-mark{width:42px;height:42px;background:none!important;border-radius:0;box-shadow:none;flex:none}
.brand-mark svg{width:42px;height:42px;display:block}
.brand-name{font-size:1.18rem;letter-spacing:-.02em;font-weight:700}
.brand-name span{color:#1EA0FF}
:root[data-theme="dark"] .brand-name span{color:#3DB6FF}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand-name span{color:#3DB6FF}}
.brand-sub{font-size:.74rem;line-height:1.3;white-space:normal;display:block;max-width:170px}

.fd-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fd-credit{display:block;color:var(--muted);font-size:.76rem;line-height:1.4}.fd-credit a{color:inherit}
.dish .sh-img img{position:absolute;inset:0}

/* v40 hero: clean crossfade, no ghosting */
.sc-slide{transition:opacity .6s ease,visibility 0s linear .6s}
.sc-slide.on{transition:opacity .6s ease,visibility 0s}
.sc-slide .sc-copy{opacity:0;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease}
.sc-slide.on .sc-copy{opacity:1;transform:none;transition:opacity .45s ease .35s,transform .45s ease .35s}
.sc-slide:not(.on) .sc-art{opacity:0;transition:opacity .25s}
.sc-slide.on .sc-art{opacity:1;transition:opacity .5s ease .2s}
.showcase.loading .sc-slides::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.05) 50%,transparent 70%) 0 0/200% 100%;animation:scShimmer 1.4s linear infinite}
@keyframes scShimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.sc-slide,.sc-slide.on,.sc-slide .sc-copy,.sc-slide.on .sc-copy,.sc-art{transition:none!important}.showcase.loading .sc-slides::after{animation:none}}

/* v41 feature slides with photos */
.sc-slide.feat.has-bg{background:none}
.sc-slide.feat.has-bg .sc-art{display:none}
.sc-slide.feat.has-bg::before{background:linear-gradient(90deg,rgba(10,11,15,.94) 0%,rgba(10,11,15,.7) 40%,rgba(10,11,15,.1) 75%),linear-gradient(0deg,var(--bg) 0%,rgba(10,11,15,0) 38%)}
:root[data-theme="light"] .sc-slide.feat.has-bg::before{background:linear-gradient(90deg,rgba(10,11,15,.94) 0%,rgba(10,11,15,.7) 40%,rgba(10,11,15,.1) 75%),linear-gradient(0deg,#0B0C10 0%,rgba(10,11,15,0) 38%)}
.sc-cap{font-size:.84rem;color:rgba(243,244,247,.65);margin-top:2px}
.sc-credit{position:absolute;right:clamp(16px,4vw,44px);top:14px;font-size:.68rem;color:rgba(255,255,255,.55);max-width:46%;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.6)}

.sc-bg.sc-bg-in{opacity:0;transition:opacity 1.1s ease}
.sc-bg.sc-bg-in.show{opacity:1}
@media (prefers-reduced-motion:reduce){.sc-bg.sc-bg-in{transition:none}}

/* ===== Fitness ===== */
.ft-opts{gap:16px}.ft-sw{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem;cursor:pointer}
.ft-wos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.ft-wo{display:flex;gap:14px;align-items:flex-start;text-align:left;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s,border-color .15s}
.ft-wo:hover{transform:translateY(-2px);border-color:var(--t-fitness)}
.ft-wo-ic{font-size:1.8rem;width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--t-fitness) 16%,transparent)}
.ft-wo-t{display:flex;flex-direction:column;gap:3px;min-width:0}.ft-wo-t b{font-size:1.02rem}.ft-wo-t small{color:var(--t-fitness);font-weight:700}.ft-wo-t span{color:var(--muted);font-size:.88rem;line-height:1.4}
.ft-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 14px;padding-left:22px;margin:0}
.ft-list li{padding:4px 0}.ft-list li span{margin-right:6px}.ft-list li small{display:block;color:var(--muted)}
.ft-exs{display:grid;gap:8px}
.ft-ex{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:0 14px}
.ft-ex summary{display:flex;gap:12px;align-items:center;padding:12px 0;cursor:pointer;list-style:none}.ft-ex summary::-webkit-details-marker{display:none}
.ft-ex summary span:last-child{display:flex;flex-direction:column}.ft-ex summary small{color:var(--muted)}
.ft-ex-e{font-size:1.5rem;width:40px;text-align:center}
.ft-ex[open]{padding-bottom:14px}.ft-ex ol{margin:0 0 6px;padding-left:22px;line-height:1.55}
.ft-tform{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.ft-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.ft-res{padding:14px;border-radius:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:2px}.ft-res.wide{grid-column:1/-1}
.ft-res span{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.ft-res b{font-size:1.6rem;font-family:var(--display,inherit)}.ft-res em{font-style:normal;color:var(--muted);font-size:.85rem}
.ft-tag{align-self:flex-start;padding:2px 8px;border-radius:999px;font-weight:700;font-size:.78rem!important}
.ft-tag.ok{background:color-mix(in srgb,#2f9e44 22%,transparent);color:var(--ink)!important}.ft-tag.low,.ft-tag.mid{background:color-mix(in srgb,#f59f00 25%,transparent);color:var(--ink)!important}.ft-tag.high{background:color-mix(in srgb,#e03131 22%,transparent);color:var(--ink)!important}
.ft-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ft-stats div{padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column}
.ft-stats span{font-size:.78rem;font-weight:700;text-transform:uppercase;color:var(--muted)}.ft-stats b{font-size:1.5rem}
.ft-bars{display:flex;gap:8px;align-items:flex-end;height:140px}.ft-bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.ft-bar i{display:block;width:100%;min-height:3px;border-radius:6px 6px 2px 2px;background:var(--t-fitness)}.ft-bar small{color:var(--muted);font-size:.72rem}
.ft-hist{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:320px;overflow:auto}
.ft-hist li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2)}.ft-hist li small{color:var(--muted);margin-left:auto}.ft-hist li b{font-weight:700}
#ftWList li b{margin-left:auto}
.ft-wchart svg{width:100%;height:90px;display:block}.ft-wchart small{color:var(--muted)}
.ft-player{--tool:var(--t-fitness);position:fixed;inset:0;z-index:70;background:rgba(6,10,16,.82);backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px;overflow:auto}
body.ft-lock{overflow:hidden}
.ft-pl-in{width:min(560px,100%);background:var(--surface);color:var(--ink);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:12px;border-top:6px solid var(--t-fitness)}
.ft-pl-in.rest,.ft-pl-in.ready{border-top-color:#4dabf7}
.ft-prog{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.ft-prog i{display:block;height:100%;background:var(--t-fitness);transition:width .3s}
.ft-stage{position:relative;width:min(240px,62vw);aspect-ratio:1;margin:0 auto}
.ft-ring{width:100%;height:100%;transform:rotate(-90deg)}.ft-ring circle{fill:none;stroke-width:12}.ft-ring .bg{stroke:var(--surface-2)}.ft-ring .fg{stroke:var(--t-fitness);stroke-linecap:round;transition:stroke-dashoffset 1s linear}
.ft-pl-in.rest .ft-ring .fg,.ft-pl-in.ready .ft-ring .fg{stroke:#4dabf7}
.ft-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ft-kind{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--muted)}.ft-time{font-size:3.4rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.ft-now{display:flex;gap:14px;align-items:flex-start}.ft-emoji{font-size:2.4rem}.ft-now h3{margin:0 0 4px}.ft-now p{margin:0 0 4px;color:var(--muted);line-height:1.45}
.ft-ctrl{justify-content:center}.ft-pp{min-width:140px}
.ft-pl-in.done{align-items:center;text-align:center}.ft-done{font-size:3.5rem}
@media (max-width:560px){.ft-stats b{font-size:1.2rem}.ft-time{font-size:2.8rem}}
:root{--ga-home:#FF6B7A;--gb-home:#C81E33;--ga-cv:#FFC043;--gb-cv:#E8590C;--ga-letters:#FF8787;--gb-letters:#D6336C;--ga-editor:#4DABF7;--gb-editor:#1864AB;--ga-novel:#9775FA;--gb-novel:#5F3DC4;--ga-memos:#FCC419;--gb-memos:#E67700;--ga-photo:#E599F7;--gb-photo:#9C36B5;--ga-code:#748FFC;--gb-code:#364FC7;--ga-tech:#38D9A9;--gb-tech:#087F5B;--ga-study:#3BC9DB;--gb-study:#0B7285;--ga-food:#FFA94D;--gb-food:#D9480F;--ga-fitness:#8CE99A;--gb-fitness:#2B8A3E;--ga-games:#F783AC;--gb-games:#A61E4D;--ga-watch:#FF6B6B;--gb-watch:#B02525;--ga-anime:#FAA2C1;--gb-anime:#C2255C;--ga-faith:#FFD43B;--gb-faith:#B07A00;--ga-listen:#B197FC;--gb-listen:#6741D9;--ga-relax:#63E6BE;--gb-relax:#0C8599;--ga-scan:#74C0FC;--gb-scan:#1971C2;--ga-pdf:#FF8787;--gb-pdf:#B3261E;--ga-money:#51CF66;--gb-money:#087F5B;--ga-tools:#A5B4C8;--gb-tools:#3D4B60;--ga-hygiene:#99E9F2;--gb-hygiene:#1971C2;--ga-jokes:#FFE066;--gb-jokes:#F08C00;--ga-lang:#A5D8FF;--gb-lang:#3B5BDB;--ga-fun:#99E9F2;--gb-fun:#0B7285;--ga-remedy:#66D9E8;--gb-remedy:#0B7285;--ga-mind:#E599F7;--gb-mind:#7B2CBF;--ga-love:#FF8FAB;--gb-love:#D6336C;--ga-settings:#C3CFDD;--gb-settings:#5C6B80;--ga-media:#3BC9DB;--gb-media:#0C8599;}
/* ===== 3D icon tiles ===== */
.nav button .drawer-tag,.tr-ic,.vh-icon,.sh-ic,.result-item .ri-tag{position:relative;isolation:isolate;overflow:visible;border:0!important;color:var(--gb,var(--tool))!important;
  background:linear-gradient(150deg,color-mix(in srgb,var(--ga,var(--tool)) 30%,var(--surface)) 0%,color-mix(in srgb,var(--gb,var(--tool)) 16%,var(--surface)) 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 0 1px color-mix(in srgb,var(--ga,var(--tool)) 26%,transparent),0 4px 10px -4px color-mix(in srgb,var(--gb,var(--tool)) 45%,transparent)!important}
.ic3d{width:80%;height:80%;object-fit:contain;display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.28));transition:transform .22s cubic-bezier(.3,1.6,.5,1);-webkit-user-drag:none;user-select:none;pointer-events:none}
.nav button .drawer-tag{width:32px;height:32px;border-radius:10px}
.nav button .drawer-tag .ic3d{width:84%;height:84%}
.nav button .drawer-tag svg{width:17px;height:17px}
.nav button:hover .ic3d,.tool-row:hover .ic3d,.sh-card:hover .ic3d{transform:translateY(-2px) scale(1.1) rotate(-4deg)}
.nav button[aria-current="page"] .drawer-tag{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 0 2px var(--surface),0 0 0 4px color-mix(in srgb,var(--gb,var(--tool)) 65%,transparent)!important}
.tr-ic{width:46px;height:46px;border-radius:13px}.tr-ic svg{width:21px;height:21px}
.vh-icon{width:58px;height:58px;border-radius:17px}.vh-icon svg{width:26px;height:26px}
.sh-ic{width:44px;height:44px;border-radius:12px}
.result-item .ri-tag{width:34px;height:34px;border-radius:10px}
@media (max-width:600px){.vh-icon{width:48px;height:48px;border-radius:14px}}
@media (prefers-reduced-motion:reduce){.nav button:hover .ic3d,.tool-row:hover .ic3d,.sh-card:hover .ic3d{transform:none}}
/* ===== Settings & feedback ===== */
.st-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0}
.st-row>span{font-weight:700;display:flex;flex-direction:column}.st-row small{font-weight:400;color:var(--muted);font-size:.84rem}
.st-col{display:flex;flex-direction:column;gap:8px;align-items:stretch}.st-row.st-col{align-items:flex-start}
.st-lab{font-weight:700}
.st-check{cursor:pointer}.st-check input,.st-tool input{width:20px;height:20px;accent-color:var(--accent);flex:none}
.st-seg{margin:0}.st-seg button[aria-pressed="true"]{background:var(--surface);box-shadow:var(--shadow);color:var(--ink);font-weight:700}
.st-swatches{display:flex;flex-wrap:wrap;gap:10px}
.st-sw{width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;background:linear-gradient(135deg,var(--c) 50%,var(--c2) 50%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}
.st-sw[aria-pressed="true"]{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}
.st-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.st-tool{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:10px;background:var(--surface-2);cursor:pointer;font-weight:600}
.st-tool span:nth-child(2){flex:1}.st-tool .tr-ic{width:30px;height:30px;border-radius:9px}
.st-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.st-status .hint{margin-left:auto}
.st-dot{width:10px;height:10px;border-radius:50%;background:#2f9e44;box-shadow:0 0 0 4px color-mix(in srgb,#2f9e44 25%,transparent)}.st-dot.off{background:#e8590c;box-shadow:0 0 0 4px color-mix(in srgb,#e8590c 25%,transparent)}
.st-prog{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.st-prog i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}
.fb-rate{display:flex;gap:8px;flex-wrap:wrap}
.fb-rate button{flex:1;min-width:58px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.fb-rate button span{font-size:1.7rem;filter:grayscale(.7);transition:transform .15s,filter .15s}.fb-rate button small{font-size:.72rem;color:var(--muted)}
.fb-rate button:hover span{filter:none;transform:scale(1.12)}
.fb-rate button[aria-checked="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.fb-rate button[aria-checked="true"] span{filter:none;transform:scale(1.15)}
.fb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.st-check-inline{display:flex;gap:8px;align-items:center;font-size:.9rem;color:var(--muted)}
.btn.danger{background:#C92A2A;border-color:#C92A2A;color:#fff}
/* personalization */
html.lu-compact .nav button{padding-top:4px;padding-bottom:4px;font-size:.88rem}html.lu-compact .nav button .drawer-tag{width:26px;height:26px;border-radius:8px}html.lu-compact .nav-label{padding-top:8px}
html.lu-calm *,html.lu-calm *::before,html.lu-calm *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
html.lu-nochat #lsLauncher,html.lu-nochat #lsChat{display:none!important}
body.lu-offline::before{content:"You're offline · saved tools still work";position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:90;background:#2b2f38;color:#fff;font-size:.82rem;font-weight:700;padding:7px 14px;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.3);pointer-events:none}
.fb-top{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;font-size:.88rem;cursor:pointer;flex:none}.fb-top svg{width:17px;height:17px;color:var(--accent)}.fb-top:hover{border-color:var(--accent)}
@media (max-width:700px){.fb-top span{display:none}.fb-top{padding:0 10px}}
/* ===== Love ===== */
.lv-prog{display:flex;align-items:center;gap:12px;font-size:.88rem;color:var(--muted)}.lv-prog .lv-pbar{flex:1;max-width:320px}
.lv-pbar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.lv-pbar i{display:block;height:100%;background:linear-gradient(90deg,var(--ga-love),var(--gb-love));transition:width .3s}
.lv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.lv-card{position:relative;display:flex;gap:14px;text-align:left;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s,border-color .15s}
.lv-card:hover{transform:translateY(-2px);border-color:var(--t-love)}.lv-card.done{opacity:.85}
.lv-e{font-size:1.7rem;width:50px;height:50px;flex:none;display:grid;place-items:center;border-radius:13px;background:color-mix(in srgb,var(--t-love) 14%,var(--surface))}
.lv-t{display:flex;flex-direction:column;gap:3px;min-width:0}.lv-t small{color:var(--t-love);font-weight:700;font-size:.76rem}.lv-t b{font-size:1rem}.lv-t span{color:var(--muted);font-size:.86rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lv-check{position:absolute;top:10px;right:12px;font-style:normal;color:#2f9e44;font-weight:800}
.lv-detail{border-top:4px solid var(--t-love)}.lv-h{margin:4px 0 0;font-size:1.35rem}
.lv-intro{font-size:1.04rem;margin:0;line-height:1.55}
.lv-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.lv-points div{padding:12px 14px;border-radius:12px;background:var(--surface-2)}.lv-points p{margin:4px 0 0;color:var(--muted);line-height:1.5}
.lv-verse{margin:0;padding:14px 18px;border-left:4px solid var(--t-love);background:color-mix(in srgb,var(--t-love) 8%,var(--surface));border-radius:0 12px 12px 0;font-style:italic;line-height:1.55}
.lv-verse cite{display:block;margin-top:6px;font-style:normal;font-weight:700;font-size:.85rem;color:var(--t-love)}.lv-verse.big{font-size:1.1rem}
.lv-try{padding:12px 14px;border-radius:12px;border:1px dashed var(--t-love)}.lv-try p{margin:4px 0 0}
.lv-quiz{max-width:720px}.lv-qhead{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.86rem}.lv-qhead .lv-pbar{flex:1}
.lv-q{margin:4px 0}.lv-opts{display:grid;gap:8px}
.lv-opt{text-align:left;padding:13px 16px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.lv-opt:hover{border-color:var(--t-love);background:color-mix(in srgb,var(--t-love) 7%,var(--surface))}
.lv-result{text-align:center}.lv-big{font-size:2.6rem;display:block}.lv-result h3{margin:4px 0}
.lv-bars{display:grid;gap:8px}.lv-bars div{display:grid;grid-template-columns:150px 1fr 24px;align-items:center;gap:10px;font-size:.9rem}
.lv-bars i{height:10px;border-radius:999px;background:var(--surface-2);position:relative;overflow:hidden}.lv-bars i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:linear-gradient(90deg,var(--ga-love),var(--gb-love));border-radius:999px}
.lv-checks{display:grid;gap:6px}.lv-ck{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border-radius:10px;background:var(--surface-2);cursor:pointer}.lv-ck input{margin-top:3px;width:18px;height:18px;accent-color:var(--t-love);flex:none}
.lv-alert,.lv-warn,.lv-good{padding:14px;border-radius:12px}.lv-alert p,.lv-warn p,.lv-good p{margin:6px 0 0;line-height:1.5}
.lv-alert{background:color-mix(in srgb,#e03131 16%,var(--surface));border:1px solid #e03131}.lv-warn{background:color-mix(in srgb,#f59f00 16%,var(--surface))}.lv-good{background:color-mix(in srgb,#2f9e44 14%,var(--surface))}
.lv-heal{max-width:760px}.lv-days{display:flex;align-items:baseline;gap:10px}.lv-days b{font-size:2.6rem;color:var(--t-love)}.lv-days span{color:var(--muted)}
.lv-note{margin-left:auto;color:var(--ink);font-size:.9rem;text-align:right}
.lv-idea{min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:16px;border-radius:14px;background:color-mix(in srgb,var(--t-love) 8%,var(--surface))}.lv-idea b{font-size:1.08rem}.lv-idea small{color:var(--muted)}
@media (max-width:560px){.lv-bars div{grid-template-columns:110px 1fr 20px}}
/* ===== Music ===== */
.mu-search input{flex:1;min-width:0}
.mu-genres{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px}
.mu-gen{position:relative;overflow:hidden;height:74px;border:0;border-radius:14px;padding:10px 12px;text-align:left;color:#fff;font:inherit;cursor:pointer;background:linear-gradient(135deg,var(--a),var(--b));display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 4px 14px -6px var(--b);transition:transform .15s}
.mu-gen span{position:absolute;right:-4px;top:-6px;font-size:2.4rem;transform:rotate(14deg);opacity:.9}.mu-gen b{position:relative;font-size:.98rem;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.mu-gen:hover{transform:translateY(-2px)}.mu-gen[aria-pressed="true"]{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--ink)}
.mu-list{display:grid;gap:4px}
.mu-row{display:grid;grid-template-columns:52px 1fr auto auto auto;align-items:center;gap:12px;padding:6px 8px;border-radius:12px}
.mu-row:hover{background:var(--surface-2)}.mu-row.on{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.mu-row.on .mu-info b{color:var(--accent)}
.mu-play{position:relative;width:52px;height:52px;border:0;padding:0;border-radius:9px;overflow:hidden;cursor:pointer;background:var(--surface-2)}
.mu-play img{width:100%;height:100%;object-fit:cover;display:block}.mu-play span{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:1.1rem;background:rgba(0,0,0,.35);opacity:0;transition:opacity .15s}
.mu-row:hover .mu-play span,.mu-row.on .mu-play span{opacity:1}
.mu-info{min-width:0;display:flex;flex-direction:column}.mu-info b,.mu-info small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mu-info small{color:var(--muted)}
.mu-src{font-style:normal;font-size:.62rem;padding:1px 5px;border-radius:4px;background:var(--surface-2);color:var(--muted);vertical-align:middle;font-weight:700}.mu-moreb{justify-self:center;margin-top:6px}
.mu-e{font-style:normal;font-size:.62rem;padding:1px 4px;border-radius:3px;background:var(--muted);color:var(--surface);vertical-align:middle}
.mu-dur{color:var(--muted);font-size:.84rem;font-variant-numeric:tabular-nums}
.mu-like{border:0;background:none;color:var(--accent);font-size:1.25rem;cursor:pointer;width:36px;height:36px;border-radius:50%}.mu-like:hover{background:var(--surface-2)}
.mu-more{position:relative}.mu-more summary{list-style:none;cursor:pointer;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;font-weight:800}.mu-more summary::-webkit-details-marker{display:none}.mu-more summary:hover{background:var(--surface-2)}
.mu-more div{position:absolute;right:0;top:38px;z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;min-width:170px}
.mu-more a{padding:8px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.9rem}.mu-more a:hover{background:var(--surface-2)}
.mu-radio summary{cursor:pointer}
.mp{position:fixed;left:0;right:0;bottom:0;z-index:65;pointer-events:none}
.mp-bar{pointer-events:auto;margin:0 auto;display:flex;align-items:center;gap:12px;padding:10px 14px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,.18)}
.mp-cover{width:46px;height:46px;border-radius:8px;object-fit:cover;background:var(--surface-2);flex:none}
.mp-meta{min-width:0;width:200px;display:flex;flex-direction:column}.mp-meta b,.mp-meta small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-meta small{color:var(--muted)}
.mp-ctrl{display:flex;align-items:center;gap:6px}.mp-ctrl button,.mp-x,.mp-like{border:0;background:none;color:var(--ink);font-size:1.05rem;width:38px;height:38px;border-radius:50%;cursor:pointer}.mp-ctrl button:hover,.mp-x:hover,.mp-like:hover{background:var(--surface-2)}
.mp-main{background:var(--accent)!important;color:var(--on-accent)!important;width:44px!important;height:44px!important}
.mp-prog{flex:1;display:flex;flex-direction:column;gap:4px;min-width:80px}.mp-mode{font-size:.72rem;color:var(--muted);font-weight:700}
.mp-track{height:6px;border-radius:999px;background:var(--surface-2);cursor:pointer;overflow:hidden}.mp-track i{display:block;height:100%;width:0;background:var(--accent)}
.mp-full{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;white-space:nowrap}.mp-like{color:var(--accent)}
.mp-video{pointer-events:auto;position:fixed;left:16px;top:60%;width:356px;height:230px;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 12px 30px rgba(0,0,0,.45);display:flex;flex-direction:column;z-index:66}
.mp-video[hidden]{display:none}
.mp-vh{height:30px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 6px 0 10px;background:#1b1e26;color:#cfd4dc;font-size:.74rem;font-weight:700;cursor:grab;touch-action:none;user-select:none}
.mp-vbtns{display:flex;gap:2px}.mp-vh button{border:0;background:none;color:#fff;font-size:1rem;width:28px;height:26px;border-radius:6px;cursor:pointer}.mp-vh button:hover{background:rgba(255,255,255,.12)}
.mp-vbody{flex:1;min-height:0}.mp-vbody>div,.mp-vbody iframe{width:100%;height:100%;display:block}
.mp-trash{position:fixed;left:50%;bottom:96px;z-index:67;transform:translate(-50%,30px);display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.mp-trash.show{opacity:1;transform:translate(-50%,0)}
.mp-trash span{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:1.3rem;font-weight:800;color:#fff;background:rgba(30,32,40,.85);border:2px solid rgba(255,255,255,.6);box-shadow:0 8px 24px rgba(0,0,0,.4);transition:transform .15s,background .15s}
.mp-trash small{font-size:.75rem;font-weight:700;color:#fff;background:rgba(30,32,40,.75);padding:3px 10px;border-radius:999px}
.mp-trash.hot span{transform:scale(1.25);background:#E03131;border-color:#fff}
.mp-video.doomed{opacity:.55;transform:scale(.92);transition:opacity .15s,transform .15s}
.mp-video.dragging{cursor:grabbing;box-shadow:0 18px 40px rgba(0,0,0,.55)}.mp-video.dragging .mp-vh{cursor:grabbing}.mp-video.dragging iframe{pointer-events:none}
body.mp-on{padding-bottom:72px}body.mp-on #lsLauncher{bottom:84px}
@media (max-width:700px){.mp-bar{flex-wrap:wrap;gap:8px}.mp-meta{width:auto;flex:1}.mp-prog{order:5;flex-basis:100%}.mp-full{order:6}body.mp-on{padding-bottom:120px}body.mp-on #lsLauncher{bottom:130px}
 .mu-row{grid-template-columns:48px 1fr auto auto;gap:8px}.mu-dur{display:none}}
.mu-q{border:0;background:none;color:var(--ink);font-size:1.15rem;width:34px;height:34px;border-radius:50%;cursor:pointer}.mu-q:hover{background:var(--surface-2)}
.mu-row{grid-template-columns:52px 1fr auto auto auto auto}
.mu-more div button{border:0;background:none;text-align:left;padding:8px 10px;border-radius:8px;color:var(--ink);font:inherit;font-weight:600;font-size:.9rem;cursor:pointer}.mu-more div button:hover{background:var(--surface-2)}.mu-more hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.mp-tg{opacity:.45;font-size:.95rem!important}.mp-tg[aria-pressed="true"]{opacity:1;background:color-mix(in srgb,var(--accent) 16%,transparent)!important}
.mp-qb{position:relative;border:0;background:none;color:var(--ink);font-size:1.1rem;width:38px;height:38px;border-radius:50%;cursor:pointer}.mp-qb:hover{background:var(--surface-2)}
.mp-qb em{position:absolute;top:2px;right:0;font-style:normal;font-size:.62rem;font-weight:800;min-width:16px;height:16px;padding:0 3px;border-radius:999px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center}.mp-qb em:empty{display:none}
.mp-qpanel{pointer-events:auto;position:absolute;right:12px;bottom:calc(100% + 8px);width:min(380px,calc(100vw - 24px));max-height:min(60vh,520px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 40px rgba(0,0,0,.35);padding:12px;z-index:68}
.mp-ql{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}.mp-ql li{display:flex;align-items:center;gap:8px;padding:4px;border-radius:10px}.mp-ql li:hover{background:var(--surface-2)}
.mp-ql img{width:38px;height:38px;border-radius:6px;object-fit:cover;background:var(--surface-2);flex:none}.mp-ql span{flex:1;min-width:0;display:flex;flex-direction:column}.mp-ql b,.mp-ql small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-ql small{color:var(--muted)}
.mp-ql button{border:0;background:none;color:var(--ink);width:28px;height:28px;border-radius:6px;cursor:pointer}.mp-ql button:hover:not(:disabled){background:var(--surface)}.mp-ql button:disabled{opacity:.25}
.mp-ql.dim{opacity:.7}.mp-qt{margin:12px 0 0;font-size:.8rem;font-weight:700;color:var(--muted)}
@media (max-width:700px){.mu-row{grid-template-columns:48px 1fr auto auto auto}.mp-ctrl button{width:34px;height:34px}.mp-qpanel{right:8px}}
/* ===== Remedy ===== */
.rm-sos{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:12px 16px;border-radius:14px;background:color-mix(in srgb,#e03131 12%,var(--surface));border:1px solid color-mix(in srgb,#e03131 40%,var(--line))}
.rm-sos a{color:inherit;font-weight:800}.rm-sos span{color:var(--muted)}.rm-sos>a{margin-left:auto;font-weight:700}
.rm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.rm-card{display:flex;gap:12px;text-align:left;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s,border-color .15s}
.rm-card:hover{transform:translateY(-2px);border-color:var(--t-remedy)}.rm-card span:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}.rm-card small{color:var(--muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rm-e{font-size:1.6rem;width:48px;height:48px;flex:none;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--t-remedy) 14%,var(--surface))}
.rm-detail{border-top:4px solid var(--t-remedy)}.rm-h{margin:0;font-size:1.35rem}
.rm-box{padding:12px 14px;border-radius:12px;background:var(--surface-2)}.rm-box h4{margin:0 0 6px}.rm-box ul{margin:0;padding-left:20px;line-height:1.55}
.rm-box.avoid{background:color-mix(in srgb,#f59f00 10%,var(--surface))}.rm-box.doc{background:color-mix(in srgb,#1c7ed6 10%,var(--surface))}.rm-box.er{background:color-mix(in srgb,#e03131 12%,var(--surface));border:1px solid color-mix(in srgb,#e03131 35%,transparent)}
.rm-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.rm-tip{margin:0;padding:10px 14px;border-radius:12px;border:1px dashed var(--t-remedy)}
.rm-tris{display:grid;gap:6px}.rm-tri{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border-radius:10px;background:var(--surface-2);cursor:pointer}.rm-tri input{margin-top:3px;width:18px;height:18px;accent-color:var(--t-remedy);flex:none}
.rm-tri.er{border-left:4px solid #e03131}.rm-tri.doc{border-left:4px solid #1c7ed6}
.rm-sticky{position:sticky;top:80px;align-self:start}
.rm-res{padding:16px;border-radius:14px}.rm-res b{font-size:1.1rem}.rm-res p{margin:6px 0 10px;line-height:1.5}.rm-res a{color:inherit}.rm-res .btn{text-decoration:none}.rm-res .btn.danger{color:#fff}
.rm-res.er{background:color-mix(in srgb,#e03131 18%,var(--surface));border:2px solid #e03131}.rm-res.doc{background:color-mix(in srgb,#1c7ed6 14%,var(--surface))}.rm-res.home{background:color-mix(in srgb,#2f9e44 14%,var(--surface))}
.rm-chart svg{width:100%;height:110px;display:block}.rm-chart small{color:var(--muted)}
.rm-log em{font-style:normal;font-weight:800}.rm-log em.hot{color:#e8590c}.rm-log span{margin-left:auto;text-align:right}
@media (max-width:860px){.rm-sticky{position:static}.rm-sos>a{margin-left:0}}
/* ===== Hygiene ===== */
.hy-detail{border-top-color:var(--t-hygiene)!important}.hy-card .rm-e{background:color-mix(in srgb,var(--t-hygiene) 14%,var(--surface))}.hy-card:hover{border-color:var(--t-hygiene)}
.hy-steps{margin:0;padding-left:22px;display:grid;gap:6px;line-height:1.55}.hy-steps li::marker{font-weight:800;color:var(--t-hygiene)}
.hy-stains{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.hy-stain{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-align:left}
.hy-stain span{font-size:1.3rem}.hy-stain:hover,.hy-stain[aria-pressed="true"]{border-color:var(--t-hygiene);background:color-mix(in srgb,var(--t-hygiene) 10%,var(--surface))}
.hy-labels{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.hy-lab{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface-2)}.hy-lab svg{flex:none;color:var(--t-hygiene)}.hy-lab span{font-weight:600;font-size:.92rem}
.hy-timer{align-items:center;text-align:center;max-width:520px}
.hw-ring{--p:0%;width:220px;height:220px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(var(--t-hygiene) var(--p),var(--surface-2) 0);position:relative;transition:background .3s}
.hw-ring::before{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--surface)}.hw-ring b,.hw-ring span{position:relative}.hw-ring b{font-size:3.2rem;line-height:1}.hw-ring span{font-weight:700;color:var(--muted);padding:0 24px}
.hy-ftable{display:grid;gap:4px}.hy-fh,.hy-fr{display:grid;grid-template-columns:1.3fr 1fr 1.3fr 1.5fr 1fr .8fr;gap:10px;padding:10px 12px;border-radius:10px;align-items:center}
.hy-fh{font-size:.76rem;font-weight:800;text-transform:uppercase;color:var(--muted)}.hy-fr{background:var(--surface-2);font-size:.9rem}
@media (max-width:760px){.hy-fh{display:none}.hy-fr{grid-template-columns:1fr 1fr}.hy-fr b{grid-column:1/-1}.hy-fr span::before{content:attr(data-l)": ";font-weight:700;color:var(--muted)}}
/* ===== guide photos and videos ===== */
.gx-media{display:grid;gap:10px}.gx-media:empty{display:none}
.gx-pic{margin:0;border-radius:14px;overflow:hidden;background:var(--surface-2);max-width:560px}.gx-pic img{display:block;width:100%;max-height:300px;object-fit:cover}
.gx-pic figcaption{font-size:.74rem;color:var(--muted);padding:6px 10px}.gx-pic figcaption a{color:inherit}
.gx-vid{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.gx-frame{flex:0 0 100%;width:100%;max-width:720px;order:-1}.gx-frame .mv-frame{margin-bottom:4px}
.ft-ex .gx-media{margin:4px 0 10px}.ft-ex .gx-pic{max-width:360px}.ft-ex .gx-pic img{max-height:220px}

/* ===== Fitness: real exercise photos ===== */
.fx-ph{position:relative;display:block;aspect-ratio:3/2;border-radius:12px;overflow:hidden;background:var(--surface-2)}
.fx-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fx-ph img.b{animation:fxSwap 2.6s ease-in-out infinite}
@keyframes fxSwap{0%,38%{opacity:0}50%,88%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.fx-ph img.b{animation:none;opacity:0}.fx-ph:hover img.b{opacity:1}}
.fx-th{width:56px;height:40px;object-fit:cover;border-radius:8px;display:block}
.ft-ex-e:has(.fx-th){width:56px}
.fx-cr{display:block;font-size:.72rem;color:var(--muted);margin-top:4px}
.ft-ex-ph{max-width:360px;margin:4px 0 10px}
.ft-list{list-style:none;padding:0;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.ft-list li{display:flex;gap:10px;align-items:center;padding:6px;border-radius:12px;background:var(--surface-2)}
.ft-list li .ft-li-m{flex:0 0 96px;margin:0}.ft-li-m .fx-ph{border-radius:9px}
.ft-li-e{display:grid;place-items:center;aspect-ratio:3/2;font-size:1.8rem;border-radius:9px;background:color-mix(in srgb,var(--t-fitness) 14%,transparent)}
.ft-li-t{display:flex;flex-direction:column;min-width:0}
.ft-top{display:block}
.ft-pl-in.has-ph .ft-top{display:grid;grid-template-columns:1fr 150px;gap:14px;align-items:center}
.ft-pl-in.has-ph .ft-stage{width:150px}.ft-pl-in.has-ph .ft-time{font-size:2.4rem}.ft-pl-in.has-ph .ft-kind{font-size:.68rem}
.ft-pl-in.has-ph .ft-emoji{display:none}.ft-vis{position:relative;min-width:0}.ft-vis .fx-ph.big{border-radius:14px}
.ft-vis-tag{position:absolute;top:8px;left:8px;background:#4dabf7;color:#06121f;font-weight:800;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px}
.ft-vis.wiki .gx-pic{max-width:none;margin:0}.ft-vis.wiki .gx-pic img{max-height:230px}
.ft-vis.wiki:has(.gx-pic[hidden]),.ft-vis.wiki:has(.gx-media:empty){display:none}
.ft-pl-in.has-ph .ft-top:has(.ft-vis.wiki .gx-pic[hidden]){grid-template-columns:1fr}
.ft-pl-in.has-ph .ft-top:has(.ft-vis.wiki .gx-pic[hidden]) .ft-stage{width:min(220px,60vw)}
@media (max-width:560px){.ft-pl-in.has-ph .ft-top{grid-template-columns:1fr 112px;gap:10px}.ft-pl-in.has-ph .ft-stage{width:112px}.ft-pl-in.has-ph .ft-time{font-size:1.8rem}.ft-pl-in.has-ph .ft-kind{font-size:.6rem;letter-spacing:.03em}.ft-pl-in{padding:14px;gap:10px}.ft-now p{font-size:.9rem}}

.fx-ph.n3 img.b{animation:fx3b 3.9s ease-in-out infinite}.fx-ph.n3 img.c{animation:fx3c 3.9s ease-in-out infinite}
@keyframes fx3b{0%,26%{opacity:0}33%,94%{opacity:1}100%{opacity:0}}@keyframes fx3c{0%,59%{opacity:0}66%,94%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.fx-ph.n3 img.b,.fx-ph.n3 img.c{animation:none;opacity:0}}
.fx-note{display:block;font-size:.8rem;color:var(--ink);opacity:.85;margin-top:6px;line-height:1.4}

/* ===== Love: For you ===== */
.lv-me-form .lv-fs{border:0;padding:0;margin:0}.lv-fs legend{font-weight:800;margin-bottom:8px;padding:0}.lv-fs legend small{font-weight:500;color:var(--muted)}
.lv-opts{display:flex;flex-wrap:wrap;gap:8px}
.lv-opts .lv-opt{cursor:pointer;border:0;padding:0;margin:0;background:none;box-shadow:none;display:inline-flex;min-height:0;width:auto}.lv-opt input{position:absolute;opacity:0;pointer-events:none}
.lv-opt span{display:inline-block;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:.9rem;transition:background .15s,border-color .15s}
.lv-opt input:checked+span{background:color-mix(in srgb,var(--t-love) 20%,var(--surface));border-color:var(--t-love);font-weight:700}
.lv-opt input:focus-visible+span{outline:2px solid var(--t-love);outline-offset:2px}
.lv-me-hero{border-left:5px solid var(--t-love);background:linear-gradient(135deg,color-mix(in srgb,var(--t-love) 12%,var(--surface)),var(--surface))}
.lv-me-hero h3{margin:2px 0 0;font-size:1.3rem}.lv-me-hero p{line-height:1.55}
.lv-tag{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--surface-2);font-size:.82rem;font-weight:700}
.lv-feel{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.lv-feel button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.lv-feel button span{font-size:1.6rem}.lv-feel button small{font-size:.7rem;color:var(--muted)}
.lv-feel button[aria-pressed=true]{border-color:var(--t-love);background:color-mix(in srgb,var(--t-love) 18%,var(--surface))}
.lv-feelrow{display:flex;gap:2px;flex-wrap:wrap;font-size:1.05rem}
.lv-step{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:12px;background:var(--surface-2)}.lv-step span{font-size:1.6rem}.lv-step p{margin:0;font-weight:600;line-height:1.5}
.lv-step.done p{text-decoration:line-through;opacity:.7}
.lv-cn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.lv-cn h4{margin:0}.lv-cn ul{margin:0;padding-left:20px;line-height:1.55}.lv-cn.danger{border-color:#e03131}
.lv-say{padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--t-love) 10%,var(--surface-2))}.lv-say small{font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;color:var(--muted)}.lv-say p{margin:4px 0 6px;font-style:italic}
.lv-fy{font-style:normal;color:var(--t-love);font-weight:800}

/* ===== Jokes ===== */
.jk-stage{position:relative;display:flex;flex-direction:column;gap:14px;overflow:hidden}
.jk-big{position:relative;padding:28px 24px;border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--t-jokes) 18%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--t-jokes) 35%,var(--line));text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;min-height:240px;justify-content:center}
.jk-cat{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--t-jokes)}
.jk-big .jk-setup{font-size:clamp(1.25rem,3.5vw,1.7rem);font-weight:800;line-height:1.35;margin:0;max-width:640px}
.jk-big .jk-punch{font-size:clamp(1.15rem,3vw,1.5rem);margin:0;color:var(--t-jokes);font-weight:700;animation:jkIn .4s ease-out}
@keyframes jkIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
.jk-reveal{font:inherit;font-weight:800;padding:12px 22px;border-radius:999px;border:2px dashed var(--t-jokes);background:transparent;color:var(--ink);cursor:pointer}
.jk-reveal:hover{background:color-mix(in srgb,var(--t-jokes) 12%,transparent)}
.jk-acts{justify-content:center;gap:6px}.jk-acts [aria-pressed=true]{border-color:var(--t-jokes)}
.jk-pop{position:absolute;bottom:20%;font-size:1.8rem;pointer-events:none;animation:jkPop 1.3s ease-out forwards}
@keyframes jkPop{0%{opacity:0;transform:translateY(0) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translateY(-160px) scale(1.2) rotate(20deg)}}
.jk-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.jk-card{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.jk-card .jk-setup{margin:0;font-weight:700;line-height:1.4}.jk-card details summary{cursor:pointer;color:var(--t-jokes);font-weight:700;font-size:.9rem}.jk-card .jk-punch{margin:6px 0 0}
.jk-card .jk-acts{justify-content:flex-start;margin-top:auto}
/* ===== Fun ===== */
.fn-card{align-items:stretch;gap:14px}
.fn-wyr{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch}
.fn-wyr button{font:inherit;color:var(--ink);padding:26px 16px;border-radius:18px;border:2px solid var(--line);background:var(--surface-2);cursor:pointer;font-size:1.1rem;line-height:1.35;transition:transform .15s,border-color .15s,background .15s}
.fn-wyr button:hover{transform:translateY(-2px);border-color:var(--t-fun)}
.fn-wyr button.on{border-color:var(--t-fun);background:color-mix(in srgb,var(--t-fun) 20%,var(--surface))}
.fn-or{align-self:center;font-weight:900;color:var(--t-fun)}
.fn-why{text-align:center;font-weight:700;margin:0}
.fn-q{font-size:clamp(1.15rem,3vw,1.5rem);font-weight:800;line-height:1.4;margin:0}
.fn-ans{margin:0;font-size:1.05rem}.fn-ans.ok{color:var(--t-fun)}
.fn-turn{margin:0;font-size:1.1rem;text-align:center}
.fn-big{min-width:120px;font-size:1.05rem}.fn-dare{background:#e8590c!important;border-color:#e8590c!important}
.fn-tcard{padding:22px;border-radius:18px;text-align:center;background:color-mix(in srgb,var(--t-fun) 14%,var(--surface));border:2px solid var(--t-fun);animation:jkIn .35s ease-out}
.fn-tcard.d{background:color-mix(in srgb,#e8590c 14%,var(--surface));border-color:#e8590c}
.fn-tcard small{font-weight:900;letter-spacing:.12em}.fn-tcard p{font-size:1.2rem;font-weight:700;margin:6px 0 0;line-height:1.4}
.fn-fact{display:flex;gap:16px;align-items:center;padding:18px;border-radius:16px;background:var(--surface-2);animation:jkIn .35s ease-out}.fn-fact span{font-size:2.6rem}.fn-fact p{margin:0;font-size:1.1rem;line-height:1.5;font-weight:600}
.fn-tw{text-align:center}
.fn-result{text-align:center;font-size:1.3rem;min-height:1.6em}
.fn-wheel-box{align-items:center}
.fn-wheel-wrap{position:relative;width:min(380px,100%);margin:0 auto}
#fnWheel{width:100%;height:auto;display:block;cursor:pointer;border-radius:50%;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.fn-pin{position:absolute;top:-10px;left:50%;transform:translateX(-50%);font-size:2rem;color:var(--ink);text-shadow:0 2px 4px rgba(0,0,0,.3)}
@media (max-width:560px){.fn-wyr{grid-template-columns:1fr}.fn-or{justify-self:center}.fn-wyr button{padding:18px 14px}.jk-big{padding:22px 16px}}

/* ===== Fitness: gym ===== */
.ft-mode{margin-bottom:2px}
.gy-reps{margin:0 0 8px;padding:8px 12px;border-radius:10px;background:var(--surface-2)}
.gy-planbox{border-top:6px solid var(--t-fitness)}
.gy-plan{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.gy-plan>li{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:start;padding:10px;border-radius:14px;background:var(--surface-2)}
.gy-plan>li.done{opacity:.75}.gy-plan>li.done>.gy-pl-t b{text-decoration:line-through}
.gy-pl-t{display:flex;flex-direction:column;gap:4px;min-width:0}.gy-pl-t small{color:var(--muted)}
.gy-plan li>.gy-ex{grid-column:1/-1;background:var(--surface);margin:0}
.gy-sets{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
.gy-set{width:38px;height:38px;border-radius:50%;border:2px solid var(--t-fitness);background:transparent;color:var(--ink);font:inherit;font-weight:800;cursor:pointer}
.gy-set.on{background:var(--t-fitness);color:#fff}
.gy-rest{position:sticky;bottom:12px;display:flex;gap:12px;align-items:center;justify-content:center;padding:12px 16px;border-radius:999px;background:#1c7ed6;color:#fff;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:3}
.gy-rest b{font-size:1.5rem;font-variant-numeric:tabular-nums}.gy-rest .btn{color:#fff;border-color:rgba(255,255,255,.5)}
.gy-tips summary{cursor:pointer}.gy-tips ul{margin:10px 0;padding-left:20px;line-height:1.6}
@media (max-width:560px){.gy-plan>li{grid-template-columns:96px 1fr;gap:10px}}

/* ===== Music: smart shuffle ===== */
.mp-tg.smart{background:linear-gradient(135deg,#7048e8,#1db954)!important;color:#fff!important;box-shadow:0 0 0 2px rgba(29,185,84,.35)}
.mp-rec{font-style:normal;font-weight:800;color:#1db954;font-size:.72rem}
.mp-ql li.rec{background:color-mix(in srgb,#1db954 8%,transparent);border-radius:10px}

/* ===== Study plan ===== */
.sp-subs{display:grid;gap:8px;margin-bottom:8px}
.sp-sub{display:grid;grid-template-columns:2fr 1.3fr 1.1fr 1.2fr auto;gap:6px;align-items:center}
.sp-hours{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.sp-hero{border-left:5px solid var(--t-study);background:linear-gradient(135deg,color-mix(in srgb,var(--t-study) 12%,var(--surface)),var(--surface))}.sp-hero h3{margin:2px 0 4px;font-size:1.3rem}
.sp-exams{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.sp-exam{flex:0 0 auto;min-width:150px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:2px}
.sp-exam b{font-size:1.2rem;color:var(--t-study)}.sp-exam small{color:var(--muted)}.sp-exam.soon{border-color:#e8590c}.sp-exam.soon b{color:#e8590c}
.sp-today{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sp-slot{display:grid;grid-template-columns:78px 1fr auto;gap:12px;align-items:center;padding:12px;border-radius:12px;background:var(--surface-2)}
.sp-slot.done{opacity:.65}.sp-slot.done b{text-decoration:line-through}
.sp-time{font-weight:800;color:var(--t-study);font-variant-numeric:tabular-nums}
.sp-slot .sp-time{display:block}
.sp-st{display:flex;flex-direction:column;gap:2px;min-width:0}.sp-st small{color:var(--muted)}.sp-st p{margin:2px 0 0;font-size:.92rem;line-height:1.45}
.sp-acts{display:flex;flex-direction:column;gap:6px}
.sp-tag{font-style:normal;font-size:.72rem;font-weight:800;color:#e8590c;margin-left:4px}
.sp-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.sp-day{display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:12px;background:var(--surface-2);min-width:0}.sp-day.on{outline:2px solid var(--t-study)}
.sp-day b small{color:var(--muted);font-weight:600}
.sp-chip{font-size:.74rem;padding:3px 6px;border-radius:7px;background:color-mix(in srgb,var(--t-study) 16%,var(--surface));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-chip.done{text-decoration:line-through;opacity:.6}.sp-chip.rev{background:color-mix(in srgb,#20c997 16%,var(--surface))}.sp-chip.exam{background:#e8590c;color:#fff;font-weight:800}
.sp-methods{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.sp-m h4{margin:0}.sp-m p{margin:0;line-height:1.5}.sp-how{padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:.92rem}
.sp-ul{margin:0;padding-left:20px;line-height:1.6}
.sp-hooks ul{margin:0;padding-left:20px;line-height:1.6}
.sp-timer{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:80;display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:999px;background:var(--t-study);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.3);font-weight:600;max-width:calc(100vw - 24px)}
.sp-timer b{font-size:1.25rem;font-variant-numeric:tabular-nums}.sp-timer .btn{color:#fff;border-color:rgba(255,255,255,.5);background:transparent}
body.mp-on .sp-timer{bottom:96px}
@media (max-width:760px){.sp-week{grid-template-columns:repeat(7,minmax(92px,1fr));overflow-x:auto}.sp-sub{grid-template-columns:1fr 1fr;}.sp-sub [data-sf=n]{grid-column:1/-1}.sp-slot{grid-template-columns:1fr}.sp-acts{flex-direction:row}}

/* ===== Install app ===== */
.app-top svg{color:#12b886!important}
.app-dlg{position:fixed;inset:0;z-index:95;background:rgba(6,10,16,.6);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;overflow:auto}
.app-dlg[hidden]{display:none}
body.app-lock{overflow:hidden}
.app-card{position:relative;width:min(560px,100%);background:var(--surface);color:var(--ink);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.app-x{position:absolute;top:12px;right:12px}
.app-head{display:flex;gap:14px;align-items:center;padding-right:30px}.app-head img{border-radius:16px;flex:none}.app-head h3{margin:0}.app-head p{margin:4px 0 0;color:var(--muted)}
.app-go{font-size:1.05rem;padding:12px}
.app-why{list-style:none;margin:0;padding:0;display:grid;gap:6px}.app-why li{padding:8px 12px;border-radius:10px;background:var(--surface-2);font-size:.92rem}
.app-tabs{flex-wrap:wrap}
.app-steps{margin:0;padding-left:22px;display:grid;gap:8px;line-height:1.5}
.app-nudge{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:85;display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:16px;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:0 12px 34px rgba(0,0,0,.25);width:min(460px,calc(100vw - 24px));animation:jkIn .35s ease-out}
.app-nudge img{border-radius:10px}.app-nudge span{display:flex;flex-direction:column;flex:1;min-width:0}.app-nudge small{color:var(--muted)}
body.mp-on .app-nudge{bottom:96px}
@media (display-mode: standalone){.app-top{display:none!important}}

/* ===== App splash screen (shown when opened as an installed app; preview with ?splash) ===== */
.lu-splash{display:none;position:fixed;inset:0;z-index:2147483000;background-color:#0D1530;background-image:radial-gradient(60vmax 60vmax at 10% 8%,rgba(44,107,255,.42),transparent 70%),radial-gradient(60vmax 60vmax at 92% 95%,rgba(31,227,178,.26),transparent 70%),radial-gradient(40vmax 40vmax at 75% 40%,rgba(123,92,255,.18),transparent 70%),radial-gradient(120% 90% at 50% 40%,#16245A 0%,#0D1530 45%,#060A18 100%);background-size:130% 130%,130% 130%,130% 130%,100% 100%;animation:lspAuto .6s ease 6s forwards,lspBg 9s ease-in-out infinite alternate;color:#EAF1FF;isolation:isolate;contain:paint;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;font-family:var(--display,inherit);}
@keyframes lspBg{to{background-position:8% 6%,92% 94%,60% 40%,0 0}}
@media (display-mode: standalone){.lu-splash{display:flex}}
.force-splash .lu-splash{display:flex}
.no-splash:not(.force-splash) .lu-splash{display:none!important}
.lu-splash.out{animation:lspOut .6s cubic-bezier(.4,0,.2,1) forwards}
@keyframes lspOut{to{opacity:0;transform:scale(1.04);visibility:hidden}}
@keyframes lspAuto{to{opacity:0;visibility:hidden;pointer-events:none}}
.lsp-aur{position:absolute;width:62vmax;height:62vmax;border-radius:50%;filter:blur(70px);opacity:.38;animation:lspFloat 9s ease-in-out infinite alternate}
.lsp-aur.a1{background:#2C6BFF;top:-22vmax;left:-18vmax}.lsp-aur.a2{background:#1FE3B2;bottom:-26vmax;right:-20vmax;animation-delay:-3s;opacity:.26}.lsp-aur.a3{background:#7B5CFF;top:30%;left:55%;width:36vmax;height:36vmax;opacity:.18;animation-delay:-6s}
@keyframes lspFloat{to{transform:translate(4vmax,3vmax) scale(1.08)}}
.lsp-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(circle at 50% 45%,#000 0,transparent 65%);-webkit-mask-image:radial-gradient(circle at 50% 45%,#000 0,transparent 65%)}
.lsp-center{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:24px}
.lsp-logo{position:relative;width:148px;height:148px;display:grid;place-items:center;border-radius:36px;background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 60px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.12);animation:lspPop .7s cubic-bezier(.2,.9,.3,1.3) both}
@keyframes lspPop{from{opacity:0;transform:scale(.7) translateY(10px)}}
.lsp-logo svg{filter:drop-shadow(0 0 14px rgba(44,140,255,.45))}
.lsp-s1,.lsp-s2,.lsp-sh{stroke-dasharray:1;stroke-dashoffset:1;animation:lspDraw .9s cubic-bezier(.6,0,.2,1) forwards}
.lsp-s1{animation-delay:.25s}.lsp-sh{animation-delay:.55s}.lsp-s2{animation-delay:.55s}
@keyframes lspDraw{to{stroke-dashoffset:0}}
.lsp-ring{position:absolute;inset:-10px;border-radius:44px;border:1.5px solid rgba(43,240,190,.35);opacity:0;animation:lspRing 1.6s ease-out .9s infinite}
@keyframes lspRing{0%{opacity:.7;transform:scale(.94)}100%{opacity:0;transform:scale(1.18)}}
.lsp-name{margin:10px 0 0;font-size:clamp(1.9rem,6vw,2.6rem);font-weight:800;letter-spacing:-.01em;opacity:0;animation:lspUp .7s ease .7s forwards}
.lsp-name span{background:linear-gradient(90deg,#2AB0FF,#2BF0BE);-webkit-background-clip:text;background-clip:text;color:transparent}
.lsp-tag{margin:0;font-size:1rem;color:rgba(234,241,255,.72);letter-spacing:.02em;opacity:0;animation:lspUp .7s ease .95s forwards}
@keyframes lspUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.lsp-bar{width:180px;height:4px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:18px;opacity:0;animation:lspUp .5s ease 1.1s forwards}
.lsp-bar i{display:block;height:100%;width:40%;border-radius:inherit;background:linear-gradient(90deg,#2AB0FF,#2BF0BE);animation:lspLoad 1.2s ease-in-out infinite}
@keyframes lspLoad{0%{transform:translateX(-110%)}100%{transform:translateX(280%)}}
.lsp-foot{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));margin:0;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(234,241,255,.45);opacity:0;animation:lspUp .6s ease 1.2s forwards}
@media (prefers-reduced-motion:reduce){.lu-splash *{animation-duration:.01s!important;animation-delay:0s!important}.lsp-s1,.lsp-s2,.lsp-sh{stroke-dashoffset:0}.lsp-name,.lsp-tag,.lsp-bar,.lsp-foot{opacity:1}.lsp-aur{animation:none}}

/* ===== Minigames: headers, scoreboard, celebration ===== */
.gm-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.gm-ic{font-size:2rem;width:56px;height:56px;flex:none;display:grid;place-items:center;border-radius:16px;background:color-mix(in srgb,var(--t-games) 16%,var(--surface))}
.gm-ht{flex:1;min-width:200px}.gm-ht h3{margin:0;font-size:1.3rem}.gm-ht p{margin:2px 0 0;color:var(--muted);font-size:.92rem;line-height:1.45}
.gm-hs{display:flex;gap:8px;flex-wrap:wrap}.gm-hs span,.gm-mini span{padding:5px 10px;border-radius:999px;background:var(--surface-2);font-size:.82rem;white-space:nowrap}.gm-hs b,.gm-mini b{color:var(--t-games)}
.gm-win{position:fixed;inset:0;z-index:96;background:rgba(6,10,16,.6);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}
.gm-win[hidden]{display:none}
.gm-confetti{position:fixed;inset:0;pointer-events:none;z-index:0}
.gm-card{position:relative;z-index:1;width:min(440px,100%);background:var(--surface);color:var(--ink);border-radius:22px;padding:26px 22px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center;box-shadow:0 24px 70px rgba(0,0,0,.4);border-top:6px solid var(--t-games);animation:gmPop .45s cubic-bezier(.2,.9,.3,1.3)}
@keyframes gmPop{from{opacity:0;transform:scale(.8) translateY(20px)}}
.gm-emoji{font-size:3.6rem;line-height:1;animation:gmBounce 1s ease .3s 2}
@keyframes gmBounce{50%{transform:translateY(-10px) scale(1.1)}}
.gm-card h3{margin:0;font-size:1.45rem}.gm-card p{margin:0;color:var(--muted);line-height:1.5}
.gm-best{padding:6px 14px;border-radius:999px;background:linear-gradient(90deg,#FFD43B,#FFA94D);color:#3b2600;font-weight:800}
.gm-mini{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.gm-table{display:grid;gap:4px}
.gm-tr{display:grid;grid-template-columns:2fr .8fr .8fr 2fr 1.2fr;gap:8px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.gm-tr:hover{outline:2px solid color-mix(in srgb,var(--t-games) 50%,transparent)}
.gm-th{background:transparent;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);cursor:default}.gm-th:hover{outline:0}
.gm-hist{list-style:none;margin:0;padding:0;display:grid;gap:4px}.gm-hist li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 12px;border-radius:10px;background:var(--surface-2)}
.gm-hist small{color:var(--muted);grid-column:1}.gm-hist time{grid-row:1/3;grid-column:2;align-self:center;color:var(--muted);font-size:.8rem}.gm-hist em{font-style:normal;color:#e67700;font-weight:800;font-size:.78rem}
@media (max-width:640px){.gm-tr{grid-template-columns:1.6fr .6fr .6fr 1.6fr}.gm-tr>span:nth-child(5){display:none}.gm-head .gm-hs{width:100%}}
/* ===== Chess ===== */
.ch-wrap{display:grid;grid-template-columns:minmax(0,560px) minmax(220px,1fr);gap:20px;align-items:start}
.ch-left{position:relative}
.ch-board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;border-radius:10px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.25);border:3px solid #6b4f36;user-select:none;touch-action:manipulation}
.ch-sq{position:relative;border:0;padding:0;margin:0;display:grid;place-items:center;cursor:pointer;font:inherit;aspect-ratio:1}
.ch-sq.l{background:#EEDDB8}.ch-sq.d{background:#B5895E}
.ch-sq.last.l{background:#F3E37A}.ch-sq.last.d{background:#D6BE4E}
.ch-sq.sel{background:#7FB4E8!important}
.ch-sq.chk{background:radial-gradient(circle,#ff5a5a 0,#e03131 45%,transparent 80%),#B5895E!important}
.ch-sq.mv::after{content:"";width:28%;height:28%;border-radius:50%;background:rgba(20,40,20,.32)}
.ch-sq.cap::after{content:"";position:absolute;inset:4%;border-radius:50%;border:5px solid rgba(20,40,20,.32)}
.ch-sq.hint{box-shadow:inset 0 0 0 4px #2f9e44}
.ch-p{font-size:clamp(1.6rem,7.4vw,3.2rem);line-height:1;pointer-events:none;font-family:"Segoe UI Symbol","Noto Sans Symbols 2","DejaVu Sans",serif}
.ch-p.w{color:#fff;text-shadow:0 0 1px #000,0 0 1px #000,1px 1px 0 #333,-1px -1px 0 #333,1px -1px 0 #333,-1px 1px 0 #333,0 3px 4px rgba(0,0,0,.35)}
.ch-p.b{color:#1d1d1d;text-shadow:0 0 1px #fff4,0 3px 4px rgba(0,0,0,.3)}
.ch-rk,.ch-fl{position:absolute;font-style:normal;font-size:.62rem;font-weight:800;opacity:.7;pointer-events:none}.ch-rk{top:2px;left:3px}.ch-fl{bottom:1px;right:4px}
.ch-sq.l .ch-rk,.ch-sq.l .ch-fl{color:#8a6a48}.ch-sq.d .ch-rk,.ch-sq.d .ch-fl{color:#f3e6cc}
.ch-caps{min-height:28px;display:flex;align-items:center;gap:0;flex-wrap:wrap;padding:2px 2px}.ch-caps .ch-p{font-size:1.2rem}.ch-caps b{margin-left:6px;font-size:.85rem;color:var(--muted)}
.ch-status{padding:12px 14px;border-radius:12px;background:var(--surface-2);font-weight:800;font-size:1.05rem}.ch-status.check{background:color-mix(in srgb,#e03131 18%,var(--surface));color:#c92a2a}.ch-status.over{background:color-mix(in srgb,var(--t-games) 18%,var(--surface))}
.ch-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.ch-moves{margin:0;padding:8px 10px;list-style:none;max-height:220px;overflow:auto;border-radius:10px;background:var(--surface-2);display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:2px 10px;font-family:var(--mono,monospace);font-size:.88rem}
.ch-promo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;gap:6px;align-items:center;padding:12px;border-radius:14px;background:var(--surface);box-shadow:0 12px 40px rgba(0,0,0,.4);z-index:3}
.ch-promo p{margin:0 6px 0 0;font-weight:700}.ch-promo button{width:56px;height:56px;border-radius:10px;border:1px solid var(--line);background:#EEDDB8;cursor:pointer}
.ch-rules summary{cursor:pointer;font-weight:700}.ch-rules p{margin:6px 0 0;color:var(--muted);line-height:1.5}
@media (max-width:820px){.ch-wrap{grid-template-columns:1fr}.ch-p{font-size:clamp(1.5rem,9vw,3rem)}}

.ch-coach{padding:12px 14px;border-radius:12px;border-left:5px solid var(--line);background:var(--surface-2);display:flex;flex-direction:column;gap:6px;animation:jkIn .3s ease-out}
.ch-coach p{margin:0;line-height:1.45;font-size:.92rem}.ch-coach.wait{color:var(--muted);font-weight:600}
.ch-coach.best{border-left-color:#2f9e44}.ch-coach.best b{color:#2f9e44}.ch-coach.good{border-left-color:#74b816}
.ch-coach.inacc{border-left-color:#f59f00}.ch-coach.inacc b{color:#e67700}.ch-coach.mistake{border-left-color:#f76707}.ch-coach.mistake b{color:#e8590c}
.ch-coach.blunder{border-left-color:#e03131;background:color-mix(in srgb,#e03131 10%,var(--surface-2))}.ch-coach.blunder b{color:#e03131}
.ch-n{font-style:normal;font-weight:800;margin-left:1px}.ch-n.in{color:#e67700}.ch-n.mi{color:#e8590c}.ch-n.bl{color:#e03131}

.sd-coach{max-width:460px;width:100%}
.sd-stat{display:inline-flex;gap:6px}.sd-stat span{padding:4px 10px;border-radius:999px;background:var(--surface-2);font-size:.82rem}.sd-stat b{color:var(--t-games)}
.sd-c.conf{box-shadow:inset 0 0 0 3px #e03131!important;animation:sdShake .35s}
.sd-c.unit{background:color-mix(in srgb,#4dabf7 22%,var(--surface))!important}
.sd-c.glow{background:color-mix(in srgb,#40c057 30%,var(--surface))!important;transition:background .4s}
.sd-c.teach{box-shadow:inset 0 0 0 3px #2f9e44!important}
@keyframes sdShake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}

/* ===== Languages ===== */
.lg-top{display:flex;gap:8px;flex-wrap:wrap}.lg-top span{padding:6px 12px;border-radius:999px;background:var(--surface-2);font-size:.88rem}.lg-top b{color:var(--t-lang)}
.lg-h{margin:4px 0 0}
.lg-langs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.lg-lang{display:flex;gap:14px;align-items:center;padding:16px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:transform .15s,border-color .15s}
.lg-lang:hover{transform:translateY(-2px);border-color:var(--t-lang)}
.lg-flag{flex:none;width:54px;height:36px;border-radius:6px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.25);display:block}.lg-flag svg{width:100%;height:100%;display:block}.lg-flag.big{width:72px;height:48px}
.lg-lt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.lg-lt b{font-size:1.08rem}.lg-lt small{color:var(--muted)}
.lg-bar{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-top:4px}.lg-bar i{display:block;height:100%;background:var(--t-lang);border-radius:inherit}
.lg-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.lg-head h3{margin:0}.lg-head h3 small{font-weight:600;color:var(--muted)}.lg-head>div{flex:1;min-width:180px}
.lg-pass{padding:5px 12px;border-radius:999px;background:color-mix(in srgb,#2f9e44 18%,var(--surface));font-weight:800;font-size:.85rem}
.lg-units{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.lg-unit{display:flex;gap:12px;align-items:center;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.lg-unit:hover{border-color:var(--t-lang)}.lg-unit.done{background:color-mix(in srgb,#2f9e44 8%,var(--surface))}
.lg-ue{font-size:1.7rem;width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--t-lang) 14%,var(--surface))}
.lg-ut{display:flex;flex-direction:column;flex:1;min-width:0}.lg-ut small{color:var(--muted);font-size:.78rem}.lg-us{font-size:1.1rem}
.lg-extra{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.lg-card{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;padding:16px;border-radius:14px;border:2px solid var(--t-lang);background:color-mix(in srgb,var(--t-lang) 10%,var(--surface));color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.lg-card span{grid-row:1/3;font-size:1.8rem}.lg-card small{color:var(--muted)}.lg-card.soft{border-style:dashed}
.lg-tip{padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--t-lang) 10%,var(--surface-2));line-height:1.5}
.lg-words{display:grid;gap:8px}
.lg-word{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:12px;background:var(--surface-2);flex-wrap:wrap}
.lg-word.known{box-shadow:inset 4px 0 0 #2f9e44}
.lg-wt{display:flex;flex-direction:column;gap:1px;min-width:0}.lg-wt b{font-size:1.3rem}.lg-wt small{color:var(--t-lang);font-weight:600}.lg-wt span{color:var(--muted)}
.lg-wa{display:flex;gap:6px}
.lg-fc{position:relative;width:min(420px,100%);height:220px;margin:0 auto;border:0;background:none;cursor:pointer;perspective:900px;font:inherit;color:var(--ink)}
.lg-fc span{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:18px;font-size:2rem;font-weight:800;backface-visibility:hidden;transition:transform .5s;padding:16px;text-align:center}
.lg-fc .f{background:linear-gradient(135deg,color-mix(in srgb,var(--t-lang) 20%,var(--surface)),var(--surface));border:2px solid var(--t-lang)}.lg-fc .f small{font-size:1rem;color:var(--muted);font-weight:600}
.lg-fc .b{background:var(--t-lang);color:#fff;transform:rotateY(180deg);font-size:1.6rem}
.lg-fc.flip .f{transform:rotateY(180deg)}.lg-fc.flip .b{transform:rotateY(360deg)}
.lg-done{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;padding:16px}.lg-done b{font-size:1.3rem}.lg-done span{color:var(--muted);max-width:520px;line-height:1.5}
.lg-qlabel{margin:6px 0 0;color:var(--muted);font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.05em}
.lg-q{font-size:clamp(1.5rem,5vw,2.2rem);font-weight:800;display:flex;flex-direction:column;gap:4px;align-items:flex-start;line-height:1.25}.lg-q small{font-size:1rem;color:var(--t-lang);font-weight:600}
.lg-q .btn{font-size:1rem}.lg-play{font-size:1.2rem!important;padding:12px 22px}
.lg-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.lg-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;border-radius:12px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:1.05rem;font-weight:700;text-align:left;cursor:pointer}
.lg-opt small{font-weight:500;color:var(--muted);font-size:.82rem}.lg-opt:hover:not(:disabled){border-color:var(--t-lang)}
.lg-opt.right{border-color:#2f9e44;background:color-mix(in srgb,#2f9e44 14%,var(--surface))}.lg-opt.wrong{border-color:#e03131;background:color-mix(in srgb,#e03131 12%,var(--surface))}
.lg-typeform input{flex:1;min-width:180px;font-size:1.1rem}
.lg-fb{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:12px 14px;border-radius:12px;animation:jkIn .3s ease-out}.lg-fb.ok{background:color-mix(in srgb,#2f9e44 14%,var(--surface))}.lg-fb.no{background:color-mix(in srgb,#e03131 12%,var(--surface))}
.lg-fb span{font-weight:800;font-size:1.1rem}.lg-fb small{color:var(--muted)}
.lg-timer{font-weight:800;color:var(--t-lang)}
.lg-result{align-items:center}
.lg-ring{--p:0;width:150px;height:150px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(closest-side,var(--surface) 78%,transparent 80%),conic-gradient(var(--t-lang) calc(var(--p)*1%),var(--surface-2) 0)}
.lg-ring b{font-size:2rem}.lg-ring small{color:var(--muted)}
.lg-wrong{list-style:none;margin:0;padding:0;display:grid;gap:4px;width:100%}.lg-wrong li{padding:8px 12px;border-radius:10px;background:var(--surface-2)}
.lg-cert{background:#fffdf6;color:#1b1b1b;border-radius:10px;padding:14px;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.lg-cert-in{border:3px double #b08d3c;border-radius:6px;padding:34px 24px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-family:Georgia,serif}
.lg-cert-in>small{letter-spacing:.2em;text-transform:uppercase;color:#8a6d2b;font-family:inherit}
.lg-cert-in h2{margin:6px 0 0;font-size:clamp(1.6rem,5vw,2.4rem);border-bottom:1px solid #b08d3c;padding:0 20px 6px}.lg-cert-in h3{margin:0;color:#3B5BDB}.lg-cert-in p{margin:0}
.lg-cert-f{display:flex;justify-content:space-between;width:100%;margin-top:18px;font-size:.85rem;color:#555}
@media print{body.lg-printing *{visibility:hidden!important}body.lg-printing #lgCert,body.lg-printing #lgCert *{visibility:visible!important}body.lg-printing #lgCert{position:fixed;inset:0;box-shadow:none;display:flex;align-items:center;justify-content:center}}
@media (max-width:560px){.lg-opts{grid-template-columns:1fr}.lg-fc{height:190px}}



/* ===== Mental health ===== */
.mh-sos{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:12px 16px;border-radius:14px;background:color-mix(in srgb,#e03131 10%,var(--surface));border:1px solid color-mix(in srgb,#e03131 35%,var(--line))}
.mh-sos>span{color:var(--muted);font-size:.9rem}
.mh-sos.big{flex-direction:column;align-items:stretch;padding:18px;border-width:2px}.mh-sos.big h4{margin:0;font-size:1.15rem}.mh-sos.big p{margin:0;line-height:1.55}
.mh-sos.calm{background:var(--surface);border-color:color-mix(in srgb,var(--t-mind) 45%,var(--line))}
.mh-hot{display:flex;flex-wrap:wrap;gap:8px;width:100%}.mh-sos:not(.big) .mh-hot{width:auto}
.mh-hot a{display:flex;flex-direction:column;padding:8px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;min-width:120px}
.mh-hot a:hover{border-color:#e03131}.mh-hot a small{font-size:.7rem;color:var(--muted);font-weight:700}.mh-hot a b{font-size:1.02rem}
.mh-sos-f{color:var(--muted);width:100%}.mh-sos-f a{color:inherit;font-weight:700}
.mh-link{border:0;background:none;padding:0;color:var(--t-mind);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.mh-tabs{position:sticky;top:64px;z-index:5;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.mh-disc{margin-top:4px}
.mh-moods{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.mh-moods button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;border-radius:14px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s}
.mh-moods button span{font-size:2rem;line-height:1}.mh-moods button small{font-weight:700;font-size:.8rem;color:var(--muted)}
.mh-moods button:hover{transform:translateY(-2px)}.mh-moods button[aria-pressed="true"]{border-color:var(--t-mind);background:color-mix(in srgb,var(--t-mind) 14%,var(--surface))}
.mh-tags{display:flex;flex-wrap:wrap;gap:6px}.mh-tags button,.mh-opts button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:.88rem;cursor:pointer}
.mh-tags button[aria-pressed="true"],.mh-opts button[aria-pressed="true"]{background:var(--t-mind);color:#fff;border-color:transparent}
#mhApp textarea,#mhApp input:not([type="range"]){font:inherit;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}
.mh-chart{display:grid;grid-template-columns:repeat(14,1fr);gap:4px;align-items:end;min-height:130px}
.mh-chart div{display:flex;flex-direction:column;align-items:center;gap:3px}.mh-chart i{width:100%;max-width:26px;border-radius:6px 6px 3px 3px;background:var(--surface-2)}
.mh-chart i.m0{background:#e8590c}.mh-chart i.m1{background:#f59f00}.mh-chart i.m2{background:#a9b3c4}.mh-chart i.m3{background:#40c057}.mh-chart i.m4{background:#12b886}
.mh-chart span{font-size:.9rem}.mh-chart small{font-size:.68rem;color:var(--muted)}
.mh-notes{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}.mh-notes li{display:flex;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2)}.mh-notes li>span{font-size:1.3rem}.mh-notes small{color:var(--muted)}.mh-notes p{margin:2px 0 0}
.mh-sugg{border-left:4px solid var(--t-mind)}
.mh-note{padding:12px 14px;border-radius:12px;background:color-mix(in srgb,#f59f00 13%,var(--surface-2));line-height:1.5}.mh-note a{color:inherit;font-weight:800}
.mh-toolrow{display:flex;flex-wrap:wrap;gap:8px}
.mh-tool{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--t-mind) 45%,var(--line));background:color-mix(in srgb,var(--t-mind) 8%,var(--surface));color:var(--ink);font:inherit;font-weight:700;font-size:.9rem;cursor:pointer}
.mh-tool span{font-size:1.15rem}.mh-tool:hover{background:color-mix(in srgb,var(--t-mind) 16%,var(--surface))}
.mh-cta{display:flex;align-items:center;gap:14px;padding:16px;border-radius:16px;border:2px solid var(--t-mind);background:color-mix(in srgb,var(--t-mind) 9%,var(--surface));flex-wrap:wrap}
.mh-cta>span{font-size:2rem}.mh-cta div{flex:1;min-width:200px;display:flex;flex-direction:column}.mh-cta small{color:var(--muted)}
.mh-q h3{font-size:1.15rem;line-height:1.4}
.mh-opts{display:flex;flex-direction:column;gap:8px}.mh-opts button{border-radius:12px;padding:12px 14px;text-align:left;font-size:.98rem}
.mh-opts.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.mh-res{border-top:5px solid var(--t-mind)}.mh-res.lv0{border-top-color:#40c057}.mh-res.lv1{border-top-color:#fab005}.mh-res.lv2{border-top-color:#fd7e14}.mh-res.lv3{border-top-color:#e03131}
.mh-h{margin:6px 0 0;font-size:.95rem}.mh-ul{margin:0;padding-left:20px;display:grid;gap:5px;line-height:1.5}
.mh-when{margin:0;padding:10px 12px;border-radius:10px;background:var(--surface-2);line-height:1.5}
.mh-tests{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.mh-test,.mh-tcard,.mh-topic{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.mh-test span,.mh-tcard span,.mh-topic span{grid-row:1/3;font-size:1.8rem}.mh-test small,.mh-tcard small,.mh-topic small{color:var(--muted);font-size:.84rem;line-height:1.35}
.mh-test:hover,.mh-tcard:hover,.mh-topic:hover,.mh-tcard.on{border-color:var(--t-mind)}.mh-tcard.on{background:color-mix(in srgb,var(--t-mind) 10%,var(--surface))}
.mh-toolgrid,.mh-topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.mh-score{display:flex;align-items:baseline;gap:8px}.mh-score b{font-size:2.6rem;color:var(--t-mind)}.mh-score small{color:var(--muted)}
.mh-hist{list-style:none;margin:0;padding:0;display:grid;gap:4px}.mh-hist li{display:grid;grid-template-columns:110px 1fr auto;gap:10px;padding:8px 12px;border-radius:10px;background:var(--surface-2);font-size:.9rem}.mh-hist em{font-style:normal;font-weight:700}
.mh-breath{display:grid;place-items:center;padding:18px 0}
.mh-orb{width:170px;height:170px;border-radius:50%;display:grid;place-items:center;text-align:center;font-weight:800;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--t-mind) 45%,#fff),var(--t-mind));color:#fff;transform:scale(.7);transition:transform 4s ease-in-out;box-shadow:0 10px 40px color-mix(in srgb,var(--t-mind) 40%,transparent)}
.mh-orb.in,.mh-orb.hold{transform:scale(1)}.mh-orb.out,.mh-orb.hold2{transform:scale(.7)}
.mh-ground{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:20px;border-radius:16px;background:color-mix(in srgb,var(--t-mind) 10%,var(--surface-2))}.mh-ground b{font-size:2.4rem}.mh-ground span{font-size:1.2rem;font-weight:800}.mh-ground small{color:var(--muted)}
.mh-wl{list-style:none;margin:0;padding:0;display:grid;gap:6px}.mh-wl li{position:relative;display:flex;flex-direction:column;gap:6px;padding:10px 40px 10px 12px;border-radius:12px;background:var(--surface-2)}.mh-wl li small{color:var(--muted)}
.mh-wl li.act{box-shadow:inset 4px 0 0 #40c057}.mh-wl li.park{box-shadow:inset 4px 0 0 #74c0fc;opacity:.85}
.mh-x{position:absolute;top:8px;right:8px;border:0;background:none;color:var(--muted);cursor:pointer;font-size:1rem}
.mh-kind{margin:0;padding-left:22px;display:grid;gap:10px}.mh-kind li{line-height:1.5}.mh-kind b{display:block;font-size:1.05rem}.mh-kind span{color:var(--muted)}
.mh-links{display:flex;flex-wrap:wrap;gap:8px}.mh-links a{padding:8px 12px;border-radius:10px;background:var(--surface-2);color:var(--ink);text-decoration:none;font-weight:600;font-size:.9rem}.mh-links a:hover{background:color-mix(in srgb,var(--t-mind) 14%,var(--surface-2))}
@media (max-width:560px){.mh-moods button span{font-size:1.6rem}.mh-chart{gap:2px}.mh-tabs{top:56px}.mh-hist li{grid-template-columns:1fr auto}.mh-hist li span{grid-column:1/-1;font-size:.78rem;color:var(--muted)}.mh-sos:not(.big){padding:10px 12px;gap:6px}.mh-sos:not(.big)>span{display:none}.mh-sos:not(.big) .mh-hot{flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:2px;scrollbar-width:none}.mh-sos:not(.big) .mh-hot a{flex:none;min-width:0;padding:6px 10px}.mh-sos:not(.big) .mh-hot a small{font-size:.62rem}.mh-sos:not(.big) .mh-hot a b{font-size:.92rem}.mh-sos-f{font-size:.78rem}.mh-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.mh-tabs button{flex:none;white-space:nowrap}}
/* ===== Languages v100: translator ===== */
.lg-tr{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:16px;background:var(--surface);border:2px solid color-mix(in srgb,var(--t-lang) 40%,var(--line))}
.lg-tr-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lg-tr-head h4{margin:0;font-size:1.05rem;flex:1;min-width:160px}
.lg-tr-dir{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:700;font-size:.9rem}
.lg-tr-dir span{padding:6px 10px;border-radius:999px;background:var(--surface-2)}
.lg-tr-form{display:flex;gap:8px;align-items:stretch}.lg-tr-form textarea{flex:1;min-height:52px;max-height:160px;resize:vertical;font:inherit;font-size:1.05rem;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}
.lg-tr-form textarea:focus{outline:2px solid var(--t-lang);outline-offset:1px}
.lg-tr-form .btn{align-self:stretch;min-width:104px}
.lg-tr-hist{display:flex;gap:6px;flex-wrap:wrap}.lg-tr-hist button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:4px 10px;font:inherit;font-size:.82rem;cursor:pointer;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-tr-main{padding:14px 16px;border-radius:14px;background:color-mix(in srgb,var(--t-lang) 10%,var(--surface-2));display:flex;flex-direction:column;gap:4px}
.lg-tr-main>small:first-child{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.lg-tr-main b{font-size:1.45rem;line-height:1.3}.lg-tr-main i{font-style:normal;color:var(--muted)}
.lg-tr-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.lg-tr-alts{display:grid;gap:6px}.lg-tr-alt{display:flex;gap:10px;align-items:center;padding:8px 12px;border-radius:10px;background:var(--surface-2);flex-wrap:wrap}.lg-tr-alt b{font-size:1.02rem}.lg-tr-alt small{color:var(--muted)}
.lg-tr-note{padding:10px 12px;border-radius:10px;background:color-mix(in srgb,#f59f00 12%,var(--surface-2));font-size:.92rem;line-height:1.45}
.lg-tr-ex{list-style:none;margin:0;padding:0;display:grid;gap:8px;counter-reset:ex}
.lg-tr-ex li{counter-increment:ex;display:grid;grid-template-columns:28px 1fr auto;gap:2px 10px;align-items:start;padding:10px 12px;border-radius:12px;background:var(--surface-2)}
.lg-tr-ex li::before{content:counter(ex);grid-row:1/4;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--t-lang);color:#fff;font-weight:800;font-size:.78rem;margin-top:2px}
.lg-tr-ex b{font-size:1.04rem;line-height:1.4}.lg-tr-ex i{font-style:normal;color:var(--muted);font-size:.86rem;grid-column:2}.lg-tr-ex span{grid-column:2;font-size:.92rem}.lg-tr-ex button{grid-column:3;grid-row:1}
.lg-tr-ex mark{background:color-mix(in srgb,var(--t-lang) 28%,transparent);color:inherit;border-radius:4px;padding:0 2px}
.lg-tr-src{font-size:.78rem;color:var(--muted)}
.lg-saved{display:grid;gap:6px}.lg-saved div{display:flex;gap:10px;align-items:center;padding:8px 12px;border-radius:10px;background:var(--surface-2);flex-wrap:wrap}.lg-saved div span{flex:1;min-width:140px}.lg-saved small{color:var(--muted)}
@media (max-width:560px){.lg-tr-form{flex-direction:column}.lg-tr-form .btn{min-height:44px}.lg-tr-main b{font-size:1.25rem}}
/* ===== Languages v98: path to mastery ===== */
.lg-mlv{display:grid;gap:8px}
.lg-lv{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.lg-lv>b{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:1.1rem;background:color-mix(in srgb,var(--t-lang) 14%,var(--surface-2));color:var(--t-lang)}
.lg-lv.done>b{background:#2f9e44;color:#fff}.lg-lv.cur{border:2px solid var(--t-lang);box-shadow:0 6px 18px color-mix(in srgb,var(--t-lang) 25%,transparent)}
.lg-lv div{display:flex;flex-direction:column;gap:2px;min-width:0}.lg-lv div small{color:var(--muted);font-size:.84rem;line-height:1.4}.lg-lv div em{font-style:normal;font-size:.78rem;font-weight:700;color:var(--t-lang)}
.lg-pace{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lg-res{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.lg-ri{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;position:relative}
.lg-ri:hover{border-color:var(--t-lang)}.lg-ri b{padding-right:58px}.lg-ri small{color:var(--muted);line-height:1.4}
.lg-ri i{position:absolute;top:10px;right:10px;font-style:normal;font-size:.7rem;font-weight:800;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,#2f9e44 18%,var(--surface));color:#2f9e44}.lg-ri i.paid{background:color-mix(in srgb,#e67700 18%,var(--surface));color:#e67700}
.lg-habits{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.lg-habit{padding:12px 14px;border-radius:14px;background:var(--surface-2);display:flex;flex-direction:column;gap:4px}.lg-habit b{font-size:.98rem}.lg-habit small{color:var(--muted);line-height:1.45}.lg-habit em{font-style:normal;font-weight:800;color:var(--t-lang);font-size:.85rem}
.lg-tutor{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:560px){.lg-lv{grid-template-columns:44px 1fr}.lg-lv>b{width:44px;height:44px}.lg-lv>button{grid-column:1/-1}}
/* ===== Languages v97: switcher, conversations, confidence, videos ===== */
.lg-nav{position:sticky;top:64px;z-index:6;display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:16px;background:color-mix(in srgb,var(--t-lang) 12%,var(--surface));border:2px solid color-mix(in srgb,var(--t-lang) 55%,var(--line));box-shadow:0 8px 22px rgba(0,0,0,.12);backdrop-filter:blur(8px)}
.lg-nav-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lg-nav .lg-flag{width:42px;height:28px}
.lg-nav-cur{display:flex;flex-direction:column;flex:1;min-width:120px;line-height:1.2}.lg-nav-cur small{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.lg-nav-cur b{font-size:1.05rem}
.lg-switch-btn{background:var(--t-lang)!important;color:#fff!important;border-color:transparent!important;font-weight:800}
.lg-nav-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 6px;scrollbar-width:thin}
.lg-nav-strip button{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 10px;border-radius:12px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;min-width:74px}
.lg-nav-strip button.on{border-color:var(--t-lang);background:color-mix(in srgb,var(--t-lang) 16%,var(--surface))}
.lg-nav-strip .lg-flag{width:38px;height:25px}
.lg-continue{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;border:2px solid var(--t-lang);background:color-mix(in srgb,var(--t-lang) 10%,var(--surface));color:var(--ink);font:inherit;text-align:left;cursor:pointer;width:100%}
.lg-continue b{display:block;font-size:1.05rem}.lg-continue small{color:var(--muted)}.lg-continue>span:last-child{margin-left:auto;font-weight:800;color:var(--t-lang)}
.lg-sec{margin:6px 0 0;display:flex;align-items:center;gap:8px}.lg-sec small{font-weight:600;color:var(--muted);font-size:.85rem}
.lg-conf{display:grid;grid-template-columns:auto 1fr;gap:14px 18px;align-items:center;padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.lg-conf .lg-ring{width:118px;height:118px}.lg-conf .lg-ring b{font-size:1.6rem}
.lg-conf-l h4{margin:0 0 2px;font-size:1.1rem}.lg-conf-l p{margin:0 0 8px;color:var(--muted);font-size:.9rem;line-height:1.45}
.lg-cbars{display:grid;gap:6px}.lg-cbar{display:grid;grid-template-columns:118px 1fr 42px;gap:8px;align-items:center;font-size:.84rem}.lg-cbar .lg-bar{margin:0;height:8px}.lg-cbar em{font-style:normal;text-align:right;font-weight:700}.lg-cbar.na{opacity:.5}
.lg-convs{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.lg-chat{display:flex;flex-direction:column;gap:10px}
.lg-bub{max-width:min(86%,520px);padding:10px 14px;border-radius:16px;background:var(--surface-2);display:flex;flex-direction:column;gap:2px;position:relative}
.lg-bub.b{align-self:flex-end;background:color-mix(in srgb,var(--t-lang) 18%,var(--surface));border-bottom-right-radius:4px}.lg-bub.a{border-bottom-left-radius:4px}
.lg-bub>small:first-child{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.lg-bub b{font-size:1.08rem}.lg-bub i{font-style:normal;color:var(--muted);font-size:.85rem}.lg-bub span.en{font-size:.9rem}
.lg-bub .lg-bsay{position:absolute;top:6px;right:8px;border:0;background:none;cursor:pointer;font-size:1rem;opacity:.75}
.lg-bub.now{outline:3px solid var(--t-lang);outline-offset:2px}
.lg-bub.hid b,.lg-bub.hid i{filter:blur(6px);user-select:none}
.lg-turn{padding:14px;border-radius:14px;border:2px dashed var(--t-lang);display:flex;flex-direction:column;gap:10px}
.lg-turn h4{margin:0}
.lg-rate{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.lg-rate button{min-width:64px;flex-direction:column;display:flex;align-items:center;gap:2px;padding:10px;border-radius:12px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.lg-rate button span{font-size:1.5rem}.lg-rate button small{font-size:.72rem;color:var(--muted)}.lg-rate button.on{border-color:var(--t-lang);background:color-mix(in srgb,var(--t-lang) 14%,var(--surface))}
.lg-vtopics{display:flex;flex-wrap:wrap;gap:8px}.lg-vtopics button[aria-pressed="true"]{background:var(--t-lang);color:#fff;border-color:transparent}
.lg-vbox{min-height:0}
[dir="rtl"].lg-bub,.lg-bub [dir="rtl"]{text-align:right}
@media (max-width:560px){.lg-conf{grid-template-columns:1fr;justify-items:center}.lg-conf-l{width:100%}.lg-cbar{grid-template-columns:96px 1fr 38px}.lg-nav{top:56px;padding:8px 10px}.lg-nav-row{gap:6px;flex-wrap:nowrap}.lg-nav-cur{min-width:0}.lg-nav-cur small,.lg-nav-cur .hint,.lg-nl{display:none}.lg-nav .btn.small{padding:7px 10px;font-size:.82rem;white-space:nowrap}.lg-nav .lg-flag{width:34px;height:23px}}
