@font-face{font-family:DM Sans;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/dm-sans-latin-ext-BH18Pfgv.woff2) format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/dm-sans-latin-BNY05QUC.woff2) format("woff2");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{--a50: #F0FDFA;--a100: #CCFBF1;--a200: #99F6E4;--a300: #5EEAD4;--a400: #2DD4BF;--a500: #14B8A6;--a600: #0D9488;--a700: #0F766E;--a400-rgb: 45, 212, 191;--a500-rgb: 20, 184, 166;--a600-rgb: 13, 148, 136;--navy: #0F172A;--navy-2: #1E293B;--teal: var(--a600);--teal-dark: var(--a700);--teal-light: var(--a100);--teal-50: var(--a50);--bg: #F6F8FA;--card: #FFFFFF;--page: #FFFFFF;--surface-2: #F8FAFC;--surface-3: #F1F5F9;--border-soft: rgba(226,232,240,.75);--border-strong: #CBD5E1;--text-2: #334155;--text-3: #475569;--line: #F1F5F9;--line-2: #E2E8F0;--text: #0F172A;--muted: #64748B;--faint: #94A3B8;--red: #DC2626;--red-50: #FEF2F2;--red-200: #FECACA;--amber: #B45309;--amber-50: #FFFBEB;--amber-200: #FDE68A;--green: #15803D;--green-50: #F0FDF4;--green-200: #BBF7D0;--indigo: #4338CA;--indigo-50: #EEF2FF;--indigo-200: #C7D2FE;--violet: #7E22CE;--violet-50: #FAF5FF;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 16px rgba(15, 23, 42, .04);--shadow-hover: 0 2px 4px rgba(15, 23, 42, .04), 0 18px 40px rgba(15, 23, 42, .09);--grad: linear-gradient(135deg, var(--a500), var(--a600));--grad-brand: linear-gradient(135deg, var(--a500), #6366F1);--ease: cubic-bezier(.2,.7,.2,1);--shadow-lg: 0 32px 80px rgba(15, 23, 42, .22);--radius: 18px;--sc-bg: 100%;--sc-fg: 100%;--sc-bd: 100%}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}input,select,button,textarea{font-family:inherit}h1,h2,h3,h4,p{margin:0}a{color:var(--teal)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}::selection{background:rgba(var(--a500-rgb),.22)}:focus-visible{outline:2px solid rgba(var(--a600-rgb),.55);outline-offset:2px}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(12px)}to{opacity:1;transform:none}}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.12)}to{transform:none;opacity:1}}@keyframes ringPulse{0%{box-shadow:0 0 #ef44448c}70%,to{box-shadow:0 0 0 7px #ef444400}}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(30px,-20px)}}.app{display:flex;height:100vh;height:100dvh;width:100%;overflow:hidden}.sidebar{width:260px;display:flex;flex-direction:column;flex-shrink:0;position:relative;z-index:40;transition:transform .25s var(--ease);isolation:isolate;overflow:hidden;background:radial-gradient(420px circle at 0% 0%,rgba(var(--a500-rgb),.16),transparent 55%),radial-gradient(360px circle at 100% 100%,rgba(99,102,241,.16),transparent 60%),#070d1c;border-right:1px solid rgba(255,255,255,.05)}.sidebar-brand{padding:20px 16px 14px}.sb-logo{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:800;color:#fff;letter-spacing:-.3px;padding:0 4px 16px}.sb-logo b{background:linear-gradient(100deg,var(--a400),var(--a300) 45%,#A78BFA);-webkit-background-clip:text;background-clip:text;color:transparent}.sb-mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;background:var(--grad-brand);box-shadow:0 6px 18px rgba(var(--a500-rgb),.35),inset 0 1px #ffffff4d}.brand-card{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(var(--a500-rgb),.22),#6366f12e);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px 16px;color:#fff}.brand-card:after{content:"";position:absolute;width:140px;height:140px;right:-60px;top:-70px;border-radius:50%;background:radial-gradient(circle,rgba(var(--a400-rgb),.35),transparent 70%)}.brand-card .k{font-size:10px;color:var(--a300);font-weight:800;letter-spacing:1.6px;text-transform:uppercase}.brand-card .t{font-size:15px;font-weight:800;margin-top:4px;line-height:1.25;position:relative}.brand-card .s{display:flex;align-items:center;gap:5px;font-size:11px;color:#ffffff8c;margin-top:6px}.nav{flex:1;padding:0 10px;overflow-y:auto}.nav-group{font-size:10px;color:#ffffff4d;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:14px 12px 6px}.nav-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:2px;border:none;border-radius:12px;cursor:pointer;text-align:left;background:transparent;color:#ffffff8c;font-size:13.5px;font-weight:500;position:relative;transition:color .15s,background .15s,transform .15s}.nav-item svg{transition:transform .2s var(--ease),color .15s}.nav-item:hover{color:#fff;background:#ffffff0d}.nav-item:hover svg{transform:translate(2px)}.nav-item.active{background:linear-gradient(90deg,rgba(var(--a500-rgb),.22),#6366f11a);color:#fff;font-weight:600;box-shadow:inset 0 0 0 1px rgba(var(--a400-rgb),.18)}.nav-item.active svg{color:var(--a400)}.nav-item.active:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:4px;height:22px;background:linear-gradient(180deg,var(--a400),#6366F1);border-radius:0 4px 4px 0;box-shadow:0 0 12px rgba(var(--a400-rgb),.7)}.nav-badge{margin-left:auto;background:#ef4444;color:#fff;border-radius:99px;font-size:10px;font-weight:700;padding:1px 7px;min-width:20px;text-align:center;animation:ringPulse 2s infinite}.sidebar-foot{padding:12px 14px 18px}.sidebar-foot{border-top:1px solid rgba(255,255,255,.06)}.user-chip{display:flex;align-items:center;gap:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:10px;margin-bottom:8px;cursor:pointer;width:100%;text-align:left;transition:background .15s,border-color .15s}.user-chip:hover{background:#ffffff14;border-color:rgba(var(--a400-rgb),.3)}.user-chip .n{color:#fff;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip .r{color:#fff6;font-size:11px}.logout-btn{display:flex;align-items:center;gap:8px;color:#ffffff73;background:#ffffff0d;border:none;border-radius:10px;padding:10px 14px;font-size:13px;width:100%;cursor:pointer}.logout-btn{transition:color .15s,background .15s}.logout-btn:hover{color:#f87171;background:#f871711a}.main{flex:1;overflow-y:auto;position:relative;min-width:0}.topbar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:20;height:62px;padding:0 32px;background:color-mix(in srgb,var(--bg) 80%,transparent);border-bottom:1px solid var(--border-soft);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px)}.topbar .t{flex:1;min-width:0;font-size:13px;color:var(--muted)}.topbar .t b{color:var(--text);font-weight:700}.topbar .t .sep{margin:0 8px;color:var(--faint)}.topbar .menu-btn{display:none}.page{padding:30px 32px 48px;max-width:1480px;margin:0 auto;animation:fadeUp .35s var(--ease)}.backdrop{display:none}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-head h1{position:relative;font-size:26px;font-weight:800;letter-spacing:-.6px;padding-left:16px}.page-head h1:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:5px;border-radius:99px;background:linear-gradient(180deg,var(--a400),#6366F1)}.page-head .sub{padding-left:16px}.page-head .sub{color:var(--muted);margin-top:4px;font-size:14px}.page-head .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.card{background:var(--card);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);border:1px solid var(--border-soft);transition:box-shadow .25s}.card.tight{padding:16px}.card-title{font-size:15px;font-weight:800;margin-bottom:16px;display:flex;align-items:center;gap:8px;justify-content:space-between;letter-spacing:-.2px}.card-title>span:first-child{display:inline-flex;align-items:center;gap:9px}.card-title>span:first-child:not(:empty):before{content:"";width:8px;height:8px;border-radius:3px;background:var(--a500);box-shadow:0 0 0 3px rgba(var(--a500-rgb),.15);flex-shrink:0}.card-title>span:first-child:has(svg,.badge):before{display:none}.card:hover{box-shadow:var(--shadow-hover)}.card.tight:hover,.modal .card:hover{box-shadow:var(--shadow)}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid-main-side{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.grid-side-main{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}.tiny{font-size:11px}.bold{font-weight:700}.mb-4{margin-bottom:4px}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.ml-6{margin-left:6px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.grow{flex:1;min-width:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nowrap{white-space:nowrap}.center{text-align:center}.stat{--c: var(--a600);position:relative;overflow:hidden;background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border:1px solid var(--border-soft)}.stat:before{content:"";position:absolute;width:160px;height:160px;right:-70px;top:-80px;border-radius:50%;background:var(--c);opacity:.07;transition:transform .4s var(--ease),opacity .3s}.stat:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--c);opacity:0;transition:opacity .25s}.stat .ic{position:relative;width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.stat .v{position:relative;font-size:32px;font-weight:800;line-height:1;margin-bottom:6px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.stat-go{position:absolute;top:18px;right:18px;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;color:var(--faint);background:var(--surface-2);transition:all .25s var(--ease)}.stat .l{font-size:13px;color:var(--muted);font-weight:500}.stat .s{font-size:11px;color:var(--faint);margin-top:4px}.stat.clickable{cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s}.stat.clickable:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}.stat.clickable:hover:before{transform:scale(1.3);opacity:.12}.stat.clickable:hover:after{opacity:1}.stat.clickable:hover .stat-go{background:var(--c);color:#fff;transform:translate(2px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;cursor:pointer;font-weight:600;border-radius:11px;transition:background .15s,color .15s,border-color .15s,box-shadow .2s,transform .15s;white-space:nowrap;line-height:1.2;text-decoration:none}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn.sm{padding:7px 12px;font-size:12px}.btn.md{padding:10px 17px;font-size:13px}.btn.lg{padding:13px 22px;font-size:15px}.btn.block{width:100%}.btn.primary{background:var(--navy);color:#fff}.btn.primary:hover:not(:disabled){background:var(--navy-2)}.btn.accent{background:var(--grad);color:#fff;box-shadow:0 4px 14px rgba(var(--a600-rgb),.28),inset 0 1px #fff3}.btn.accent:hover:not(:disabled){box-shadow:0 8px 22px rgba(var(--a600-rgb),.4),inset 0 1px #fff3;transform:translateY(-1px)}.btn.glass{background:#ffffff14;color:#e2e8f0;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn.glass:hover:not(:disabled){background:#ffffff26;color:#fff}.btn.ghost{background:var(--surface-3);color:var(--text-3)}.btn.ghost:hover:not(:disabled){background:var(--line-2)}.btn.danger{background:var(--red-50);color:var(--red)}.btn.danger:hover:not(:disabled){background:var(--red-200)}.btn.outline{background:var(--card);color:var(--text);border:1.5px solid var(--line-2)}.btn.outline:hover:not(:disabled){border-color:var(--teal);color:var(--teal-dark)}.btn.success{background:var(--green-50);color:var(--green)}.btn.success:hover:not(:disabled){background:var(--green-200)}.icon-btn{background:none;border:none;cursor:pointer;color:var(--faint);padding:5px;border-radius:8px;display:inline-flex;transition:color .15s,background .15s}.icon-btn:hover{color:var(--red);background:var(--red-50)}.icon-btn.edit:hover{color:var(--a600);background:var(--teal-50)}.spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.field label,.label{font-size:11.5px;font-weight:700;color:var(--muted);display:block;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.field .hint{font-size:11.5px;color:var(--faint);margin-top:5px;text-transform:none;letter-spacing:0;font-weight:400}.field .err{font-size:12px;color:var(--red);margin-top:5px}.input,.select,.textarea{width:100%;padding:11px 13px;border:1.5px solid var(--line-2);border-radius:12px;font-size:14px;color:var(--text);outline:none;background:var(--card);transition:border-color .15s,box-shadow .2s,background .15s}.input:hover:not(:focus),.select:hover:not(:focus),.textarea:hover:not(:focus){border-color:var(--border-strong)}.input.invalid,.input.invalid:hover:not(:focus){border-color:var(--red);background:color-mix(in srgb,var(--red) 4%,var(--card))}.input.invalid:focus{border-color:var(--red);box-shadow:0 0 0 4px color-mix(in srgb,var(--red) 16%,transparent)}.field:has(.input.invalid)>label{color:var(--red)}.input-wrap:has(.input.invalid) .input-ic{color:var(--red)}.input-wrap{position:relative}.input-ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--faint);display:flex;pointer-events:none;transition:color .15s}.input.has-ic{padding-left:40px}.input.has-eye{padding-right:42px}.input-wrap:focus-within .input-ic{color:var(--teal)}.input-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:none;border-radius:9px;background:none;color:var(--faint);cursor:pointer;display:grid;place-items:center;transition:color .15s,background .15s}.input-eye:hover{color:var(--teal-dark);background:var(--teal-50)}.textarea{resize:vertical;min-height:80px}.input:focus,.select:focus,.textarea:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(var(--a600-rgb),.12)}.input.sm,.select.sm{padding:7px 10px;font-size:13px;border-radius:8px}.form-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .full{grid-column:1 / -1}.search-box{position:relative;max-width:100%}.search-box>svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none;transition:color .15s}.search-box:focus-within>svg{color:var(--teal)}.search-box .input{padding-left:34px;padding-right:32px}.search-box .input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-box button{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:7px;border:none;background:var(--surface-3);color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s}.search-box button:hover{background:var(--red-50);color:var(--red)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:6px 12px;border-radius:20px;font-size:12.5px;cursor:pointer;font-weight:500;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--muted);transition:all .15s}.chip:hover:not(:disabled):not(.on){border-color:rgba(var(--a500-rgb),.45);color:var(--teal-dark)}.chip.on{border-color:var(--teal);background:var(--teal-light);color:var(--teal-dark)}.chip:disabled{opacity:.45;cursor:not-allowed}.segmented{display:inline-flex;background:var(--surface-3);border-radius:12px;padding:4px;gap:2px;flex-wrap:wrap}.segmented button{padding:7px 14px;border-radius:9px;border:none;cursor:pointer;font-weight:600;font-size:13px;background:transparent;color:var(--muted);transition:color .15s,background .2s,box-shadow .2s}.segmented button:hover:not(.on){color:var(--text)}.segmented button.on{background:var(--card);color:var(--teal-dark);box-shadow:0 2px 8px #0f172a1a}.checkbox{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input{width:16px;height:16px;accent-color:var(--teal)}.tag{display:inline-flex;align-items:center;gap:4px;border-radius:8px;padding:3px 9px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:3px 10px;font-size:11.5px;font-weight:700;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.b-green{background:var(--green-50);color:var(--green)}.b-amber{background:var(--amber-50);color:var(--amber)}.b-red{background:var(--red-50);color:var(--red)}.b-gray{background:var(--surface-3);color:var(--muted)}.b-indigo{background:var(--indigo-50);color:var(--indigo)}.b-teal{background:var(--teal-50);color:var(--teal-dark)}.b-violet{background:var(--violet-50);color:var(--violet)}.b-critical{background:#7f1d1d;color:#fff}.bars{display:flex;align-items:flex-end;gap:2px;height:140px;padding-top:8px}.bars .bar{flex:1;min-width:3px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,rgba(var(--a400-rgb),.95),rgba(var(--a600-rgb),.55));position:relative;overflow:hidden;transition:filter .15s}.bars .bar:hover{filter:brightness(1.15)}.bars .bar .hi{position:absolute;left:0;right:0;bottom:0;border-radius:4px 4px 0 0;background:#ef4444}.bars-axis{display:flex;justify-content:space-between;font-size:10.5px;color:var(--faint);margin-top:6px}.mono-cell{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;word-break:break-all}.link{background:none;border:none;padding:0;color:var(--teal-dark);font-weight:600;cursor:pointer;font:inherit;text-align:left}.link:hover{text-decoration:underline}.link.small{font-size:12.5px}.alert{border-radius:16px;padding:14px 16px;animation:fadeUp .3s var(--ease);display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.45}.alert .t{font-weight:700;margin-bottom:2px}.alert.info{background:var(--teal-50);border:1.5px solid var(--a200);color:var(--teal-dark)}.alert.warn{background:#fff7ed;border:1.5px solid #FED7AA;color:#9a3412}.alert.error{background:var(--red-50);border:1.5px solid var(--red-200);color:#991b1b}.alert.success{background:var(--green-50);border:1.5px solid var(--green-200);color:#166534}.empty{text-align:center;padding:44px 16px;color:var(--faint);font-size:14px;border:1.5px dashed var(--line-2);border-radius:var(--radius);background:var(--surface-2)}.empty .ic{display:inline-grid;place-items:center;width:76px;height:76px;border-radius:24px;color:var(--a500);background:rgba(var(--a500-rgb),.1);margin-bottom:14px}.card .empty,.modal .empty{border:none;background:none}.empty.loading{animation:loading-in .2s ease .3s both}@keyframes loading-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.empty.loading{animation:none}}.table-wrap{overflow-x:auto;border-radius:16px;border:1px solid var(--border-soft);background:var(--card)}table.table{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--card)}.table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);font-weight:700;padding:11px 14px;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr.clickable{cursor:pointer}.table tbody tr{transition:background .12s}.table tbody tr:hover td{background:#fafcfd}.table tr.clickable:hover td{background:var(--teal-50)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0208178c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeUp .2s ease;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--card);border-radius:24px;border:1px solid rgba(255,255,255,.6);width:100%;box-shadow:var(--shadow-lg);animation:modalIn .22s cubic-bezier(.34,1.56,.64,1);max-height:calc(100vh - 40px);display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--line);gap:12px}.modal-head .t{font-weight:700;font-size:17px}.modal-close{background:var(--surface-3);border:none;border-radius:10px;width:34px;height:34px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);flex-shrink:0;transition:background .15s,color .15s,transform .2s}.modal-close:hover{background:var(--red-50);color:var(--red);transform:rotate(90deg)}.modal-body{padding:22px 24px;overflow-y:auto}.modal-foot{padding:14px 24px 20px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--line);flex-wrap:wrap}.toasts{position:fixed;bottom:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:10px;max-width:calc(100vw - 32px)}.toast{position:relative;overflow:hidden;border-radius:14px;padding:13px 16px 13px 18px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:10px;box-shadow:0 12px 32px #0f172a24;animation:toastIn .35s var(--ease);min-width:260px;max-width:460px;background:#fffffff5;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text);border:1px solid var(--line-2)}.toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.toast svg{flex-shrink:0}.toast.success:before{background:#10b981}.toast.success svg{color:#10b981}.toast.error:before{background:#ef4444}.toast.error svg{color:#ef4444}.toast.info:before{background:#6366f1}.toast.info svg{color:#6366f1}.avatar{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;flex-shrink:0}.tt{background:var(--card);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--border-soft)}.tt-scroll{overflow-x:auto}.tt-grid{display:grid;min-width:760px}.tt-head{background:linear-gradient(180deg,#0f172a,#111c33);color:#fff;padding:12px 8px;text-align:center;border-left:1px solid rgba(255,255,255,.06)}.tt-head:first-child{border-left:none;text-align:left;padding-left:16px}.tt-head .d{font-size:12px;font-weight:700;letter-spacing:.4px}.tt-head .dd{font-size:10.5px;color:#ffffff73;margin-top:2px}.tt-head.today{background:var(--grad);box-shadow:inset 0 -3px 0 var(--a300)}.tt-period{padding:10px 14px;background:var(--surface-2);border-top:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.tt-period .n{font-size:13px;font-weight:700}.tt-period .tm{font-size:10.5px;color:var(--faint);margin-top:2px}.tt-cell{min-height:74px;padding:9px 10px;border-left:1px solid var(--line);border-top:1px solid var(--line);cursor:default;position:relative;transition:background .12s}.tt-cell.editable{cursor:pointer}.tt-cell.editable:hover{filter:brightness(.97)}.tt-cell.empty.editable:hover{background:var(--surface-2)}.tt-cell .s{font-size:12px;font-weight:700;line-height:1.3}.tt-cell .x{font-size:11px;color:var(--muted);margin-top:3px}.tt-cell .r{font-size:10.5px;color:var(--faint);margin-top:2px}.tt-cell .plus{height:100%;display:flex;align-items:center;justify-content:center}.tt-cell .plus span{width:24px;height:24px;border-radius:7px;border:1.5px dashed var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--border-strong)}.tt-cell.st-covered{background:repeating-linear-gradient(135deg,#fff7ed,#fff7ed 8px,#ffedd5 8px,#ffedd5 16px)!important}.tt-cell.st-substitute{box-shadow:inset 0 0 0 2px var(--indigo)}.tt-cell.st-offer{outline:2px dashed var(--violet);outline-offset:-4px}.lesson-row.offer{cursor:pointer;border:2px dashed var(--violet)}.tt-cell.st-cancelled{background:var(--surface-2)!important;opacity:.75}.tt-cell.st-cancelled .s{text-decoration:line-through}.tt-cell .flag{position:absolute;top:6px;right:6px;font-size:9.5px;font-weight:800;border-radius:6px;padding:1px 5px}.day-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px}.day-tab{flex-shrink:0;padding:8px 12px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--card);font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;text-align:center}.day-tab .dd{font-size:10.5px;font-weight:500;color:var(--faint)}.day-tab{transition:all .15s}.day-tab.on{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 6px 16px #0f172a33}.day-tab.on .dd{color:#fff9}.day-tab.today:not(.on){border-color:var(--teal);color:var(--teal-dark)}.lesson-row{display:flex;gap:12px;align-items:stretch;background:var(--card);border-radius:14px;border:1px solid var(--border-soft);padding:12px;margin-bottom:8px;box-shadow:0 1px 2px #0f172a08}.lesson-row .time{width:64px;flex-shrink:0;text-align:center;border-right:1px solid var(--line);padding-right:10px}.lesson-row .time .n{font-weight:800;font-size:15px}.lesson-row .time .tm{font-size:11px;color:var(--faint)}.lesson-row .bar{width:4px;border-radius:4px;flex-shrink:0}.auth-wrap{min-height:100%;background:radial-gradient(600px circle at 10% 0%,rgba(var(--a600-rgb),.35),transparent 60%),radial-gradient(600px circle at 100% 100%,rgba(109,40,217,.3),transparent 60%),#050a16;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth-card{background:var(--card);border-radius:24px;padding:36px;width:100%;max-width:440px;box-shadow:0 32px 80px #0006;animation:fadeUp .25s ease}.auth-card.wide{max-width:640px}.auth-logo{width:60px;height:60px;border-radius:18px;background:var(--grad-brand);box-shadow:0 12px 28px rgba(var(--a500-rgb),.3);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:#fff}.auth-title{text-align:center;margin-bottom:26px}.auth-title h1{font-size:26px;font-weight:800;margin-bottom:6px;letter-spacing:-.6px}.auth-title p{font-size:14px;color:var(--muted)}.auth-links{display:flex;flex-direction:column;gap:8px;margin-top:20px;text-align:center;font-size:13.5px;color:var(--muted)}.link-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--teal);font-weight:700;cursor:pointer;font-size:inherit;padding:0}.link-btn:hover{text-decoration:underline}.link-btn.tiny{font-size:12px}.steps{display:flex;gap:8px;margin-bottom:22px}.steps .st{flex:1;height:5px;border-radius:99px;background:var(--line-2)}.steps .st.on{background:var(--teal)}.key-box{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:26px;font-weight:800;letter-spacing:3px;color:var(--teal-dark);background:var(--teal-50);border:2px dashed var(--a300);border-radius:16px;padding:16px 20px;text-align:center}.kv{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);gap:8px 14px;font-size:13.5px}.kv.wide{grid-template-columns:minmax(0,250px) minmax(0,1fr)}.kv dt{color:var(--muted);min-width:0;overflow-wrap:anywhere}.kv dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}.progress{height:7px;background:var(--surface-3);border-radius:99px;overflow:hidden}.progress>div{height:100%;border-radius:99px;transition:width .5s ease}code,.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92em}pre.code{background:var(--navy);color:#e2e8f0;border-radius:14px;padding:16px;font-size:12px;overflow-x:auto}.pf-hero{position:relative;overflow:hidden;border-radius:26px;margin-bottom:20px;background:var(--card);border:1px solid var(--border-soft);box-shadow:var(--shadow);animation:fadeUp .4s var(--ease)}.pf-cover{position:relative;height:150px;overflow:hidden;background:linear-gradient(120deg,#0b1224,#111c38)}.pf-cover i{position:absolute;border-radius:50%;filter:blur(50px);animation:drift 14s ease-in-out infinite}.pf-cover i:first-child{width:340px;height:340px;left:-60px;top:-200px;background:rgba(var(--a500-rgb),.7)}.pf-cover i:last-child{width:300px;height:300px;right:5%;top:-120px;background:#7c3aed8c;animation-direction:reverse}.pf-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(180deg,#000,transparent);-webkit-mask-image:linear-gradient(180deg,#000,transparent)}.pf-hero-body{display:flex;align-items:flex-end;gap:20px;padding:0 28px 22px;margin-top:-48px;position:relative}.pf-avatar{position:relative;flex-shrink:0;padding:5px;border-radius:38px;background:var(--card);box-shadow:0 12px 30px #0f172a2e}.pf-avatar .avatar{font-size:34px!important}.pf-status{position:absolute;right:6px;bottom:6px;width:20px;height:20px;border-radius:50%;background:var(--faint);border:4px solid var(--card)}.pf-status.active{background:#10b981}.pf-status.pending{background:#f59e0b}.pf-status.blocked,.pf-status.rejected{background:#ef4444}.pf-id{padding:58px 0 4px;min-width:0}.pf-id h1{font-size:26px;font-weight:800;letter-spacing:-.6px;line-height:1.15}.pf-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.pf-meta>span,.pf-login{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--text-3);background:var(--surface-3);border-radius:99px;padding:5px 11px}.pf-meta .pf-role{background:rgba(var(--a500-rgb),.12);color:var(--teal-dark)}.pf-login{border:none;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.pf-login:hover{background:rgba(var(--a500-rgb),.12);color:var(--teal-dark)}.pf-card-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.pf-card-head h3{font-size:15.5px;font-weight:800;letter-spacing:-.2px}.pf-card-head p{font-size:12.5px;color:var(--muted);margin-top:2px}.pf-ico{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;flex-shrink:0;color:#fff;background:var(--grad);box-shadow:0 8px 18px rgba(var(--a600-rgb),.28)}.pf-ico.v{background:linear-gradient(135deg,#8b5cf6,#6366f1);box-shadow:0 8px 18px #6366f147}.pf-ico.red{background:linear-gradient(135deg,#f87171,#dc2626);box-shadow:0 8px 18px #dc262640}.pf-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pf-tile{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);transition:border-color .2s,transform .2s var(--ease)}.pf-tile:hover{border-color:rgba(var(--a500-rgb),.35);transform:translateY(-1px)}.pf-tile-ico{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;color:var(--a600);background:rgba(var(--a500-rgb),.12)}.pf-tile-l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--faint)}.pf-tile-v{font-size:14px;font-weight:700;margin-top:3px;word-break:break-word}.pf-ok{display:inline-flex;align-items:center;gap:5px;color:var(--green)}.danger-zone{border-color:var(--red-200);background:linear-gradient(180deg,var(--red-50),var(--card) 60%)}.pw-meter{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:12px;font-weight:700;color:var(--c)}.temp-pw{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 16px;border-radius:14px;border:1.5px dashed var(--a400);background:var(--teal-50)}.temp-pw-value{flex:1;min-width:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:20px;font-weight:700;letter-spacing:1.5px;color:var(--text);overflow-wrap:anywhere;background:none}.temp-pw-value.masked{letter-spacing:4px;color:var(--muted)}.temp-pw-btn{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line-2);background:var(--card);color:var(--text-2);cursor:pointer;transition:color .15s,border-color .15s}.temp-pw-btn:hover,.temp-pw-btn[aria-pressed=true]{color:var(--a600);border-color:var(--a400)}.pw-field-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.pw-field-value{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;font-weight:700;letter-spacing:.5px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:4px 10px}.pw-field-value.masked{letter-spacing:3px;color:var(--muted)}.pw-field-btn{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line-2);background:var(--card);color:var(--text-2);cursor:pointer;transition:color .15s,border-color .15s}.pw-field-btn:hover,.pw-field-btn[aria-pressed=true]{color:var(--a600);border-color:var(--a400)}.pw-field-btn:disabled{opacity:.6;cursor:wait}.pw-field-note{margin-top:8px;font-size:12px;font-weight:500;line-height:1.5;color:var(--muted)}.pw-field.compact .pw-field-row{flex-wrap:nowrap;gap:4px}.pw-field.compact .pw-field-value{font-size:12px;padding:2px 8px;white-space:nowrap}.pw-field.compact .pw-field-btn{width:26px;height:26px;border-radius:7px}.force-pw-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.pw-bars{flex:1;display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.pw-bars i{height:5px;border-radius:99px;background:var(--line-2);transition:background .25s}.pw-bars i.on{background:var(--c)}.theme-picker .tp-modes button{padding:12px 4px;font-size:13px}.theme-picker .tp-colors button{border-radius:14px}.dash-hero{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;gap:28px;padding:30px 32px;margin-bottom:22px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#0b1224,#111c38);box-shadow:0 20px 50px #0f172a2e}.dash-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.dash-hero-bg i{position:absolute;border-radius:50%;filter:blur(60px);animation:drift 14s ease-in-out infinite}.dash-hero-bg i:first-child{width:360px;height:360px;left:-100px;top:-180px;background:rgba(var(--a600-rgb),.55)}.dash-hero-bg i:last-child{width:320px;height:320px;right:10%;bottom:-220px;background:#6d28d973;animation-direction:reverse}.dash-hero-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(90deg,#000,transparent 80%);-webkit-mask-image:linear-gradient(90deg,#000,transparent 80%)}.dash-date{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--a300);background:rgba(var(--a400-rgb),.1);border:1px solid rgba(var(--a400-rgb),.25);padding:5px 10px;border-radius:99px;margin-bottom:14px}.dash-hero h1{font-size:clamp(24px,3vw,32px);font-weight:800;letter-spacing:-.8px;line-height:1.15}.dash-hero h1 span{background:linear-gradient(100deg,var(--a400),var(--a300) 45%,#A78BFA);-webkit-background-clip:text;background-clip:text;color:transparent}.dash-hero p{color:#94a3b8;font-size:14.5px;margin-top:6px}.dash-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.dash-ring{--p: 0;flex-shrink:0;width:138px;height:138px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--a400),var(--a300) calc(var(--p) * .5%),#A78BFA calc(var(--p) * 1%),rgba(255,255,255,.08) 0);box-shadow:0 0 40px rgba(var(--a400-rgb),.2)}.dash-ring>div{width:112px;height:112px;border-radius:50%;background:#0d1530;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10px}.dash-ring b{font-size:28px;font-weight:800;letter-spacing:-1px}.dash-ring small{font-size:10.5px;color:#94a3b8;line-height:1.25;margin-top:2px}.lang-switch{position:relative;flex-shrink:0}.lang-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 12px;border-radius:11px;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s;font-family:inherit}.lang-switch.light .lang-btn{background:var(--card);color:var(--text);border:1.5px solid var(--line-2);box-shadow:0 1px 2px #0f172a0a}.lang-switch.light .lang-btn:hover,.lang-switch.light.open .lang-btn{border-color:var(--teal);color:var(--teal-dark)}.lang-switch.dark .lang-btn{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.16)}.lang-switch.dark .lang-btn:hover,.lang-switch.dark.open .lang-btn{background:#ffffff26}.lang-btn svg{opacity:.85}.lang-chev{transition:transform .2s}.lang-switch.open .lang-chev{transform:rotate(180deg)}.lang-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:196px;margin:0;padding:6px;background:var(--card);border:1px solid var(--line-2);border-radius:14px;box-shadow:var(--shadow-lg);z-index:100;animation:fadeUp .15s ease}.lang-list{list-style:none;margin:0;padding:0}.lang-list button{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;border-radius:10px;background:none;cursor:pointer;font-size:14px;color:var(--text);text-align:left;font-family:inherit}.lang-list button:hover{background:var(--bg)}.lang-list button.on{background:var(--teal-50);color:var(--teal-dark);font-weight:700}.lang-flag{font-size:18px;line-height:1}.lang-short{font-size:11px;color:var(--faint);font-weight:700;letter-spacing:.5px}.lang-list button.on .lang-short{color:var(--teal)}.theme-btn{width:40px;padding:0!important;justify-content:center;position:relative}.theme-menu{min-width:288px;padding:12px;max-height:calc(100vh - 90px);overflow-y:auto}.theme-ico{display:inline-flex;animation:themeSpin .45s var(--ease)}.theme-dot{position:absolute;right:6px;bottom:6px;width:8px;height:8px;border-radius:50%;background:var(--a500);box-shadow:0 0 0 2px var(--card)}.lang-switch.dark .theme-dot{box-shadow:0 0 0 2px #0b1224}.tp-label{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--faint);margin:0 2px 8px}.tp-label:not(:first-child){margin-top:14px}.tp-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:12px;background:var(--surface-3)}.tp-modes button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 4px;border:none;border-radius:9px;background:none;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .2s,color .2s,box-shadow .2s}.tp-modes button:hover:not(.on){color:var(--text)}.tp-modes button.on{background:var(--card);color:var(--a600);box-shadow:0 2px 8px #0f172a1f}.tp-colors{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.tp-colors button{aspect-ratio:1;border-radius:12px;border:none;cursor:pointer;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--sw2),var(--sw));box-shadow:inset 0 0 0 1px #fff3;transition:transform .2s var(--ease),box-shadow .2s}.tp-colors button:hover{transform:scale(1.1)}.tp-colors button.on{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--sw)}@keyframes themeSpin{0%{transform:rotate(-90deg) scale(.6);opacity:0}to{transform:none;opacity:1}}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}.pager-pad{padding:0 14px 14px}.pager-pad .pager{margin-top:12px}.pager-info{font-size:12.5px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}.pager-btns{display:flex;align-items:center;gap:4px}.pager-btns button{min-width:34px;height:34px;padding:0 8px;border-radius:10px;border:1.5px solid var(--line-2);background:var(--card);color:var(--text-2);font-size:13px;font-weight:700;cursor:pointer;display:grid;place-items:center;font-family:inherit;font-variant-numeric:tabular-nums;transition:all .15s}.pager-btns button:hover:not(:disabled):not(.on){border-color:var(--a300);color:var(--teal-dark)}.pager-btns button.on{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(var(--a600-rgb),.3)}.pager-btns button:disabled{opacity:.4;cursor:not-allowed}.pager-gap{min-width:22px;text-align:center;color:var(--faint);font-weight:700}.notif{position:relative;flex-shrink:0}.notif-btn{position:relative;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;cursor:pointer;transition:all .15s}.notif.light .notif-btn{background:var(--card);color:var(--text);border:1.5px solid var(--line-2)}.notif.light .notif-btn:hover{border-color:var(--teal);color:var(--teal-dark)}.notif.dark .notif-btn{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.16)}.notif-count{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:#ef4444;color:#fff;font-size:10.5px;font-weight:800;display:grid;place-items:center;border:2px solid var(--card)}.notif-panel{position:absolute;right:0;top:calc(100% + 8px);width:380px;max-width:calc(100vw - 24px);background:var(--card);border:1px solid var(--line-2);border-radius:16px;box-shadow:var(--shadow-lg);z-index:100;overflow:hidden;animation:fadeUp .15s ease;color:var(--text)}.notif-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px}.notif-list{max-height:min(70vh,520px);overflow-y:auto}.notif-item{width:100%;display:flex;gap:10px;text-align:left;padding:12px 14px;border:none;border-bottom:1px solid var(--line);background:var(--card);cursor:pointer;font-family:inherit;color:inherit}.notif-item:hover{background:var(--bg)}.notif-actions{display:inline-flex;gap:12px;align-items:center}.notif-head .link.danger{color:var(--red)}.notif-del{align-self:flex-start;border:none;background:none;color:var(--faint);cursor:pointer;padding:4px;border-radius:7px;display:inline-flex;opacity:0;transition:opacity .15s,color .15s,background .15s;flex-shrink:0}.notif-item:hover .notif-del,.notif-del:focus-visible{opacity:1}.notif-del:hover{color:var(--red);background:var(--red-50)}@media(hover:none){.notif-del{opacity:.6}}.notif-item.unread{background:var(--teal-50)}.notif-item.unread .notif-title:after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-left:6px;vertical-align:middle}.notif-ico{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--indigo-50);color:var(--indigo);flex-shrink:0}.notif-item.kind-substitution_offer .notif-ico{background:var(--violet-50);color:var(--violet)}.notif-item.kind-substitution_withdrawn .notif-ico{background:var(--surface-3);color:var(--muted)}.notif-item.kind-substitution_response .notif-ico{background:var(--green-50);color:var(--green)}.notif-title{display:block;font-weight:700;font-size:13.5px}.notif-body{display:block;font-size:12.5px;color:var(--text-2);white-space:pre-line;margin-top:4px;line-height:1.5}.notif-time{display:block;font-size:11px;color:var(--faint);margin-top:6px}.notif-empty{padding:36px 20px;text-align:center;color:var(--muted);font-size:13.5px}.notif-more{width:100%;padding:10px;border:none;background:none;color:var(--teal-dark);font-weight:700;cursor:pointer;font-family:inherit}@media(max-width:640px){.notif-panel{position:fixed;left:12px;right:12px;top:64px;width:auto}}.app{background:radial-gradient(1100px circle at 100% -10%,rgba(var(--a500-rgb),.09),transparent 55%),radial-gradient(900px circle at 30% 120%,rgba(99,102,241,.07),transparent 55%),var(--bg)}.page-head{position:relative;overflow:hidden;isolation:isolate;align-items:center;padding:20px 22px;border-radius:22px;background:color-mix(in srgb,var(--card) 82%,transparent);border:1px solid var(--border-soft);box-shadow:var(--shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.page-head:before{content:"";position:absolute;z-index:-1;width:340px;height:340px;right:-90px;top:-220px;border-radius:50%;background:radial-gradient(circle,rgba(var(--a500-rgb),.2),transparent 70%);pointer-events:none}.page-head:after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--a500),#6366F1 45%,transparent);pointer-events:none}.card-title{padding-bottom:14px;border-bottom:1px solid var(--line)}.stat .ic{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 22%,transparent)}.btn.primary{background:linear-gradient(135deg,var(--navy),color-mix(in srgb,var(--a700) 40%,var(--navy)));box-shadow:0 4px 12px #0f172a2e}.btn.primary:hover:not(:disabled){background:linear-gradient(135deg,var(--navy-2),color-mix(in srgb,var(--a600) 45%,var(--navy)))}.table th{background:linear-gradient(180deg,var(--surface-2),color-mix(in srgb,var(--surface-3) 60%,var(--surface-2)))}.table tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--surface-2) 55%,var(--card))}.table tbody tr:hover td{background:rgba(var(--a500-rgb),.06)}.table tbody tr.total-row td{background:var(--surface-3);border-top:1.5px solid var(--line-2)}.tt-head{background:linear-gradient(180deg,#0f172a,color-mix(in srgb,var(--a700) 28%,#111C33))}.day-tab.on{background:var(--grad);border-color:transparent;box-shadow:0 6px 16px rgba(var(--a600-rgb),.3)}.hero-card{background:radial-gradient(420px circle at 0% 0%,rgba(var(--a500-rgb),.38),transparent 60%),radial-gradient(360px circle at 100% 100%,rgba(99,102,241,.3),transparent 60%),linear-gradient(135deg,#0b1224,#111c38)}.card-link{cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}.card.tight.card-link:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);border-color:rgba(var(--a500-rgb),.35)}.class-badge{width:50px;height:50px;border-radius:14px;background:var(--grad);color:#fff;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 8px 18px rgba(var(--a600-rgb),.28)}.offer-card{display:flex;align-items:center;gap:16px;padding:14px 16px;border-radius:16px;background:var(--card);border:1px solid var(--border-soft);box-shadow:var(--shadow);border-left:4px solid var(--amber);transition:box-shadow .2s,transform .2s var(--ease)}.offer-card:hover{box-shadow:var(--shadow-hover)}.offer-card.st-accepted{border-left-color:var(--green)}.offer-card.st-declined{border-left-color:var(--red)}.offer-card.past{opacity:.72}.offer-date{flex-shrink:0;width:60px;padding:8px 4px;border-radius:14px;text-align:center;display:flex;flex-direction:column;line-height:1.1;background:rgba(var(--a500-rgb),.1);color:var(--teal-dark)}.offer-date small{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;opacity:.8}.offer-date b{font-size:24px;font-weight:800;letter-spacing:-.5px}.offer-date span{font-size:11px;font-weight:700}.offer-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}.cover-row{margin-bottom:8px;align-items:center}.cover-who{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:45%}.tab-count{min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;display:inline-grid;place-items:center}.sub-status{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.sub-status .btn{margin-top:2px}.pf-cover{height:170px}.pf-cover i:nth-child(2){width:240px;height:240px;left:42%;top:-70px;background:rgba(var(--a400-rgb),.35);animation-duration:18s}.pf-hero-body{flex-wrap:wrap}.pf-hello{font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--a600);margin-bottom:4px}.pf-hero-actions{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:6px}.pf-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);background:var(--surface-2)}.pf-strip>div{padding:14px 22px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;min-width:0}.pf-strip>div+div{border-left:1px solid var(--line)}.pf-strip-l{font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--faint)}.pf-strip b{font-size:14px}.pf-tabs{display:flex;gap:6px;padding:6px;margin-bottom:18px;background:var(--card);border:1px solid var(--border-soft);border-radius:16px;box-shadow:var(--shadow);width:fit-content;max-width:100%;overflow-x:auto}.pf-tabs button{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:none;border-radius:11px;background:none;color:var(--muted);font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,box-shadow .2s}.pf-tabs button:hover:not(.on){color:var(--text);background:var(--surface-2)}.pf-tabs button.on{background:var(--grad);color:#fff;box-shadow:0 6px 16px rgba(var(--a600-rgb),.3)}.pf-panel{animation:fadeUp .3s var(--ease)}.pf-ico.b{background:linear-gradient(135deg,#38bdf8,#2563eb);box-shadow:0 8px 18px #2563eb40}.pf-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pf-mode{padding:10px;border-radius:18px;border:2px solid var(--line-2);background:var(--surface-2);cursor:pointer;font:inherit;color:var(--text);display:flex;flex-direction:column;gap:10px;text-align:left;transition:border-color .2s,transform .2s var(--ease),box-shadow .2s}.pf-mode:hover{transform:translateY(-2px);border-color:rgba(var(--a500-rgb),.45)}.pf-mode.on{border-color:var(--a500);box-shadow:0 0 0 4px rgba(var(--a500-rgb),.15)}.pf-prev{position:relative;display:block;height:96px;border-radius:12px;overflow:hidden;border:1px solid rgba(15,23,42,.08)}.pf-prev.light{background:#f6f8fa}.pf-prev.dark{background:#070c18}.pf-prev.auto{background:linear-gradient(105deg,#f6f8fa 50%,#070c18 50%)}.pf-prev i{position:absolute;border-radius:5px}.pf-prev .sb{left:0;top:0;bottom:0;width:22%;border-radius:0;background:#070d1c}.pf-prev .bar{left:28%;right:8%;top:12%;height:10%;background:var(--grad)}.pf-prev .c1{left:28%;top:32%;width:30%;height:26%}.pf-prev .c2{left:62%;top:32%;width:30%;height:26%}.pf-prev .c3{left:28%;top:66%;width:64%;height:22%}.pf-prev.light .c1,.pf-prev.light .c2,.pf-prev.light .c3,.pf-prev.auto .c1{background:#fff;box-shadow:0 1px 3px #0f172a1f}.pf-prev.dark .c1,.pf-prev.dark .c2,.pf-prev.dark .c3,.pf-prev.auto .c2{background:#0e1526;box-shadow:inset 0 0 0 1px #1a2440}.pf-prev.auto .c3{background:linear-gradient(105deg,#fff 34%,#0e1526 34%)}.pf-mode-l{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px;padding:0 4px 2px}.pf-mode-ok{margin-left:auto;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--a500);color:#fff;animation:pop .3s var(--ease)}.pf-accents{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.pf-accent{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 6px;border-radius:16px;border:2px solid transparent;background:var(--surface-2);cursor:pointer;font:inherit;color:var(--text-2);transition:transform .2s var(--ease),border-color .2s,background .2s}.pf-accent:hover{transform:translateY(-2px)}.pf-accent.on{border-color:var(--sw);background:color-mix(in srgb,var(--sw) 10%,var(--card))}.pf-accent-sw{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--sw2),var(--sw) 55%,var(--sw3));box-shadow:0 8px 18px color-mix(in srgb,var(--sw) 40%,transparent)}.pf-accent-l{font-size:12.5px;font-weight:700}.pf-langs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pf-lang{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:2px solid var(--line-2);background:var(--surface-2);cursor:pointer;font:inherit;color:var(--text);text-align:left;transition:border-color .2s,background .2s}.pf-lang:hover{border-color:rgba(var(--a500-rgb),.4)}.pf-lang.on{border-color:var(--a500);background:var(--teal-50);color:var(--teal-dark)}.pf-lang-flag{font-size:24px;line-height:1}.pf-lang b{display:block;font-size:14px}.pf-lang small{font-size:11px;color:var(--faint);font-weight:700;letter-spacing:.5px}.pf-mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pf-mini-stats>div{padding:10px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);text-align:center;display:flex;flex-direction:column;gap:2px}.pf-mini-stats b{font-size:20px;font-weight:800;letter-spacing:-.4px;color:var(--teal-dark)}.pf-mini-stats span{font-size:11px;color:var(--muted);font-weight:600}.pf-req{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.pf-tips ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.pf-tips li{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--text-2);line-height:1.45}.pf-tips li svg{color:var(--green);margin-top:2px}[data-theme=dark]{--bg: #070C18;--page: #070C18;--card: #0E1526;--surface-2: #121B30;--surface-3: #18233B;--line: #1A2440;--line-2: #243152;--border-soft: rgba(51,65,105,.55);--border-strong: #34436A;--text: #E7ECF6;--text-2: #C5CEDF;--text-3: #A6B1C7;--muted: #8F9BB5;--faint: #67748F;--teal: var(--a400);--teal-dark: var(--a300);--teal-light: rgba(var(--a400-rgb), .22);--teal-50: rgba(var(--a400-rgb), .1);--red: #F87171;--red-50: rgba(239,68,68,.12);--red-200: rgba(239,68,68,.35);--amber: #FBBF24;--amber-50: rgba(245,158,11,.12);--amber-200: rgba(245,158,11,.35);--green: #4ADE80;--green-50: rgba(34,197,94,.12);--green-200: rgba(34,197,94,.35);--indigo: #A5B4FC;--indigo-50: rgba(99,102,241,.15);--indigo-200: rgba(99,102,241,.4);--violet: #D8B4FE;--violet-50: rgba(168,85,247,.15);--shadow: 0 1px 2px rgba(0,0,0,.35), 0 6px 20px rgba(0,0,0,.25);--shadow-hover: 0 2px 4px rgba(0,0,0,.35), 0 20px 44px rgba(0,0,0,.45);--shadow-lg: 0 32px 80px rgba(0,0,0,.6);--sc-bg: 0%;--sc-fg: 0%;--sc-bd: 35%}[data-theme=dark] body{background:var(--bg)}[data-theme=dark] .btn.primary{background:var(--surface-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}[data-theme=dark] .page-head{background:color-mix(in srgb,var(--card) 78%,transparent)}[data-theme=dark] .table tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--surface-2) 45%,var(--card))}[data-theme=dark] .pf-prev{border-color:var(--line-2)}[data-theme=dark] .pf-hello{color:var(--a300)}[data-theme=dark] .btn.primary:hover:not(:disabled){background:var(--line-2)}[data-theme=dark] .btn.outline{background:transparent}[data-theme=dark] .alert.info{border-color:rgba(var(--a400-rgb),.3);color:var(--a300)}[data-theme=dark] .alert.warn{background:#f973161a;border-color:#f973164d;color:#fdba74}[data-theme=dark] .alert.error{border-color:#ef444452;color:#fca5a5}[data-theme=dark] .alert.success{border-color:#22c55e4d;color:#86efac}[data-theme=dark] .toast{background:#0e1526f5}[data-theme=dark] .modal{border-color:var(--line-2)}[data-theme=dark] .modal-backdrop{background:#0009}[data-theme=dark] .day-tab.on{background:var(--a600);border-color:var(--a600)}[data-theme=dark] .tt-head{background:linear-gradient(180deg,#0b1224,#0e1730)}[data-theme=dark] .tt-cell.st-covered{background:repeating-linear-gradient(135deg,#f973161a,#f973161a 8px,#f973162e 8px,#f973162e 16px)!important}[data-theme=dark] .tt-cell.st-cancelled{background:var(--surface-2)!important}[data-theme=dark] .tt-cell.editable:hover{filter:brightness(1.18)}[data-theme=dark] .tt-cell .x{color:var(--text-3)}[data-theme=dark] .b-critical{background:#b91c1c}[data-theme=dark] .progress,[data-theme=dark] .stat-go{background:var(--surface-3)}[data-theme=dark] .chip.on{color:var(--a300)}[data-theme=dark] .segmented button.on,[data-theme=dark] .tp-modes button.on{color:var(--a300);box-shadow:0 2px 8px #0006}[data-theme=dark] .link,[data-theme=dark] .link-btn{color:var(--a300)}[data-theme=dark] .topbar{border-bottom-color:var(--line)}[data-theme=dark] .lang-menu{box-shadow:0 20px 50px #00000080}[data-theme=dark] .lang-list button:hover{background:var(--surface-3)}[data-theme=dark] .notif-item:hover{background:var(--surface-2)}[data-theme=dark] .dash-hero{box-shadow:0 20px 50px #00000073;border:1px solid var(--line)}[data-theme=dark] .table tr.clickable:hover td{background:rgba(var(--a400-rgb),.07)}[data-theme=dark] .table tbody tr:hover td{background:rgba(var(--a400-rgb),.06)}[data-theme=dark] .table tbody tr.total-row td{background:var(--surface-3)}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--border-strong)}[data-theme=dark] .lp-feature,[data-theme=dark] .lp-step,[data-theme=dark] .lp-faq-item{border-color:var(--line-2)}[data-theme=dark] .lp-feature:hover,[data-theme=dark] .lp-steps[data-in] .lp-step:hover{box-shadow:0 30px 60px #00000073}[data-theme=dark] .lp-security-in{background:linear-gradient(135deg,rgba(var(--a400-rgb),.1),#6366f11a);border-color:var(--line-2)}[data-theme=dark] .lp-head h2 .grad{background:linear-gradient(100deg,var(--a400),var(--a300) 50%,#A78BFA);-webkit-background-clip:text;background-clip:text}[data-theme=dark] .lp-eyebrow{color:var(--a300);border-color:rgba(var(--a400-rgb),.3)}[data-theme=dark] .lp-cmp.new,[data-theme=dark] .lp-role-body,[data-theme=dark] .lp-feature.big{border:1px solid var(--line-2)}[data-theme=dark] .lp-final-card{box-shadow:0 40px 100px #00000080}[data-theme=dark] .bx-clash .tag{background:#0ea5e926;color:#7dd3fc}[data-theme=dark] .auth-shell .auth-card{border-color:var(--line-2)}[data-theme=dark] .temp-pw{background:rgba(var(--a500-rgb),.08)}[data-theme=dark] .pw-field-btn:hover,[data-theme=dark] .pw-field-btn[aria-pressed=true],[data-theme=dark] .temp-pw-btn:hover,[data-theme=dark] .temp-pw-btn[aria-pressed=true]{color:var(--a300)}[data-theme=dark] .auth-options button:hover,[data-theme=dark] .auth-options .auth-option-link:hover{box-shadow:0 10px 24px #00000059}[data-theme=dark] .key-input::placeholder{color:rgba(var(--a400-rgb),.35)}@media print{:root[data-theme=dark]{--sc-bg: 100%;--sc-fg: 100%;--sc-bd: 100%;--bg: #fff;--page: #fff;--card: #fff;--surface-2: #F8FAFC;--surface-3: #F1F5F9;--line: #F1F5F9;--line-2: #E2E8F0;--text: #0F172A;--text-2: #334155;--text-3: #475569;--muted: #64748B;--faint: #94A3B8}.no-print,.sidebar,.topbar,.toasts{display:none!important}.app{height:auto;overflow:visible;display:block;background:none}.page-head{padding:0;border:none;box-shadow:none;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}.page-head:before,.page-head:after{display:none}.table tbody tr:nth-child(2n) td{background:none}.main{overflow:visible}.page{padding:0}.tt{box-shadow:none}}@media(max-width:1100px){.grid-main-side,.grid-side-main{grid-template-columns:minmax(0,1fr)}.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app.nav-open .sidebar{transform:none;box-shadow:0 0 60px #0006}.app.nav-open .backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#02081780;z-index:35}.topbar{height:auto;background:var(--navy);color:#fff;padding:10px 16px;border-bottom:none}.topbar .t{font-weight:800;font-size:15px;color:#fff}.topbar .t .crumb{display:none}.topbar .t b{color:#fff;font-weight:800}.topbar .menu-btn{background:#ffffff14;border:none;color:#fff;border-radius:10px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.page{padding:20px 16px 40px}.page-head h1{font-size:21px}.topbar{background:#070d1c}.dash-hero{padding:22px 20px}.dash-date,.dash-hero h1{margin-right:86px}.dash-ring{position:absolute;top:20px;right:18px;width:76px;height:76px}.dash-ring>div{width:62px;height:62px;padding:0}.dash-ring b{font-size:16px;letter-spacing:-.4px}.dash-ring small{display:none}.lang-btn{height:38px;padding:0 10px}}@media(max-width:640px){.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:minmax(0,1fr)}.auth-card{padding:26px 20px}.kv,.kv.wide{grid-template-columns:minmax(0,1fr);gap:2px}.kv dd{margin-bottom:8px}.modal-backdrop{padding:0;align-items:flex-end}.modal{border-radius:22px 22px 0 0;max-height:92vh}.toasts{left:16px;right:16px;bottom:16px}.toast{min-width:0}.key-box{font-size:20px;letter-spacing:2px}.dash-actions .btn{flex:1}.pf-tiles{grid-template-columns:minmax(0,1fr)}.pf-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-strip>div{padding:12px 16px}.pf-strip>div:nth-child(3){border-left:none}.pf-strip>div:nth-child(n+3){border-top:1px solid var(--line)}.pf-hero-actions{width:100%}.pf-hero-actions .btn{flex:1}.pf-tabs{width:100%}.pf-tabs button{flex:1;justify-content:center;padding:10px 12px}.pf-modes{gap:8px}.pf-prev{height:64px}.pf-accents{grid-template-columns:repeat(3,minmax(0,1fr))}.pf-langs{grid-template-columns:minmax(0,1fr)}.page-head{padding:16px;border-radius:18px}.offer-card{flex-wrap:wrap;align-items:flex-start}.offer-actions{width:100%;justify-content:stretch}.offer-actions .btn{flex:1}.cover-row{flex-wrap:wrap}.cover-who{max-width:none;width:100%;align-items:flex-start;text-align:left;padding-left:76px}.page-head .actions{width:100%}.page-head .actions .search-box{flex:1 1 180px;width:auto!important}.theme-menu{position:fixed;left:12px;right:12px;top:64px;min-width:0}.pf-hero-body{flex-direction:column;align-items:flex-start;gap:12px;padding:0 18px 18px}.pf-id{padding-top:0}.pf-cover{height:120px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stats-grid .stat{padding:16px}.stats-grid .stat .ic{width:38px;height:38px;margin-bottom:10px}.stats-grid .stat .v{font-size:26px}.stats-grid .stat-go{display:none}}.grp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.grp-card{border:1px solid var(--line-2);border-radius:14px;padding:12px 14px;background:var(--surface-2)}.grp-teacher{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;margin-top:6px}.grp-students{margin:8px 0 4px;padding-left:20px;font-size:12.5px;color:var(--text-2)}.grp-students li{padding:1px 0}.group-cell{cursor:pointer;box-shadow:inset 3px 0 0 var(--violet)}.grp-badge{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--violet);background:var(--violet-50);padding:1px 5px;border-radius:5px;vertical-align:1px}.grp-row{gap:12px;padding:9px 12px;border:1px solid var(--line-2);border-radius:12px}.worktime{display:flex;flex-direction:column;gap:6px}.worktime-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.worktime-day{width:96px;font-size:13px;font-weight:600}.worktime-options{display:inline-flex;gap:4px;flex-wrap:wrap}.wt-opt{padding:5px 10px;border-radius:9px;border:1.5px solid var(--line-2);background:var(--card);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.wt-opt:hover:not(:disabled){border-color:rgba(var(--a500-rgb),.5);color:var(--text)}.wt-opt.on.full{background:var(--green-50);border-color:var(--green-200);color:var(--green)}.wt-opt.on.morning,.wt-opt.on.afternoon{background:var(--indigo-50);border-color:var(--indigo-200);color:var(--indigo)}.wt-opt.on.off{background:var(--red-50);border-color:var(--red-200);color:var(--red)}.wt-strip{display:inline-flex;gap:4px;flex-wrap:wrap}.wt-pill{font-size:11px;font-weight:700;padding:2px 7px;border-radius:7px;background:var(--green-50);color:var(--green)}.wt-pill.morning,.wt-pill.afternoon{background:var(--indigo-50);color:var(--indigo)}.wt-pill.off{background:var(--red-50);color:var(--red)}.lunch-line{text-align:center;font-size:12px;font-weight:700;color:var(--teal-dark);margin:6px 0 8px;padding:6px;border-top:1.5px dashed rgba(var(--a500-rgb),.5);border-bottom:1.5px dashed rgba(var(--a500-rgb),.5)}.lunch-line span{display:block;font-weight:500;color:var(--muted);font-size:11px}.type-tag{font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px;background:var(--surface-3);color:var(--muted)}.type-tag.private{background:var(--violet-50);color:var(--violet)}.type-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.type-card{display:flex;gap:12px;align-items:flex-start;text-align:left;padding:14px;border-radius:14px;border:1.5px solid var(--line-2);background:var(--card);color:var(--text);cursor:pointer;font-family:inherit;transition:all .15s}.type-card:hover{border-color:rgba(var(--a500-rgb),.5)}.type-card.on{border-color:var(--teal);background:var(--teal-50);box-shadow:0 0 0 3px rgba(var(--a500-rgb),.15)}.type-card .grow{display:flex;flex-direction:column;gap:4px}.type-card b{font-size:14px}.type-ico{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--surface-3);color:var(--muted);flex-shrink:0}.type-card.on .type-ico{background:var(--teal);color:#fff}.type-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-2);flex-shrink:0;margin-top:2px}.type-card.on .type-dot{border:5px solid var(--teal)}@media(max-width:600px){.type-choice{grid-template-columns:1fr}}.p-8{padding:8px}.p-16{padding:16px}.text-red{color:var(--red)}@keyframes livePulse{0%{box-shadow:0 0 #10b98180}70%,to{box-shadow:0 0 0 6px #10b98100}}.alert-settings{display:flex;align-items:center;gap:8px}.live-state{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--muted);padding:7px 11px;border-radius:99px;background:var(--surface-3);white-space:nowrap}.live-state i{width:8px;height:8px;border-radius:50%;background:var(--faint)}.live-state.live{color:var(--green);background:var(--green-50)}.live-state.live i{background:#10b981;animation:livePulse 2s infinite}.live-state.connecting i{background:#f59e0b}.icon-toggle{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;border:1.5px solid var(--line-2);background:var(--card);color:var(--muted);cursor:pointer;transition:all .15s}.icon-toggle:hover:not(:disabled){color:var(--teal-dark);border-color:var(--teal)}.icon-toggle.on{color:var(--teal-dark);border-color:rgba(var(--a500-rgb),.5);background:var(--teal-50)}.icon-toggle:disabled{opacity:.45;cursor:not-allowed}.chat-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;height:calc(100vh - 290px);min-height:360px}.chat-list .empty,.chat-pane .empty{border:none;background:none}.chat-list,.chat-pane{background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;min-height:0}.chat-list-head{display:flex;gap:8px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.chat-list-head .search-box{flex:1;min-width:0}.chat-list-body{overflow-y:auto;flex:1;min-height:0}.conv{width:100%;display:flex;gap:11px;align-items:center;padding:11px 14px;border:none;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;font-family:inherit;color:inherit}.conv:hover{background:var(--surface-2)}.conv.active{background:var(--teal-50);box-shadow:inset 3px 0 0 var(--teal)}.conv>.grow{display:flex;flex-direction:column;gap:2px}.conv-top{display:flex;align-items:baseline;gap:8px;justify-content:space-between}.conv-top b{font-size:14px}.conv-time{font-size:11px;color:var(--faint);flex-shrink:0}.conv-sub{font-size:11.5px;color:var(--muted)}.conv-last{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--text-3)}.conv-last .ellipsis{flex:1;min-width:0}.conv.unread .conv-last{color:var(--text);font-weight:600}.conv-badge{background:var(--teal);color:#fff;border-radius:99px;font-size:10.5px;font-weight:800;padding:1px 7px;min-width:20px;text-align:center;flex-shrink:0}.chat-placeholder{flex:1;display:grid;place-items:center;padding:24px}.chat{display:flex;flex-direction:column;height:100%;min-height:0;position:relative}.chat-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}.chat-back{border:none;background:none;color:var(--text);cursor:pointer;padding:4px;display:grid;place-items:center;border-radius:8px}.chat-back:hover{background:var(--surface-3)}.chat-body{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:4px;background:var(--surface-2);min-height:0}.chat-hint{margin:auto;text-align:center;color:var(--muted);font-size:13.5px;padding:24px;max-width:380px}.chat-older{align-self:center;border:1px solid var(--line-2);background:var(--card);color:var(--teal-dark);font-weight:700;font-size:12px;padding:6px 14px;border-radius:99px;cursor:pointer;margin-bottom:8px;font-family:inherit}.chat-day{align-self:center;margin:10px 0 6px}.chat-day span{font-size:11px;font-weight:700;color:var(--muted);background:var(--card);border:1px solid var(--line-2);padding:3px 10px;border-radius:99px}.msg{display:flex}.msg.mine{justify-content:flex-end}.msg-bubble{max-width:min(560px,78%);background:var(--card);color:var(--text);border:1px solid var(--line-2);border-radius:16px 16px 16px 5px;padding:8px 12px 6px;box-shadow:0 1px 2px #0f172a0a}.msg.mine .msg-bubble{background:var(--teal);border-color:var(--teal);color:#fff;border-radius:16px 16px 5px}.msg-text{font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.msg-meta{display:flex;justify-content:flex-end;align-items:center;gap:4px;font-size:10.5px;margin-top:3px;color:var(--faint)}.msg.mine .msg-meta{color:#ffffffb8}.msg-ticks{display:inline-flex}.msg{align-items:center;gap:4px}.msg-del{border:none;background:none;color:var(--faint);cursor:pointer;padding:6px;border-radius:8px;display:inline-flex;opacity:0;transition:opacity .15s,color .15s,background .15s;flex-shrink:0}.msg:hover .msg-del,.msg-del:focus-visible{opacity:1}.msg-del:hover{color:var(--red);background:var(--red-50)}@media(hover:none){.msg-del{opacity:.55}}.msg-ticks.read{color:#fff}[data-theme=dark] .msg.mine .msg-bubble{background:rgba(var(--a500-rgb),.2);border-color:rgba(var(--a500-rgb),.45);color:var(--text)}[data-theme=dark] .msg.mine .msg-meta{color:var(--muted)}[data-theme=dark] .msg-ticks.read{color:var(--a400)}.chat-new-below{position:absolute;left:50%;transform:translate(-50%);bottom:80px;display:inline-flex;gap:6px;align-items:center;border:none;background:var(--teal);color:#fff;font-weight:700;font-size:12px;padding:7px 14px;border-radius:99px;cursor:pointer;box-shadow:0 8px 20px #0f172a2e;font-family:inherit}.chat-compose{display:flex;gap:10px;align-items:flex-end;padding:12px 14px;border-top:1px solid var(--line);background:var(--card);position:relative}.chat-compose .textarea{flex:1;resize:none;min-height:42px;max-height:160px;line-height:1.45;padding:10px 12px}.chat-left{position:absolute;right:140px;bottom:20px;font-size:11px;color:var(--faint);pointer-events:none}.chat-left.low{color:var(--red);font-weight:700}.chat-closed{padding:14px;text-align:center;font-size:13px;color:var(--muted);border-top:1px solid var(--line);background:var(--surface-3)}.contact-list{margin-top:12px;max-height:50vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.school-options{margin-top:8px;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.contact{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:1px solid transparent;border-radius:12px;background:none;text-align:left;cursor:pointer;color:inherit;font-family:inherit}.contact:hover{background:var(--surface-2);border-color:var(--line-2)}.contact>svg:last-child{color:var(--faint)}.contact .grow{display:flex;flex-direction:column;gap:2px}.picked{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid rgba(var(--a500-rgb),.45);background:var(--teal-50);border-radius:12px;font-size:13px}.ann-list{display:flex;flex-direction:column;gap:12px;max-width:860px}.ann{padding:18px 20px}.ann.fresh{border-color:rgba(var(--a500-rgb),.5)}.ann.focus{box-shadow:0 0 0 3px rgba(var(--a500-rgb),.35)}.ann-head{display:flex;gap:12px;align-items:flex-start}.ann-head h3{font-size:16px;font-weight:800;margin:0 0 3px}.ann-ico{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--amber-50);color:var(--amber);flex-shrink:0}.ann-new{font-size:10.5px;font-weight:800;color:#fff;background:var(--teal);padding:2px 8px;border-radius:99px;flex-shrink:0}.ann-body{margin-top:12px;font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-2)}.ann-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.ann-grid .field{margin-bottom:14px}.ann-send{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;flex-wrap:wrap}.sent-list{display:flex;flex-direction:column;gap:10px;max-height:640px;overflow-y:auto}.sent{border:1px solid var(--line-2);border-radius:14px;padding:12px 14px}.sent-body{font-size:13px;color:var(--text-2);margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:7.5em;overflow:hidden}.sent-progress{display:flex;align-items:center;gap:10px;margin-top:10px}.sent-progress .progress{flex:1}.toast.clickable{cursor:pointer;text-align:left;font-family:inherit}.toast.clickable:hover{border-color:var(--teal)}.toast-title{display:block;font-size:13px}.toast-text{display:block;font-weight:500;color:var(--text-2);margin-top:2px;overflow-wrap:anywhere}@media(max-width:900px){.chat-layout{grid-template-columns:1fr;height:calc(100dvh - 300px)}.messages-page.chat-open .page-head,.messages-page.chat-open .msg-tabs{display:none}.ann-grid{grid-template-columns:1fr}.msg-bubble{max-width:88%}.alert-settings .live-state{display:none}}@media(max-width:600px){.hide-sm{display:none}.chat-left{right:70px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.today-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.today-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:99px;font-size:12px;font-weight:700;color:#e2e8f0;background:#ffffff14;border:1px solid rgba(255,255,255,.14)}.today-chip.hot{color:#fde68a;background:#f59e0b29;border-color:#f59e0b61}.today-chip.wm-morning,.today-chip.wm-afternoon{color:var(--a300);border-color:rgba(var(--a400-rgb),.38)}.today-chip.wm-off{color:#fca5a5;border-color:#ef444461}.today-now{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.now-tile{padding:16px 18px;border-radius:18px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}.now-tile.now{border-color:rgba(var(--a500-rgb),.45);background:linear-gradient(135deg,rgba(var(--a500-rgb),.12),transparent 65%),var(--card)}.now-tile .k{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}.now-tile.now .k{color:var(--a600)}.now-tile .m{font-size:18px;font-weight:800;letter-spacing:-.3px;margin:6px 0 2px}.now-bar{height:6px;margin-top:12px;border-radius:99px;background:var(--line);overflow:hidden}.now-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--a500),var(--a400));transition:width .6s var(--ease)}.now-in{font-weight:700;color:var(--a600)}.tl{display:flex;flex-direction:column;gap:8px}.tl-row{display:grid;grid-template-columns:70px minmax(0,1fr);gap:12px}.tl-time{padding-top:10px;text-align:right;font-variant-numeric:tabular-nums}.tl-time b{display:block;font-size:14px;font-weight:800}.tl-time small{font-size:11.5px;color:var(--muted)}.tl-body{display:flex;flex-direction:column;gap:6px;min-width:0}.tl-lesson{padding:10px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--sc, var(--a500))}.tl-lesson.st-substitute{box-shadow:inset 0 0 0 1px var(--indigo)}.tl-lesson.st-offer{border:2px dashed var(--violet);border-left-width:4px}.tl-lesson.st-covered,.tl-lesson.st-cancelled{background:repeating-linear-gradient(135deg,var(--amber-50),var(--amber-50) 6px,transparent 6px,transparent 12px),var(--card)}.tl-lesson.st-cancelled b{text-decoration:line-through}.tl-free{padding:9px 14px;border-radius:14px;border:1px dashed var(--line-2);color:var(--muted);font-size:13px}.tl-lunch{padding:9px 14px;border-radius:14px;font-size:13px;font-weight:700;color:var(--amber);background:color-mix(in srgb,var(--amber) 10%,transparent);border:1px solid color-mix(in srgb,var(--amber) 30%,transparent)}.tl-row.lunch .tl-time b{color:var(--amber)}.tl-row.past{opacity:.5}.tl-row.now .tl-lesson{box-shadow:0 0 0 2px var(--a500)}.tl-row.now .tl-time b{color:var(--a600)}.att-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:border-color .2s}.att-row:hover{border-color:var(--a400)}.att-ic{width:30px;height:30px;flex-shrink:0;display:grid;place-items:center;border-radius:10px;background:var(--card);color:var(--muted)}.att-ic.hot{background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber)}.ann-row{padding-left:10px;border-left:3px solid var(--line-2)}.ann-row.unread{border-left-color:var(--a500)}.ann-body{margin-top:4px;color:var(--text-2);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.week-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(28px,1fr));gap:6px;align-items:end}.week-bar{display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px 0;border:0;border-radius:10px;background:none;color:var(--text);font:inherit;cursor:pointer}.week-bar:hover{background:var(--surface-2)}.week-bar i{width:100%;max-width:26px;border-radius:7px 7px 3px 3px;background:color-mix(in srgb,var(--a500) 30%,transparent)}.week-bar.on i{background:linear-gradient(180deg,var(--a400),var(--a600))}.week-bar b{font-size:12.5px}.week-bar small{font-size:11px;font-weight:700;color:var(--muted)}.week-bar.on small{color:var(--a600)}.bells{display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums}.bell{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;border-radius:10px;font-size:13px}.bell span{color:var(--muted)}.bell.live{background:color-mix(in srgb,var(--a500) 12%,transparent)}.bell.live span,.bell.live b{color:var(--a600)}.bell.lunch{background:color-mix(in srgb,var(--amber) 10%,transparent)}.bell.lunch span,.bell.lunch b{color:var(--amber)}@media(max-width:640px){.tl-row{grid-template-columns:52px minmax(0,1fr);gap:8px}.now-tile .m{font-size:16px}}.tch-row{display:flex;align-items:center;gap:14px}.tch-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.tch-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}.tch-name{font-size:15px;overflow-wrap:anywhere}.tch-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.tch-warn{font-size:12px;font-weight:600;color:var(--amber)}.tch-metric{--c: var(--teal-dark);min-width:64px;padding:8px 10px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);text-align:center;display:flex;flex-direction:column;gap:1px}.tch-metric b{font-size:20px;font-weight:800;letter-spacing:-.4px;color:var(--c);font-variant-numeric:tabular-nums;line-height:1.15}.tch-metric span{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap}.tch-metric.over{--c: var(--red);background:var(--red-50);border-color:var(--red-200)}.tch-metric.soft{--c: var(--text-3)}.tch-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;margin-bottom:18px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line)}.tch-summary-name{font-size:16px;font-weight:800;overflow-wrap:anywhere}.tch-summary .tch-metric{background:var(--card)}.tch-summary .tch-metric.over{background:var(--red-50)}.tch-metrics{display:flex;gap:6px;flex-wrap:wrap}.tch-section+.tch-section{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.tch-section h4{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:800;margin-bottom:12px}.tch-section h4 span{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;font-size:11px;color:#fff;background:var(--grad)}.tch-subject{padding:14px;border-radius:14px;border:1px solid var(--line-2);background:var(--card)}.tch-subject-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.tch-subject-sum{font-size:12.5px;font-weight:700;color:var(--text-3)}.tch-link{background:none;border:none;padding:2px 4px;cursor:pointer;font-size:12.5px;font-weight:700;color:var(--teal);border-radius:6px}.tch-link:hover{background:color-mix(in srgb,var(--a500) 12%,transparent)}.tch-link.danger{color:var(--red)}.tch-link.danger:hover{background:var(--red-50)}.tch-note{font-size:12.5px;color:var(--muted);padding:9px 12px;border-radius:10px;background:var(--surface-2);border:1px dashed var(--line-2);margin-bottom:10px}.tch-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.tch-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 10px 9px 32px;border-radius:12px;cursor:pointer;text-align:left;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--text);transition:border-color .15s,background .15s,transform .15s}.tch-tile:hover{border-color:color-mix(in srgb,var(--a500) 55%,transparent);transform:translateY(-1px)}.tch-tile.on{border-color:var(--teal);background:color-mix(in srgb,var(--a500) 13%,var(--card))}.tch-tile.off-plan:not(.on){opacity:.6;border-style:dashed}.tch-tile-check{position:absolute;left:10px;top:11px;width:16px;height:16px;border-radius:5px;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:#fff;background:var(--card)}.tch-tile.on .tch-tile-check{background:var(--teal);border-color:var(--teal)}.tch-tile-name{font-size:14px;font-weight:800}.tch-tile-hours{font-size:11.5px;font-weight:600;color:var(--muted)}.tch-tile.on .tch-tile-hours{color:var(--teal-dark)}.tch-tile-meta{font-size:10.5px;color:var(--faint);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tch-tile-meta.warn{color:var(--amber);font-weight:600}.tch-foot-sum{font-size:13px;color:var(--muted);align-self:center}.tch-foot-sum b{color:var(--text)}.tch-foot-sum b.over{color:var(--red)}@media(max-width:640px){.tch-row{flex-wrap:wrap;align-items:flex-start}.tch-main{flex-basis:calc(100% - 56px)}.tch-actions{width:100%;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--line)}.tch-summary .tch-metrics{width:100%}.tch-summary .tch-metric{flex:1}.tch-tiles{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}}@media(max-width:640px){.worktime-row{gap:6px}.worktime-options{display:grid;grid-template-columns:1fr 1fr;width:100%}}.uzmeet{display:inline-flex;align-items:baseline;letter-spacing:-.02em;line-height:1;white-space:nowrap}.uzmeet b{font-weight:800;background:linear-gradient(135deg,var(--a400) 0%,#22D3EE 55%,#818CF8 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.uzmeet span{font-weight:600;color:inherit}.uzmeet-lg{font-size:1em}.uzmeet-lg b{padding-right:.02em}.nav-item .uzmeet{font-size:14.5px}.nav-item.active .uzmeet span,.nav-item:hover .uzmeet span{color:#fff}
