:root{color-scheme:light;--bg0: #faf6ef;--bg1: #ffffff;--bg2: #f0e9dc;--bg3: #efeae4;--bg-raised: #faf6ef;--bd: #ece4d4;--bd2: #d8cfbc;--t1: #2f2a23;--t2: #6b6354;--t3: #8a8172;--ac: #5a7d64;--ac2: #6a8f74;--ac-ink: #3e5745;--acs: #eef2ea;--on-ac: #faf6ef;--ok: #5a7d64;--oks: #eef2ea;--warn: #b08a3e;--warns: #fdf3e0;--warn-bd: #ecd9ac;--err: #b3503e;--errs: #f7ece7;--err-bd: #e6c8bd;--badge-ok-ink: #3e5745;--cat-sage-bg: #eef2ea;--cat-sage-fg: #5a7d64;--cat-gold-bg: #f2efe6;--cat-gold-fg: #8a7d4f;--cat-clay-bg: #f5ebe4;--cat-clay-fg: #a06a4c;--cat-slate-bg: #e9edf2;--cat-slate-fg: #5c718a;--cat-stone-bg: #efeae4;--cat-stone-fg: #7a6f5f;--avatar-bg: #e9e0cf;--avatar-fg: #5a5244;--wood-hi: #b98f60;--wood-lo: #8a6440;--lip-hi: #7a5637;--lip-lo: #5e4128;--wood-edge: rgba(255, 244, 224, .5);--wood-shadow: rgba(92, 64, 34, .4);--r-card: 22px;--r-frame: 32px;--r-opt: 18px;--r-chip: 14px;--r-pill: 99px;--r-bar: 3px;--r-input: 14px;--r-md: 16px;--sh-card: 0 2px 10px rgba(90, 80, 60, .05);--sh-hover: 0 8px 24px rgba(90, 80, 60, .12);--sh-modal: 0 20px 60px rgba(90, 80, 60, .28);--focus-ring: 0 0 0 3px rgba(90, 125, 100, .28);--glass: rgba(250, 246, 239, .85);--glass-strong: rgba(250, 246, 239, .94);--glass-blur-lg: 28px;--overlay: rgba(47, 42, 35, .45);--on-overlay: #ffffff;--on-err: #ffffff;--f-display: "Newsreader", Georgia, "Times New Roman", serif;--f-ui: "Karla", system-ui, -apple-system, "Segoe UI", sans-serif;--tr: .2s cubic-bezier(.4, 0, .2, 1)}:root[data-theme=dark]{color-scheme:dark;--bg0: #171512;--bg1: #201d19;--bg2: #2b2721;--bg3: #302b24;--bg-raised: #201d19;--bd: #363028;--bd2: #4a4237;--t1: #ece7dd;--t2: #b5ac9b;--t3: #93897a;--ac: #7fa88b;--ac2: #8fb69a;--ac-ink: #b9d4c2;--acs: #232f28;--on-ac: #121c16;--ok: #7fa88b;--oks: #232f28;--warn: #d3a95f;--warns: #322a1a;--warn-bd: #4f4227;--err: #d47f67;--errs: #362219;--err-bd: #533327;--badge-ok-ink: var(--ac-ink);--cat-sage-bg: #232f28;--cat-sage-fg: #9dc0a9;--cat-gold-bg: #322e1f;--cat-gold-fg: #c5b177;--cat-clay-bg: #362a20;--cat-clay-fg: #c79a7d;--cat-slate-bg: #232a33;--cat-slate-fg: #96abc5;--cat-stone-bg: #2e2a24;--cat-stone-fg: #ab9f8c;--avatar-bg: #3a342a;--avatar-fg: #d8cfbd;--wood-hi: #7d5e3d;--wood-lo: #54402a;--lip-hi: #463320;--lip-lo: #332616;--wood-edge: rgba(255, 235, 205, .16);--wood-shadow: rgba(0, 0, 0, .55);--sh-card: 0 2px 10px rgba(0, 0, 0, .25);--sh-hover: 0 8px 24px rgba(0, 0, 0, .45);--sh-modal: 0 20px 60px rgba(0, 0, 0, .6);--focus-ring: 0 0 0 3px rgba(127, 168, 139, .35);--glass: rgba(23, 21, 18, .85);--glass-strong: rgba(23, 21, 18, .94);--glass-blur-lg: 12px;--overlay: rgba(0, 0, 0, .55);--on-overlay: #ffffff;--on-err: #26130c}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{min-height:100%}html{-webkit-text-size-adjust:100%}body{font-family:var(--f-ui);background:var(--bg0);color:var(--t1);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}input,textarea,select{font:inherit}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:6px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:4px}::-webkit-scrollbar-track{background:transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-main{flex:1}.page{max-width:1060px;margin:0 auto;width:100%;padding:28px max(16px,env(safe-area-inset-right)) 96px max(16px,env(safe-area-inset-left))}.page-narrow{max-width:560px}.page-mid{max-width:780px}@media(min-width:768px){.page{padding:28px 40px 48px}}.h1{font:500 clamp(26px,5vw,36px)/1.15 var(--f-display);color:var(--t1);margin-bottom:6px}.sub{font:400 15px var(--f-ui);color:var(--t3);margin-bottom:28px}.section-title{font:500 18px var(--f-display);color:var(--t1);margin-bottom:14px}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.muted{color:var(--t3)}.center{text-align:center}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fade-in .25s ease}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left));background:var(--glass);backdrop-filter:blur(var(--glass-blur-lg));-webkit-backdrop-filter:blur(var(--glass-blur-lg));border-bottom:1px solid var(--bd)}@media(min-width:768px){.topbar{padding:20px 40px}}.brand{display:flex;align-items:center;gap:10px;cursor:pointer}.brand-name{font:500 20px var(--f-display);color:var(--t1)}.seg{display:flex;gap:6px;background:var(--acs);border-radius:var(--r-pill);padding:5px}.seg-item{font:600 13px var(--f-ui);color:var(--t2);border-radius:var(--r-pill);padding:8px 18px;border:none;background:transparent;cursor:pointer;transition:color var(--tr),background var(--tr);white-space:nowrap}@media(hover:hover){.seg-item:hover{color:var(--t1)}}.seg-item.active{color:var(--on-ac);background:var(--ac)}.seg-item .nd{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--warn);margin-left:6px;vertical-align:middle}@media(max-width:767px){.seg{display:none}}.avatar{width:38px;height:38px;border-radius:50%;background:var(--avatar-bg);color:var(--avatar-fg);display:flex;align-items:center;justify-content:center;font:700 14px var(--f-ui);border:2px solid var(--bg1);flex-shrink:0}.avatar-img{border-radius:50%;object-fit:cover;border:2px solid var(--bg1);flex-shrink:0;display:block;background:var(--avatar-bg)}.avatar-btn{border:none;background:none;padding:0;cursor:pointer;border-radius:50%;flex-shrink:0}.avatar-upload{position:relative;border:none;background:none;padding:0;cursor:pointer;border-radius:50%;overflow:hidden;flex-shrink:0}.avatar-upload .avatar-upload-hint{position:absolute;left:0;right:0;bottom:0;background:var(--overlay);color:var(--on-overlay);font:700 10px var(--f-ui);text-align:center;padding:2px 0 5px}.avatar-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + 8px);background:var(--bg-raised);border:1px solid var(--bd);border-radius:var(--r-md);box-shadow:var(--sh-hover);padding:6px;min-width:180px;z-index:60;animation:pop-in .15s ease}.menu-head{padding:8px 12px 6px}.menu-name{font-weight:700;font-size:14px}.menu-role{font-size:12px;color:var(--t3)}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;background:transparent;border-radius:10px;font:500 14px var(--f-ui);color:var(--t1);cursor:pointer;text-align:left}@media(hover:hover){.menu-item:hover{background:var(--acs)}}.menu-sep{height:1px;background:var(--bd);margin:6px 4px}.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur-lg));-webkit-backdrop-filter:blur(var(--glass-blur-lg));border-top:1px solid var(--bd);padding-bottom:env(safe-area-inset-bottom)}.bottomnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0 8px;min-height:56px;color:var(--t3);font:600 11px var(--f-ui);position:relative}.bottomnav a.active{color:var(--ac)}.bottomnav .nd{position:absolute;top:6px;right:calc(50% - 18px);width:7px;height:7px;border-radius:50%;background:var(--warn)}@media(min-width:768px){.bottomnav{display:none}}@media(max-width:767px){.has-bottomnav .page{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 14px var(--f-ui);border-radius:var(--r-pill);padding:0 22px;height:44px;border:1.5px solid var(--bd2);background:var(--bg1);color:var(--t1);cursor:pointer;transition:background var(--tr),border-color var(--tr),color var(--tr),box-shadow var(--tr),opacity var(--tr);white-space:nowrap}@media(hover:hover){.btn:hover{border-color:var(--ac)}}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--ac);border-color:var(--ac);color:var(--on-ac)}@media(hover:hover){.btn-primary:hover{background:var(--ac2);border-color:var(--ac2)}}.btn-ghost{background:transparent;border-color:transparent}@media(hover:hover){.btn-ghost:hover{background:var(--acs);border-color:transparent}}.btn-danger{color:var(--err);border-color:var(--err-bd);background:var(--errs)}@media(hover:hover){.btn-danger:hover{background:var(--err);color:var(--on-err);border-color:var(--err)}}.btn-sm{height:36px;padding:0 16px;font-size:13px}.btn-block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--bd);background:var(--bg1);color:var(--t2);cursor:pointer;transition:background var(--tr),border-color var(--tr),color var(--tr),box-shadow var(--tr),opacity var(--tr);flex-shrink:0}@media(hover:hover){.icon-btn:hover{border-color:var(--ac);color:var(--ac)}}.icon-btn:disabled{opacity:.35;cursor:default;pointer-events:none}.icon-btn.sm{width:36px;height:36px}@media(hover:hover){.icon-btn.danger:hover{border-color:var(--err);color:var(--err);background:var(--errs)}}.option:not(:disabled):active,.btn:not(:disabled):active,.icon-btn:not(:disabled):active{transform:scale(.98)}@media(prefers-reduced-motion:reduce){.option:not(:disabled):active,.btn:not(:disabled):active,.icon-btn:not(:disabled):active{transform:none}}.spinner{width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.field{margin-bottom:16px}.label{display:block;font:600 12px var(--f-ui);color:var(--t2);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}.input,.textarea,.select{width:100%;padding:12px 14px;font-size:16px;color:var(--t1);background:var(--bg1);border:1.5px solid var(--bd);border-radius:var(--r-input);outline:none;transition:border-color var(--tr),box-shadow var(--tr)}.input:focus,.textarea:focus,.select:focus{border-color:var(--ac);box-shadow:var(--focus-ring)}.textarea{resize:vertical;min-height:90px;line-height:1.5}.field-error{color:var(--err);font-size:13px;margin-top:6px}.checkbox-row{display:flex;align-items:center;gap:10px}.checkbox-row input{width:18px;height:18px;accent-color:var(--ac)}.checkbox-row label{font-size:14px;color:var(--t2);cursor:pointer}.hint{font-size:13px;color:var(--t3);line-height:1.6}.card{background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r-card);padding:24px;box-shadow:var(--sh-card)}.card-pad-lg{padding:28px}.group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:18px}.group-card{position:relative;background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r-card);padding:24px;box-shadow:var(--sh-card);cursor:pointer;text-align:left;display:flex;flex-direction:column;transition:box-shadow var(--tr),border-color var(--tr),transform var(--tr)}.card-flag{position:absolute;top:18px;right:18px}@media(hover:hover){.group-card:hover{box-shadow:var(--sh-hover);border-color:var(--ac)}}.group-card:focus-visible{box-shadow:var(--sh-hover);border-color:var(--ac)}.cat-chip{width:44px;height:44px;border-radius:var(--r-chip);display:flex;align-items:center;justify-content:center;font:500 20px var(--f-display);margin-bottom:16px;overflow:hidden}.cat-chip img{width:100%;height:100%;object-fit:cover}.group-name{font:500 20px var(--f-display);color:var(--t1);margin-bottom:4px;overflow-wrap:anywhere}.group-desc{font:400 13px var(--f-ui);color:var(--t3);margin-bottom:18px;line-height:1.5;flex:1}.progress{height:6px;border-radius:var(--r-bar);background:var(--bg2);overflow:hidden;margin-bottom:10px}.progress>span{display:block;height:100%;border-radius:var(--r-bar);background:var(--ac);transition:width .4s var(--tr)}.progress>span.p-live{background:var(--warn)}.meta-row{display:flex;justify-content:space-between;font:600 12px var(--f-ui);color:var(--t2)}.group-card-wrap{display:flex;flex-direction:column}.group-card-wrap>.group-card{flex:1}.build-link,.build-slot{align-self:stretch;margin-top:8px;min-height:44px}.build-slot{pointer-events:none}.build-link{display:flex;align-items:center;justify-content:center;padding:10px 12px;border:1px solid var(--bd);border-radius:var(--r-pill);background:transparent;color:var(--t2);font:600 12px var(--f-ui);cursor:pointer;text-align:center;transition:color var(--tr),border-color var(--tr),background var(--tr)}@media(hover:hover){.build-link:hover{color:var(--ac);border-color:var(--ac);background:var(--acs)}}.build-link:focus-visible{color:var(--ac);border-color:var(--ac)}.pool-list{display:flex;flex-direction:column;gap:2px}.pool-row.on{border-color:var(--bd2)}.pool-count{float:right;font:700 12px var(--f-ui);color:var(--t3);margin-left:10px}.pool-size{margin-top:18px}.pool-size-label{font:700 13px var(--f-ui);color:var(--t2);margin-bottom:8px}.pool-size .chip{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:58px}.pool-actions{flex-wrap:wrap}.pool-actions .build-start{white-space:normal;height:auto;min-height:44px;padding:9px 18px;line-height:1.3;flex:1 1 auto}.encourage-card{background:var(--acs);border:1px dashed var(--bd2);border-radius:var(--r-card);padding:24px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;text-align:center}.encourage-card .e-title{font:500 17px var(--f-display);color:var(--ac)}.encourage-card .e-body{font:400 13px var(--f-ui);color:var(--t3)}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:var(--r-pill);font:600 11px var(--f-ui);text-transform:uppercase;letter-spacing:.4px}.badge-ok{background:var(--oks);color:var(--badge-ok-ink)}.badge-warn{background:var(--warns);color:var(--warn)}.badge-err{background:var(--errs);color:var(--err)}.badge-accent{background:var(--acs);color:var(--ac-ink)}.badge-muted{background:var(--bg2);color:var(--t2)}.modal-overlay{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:220;overscroll-behavior:contain;animation:fade-in .18s ease}.modal{background:var(--bg-raised);border:1px solid var(--bd);border-radius:var(--r-frame);padding:28px;width:100%;max-width:540px;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;box-shadow:var(--sh-modal);animation:pop-in .18s ease}@media(max-width:480px){.modal-overlay{align-items:flex-start;padding:max(20px,env(safe-area-inset-top)) 14px 14px}.modal{padding:22px 18px;max-height:88dvh}}.modal-title{font:500 22px var(--f-display);margin-bottom:8px}.modal-body{color:var(--t2);font-size:14px;line-height:1.6;overflow-wrap:anywhere}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.reviewer-verdict{margin:6px 0 0 18px;padding:10px 12px;border-left:3px solid var(--ac);background:var(--acs);border-radius:0 10px 10px 0}.reviewer-verdict b{display:block;font:700 11.5px var(--f-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--ac-ink);margin-bottom:4px}.reviewer-verdict p{font:400 13px/1.6 var(--f-ui);color:var(--t2);white-space:pre-wrap}.file-list{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;overscroll-behavior:contain;padding:2px}.file-row{display:flex;align-items:center;gap:10px;background:var(--acs);border:1.5px solid var(--bd);border-radius:12px;padding:10px 12px}.file-row>svg{flex-shrink:0;color:var(--t3)}.file-info{flex:1;min-width:0}.file-name{font:600 13px/1.4 var(--f-ui);color:var(--t1);word-break:break-word}.file-meta{font:500 11.5px var(--f-ui);color:var(--t3);margin-top:2px}.toaster{position:fixed;left:50%;transform:translate(-50%);bottom:calc(20px + env(safe-area-inset-bottom));z-index:300;display:flex;flex-direction:column;gap:10px;align-items:center;width:max-content;max-width:92vw;pointer-events:none}.toast{background:var(--bg-raised);color:var(--t1);border:1px solid var(--bd);padding:12px 18px;border-radius:var(--r-pill);font:500 14px var(--f-ui);box-shadow:var(--sh-hover);animation:fade-in .25s ease;display:flex;align-items:center;gap:8px}.toast-error{color:var(--err);border-color:var(--err-bd)}.toast-success{color:var(--ok);border-color:var(--bd)}@media(max-width:767px){.toaster{bottom:calc(96px + env(safe-area-inset-bottom))}}.center-page{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;min-height:100dvh}.auth-card{width:100%;max-width:400px;text-align:center;position:relative;animation:pop-in .3s ease}.auth-title{font:500 28px var(--f-display);margin-bottom:6px}.auth-tag{color:var(--t3);font-size:14px;margin-bottom:24px}.tabs{display:flex;gap:4px;background:var(--acs);padding:5px;border-radius:var(--r-pill);margin-bottom:22px}.tab{flex:1;padding:10px;border:none;background:transparent;color:var(--t2);font:600 14px var(--f-ui);border-radius:var(--r-pill);cursor:pointer;transition:all var(--tr)}.tab.active{background:var(--bg1);color:var(--t1);box-shadow:var(--sh-card)}.big-emoji{font-size:56px;display:block;margin-bottom:20px}.quiz-wrap{max-width:620px;margin:0 auto;width:100%;padding:12px max(16px,env(safe-area-inset-right)) 120px max(16px,env(safe-area-inset-left))}.quiz-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0 4px}.status-pill{font:600 13px var(--f-ui);color:var(--ac);background:var(--acs);border-radius:var(--r-pill);padding:8px 16px;text-align:center;min-width:0}.quiz-top-spacer{width:36px;flex-shrink:0}.quiz-context{font:400 13px var(--f-ui);color:var(--t3);margin:22px 0 8px}.quiz-q{font:500 clamp(19px,4.5vw,22px)/1.4 var(--f-display);color:var(--t1);margin-bottom:24px;overflow-wrap:anywhere}.options{display:flex;flex-direction:column;gap:10px}.option{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:var(--bg1);border:1.5px solid var(--bd);border-radius:var(--r-opt);padding:15px 16px;cursor:pointer;min-height:56px;transition:border-color var(--tr),background var(--tr)}@media(hover:hover){.option:hover:not(:disabled){border-color:var(--ac)}}.option:focus-visible{border-color:var(--ac)}.option-badge{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--bd2);display:flex;align-items:center;justify-content:center;font:700 12px var(--f-ui);color:var(--t3);flex-shrink:0;transition:all var(--tr)}.option-label{font:500 14px var(--f-ui);color:var(--t1);overflow-wrap:anywhere;min-width:0}.option.selected{background:var(--acs);border-color:var(--ac)}.option.selected .option-badge{background:var(--ac);border-color:var(--ac);color:var(--on-ac)}.option.selected .option-label{font-weight:700;color:var(--ac-ink)}.option.correct{background:var(--acs);border-color:var(--ac)}.option.correct .option-badge{background:var(--ac);border-color:var(--ac);color:var(--on-ac)}.option.wrong{background:var(--errs);border-color:var(--err-bd)}.option.wrong .option-badge{background:var(--err);border-color:var(--err);color:var(--on-err)}.mode-card{display:flex;gap:14px;align-items:center;width:100%;text-align:left;background:var(--bg1);border:1.5px solid var(--bd);border-radius:var(--r-opt);padding:18px 16px;cursor:pointer;transition:border-color var(--tr),box-shadow var(--tr)}@media(hover:hover){.mode-card:hover{border-color:var(--ac);box-shadow:var(--sh-hover)}}.mode-card:focus-visible{border-color:var(--ac);box-shadow:var(--sh-hover)}.mode-emoji{font-size:26px;flex-shrink:0}.mode-card b{display:block;font:700 15px var(--f-ui);margin-bottom:2px;color:var(--t1)}.mode-card small{color:var(--t3);font-size:13px;line-height:1.5}.switch-row{display:flex;gap:14px;align-items:center;width:100%;text-align:left;margin-top:12px;background:var(--bg1);border:1.5px solid var(--bd);border-radius:var(--r-opt);padding:15px 16px;cursor:pointer;transition:border-color var(--tr)}@media(hover:hover){.switch-row:hover{border-color:var(--bd2)}}.switch-input{position:absolute;width:1px;height:1px;opacity:0}.switch-track{flex-shrink:0;width:44px;height:26px;border-radius:var(--r-pill);background:var(--bg2);border:1.5px solid var(--bd2);position:relative;transition:background var(--tr),border-color var(--tr)}.switch-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--t3);transition:transform var(--tr),background var(--tr)}.switch-input:checked+.switch-track{background:var(--ac);border-color:var(--ac)}.switch-input:checked+.switch-track .switch-thumb{transform:translate(18px);background:var(--on-ac)}.switch-input:focus-visible+.switch-track{outline:2px solid var(--ac);outline-offset:2px}.switch-row b{display:block;font:700 15px var(--f-ui);margin-bottom:2px;color:var(--t1)}.switch-row small{color:var(--t3);font-size:13px;line-height:1.5}.option:disabled{cursor:default}.reveal-panel{margin-top:14px;border-radius:var(--r-md);padding:14px 16px;font-size:14px;line-height:1.6;border:1px solid;animation:fade-in .2s ease}.reveal-panel.good{background:var(--acs);border-color:var(--ac);color:var(--ac-ink)}.reveal-panel.bad{background:var(--errs);border-color:var(--err-bd);color:var(--t1)}.reveal-panel p{margin-top:6px;color:var(--t2);font-size:13px}.action-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:10px;align-items:center;padding:14px max(16px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur-lg));-webkit-backdrop-filter:blur(var(--glass-blur-lg));border-top:1px solid var(--bd)}.action-bar-inner{max-width:620px;margin:0 auto;width:100%;display:flex;gap:10px;align-items:center}.dotstrip{flex:1;display:flex;gap:5px;justify-content:center;align-items:center;cursor:pointer;background:none;border:none;padding:6px}.dot{width:8px;height:8px;border-radius:50%;background:var(--bd2);flex-shrink:0}.dot.answered{background:var(--ac)}.dot.wrong{background:var(--err)}.dot.flagged{background:var(--warn)}.dot.current{box-shadow:0 0 0 2px var(--bg0),0 0 0 3.5px var(--ac)}.dot-more{font:600 11px var(--f-ui);color:var(--t3);margin-left:4px}.drawer-overlay{position:fixed;inset:0;background:var(--overlay);z-index:210;display:flex;align-items:flex-end;justify-content:center;overscroll-behavior:contain;animation:fade-in .18s ease}.drawer{background:var(--bg-raised);border-radius:var(--r-frame) var(--r-frame) 0 0;width:100%;max-width:620px;max-height:82dvh;display:flex;flex-direction:column;overscroll-behavior:contain;padding:18px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:var(--sh-modal);animation:fade-in .22s ease}.drawer-grip{width:40px;height:4px;border-radius:2px;background:var(--bd2);margin:0 auto 14px}.drawer-filters{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.chip{border:1.5px solid var(--bd);background:var(--bg1);color:var(--t2);border-radius:var(--r-pill);padding:6px 14px;font:600 12px var(--f-ui);cursor:pointer}.chip.active{background:var(--ac);border-color:var(--ac);color:var(--on-ac)}.chip.chip-wrong.active{background:var(--err);border-color:var(--err);color:var(--on-err)}.drawer-search{margin-bottom:12px;flex-shrink:0}.search-hits{overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:8px;padding:2px}.search-hit{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;background:var(--acs);border:1.5px solid var(--bd);border-radius:12px;padding:10px 12px;cursor:pointer;font:400 13px/1.5 var(--f-ui);color:var(--t1)}@media(hover:hover){.search-hit:hover{border-color:var(--ac)}}.search-hit:focus-visible{border-color:var(--ac)}.search-hit .dot{margin-top:5px}.search-hit-n{font-weight:700;color:var(--t3);flex-shrink:0}.search-hit-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;min-width:0}.dot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px;overflow-y:auto;overscroll-behavior:contain;padding:2px}.dot-cell{aspect-ratio:1;min-height:44px;border-radius:12px;border:1.5px solid var(--bd);background:var(--bg1);font:700 13px var(--f-ui);color:var(--t2);cursor:pointer;display:flex;align-items:center;justify-content:center}.dot-cell.answered{background:var(--acs);border-color:var(--ac);color:var(--ac-ink)}.dot-cell.wrong{background:var(--errs);border-color:var(--err);color:var(--err)}.dot-cell.flagged{box-shadow:inset 0 0 0 2px var(--warn)}.dot-cell.current{outline:2px solid var(--ac);outline-offset:1px}.result-hero{text-align:center;padding:32px 0 20px}.result-score{font:600 clamp(56px,16vw,76px)/1 var(--f-display);color:var(--ac)}.result-label{font-size:16px;color:var(--t2);margin:8px 0 24px}.result-stats{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}.stat{padding:10px 20px;border-radius:var(--r-md);background:var(--bg1);border:1px solid var(--bd);font:500 14px var(--f-ui)}.stat b{font-weight:700;margin-right:5px;font-size:16px}.missed-item{background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r-md);padding:18px;margin-bottom:12px}.missed-q{font-weight:600;margin-bottom:8px;overflow-wrap:anywhere}.missed-line{font-size:13px;color:var(--t2)}.missed-expl{font-size:13px;color:var(--t3);margin-top:8px;padding-top:8px;border-top:1px solid var(--bd);line-height:1.6;overflow-wrap:anywhere}.row-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r-md);padding:16px 18px;margin-bottom:10px;transition:border-color var(--tr)}@media(hover:hover){a.row-item:hover{border-color:var(--ac)}}.row-title{font-weight:600;margin-bottom:3px}.row-sub{font-size:12px;color:var(--t3)}.profile-head{display:flex;align-items:center;gap:16px;margin-bottom:22px}.profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--avatar-bg);color:var(--avatar-fg);display:flex;align-items:center;justify-content:center;font:700 22px var(--f-ui)}.admin-tabs{display:flex;gap:4px;background:var(--acs);padding:5px;border-radius:var(--r-pill);margin-bottom:24px;max-width:760px}.admin-tabs .tab{border-radius:var(--r-pill)}@media(max-width:639px){.admin-tabs{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs .tab{flex:1 0 auto;white-space:nowrap}}.list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r-md);padding:14px 16px;margin-bottom:10px}.q-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--acs);border:1px solid var(--bd);border-radius:12px;padding:12px 14px;margin-bottom:8px}.q-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.user-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r-md);padding:14px 16px;margin-bottom:10px}.user-main{display:flex;align-items:center;gap:12px;flex:1;min-width:200px}.user-progress{margin-top:6px}.user-progress .progress{height:5px;margin-bottom:3px;max-width:340px}@media(max-width:767px){.user-progress .when{display:none}}.user-actions{display:flex;gap:6px;flex-wrap:wrap}.icon-up{width:80px;height:80px;border-radius:var(--r-chip);border:2px dashed var(--bd2);display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;background:var(--acs);color:var(--t3);flex-shrink:0}@media(hover:hover){.icon-up:hover{border-color:var(--ac);color:var(--ac)}}.icon-up img{width:100%;height:100%;object-fit:cover}.correct-toggle{display:inline-flex;align-items:center;gap:8px}.import-preview{max-height:400px;overflow-y:auto;overscroll-behavior:contain;margin-bottom:14px}.import-q{background:var(--acs);border:1px solid var(--bd);border-radius:12px;padding:12px;margin-bottom:8px;font-size:13px}.import-q.invalid{border-color:var(--err-bd);background:var(--errs)}.import-opts{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:6px}.import-opt{padding:4px 8px;border-radius:6px;color:var(--t2)}.import-opt.correct{background:var(--acs);color:var(--ac-ink);font-weight:600}.empty{text-align:center;padding:56px 20px;color:var(--t3)}.empty .empty-icon{font-size:40px;margin-bottom:12px}.empty .empty-title{font:500 18px var(--f-display);color:var(--t2);margin-bottom:6px}.splash{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;color:var(--t3)}.skeleton{background:linear-gradient(90deg,var(--bg2) 25%,var(--bg3) 37%,var(--bg2) 63%);background-size:400% 100%;animation:sk 1.4s ease infinite;border-radius:var(--r-card)}@keyframes sk{0%{background-position:100% 50%}to{background-position:0 50%}}.skeleton-card{height:180px}.theme-fab{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:60}.skip-link{position:absolute;left:12px;top:-60px;background:var(--ac);color:var(--on-ac);padding:10px 16px;border-radius:var(--r-pill);z-index:400;transition:top var(--tr)}.skip-link:focus{top:12px}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.topbar,.bottomnav,.action-bar{background:var(--bg0)}}@media(prefers-reduced-transparency:reduce){.topbar,.bottomnav,.action-bar{background:var(--bg0);backdrop-filter:none;-webkit-backdrop-filter:none}}@media(pointer:coarse){.seg-item{padding:10px 18px}.icon-btn.sm{width:44px;height:44px}.quiz-top-spacer{width:44px}.chip{padding:10px 14px}}@media(max-width:360px){.action-bar-inner{gap:6px}.dotstrip{gap:4px;padding:6px 2px}}.note-block{margin-top:14px;padding:12px 14px;background:var(--acs);border:1px solid var(--bd);border-radius:12px;text-align:left}.note-compact{margin-top:12px;padding:10px 12px}.note-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.note-tag{font:600 12px var(--f-ui);color:var(--t2);letter-spacing:.02em}.note-count{font-size:11px;color:var(--t3);font-variant-numeric:tabular-nums}.note-body{font-size:14px;line-height:1.6;color:var(--t1);margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.note-add,.note-action{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 10px;border:1px dashed var(--bd);border-radius:10px;background:transparent;color:var(--t2);font:600 13px var(--f-ui);cursor:pointer}.note-action{border-style:solid}@media(hover:hover){.note-add:hover,.note-action:hover{color:var(--ac);border-color:var(--ac)}}.note-input{min-height:84px;margin-top:2px}.note-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.notebook-item{padding:14px 0;border-top:1px solid var(--bd)}.notebook-item:first-of-type{border-top:0;padding-top:4px}.notebook-q{font-weight:600;font-size:15px;overflow-wrap:anywhere}.notebook-when{font-size:12px;margin-top:3px}.q-notes{margin:-4px 0 10px 2px}.q-notes-list{margin-top:8px;display:flex;flex-direction:column;gap:8px}.q-note{background:var(--bg1);border:1px solid var(--bd);border-radius:12px;padding:10px 12px}.q-note-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:5px}.admin-notes{display:flex;flex-direction:column;gap:14px}.admin-note-card{margin:0}.admin-note-q{font-weight:600;font-size:15px;line-height:1.5;margin-bottom:10px;overflow-wrap:anywhere}.nav-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r-md);padding:16px 18px;transition:border-color var(--tr)}@media(hover:hover){a.nav-card:hover{border-color:var(--ac)}}@media(pointer:coarse){.note-add,.note-action{min-height:44px;padding:10px 14px}}.stats-head{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:none;border:0;padding:0;cursor:pointer;color:inherit;font:inherit;text-align:left;min-height:32px}.stats-panel{margin-top:12px}.stat-row{border-top:1px solid var(--bd);padding:12px 0}.stat-row:first-of-type{border-top:0}.stat-open{display:block;width:100%;background:none;border:0;padding:0;margin:0 0 8px;color:inherit;font:inherit;text-align:left;cursor:pointer;min-height:32px}.stat-q{font-size:14px;font-weight:600;overflow-wrap:anywhere}@media(hover:hover){.stat-open:hover .stat-q{color:var(--ac)}}.stat-meter{display:flex;align-items:center;gap:10px}.stat-meter .stat-bar{flex:1;margin-bottom:0}.stat-figures{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.stat-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.stat-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;border:1px solid var(--bd);background:var(--bg1);font:600 11px var(--f-ui);color:var(--t2);white-space:nowrap}.stat-chip.tone-easy{color:var(--ok);border-color:var(--ok)}.stat-chip.tone-med{color:var(--warn);border-color:var(--warn)}.stat-chip.tone-hard{color:var(--err);border-color:var(--err)}.stat-chip.tone-flag,.stat-chip.tone-report{color:var(--t1)}.stat-dist-toggle{min-height:28px;padding:4px 9px;font-size:11px}.stat-dist{margin-top:10px;padding:10px 12px;background:var(--bg1);border:1px solid var(--bd);border-radius:12px}.stat-dist-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.stat-dist-row:last-of-type{margin-bottom:0}.stat-opt{width:1.4em;flex:none;font:600 12px var(--f-ui);color:var(--t2)}.stat-opt-text{flex:1 1 0;min-width:0;font-size:12px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-dist-row .stat-bar{flex:1 1 0;min-width:56px;margin-bottom:0}.stats-scope{margin-top:12px}.stat-n{width:2.4em;flex:none;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:var(--t2)}.stat-dist-hint{margin-top:8px}@media(pointer:coarse){.stats-head,.stat-open{min-height:44px}.stat-dist-toggle{min-height:36px;padding:8px 12px}}.members-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.sortbar{display:flex;gap:4px;background:var(--bg2);border-radius:var(--r-pill);padding:3px}.sort-item{font:600 12px var(--f-ui);color:var(--t2);background:none;border:0;border-radius:var(--r-pill);padding:6px 12px;cursor:pointer}.sort-item.active{color:var(--on-ac);background:var(--ac)}@media(hover:hover){.sort-item:not(.active):hover{color:var(--t1)}}@media(pointer:coarse){.sort-item{padding:9px 14px}}.act-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.act{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font:600 11px var(--f-ui);color:var(--t2);background:var(--bg2);border-radius:var(--r-pill);padding:3px 9px}.act-ok{background:var(--oks);color:var(--badge-ok-ink)}.act-warn{background:var(--warns);color:var(--warn)}.act-err{background:var(--errs);color:var(--err)}.act-error{font:500 13px var(--f-ui);color:var(--warn);background:var(--warns);border-radius:var(--r-md);padding:10px 14px;margin-bottom:12px}.sort-item:disabled{opacity:.45;cursor:not-allowed}.due-card{background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r-card);padding:22px}.due-topic{font:600 12px var(--f-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--t3);margin-bottom:8px}.due-q{font:500 clamp(19px,4.4vw,24px)/1.35 var(--f-display);color:var(--t1);margin-bottom:18px;overflow-wrap:anywhere}.due-actions{display:flex;justify-content:flex-end;margin-top:18px}.due-actions .btn{min-height:44px}.due-done{text-align:center}.due-done .due-actions{justify-content:center}.hardest-list{display:flex;flex-direction:column;gap:12px}.hardest-item{background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r-md);padding:16px 18px}.hardest-q{font:400 15px/1.5 var(--f-ui);color:var(--t1);overflow-wrap:anywhere}.hardest-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 4px}.hardest-topic{font:600 11px var(--f-ui);color:var(--t2);background:var(--bg2);border-radius:var(--r-pill);padding:3px 9px;white-space:nowrap}.hardest-misses{font:600 11px var(--f-ui);color:var(--err);background:var(--errs);border-radius:var(--r-pill);padding:3px 9px;white-space:nowrap}@media(max-width:480px){.due-card{padding:18px 15px}}.health-head{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:none;border:0;padding:0;cursor:pointer;color:inherit;font:inherit;text-align:left;min-height:32px}.health-panel{display:block;margin-top:12px}.health-skipped{display:block;font:500 13px/1.45 var(--f-ui);color:var(--warn);background:var(--warns);border-radius:var(--r-md);padding:10px 14px;margin:0 0 12px;overflow-wrap:anywhere}.health-group{border-top:1px solid var(--bd)}.health-group:first-of-type{border-top:0}.health-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:none;border:0;padding:12px 0;margin:0;cursor:pointer;color:inherit;font:inherit;text-align:left;min-height:32px}.health-group-label{font:600 14px var(--f-ui);color:var(--t1);overflow-wrap:anywhere}.health-group-count{flex:none;font:600 11px var(--f-ui);color:var(--t2);background:var(--bg2);border-radius:var(--r-pill);padding:3px 9px;font-variant-numeric:tabular-nums}.health-rows{padding-bottom:8px}.health-row{padding:8px 0 10px;border-top:1px solid var(--bd)}.health-row:first-of-type{border-top:0}.health-q{display:block;font-size:14px;font-weight:600;color:var(--t1);overflow-wrap:anywhere}@media(hover:hover){.stat-open:hover .health-q{color:var(--ac)}}.health-why{margin:4px 0 0;font:400 13px/1.45 var(--f-ui);color:var(--t2);overflow-wrap:anywhere}@media(pointer:coarse){.health-head,.health-group-head{min-height:44px}}.mock-clock{font-variant-numeric:tabular-nums;white-space:nowrap;padding:8px 12px;flex:0 0 auto}.mock-clock.urgent{color:var(--err);background:var(--errs)}.breakdown-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--bd);border-radius:var(--r-md);background:var(--bg1)}.breakdown-table{border-collapse:collapse;width:100%;font:400 14px/1.5 var(--f-ui)}.breakdown-table th,.breakdown-table td{padding:11px 14px;text-align:left;white-space:nowrap}.breakdown-table thead th{font:600 12px var(--f-ui);color:var(--t2);border-bottom:1px solid var(--bd)}.breakdown-table tbody tr+tr th,.breakdown-table tbody tr+tr td{border-top:1px solid var(--bd)}.breakdown-table tbody th{font:500 14px var(--f-ui);color:var(--t1);white-space:normal;min-width:140px;overflow-wrap:anywhere}.breakdown-table td{color:var(--t2);font-variant-numeric:tabular-nums}.books-shelves{--cover-w: 114px;--slot-pad: 4px;--shelf-gap: 30px;--shelf-pad: 34px;--zone-h: calc(var(--cover-w) * 1.63 + 14px)}@media(max-width:430px){.books-shelves{--cover-w: 96px;--shelf-gap: 18px;--shelf-pad: 10px}}.shelf{margin-bottom:30px}.shelf-inner{position:relative;display:flex;align-items:flex-start;justify-content:flex-start;gap:var(--shelf-gap);padding:0 var(--shelf-pad)}.shelf-inner.is-empty{height:var(--zone-h)}.shelf-empty{position:absolute;left:0;right:0;bottom:28px;text-align:center;font:italic 500 19px var(--f-display);color:var(--t2)}.board{position:absolute;top:var(--zone-h);left:0;width:100%;height:15px;z-index:1;border-radius:2px;background:linear-gradient(180deg,var(--wood-edge) 0,rgba(255,244,224,0) 4px),repeating-linear-gradient(90deg,rgba(74,50,28,.15) 0 2px,transparent 2px 11px,rgba(74,50,28,.08) 11px 13px,transparent 13px 31px),repeating-linear-gradient(89deg,rgba(255,235,200,.07) 0 17px,transparent 17px 39px),linear-gradient(180deg,var(--wood-hi) 0,var(--wood-lo) 100%)}.board:after{content:"";position:absolute;left:0;right:0;top:100%;height:9px;border-radius:0 0 5px 5px;background:repeating-linear-gradient(90deg,rgba(46,30,16,.2) 0 3px,transparent 3px 16px),linear-gradient(180deg,var(--lip-hi),var(--lip-lo));box-shadow:0 18px 24px -12px var(--wood-shadow)}.slot{display:flex;flex-direction:column;align-items:center;width:calc(var(--cover-w) + var(--slot-pad))}.bookzone{height:var(--zone-h);display:flex;align-items:flex-end;z-index:2}.cap{width:calc(var(--cover-w) + var(--slot-pad));padding-top:38px;text-align:center}.cap-t{font:500 13px/1.25 var(--f-ui);color:var(--t1);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cap-a{font:400 12px var(--f-ui);color:var(--t2);margin-top:2px;overflow-wrap:anywhere}.cap-s{display:inline-block;margin-top:5px;font:500 11px var(--f-ui);color:var(--ac-ink);background:var(--acs);border-radius:var(--r-pill);padding:2px 9px;white-space:nowrap}.book{position:relative;padding:0;border:0;background:none;cursor:pointer;transition:transform var(--tr)}.book:after{content:"";position:absolute;left:-6%;right:-6%;bottom:-5px;height:12px;background:radial-gradient(ellipse at center,#00000059,#0000 70%);pointer-events:none}@media(hover:hover){.book:hover{transform:translateY(-9px) rotate(-1.5deg)}}.book:focus-visible{transform:translateY(-9px) rotate(-1.5deg);box-shadow:0 0 0 2px var(--ac)}.book.busy{transform:translateY(-9px) rotate(-1.5deg)}.book.cover{width:var(--cover-w);aspect-ratio:114 / 186;border-radius:2px 6px 6px 2px;box-shadow:1px 2px 3px #3c281447}.book.cover img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}.book.cover:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 7px 0 9px -6px #00000080,inset -2px 0 3px -2px #ffffff8c}.book.spine{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:2px 3px 3px 2px;padding:10px 4px;box-shadow:inset 2px 0 4px -2px #ffffff80,inset -3px 0 5px -3px #0000004d,1px 2px 3px #3c281447}.spine-t{writing-mode:vertical-rl;font:500 13px var(--f-display);max-height:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spine-band{flex:none;width:60%;height:3px;border-radius:2px;background:currentColor;opacity:.55}.spine-sage{background:linear-gradient(150deg,#9dc0a9,#5a7d64);color:#faf6ef}.spine-gold{background:linear-gradient(150deg,#c5b177,#8a7d4f);color:#2f2a23}.spine-clay{background:linear-gradient(150deg,#c79a7d,#a06a4c);color:#faf6ef}.spine-slate{background:linear-gradient(150deg,#96abc5,#5c718a);color:#faf6ef}.spine-stone{background:linear-gradient(150deg,#ab9f8c,#7a6f5f);color:#faf6ef}.dl-chip{position:absolute;top:-30px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;white-space:nowrap;font:500 11px var(--f-ui);color:var(--ac-ink);background:var(--acs);border:1px solid var(--bd2);border-radius:var(--r-pill);padding:3px 10px;box-shadow:var(--sh-card);pointer-events:none}.dl-chip:after{content:"";width:7px;height:7px;border-radius:50%;border:2px solid var(--ac);border-top-color:transparent;animation:spin .9s linear infinite}
