@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-wght-normal-DayYxulF.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-math-wght-normal-Bl4ZGkZl.woff2) format("woff2-variations");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-symbols-wght-normal-DxQzqQfC.woff2) format("woff2-variations");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-vietnamese-wght-normal-BBxOatbv.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-ext-wght-normal-QAhDxQuo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-wght-normal-Dun_Rd-l.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-cyrillic-ext-wght-normal-DiMfzA-V.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-cyrillic-wght-normal-D5lnP6kL.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-latin-ext-wght-normal-Byk3UhVp.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-latin-wght-normal-C1hSzPvX.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #f2f5fa;--sheet: #ffffff;--sheet-2: #f7f9fd;--ink: #101a3a;--ink-2: #4a5578;--ink-3: #7b86a6;--line: #dfe5f1;--line-2: #cbd5ea;--ruled: #d5def0;--blue: #2643b8;--btn: #2643b8;--btn-hover: #1d3699;--blue-soft: #e6ebff;--red: #d6423a;--red-soft: #fde8e5;--hl: #ffe259;--hl-soft: #fff6c9;--green: #1b8556;--green-soft: #dcf3e6;--amber: #8f5a06;--amber-soft: #fff1c9;--font: "Onest Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--hand: "Caveat Variable", "Segoe Print", "Bradley Hand", cursive;--r-lg: 12px;--r: 9px;--r-sm: 7px;--sidebar-w: 268px;--maxw: 1480px;--pop-shadow: 0 18px 50px -14px rgba(16, 26, 58, .35), 0 2px 8px rgba(16, 26, 58, .08);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);color-scheme:light}[data-theme=dark]{--paper: #0b1122;--sheet: #121a33;--sheet-2: #172041;--ink: #e9edfb;--ink-2: #a9b3d3;--ink-3: #7783a7;--line: #222c50;--line-2: #2d3a66;--ruled: #22305c;--blue: #90a6ff;--btn: #4562dc;--btn-hover: #5a76ee;--blue-soft: #1b2652;--red: #ff8077;--red-soft: #3a1d26;--hl: #f3d54a;--hl-soft: #3a3313;--green: #4fd493;--green-soft: #113a2b;--amber: #f0b84d;--amber-soft: #3b2f10;--pop-shadow: 0 18px 50px -12px rgba(0, 0, 0, .7);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:.94rem;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body.no-scroll{overflow:hidden}h1,h2,h3,h4,p{margin:0}h1,h2,h3{letter-spacing:-.015em;line-height:1.2}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img,svg{display:block;max-width:100%}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}::selection{background:var(--hl);color:#101a3a}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.small{font-size:.82rem}.right{text-align:right}.nowrap{white-space:nowrap}.strong{font-weight:650}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hand{font-family:var(--hand);color:var(--red);font-weight:500;letter-spacing:0}.note{font-size:1.35rem;line-height:1.1;margin-top:.15rem}.t-bad{color:var(--red)}.t-ok{color:var(--green)}.t-warn{color:var(--amber)}.row{display:flex;align-items:center;gap:.6rem}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.stack{display:grid;gap:1rem}.mt{margin-top:1rem}.boot{min-height:100dvh;display:grid;place-items:center}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--line-2);border-top-color:var(--btn);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .9s linear infinite}.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;overflow-y:auto;z-index:60;background:var(--sheet);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:1.1rem .85rem .9rem}.sidebar:after{content:"";position:fixed;top:0;bottom:0;left:calc(var(--sidebar-w) - 6px);width:1px;background:var(--red);opacity:.4;pointer-events:none}.brand{display:flex;align-items:center;gap:.6rem;padding:0 .4rem 1rem;font-weight:750;font-size:1.12rem;letter-spacing:-.02em}.side-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding-bottom:1rem}.side-head .brand{padding-bottom:0}.side-close{flex:none;width:38px;height:38px;padding:0}.brand-mark{width:32px;height:32px;flex:none;display:block}.inst-card{display:flex;gap:.65rem;align-items:center;padding:.65rem;border:1px dashed var(--line-2);border-radius:var(--r);margin-bottom:.9rem}.inst-card b{display:block;font-size:.9rem;line-height:1.25}.inst-card span{font-size:.78rem;color:var(--ink-3)}.nav{display:grid;gap:1.05rem;flex:1;align-content:start;padding-bottom:1rem}.nav-group h4{font-size:.76rem;font-weight:600;color:var(--ink-3);padding:0 .7rem .3rem}.nav a{position:relative;display:flex;align-items:center;gap:.7rem;padding:.3rem .7rem .3rem .4rem;border-radius:var(--r);color:var(--ink-2);font-weight:540;transition:background .18s,color .18s}.nav a:hover{background:var(--sheet-2);color:var(--ink)}.nav a svg{flex:none;box-sizing:border-box;width:30px;height:30px;padding:6px;border-radius:9px;transition:background .18s,color .18s,transform .18s,box-shadow .18s}.nav a:hover svg{transform:scale(1.07)}.nav a.active{background:var(--blue-soft);color:var(--blue);font-weight:680}.nav a.active svg{background:var(--btn);color:#fff;box-shadow:0 5px 12px -4px color-mix(in srgb,var(--btn) 75%,transparent)}.nav a.active:before{content:"";position:absolute;left:-.85rem;top:18%;bottom:18%;width:4px;border-radius:0 4px 4px 0;background:var(--btn)}.side-foot{border-top:1px solid var(--line);padding-top:.8rem;display:flex;align-items:center;gap:.6rem}.side-foot b{display:block;font-size:.86rem;line-height:1.2}.side-foot span{font-size:.76rem;color:var(--ink-3)}.main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:.75rem;padding:calc(.65rem + var(--safe-t)) 1.5rem .65rem;background:color-mix(in srgb,var(--paper) 90%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.top-title{font-weight:700;font-size:1.05rem;display:none}.top-date{font-family:var(--hand);font-size:1.35rem;color:var(--red);line-height:1;white-space:nowrap}.content{width:100%;max-width:var(--maxw);margin:0 auto;padding:1.5rem 1.5rem 3rem;flex:1}.only-mobile{display:none!important}.scrim{display:none}.offline{background:var(--hl);color:#101a3a;text-align:center;font-size:.84rem;padding:.35rem;font-weight:600}.plan-banner{display:flex;align-items:center;gap:.5rem;background:var(--amber-soft);color:var(--amber);font-size:.84rem;font-weight:600;padding:.5rem 1rem}.plan-banner.ended{background:var(--red-soft);color:var(--red)}.plan-banner span{flex:1}.plan-banner .btn{color:inherit;border-color:currentColor}.announce-banner{display:flex;align-items:center;gap:.5rem;background:var(--blue-soft);color:var(--blue);font-size:.84rem;font-weight:600;padding:.5rem 1rem}.announce-banner span{flex:1;white-space:pre-wrap}.announce-banner button{color:inherit}.gsearch{position:relative;flex:1;max-width:460px}.gsearch input{width:100%;padding-left:2.4rem;background:var(--sheet)}.gsearch>svg{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}.pop{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--pop-shadow);padding:.35rem;z-index:70;max-height:60vh;overflow:auto}.pop a,.pop button.pop-item{display:flex;align-items:center;gap:.65rem;padding:.5rem .6rem;border-radius:var(--r-sm);width:100%;background:none;border:0;text-align:left}.pop a:hover,.pop button.pop-item:hover{background:var(--sheet-2)}.pop small{color:var(--ink-3);display:block}.pop .pop-h{font-size:.74rem;color:var(--ink-3);padding:.4rem .6rem .15rem;font-weight:600}.bottomnav{display:none}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.page-head h1{font-size:clamp(1.55rem,1.2rem + .7vw,1.9rem);font-weight:720;letter-spacing:-.025em}.page-head .muted{margin-top:.2rem}.page-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.55rem .95rem;border-radius:var(--r-sm);border:1px solid transparent;background:var(--btn);color:#fff;font-weight:600;font-size:.9rem;line-height:1.2;transition:background .15s,border-color .15s,transform .08s;white-space:nowrap;min-height:2.4rem}.btn:hover{background:var(--btn-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}.btn.ghost:hover{background:var(--sheet-2)}.btn.soft{background:var(--blue-soft);color:var(--blue)}.btn.soft:hover{background:color-mix(in srgb,var(--blue-soft) 70%,var(--blue) 12%)}.btn.danger{background:var(--red);color:#fff}.btn.danger-ghost{background:transparent;color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,transparent)}.btn.danger-ghost:hover{background:var(--red-soft)}.btn.sm{padding:.32rem .65rem;font-size:.82rem;min-height:2rem}.btn.icon{padding:0;width:2.4rem;height:2.4rem}.btn.icon.sm{width:2rem;height:2rem}.btn.block{width:100%}.btn.lg{min-height:2.9rem;font-size:1rem;padding:.7rem 1.3rem}.input,.select,.textarea{width:100%;background:var(--sheet);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:.55rem .75rem;font:inherit;min-height:2.4rem;transition:border-color .15s,box-shadow .15s}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 22%,transparent)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%237b86a6' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.textarea{min-height:5.5rem;resize:vertical}.field{display:grid;gap:.3rem;align-content:start}.label{font-size:.82rem;font-weight:600;color:var(--ink-2)}.hint{font-size:.78rem;color:var(--ink-3)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem}.form-grid .full{grid-column:1 / -1}.form-error{background:var(--red-soft);color:var(--red);padding:.6rem .8rem;border-radius:var(--r-sm);font-size:.86rem;font-weight:550}.check{display:flex;gap:.6rem;align-items:center;font-size:.9rem;cursor:pointer}.check input{width:1.1rem;height:1.1rem;accent-color:var(--btn)}.pw{position:relative}.pw .input{padding-right:2.8rem}.pw button{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--ink-3);padding:.5rem}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{padding:.32rem .75rem;border-radius:99px;border:1px solid var(--line-2);background:var(--sheet);font-size:.84rem;font-weight:550;color:var(--ink-2)}.chip.on{background:var(--blue-soft);color:var(--blue);border-color:var(--blue)}.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}.searchbox{position:relative;flex:1 1 240px;max-width:380px}.searchbox svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--ink-3)}.searchbox .input{padding-left:2.3rem}.toolbar .select{width:auto;min-width:9rem}.seg{display:inline-flex;background:var(--sheet-2);border:1px solid var(--line);border-radius:var(--r);padding:3px;gap:2px;max-width:100%;overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{border:0;background:transparent;padding:.38rem .85rem;border-radius:6px;font-weight:600;font-size:.86rem;color:var(--ink-2);white-space:nowrap;display:inline-flex;gap:.4rem;align-items:center}.seg button.on{background:var(--sheet);color:var(--ink);box-shadow:0 0 0 1px var(--line-2)}.seg em{font-style:normal;font-size:.74rem;background:var(--line);padding:0 .4rem;border-radius:99px;color:var(--ink-2)}.tabs{display:flex;gap:1.4rem;border-bottom:1px solid var(--line);margin-bottom:1.1rem;overflow-x:auto;scrollbar-width:none}.tabs button{background:none;border:0;padding:.6rem 0;font-weight:600;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs button.on{color:var(--ink);border-color:var(--red)}.panel{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.95rem 1.1rem 0;flex-wrap:wrap}.panel-head h2{font-size:1rem;font-weight:680}.panel-head .sub{font-size:.82rem;color:var(--ink-3);font-weight:400;margin-top:.1rem}.panel-body{padding:.9rem 1.1rem 1.1rem}.panel-body.flush{padding:.4rem 0 0}.rule-block{padding-top:.9rem;border-top:1px solid var(--line)}.rule-block:first-child{padding-top:0;border-top:none}.link{color:var(--blue);font-weight:600;font-size:.86rem}.link:hover{text-decoration:underline}.ledger{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.stat{padding:1rem 1.2rem;border-left:1px solid var(--line);display:grid;gap:.15rem;align-content:start;min-width:0}.stat:first-child{border-left:0}.stat-label{font-size:.82rem;color:var(--ink-2);font-weight:550}.stat-value{font-size:clamp(1.4rem,1.1rem + .6vw,1.75rem);font-weight:720;letter-spacing:-.03em;line-height:1.15}.stat-sub{font-size:.8rem;color:var(--ink-3)}.grid12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.12rem .55rem;border-radius:99px;font-size:.76rem;font-weight:650;white-space:nowrap;background:var(--sheet-2);color:var(--ink-2);border:1px solid var(--line)}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-ok{background:var(--green-soft);color:var(--green);border-color:transparent}.badge-warn{background:var(--amber-soft);color:var(--amber);border-color:transparent}.badge-bad{background:var(--red-soft);color:var(--red);border-color:transparent}.badge-info{background:var(--blue-soft);color:var(--blue);border-color:transparent}.badge-tier-free{background:var(--sheet-2);color:var(--ink-2);border-color:var(--line)}.badge-tier-starter{background:linear-gradient(135deg,#eef1f5,#b7c0cc);color:#3a4250;border-color:transparent}.badge-tier-growth{background:linear-gradient(135deg,#ffe9a8,#d6a53a);color:#6b4a05;border-color:transparent}.badge-tier-pro{background:linear-gradient(135deg,#f1f6fb,#a9cbe8);color:#1f4e73;border-color:transparent}.badge-tier-institution{background:linear-gradient(135deg,#d3e0ff,#a6b8ff 55%,#dcc9ff);color:#322a7a;border-color:transparent}.avatar{display:inline-grid;place-items:center;border-radius:50%;font-weight:700;flex:none;letter-spacing:0}.bdot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}.progress{height:7px;border-radius:99px;background:var(--line);overflow:hidden}.progress i{display:block;height:100%;border-radius:99px;background:var(--btn)}.progress i.tone-ok{background:var(--green)}.progress i.tone-bad{background:var(--red)}.progress i.tone-warn{background:#e0a21a}.person{display:flex;align-items:center;gap:.65rem;min-width:0}.person b{display:block;line-height:1.25;font-weight:620}.person small{color:var(--ink-3);font-size:.78rem}.person>div{min-width:0}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:.78rem;font-weight:600;color:var(--ink-3);padding:.6rem 1rem;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:.7rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--sheet-2)}.table td.num,.table th.num{text-align:right}.actions{display:flex;gap:.3rem;justify-content:flex-end}.rowlink{cursor:pointer}.list{display:grid}.list>*{padding:.75rem 1.1rem;border-top:1px solid var(--line);display:flex;align-items:center;gap:.75rem}.list>*:first-child{border-top:0}.empty{display:grid;justify-items:center;gap:.4rem;text-align:center;padding:2.5rem 1rem;color:var(--ink-3)}.empty-title{font-size:1.6rem;line-height:1.1}.empty .btn{margin-top:.6rem}.chart{width:100%;height:auto;overflow:visible}.chart .grid-line{stroke:var(--line);stroke-dasharray:3 4}.chart .axis{fill:var(--ink-3);font-size:11px;font-family:var(--font)}.chart-empty{display:grid;place-items:center;height:200px}.legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:var(--ink-2)}.legend span{display:inline-flex;align-items:center;gap:.4rem}.legend i{width:10px;height:10px;border-radius:3px}.donut{position:relative;flex:none}.donut svg{transform:none;width:100%;height:100%}.donut-mid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}.donut-mid strong{font-size:1.5rem;letter-spacing:-.03em;line-height:1.1}.donut-mid span{font-size:.76rem;color:var(--ink-3)}.ring{position:relative;flex:none}.ring span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center;font-weight:720;font-size:1.1rem}.ring small{font-size:.66rem;color:var(--ink-3);font-weight:500}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#090e208c;display:grid;place-items:center;padding:1rem;animation:fade .15s ease-out}.modal{background:var(--sheet);border-radius:14px;width:100%;max-height:min(90dvh,900px);display:flex;flex-direction:column;box-shadow:var(--pop-shadow);border:1px solid var(--line);animation:rise .2s ease-out}.modal-sm{max-width:420px}.modal-md{max-width:640px}.modal-lg{max-width:860px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem .9rem .8rem 1.25rem;border-bottom:1px solid var(--line)}.modal-head h3{font-size:1.08rem;font-weight:700}.modal-body{padding:1.1rem 1.25rem;overflow-y:auto}.modal-foot{padding:.8rem 1.25rem calc(.8rem + var(--safe-b));border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(10px) scale(.985)}}.toasts{position:fixed;z-index:200;right:1rem;bottom:1rem;display:grid;gap:.5rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.55rem;background:var(--ink);color:var(--paper);padding:.65rem .9rem;border-radius:var(--r);box-shadow:var(--pop-shadow);font-weight:550;font-size:.9rem;animation:rise .2s ease-out;max-width:min(420px,calc(100vw - 2rem))}.toast svg{flex:none}.toast-ok svg{color:#4fd493}.toast-bad svg{color:#ff8077}.toast-warn svg{color:#f0b84d}.greet{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.1rem}.greet h1{font-size:clamp(1.6rem,1.2rem + .9vw,2rem);font-weight:730;letter-spacing:-.03em}.quick{display:flex;gap:.5rem;flex-wrap:wrap}.klass-row{display:flex;align-items:center;gap:.8rem;padding:.7rem 1.1rem;border-top:1px solid var(--line)}.klass-row:first-child{border-top:0}.time-col{width:4.6rem;flex:none;font-weight:650;font-size:.86rem}.time-col small{display:block;color:var(--ink-3);font-weight:450;font-size:.74rem}.klass-row .grow{flex:1;min-width:0}.klass-row .grow b{display:block;line-height:1.25}.klass-row .grow small{color:var(--ink-3)}.pin{border-left:3px solid var(--hl);background:var(--hl-soft);padding:.6rem .8rem;border-radius:0 var(--r-sm) var(--r-sm) 0}.register{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-lg);position:relative;overflow:hidden}.reg-head{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;padding:.9rem 1.1rem;border-bottom:2px solid var(--red)}.reg-row{display:grid;grid-template-columns:3.4rem minmax(0,1fr) auto;align-items:center;min-height:3.6rem;border-bottom:1px solid var(--ruled);background:transparent}.reg-row .roll{color:var(--ink-3);font-size:.8rem;padding-left:1.1rem}.reg-row .who{padding:.4rem .9rem;border-left:1px solid color-mix(in srgb,var(--red) 55%,transparent);box-shadow:-3px 0 0 -2px color-mix(in srgb,var(--red) 55%,transparent);min-width:0}.reg-row .who b{font-weight:620;display:block;line-height:1.25}.reg-row .who small{color:var(--ink-3)}.marks{display:flex;gap:.4rem;padding:0 1.1rem 0 0}.mk{width:2.75rem;height:2.75rem;border-radius:50%;border:1.5px solid var(--line-2);background:var(--sheet);font-weight:700;font-size:.95rem;color:var(--ink-3);display:grid;place-items:center;transition:all .12s}.mk:hover{border-color:var(--ink-3)}.mk.P.on{background:var(--green);border-color:var(--green);color:#fff}.mk.L.on{background:#e8a91a;border-color:#e8a91a;color:#241a02}.mk.A.on{background:var(--red);border-color:var(--red);color:#fff}.savebar{position:sticky;bottom:calc(var(--safe-b) + 0px);z-index:20;display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:.8rem 1.1rem;background:var(--sheet);border-top:1px solid var(--line-2)}.tally{display:flex;gap:1.1rem;font-weight:650}.tally span{display:inline-flex;gap:.35rem;align-items:baseline}.tally b{font-size:1.25rem;letter-spacing:-.02em}.sheetgrid{border-collapse:separate;border-spacing:0;font-size:.82rem}.sheetgrid th,.sheetgrid td{padding:0;text-align:center;min-width:2.15rem;height:2.3rem;border-bottom:1px solid var(--ruled)}.sheetgrid thead th{position:sticky;top:0;background:var(--sheet);z-index:2;font-size:.72rem;color:var(--ink-3);font-weight:600;line-height:1.1;height:3rem;border-bottom:2px solid var(--red)}.sheetgrid .stick{position:sticky;left:0;background:var(--sheet);z-index:3;text-align:left;padding:0 .9rem;min-width:11rem;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid color-mix(in srgb,var(--red) 55%,transparent);font-weight:600}.sheetgrid td.mkc{font-family:var(--hand);font-size:1.35rem;line-height:1}.sheetgrid td.P{color:var(--blue)}.sheetgrid td.A{color:var(--red)}.sheetgrid td.L{color:var(--amber)}.sheetgrid td.pct{min-width:3.4rem;font-weight:700;padding:0 .6rem}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.7rem}.daycol{min-width:0}.daycol h3{font-size:.9rem;font-weight:700;padding:.55rem .7rem;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r) var(--r) 0 0;border-bottom:2px solid var(--line-2);display:flex;justify-content:space-between}.daycol.today h3{border-bottom-color:var(--red);background:var(--hl-soft)}.daycol .col-body{display:grid;gap:.5rem;padding:.5rem 0 0}.klass{background:var(--sheet);border:1px solid var(--line);border-left:4px solid var(--c, var(--blue));border-radius:var(--r-sm);padding:.55rem .65rem;display:grid;gap:.1rem;font-size:.84rem}.klass b{line-height:1.25}.klass .t{color:var(--c, var(--blue));font-weight:700;font-size:.8rem}.klass small{color:var(--ink-3)}.daytabs{display:none}.card{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.05rem 1.1rem;display:grid;gap:.75rem;align-content:start;min-width:0}.card.stripe{border-top:4px solid var(--c, var(--blue))}.card h3{font-size:1.02rem;font-weight:680;line-height:1.25}.kv{display:grid;grid-template-columns:auto 1fr;gap:.3rem .9rem;font-size:.86rem}.kv dt{color:var(--ink-3)}.kv dd{margin:0;font-weight:560;text-align:right;min-width:0;overflow-wrap:anywhere}.card-foot{display:flex;gap:.4rem;flex-wrap:wrap;padding-top:.75rem;border-top:1px solid var(--line)}.notice{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem 1.15rem;display:grid;gap:.4rem}.notice.pinned{border-color:var(--hl);background:linear-gradient(var(--hl-soft),var(--hl-soft))}.notice h3{font-size:1.02rem}.picklist{display:grid;gap:0;max-height:45dvh;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-sm)}.picklist label{display:flex;align-items:center;gap:.7rem;padding:.55rem .8rem;border-bottom:1px solid var(--line);cursor:pointer}.picklist label:last-child{border-bottom:0}.picklist label:hover{background:var(--sheet-2)}.picklist input{width:1.1rem;height:1.1rem;accent-color:var(--btn)}.picklist input.marks-input{width:5.5rem;height:auto;flex:none;text-align:right}.profile-hero{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;padding:1.2rem 1.3rem}.profile-hero h1{font-size:1.6rem;font-weight:730;letter-spacing:-.025em}.contact-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem}.heat{display:grid;grid-template-columns:repeat(auto-fill,2.1rem);gap:5px}.heat i{width:2.1rem;height:2.1rem;border-radius:6px;display:grid;place-items:center;font-style:normal;font-size:.72rem;font-weight:700;background:var(--sheet-2);color:var(--ink-3);border:1px solid var(--line)}.heat i.P{background:var(--green-soft);color:var(--green);border-color:transparent}.heat i.L{background:var(--amber-soft);color:var(--amber);border-color:transparent}.heat i.A{background:var(--red-soft);color:var(--red);border-color:transparent}.receipt{position:relative;background:var(--sheet);border:1px solid var(--line-2);border-radius:6px;padding:1.4rem 1.5rem 1.5rem 2.6rem;background-image:repeating-linear-gradient(transparent 0,transparent 1.9rem,var(--ruled) 1.9rem,var(--ruled) calc(1.9rem + 1px));overflow:hidden}.receipt:before{content:"";position:absolute;top:0;bottom:0;left:1.7rem;width:2px;background:var(--red);opacity:.6}.receipt h2{font-size:1.2rem}.receipt .rrow{display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0}.receipt .total{font-size:1.5rem;font-weight:740;letter-spacing:-.03em}.stamp{position:absolute;right:1.2rem;top:1.2rem;border:3px solid var(--green);color:var(--green);font-weight:800;letter-spacing:.12em;padding:.15rem .7rem;border-radius:6px;transform:rotate(-9deg);font-size:1.05rem;opacity:.85}.stamp.part{border-color:var(--amber);color:var(--amber)}.receipt-note{font-family:var(--hand);font-size:1.4rem;color:var(--red);margin-top:.6rem}.auth{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.auth-hero{position:relative;padding:clamp(1.5rem,4vw,3.5rem) clamp(1.5rem,5vw,4.5rem) 2rem clamp(4.5rem,8vw,7rem);background-color:var(--sheet);background-image:repeating-linear-gradient(transparent 0,transparent calc(2.2rem - 1px),var(--ruled) calc(2.2rem - 1px),var(--ruled) 2.2rem);background-position:0 1.2rem;display:flex;flex-direction:column;justify-content:space-between;gap:2rem;border-right:1px solid var(--line);overflow:hidden}.auth-hero:before{content:"";position:absolute;top:0;bottom:0;left:clamp(3rem,6vw,5rem);width:2px;background:var(--red);opacity:.55}.auth-hero:after{content:"";position:absolute;top:0;bottom:0;left:calc(clamp(3rem,6vw,5rem) + 5px);width:1px;background:var(--red);opacity:.3}.auth-hero h1{font-size:clamp(2.2rem,1.4rem + 2vw,3.3rem);font-weight:760;letter-spacing:-.04em;line-height:1.02;max-width:12ch}.auth-hero .scribble{font-size:clamp(1.7rem,1.2rem + 1.6vw,2.6rem);line-height:1.05;transform:rotate(-1.5deg);display:inline-block;margin-top:.8rem}.hero-list{display:grid;gap:.55rem;list-style:none;padding:0;margin:0;max-width:34rem}.hero-list li{display:flex;gap:.6rem;align-items:baseline;font-weight:540;background:var(--sheet);width:fit-content;padding:.05rem .4rem .05rem 0}.hero-list li svg{color:var(--green);flex:none;transform:translateY(3px)}.auth-form{display:grid;place-items:center;padding:2rem 1.25rem}.auth-card{width:100%;max-width:440px;display:grid;gap:1.1rem}.auth-card h2{font-size:1.7rem;font-weight:730;letter-spacing:-.03em}.demo-list{display:grid;gap:.5rem}.demo-btn{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;padding:.65rem .8rem;background:var(--sheet);border:1px solid var(--line-2);border-radius:var(--r);transition:border-color .15s,background .15s}.demo-btn:hover{border-color:var(--blue);background:var(--blue-soft)}.demo-btn b{display:block;line-height:1.25}.demo-btn small{color:var(--ink-3)}.divider{display:flex;align-items:center;gap:.8rem;color:var(--ink-3);font-size:.82rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}@page{margin:12mm}@media print{.no-print{display:none!important}}@media (min-width: 1024px){html{font-size:15px}}@media (min-width: 1800px){:root{--maxw: 1720px}}@media (min-width: 2400px){:root{--maxw: 2100px}}@media (max-width: 1280px){.span-8,.span-7,.span-5,.span-4{grid-column:span 12}.span-6,.span-3{grid-column:span 6}.week{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1023px){.app{display:block}.only-mobile{display:inline-flex!important}.only-desktop{display:none!important}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);transform:translate(-102%);transition:transform .22s ease-out;box-shadow:var(--pop-shadow);padding-top:calc(1.1rem + var(--safe-t));padding-bottom:calc(.9rem + var(--safe-b))}.sidebar:after{display:none}.sidebar.open{transform:none}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#090e2080;animation:fade .15s}.topbar{padding-left:.8rem;padding-right:.8rem}.top-title{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-date{display:none}.gsearch{display:none;position:absolute;left:0;right:0;top:100%;max-width:none;padding:.5rem .8rem;background:var(--paper);border-bottom:1px solid var(--line)}.gsearch.open{display:block}.gsearch>svg{left:1.6rem}.gsearch .pop{left:.8rem;right:.8rem}.content{padding:1rem .9rem calc(5.6rem + var(--safe-b))}.bottomnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--sheet);border-top:1px solid var(--line-2);padding:.3rem .3rem calc(.3rem + var(--safe-b))}.bottomnav a,.bottomnav button{display:grid;justify-items:center;gap:.1rem;padding:.35rem 0;border:0;background:none;font-size:.7rem;font-weight:600;color:var(--ink-3);border-radius:var(--r-sm)}.bottomnav a.active{color:var(--blue)}.bottomnav a.active svg{background:var(--blue-soft);color:var(--blue);border-radius:99px;padding:3px 12px;width:52px;height:27px}.toasts{left:.8rem;right:.8rem;bottom:calc(5.2rem + var(--safe-b))}.week{display:block}.week .daycol{display:none}.week .daycol.show{display:block}.week .daycol h3{display:none}.daytabs{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.7rem;scrollbar-width:none}.daytabs button{flex:1 0 auto;min-width:3.6rem;padding:.5rem .4rem;border-radius:var(--r);border:1px solid var(--line-2);background:var(--sheet);font-weight:650;display:grid;justify-items:center;line-height:1.15}.daytabs button small{font-weight:500;color:var(--ink-3);font-size:.72rem}.daytabs button.on{background:var(--btn);border-color:var(--btn);color:#fff}.daytabs button.on small{color:#dfe6ff}.daytabs button.today:not(.on){border-color:var(--red)}.auth{grid-template-columns:1fr}.auth-hero{padding-bottom:1.5rem;gap:1rem;border-right:0;border-bottom:1px solid var(--line)}.auth-hero .hero-list{display:none}}@media (max-width: 760px){.ledger{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger .stat:nth-child(3){border-left:0}.ledger .stat:nth-child(n+3){border-top:1px solid var(--line)}.span-6,.span-3{grid-column:span 12}.form-grid{grid-template-columns:1fr}.page-actions{width:100%}.page-actions .btn{flex:1}.toolbar .select,.toolbar .searchbox{flex:1 1 100%;max-width:none;width:100%}.cards{grid-template-columns:1fr}.modal-backdrop{align-items:end;padding:0}.modal{max-width:none!important;border-radius:18px 18px 0 0;max-height:92dvh;animation:sheet .22s ease-out}.modal-foot{position:sticky;bottom:0;background:var(--sheet)}.modal-foot .btn{flex:1}@keyframes sheet{0%{transform:translateY(40px);opacity:.6}}.rtable thead{display:none}.rtable,.rtable tbody,.rtable tr,.rtable td{display:block;width:100%}.rtable tr{border:1px solid var(--line);border-radius:var(--r);padding:.55rem .9rem;margin:0 0 .65rem;background:var(--sheet)}.rtable tbody tr:hover{background:var(--sheet)}.rtable td{border:0!important;padding:.3rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:right}.rtable td:before{content:attr(data-label);color:var(--ink-3);font-size:.78rem;font-weight:600;text-align:left;flex:none}.rtable td.cell-main{justify-content:flex-start;text-align:left;padding:.35rem 0 .5rem;border-bottom:1px solid var(--line)!important;margin-bottom:.25rem}.rtable td.cell-main:before,.rtable td.no-label:before{display:none}.rtable td.actions-cell{justify-content:flex-end;padding-top:.5rem}.table-wrap:has(>.rtable){overflow:visible}.panel>.table-wrap:has(>.rtable){padding:.75rem .75rem .1rem}.reg-row{grid-template-columns:2.8rem minmax(0,1fr) auto}.reg-row .roll{padding-left:.7rem;font-size:.72rem}.marks{padding-right:.7rem;gap:.3rem}.mk{width:2.6rem;height:2.6rem}.profile-hero{padding:1rem}.greet .quick{width:100%}.greet .quick .btn{flex:1 1 calc(50% - .5rem)}.list>*{padding-left:.9rem;padding-right:.9rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.count{margin-left:auto;font-style:normal;font-size:.72rem;font-weight:700;background:var(--red);color:#fff;border-radius:99px;padding:0 7px;line-height:1.5}.bell{position:relative}.bell i{position:absolute;top:2px;right:0;font-style:normal;font-size:.66rem;font-weight:700;background:var(--red);color:#fff;border-radius:99px;min-width:17px;height:17px;display:grid;place-items:center;padding:0 4px}.chart .grid{stroke:var(--rule, var(--line));stroke-width:1}.chart .tick,.tick{fill:var(--ink-3);font-size:11px}.donut-c{fill:var(--ink);font-size:24px;font-weight:750}.ring-t{fill:var(--ink);font-weight:700}.pop a>span b{display:block;font-size:.9rem}.pop>div>a{color:inherit}.legal{min-height:100dvh;background:var(--sheet)}.legal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:calc(.8rem + var(--safe-t)) 1.25rem .8rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--sheet);z-index:5}.legal-head .brand{padding:0;color:inherit;text-decoration:none}.legal-body{max-width:760px;margin:0 auto;padding:1.6rem 1.25rem calc(3rem + var(--safe-b))}.legal-body h1{font-size:1.9rem;font-weight:750;letter-spacing:-.03em}.legal-body section{margin-top:1.5rem}.legal-body h2{font-size:1.05rem;font-weight:700;margin-bottom:.4rem}.legal-body p,.legal-body li{line-height:1.65;color:var(--ink-2)}.legal-body p+p{margin-top:.6rem}.legal-body ul{margin:.5rem 0 0 1.2rem;display:grid;gap:.3rem;list-style:disc}.legal-foot{margin-top:2rem}.legal-banner{position:fixed;z-index:90;left:1rem;bottom:1rem;max-width:520px;display:flex;gap:.9rem;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--sheet);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--pop-shadow)}.legal-banner p{font-size:.88rem}@media (max-width: 1023px){.legal-banner{left:.8rem;right:.8rem;max-width:none;bottom:calc(5.2rem + var(--safe-b))}}.data-gate-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:1rem;background:color-mix(in srgb,#000 55%,transparent)}.data-gate{max-width:26rem;width:100%;display:grid;gap:.7rem;padding:1.4rem;border-radius:1rem;background:var(--sheet, #fff);color:var(--ink);border:1px solid var(--line-2);box-shadow:0 20px 50px #00000040}.data-gate h3,.data-gate p{margin:0}.save-banner{position:fixed;left:50%;bottom:1rem;transform:translate(-50%);z-index:150;display:flex;align-items:center;gap:.8rem;max-width:calc(100vw - 2rem);padding:.6rem .9rem;border-radius:.8rem;background:var(--red);color:#fff;font-size:.88rem;box-shadow:0 8px 24px #00000040}.save-banner .btn{background:#fff;color:var(--red);border-color:transparent;flex:none}.admin-shell{max-width:62rem;margin:0 auto;padding:0 1rem 3rem}.admin-top{display:flex;align-items:center;gap:.7rem;padding:1rem 0}.admin-title{flex:1;display:flex;align-items:center;gap:.5rem;font-size:1.25rem;margin:0}.admin-list{display:grid;gap:.7rem}.admin-card{padding:.9rem 1rem;display:grid;gap:.6rem}.admin-card-head{display:flex;gap:.7rem;align-items:center}.admin-card-head .grow{flex:1;min-width:0}.admin-card-head .grow>div{overflow-wrap:anywhere}.admin-badges{display:flex;flex-wrap:wrap;gap:.35rem}.admin-meta{display:flex;flex-wrap:wrap;gap:.25rem .9rem;font-size:.82rem;color:var(--ink-2)}.admin-note{padding:.45rem .65rem;border-radius:.6rem;background:var(--sheet-2);color:var(--ink-2)}.wk-bars{display:flex;align-items:flex-end;gap:.5rem;height:6.5rem}.wk{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.2rem}.wk span{font-size:.78rem;font-weight:650;color:var(--ink-2)}.wk i{display:block;width:100%;max-width:2.2rem;min-height:3px;border-radius:4px 4px 0 0;background:var(--blue)}.wk em{font-style:normal;font-size:.66rem;color:var(--ink-3);white-space:nowrap}.audit-list{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}.audit-list li{display:grid;grid-template-columns:7.5rem 1fr;gap:.1rem .7rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.audit-list li:last-child{border-bottom:0}.audit-list li>:nth-child(3){grid-column:2}.adm-shell,.adm-login-wrap{--blue: #6f5cff;--btn: #6f5cff;--btn-hover: #5b46f2;--blue-soft: #ece7ff}[data-theme=dark] .adm-shell,[data-theme=dark] .adm-login-wrap{--blue: #b3a1ff;--btn: #8a72ff;--btn-hover: #9c86ff;--blue-soft: #241f45}.adm-sidebar{background:#14112b!important;border-right:1px solid #241f47!important}.adm-sidebar:after{display:none}.adm-sidebar .brand{color:#fff}.adm-sidebar .nav a{color:#a79fd6}.adm-sidebar .nav a:hover{background:#201a44;color:#fff}.adm-sidebar .nav a.active{background:#241f52;color:#fff}.adm-sidebar .nav a.active svg{background:var(--btn);color:#fff}.adm-sidebar .nav a.active:before{background:var(--btn)}.adm-sidebar .side-foot{border-top-color:#241f47}.adm-sidebar .side-foot b{color:#fff}.adm-sidebar .side-foot span{color:#8a81b8}.adm-sidebar .btn.icon.ghost{color:#cfc9ee}.adm-sidebar .btn.icon.ghost:hover{background:#201a44}.adm-login-wrap{min-height:100dvh;display:grid;place-items:center;background:#14112b;padding:1.2rem}.adm-login{width:100%;max-width:22rem;background:var(--sheet);border-radius:var(--r-lg);padding:1.7rem;display:grid;gap:1rem;box-shadow:var(--pop-shadow)}.adm-login h1{display:flex;align-items:center;gap:.5rem;font-size:1.25rem}.adm-login .muted{font-size:.86rem;margin-top:-.4rem}.attn-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.attn-item{background:var(--sheet-2);border-radius:var(--r);padding:.8rem .9rem;display:grid;gap:.15rem}.attn-item b{font-size:1.4rem;letter-spacing:-.02em}.attn-item span{font-size:.8rem;color:var(--ink-2)}.attn-item.warn b{color:var(--amber)}.attn-item.bad b{color:var(--red)}@media (max-width: 640px){.attn-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.top-list{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}.top-list li{display:flex;align-items:center;gap:.7rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.top-list li:last-child{border-bottom:0}.top-list .rank{width:1.3rem;text-align:center;font-weight:750;color:var(--ink-3);flex:none}.top-list .grow{flex:1;min-width:0}.top-list .grow b{display:block;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-list .grow span{font-size:.78rem;color:var(--ink-3)}.adm-sidebar .nav a .nav-count{margin-left:auto;font-style:normal;font-size:.72rem;font-weight:700;line-height:1;min-width:1.35rem;padding:.25rem .42rem;border-radius:99px;text-align:center;background:#f0b429;color:#2a1d00}a.attn-item{color:inherit;text-decoration:none;transition:background .15s,transform .15s}a.attn-item:hover{background:var(--blue-soft);transform:translateY(-1px)}.adm-private-bar{position:sticky;top:3.6rem;z-index:30;display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;border-radius:var(--r);background:var(--amber-soft);color:var(--amber);border:1px solid color-mix(in srgb,var(--amber) 35%,transparent);font-size:.84rem}.adm-private-bar span{flex:1;min-width:0}.adm-private-bar .btn{flex:none;color:inherit}@media (max-width: 640px){.adm-private-bar{top:3.4rem;align-items:flex-start}}
