:root{--background:#f3f5f7;--surface:#fff;--border:#d9dee3;--text:#14181d;--text-muted:#5b6672;--accent:#1f5fbf;--accent-hover:#17499a;--accent-foreground:#fff;--accent-active:#123a7a;--accent-soft:#eef4fc;--danger:#b42318;--danger-soft:#fdf2f1;--danger-soft-2:#fbe4e2;--success:#1a7f43;--success-soft:#e9f6ee;--focus:#1f5fbf;--surface-2:#e6eaee;--border-strong:#b8c2cb;--gold:#d9a82a;--gold-dark:#b7791f;--gold-soft:#fbf3dc;--gold-text:#7a5a10;--gold-border:#c8a34a;--star-off:#c9d1d8;--level-done:#f4f8f5;--on-strong:#fff;--overlay:rgb(var(--ink) / .5);--ink:20 24 29;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ocean:#a9d3df;--land-context:#1f6a3d;--land-target:#f6f7f4;--land-stroke:#7f96a5;--land-hover:#dfe6ea;--land-base:#d3dbd6;--land-blink:#fff;--sea-hover:#93c3d2;--river:#1d5fa8;--river-hover:#0b3f78;--zone-stroke:#d97b2b;--leader:#3d4a55;--leader-halo:none;--marker-fill:#fff;--marker-stroke:#14181d;--city-fill:#fff;--city-stroke:#14181d;--city-selected:#bcd3f2;--inset-stroke:#14181d59;--state-correct-1:#2f9e5c;--state-correct-2:#d9a82a;--state-correct-3:#f0d47c;--state-failed:#c8464c;--topbar-h:60px;--tabbar-h:0px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--radius:10px;--shadow:0 1px 2px rgb(var(--ink) / .06), 0 4px 12px rgb(var(--ink) / .06);--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}:root[data-theme=dark]{--background:#0f1419;--surface:#181f27;--border:#2b3540;--text:#e8edf2;--text-muted:#9fabb8;--accent:#79abf5;--accent-hover:#93bcf8;--accent-foreground:#0b1a33;--accent-active:#5f95e6;--accent-soft:#1b2a3f;--danger:#f2948b;--danger-soft:#3a1f1d;--danger-soft-2:#4b2825;--success:#62cf8a;--success-soft:#16301f;--focus:#93bcf8;--surface-2:#232c36;--border-strong:#3f4b58;--gold:#e6b83e;--gold-dark:#e6b83e;--gold-soft:#33290f;--gold-text:#f0d47c;--gold-border:#a8852f;--star-off:#3f4b58;--level-done:#1a2620;--on-strong:#0f1419;--overlay:#0009;--ink:0 0 0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ocean:#1b3a47;--land-context:#214f35;--land-target:#b9c3cd;--land-stroke:#5f7382;--land-hover:#d8dfe6;--land-base:#46515b;--land-blink:#eef2f6;--sea-hover:#2f6a80;--river:#6fa8e8;--river-hover:#9cc4f2;--zone-stroke:#e08a3c;--leader:#0f1419;--leader-halo:drop-shadow(0 0 1.5px #ffffffe6);--marker-fill:#fff;--marker-stroke:#0f1419;--city-fill:#fff;--city-stroke:#0f1419;--city-selected:#bcd3f2;--inset-stroke:#fff6}*,:before,:after{box-sizing:border-box}html,body{margin:0}html{overscroll-behavior-y:none;-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--text);background:var(--background);min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom));-webkit-tap-highlight-color:transparent;touch-action:manipulation;flex-direction:column;font-size:16px;line-height:1.5;display:flex;overflow-x:hidden}body.in-game{padding-bottom:0}button,a,.flag-tile,.map{-webkit-touch-callout:none}img{-webkit-user-drag:none;max-width:100%}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:32px}h2{font-size:24px}h3{font-size:20px}p{margin:0}[hidden]{display:none!important}.muted{color:var(--text-muted)}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 16px}.lucide{stroke-width:2px;flex-shrink:0;width:20px;height:20px}.topbar{background:var(--surface);box-shadow:0 1px 0 var(--border);z-index:15;padding-top:var(--safe-top);position:sticky;top:0}.topbar-inner{height:var(--topbar-h);align-items:center;gap:32px;display:flex}@media (width<=1100px){.topbar-inner{gap:16px}.topnav a{padding:8px;font-size:15px}}@media (width>=768px) and (width<=900px){.brand span{display:none}.topnav a{padding:6px;font-size:14px}}.brand{color:var(--text);border-radius:6px;flex-shrink:0;align-items:center;gap:8px;font-size:20px;font-weight:700;text-decoration:none;display:inline-flex}.brand .lucide{color:var(--accent);width:24px;height:24px}.btn{border-radius:var(--radius);min-height:44px;font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-foreground)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-ghost:hover:not(:disabled){background:var(--background)}.btn-ghost:active:not(:disabled){background:var(--surface-2)}.btn-icon{background:var(--surface);width:44px;height:44px;color:var(--text);border-color:var(--border);box-shadow:var(--shadow);padding:0}.btn-icon:hover:not(:disabled){background:var(--background)}.btn-icon:active:not(:disabled){background:var(--surface-2)}:is(.btn,.brand,.region-card):focus-visible{outline:3px solid var(--focus);outline-offset:2px}.screen{flex-direction:column;flex:1;display:flex}.hero{max-width:62ch;padding:48px 0 32px}.hero .lead{color:var(--text-muted);margin-top:12px;font-size:20px}.section-title{margin-bottom:16px}.region-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding-bottom:40px;display:grid}.section-title{align-items:center;gap:8px;display:flex}.section-title .lucide{color:var(--accent);width:24px;height:24px}.section-note{color:var(--text-muted);max-width:70ch;margin:-8px 0 16px;font-size:14px}.region-grid-compact{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.region-grid-compact .region-card{gap:8px;padding:16px}.region-grid-compact .name{align-items:center;gap:8px;font-size:18px;display:inline-flex}.flag{width:24px;height:18px;box-shadow:0 0 0 1px rgb(var(--ink) / .15);object-fit:cover;border-radius:2px;flex-shrink:0}.search{max-width:420px;margin-bottom:16px;position:relative}.search .lucide{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;padding:0 12px 0 40px;transition:border-color .15s}.search input:hover{border-color:var(--border-strong)}.search input:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--accent)}.empty{color:var(--text-muted);padding-bottom:40px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.region-card .subtitle{color:var(--text-muted);margin:0;font-size:14px}.region-card .subtitle:empty{display:none}.region-card{grid-template-rows:subgrid;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-row:span 3;align-content:start;row-gap:8px;padding:20px;display:grid}.region-card .name{font-size:20px;font-weight:700}@supports not (grid-template-rows:subgrid){.region-card{flex-direction:column;gap:8px;display:flex}.region-card .name{min-height:2.4em}.region-card .subtitle:not(:empty){min-height:3em}}.mode-list{flex-direction:column;gap:8px;display:flex}.mode-btn{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-weight:600;transition:border-color .15s,background-color .15s;display:flex}.mode-btn:hover{border-color:var(--accent);background:var(--background)}.mode-btn:active{background:var(--surface-2)}.mode-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.mode-btn .lucide{color:var(--accent);flex-shrink:0}.mode-name{overflow-wrap:anywhere;flex:auto;min-width:0}.mode-count{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:14px;font-weight:500}.mode-best{text-align:right;min-width:40px;color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:14px}.mode-best.has-score{color:var(--success)}.mode-more{min-height:36px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:0 8px;font-size:14px;font-weight:600;transition:color .15s,background-color .15s;display:inline-flex}.mode-more:hover{color:var(--text);background:var(--background)}.mode-more:active{background:var(--surface-2)}.mode-more:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.mode-more .lucide{width:16px;height:16px}.sources{color:var(--text-muted);max-width:75ch;padding:8px 0 40px;font-size:14px}.sources a{color:var(--accent);border-radius:4px}.sources a:hover{color:var(--accent-hover)}.sources a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.game{height:calc(100vh - var(--topbar-h) - var(--safe-top));height:calc(100dvh - var(--topbar-h) - var(--safe-top));flex:none;min-height:0;overflow:hidden}.game-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;padding:12px 16px;display:flex}.prompt{flex-wrap:wrap;flex:1;align-items:baseline;gap:8px;min-width:200px;display:flex}.prompt-label{color:var(--text-muted)}.prompt strong{font-size:24px;font-weight:700}.prompt-flag{object-fit:cover;width:48px;height:36px;box-shadow:0 0 0 1px rgb(var(--ink) / .2);border-radius:3px;align-self:center}.map-prompt{z-index:2;background:var(--surface);border:1px solid var(--border);max-width:calc(100% - 140px);box-shadow:0 8px 24px rgb(var(--ink) / .2);pointer-events:none;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.map-prompt-label{color:var(--text-muted);white-space:nowrap;font-size:14px}.map-prompt strong{text-overflow:ellipsis;white-space:nowrap;font-size:20px;line-height:1.2;overflow:hidden}.map-prompt strong:empty{display:none}@media (width<=767px){.map-prompt{max-width:calc(100% - 24px);padding:8px 14px;bottom:12px}.map-prompt strong{font-size:18px}.map-wrap .zoom-controls{bottom:72px}}.map-tip{z-index:2;background:var(--text);color:var(--on-strong);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow);border-radius:8px;padding:6px 10px;font-size:14px;font-weight:600;position:absolute;transform:translate(-50%,calc(-100% - 14px))}.map-tip:after{content:"";border:6px solid #0000;border-top-color:var(--text);border-bottom:0;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.feedback{min-height:21px;font-size:14px;font-weight:600}.feedback.ok{color:var(--success)}.feedback.ko{color:var(--danger)}.hud{gap:24px;margin:0;display:flex}.hud div{flex-direction:column;align-items:flex-end;display:flex}.hud dt{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:12px}.hud dd{font-variant-numeric:tabular-nums;margin:0;font-size:20px;font-weight:700}.map-wrap{background:var(--ocean);flex:1;min-height:0;position:relative;overflow:hidden}.map{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.map:active{cursor:grabbing}.map-loading{color:var(--text);background:var(--ocean);z-index:1;justify-content:center;align-items:center;gap:12px;font-weight:600;display:flex;position:absolute;inset:0}.spinner{border:3px solid rgb(var(--ink) / .2);border-top-color:var(--text);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.flag-grid{background:var(--background);grid-template-columns:repeat(auto-fill,124px);place-content:start center;gap:12px;padding:16px;display:grid;position:absolute;inset:0;overflow-y:auto}.flag-tile{aspect-ratio:4/3;background:var(--surface);min-height:44px;box-shadow:var(--shadow);cursor:pointer;border:3px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:6px;transition:border-color .15s,background-color .15s,transform .1s;display:flex}.flag-tile img{object-fit:contain;width:100%;height:100%;box-shadow:0 0 0 1px rgb(var(--ink) / .15);pointer-events:none;border-radius:4px;display:block}.flag-tile:hover:not([data-state]){border-color:var(--border-strong);transform:translateY(-2px)}.flag-tile:active:not([data-state]){transform:none}.flag-tile:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.flag-tile{position:relative}.tile-mark{pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.tile-mark .lucide{color:#fff;background:var(--mark-bg,var(--state-correct-1));stroke-width:3px;border-radius:50%;width:34px;height:34px;padding:5px;box-shadow:0 2px 6px #00000059}.tile-mark .mark-ko{display:none}.flag-tile[data-state^=correct],.flag-tile[data-state=failed]{cursor:default}.flag-tile[data-state^=correct] img,.flag-tile[data-state=failed] img{filter:grayscale(.85);opacity:.35}.flag-tile[data-state^=correct] .tile-mark,.flag-tile[data-state=failed] .tile-mark{display:flex}.flag-tile[data-state=failed] .mark-ok{display:none}.flag-tile[data-state=failed] .mark-ko{display:block}.flag-tile[data-state=correct-1]{--mark-bg:var(--state-correct-1);border-color:var(--state-correct-1);background:color-mix(in srgb, var(--state-correct-1) 22%, var(--surface))}.flag-tile[data-state=correct-2]{--mark-bg:var(--state-correct-2);border-color:var(--state-correct-2);background:color-mix(in srgb, var(--state-correct-2) 22%, var(--surface))}.flag-tile[data-state=correct-3]{--mark-bg:#c9922a;border-color:var(--state-correct-3);background:color-mix(in srgb, var(--state-correct-3) 30%, var(--surface))}.flag-tile[data-state=failed],.flag-tile.flash{--mark-bg:var(--state-failed);border-color:var(--state-failed);background:color-mix(in srgb, var(--state-failed) 22%, var(--surface))}.flag-tile[data-state=reveal]{border-color:var(--state-failed);animation:.6s ease-in-out infinite alternate tile-blink}@keyframes tile-blink{0%{background:var(--surface)}to{background:color-mix(in srgb, var(--state-failed) 45%, var(--surface))}}.flag-tile.is-selected{border-color:var(--accent);background:var(--accent-soft)}@media (width<=640px){.flag-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px}}.zoom-controls{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:16px;right:16px}.sphere{fill:var(--ocean)}.land{stroke:var(--land-stroke);stroke-width:.6px;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .15s}.land.context{fill:var(--land-context);stroke:#ffffff40;pointer-events:none}.land.neutral{fill:var(--land-target)}.land.base{fill:var(--land-base);stroke:none}.sea.target{fill:var(--ocean);stroke:#ffffff8c;stroke-width:.8px;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .15s}.sea.target:not([data-state]):hover{fill:var(--sea-hover)}.river{fill:none;stroke:var(--river);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none;transition:stroke .15s}.river-hit{fill:none;stroke:#0000;stroke-width:16px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}.river-group:not([data-state]):hover .river{stroke:var(--river-hover);stroke-width:3.2px}.river-group[data-state] .river{stroke-width:3.2px}.river-group[data-state=correct-1] .river{stroke:var(--state-correct-1)}.river-group[data-state=correct-2] .river{stroke:var(--state-correct-2)}.river-group[data-state=correct-3] .river{stroke:var(--state-correct-3)}.river-group[data-state=failed] .river,.river-group.flash .river{stroke:var(--state-failed)}.river-group[data-state=reveal] .river{stroke:var(--state-failed);stroke-width:4px;animation:.6s ease-in-out infinite alternate river-blink}@keyframes river-blink{0%{opacity:1}to{opacity:.15}}.target{fill:var(--land-target);cursor:pointer}.target:not([data-state]):hover{fill:var(--land-hover)}.zone{fill:#fff0;stroke:var(--zone-stroke);stroke-width:1.2px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .15s}.zone:not([data-state]):hover{fill:#ffffff59}.zone[data-state]{fill-opacity:.45}.zone.flash{fill:var(--state-failed);fill-opacity:.45}.micro{cursor:pointer}.micro .leader{stroke:var(--leader);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none;filter:var(--leader-halo)}.micro circle{fill:var(--marker-fill);stroke:var(--marker-stroke);stroke-width:2px;vector-effect:non-scaling-stroke;transition:fill .15s}.micro:not([data-state]):hover circle{fill:var(--land-hover)}.micro.is-dot .leader{display:none}.micro.is-dot circle{stroke-width:1.5px}.micro[data-state=correct-1] circle{fill:var(--state-correct-1)}.micro[data-state=correct-2] circle{fill:var(--state-correct-2)}.micro[data-state=correct-3] circle{fill:var(--state-correct-3)}.micro[data-state=failed] circle,.micro.flash circle{fill:var(--state-failed)}.micro[data-state=reveal] circle{stroke:var(--state-failed);animation:.6s ease-in-out infinite alternate reveal-blink}.city{stroke:var(--city-stroke);stroke-width:1.5px;vector-effect:non-scaling-stroke;fill:var(--city-fill);transition:fill .15s}.city:not([data-state]):hover{fill:var(--land-hover)}.target[data-state=correct-1]{fill:var(--state-correct-1)}.target[data-state=correct-2]{fill:var(--state-correct-2)}.target[data-state=correct-3]{fill:var(--state-correct-3)}.target[data-state=failed]{fill:var(--state-failed)}.target[data-state=reveal]{stroke:var(--state-failed);stroke-width:2px;animation:.6s ease-in-out infinite alternate reveal-blink}@keyframes reveal-blink{0%{fill:var(--state-failed)}to{fill:var(--land-blink)}}@media (prefers-reduced-motion:reduce){.target[data-state=reveal]{fill:var(--state-failed);animation:none}}.target.flash{fill:var(--state-failed);transition:none}.inset-frame{fill:var(--ocean);stroke:var(--inset-stroke);stroke-width:1px;vector-effect:non-scaling-stroke}.modal-backdrop{background:var(--overlay);z-index:10;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:520px;max-height:calc(100vh - 32px);box-shadow:0 20px 50px rgb(var(--ink) / .25);border-radius:16px;flex-direction:column;gap:16px;padding:32px;display:flex;overflow:auto}.stat-row{grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 24px;display:grid}.stat{background:var(--background);border-radius:var(--radius);flex-direction:column;align-items:center;padding:16px 8px;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-size:32px;font-weight:700}.stat-label{color:var(--text-muted);font-size:14px}.best{color:var(--success);font-weight:600}.missed{flex-wrap:wrap;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.missed li{border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:600;display:inline-flex}.missed li:before{content:"";background:var(--dot);border-radius:50%;width:10px;height:10px}.modal-actions{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}@media (width<=767px){h1{font-size:24px}.hero{padding:32px 0 24px}.hero .lead{font-size:16px}.game-bar{gap:8px 12px;padding:8px 12px}#btn-quit span{display:none}#btn-quit{justify-content:center;width:40px;min-height:40px;padding:0}.prompt{flex:200px;gap:6px;min-width:0}.prompt-label{font-size:14px}.prompt strong{font-size:19px;line-height:1.2}.prompt .feedback{flex-basis:100%;font-size:13px}.game-bar .switch{order:3;font-size:12px}.hud{flex:1;order:2;justify-content:flex-start;gap:16px}.hud div{flex-direction:row;align-items:baseline;gap:6px}.hud dt{font-size:11px}.hud dd{font-size:16px}.modal{padding:24px}.stat-value{font-size:24px}}.topnav{flex:auto;gap:4px;min-width:0;display:flex;overflow:hidden}.topnav a{white-space:nowrap;color:var(--text-muted);border-radius:8px;padding:8px 12px;font-weight:600;text-decoration:none;transition:color .15s,background-color .15s}.topnav a:hover{color:var(--text);background:var(--background)}.topnav a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.user-area{align-items:center;gap:8px;margin-left:auto;display:flex;position:relative}.user-btn{gap:8px;max-width:200px;height:40px;min-height:0;padding:0 12px 0 8px}.user-btn #user-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-btn .avatar,.user-btn .lucide{flex-shrink:0}.settings-btn{flex-shrink:0;width:40px;height:40px;min-height:0}.settings{flex-direction:column;gap:24px;max-width:720px;display:flex}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:20px;display:flex}.settings-section h2{font-size:20px}.theme-picker{border:0;grid-template-columns:repeat(3,1fr);gap:12px;margin:0;padding:0;display:grid}.theme-option{cursor:pointer;position:relative}.theme-option input{opacity:0;width:1px;height:1px;position:absolute}.theme-card{border:2px solid var(--border);border-radius:var(--radius);background:var(--background);text-align:center;flex-direction:column;align-items:center;gap:4px;padding:16px 12px;font-weight:600;transition:border-color .15s,background-color .15s;display:flex}.theme-card .lucide{width:24px;height:24px;margin-bottom:4px}.theme-card small{color:var(--text-muted);font-size:13px;font-weight:400}.theme-option:hover .theme-card{border-color:var(--border-strong)}.theme-option input:checked+.theme-card{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.theme-option input:focus-visible+.theme-card{outline:3px solid var(--focus);outline-offset:2px}.password-form{border-top:1px solid var(--border);margin-top:8px;padding-top:16px}.password-form h3{margin-bottom:8px;font-size:16px}.password-form .note{margin:-8px 0 12px;font-size:14px}.name-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.name-row .field{flex:240px;margin-bottom:0}.name-row .btn{margin-bottom:0}.name-form .form-error{margin-top:12px}.password-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.password-grid+.btn,.password-grid+.deck-footer,.password-grid+.hero-actions,.password-grid+.field{margin-top:8px}@media (width<=640px){.password-grid{grid-template-columns:1fr}}.settings-danger{border-color:var(--danger-soft-2)}.settings-danger h2{color:var(--danger)}.delete-form{border-top:1px solid var(--border);max-width:440px;margin-top:8px;padding-top:16px}.btn-danger-solid{background:var(--danger);color:var(--on-strong);border-color:var(--danger)}.btn-danger-solid:hover:not(:disabled){filter:brightness(.9)}.settings-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.settings-text{flex-direction:column;flex:280px;gap:2px;display:flex}.settings-text .muted{font-size:14px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;box-shadow:0 12px 32px rgb(var(--ink) / .16);z-index:20;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.menu-item{width:100%;min-height:40px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:0 10px;font-weight:600;text-decoration:none;transition:background-color .15s;display:flex}.menu-item:hover{background:var(--background)}.menu-item:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.menu-item .lucide{color:var(--text-muted)}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.hero-actions .btn{text-decoration:none}.section-title{scroll-margin-top:76px}.page{padding-top:24px;padding-bottom:48px}.page-head{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-head h1{font-size:28px}.page-head .btn{text-decoration:none}.page-action{margin-left:auto}.note{color:var(--text-muted);margin-bottom:16px}.small{font-size:14px}.empty-state{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:60ch;padding:32px}.empty-state h2{margin-bottom:8px}.empty-state .hero-actions{margin-top:16px}.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--border)}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn-danger:active:not(:disabled){background:var(--danger-soft-2)}.btn-block{width:100%}.btn-icon-plain{box-shadow:none;border-color:#0000}.btn.is-loading{color:#0000;pointer-events:none;position:relative}.btn.is-loading .lucide{visibility:hidden}.btn.is-loading:after{content:"";border:3px solid color-mix(in srgb, var(--accent-foreground) 40%, transparent);border-top-color:var(--accent-foreground);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;position:absolute}.btn-ghost.is-loading:after,.btn-danger.is-loading:after{border-color:rgb(var(--ink) / .2);border-top-color:var(--text)}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{font-weight:600}.field input,.card-row input{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font:inherit;border-radius:8px;padding:0 12px;transition:border-color .15s}.field input:hover,.card-row input:hover{border-color:var(--border-strong)}.field input:focus-visible,.card-row input:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--accent)}.form-error{color:var(--danger);margin:0 0 16px;font-weight:600}.form-success{color:var(--success);margin:0 0 16px;font-weight:600}.form-success a{color:var(--accent)}.link-btn{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;margin:12px auto 0;padding:4px 8px;font-size:14px;font-weight:600;display:block}.link-btn:hover{text-decoration:underline}.link-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.reset-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:440px;box-shadow:var(--shadow);padding:24px}.reset-form .note{margin-bottom:16px}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-auth{max-width:440px}.tabs{background:var(--background);border-radius:10px;gap:4px;padding:4px;display:flex}.tab{min-height:40px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;font-weight:600;transition:background-color .15s,color .15s}.tab:hover{color:var(--text)}.tab[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.tab:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.deck-form{max-width:900px}.cards-title{margin-top:24px;margin-bottom:8px}.card-rows{flex-direction:column;gap:8px;display:flex}.card-row{grid-template-columns:32px 1fr 1fr 44px;align-items:center;gap:8px;display:grid}.card-extra{flex-direction:column;grid-column:2/-1;gap:8px;display:flex}.btn-sm{align-self:flex-start;min-height:36px;padding:0 12px;font-size:14px}.toggle-wrong{white-space:nowrap}.toggle-wrong[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.wrong-count{color:var(--text-muted)}.toggle-wrong[aria-expanded=true] .wrong-count{color:inherit}.wrong-box{border:1px dashed var(--border);background:var(--background);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.wrong-box .note{margin:0}.wrong-rows{flex-direction:column;gap:8px;display:flex}.wrong-row{grid-template-columns:1fr 44px;align-items:center;gap:8px;display:grid}.card-row .index{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:right;font-size:14px}.deck-actions{margin:12px 0 24px}.deck-footer{border-top:1px solid var(--border);flex-wrap:wrap;gap:12px;padding-top:16px;display:flex}.deck-card .desc{color:var(--text-muted);font-size:14px}.deck-meta{color:var(--text-muted);gap:12px;font-size:14px;display:flex}.deck-meta .due{color:var(--accent);font-weight:600}.deck-card .actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.deck-card .actions .btn{min-height:40px;padding:0 12px;text-decoration:none}.study-progress{font-variant-numeric:tabular-nums;margin-left:auto}.flashcard{background:var(--surface);border:1px solid var(--border);max-width:720px;box-shadow:var(--shadow);text-align:center;border-radius:16px;margin:0 auto;padding:40px 32px}.flashcard .side-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:12px;font-size:12px}.flashcard .front{white-space:pre-wrap;font-size:24px;font-weight:700;line-height:1.3}.flashcard .back{border-top:1px solid var(--border);white-space:pre-wrap;margin-top:24px;padding-top:24px;font-size:20px;line-height:1.4}.study-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:24px;display:flex}.grade{flex-direction:column;align-items:center;gap:2px;min-width:110px;min-height:56px;padding:8px 12px;display:flex}.grade small{color:var(--text-muted);font-size:12px;font-weight:500}.grade-again{color:var(--danger)}.grade-easy{color:var(--success)}.choices{gap:8px;max-width:720px;margin:24px auto 0;display:grid}.choice{text-align:left;white-space:normal;justify-content:flex-start;min-height:52px;line-height:1.3}.choice.is-right{border-color:var(--success);background:var(--success-soft);color:var(--success)}.choice.is-wrong{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.study-summary{text-align:center;max-width:560px;margin:0 auto}.study-summary .stat-row{margin-bottom:24px}.stats-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}.stats-table th,.stats-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.stats-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--background);font-size:12px}.stats-table td.num,.stats-table th.num{text-align:right;font-variant-numeric:tabular-nums}.stats-table tr:last-child td{border-bottom:0}.table-wrap{margin-bottom:32px;overflow-x:auto}.stats-section{margin:8px 0 12px}.toast{background:var(--text);color:var(--on-strong);box-shadow:0 12px 32px rgb(var(--ink) / .25);z-index:30;border-radius:10px;max-width:calc(100vw - 32px);padding:12px 16px;font-weight:600;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@media (width<=767px){.topnav,.user-btn #user-label{display:none}.user-btn{justify-content:center;width:40px;padding:0}.theme-picker{grid-template-columns:1fr}.theme-card{text-align:left;flex-direction:row;justify-content:flex-start;gap:10px;padding:12px}.theme-card .lucide{margin:0}.theme-card small{margin-left:auto}.card-row{grid-template-columns:24px 1fr 44px}.card-row .back-input,.card-extra{grid-column:2}.page-action{margin-left:0}}.choice:disabled{opacity:.55;cursor:default}.choice.is-right:disabled,.choice.is-wrong:disabled{opacity:1}.stat-row-2{grid-template-columns:repeat(2,1fr);max-width:480px}.trophy{align-items:center;gap:6px;display:inline-flex}.trophy .lucide{width:18px;height:18px;color:var(--gold-dark)}.stat-value.trophy .lucide{width:26px;height:26px}.stats-table tr.is-me td{background:var(--accent-soft);font-weight:600}.deck-meta .win{color:var(--success);font-weight:600}.deck-meta .loss{color:var(--danger);font-weight:600}.hud-rival dd{color:var(--accent)}.duel-result{background:var(--background);border:1px solid var(--border);border-radius:8px;padding:12px 14px;line-height:1.45}.duel-result.is-win{border-color:var(--success);background:var(--success-soft)}.duel-result.is-error{border-color:var(--danger);color:var(--danger)}.field select{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font:inherit;border-radius:8px;padding:0 12px}.stat-row-4{grid-template-columns:repeat(4,1fr)}@media (width<=767px){.stat-row-4{grid-template-columns:repeat(2,1fr)}}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-muted);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch-track{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:36px;height:20px;transition:background-color .15s;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(16px)}.switch input:checked~.switch-label{color:var(--text)}.switch input:focus-visible+.switch-track{outline:3px solid var(--focus);outline-offset:2px}.switch:hover .switch-track{filter:brightness(.95)}.target.is-selected,.micro.is-selected circle,.city.is-selected{fill:var(--city-selected);stroke:var(--accent);stroke-width:2.5px}.river-group.is-selected .river{stroke:var(--accent);stroke-width:4px}.confirm-bar{background:var(--surface);border:1px solid var(--border);box-shadow:0 12px 32px rgb(var(--ink) / .2);z-index:3;border-radius:12px;gap:8px;padding:8px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}@media (width<=767px){.switch-label{font-size:12px}}.vs-screen{background:var(--surface);border:1px solid var(--border);max-width:720px;box-shadow:var(--shadow);text-align:center;border-radius:16px;margin:24px auto;padding:32px 24px}.vs-map{color:var(--text-muted);margin-bottom:20px;font-weight:600}.vs-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.vs-player{background:var(--background);border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;display:flex}.vs-me{box-shadow:inset 0 0 0 2px var(--accent)}.avatar{background:var(--avatar-bg,var(--accent));color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.avatar-sm{width:24px;height:24px;font-size:12px}.user-btn .avatar-sm{width:28px;height:28px;font-size:13px}.user-btn .avatar-sm .lucide{width:16px;height:16px}.avatar-sm .lucide{width:14px;height:14px}.avatar-md{width:40px;height:40px;font-size:18px}.avatar-md .lucide{width:22px;height:22px}.avatar-lg{width:72px;height:72px;font-size:32px}.avatar-lg .lucide{width:40px;height:40px}.name-with-avatar{align-items:center;gap:8px;display:inline-flex}.user-btn #user-avatar{display:inline-flex}.settings-identity{flex:280px;align-items:center;gap:14px;display:flex}.avatar-editor{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.avatar-preview{flex-shrink:0}.avatar-choices{flex-direction:column;flex:280px;gap:12px;display:flex}.avatar-icons,.avatar-colors{border:0;margin:0;padding:0}.avatar-icon-list,.avatar-color-list{flex-wrap:wrap;gap:8px;display:flex}.avatar-pick{cursor:pointer;position:relative}.avatar-pick input{opacity:0;width:1px;height:1px;position:absolute}.avatar-pick-box{border:2px solid var(--border);background:var(--background);width:44px;height:44px;color:var(--text);border-radius:10px;justify-content:center;align-items:center;transition:border-color .15s,background-color .15s;display:inline-flex}.avatar-pick-box .lucide{width:22px;height:22px}.avatar-pick-dot{background:var(--avatar-bg);width:36px;height:36px;box-shadow:0 0 0 2px var(--border);border:3px solid #0000;border-radius:50%;transition:box-shadow .15s;display:inline-block}.avatar-pick:hover .avatar-pick-box{border-color:var(--border-strong)}.avatar-pick input:checked+.avatar-pick-box{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.avatar-pick input:checked+.avatar-pick-dot{box-shadow:0 0 0 3px var(--accent)}.avatar-pick input:focus-visible+.avatar-pick-box,.avatar-pick input:focus-visible+.avatar-pick-dot{outline:3px solid var(--focus);outline-offset:2px}.vs-name{word-break:break-word;font-size:20px}.vs-badge{letter-spacing:.04em;color:var(--danger);font-size:24px;font-weight:800}.vs-badge-big{font-size:40px}.vs-status{align-items:center;gap:10px;margin:20px 0 8px;font-weight:600;display:inline-flex}.spinner-dark{border-color:rgb(var(--ink) / .15);border-top-color:var(--text)}.vs-count{color:var(--accent);font-variant-numeric:tabular-nums;margin:24px 0 8px;font-size:72px;font-weight:800;line-height:1}.vs-count.pop{animation:.4s ease-out pop}@keyframes pop{0%{opacity:.4;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}.badge{background:var(--danger);min-width:20px;height:20px;color:var(--on-strong);vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;margin-left:2px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.invite-banner{background:var(--surface);border:1px solid var(--border);max-width:calc(100vw - 32px);box-shadow:0 12px 32px rgb(var(--ink) / .2);z-index:25;border-radius:12px;align-items:center;gap:12px;padding:12px 12px 12px 16px;display:flex;position:fixed;bottom:16px;right:16px}.invite-banner>.lucide{color:var(--danger);width:24px;height:24px}.invite-text{flex-direction:column;line-height:1.3;display:flex}.invite-text span{color:var(--text-muted);font-size:14px}.invite-banner .btn{text-decoration:none}@media (width<=767px){.vs-row{gap:8px}.vs-name{font-size:16px}.invite-banner{left:16px;right:16px}}.stars{gap:2px;display:inline-flex}.stars .lucide,.stars-total .lucide{width:18px;height:18px;color:var(--star-off);fill:var(--star-off)}.stars .lucide.is-on,.stars-total .lucide.is-on{color:var(--gold);fill:var(--gold)}.stars-total{align-items:center;gap:6px;display:inline-flex}.stars-total .lucide{width:26px;height:26px}.badges{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.badge-pill{background:var(--gold-soft);color:var(--gold-text);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:14px;font-weight:600;display:inline-flex}.badge-pill .lucide{width:16px;height:16px}.chapter{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:32px;padding:20px}.chapter.is-complete{border-color:var(--gold)}.chapter-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.chapter-head h2{font-size:22px}.chapter-progress{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.levels{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.level{border:1px solid var(--border);background:var(--surface);border-radius:10px;grid-template-columns:36px 1fr auto auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.level.is-done{background:var(--level-done)}.level.is-boss{border-color:var(--gold-border);background:var(--gold-soft)}.level.is-locked{opacity:.6}.level-number{background:var(--background);width:36px;height:36px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.level-number .lucide{width:16px;height:16px;color:var(--text-muted)}.level-text{flex-direction:column;min-width:0;display:flex}.level-play{white-space:nowrap;min-height:40px;padding:0 12px;text-decoration:none}.level-tag{background:var(--gold-soft);color:var(--gold-text);border-radius:6px;align-self:center;align-items:center;margin-right:8px;padding:2px 8px;font-size:13px;font-weight:700;display:inline-flex}.level-result{background:var(--background);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.level-result.is-win{background:var(--gold-soft);border-color:var(--gold)}.level-result .stars .lucide{width:24px;height:24px}@media (width<=767px){.level{grid-template-columns:36px 1fr}.level .stars,.level .level-play{grid-column:2}}.tabbar{display:none}@media (width<=767px){:root{--tabbar-h:60px}.topnav{display:none}.tabbar{z-index:15;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);box-shadow:0 -1px 0 var(--border);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}body.in-game .tabbar{display:none}.tabbar a{min-height:44px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;text-decoration:none;transition:color .15s;display:flex;position:relative}.tabbar a .lucide{width:24px;height:24px}.tabbar a.is-active{color:var(--accent)}.tabbar a:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:8px}.tabbar .nav-badge{margin:0;position:absolute;top:6px;left:calc(50% + 6px)}.toast{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 16px)}body.in-game .toast{bottom:24px}.invite-banner{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px)}}.crumbs{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px;margin:-12px 0 16px;font-size:14px;display:flex}.crumbs:empty{display:none}.crumbs a{color:var(--text-muted);border-radius:6px;padding:4px 6px;text-decoration:none}.crumbs a:hover{color:var(--text);background:var(--surface-2)}.crumbs a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.crumbs .lucide{width:16px;height:16px}.crumbs [aria-current]{color:var(--text);padding:4px 6px;font-weight:600}.library-actions{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.lib-section{color:var(--text);align-items:center;gap:8px;margin:24px 0 12px;font-size:18px;display:flex}.lib-section:first-child{margin-top:0}.lib-section .lucide{width:20px;height:20px;color:var(--text-muted)}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.lib-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:4px;padding:6px 6px 6px 0;transition:border-color .15s;display:flex}.lib-card:hover{border-color:var(--border-strong)}.lib-main{min-height:56px;color:inherit;border-radius:8px;flex:1;align-items:center;gap:12px;min-width:0;padding:8px 12px;text-decoration:none;display:flex}.lib-main:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.lib-folder .lib-main>.lucide{width:28px;height:28px;color:var(--accent);flex-shrink:0}.lib-text{flex-direction:column;gap:2px;min-width:0;display:flex}.lib-text strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lib-card-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.lib-card-head .name{flex:1;min-width:0}.lib-card-head .name a{color:inherit;text-decoration:none}.lib-card-head .name a:hover{color:var(--accent)}.lib-menu-btn{color:var(--text-muted);flex-shrink:0}.lib-menu{z-index:30;width:220px;display:block;position:absolute}.menu-item.is-danger{color:var(--danger)}.modal-small{max-width:420px}.note-article{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:720px;box-shadow:var(--shadow);margin-top:12px;padding:24px}.note-content{font-size:17px;line-height:1.65}.note-content>*+*{margin-top:12px}.note-content h2{margin-top:28px;font-size:22px}.note-content h3{margin-top:22px;font-size:18px}.note-content h4{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-top:18px;font-size:16px}.note-content ul,.note-content ol{padding-left:24px}.note-content li+li{margin-top:4px}.note-content blockquote{border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;margin:12px 0;padding:8px 16px}.note-content code{background:var(--surface-2);border-radius:4px;padding:1px 6px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.92em}.note-content mark{background:var(--gold-soft);color:var(--gold-text);border-radius:3px;padding:0 3px}.note-content hr{border:0;border-top:1px solid var(--border);margin:20px 0}.note-textarea{border:1px solid var(--border);background:var(--surface);width:100%;min-height:240px;color:var(--text);font:inherit;resize:vertical;border-radius:8px;padding:12px;font-size:16px;line-height:1.55}.note-textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--accent)}.field select{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font:inherit;border-radius:8px;padding:0 12px;font-size:16px}.field select:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--accent)}.deck-form .note code{background:var(--surface-2);border-radius:4px;padding:1px 5px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:13px}@media (width<=640px){.lib-grid{grid-template-columns:1fr}.note-article{padding:16px}.note-content{font-size:16px}}.note-actions{flex-wrap:wrap;gap:8px;display:flex}.n2d-preview{border:1px solid var(--border);background:var(--background);border-radius:8px;max-height:220px;margin:0 0 16px;padding:0;list-style:none;overflow-y:auto}.n2d-preview li{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px;padding:8px 12px;font-size:14px;display:grid}.n2d-preview li:last-child{border-bottom:0}.n2d-preview li.muted{display:block}.n2d-preview strong,.n2d-preview span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-friends{flex-direction:column;gap:6px;max-height:300px;margin-bottom:16px;display:flex;overflow-y:auto}.share-row{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.share-row:hover{border-color:var(--border-strong)}.share-row input{width:18px;height:18px;accent-color:var(--accent)}.share-row:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.share-name{flex:1;font-weight:600}.shared-pill{color:var(--accent);align-items:center;gap:4px;font-weight:600;display:inline-flex}.shared-pill .lucide{width:14px;height:14px}.lib-shared{border-color:var(--accent-soft)}.rank-heading{text-align:center;margin:20px 0 8px;font-size:18px}.ranking{max-width:560px;margin:0 auto 8px}.ranking .num{text-align:right;white-space:nowrap}.btn-ai .lucide{color:var(--gold-dark)}.card-tools{flex-wrap:wrap;gap:8px;display:flex}.file-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ai-count-field{max-width:220px}.deck-footer .muted{align-self:center}.ai-result{border-top:1px solid var(--border);margin-top:32px;padding-top:24px}.ai-result h2{margin-bottom:8px}.ai-cards{flex-direction:column;gap:8px;max-width:760px;margin:0 0 16px;padding:0;list-style:none;display:flex}.ai-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:8px;padding:12px 8px 12px 16px;display:flex}.ai-card-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.ai-answer{color:var(--success);align-items:center;gap:6px;font-weight:600;display:inline-flex}.ai-answer .lucide{flex-shrink:0;width:16px;height:16px}.ai-wrong{line-height:1.4}.deck-ai-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.pager{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 40px;display:flex}.region-grid:has(+.pager){padding-bottom:16px}.pager-btn{border:1px solid var(--border);background:var(--surface);min-width:40px;height:40px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;font-weight:600;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.pager-btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--background)}.pager-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.pager-btn:disabled{opacity:.45;cursor:not-allowed}.pager-btn.is-current{background:var(--accent);border-color:var(--accent);color:var(--accent-foreground)}.pager-btn .lucide{width:18px;height:18px}.pager-gap{color:var(--text-muted);padding:0 2px}.pager-count{margin-left:auto}@media (width<=640px){.pager-count{width:100%;margin-left:0}}.field input.is-invalid{border-color:var(--danger);background:var(--danger-soft)}
