@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");@font-face{font-family:Craftwork Grotesk;src:local("Craftwork Grotesk"),local("CraftworkGrotesk");font-style:normal;font-weight:400 700;font-display:swap}:root{--p:#6255f8;--pl:#efeeff;--pm:#b2adff;--pd:#3f33c7;--t:#00b894;--tl:#ddf9f2;--td:#00785f;--a:#ff9f1c;--al:#fff1d9;--r:#ff5d5d;--rl:#ffe8e8;--rd:#c92b2b;--gl:#e6f9de;--gd:#216b00;--bg:#ffffff;--bg2:#f6f7fb;--bg3:#eceef6;--app-bg:#e9ecf5;--bd:rgba(34,28,72,.09);--bd2:rgba(34,28,72,.18);--tx:#14132a;--tx2:#52507a;--tx3:#8b89a8;--nav-fg:#0e4486;--nav-fg-muted:#3d6a9e;--nav-fg-active:#0a3568;--shadow-sm:0 1px 3px rgba(34,28,72,0.06);--shadow-md:0 8px 24px rgba(34,28,72,0.08);--shadow-lg:0 16px 48px rgba(34,28,72,0.12);--r4:8px;--r8:12px;--r12:16px;--r14:20px;--r16:24px;--f:"Craftwork Grotesk","Inter","DM Sans",sans-serif;--sidebar-w:264px;--sidebar-w-collapsed:72px;--layout-gap:12px;--topbar-h:56px;--bottom-nav-h:76px;--ease-out:cubic-bezier(0.22,1,0.36,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:var(--f);background:var(--app-bg);color:var(--tx);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}body.app-shell-active{overflow:hidden;overscroll-behavior:none;height:100dvh;max-height:100dvh}a{color:inherit;text-decoration:none}button{font-family:var(--f);cursor:pointer;border:none}::selection{background:color-mix(in srgb,var(--p) 22%,transparent);color:var(--tx)}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-column-gap:var(--layout-gap);column-gap:var(--layout-gap);height:100vh;height:100dvh;overflow:hidden;background:var(--app-bg);transition:grid-template-columns .28s var(--ease-out)}.app-shell.sidebar-collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.app-main{display:flex;flex-direction:column;min-width:0;min-height:0;padding:10px 10px 10px 0;background:var(--app-bg)}.app-main,body.more-open,body.nav-open{overflow:hidden}.sidebar{--accent:var(--p);--accent-bg:var(--pl);background:transparent;border-right:none;box-shadow:none;padding:10px 0 10px 10px;z-index:300}.sidebar,.sidebar-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.sidebar-panel{flex:1 1;position:relative;background:var(--bg);border:1px solid var(--bd);border-radius:var(--r12);box-shadow:var(--shadow-sm)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 14px 12px;flex-shrink:0;border-bottom:1px solid var(--bd)}.sidebar-header-brand{gap:8px;flex:1 1}.sidebar-header-brand,.sidebar-logo{display:flex;align-items:center;min-width:0}.sidebar-logo{text-decoration:none;border-radius:var(--r8);transition:opacity .15s}.sidebar-logo:hover{opacity:.85}.brand-logo{width:132px;height:auto;max-width:100%}.brand-logo--compact{display:none;width:34px;height:auto;flex-shrink:0}.sidebar-close{display:none;width:40px;height:40px;border:none;border-radius:12px;background:transparent;color:var(--tx2);align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.sidebar-close:hover{background:color-mix(in srgb,var(--tx) 8%,transparent);color:var(--tx)}.sidebar-close svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}.sidebar-nav{flex:1 1;overflow-y:auto;padding:4px 0 8px;display:flex;flex-direction:column;min-height:0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--tx3) 35%,transparent) transparent;-webkit-overflow-scrolling:touch}.sidebar-nav::-webkit-scrollbar{width:5px}.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--tx3) 30%,transparent);border-radius:999px}.sidebar-group{flex-shrink:0}.sidebar-group+.sidebar-group{margin-top:4px;padding-top:4px;border-top:1px solid var(--bd)}.sidebar-section{display:flex;align-items:center;gap:6px;padding:10px 14px 4px;font-size:10px;font-weight:700;color:var(--nav-fg-muted);text-transform:uppercase;letter-spacing:.08em}.sidebar-group:first-child .sidebar-section{padding-top:8px}.nav-section-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--nav-fg-muted);opacity:1}.nav-section-icon svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.25}.nav-section-icon svg circle[fill=currentColor]{fill:currentColor;stroke:none}.nav-item{position:relative;display:flex;align-items:center;gap:10px;margin:1px 8px;padding:9px 10px;font-size:14px;font-weight:600;color:var(--nav-fg);border-radius:var(--r8);transition:background .16s var(--ease-out),color .16s}.nav-item svg{width:18px;height:18px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2.2;color:var(--nav-fg)}.nav-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;box-shadow:none;flex-shrink:0;position:relative;border-radius:8px;transition:background .16s var(--ease-out)}.nav-label{line-height:1.25;flex:1 1;min-width:0}.nav-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent,var(--r));color:#fff;font-size:10px;font-weight:700;line-height:18px;text-align:center;flex-shrink:0}.nav-badge--attention{background:var(--o,#e67e22)}.nav-icon-dot{position:absolute;top:-2px;right:-4px;width:7px;height:7px;border-radius:50%;background:var(--r);border:2px solid var(--bg)}.nav-icon-dot--attention{background:var(--o,#e67e22)}.nav-item:hover{background:color-mix(in srgb,var(--nav-fg) 9%,var(--bg));color:var(--nav-fg-active)}.nav-item:hover svg{color:var(--nav-fg-active);stroke:var(--nav-fg-active)}.nav-item:focus-visible{outline:2px solid color-mix(in srgb,var(--nav-fg) 45%,transparent);outline-offset:1px}.nav-item.active{background:color-mix(in srgb,var(--nav-fg) 14%,var(--bg));color:var(--nav-fg-active);font-weight:700;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--nav-fg) 24%,transparent)}.nav-item.active svg{color:var(--nav-fg-active);stroke:var(--nav-fg-active);stroke-width:2.35}.nav-item.active .nav-icon{background:color-mix(in srgb,var(--nav-fg) 16%,var(--bg));border-radius:8px}.sidebar-bottom{margin:0;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--bg2);border-top:1px solid var(--bd);flex-shrink:0}.sidebar-user-row{display:flex;align-items:center;gap:10px;min-width:0}.sidebar-avatar{width:36px;height:36px;font-size:13px;box-shadow:none}.sidebar-user-name{font-size:13px;font-weight:600;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-size:11px;color:var(--tx3);margin-top:1px}.sidebar-logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--bg);border:1px solid var(--bd);color:var(--tx2);font-size:13px;font-weight:600;padding:9px 12px;border-radius:var(--r8);transition:background .15s,color .15s,border-color .15s}.sidebar-user{flex:1 1;min-width:0}.sidebar-logout-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}.sidebar-logout-btn:hover{background:var(--rl);color:var(--rd);border-color:color-mix(in srgb,var(--r) 25%,var(--bd))}.sidebar-logout-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--r) 40%,transparent);outline-offset:1px}.pwa-install-wrap{width:100%}.pwa-install-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:color-mix(in srgb,var(--nav-fg,#0E4486) 10%,var(--bg));border:1px solid color-mix(in srgb,var(--nav-fg,#0e4486) 22%,var(--bd));color:var(--nav-fg,#0E4486);font-size:13px;font-weight:600;padding:9px 12px;border-radius:var(--r8);transition:background .15s,color .15s,border-color .15s}.pwa-install-btn .pwa-install-icon{width:16px;height:16px;flex-shrink:0}.pwa-install-btn:hover{background:color-mix(in srgb,var(--nav-fg,#0E4486) 16%,var(--bg))}.pwa-install-btn--primary{background:var(--nav-fg,#0E4486);border-color:var(--nav-fg,#0E4486);color:#fff}.pwa-install-btn--primary:hover{background:color-mix(in srgb,var(--nav-fg,#0E4486) 88%,#000);color:#fff}.pwa-install-btn--sheet.pwa-install-btn--primary{background:var(--nav-fg,#0E4486);border-color:var(--nav-fg,#0E4486);color:#fff}.pwa-install-share-note{margin:8px 0 0;font-size:12px;line-height:1.45;color:var(--tx2)}.pwa-install-wrap--sheet .pwa-install-share-note{margin:0 12px 8px}.pwa-install-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--nav-fg,#0E4486) 35%,transparent);outline-offset:1px}.pwa-install-btn--sheet{margin:0 12px 8px;width:calc(100% - 24px);padding:12px;font-size:14px;background:color-mix(in srgb,var(--nav-fg,#0E4486) 8%,var(--bg3));border-color:color-mix(in srgb,var(--nav-fg,#0E4486) 18%,var(--bd))}.pwa-install-btn--sheet .pwa-install-icon{width:18px;height:18px}.pwa-install-hint,.pwa-install-ios-hint{margin-top:8px;padding:10px 12px;border-radius:var(--r8);background:var(--bg2);border:1px solid var(--bd)}.pwa-install-wrap--sheet .pwa-install-hint,.pwa-install-wrap--sheet .pwa-install-ios-hint{margin:0 12px 8px}.pwa-install-hint-title,.pwa-install-ios-title{font-size:12px;font-weight:600;color:var(--tx);margin:0 0 6px}.pwa-install-hint-steps,.pwa-install-ios-steps{padding-left:18px}.pwa-install-hint-note,.pwa-install-hint-steps,.pwa-install-ios-steps{margin:0;font-size:12px;color:var(--tx2);line-height:1.45}.pwa-install-card{padding:14px 16px;margin-bottom:20px}.pwa-install-card-text{margin:0 0 10px;font-size:13px;color:var(--tx2);line-height:1.45}.pwa-install-card-text:last-child{margin-bottom:0}.pwa-install-btn--inline{width:auto;max-width:100%}.sidebar--collapsed .pwa-install-btn{justify-content:center;padding:8px}.sidebar--collapsed .pwa-install-btn span,.sidebar--collapsed .pwa-install-wrap .pwa-install-hint,.sidebar--collapsed .pwa-install-wrap .pwa-install-ios-hint{display:none}.sidebar-collapse-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:transparent;color:var(--tx2);border:1px solid var(--bd);flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.sidebar-collapse-btn:hover{background:var(--bg2);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 28%,var(--bd))}.sidebar-collapse-btn svg{width:20px;height:20px}.sidebar-collapse-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px}.sidebar--collapsed .brand-logo--full{display:none}.sidebar--collapsed .brand-logo--compact{display:block}.sidebar--collapsed .sidebar-logo{justify-content:center}.sidebar--collapsed .sidebar-header-brand{flex-direction:column;align-items:center;gap:8px;width:100%}.sidebar--collapsed .sidebar-header{justify-content:center;padding:14px 8px 12px}.sidebar--collapsed .nav-badge,.sidebar--collapsed .nav-label,.sidebar--collapsed .sidebar-section,.sidebar--collapsed .sidebar-user{display:none}.sidebar--collapsed .sidebar-user-row{justify-content:center}.sidebar--collapsed .sidebar-logout-btn{justify-content:center;padding:8px}.sidebar--collapsed .sidebar-logout-btn span{display:none}.sidebar--collapsed .nav-item{justify-content:center;margin:2px 6px;padding:8px;gap:0}.sidebar--collapsed .sidebar-bottom{flex-direction:column;align-items:center;gap:6px;padding:10px 6px 12px}@media (min-width:769px){.sidebar-collapse-btn{display:flex}}.mobile-topbar{display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--topbar-h);padding:env(safe-area-inset-top,0) 16px 0;background:rgba(255,255,255,.88);border-bottom:1px solid var(--bd);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);flex-shrink:0;z-index:100}.mobile-topbar,.mobile-topbar-logo{align-items:center;justify-content:center}.mobile-topbar-logo{display:flex;text-decoration:none;border-radius:var(--r8);transition:opacity .15s}.mobile-topbar-logo:hover{opacity:.85}.mobile-topbar-logo img{width:118px;height:auto}.mobile-topbar-actions{position:absolute;right:max(16px,env(safe-area-inset-right));top:env(safe-area-inset-top,0);bottom:0;display:flex;align-items:center;gap:6px}.optimate-refresh-btn{color:var(--tx2)}.optimate-refresh-btn:hover:not(:disabled){color:var(--accent,var(--p));background:var(--accent-bg,var(--pl))}.optimate-refresh-desktop--header{display:inline-flex}.optimate-refresh-desktop--inline{position:absolute;top:12px;right:12px;z-index:2;display:inline-flex}@media (max-width:768px){.optimate-refresh-desktop{display:none!important}}@media (min-width:769px){.mobile-topbar-actions{display:none}}.mobile-topbar .burger-btn{position:absolute;left:16px;top:env(safe-area-inset-top,0);bottom:0;margin:auto 0}.bottom-nav{display:none;position:fixed;left:0;right:0;bottom:0;width:100%;z-index:400;padding:0 14px calc(10px + env(safe-area-inset-bottom, 0));pointer-events:none;transform:translateZ(0);-webkit-transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}.bottom-nav-inner{pointer-events:auto;display:flex;align-items:stretch;justify-content:space-around;gap:2px;padding:6px 8px;background:rgba(255,255,255,.94);backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3);border:1px solid var(--bd);border-radius:20px;box-shadow:var(--shadow-lg)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1 1;min-width:0;padding:6px 4px;border-radius:14px;color:var(--nav-fg);text-decoration:none;background:transparent;position:relative;transition:color .15s,transform .12s;-webkit-tap-highlight-color:transparent}.bottom-nav-item:active{transform:scale(.96)}.bottom-nav-item.active{color:var(--nav-fg-active)}.bottom-nav-item.active:before{content:"";position:absolute;inset:2px 1px;background:color-mix(in srgb,var(--nav-fg) 14%,var(--bg));border-radius:12px;z-index:0}.bottom-nav-icon{position:relative;z-index:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;box-shadow:none;transition:transform .15s var(--ease-out)}.bottom-nav-item.active .bottom-nav-icon{transform:none}.bottom-nav-item.active .bottom-nav-icon:after{display:none}.bottom-nav-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2;color:inherit}.bottom-nav-item.active .bottom-nav-icon svg{stroke-width:2.4;color:var(--nav-fg-active)}.bottom-nav-icon svg circle[fill=currentColor]{fill:currentColor;stroke:none}.bottom-nav-label{position:relative;z-index:1;font-size:10px;font-weight:600;line-height:1.2;text-align:center;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;color:inherit}.bottom-nav-item.active .bottom-nav-label{color:var(--nav-fg-active);font-weight:700}.bottom-nav-badge{position:absolute;top:-3px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--r);color:#fff;font-size:10px;font-weight:700;line-height:18px;text-align:center;border:2px solid #fff}.bottom-nav-badge--attention{background:var(--o,#e67e22)}.bottom-nav-overlay{display:none;position:fixed;inset:0;z-index:390;background:rgba(23,22,47,.42);opacity:0;pointer-events:none;transition:opacity .25s var(--ease-out);border:none;cursor:default}.bottom-nav-overlay.is-visible{opacity:1;pointer-events:auto}.bottom-nav-sheet{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom, 0));z-index:410;max-height:min(62vh,480px);display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--bd);border-radius:var(--r16);box-shadow:var(--shadow-lg);transform:translateY(12px) scale(.98);opacity:0;pointer-events:none;transition:transform .28s var(--ease-out),opacity .28s var(--ease-out);overflow:hidden}.bottom-nav-sheet.is-open{transform:translateY(0) scale(1);opacity:1;pointer-events:auto}.bottom-nav-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--bd);flex-shrink:0}.bottom-nav-sheet-user{display:flex;align-items:center;gap:12px;min-width:0}.bottom-nav-sheet-name{font-size:15px;font-weight:700;color:var(--tx)}.bottom-nav-sheet-role{font-size:12px;color:var(--tx3);margin-top:2px}.bottom-nav-sheet-close{width:36px;height:36px;border-radius:var(--r8);background:var(--bg3);color:var(--tx2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.bottom-nav-sheet-close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.bottom-nav-sheet-body{flex:1 1;overflow-y:auto;padding:8px 12px 12px;-webkit-overflow-scrolling:touch}.bottom-nav-sheet-group+.bottom-nav-sheet-group{margin-top:8px}.bottom-nav-sheet-section{display:flex;align-items:center;gap:8px;padding:10px 8px 6px;font-size:11px;font-weight:700;color:var(--nav-fg-muted);text-transform:uppercase;letter-spacing:.08em}.bottom-nav-sheet-section .nav-section-icon svg{width:14px;height:14px}.bottom-nav-sheet-link{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:0 8px;border-radius:10px;color:var(--nav-fg);font-size:14px;font-weight:600;transition:background .12s,color .12s}.bottom-nav-sheet-link:active{background:color-mix(in srgb,var(--nav-fg) 8%,var(--bg))}.bottom-nav-sheet-link.active{background:color-mix(in srgb,var(--nav-fg) 14%,var(--bg));color:var(--nav-fg-active);font-weight:700;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--nav-fg) 20%,transparent)}.bottom-nav-sheet-link-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:transparent;flex-shrink:0;color:var(--nav-fg)}.bottom-nav-sheet-link.active .bottom-nav-sheet-link-icon{color:var(--nav-fg-active)}.bottom-nav-sheet-link-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2}.bottom-nav-sheet-link.active .bottom-nav-sheet-link-icon svg{stroke-width:2.4}.bottom-nav-sheet-link-label{flex:1 1;min-width:0}.bottom-nav-sheet-logout{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 12px 12px;padding:12px;border-radius:var(--r8);background:var(--bg3);color:var(--tx2);font-size:14px;font-weight:600;flex-shrink:0;width:calc(100% - 24px)}.bottom-nav-sheet-logout svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}.bottom-nav-sheet-logout:hover{background:var(--rl);color:var(--rd)}.burger-btn{width:44px;height:44px;border-radius:14px;background:var(--bg2);border:1px solid var(--bd);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex-shrink:0;transition:background .15s,border-color .15s}.burger-btn span{display:block;width:18px;height:2px;border-radius:2px;background:var(--tx);transition:transform .22s var(--ease-out),opacity .22s}.burger-btn.is-open span:first-child{transform:translateY(7px) rotate(45deg)}.burger-btn.is-open span:nth-child(2){opacity:0}.burger-btn.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.sidebar-overlay{display:none;position:fixed;inset:0;z-index:250;border:none;padding:0;background:rgba(23,22,47,.45);opacity:0;pointer-events:none;transition:opacity .25s var(--ease-out);cursor:pointer}.sidebar-overlay.is-visible{opacity:1;pointer-events:auto}.main-content{flex:1 1;overflow-y:auto;overflow-x:hidden;background:var(--bg);border:1px solid var(--bd);border-radius:var(--r12);box-shadow:var(--shadow-sm);padding:32px 36px;display:flex;flex-direction:column;gap:22px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--tx3) 35%,transparent) transparent;-webkit-overflow-scrolling:touch}.main-content::-webkit-scrollbar{width:6px}.main-content::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--tx3) 28%,transparent);border-radius:999px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:2px;flex-wrap:wrap}.page-header-text{min-width:0}.page-header h2{font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1.15;color:var(--tx)}.page-header p{font-size:14px;color:var(--tx2);margin-top:6px;line-height:1.45}.empty-state{flex-direction:column;gap:10px;padding:36px 20px;text-align:center}.empty-state,.empty-state-icon{display:flex;align-items:center;justify-content:center}.empty-state-icon{width:44px;height:44px;border-radius:50%;background:var(--bg2);border:1px dashed color-mix(in srgb,var(--tx3) 35%,var(--bd));color:var(--tx3)}.empty-state-icon svg{width:20px;height:20px}.empty-state-label{margin:0;max-width:28ch;font-size:13px;line-height:1.45;color:var(--tx3)}.movna-boot{position:fixed;inset:0;z-index:9999;background:#ffffff;transition:opacity .36s ease,visibility .36s ease}.movna-boot--out{opacity:0;visibility:hidden;pointer-events:none}.movna-splash{display:flex;align-items:center;justify-content:center;min-height:280px;width:100%;padding:32px 20px;background:#ffffff}.movna-splash--screen{min-height:100dvh;min-height:100vh}.movna-splash-card{display:flex;flex-direction:column;align-items:center;gap:18px;animation:movna-splash-in .55s cubic-bezier(.22,1,.36,1) both}.movna-splash-logo-wrap{display:flex;align-items:center;justify-content:center;padding:18px 22px;border-radius:20px;background:#ffffff;box-shadow:0 0 0 1px color-mix(in srgb,#0E4486 8%,transparent),0 18px 40px -24px rgba(14,68,134,.35)}.movna-splash-logo{display:block;width:min(168px,56vw);height:auto;animation:movna-logo-breathe 2.4s ease-in-out infinite}.movna-splash-bar{width:120px;height:3px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,#0E4486 10%,#f3f5f9)}.movna-splash-bar span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#EB5A21,#0E4486);animation:movna-bar-slide 1.15s ease-in-out infinite}.movna-splash-label{margin:0;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,#0E4486 55%,#8a93a8)}.movna-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 18px;text-align:center;animation:movna-splash-in .4s ease both}.movna-loading--inline{flex-direction:row;gap:8px;padding:8px 0}.movna-loading--page{min-height:42vh}.movna-loading-mark{position:relative;width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:22px;background:#ffffff;box-shadow:0 0 0 1px color-mix(in srgb,#0E4486 8%,transparent),0 10px 28px -16px rgba(14,68,134,.28)}.movna-loading-mark--sm{width:58px;height:58px;border-radius:18px}.movna-loading-mark img{position:relative;z-index:1;display:block}.movna-loading-ring{position:absolute;inset:-3px;border-radius:inherit;border-color:#eb5a21 color-mix(in srgb,#0e4486 45%,transparent) transparent transparent;border-style:solid;border-width:2px;animation:movna-spin .9s linear infinite}.movna-loading-dot{width:8px;height:8px;border-radius:50%;background:#EB5A21;box-shadow:12px 0 0 #0E4486,24px 0 0 color-mix(in srgb,#0E4486 35%,#fff);animation:movna-dots .9s ease-in-out infinite}.movna-loading-label{margin:0;font-size:13px;line-height:1.4;color:var(--tx2)}.movna-loading-skeleton{width:min(280px,100%);display:flex;flex-direction:column;gap:8px;margin-top:4px}.movna-loading-bone{height:10px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,#0E4486 6%,#f2f4f8),color-mix(in srgb,#EB5A21 10%,#ffffff) 45%,color-mix(in srgb,#0E4486 6%,#f2f4f8));background-size:200% 100%;animation:movna-shimmer 1.35s ease-in-out infinite}@keyframes movna-splash-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes movna-logo-breathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.02);opacity:.92}}@keyframes movna-bar-slide{0%{transform:translateX(-120%)}to{transform:translateX(280%)}}@keyframes movna-spin{to{transform:rotate(1turn)}}@keyframes movna-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes movna-dots{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.movna-boot,.movna-loading,.movna-loading-bone,.movna-loading-dot,.movna-loading-ring,.movna-splash-bar span,.movna-splash-card,.movna-splash-logo{animation:none!important;transition:none!important}}.page-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.g2{grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.g2,.g3{display:grid}.g3{grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.g4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}.stat-card{background:var(--bg);border:1px solid var(--bd);border-radius:var(--r12);padding:18px 20px;box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s}.stat-card:hover{border-color:color-mix(in srgb,var(--accent,var(--p)) 20%,var(--bd));box-shadow:var(--shadow-md)}.stat-label{font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-weight:600}.stat-value{font-size:28px;font-weight:700;line-height:1.1;letter-spacing:-.02em}.stat-sub{font-size:13px;color:var(--tx2);margin-top:5px;line-height:1.35}.stat-value.danger{color:var(--rd)}.dash-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.dash-home{display:flex;flex-direction:column;gap:20px}.dash-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:28px 32px;border-radius:20px;overflow:hidden;color:#fff;background:linear-gradient(135deg,#0a3a72,#0E4486 42%,#1660b8);box-shadow:0 18px 40px rgba(14,68,134,.22),inset 0 1px 0 rgba(255,255,255,.12)}.dash-hero--student{background:linear-gradient(135deg,#3d2f86,#0E4486 45%,#1f6fbf)}.dash-hero--teacher{background:linear-gradient(135deg,#0a4f58,#0E4486 42%,#1788a0)}.dash-hero--admin{background:linear-gradient(135deg,#6b1f35,#0E4486 42%,#c44b2a)}.dash-hero-glow{position:absolute;inset:auto -60px -80px auto;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(235,90,33,.35) 0,transparent 68%);pointer-events:none}.dash-hero-glow:before{content:"";position:absolute;top:-180px;left:-220px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14) 0,transparent 70%)}.dash-hero-body{position:relative;z-index:1;min-width:0}.dash-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.dash-hero-date{font-size:13px;font-weight:500;color:rgba(255,255,255,.82)}.dash-hero-role{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18)}.dash-hero-title{margin:0;font-size:clamp(2rem,5vw,2.75rem);font-weight:800;letter-spacing:-.04em;line-height:1.05}.dash-hero-greeting{font-weight:600;color:rgba(255,255,255,.92)}.dash-hero-name{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.12)}.dash-hero-sub{margin:10px 0 0;max-width:42ch;font-size:15px;line-height:1.45;color:rgba(255,255,255,.78)}.dash-hero-actions{position:relative;z-index:1;display:flex;flex-shrink:0;align-items:flex-end;gap:10px}.dash-hero-btn{background:rgba(255,255,255,.95);color:var(--nav-fg,#0E4486);border:none;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.12)}.dash-hero-btn:hover{background:#fff}.dash-hero-actions .optimate-refresh-btn{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff}.dash-hero-actions .optimate-refresh-btn:hover:not(:disabled){background:rgba(255,255,255,.24);color:#fff}.dash-home .dash-stats{gap:14px}.dash-home .dash-stats .stat-card{background:color-mix(in srgb,var(--pl) 28%,var(--bg));border-color:color-mix(in srgb,var(--nav-fg,#0E4486) 10%,var(--bd))}.dash-home .dash-stats .stat-value{color:var(--nav-fg,#0E4486)}.card{background:var(--bg);border:1px solid var(--bd);border-radius:var(--r14);padding:20px 22px;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.card:hover{border-color:color-mix(in srgb,var(--accent,var(--p)) 16%,var(--bd));box-shadow:var(--shadow-md)}@media (hover:none){.card:hover{border-color:var(--bd);box-shadow:var(--shadow-sm)}}.card-title{font-size:16px;font-weight:600;margin-bottom:14px;letter-spacing:-.01em}.avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.avatar-sm{width:34px;height:34px;font-size:12px}.progress-bar{height:8px;background:var(--bg3);border-radius:5px;overflow:hidden}.progress-bar-sm{height:6px}.progress-fill{height:100%;border-radius:3px}.btn-leading-icon{width:16px;height:16px;flex-shrink:0}.btn-sm .btn-leading-icon{width:14px;height:14px}.btn{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;padding:10px 18px;border-radius:10px;transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;box-shadow:var(--shadow-sm)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:2px solid color-mix(in srgb,var(--accent,var(--p)) 50%,transparent);outline-offset:2px}.btn-sm{font-size:13px;padding:7px 12px;border-radius:8px}.btn-full{width:100%;justify-content:center}.btn-primary{background:var(--p);color:#fff;border:none}.btn-teal{background:var(--t);color:#fff;border:none}.btn-secondary{background:var(--bg);color:var(--tx);border:1px solid var(--bd);box-shadow:none}.btn-secondary:hover{background:var(--bg2)}.btn-danger{background:var(--rl);color:var(--rd);border:1px solid color-mix(in srgb,var(--r) 30%,transparent)}.badge{font-size:12px;font-weight:600;padding:5px 12px;border-radius:20px;display:inline-block}.badge-purple{background:var(--pl);color:var(--pd)}.badge-teal{background:var(--tl);color:var(--td)}.badge-amber{background:var(--al);color:#633806}.badge-red{background:var(--rl);color:var(--rd)}.badge-green{background:var(--gl);color:var(--gd)}.badge-gray{background:var(--bg3);color:var(--tx3)}.input{width:100%;padding:10px 13px;border:1px solid var(--bd);border-radius:10px;font-size:14px;font-family:var(--f);background:var(--bg);color:var(--tx);outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:color-mix(in srgb,var(--accent,var(--p)) 50%,var(--bd));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,var(--p)) 12%,transparent)}.module-row{display:flex;align-items:center;gap:11px;padding:12px 14px;background:var(--bg2);border-radius:var(--r8);margin-bottom:8px}.module-row.current{border:.5px solid var(--pm);background:var(--bg)}.module-row.locked{opacity:.5}.module-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.module-icon.done{background:var(--gl);color:#3B6D11}.module-icon.current{background:var(--pl);color:var(--p)}.module-icon.locked{background:var(--bg3);color:var(--tx3)}.hw-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:.5px solid var(--bd)}.hw-row:last-child{border-bottom:none}.hw-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.schedule-slot{padding:12px 14px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r8);margin-bottom:9px}.schedule-slot.group{background:color-mix(in srgb,var(--p) 14%,var(--bg2));border-color:color-mix(in srgb,var(--p) 18%,var(--bd))}.schedule-slot.individual{background:color-mix(in srgb,var(--a) 14%,var(--bg2));border-color:color-mix(in srgb,var(--a) 18%,var(--bd))}.schedule-slot.speaking-club{background:color-mix(in srgb,var(--t) 14%,var(--bg2));border-color:color-mix(in srgb,var(--t) 18%,var(--bd))}.schedule-slot.pair{background:color-mix(in srgb,var(--pd) 14%,var(--bg2));border-color:color-mix(in srgb,var(--pd) 18%,var(--bd))}.alert{background:color-mix(in srgb,var(--rl) 75%,var(--bg));border:1px solid color-mix(in srgb,var(--r) 22%,var(--bd));border-radius:10px;padding:11px 14px;gap:8px;font-size:13px;font-weight:600;color:var(--rd);margin-bottom:14px}.alert,.login-page{display:flex;align-items:center}.login-page{min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 10% 15%,#d9f0ff 0,transparent 38%),radial-gradient(circle at 88% 10%,#efe4ff 0,transparent 40%),linear-gradient(180deg,#f8fbff,#eef2ff);justify-content:center;padding:28px}.login-card{width:100%;max-width:480px;background:rgba(255,255,255,.9);border:1px solid rgba(116,103,255,.18);box-shadow:0 24px 60px rgba(68,59,148,.2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:28px;padding:40px 36px}.login-logo-wrap{display:flex;justify-content:center;margin-bottom:28px}.login-logo{width:190px;height:auto;display:block}.login-title{font-size:34px;line-height:1.1;letter-spacing:-.025em;font-weight:700;margin-bottom:10px;color:var(--tx)}.login-subtitle{font-size:16px;line-height:1.45;color:var(--tx2);margin-bottom:24px}.login-remember{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:14px;color:var(--tx2);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.login-remember input{width:16px;height:16px;accent-color:var(--p);cursor:pointer}.login-form{display:flex;flex-direction:column;gap:14px}.login-label{font-size:13px;font-weight:600;color:var(--tx2);display:block;margin-bottom:7px}.login-help{font-size:13px;color:var(--tx3);text-align:center;margin-top:22px}.login-help-link{color:var(--p);text-decoration:underline;text-underline-offset:3px;font-weight:600}.login-help-link:hover{color:var(--pd)}.login-legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;margin-top:14px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--bd) 80%,transparent);font-size:12px}.login-legal-link{color:var(--tx2);text-decoration:underline;text-underline-offset:2px;font-weight:500}.login-legal-link:hover{color:var(--p)}.login-legal-sep{color:var(--tx3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.legal-page{min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 10% 15%,#d9f0ff 0,transparent 38%),radial-gradient(circle at 88% 10%,#efe4ff 0,transparent 40%),linear-gradient(180deg,#f8fbff,#eef2ff);padding:28px 20px 40px}.legal-card{width:100%;max-width:720px;margin:0 auto;background:rgba(255,255,255,.95);border:1px solid rgba(116,103,255,.18);box-shadow:0 24px 60px rgba(68,59,148,.14);border-radius:24px;padding:32px 28px 36px}.legal-card-head{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--bd)}.legal-back{display:inline-block;margin-bottom:16px;font-size:13px;font-weight:600;color:var(--tx2);text-decoration:none}.legal-back:hover{color:var(--p)}.legal-logo{display:block;margin-bottom:20px;height:auto}.legal-title{margin:0 0 8px;font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--tx);line-height:1.2}.legal-updated{margin:0;font-size:13px;color:var(--tx3)}.legal-body{font-size:15px;line-height:1.65;color:var(--tx)}.legal-section+.legal-section{margin-top:24px}.legal-section h2{margin:0 0 10px;font-size:17px;font-weight:700;color:var(--tx)}.legal-section p{margin:0 0 10px}.legal-section p:last-child{margin-bottom:0}.legal-section ul{margin:0 0 10px;padding-left:1.25rem}.legal-section li{margin-bottom:6px}.legal-section a{color:var(--p);font-weight:600;text-decoration:underline;text-underline-offset:2px}.legal-section a:hover{color:var(--pd)}.login-card--centered{text-align:center}.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0 18px;color:var(--tx3);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.login-divider:after,.login-divider:before{content:"";flex:1 1;height:1px;background:var(--bd)}.btn-google{background:#fff;color:var(--tx);border:1px solid var(--bd2);box-shadow:0 4px 14px rgba(34,28,72,.08);gap:10px}.btn-google:hover{background:#fafbff;border-color:color-mix(in srgb,var(--p) 30%,var(--bd2))}@media (max-width:1024px){.g3,.g4:not(.dash-stats){grid-template-columns:repeat(2,1fr)}.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.main-content{padding:24px 22px}.page-header h2{font-size:24px}}@media (max-width:768px){.app-shell{display:flex;flex-direction:column;column-gap:0;height:100vh;height:100dvh;max-height:100dvh;overflow:hidden}.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.app-main{flex:1 1;min-height:0;padding:0;overflow:hidden}.sidebar{display:none}.sidebar-overlay{display:none!important}.mobile-topbar{display:flex}.bottom-nav{display:block}.main-content{border:none;border-radius:0;box-shadow:none;flex:1 1;min-height:0;padding:16px 16px calc(24px + var(--bottom-nav-h) + env(safe-area-inset-bottom, 0));gap:18px;overscroll-behavior:contain}.dash-hero{flex-direction:column;align-items:stretch;padding:22px 20px;border-radius:16px}.dash-hero-title{font-size:clamp(1.875rem,9vw,2.35rem)}.dash-hero-sub{font-size:14px;max-width:none}.dash-hero-actions{width:100%;align-items:stretch}.dash-hero-actions .btn,.dash-hero-actions .optimate-refresh-desktop{width:100%;justify-content:center}.page-header{flex-direction:column;align-items:stretch}.page-header h2{font-size:26px}.page-header p{font-size:15px}.page-header-actions{width:100%}.page-header-actions:has(.optimate-refresh-desktop){display:none}.page-header-actions .btn{flex:1 1;justify-content:center}.dash-grid.g2,.g2:not(.dash-grid),.g3,.g4:not(.dash-stats){grid-template-columns:1fr;gap:14px}.dash-grid.g2>:nth-child(3){grid-column:auto}.teacher-dash-student-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;grid-gap:10px 12px;gap:10px 12px;padding:12px 0;flex-wrap:nowrap}.teacher-dash-student-body{flex:unset;min-width:0}.teacher-dash-student-row .admin-table-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-dash-student-row .badge{justify-self:end;flex-shrink:0;white-space:nowrap}.dash-stats{gap:10px}.admin-dash-attention-chips,.admin-dash-low-balance-grid,.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-dash-attention-chips{display:grid;grid-gap:8px;gap:8px}.admin-dash-attention-chips .admin-dash-chip{justify-content:center;text-align:center}.dash-stats .stat-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:14px 12px;min-width:0}.dash-stats .stat-value{order:2;font-size:26px;margin-bottom:0;margin-top:4px}.dash-stats .stat-label{order:1;font-size:11px;letter-spacing:.02em;line-height:1.3;margin-bottom:0;text-transform:none;font-weight:600;color:var(--tx2);-webkit-hyphens:auto;hyphens:auto}.dash-stats .stat-sub{order:3;font-size:11px;line-height:1.3;margin-top:4px;color:var(--tx3)}.card{padding:18px 16px;border-radius:var(--r12)}.card-title{font-size:17px}.stat-card{padding:16px 18px}.stat-value{font-size:28px}.btn:not(.btn-sm){padding:12px 18px}.btn-sm{padding:7px 12px;font-size:12px}.input{padding:9px 12px;font-size:14px;line-height:1.25}textarea.input{padding:10px 12px}.admin-filters .input,.curr-search,.hw-modal-body>.input{padding:5px 10px;font-size:13px;height:32px;max-height:32px}.admin-filters:not(.hw-page-filters){gap:8px;align-items:stretch}.filter-chip-scroll{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;margin:0 -2px}.filter-chip-scroll::-webkit-scrollbar{display:none}.filter-chip-btn{font-size:11px!important;padding:4px 9px!important;flex-shrink:0}.module-row{flex-wrap:wrap;gap:10px}.hw-row{flex-direction:column;align-items:stretch;gap:8px}.login-page{align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}.login-card{padding:28px 22px;border-radius:22px;margin-top:0}.legal-page{padding:max(16px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom))}.legal-card{padding:24px 18px 28px;border-radius:20px}.legal-title{font-size:24px}.login-title{font-size:28px}.login-logo{width:160px}.main-content{background:linear-gradient(180deg,#ffffff 0,var(--app-bg) 180px)}.mobile-topbar{box-shadow:0 4px 24px rgba(34,28,72,.06);border-bottom-color:color-mix(in srgb,var(--accent,var(--p)) 12%,var(--bd))}.page-header h2{font-weight:800;letter-spacing:-.03em}.page-header p{font-weight:500}.card{box-shadow:0 6px 24px rgba(34,28,72,.07);border-color:color-mix(in srgb,var(--accent,var(--p)) 10%,var(--bd))}.card-title{display:flex;align-items:center;gap:10px;font-weight:700;margin-bottom:14px}.card-title:before{content:"";width:4px;height:1.1em;max-height:22px;border-radius:4px;background:var(--accent,var(--p));flex-shrink:0}.dash-stats .stat-card,.stat-card{background:color-mix(in srgb,var(--pl) 30%,#fff);border:1px solid color-mix(in srgb,var(--accent,var(--p)) 12%,var(--bd));box-shadow:0 8px 22px color-mix(in srgb,var(--accent,var(--p)) 8%,rgba(34,28,72,.06));border-radius:var(--r12)}.dash-stats .stat-value,.stat-value{font-weight:800;letter-spacing:-.03em}.dash-stats .stat-label{color:var(--accent,var(--p));font-weight:700;text-transform:uppercase;font-size:10px;letter-spacing:.07em}.btn-primary,.btn-teal{box-shadow:0 8px 22px color-mix(in srgb,var(--accent,var(--p)) 32%,transparent)}.btn-primary:active,.btn-secondary:active,.btn-teal:active{transform:scale(.98)}.badge{letter-spacing:.02em}.alert,.badge{font-weight:700}.alert{box-shadow:0 4px 16px color-mix(in srgb,var(--r) 12%,transparent)}.pending-requests-alert{box-shadow:0 6px 20px color-mix(in srgb,var(--r) 18%,transparent);font-weight:600}.lesson-request-card{box-shadow:0 6px 20px rgba(34,28,72,.07)}.lesson-request-card--pending{box-shadow:0 8px 24px color-mix(in srgb,var(--r) 14%,rgba(34,28,72,.08))}.hw-student-card.card,.hw-teacher-card-simple,.hw-teacher-card.card{box-shadow:0 6px 22px rgba(34,28,72,.08);border-color:color-mix(in srgb,var(--accent,var(--p)) 10%,var(--bd))}.admin-teacher-list .card{transition:transform .15s,box-shadow .15s}.admin-teacher-list .card:active{transform:scale(.99)}.admin-cal-filters{box-shadow:0 6px 20px rgba(34,28,72,.06);border-color:color-mix(in srgb,var(--accent,var(--p)) 12%,var(--bd))}.schedule-slot{box-shadow:0 2px 10px rgba(34,28,72,.05)}.admin-event-row,.admin-event-row--compact{box-shadow:0 4px 16px rgba(34,28,72,.06);border:1px solid color-mix(in srgb,var(--accent,var(--p)) 8%,var(--bd))}.admin-dash-hero .admin-kpi,.admin-dash-metrics .admin-kpi,.tls-kpi{box-shadow:0 6px 20px rgba(34,28,72,.07)}.admin-dash-attention{box-shadow:0 6px 22px color-mix(in srgb,var(--r) 10%,rgba(34,28,72,.08));border-radius:var(--r12)}.admin-dash-chip{font-weight:700;box-shadow:0 2px 10px rgba(34,28,72,.06)}.curr-program-pick{box-shadow:0 4px 14px rgba(34,28,72,.05)}.curr-program-pick--active{box-shadow:0 8px 22px color-mix(in srgb,var(--curr-accent) 14%,rgba(34,28,72,.08))}.curr-program-pick:active{transform:scale(.99)}.hw-alert{box-shadow:0 6px 22px color-mix(in srgb,var(--accent,var(--p)) 12%,rgba(34,28,72,.08));border-radius:var(--r12)}.optimate-sync-bar{border-radius:var(--r12);box-shadow:0 4px 16px rgba(34,28,72,.06);border:1px solid color-mix(in srgb,var(--accent,var(--p)) 10%,var(--bd))}}@media (max-width:380px){.sidebar-bottom{gap:6px}}.optimate-balance-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:18px;gap:18px}.optimate-balance-grid--single{grid-template-columns:1fr;max-width:520px}.optimate-tx-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--bd)}.optimate-tx-row:last-child{border-bottom:none}.optimate-tx-row--compact{padding:10px 0}.optimate-tx-date{font-size:12px;color:var(--tx3);width:72px;flex-shrink:0}.optimate-tx-body{flex:1 1;min-width:0}.optimate-tx-title{font-size:14px;font-weight:600;color:var(--tx)}.optimate-tx-sub{font-size:12px;color:var(--tx2);margin-top:2px}.optimate-tx-delta{font-size:13px;font-weight:700;white-space:nowrap}.optimate-dash-balance-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--bd)}.optimate-dash-balance-row:last-of-type{border-bottom:none}.schedule-legend{display:flex;gap:12px;font-size:12px;color:var(--tx2);align-items:center;flex-wrap:wrap}.schedule-legend-item{display:flex;align-items:center;gap:6px}.schedule-legend-dot{width:10px;height:10px;border-radius:3px;display:inline-block}.schedule-week-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:12px;gap:12px}.schedule-day-col{min-width:0}.schedule-day-head{font-size:12px;font-weight:700;color:var(--tx2);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.schedule-day-head span{color:var(--tx3);font-weight:500}.schedule-day-empty{font-size:12px;color:var(--tx3);padding:10px 0}.optimate-upcoming-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--bd)}.optimate-upcoming-row:last-child{border-bottom:none}.optimate-upcoming-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.optimate-sync-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r8);font-size:13px}.icon-btn,.optimate-sync-bar{align-items:center;color:var(--tx2)}.icon-btn{display:inline-flex;justify-content:center;flex-shrink:0;padding:0;border:1px solid var(--bd);border-radius:10px;background:var(--bg);cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .12s}.icon-btn svg{width:18px;height:18px;display:block}.icon-btn--sm{width:34px;height:34px;border-radius:8px}.icon-btn--sm svg{width:16px;height:16px}.icon-btn--md{width:40px;height:40px}.icon-btn--secondary:hover:not(:disabled){background:var(--bg3);color:var(--tx);border-color:var(--bd2)}.icon-btn--ghost{background:transparent;border-color:transparent}.icon-btn--ghost:hover:not(:disabled){background:var(--bg2);color:var(--tx)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn--loading{color:var(--pd)}.icon-spin{animation:cal-spin .7s linear infinite}@media (max-width:1024px){.optimate-balance-grid,.schedule-week-grid{grid-template-columns:1fr}.optimate-dash-balance-row{flex-direction:column;align-items:stretch}.admin-table-head--students,.teacher-group-students-head,.teacher-students-head{display:none}.admin-table-row--students,.teacher-group-students-row,.teacher-group-students-row.teacher-group-students-row--clickable,.teacher-students-row,.teacher-students-row.teacher-students-row--clickable{display:flex;flex-direction:column;grid-template-columns:none;gap:0;padding:14px;margin-bottom:10px;background:var(--bg);border-radius:var(--r12);border:1px solid color-mix(in srgb,var(--accent,var(--p)) 10%,var(--bd));border-bottom:none;text-align:left;box-shadow:0 6px 20px rgba(34,28,72,.07);transition:transform .12s,box-shadow .15s}.teacher-group-students-row--clickable:active,.teacher-students-row--clickable:active{transform:scale(.99)}.admin-table-row--students:last-child,.teacher-group-students-row:last-child,.teacher-students-row:last-child{margin-bottom:0}.admin-table-row--students .admin-table-cell:first-child,.teacher-group-students-row>.teacher-students-main,.teacher-students-row>.teacher-students-main{padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid color-mix(in srgb,var(--accent,var(--p)) 12%,var(--bd))}.admin-table-row--students .admin-table-cell:not(:first-child),.teacher-group-students-row>:not(:first-child),.teacher-students-row>:not(:first-child){display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--bd) 50%,transparent);min-width:0;width:100%}.admin-table-row--students .admin-table-cell:last-child,.teacher-group-students-row>:last-child,.teacher-students-row>:last-child{border-bottom:none;padding-bottom:0}.admin-table-row--students .admin-table-cell:not(:first-child):before,.teacher-group-students-row>:not(:first-child):before,.teacher-students-row>:not(:first-child):before{content:attr(data-label);display:block;width:100%;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3);line-height:1.35}.admin-table-row--students .admin-table-cell:nth-child(2):before{content:"Викладачі"}.admin-table-row--students .admin-table-cell:nth-child(3):before{content:"Рівень"}.admin-table-row--students .admin-table-cell:nth-child(4):before{content:"Баланс"}.admin-table-row--students .admin-table-cell:nth-child(5):before{content:"Продукти"}.admin-table-row--students .admin-table-cell:nth-child(6):before{content:"Статус"}.teacher-students-row>:nth-child(2):before{content:"Рівень"}.teacher-students-row>:nth-child(3):before{content:"Баланс"}.teacher-students-row>:nth-child(4):before{content:"Дії"}.teacher-group-students-row>:nth-child(2):before,.teacher-students-row>:nth-child(5):before{content:"Статус"}.teacher-group-students-row>:nth-child(3):before{content:"Контакт"}.admin-table-row--students .admin-table-cell:not(:first-child)>*,.teacher-group-students-row>:not(:first-child)>*,.teacher-students-row>:not(:first-child)>*{margin-left:0;text-align:left;max-width:100%;min-width:0}.admin-table-row--students .admin-table-cell:nth-child(2) .admin-table-teachers,.admin-table-teachers{width:100%;justify-content:flex-start}.admin-table-row--students .admin-table-cell:first-child,.teacher-group-students-row>.teacher-students-main,.teacher-students-row>.teacher-students-main{min-width:0;overflow-wrap:anywhere}.admin-table-sub,.admin-table-title{overflow-wrap:anywhere;word-break:break-word}.teacher-group-students-row>:nth-child(3),.teacher-students-row .teacher-students-products{min-width:0;text-align:left;word-break:break-word;overflow-wrap:anywhere;line-height:1.4;font-size:13px;color:var(--tx)}.teacher-group-students-row>:nth-child(3){color:var(--tx2);font-size:12px}.admin-table-row--students .badge,.teacher-group-students-row .badge,.teacher-students-row .badge{max-width:100%;white-space:normal;text-align:left}.admin-table-row--students .admin-table-cell{min-width:0}.card:has(.admin-table-row--students),.card:has(.teacher-group-students-row),.card:has(.teacher-students-row){background:transparent;border:none;box-shadow:none;padding:0}.card:has(.admin-table-row--students)>.empty-state,.card:has(.teacher-group-students-row)>.empty-state,.card:has(.teacher-students-row)>.empty-state{background:var(--bg);border:1px solid color-mix(in srgb,var(--accent,var(--p)) 10%,var(--bd));border-radius:var(--r12);padding:28px 16px;box-shadow:0 6px 20px rgba(34,28,72,.07)}.admin-cal-filters{width:100%}.admin-cal-filter-row--range .admin-cal-filter-chips .btn{flex:1 1;justify-content:center;min-width:0}.admin-cal-filter-row--selects{grid-template-columns:1fr 1fr}.optimate-sync-bar{flex-direction:column;align-items:stretch;text-align:center;gap:8px}.optimate-sync-bar .icon-btn{align-self:center;width:30px;height:30px;border-radius:8px}.optimate-sync-bar .icon-btn svg{width:14px;height:14px}.lesson-request-card-top{flex-direction:column;gap:6px}.lesson-request-card-date{white-space:normal;font-size:11px}.lesson-request-card-actions{flex-direction:column;align-items:stretch}.lesson-request-card-actions .btn,.lesson-request-card-actions .input{width:100%;min-width:0;justify-content:center}.admin-rank-row{flex-wrap:wrap;gap:8px}.admin-rank-row .badge{margin-left:auto}.admin-dash-rank-row{flex-wrap:wrap;gap:8px 12px;align-items:flex-start;padding:12px 0}.admin-dash-rank-body{flex-grow:1;flex-shrink:1;flex-basis:calc(100% - 38px);min-width:0}.admin-dash-rank-row:has(.admin-dash-rank-avatar) .admin-dash-rank-body{flex-grow:1;flex-shrink:1;flex-basis:calc(100% - 54px)}.admin-dash-rank-row .badge,.admin-dash-rank-value{margin-left:auto;flex-shrink:0}.admin-teacher-row{flex-wrap:wrap;gap:10px}.admin-teacher-row>div:nth-child(2){flex:1 1;min-width:calc(100% - 58px)}.person-row{flex-wrap:wrap;align-items:flex-start;gap:12px}.person-row-body{flex-grow:1;flex-shrink:1;flex-basis:calc(100% - 62px);min-width:0}.person-row-meta{width:100%;flex:1 1 100%;flex-direction:column;align-items:flex-start;gap:10px;padding-top:12px;margin-top:2px;border-top:1px solid color-mix(in srgb,var(--bd) 75%,transparent)}.person-row-meta .badge{max-width:100%;white-space:normal}.admin-teacher-list .person-row-title-line .badge{flex-shrink:0}.admin-teacher-list .person-row>.admin-teacher-stats,.admin-teacher-stats,.person-row-meta .admin-teacher-stats{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;padding-top:0;margin-top:0;border-top:none;justify-content:stretch}.admin-teacher-list .person-row>.admin-teacher-stats{flex:1 1 100%;padding-top:12px;margin-top:2px;border-top:1px solid color-mix(in srgb,var(--bd) 75%,transparent)}.admin-teacher-stats>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 8px;border-radius:var(--r14);background:color-mix(in srgb,var(--bg2) 70%,var(--bg));border:1px solid color-mix(in srgb,var(--accent,var(--p)) 8%,var(--bd));min-width:0}.admin-teacher-stat-value{font-size:20px;line-height:1.1}.admin-teacher-stat-label{font-size:9px;line-height:1.25;-webkit-hyphens:auto;hyphens:auto}.admin-teacher-list .card{padding:14px}.teacher-group-students-row{margin-bottom:10px}.admin-filters:not(.hw-page-filters){flex-direction:column;align-items:stretch}.admin-filters .input{max-width:none!important;width:100%;flex:none;padding:5px 10px;font-size:13px;height:32px;max-height:32px}.admin-event-row,.admin-event-row--compact{display:flex;flex-direction:column;gap:6px;align-items:stretch;padding:12px;margin-bottom:8px;background:var(--bg2);border-radius:var(--r12);border-bottom:none}.grades-journal-wrap{margin:0 -8px;padding:0 4px 4px}.admin-cal-select{min-width:0;width:100%;max-width:none}.admin-cal-select-wrap{flex:1 1 140px;min-width:0}.admin-pagination{flex-wrap:wrap;gap:10px}.admin-low-balance-row{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:12px 0;border-bottom:.5px solid var(--bd)}.admin-low-balance-row>:nth-child(2),.admin-low-balance-row>:nth-child(3){justify-self:auto}.optimate-detail-table-wrap{margin:0;padding-bottom:0;overflow:visible}.optimate-detail-table{min-width:0;display:block}.optimate-detail-table thead{display:none}.optimate-detail-table tbody{display:flex;flex-direction:column;gap:8px}.optimate-detail-table tbody tr{display:block;padding:12px 14px;border:1px solid color-mix(in srgb,var(--accent,var(--p)) 10%,var(--bd));border-radius:var(--r10);background:var(--bg2)}.optimate-detail-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--bd) 50%,transparent);text-align:right}.optimate-detail-table td:last-child{border-bottom:none;padding-bottom:0}.optimate-detail-table td:first-child{padding-top:0}.optimate-detail-table td:before{flex:0 0 auto;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tx3);text-align:left;max-width:46%;line-height:1.35}.optimate-detail-table td:first-child:before{content:"Продукт"}.optimate-detail-table td:nth-child(2):before{content:"Залишок"}.optimate-detail-table td:nth-child(3):before{content:"Всього"}.optimate-detail-table td:nth-child(4):before{content:"Використано"}.admin-pagination-info{min-width:0;width:100%;order:-1}.optimate-modal-overlay{padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom));align-items:flex-start;overflow-y:auto}.optimate-modal{max-height:none;margin:auto 0;border-radius:18px}.app-modal-header{padding:16px 18px}.app-modal-header h2{font-size:18px}.optimate-modal .app-modal-header{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--bg)}.optimate-modal-body{padding:16px 18px 20px}.optimate-modal--entity-unified .optimate-modal-entity-hero{padding:14px 16px 0}.optimate-modal-entity-hero-row{gap:12px;padding-bottom:14px}.optimate-modal-entity-hero-name{font-size:17px}.optimate-student-settings{margin-bottom:12px}.optimate-detail-grid{grid-template-columns:1fr}.optimate-detail-list-item{flex-direction:column;align-items:flex-start;gap:4px}.optimate-modal-profile-head{flex-direction:row;align-items:flex-start;text-align:left;gap:14px;padding:0 18px 14px}.optimate-modal-profile-head-text{padding-top:0;flex:1 1;min-width:0}.optimate-modal-profile-head .user-avatar--xl{width:64px;height:64px;font-size:20px;flex-shrink:0;margin-top:2px}.optimate-modal-profile-name{font-size:17px;line-height:1.25;margin-bottom:0;overflow-wrap:anywhere}.optimate-modal .app-modal-header:has(+.optimate-modal-profile-head) .app-modal-meta{margin-top:0}.optimate-modal .app-modal-header:has(+.optimate-modal-profile-head){align-items:center}.teacher-about-block{text-align:left}}.admin-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-filters .input{width:auto;max-width:280px;flex:0 1 240px;padding:7px 11px;font-size:13px;line-height:1.2;min-height:0;height:34px;border-radius:10px}.filter-chip-scroll{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}.filter-chip-btn{border-radius:999px!important;font-weight:600!important;box-shadow:0 2px 8px rgba(34,28,72,.06);letter-spacing:.01em;font-size:12px!important;padding:5px 10px!important;line-height:1.2}.admin-cal-filters{display:flex;flex-direction:column;gap:12px;margin-bottom:14px;padding:14px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r12);position:relative}.admin-cal-filter-row{display:grid;grid-template-columns:minmax(64px,72px) minmax(0,1fr);grid-gap:10px;gap:10px;align-items:center}.admin-cal-filter-row--selects{grid-template-columns:1fr 1fr;gap:10px}.admin-cal-filter-label{font-size:11px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;line-height:1.3}.admin-cal-filter-chips{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.admin-cal-filter-chips--scroll{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:none}.admin-cal-filter-chips--scroll::-webkit-scrollbar{display:none}.admin-cal-filter-chips--scroll .btn{flex:0 0 auto;white-space:nowrap}.admin-cal-filter-row--range .admin-cal-filter-chips{display:flex;width:100%}.admin-cal-filter-row--range .admin-cal-filter-chips .btn{flex:1 1;justify-content:center;min-width:0}.admin-cal-select-wrap{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0}.admin-cal-select-label{font-size:11px;color:var(--tx3);font-weight:600}.admin-cal-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-width:0;max-width:none;padding:10px 32px 10px 12px;font-size:13px;color:var(--tx);background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid var(--bd);border-radius:var(--r8);cursor:pointer}.admin-cal-select:focus{outline:none;border-color:var(--pm);box-shadow:0 0 0 2px color-mix(in srgb,var(--p) 15%,transparent)}.admin-cal-hint{margin:0;font-size:11px;color:var(--tx3);text-align:center}.admin-table-head,.admin-table-row{width:100%;text-align:left}.admin-table-row--students{cursor:default}@media (min-width:1025px){.admin-table-head{display:grid;grid-gap:8px;gap:8px;padding:8px 0;border-bottom:1px solid var(--bd);font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.admin-table-head--students,.admin-table-row--students{grid-template-columns:1.4fr 1fr 90px 90px 80px 110px;align-items:center}.admin-table-row{display:grid;grid-gap:8px;gap:8px;padding:12px 0;border:none;border-bottom:1px solid var(--bd);background:none;transition:background .15s}.admin-table-row--students:hover{background:var(--bg2)}}.admin-table-cell--clickable{cursor:pointer}.admin-table-teachers{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.admin-table-title{font-size:15px;font-weight:600;color:var(--tx)}.admin-table-sub{font-size:12px;color:var(--tx2);margin-top:2px}.teacher-students-row--clickable{width:100%;border:none;text-align:left;cursor:pointer;transition:background .15s,transform .12s,box-shadow .15s}@media (min-width:1025px){.teacher-students-row--clickable{background:none}.teacher-students-head,.teacher-students-row{display:grid;grid-template-columns:1.5fr 90px 90px minmax(280px,1.6fr) 110px;grid-gap:8px;gap:8px;align-items:center}.teacher-students-head{padding:8px 0;border-bottom:1px solid var(--bd);font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.teacher-students-row{padding:12px 0;border-bottom:1px solid var(--bd)}.teacher-students-row--clickable:hover{background:var(--bg2)}}.teacher-dash-student-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 0;border:none;border-bottom:1px solid var(--bd);background:none;text-align:left;cursor:pointer;transition:background .15s}.teacher-dash-student-row:hover{background:var(--bg2)}.teacher-dash-student-body{flex:1 1;min-width:0}.teacher-students-main{display:flex;align-items:center;gap:10px;min-width:0}.teacher-students-products{margin-top:0;line-height:1.35}.teacher-group-students-row--clickable{width:100%;border:none;text-align:left;cursor:pointer;transition:background .15s,transform .12s,box-shadow .15s}@media (min-width:1025px){.teacher-group-students-row--clickable{background:none}.teacher-group-students-head,.teacher-group-students-row{display:grid;grid-template-columns:1.5fr 120px 1fr;grid-gap:8px;gap:8px;align-items:center}.teacher-group-students-head{padding:8px 0;border-bottom:1px solid var(--bd);font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.teacher-group-students-row{padding:10px 0;border-bottom:1px solid var(--bd)}.teacher-group-students-row--clickable:hover{background:var(--bg2)}}.teacher-group-footer{justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid var(--bd);font-size:12px;color:var(--tx2)}.teacher-group-card-action,.teacher-group-footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.admin-pagination-info{font-size:14px;font-weight:600;color:var(--tx2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:140px;text-align:center}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:14px;font-size:14px;color:var(--tx2)}.admin-teacher-list{display:flex;flex-direction:column;gap:12px}.admin-teacher-row{display:flex;align-items:flex-start;gap:14px;width:100%;border:none;background:none;cursor:pointer;padding:0}.admin-teacher-avatar{width:48px;height:48px;border-radius:50%;background:var(--tl);color:var(--td);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;flex-shrink:0}.admin-teacher-stats{display:flex;gap:18px;flex-shrink:0}.admin-teacher-stat-value{font-size:22px;font-weight:700;text-align:center}.admin-teacher-stat-label{font-size:10px;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;text-align:center}.app-modal-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;grid-gap:12px 16px;gap:12px 16px;padding:20px 22px;border-bottom:1px solid var(--bd);background:linear-gradient(180deg,var(--bg) 0,color-mix(in srgb,var(--bg2) 35%,var(--bg)) 100%);flex-shrink:0}.app-modal-header-text{min-width:0}.app-modal-header h2{margin:0;font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.25;color:var(--tx)}.app-modal-header--compact{padding:18px 20px}.app-modal-header--compact h2{font-size:18px}.app-modal-meta{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;padding:4px 10px;font-size:11px;font-weight:600;color:var(--tx3);background:var(--bg2);border:1px solid var(--bd);border-radius:999px;line-height:1.3}.app-modal-sub{margin:6px 0 0;font-size:13px;color:var(--tx2);line-height:1.4}.app-modal-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.app-modal-icon-btn.icon-btn{width:36px;height:36px;border-radius:10px;border:none;background:transparent}.app-modal-icon-btn.icon-btn:hover:not(:disabled){background:color-mix(in srgb,var(--tx) 8%,transparent);border:none;color:var(--tx)}.app-modal-icon-btn--active.icon-btn{background:color-mix(in srgb,var(--tx) 10%,transparent);color:var(--tx)}.optimate-modal-overlay{position:fixed;inset:0;background:rgba(23,22,47,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px;animation:cal-fade-in .2s ease}.optimate-modal{width:min(760px,100%);max-height:88vh;overflow:hidden;background:var(--bg);border-radius:22px;border:1px solid var(--bd);box-shadow:0 24px 60px rgba(34,28,72,.22);display:flex;flex-direction:column;animation:cal-slide-up .25s ease}.optimate-modal-body{overflow-y:auto;padding:20px 24px 24px}.optimate-detail-section+.optimate-detail-section{margin-top:22px}.optimate-detail-section h3{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:12px}.optimate-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px 16px;gap:10px 16px}.optimate-detail-kv{display:flex;flex-direction:column;gap:3px;font-size:13px}.optimate-detail-kv span{color:var(--tx3);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.optimate-detail-description{margin-top:12px;font-size:14px;line-height:1.55;color:var(--tx2)}.optimate-notes-list{display:flex;flex-direction:column;gap:12px}.optimate-note-card{padding:14px 16px;background:var(--bg2);border-radius:var(--r12);border:1px solid var(--bd);border-left:3px solid var(--pm)}.optimate-note-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.optimate-note-date{font-size:12px;color:var(--tx3)}.optimate-note-body{margin:0;font-size:14px;line-height:1.55;color:var(--tx);white-space:pre-wrap}.optimate-note-meta{margin-top:8px;font-size:12px;color:var(--tx3)}.optimate-detail-empty{font-size:13px;color:var(--tx3)}.optimate-detail-list{display:flex;flex-direction:column;gap:8px}.optimate-detail-list-item{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--bg2);border-radius:var(--r8);font-size:13px}.optimate-detail-list-item pre{white-space:pre-wrap;font-family:inherit;font-size:12px}.optimate-detail-tags{display:flex;flex-wrap:wrap;gap:8px}.optimate-detail-table-wrap{overflow-x:auto}.optimate-detail-table{width:100%;border-collapse:collapse;font-size:13px}.optimate-detail-table td,.optimate-detail-table th{padding:10px 8px;border-bottom:1px solid var(--bd);text-align:left}.optimate-detail-table th{font-size:11px;color:var(--tx3);text-transform:uppercase}.admin-events-day+.admin-events-day{margin-top:20px}.admin-events-day-title{font-size:13px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}@media (min-width:1025px){.admin-event-row{display:grid;grid-template-columns:110px 1fr auto;grid-gap:14px;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--bd)}.admin-event-row--compact{grid-template-columns:140px 1fr auto}}.admin-event-time-main{font-size:14px;font-weight:600;color:var(--tx)}.admin-event-time-sub{font-size:11px;color:var(--tx3);margin-top:2px}.admin-event-title{font-size:14px;font-weight:600;color:var(--tx)}.admin-event-meta{font-size:12px;color:var(--tx2);margin-top:3px}.admin-event-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.student-login-panel{display:flex;flex-direction:column;gap:12px}.student-login-label{font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em}.student-login-row{display:flex;gap:8px;align-items:center}.student-login-row .input{flex:1 1}.student-login-actions{display:flex;gap:8px;flex-wrap:wrap}.student-login-hint{font-size:12px;color:var(--tx3);line-height:1.5}.student-login-success{font-size:13px;color:var(--gd);background:var(--gl);padding:8px 12px;border-radius:var(--r8)}.teacher-availability-slot{padding:10px 12px;background:var(--tl);border-radius:var(--r8);margin-bottom:7px;border-left:3px solid var(--t)}.teacher-availability-grid{grid-template-columns:repeat(5,minmax(0,1fr))}@media (max-width:768px){.teacher-availability-grid{grid-template-columns:1fr}}.cal-root{display:grid;grid-template-columns:1fr minmax(300px,340px);grid-gap:20px;gap:20px;align-items:start}.cal-toolbar{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;padding:12px 14px;background:linear-gradient(180deg,var(--bg) 0,var(--bg2) 100%);border-radius:16px;border:1px solid var(--bd);box-shadow:0 2px 12px rgba(34,28,72,.06)}.cal-toolbar-period{display:flex;align-items:center;gap:12px;flex:1 1 280px;min-width:0}.cal-toolbar-period-nav{gap:2px;flex:1 1 auto;max-width:420px}.cal-toolbar-nav,.cal-toolbar-period-nav{display:flex;align-items:center;min-width:0}.cal-toolbar-nav{gap:10px;flex-wrap:wrap}.cal-toolbar-arrows{display:flex;gap:4px}.cal-today-btn{height:36px;padding:0 14px;border:1px solid var(--bd);border-radius:10px;background:var(--bg);color:var(--tx2);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.cal-today-btn:hover{background:var(--pl);color:var(--pd);border-color:var(--pm)}.cal-toolbar--admin .cal-today-btn:hover{background:var(--rl);color:var(--rd);border-color:var(--rd)}.cal-toolbar-label{flex:1 1;min-width:0;font-size:17px;font-weight:700;color:var(--tx);margin:0;padding:0 6px;letter-spacing:-.02em;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-segmented{display:inline-flex;padding:3px;background:var(--bg3);border-radius:12px;border:1px solid var(--bd);gap:2px;flex-shrink:0}.cal-segment{border:none;background:transparent;color:var(--tx2);font-size:13px;font-weight:600;padding:8px 14px;border-radius:9px;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.cal-segment:hover{color:var(--tx)}.cal-segment--active{background:var(--bg);color:var(--pd);box-shadow:0 1px 4px rgba(34,28,72,.1)}.cal-toolbar--admin .cal-segment--active{color:var(--rd)}.cal-empty,.cal-loading{grid-column:1/-1;text-align:center;padding:48px 20px;color:var(--tx3);font-size:15px;background:#ffffff;border-radius:16px;border:1px solid color-mix(in srgb,#0e4486 8%,var(--bd));display:flex;flex-direction:column;align-items:center;gap:12px}.cal-loading{box-shadow:0 10px 28px -22px rgba(14,68,134,.3)}.cal-loading-spinner{width:28px;height:28px;border:3px solid var(--bd);border-top-color:var(--p);border-radius:50%;animation:cal-spin .7s linear infinite}@keyframes cal-spin{to{transform:rotate(1turn)}}.cal-empty-inline{font-size:13px;color:var(--tx3);margin:0}.cal-week{grid-column:1;--cal-time-col:56px;--cal-day-col:108px;background:var(--bg);border:1px solid var(--bd);border-radius:16px;overflow:hidden;box-shadow:0 4px 20px rgba(34,28,72,.05)}.cal-week-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.cal-week-track{min-width:calc(var(--cal-time-col) + 7 * var(--cal-day-col))}.cal-week-body,.cal-week-header{display:grid;grid-template-columns:var(--cal-time-col) repeat(7,var(--cal-day-col))}.cal-week-header{border-bottom:1px solid var(--bd);background:var(--bg2)}.cal-week-gutter{border-right:1px solid var(--bd)}.cal-week-day-head{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;border:none;border-right:1px solid var(--bd);background:transparent;cursor:pointer;transition:background .15s;min-width:0}.cal-week-day-head:last-child{border-right:none}.cal-week-day-head:hover{background:var(--bg3)}.cal-week-day-head--today .cal-week-day-num{background:var(--p);color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.cal-week-day-head--selected{background:color-mix(in srgb,var(--p) 10%,var(--bg2));box-shadow:inset 0 -2px 0 var(--p)}.cal-week-day-name{font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em}.cal-week-day-num{font-size:18px;font-weight:700;color:var(--tx)}.cal-week-day-count{font-size:10px;color:var(--pd);font-weight:600}.cal-week-body{position:relative}.cal-week-times{grid-column:1;border-right:1px solid var(--bd);background:var(--bg)}.cal-week-time{font-size:10px;color:var(--tx3);padding-right:8px;text-align:right;border-bottom:1px solid var(--bg2);box-sizing:border-box}.cal-week-days{grid-column:2/-1;display:grid;grid-template-columns:repeat(7,var(--cal-day-col));position:relative;height:100%}.cal-week-grid-line{position:absolute;left:0;right:0;height:1px;background:var(--bd);pointer-events:none;z-index:0}.cal-week-col{position:relative;border-right:1px solid var(--bd);height:100%;min-width:0;min-height:100%;z-index:1;overflow:visible}.cal-week-col:last-child{border-right:none}.cal-week-col--today{background:color-mix(in srgb,var(--p) 4%,transparent)}.cal-now-line{right:0;height:2px;z-index:4;pointer-events:none}.cal-now-dot,.cal-now-line{position:absolute;left:0;background:var(--r)}.cal-now-dot{top:-4px;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px var(--bg)}.cal-format-legend{display:flex;flex-wrap:wrap;gap:10px 16px;padding:8px 12px;margin-bottom:10px;background:var(--bg2);border:1px solid var(--bd);border-radius:10px;font-size:11px;color:var(--tx2)}.cal-format-legend-item{display:inline-flex;align-items:center;gap:6px}.cal-format-legend-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.cal-format-legend-short{color:var(--tx3)}.cal-format-filter{gap:8px}.cal-format-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--bd);border-radius:999px;background:var(--bg);color:var(--tx2);font-size:11px;cursor:pointer;transition:background .15s,border-color .15s,color .15s,opacity .15s}.cal-format-filter-chip:hover{border-color:color-mix(in srgb,var(--a) 35%,var(--bd));color:var(--tx)}.cal-format-filter-chip--on{background:var(--bg2);border-color:color-mix(in srgb,var(--a) 40%,var(--bd));color:var(--tx)}.cal-format-filter-chip:not(.cal-format-filter-chip--on){opacity:.55}.cal-format-filter-count{min-width:18px;padding:1px 5px;border-radius:999px;background:color-mix(in srgb,var(--tx) 8%,var(--bg2));color:var(--tx3);font-size:10px;font-weight:650;text-align:center}.cal-format-badge{display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;line-height:1;padding:2px 5px;border-radius:4px;margin-right:4px;vertical-align:middle;letter-spacing:.02em;flex-shrink:0}.cal-format-badge--compact{font-size:8px;padding:1px 4px}.cal-format-badge--individual{background:color-mix(in srgb,var(--a) 18%,var(--bg));color:var(--a)}.cal-format-badge--group{background:color-mix(in srgb,var(--p) 18%,var(--bg));color:var(--p)}.cal-format-badge--pair{background:color-mix(in srgb,var(--pd) 18%,var(--bg));color:var(--pd)}.cal-format-badge--speaking_club{background:color-mix(in srgb,var(--t) 18%,var(--bg));color:var(--t)}.cal-event--individual{--event-accent:var(--a)}.cal-event--group{--event-accent:var(--p)}.cal-event--pair{--event-accent:var(--pd)}.cal-event--speaking_club{--event-accent:var(--t)}.cal-event-format-label{font-size:10px;font-weight:600;color:var(--tx2);white-space:nowrap}.cal-event-card-badges{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.cal-week-event-title{display:flex;align-items:center;gap:2px;min-width:0}.cal-week-event{position:absolute;left:4px;right:4px;border:1px solid color-mix(in srgb,var(--event-accent,var(--p)) 16%,var(--bd));border-radius:8px;padding:5px 7px;text-align:left;overflow:hidden;cursor:pointer;z-index:1;background:color-mix(in srgb,var(--event-accent,var(--p)) 16%,var(--bg));box-shadow:0 1px 3px rgba(34,28,72,.06);transition:transform .15s,box-shadow .15s}.cal-week-event:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(34,28,72,.1);z-index:2}.cal-week-event--active{box-shadow:0 0 0 2px var(--event-accent,var(--p)),0 4px 14px rgba(34,28,72,.12);z-index:3}.cal-week-event-title{font-size:11px;font-weight:700;line-height:1.25;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-week-event-time{display:block;font-size:10px;color:var(--tx2);margin-top:2px}.cal-status-emoji{display:inline;margin-right:3px;font-size:11px;line-height:1;flex-shrink:0}.cal-week-event-meta{display:block;font-size:9px;line-height:1.2;color:var(--tx3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-month{grid-column:1;background:var(--bg);border:1px solid var(--bd);border-radius:16px;overflow:hidden;box-shadow:0 4px 20px rgba(34,28,72,.05)}.cal-month-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.cal-month-inner{min-width:560px}.cal-month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(80px,1fr));background:var(--bg2);border-bottom:1px solid var(--bd)}.cal-month-weekday{padding:10px;text-align:center;font-size:11px;font-weight:700;color:var(--tx3);text-transform:uppercase}.cal-month-row{display:grid;grid-template-columns:repeat(7,minmax(80px,1fr));min-height:100px}.cal-month-cell{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:6px;border-right:1px solid var(--bg2);border-bottom:1px solid var(--bg2);background:var(--bg);text-align:left;min-height:108px;transition:background .15s}.cal-month-cell:hover{background:var(--bg2)}.cal-month-cell-head{display:flex;align-items:center;justify-content:space-between;gap:4px;border:none;background:transparent;padding:2px 4px;cursor:pointer;width:100%}.cal-month-cell--muted{opacity:.45}.cal-month-cell--today .cal-month-cell-num{background:var(--p);color:#fff;border-radius:50%;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center}.cal-month-cell--selected{background:color-mix(in srgb,var(--p) 8%,var(--bg));box-shadow:inset 0 0 0 2px var(--pm)}.cal-month-cell-num{font-size:13px;font-weight:700;color:var(--tx);align-self:flex-end}.cal-month-cell-events{display:flex;flex-direction:column;gap:3px;flex:1 1;overflow:hidden}.cal-month-pill{display:flex;align-items:center;gap:4px;width:100%;font-size:10px;line-height:1.3;text-align:left;padding:3px 6px;border-radius:6px;border:1px solid color-mix(in srgb,var(--event-accent,var(--p)) 14%,var(--bd));background:color-mix(in srgb,var(--event-accent,var(--p)) 16%,var(--bg2));cursor:pointer;transition:transform .12s,box-shadow .12s}.cal-month-pill:hover{transform:translateX(2px);box-shadow:0 2px 6px rgba(34,28,72,.08)}.cal-month-pill-time{font-weight:700;color:var(--tx2);flex-shrink:0}.cal-month-pill-title{color:var(--tx);font-weight:600}.cal-month-pill-sub,.cal-month-pill-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-month-pill-sub{display:block;font-size:9px;color:var(--tx3)}.cal-month-more{font-size:10px;color:var(--pd);font-weight:600;border:none;background:transparent;cursor:pointer;text-align:left;padding:2px 4px}.cal-month-more:hover{text-decoration:underline}.cal-month-badge{font-size:10px;font-weight:700;background:var(--pl);color:var(--pd);padding:2px 7px;border-radius:10px;flex-shrink:0}.cal-agenda{grid-column:1;display:flex;flex-direction:column;gap:20px}.cal-agenda-day-title{font-size:14px;font-weight:700;color:var(--tx);margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--bd)}.cal-agenda-list{display:flex;flex-direction:column;gap:8px}.cal-sidebar{background:var(--bg);border:1px solid var(--bd);border-radius:16px;padding:18px;max-height:720px;overflow-y:auto;position:-webkit-sticky;position:sticky;top:16px;box-shadow:0 4px 20px rgba(34,28,72,.05)}.cal-sidebar-head h4{font-size:16px;font-weight:700;margin:0;display:flex;flex-direction:column;gap:2px}.cal-sidebar-head h4 span{font-size:13px;font-weight:500;color:var(--tx2)}.cal-sidebar-count{font-size:12px;color:var(--tx3);display:block;margin-top:4px}.cal-sidebar-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.cal-event-card{display:block;width:100%;text-align:left;padding:12px 14px;background:color-mix(in srgb,var(--event-accent,var(--p)) 10%,var(--bg2));border-radius:12px;border:1px solid color-mix(in srgb,var(--event-accent,var(--p)) 16%,var(--bd))}.cal-event-card--clickable{cursor:pointer;transition:background .15s,box-shadow .15s,transform .15s}.cal-event-card--clickable:hover{background:var(--bg3);box-shadow:0 4px 12px rgba(34,28,72,.08);transform:translateY(-1px)}.cal-event-card--selected{background:color-mix(in srgb,var(--event-accent,var(--p)) 8%,var(--bg2));box-shadow:0 0 0 2px color-mix(in srgb,var(--event-accent,var(--p)) 40%,transparent)}.cal-event-card--needs-marking{border-color:color-mix(in srgb,var(--rd) 55%,var(--bd));background:color-mix(in srgb,var(--rd) 10%,var(--bg));animation:cal-needs-marking-pulse 2.4s ease-in-out infinite}.cal-event-card-urgent{display:inline-flex;margin-top:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;color:#fff;background:var(--rd)}.cal-month-pill--needs-marking{animation:cal-needs-marking-pulse 2.4s ease-in-out infinite}@keyframes cal-needs-marking-pulse{0%,to{box-shadow:0 0 0 1px color-mix(in srgb,var(--rd) 35%,transparent),0 0 10px color-mix(in srgb,var(--rd) 16%,transparent)}50%{box-shadow:0 0 0 2px color-mix(in srgb,var(--rd) 55%,transparent),0 0 18px color-mix(in srgb,var(--rd) 32%,transparent)}}.schedule-unmarked-alert{margin-bottom:12px;border-color:color-mix(in srgb,var(--rd) 35%,var(--bd));background:color-mix(in srgb,var(--rd) 8%,var(--bg))}.cal-event-card--compact{padding:10px 12px}.cal-event-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.cal-event-card-title{display:flex;align-items:center;flex-wrap:wrap;gap:3px;min-width:0;font-size:14px;font-weight:600;color:var(--tx)}.cal-event-card-time{font-size:12px;color:var(--tx2);margin-top:4px}.cal-event-card-sub{font-size:12px;color:var(--tx3);margin-top:4px}.cal-event-card-trial{color:var(--a)}.cal-event-card-live,.cal-event-card-trial{display:inline-block;margin-top:6px;font-size:10px;font-weight:700}.cal-event-card-live{color:var(--td)}.cal-availability{margin-top:8px}.cal-availability-meta{display:flex;gap:16px;font-size:12px;color:var(--tx3);margin-bottom:12px}.cal-availability-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.cal-availability-grid{display:grid;grid-template-columns:repeat(7,minmax(88px,1fr));grid-gap:8px;gap:8px;min-width:560px}.cal-availability-day{background:var(--bg2);border-radius:var(--r8);padding:10px 8px;min-height:80px}.cal-availability-day-head{font-size:12px;font-weight:700;color:var(--tx2);text-transform:uppercase;margin-bottom:8px;text-align:center}.cal-availability-empty{font-size:11px;color:var(--tx3);text-align:center}.cal-availability-slot{display:flex;justify-content:center;gap:4px;font-size:12px;font-weight:600;color:var(--td);background:var(--tl);padding:6px 4px;border-radius:6px;margin-bottom:4px}.cal-modal-overlay{position:fixed;inset:0;z-index:600;background:rgba(23,22,47,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;animation:cal-fade-in .2s ease}@keyframes cal-fade-in{0%{opacity:0}to{opacity:1}}.cal-modal{position:relative;width:min(440px,100%);max-height:min(90dvh,100%);background:var(--bg);border-radius:20px;border:1px solid var(--bd);box-shadow:0 24px 64px rgba(34,28,72,.2);overflow:hidden;animation:cal-slide-up .25s ease;display:flex;flex-direction:column}.cal-modal--tinted{background:color-mix(in srgb,var(--cal-modal-tint,var(--p)) 9%,var(--bg));border-color:color-mix(in srgb,var(--cal-modal-tint,var(--p)) 22%,var(--bd))}.cal-modal--tinted .app-modal-header{background:transparent;border-bottom-color:color-mix(in srgb,var(--cal-modal-tint,var(--p)) 18%,var(--bd))}.cal-modal--tinted .cal-modal-badges .badge{background:transparent;border:none;padding:0;border-radius:0;font-size:13px;font-weight:600}.cal-modal-overlay--stack{z-index:650}@keyframes cal-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.cal-modal-accent{height:5px;width:100%;flex-shrink:0;display:none}.cal-modal-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.cal-modal-body{padding:18px 22px 24px;overflow-y:auto;flex:1 1;min-height:0;-webkit-overflow-scrolling:touch}.cal-modal-hero{padding:16px 18px;background:var(--bg2);border-radius:14px;margin-bottom:18px}.cal-modal-hero-time{font-size:26px;font-weight:700;color:var(--tx);letter-spacing:-.02em}.cal-modal-hero-date{font-size:14px;color:var(--tx2);margin-top:6px}.cal-modal-details{display:flex;flex-direction:column;gap:12px}.cal-detail-row{display:grid;grid-template-columns:110px 1fr;grid-gap:10px;gap:10px;align-items:start;padding-bottom:12px;border-bottom:1px solid var(--bg2)}.cal-detail-row:last-child{border-bottom:none;padding-bottom:0}.cal-detail-label{font-size:12px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.04em}.cal-detail-value{font-size:14px;color:var(--tx);line-height:1.45}.cal-detail-row--participants{align-items:flex-start}.cal-detail-chips{display:flex;flex-wrap:wrap;gap:8px}.cal-participant-chip{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;color:var(--tx);background:var(--bg2);border:1px solid var(--bd)}.cal-participant-chip--link{cursor:pointer;transition:background .15s,border-color .15s,transform .12s}.cal-participant-chip--link:hover{background:var(--pl);border-color:var(--pm);color:var(--pd);transform:translateY(-1px)}.cal-modal-hint{margin:16px 0 0;font-size:12px;color:var(--tx3)}.optimate-modal-overlay--above-cal{z-index:650}.cal-embed{margin-top:16px}.cal-embed .cal-root{grid-template-columns:1fr}.cal-embed .cal-sidebar{max-height:none;position:static}@media (max-width:1024px){.cal-root{grid-template-columns:1fr}.cal-sidebar{max-height:none;position:static}}@media (max-width:768px){.admin-cal-filters{padding:12px;gap:10px}.admin-cal-filter-row{grid-template-columns:1fr;gap:8px}.admin-cal-filter-row--selects{grid-template-columns:1fr;gap:10px}.admin-cal-filter-label{font-size:10px}.cal-toolbar{flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px;border-radius:var(--r12)}.cal-toolbar-period{flex-direction:row;align-items:center;gap:6px;flex:none;min-width:0}.cal-toolbar-period-nav{flex:1 1;min-width:0;max-width:none;gap:0}.cal-toolbar .icon-btn--sm{width:30px;height:30px;flex-shrink:0}.cal-today-btn{width:auto;flex-shrink:0;height:30px;padding:0 10px;font-size:11px;border-radius:8px;white-space:nowrap}.cal-segmented{width:100%;justify-content:stretch;padding:2px}.cal-segment{flex:1 1;text-align:center;padding:6px 8px;font-size:12px;border-radius:8px}.cal-toolbar-label{font-size:13px;line-height:1.25;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-card-top{flex-direction:column;align-items:flex-start;gap:8px}.cal-event-card-badges{flex-direction:row;flex-wrap:wrap;align-items:center;align-self:stretch;width:100%;gap:6px}.cal-event-card-title{width:100%}.cal-embed{margin-top:8px}.cal-embed .cal-toolbar{padding:10px 12px;border-radius:var(--r12)}.cal-month-cell,.cal-month-row{min-height:88px}.cal-week{--cal-day-col:88px}.cal-format-legend{gap:8px 12px;padding:8px 10px;font-size:10px}.cal-format-legend-short{display:none}.cal-modal-overlay{padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom));align-items:flex-start;overflow-y:auto}.cal-modal{max-height:none;margin:auto 0;display:flex;flex-direction:column;max-width:100%}.cal-modal .app-modal-header{position:-webkit-sticky;position:sticky;top:0;z-index:1}.cal-modal:not(.cal-modal--tinted) .app-modal-header{background:var(--bg)}.cal-modal .app-modal-header h2{font-size:18px}.cal-modal-body{padding:14px 16px 20px}.cal-modal-hero-time{font-size:22px}.cal-detail-row{grid-template-columns:1fr;gap:4px;padding-bottom:10px}.cal-detail-label{font-size:11px}.cal-modal-actions{flex-direction:column;gap:8px}.cal-modal-actions .btn{width:100%;justify-content:center}}.pending-requests-alert{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:12px 14px;border-radius:12px;background:var(--rl);color:var(--rd);font-size:14px;font-weight:500;border:.5px solid color-mix(in srgb,var(--r) 25%,transparent)}.pending-requests-alert-text{display:inline-flex;align-items:flex-start;gap:8px;line-height:1.4}.pending-requests-alert-text svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0;margin-top:1px}.confirm-dialog{width:min(420px,calc(100vw - 32px));background:var(--bg);border-radius:20px;border:1px solid var(--bd);box-shadow:0 24px 64px rgba(34,28,72,.2);overflow:hidden;display:flex;flex-direction:column;animation:cal-slide-up .25s ease}.confirm-dialog-body{padding:0 20px 20px}.confirm-dialog-message{margin:0 0 12px;font-size:14px;line-height:1.5;color:var(--tx2)}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.cal-modal-actions{display:flex;gap:8px;flex-wrap:wrap}.cal-meeting-links,.cal-modal-actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--bd)}.cal-meeting-links-label{font-size:12px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--tx2);margin-bottom:10px}.cal-meeting-links-actions{display:flex;flex-wrap:wrap;gap:8px}.cal-meeting-links-hint{margin:8px 0 0;font-size:13px;color:var(--tx2);line-height:1.4}.lesson-requests-list{display:flex;flex-direction:column;gap:12px}.lesson-request-card{border:1px solid var(--bd);border-radius:14px;padding:14px 16px;background:var(--bg)}.lesson-request-card--pending{border-color:color-mix(in srgb,var(--r) 35%,var(--bd));background:color-mix(in srgb,var(--rl) 35%,var(--bg))}.lesson-request-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.lesson-request-card-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.lesson-request-card-title{margin:0;font-size:16px;color:var(--tx)}.lesson-request-card-meta{margin:4px 0 0;font-size:13px;color:var(--tx2)}.lesson-request-card-date{font-size:12px;color:var(--tx3);white-space:nowrap}.lesson-request-card-details{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:13px;color:var(--tx2)}.lesson-request-reschedule{color:var(--pd);font-weight:600}.lesson-request-card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.lesson-request-card-actions .input{flex:1 1;min-width:180px}.teacher-week-chart-bars{display:flex;gap:8px;align-items:flex-end;height:100px}.teacher-week-chart-col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.teacher-week-chart-count{font-size:10px;color:var(--tx3)}.teacher-week-chart-track{width:100%;background:var(--rl);border-radius:3px 3px 0 0;height:70px;position:relative;display:flex;align-items:flex-end}.teacher-week-chart-stack{width:100%;display:flex;flex-direction:column;justify-content:flex-end;min-height:0;border-radius:3px 3px 0 0;overflow:hidden}.teacher-week-chart-bar{width:100%;min-height:2px}.teacher-week-chart-bar--done{background:var(--tl)}.teacher-week-chart-bar--planned{background:var(--p);opacity:.75}.teacher-week-chart-label{font-size:10px;color:var(--tx3)}.teacher-week-chart-caption{margin:8px 0 0;font-size:11px;color:var(--tx2);text-align:center}.format-breakdown-track{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--bg3)}.format-breakdown-segment{min-width:4px;transition:flex .3s}.format-breakdown-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;font-size:11px;color:var(--tx2)}.format-breakdown-legend-item{display:inline-flex;align-items:center;gap:5px}.format-breakdown-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.format-breakdown-sub{margin:8px 0 0;font-size:11px;color:var(--tx3);text-align:center}.admin-rank-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:.5px solid var(--bd)}.admin-rank-pos{width:22px;font-size:12px;font-weight:700;color:var(--tx3);text-align:center;flex-shrink:0}.admin-rank-body{flex:1 1;min-width:0}.teacher-insights{display:grid;grid-gap:14px;gap:14px}.teacher-insights-formats-title{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--tx)}.teacher-insights-formats{padding:12px 14px;background:var(--bg2);border-radius:12px;border:1px solid var(--bd)}@media (min-width:900px){.teacher-insights{grid-template-columns:1.2fr 1fr;align-items:start}}.teacher-lesson-stats-compact .dash-stats{grid-template-columns:repeat(2,1fr)}@media (min-width:1024px){.teacher-lesson-stats-compact .dash-stats{grid-template-columns:repeat(4,1fr)}}.birth-date-fields{margin-top:2px}.birth-date-hint{font-size:11px;color:var(--tx3);margin:0 0 10px;line-height:1.4}.birth-date-grid{display:grid;grid-template-columns:minmax(72px,.75fr) minmax(0,1.35fr) minmax(88px,.9fr);grid-gap:10px;gap:10px}.birth-date-field{display:flex;flex-direction:column;gap:5px;min-width:0}.birth-date-field-label{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em}.birth-date-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding:11px 32px 11px 12px;font-size:14px;font-family:var(--f);color:var(--tx);background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238885ad' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;border:.5px solid var(--bd2);border-radius:var(--r8);cursor:pointer;transition:border-color .15s,box-shadow .15s}.birth-date-select:hover{border-color:color-mix(in srgb,var(--p) 35%,var(--bd2))}.birth-date-fields--teal .birth-date-select:hover{border-color:color-mix(in srgb,var(--t) 35%,var(--bd2))}.birth-date-select:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 3px color-mix(in srgb,var(--p) 14%,transparent)}.birth-date-fields--teal .birth-date-select:focus{border-color:var(--t);box-shadow:0 0 0 3px color-mix(in srgb,var(--t) 14%,transparent)}.birth-date-select option[value=""],.birth-date-select:invalid{color:var(--tx3)}.birth-date-preview{margin:10px 0 0;padding:8px 12px;font-size:13px;font-weight:600;color:var(--pd);background:var(--pl);border-radius:var(--r8);border:1px solid color-mix(in srgb,var(--p) 20%,var(--bd))}.birth-date-fields--teal .birth-date-preview{color:var(--td);background:var(--tl);border-color:color-mix(in srgb,var(--t) 20%,var(--bd))}.birth-date-partial{margin:8px 0 0;font-size:11px;color:var(--tx3);line-height:1.4}@media (max-width:520px){.birth-date-grid{grid-template-columns:1fr 1fr}.birth-date-field--month{grid-column:1/-1}}.hw-empty-create{align-items:center;gap:4px;margin-bottom:8px}.hw-empty-create,.hw-wizard-list{display:flex;flex-direction:column}.hw-wizard-list{gap:8px;margin-top:12px;max-height:min(52vh,420px);overflow-y:auto}.hw-wizard-pick{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border-radius:var(--r12);border:1px solid var(--bd);background:var(--bg2);transition:border-color .15s,background .15s}.hw-wizard-pick:hover:not(:disabled){border-color:color-mix(in srgb,var(--t) 40%,var(--bd));background:var(--tl)}.hw-wizard-pick:disabled{opacity:.6;cursor:wait}.hw-wizard-pick-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.hw-wizard-pick-arrow{color:var(--tx3);font-size:18px;flex-shrink:0}.hw-wizard-pick-badges{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.hw-wizard-pick--no-hw{border-style:dashed}.hw-wizard-pick--has-hw{border-color:color-mix(in srgb,var(--t) 28%,var(--bd));background:color-mix(in srgb,var(--tl) 45%,var(--bg2))}.hw-wizard-lesson-legend{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px;align-items:center}.hw-modal-overlay{position:fixed;inset:0;background:rgba(23,22,47,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:600;display:flex;align-items:center;justify-content:center;padding:16px;animation:cal-fade-in .2s ease}.hw-modal{width:min(640px,100%);max-height:90vh;overflow:hidden;background:var(--bg);border-radius:20px;border:1px solid var(--bd);box-shadow:0 24px 64px rgba(34,28,72,.22);display:flex;flex-direction:column;animation:cal-slide-up .25s ease}.hw-modal--wide{width:min(920px,100%)}.hw-modal-body{padding:16px 18px;overflow-y:auto;flex:1 1;min-height:0;-webkit-overflow-scrolling:touch}.hw-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--bd)}.hw-modal-sub{margin:0 0 12px;font-size:12px;color:var(--tx2)}.hw-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.hw-field>span{font-size:12px;font-weight:600;color:var(--tx2)}.hw-section-title{margin:16px 0 8px;font-size:13px;font-weight:600}.hw-attachments{display:flex;flex-direction:column;gap:8px}.hw-attachment-row{display:flex;align-items:stretch;gap:8px}.hw-file-card--flex{flex:1 1;min-width:0}.hw-file-remove{flex-shrink:0;align-self:center}.hw-file-card,.hw-file-preview{width:100%;border-radius:var(--r12);border:1px solid var(--bd);background:var(--bg2);overflow:hidden}.hw-file-card-meta-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px}.hw-file-card{transition:border-color .15s,background .15s}.hw-file-card:hover{border-color:color-mix(in srgb,var(--t) 30%,var(--bd));background:color-mix(in srgb,var(--tl) 35%,var(--bg2))}.hw-file-card-icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;letter-spacing:.02em}.hw-file-card-icon--pdf{background:color-mix(in srgb,#e74c3c 14%,var(--bg));color:#c0392b}.hw-file-card-icon--image{background:color-mix(in srgb,#9b59b6 14%,var(--bg));color:#7d3c98}.hw-file-card-icon--doc{background:color-mix(in srgb,#3498db 14%,var(--bg));color:#2471a3}.hw-file-card-icon--sheet{background:color-mix(in srgb,#27ae60 14%,var(--bg));color:#1e8449}.hw-file-card-icon--slide{background:color-mix(in srgb,#e67e22 14%,var(--bg));color:#ca6f1e}.hw-file-card-icon--video{background:color-mix(in srgb,#8e44ad 14%,var(--bg));color:#6c3483}.hw-file-card-icon--audio{background:color-mix(in srgb,var(--t) 14%,var(--bg));color:var(--td)}.hw-file-card-icon--archive,.hw-file-card-icon--other,.hw-file-card-icon--text{background:var(--bg3);color:var(--tx2)}.hw-file-card-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.hw-file-card-name{font-size:13px;font-weight:600;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hw-file-card-meta{font-size:11px;color:var(--tx3)}.hw-file-card-btn{flex-shrink:0;padding:6px 12px;border-radius:var(--r8);border:1px solid var(--bd);background:var(--bg);color:var(--td);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.hw-file-card-btn:hover:not(:disabled){background:var(--tl);border-color:color-mix(in srgb,var(--t) 35%,var(--bd))}.hw-file-card-btn:disabled{opacity:.6;cursor:wait}.hw-file-card-btn--compact{padding:6px 10px;min-width:36px}.hw-file-preview-status{margin:0;padding:0 12px 10px;font-size:12px;color:var(--tx3)}.hw-file-preview-alert{margin:0 12px 10px}.hw-file-preview-media-btn{display:block;width:100%;padding:0;border:none;border-top:1px solid var(--bd);background:var(--bg3);cursor:zoom-in}.hw-file-preview-img{display:block;width:100%;max-height:min(360px,50vh);object-fit:contain;background:var(--bg3)}.hw-file-preview-video{display:block;width:100%;max-height:min(400px,55vh);background:#111;border-top:1px solid var(--bd)}.hw-file-lightbox{position:fixed;inset:0;z-index:800;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(12,11,28,.88);cursor:zoom-out}.hw-file-lightbox-img{max-width:min(96vw,1200px);max-height:92vh;object-fit:contain;border-radius:var(--r8);box-shadow:0 20px 60px rgba(0,0,0,.45)}.hw-upload-btn{cursor:pointer;width:-moz-fit-content;width:fit-content}.hw-event-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--bd)}.hw-event-section-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.hw-event-section-head h3{margin:0;font-size:14px}.hw-event-muted,.hw-event-preview{margin:0 0 10px;font-size:12px;color:var(--tx2)}.hw-event-preview{line-height:1.45}.hw-overdue{color:var(--rd);font-weight:600}.hw-alert{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin-bottom:14px;background:color-mix(in srgb,var(--rd) 8%,var(--bg));border:1px solid color-mix(in srgb,var(--rd) 25%,var(--bd));border-radius:12px}.hw-alert--teacher{background:color-mix(in srgb,var(--t) 8%,var(--bg));border-color:color-mix(in srgb,var(--t) 28%,var(--bd))}.hw-alert--feedback{background:color-mix(in srgb,var(--t) 6%,var(--bg));border-color:color-mix(in srgb,var(--t) 22%,var(--bd))}.hw-alert-body p{margin:4px 0 0;font-size:12px;color:var(--tx2)}.hw-alert-title{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--tx)}.hw-alert-title svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}.hw-alert--teacher .hw-alert-title{color:var(--td)}.hw-page-filters{margin-bottom:14px;display:flex;flex-direction:column;gap:10px}.hw-teacher-student-groups{display:flex;flex-direction:column;gap:12px}.hw-teacher-student-groups-toolbar{display:flex;justify-content:flex-end}.hw-teacher-student-group{border-radius:var(--r12);border:1px solid var(--bd);background:var(--bg);overflow:hidden}.hw-teacher-student-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--bg2);border-bottom:1px solid transparent}.hw-teacher-student-group.is-open .hw-teacher-student-group-head{border-bottom-color:var(--bd)}.hw-teacher-student-group-toggle{display:inline-flex;align-items:center;gap:8px;min-width:0;border:none;background:transparent;padding:0;text-align:left;cursor:pointer;color:inherit;font:inherit}.hw-teacher-student-group-chevron{flex:0 0 auto;width:1em;color:var(--tx3);font-size:12px}.hw-teacher-student-group-name{font-size:15px;font-weight:650;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hw-teacher-student-group-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;flex:0 1 auto}.hw-teacher-student-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:650;color:var(--tx2);background:var(--bd2);white-space:nowrap}.hw-teacher-student-pill--urgent{color:#9a3b00;background:color-mix(in srgb,var(--rd) 14%,var(--bg))}.hw-teacher-student-pill--done{color:color-mix(in srgb,var(--gd) 70%,var(--tx));background:color-mix(in srgb,var(--gd) 12%,var(--bg))}.hw-teacher-student-group-link{font-size:12px;font-weight:600;color:var(--tl,var(--t));text-decoration:none;padding:2px 6px}.hw-teacher-student-group-link:hover{text-decoration:underline}.hw-teacher-student-group-body{padding:8px 12px 12px;display:flex;flex-direction:column;gap:8px}.hw-teacher-student-empty{margin:0;padding:8px 4px;font-size:13px;color:var(--tx3)}.hw-teacher-action-main--btn{border:none;background:transparent;padding:0;text-align:left;cursor:pointer;flex:1 1;min-width:0}.hw-teacher-action-main--btn:hover .hw-row-title{color:var(--tl)}.hw-student-list,.hw-teacher-list{display:flex;flex-direction:column;gap:10px}.hw-student-card.card,.hw-teacher-card.card{margin-bottom:0}.hw-row-title{font-size:14px;font-weight:600;color:var(--tx)}.hw-row-lesson{font-size:12px;color:var(--tx2);margin-top:4px}.hw-row-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px;color:var(--tx3);margin-top:6px}.hw-row-feedback{color:var(--td);font-weight:500}.hw-student-row-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hw-card-meta{margin:0 0 10px;font-size:12px;color:var(--tx2);line-height:1.45}.hw-card-preview{margin:10px 0;padding:10px 12px;border-radius:var(--r12);background:var(--bg2);border:1px solid var(--bd);font-size:13px}.hw-progress{margin:0;padding:10px 16px;border-bottom:1px solid var(--bd);background:var(--bg)}.hw-progress-labels{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--tx2);margin-bottom:6px}.hw-progress-pending{color:var(--td);font-weight:600}.hw-progress-bar{height:6px;border-radius:99px;background:var(--bg3);overflow:hidden}.hw-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--t),var(--td));transition:width .25s ease}.hw-review-box{padding:12px 14px;border-radius:var(--r12);background:color-mix(in srgb,var(--t) 6%,var(--bg2));border:1px solid color-mix(in srgb,var(--t) 18%,var(--bd))}.hw-modal-header-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.hw-modal-footer--stack{flex-direction:column;align-items:stretch}.hw-modal-footer--stack .btn-full,.hw-modal-footer--stack .btn-teal{width:100%;justify-content:center}.hw-modal-footer-row{display:flex;gap:8px;width:100%}.hw-modal-footer-row .btn{flex:1 1;justify-content:center}.hw-upload-field{margin-top:12px}.hw-simple-answer{width:100%;min-height:120px;resize:vertical;line-height:1.5;font-size:14px}.hw-student-card-simple{padding:14px 16px;border-radius:var(--r12);border:1px solid var(--bd);background:var(--bg)}.hw-student-card-simple--todo{border-color:color-mix(in srgb,var(--t) 28%,var(--bd));background:color-mix(in srgb,var(--tl) 40%,var(--bg))}.hw-student-card-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hw-student-card-text{flex:1 1;min-width:0}.hw-teacher-card-simple{border-radius:var(--r12);border:1px solid var(--bd);background:var(--bg);overflow:hidden}.hw-teacher-card-simple--done{opacity:.92}.hw-teacher-card-simple--done .hw-teacher-card-head{background:color-mix(in srgb,var(--gd) 6%,var(--bg2))}.hw-teacher-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;padding:14px 16px;border:none;border-bottom:1px solid var(--bd);background:var(--bg2);text-align:left;cursor:pointer;transition:background .15s}.hw-teacher-card-head:hover{background:color-mix(in srgb,var(--tl) 50%,var(--bg2))}.hw-teacher-card-head-text{flex:1 1;min-width:0}.hw-teacher-card-body{padding:8px 12px 12px;display:flex;flex-direction:column;gap:6px}.hw-teacher-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-top:1px solid var(--bd);background:var(--bg2)}.hw-teacher-action-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.hw-teacher-action-main .hw-row-title{line-height:1.3}.hw-teacher-action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:var(--r8);background:var(--bg2)}.hw-teacher-action-row--done{background:color-mix(in srgb,var(--gd) 6%,var(--bg2));border:1px solid color-mix(in srgb,var(--gd) 16%,var(--bd))}.hw-row-meta--warn{color:#9a5f00;font-weight:500}.hw-teacher-action-row--urgent{background:color-mix(in srgb,var(--rd) 6%,var(--bg2));border:1px solid color-mix(in srgb,var(--rd) 18%,var(--bd))}.hw-teacher-action-row--muted{opacity:.85}.hw-teacher-done-block{margin-top:4px}.hw-teacher-done-toggle{width:100%;text-align:left;padding:8px 10px;border:none;border-radius:var(--r8);background:var(--bg3);color:var(--tx2);font-size:12px;font-weight:600;cursor:pointer}.hw-teacher-done-toggle:hover{color:var(--tx)}.hw-modal-action-banner{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 18px;background:color-mix(in srgb,var(--t) 8%,var(--bg));border-bottom:1px solid var(--bd);font-size:13px;color:var(--tx2)}.hw-modal-block{margin-bottom:16px}.hw-modal-block--answer{padding-top:4px;border-top:1px solid var(--bd)}.hw-modal-sub--inline{margin:4px 0 0}.hw-student-row{display:flex;align-items:center;width:100%;gap:12px;padding:0;border:none;background:none;text-align:left;cursor:pointer}.hw-student-row-body{flex:1 1;min-width:0}.hw-student-row-arrow{color:var(--tx3)}.hw-teacher-subs{margin-top:12px;display:flex;flex-direction:column;gap:8px}.hw-teacher-sub-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:.5px solid var(--bd)}.hw-card-actions{display:flex;flex-wrap:wrap;gap:4px}.hw-student-link{flex:1 1;min-width:0;text-align:left;background:none;border:none;padding:0;cursor:pointer;border-radius:var(--r8);transition:opacity .15s}.hw-student-link:hover{opacity:.85}.hw-student-link .admin-table-title{color:var(--tx)}.hw-student-link:hover .admin-table-title{color:var(--td)}.hw-detail-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--tx2);margin-bottom:12px}.hw-detail-meta .badge{margin-left:6px}.hw-detail-students{margin-top:16px}.hw-section-subtitle{margin:12px 0 8px;font-size:13px;font-weight:600;color:var(--tx)}.hw-field-label{display:block;font-size:12px;font-weight:600;color:var(--tx2);margin-bottom:8px}.md-editor{border:1px solid var(--bd);border-radius:12px;overflow:hidden;background:var(--bg2)}.md-editor--fullscreen{max-height:calc(100vh - 48px)}.md-editor-overlay{position:fixed;inset:0;z-index:700;background:rgba(23,22,47,.6);display:flex;align-items:center;justify-content:center;padding:20px}.md-editor-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--bd);background:var(--bg)}.md-editor-tools{display:flex;flex-wrap:wrap;gap:4px}.md-editor-tool{min-width:28px;height:28px;padding:0 6px;border:1px solid var(--bd);border-radius:6px;background:var(--bg2);font-size:11px;font-weight:700;cursor:pointer}.md-editor-expand{border:none;background:none;font-size:11px;color:var(--td);cursor:pointer;white-space:nowrap}.rte-editor{border:1px solid var(--bd);border-radius:12px;overflow:hidden;background:var(--bg)}.rte-editor--fullscreen{max-height:calc(100vh - 48px);display:flex;flex-direction:column}.rte-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--bd);background:var(--bg2)}.rte-tools{display:flex;flex-wrap:wrap;gap:4px}.rte-tool{min-width:30px;height:30px;padding:0 8px;border:1px solid var(--bd);border-radius:8px;background:var(--bg);font-size:12px;font-weight:700;cursor:pointer;color:var(--tx)}.rte-tool:hover{background:var(--bg3);border-color:color-mix(in srgb,var(--t) 30%,var(--bd))}.rte-expand{border:none;background:none;font-size:11px;color:var(--td);cursor:pointer;white-space:nowrap}.rte-surface{padding:14px 16px;min-height:160px;outline:none;font-size:15px;line-height:1.65;color:var(--tx);overflow-y:auto;cursor:text}.rte-surface:empty:before{content:attr(data-placeholder);color:var(--tx3);pointer-events:none}.rte-surface:focus{background:var(--bg)}.rte-surface h2{font-size:1.15em;font-weight:700;margin:.6em 0 .35em}.rte-surface p{margin:0 0 .65em}.rte-surface ol,.rte-surface ul{margin:0 0 .65em 1.25em;padding:0}.rte-surface li{margin:.2em 0}.rte-content h2{font-size:1.15em;font-weight:700;margin:.6em 0 .35em}.rte-editor--fullscreen .rte-surface{flex:1 1;max-height:none}.md-view.prose-hw{font-size:14px;line-height:1.55;color:var(--tx)}.md-view.prose-hw a,.rte-content a,.rte-surface a{color:var(--t);text-decoration:underline;text-underline-offset:2px;word-break:break-word;cursor:pointer}.md-view.prose-hw a:hover,.rte-content a:hover{color:color-mix(in srgb,var(--t) 80%,#000)}.md-view.prose-hw h1,.md-view.prose-hw h2,.md-view.prose-hw h3{margin:12px 0 6px;font-size:1.05em}.md-view.prose-hw p{margin:0 0 8px}.md-view.prose-hw ol,.md-view.prose-hw ul{margin:0 0 8px;padding-left:1.25rem}.md-view.prose-hw code{background:var(--bg3);padding:1px 4px;border-radius:4px;font-size:.9em}.md-view.prose-hw pre{background:var(--bg3);padding:10px;border-radius:8px;overflow:auto}.md-view-empty{color:var(--tx3);font-size:13px}@media (max-width:768px){.hw-modal-overlay,.md-editor-overlay{padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom));align-items:flex-start;overflow-y:auto}.hw-modal{max-height:none;margin:auto 0;border-radius:16px}.hw-modal,.hw-modal--wide{width:100%}.hw-modal .app-modal-header{padding:14px 16px;position:-webkit-sticky;position:sticky;top:0;background:var(--bg);z-index:1}.hw-modal .app-modal-header h2{font-size:17px}.hw-modal-body{padding:14px 16px}.hw-modal-footer{flex-direction:column-reverse;align-items:stretch;padding:12px 16px max(14px,env(safe-area-inset-bottom));position:-webkit-sticky;position:sticky;bottom:0;background:var(--bg)}.hw-modal-footer .btn{width:100%;justify-content:center}.hw-modal-hint{text-align:center;margin:0 0 8px}.hw-teacher-sub-row{flex-direction:column;align-items:stretch;gap:8px}.hw-teacher-sub-row .icon-btn{margin-left:auto}.hw-alert{flex-direction:column;align-items:stretch}.hw-student-row{padding:4px 0}.hw-attachment-row{flex-direction:column;align-items:stretch}.hw-attachment-row .btn,.hw-attachment-row .hw-file-remove{width:100%;justify-content:center}.hw-file-card{flex-wrap:wrap}.hw-file-card-btn:not(.hw-file-card-btn--compact){width:100%;margin-top:4px}.teacher-insights-stats.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-week-chart-caption{font-size:10px;line-height:1.4}.format-breakdown-legend{gap:6px 10px}.admin-filters{width:100%}.admin-filters .input{max-width:none!important;width:100%;flex:none;padding:5px 10px;font-size:13px;height:32px;max-height:32px}.admin-filters .btn{flex:0 0 auto}.pending-requests-alert{flex-direction:column;align-items:stretch}.pending-requests-alert .btn{width:100%;justify-content:center}.teacher-group-footer{flex-direction:column;align-items:stretch}.teacher-group-card-action{width:100%}.teacher-group-card-action .btn{flex:1 1;justify-content:center}.teacher-dash-student-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;grid-gap:10px 12px;gap:10px 12px;padding:12px 0}.teacher-dash-student-body{flex:unset;min-width:0}.optimate-dash-balance-row{flex-direction:column;align-items:stretch;gap:10px}.optimate-dash-balance-progress{min-width:0!important;width:100%}.optimate-tx-row{flex-wrap:wrap;gap:6px 12px}.optimate-tx-date{width:auto;flex:1 1 100%}.optimate-tx-delta{margin-left:auto}.course-progress-banner{padding:14px 16px!important}.course-module-header{flex-wrap:wrap}.course-module-progress{flex:1 1 100%;margin-top:4px}.course-lesson-row{flex-wrap:wrap;gap:8px!important;padding:10px!important}.course-lesson-row .btn{width:100%;justify-content:center;margin-top:4px}.student-balance-hero{font-size:30px!important}.grades-journal-wrap{margin:0 -4px}.optimate-note-head{flex-direction:column;align-items:flex-start}.md-editor-overlay{padding:0;align-items:stretch}.md-editor--fullscreen{max-height:100dvh;border-radius:0;width:100%;height:100%}.md-editor-preview{border-left:none;border-top:1px solid var(--bd);max-height:none}.md-editor-toolbar{flex-wrap:wrap}.confirm-dialog{width:calc(100vw - 20px);margin:auto 0}}@media (max-width:480px){.page-header h2{font-size:24px;font-weight:800}.dash-stats .stat-value{font-size:26px;font-weight:800}.dash-stats .stat-card{padding:12px 11px}.card-title{font-size:16px}.mobile-topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.bottom-nav{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:calc(8px + env(safe-area-inset-bottom, 0))}.bottom-nav-inner{padding:6px;gap:1px;border-radius:18px}.bottom-nav-icon{width:26px;height:26px}.bottom-nav-icon svg{width:19px;height:19px}.bottom-nav-label{font-size:9px;max-width:64px}.bottom-nav-sheet{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:calc(72px + env(safe-area-inset-bottom, 0))}}@media (min-width:1025px){.admin-low-balance-row{display:grid;grid-template-columns:1fr auto auto;grid-gap:8px 12px;gap:8px 12px;align-items:center;padding:10px 0;border-bottom:.5px solid var(--bd)}}.curr-hub--admin{--curr-accent:var(--r);--curr-accent-bg:var(--rl);--curr-accent-fg:var(--rd)}.curr-hub--teacher{--curr-accent:var(--t);--curr-accent-bg:var(--tl);--curr-accent-fg:var(--td)}.curr-layout{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.curr-sidebar{position:-webkit-sticky;position:sticky;top:12px;border:1px solid var(--bd);border-radius:var(--r12);background:var(--bg);padding:14px;box-shadow:0 8px 24px rgba(34,28,72,.04)}.curr-search{margin-bottom:10px;font-size:14px;padding:8px 11px}.curr-sidebar-label{margin:0 0 10px;font-size:11px;font-weight:600;color:var(--tx3)}.curr-sidebar-empty{margin:8px 0 0;font-size:12px;color:var(--tx3);text-align:center}.curr-program-list{display:flex;flex-direction:column;gap:8px;max-height:min(72vh,680px);overflow-y:auto}.curr-program-pick{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;padding:12px 14px;border-radius:var(--r8);border:1px solid var(--bd);background:var(--bg2);cursor:pointer;transition:border-color .15s,background .15s,transform .12s}.curr-program-pick:hover{border-color:color-mix(in srgb,var(--curr-accent) 35%,var(--bd));background:color-mix(in srgb,var(--curr-accent-bg) 50%,var(--bg2))}.curr-program-pick--active{border-color:color-mix(in srgb,var(--curr-accent) 50%,var(--bd));background:color-mix(in srgb,var(--curr-accent-bg) 75%,var(--bg2));box-shadow:0 0 0 2px color-mix(in srgb,var(--curr-accent) 22%,transparent)}.curr-program-pick-title{font-size:14px;font-weight:600;color:var(--tx);line-height:1.35}.curr-program-pick-meta{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:11px;color:var(--tx3)}.curr-main{border:1px solid var(--bd);border-radius:var(--r12);background:var(--bg);padding:0;min-width:0;overflow:hidden;box-shadow:0 8px 24px rgba(34,28,72,.04)}.curr-program-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px;background:linear-gradient(135deg,color-mix(in srgb,var(--curr-accent-bg) 80%,var(--bg)) 0,var(--bg) 70%);border-bottom:1px solid var(--bd)}.curr-program-title{margin:0;font-size:22px;font-weight:700;color:var(--tx);line-height:1.25}.curr-program-meta{margin:6px 0 0;font-size:13px;color:var(--tx2)}.curr-program-stats{display:flex;gap:10px;flex-shrink:0}.curr-stat-chip{display:flex;flex-direction:column;align-items:center;min-width:72px;padding:10px 12px;border-radius:var(--r8);background:var(--bg);border:1px solid var(--bd)}.curr-stat-value{font-size:20px;font-weight:700;color:var(--curr-accent-fg);line-height:1}.curr-stat-label{margin-top:4px;font-size:10px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.04em}.curr-modules{padding:16px 18px 20px;display:flex;flex-direction:column;gap:10px}.curr-module{border:1px solid var(--bd);border-radius:var(--r8);overflow:hidden;background:var(--bg2)}.curr-module--open{border-color:color-mix(in srgb,var(--curr-accent) 25%,var(--bd))}.curr-module-toggle{display:grid;grid-template-columns:32px 1fr auto auto;align-items:center;grid-gap:10px;gap:10px;width:100%;padding:12px 14px;border:none;background:transparent;text-align:left;cursor:pointer}.curr-module-toggle:hover{background:color-mix(in srgb,var(--curr-accent-bg) 35%,transparent)}.curr-module-index{width:28px;height:28px;border-radius:var(--r8);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--curr-accent-fg);background:color-mix(in srgb,var(--curr-accent-bg) 80%,var(--bg))}.curr-module-name{font-size:14px;font-weight:600;color:var(--tx)}.curr-module-chevron{color:var(--tx3);font-size:12px}.curr-module-body{display:flex;flex-direction:column;gap:8px;padding:0 12px 12px}.curr-lesson-card{padding:12px 14px;border-radius:var(--r8);background:var(--bg);border:1px solid var(--bd)}.curr-lesson-card--purple{background:color-mix(in srgb,var(--p) 9%,var(--bg));border-color:color-mix(in srgb,var(--p) 22%,var(--bd))}.curr-lesson-card--teal{background:color-mix(in srgb,var(--t) 9%,var(--bg));border-color:color-mix(in srgb,var(--t) 22%,var(--bd))}.curr-lesson-card--amber{background:color-mix(in srgb,var(--a) 9%,var(--bg));border-color:color-mix(in srgb,var(--a) 22%,var(--bd))}.curr-lesson-card--green{background:color-mix(in srgb,var(--gd) 9%,var(--bg));border-color:color-mix(in srgb,var(--gd) 22%,var(--bd))}.curr-lesson-card--gray{background:color-mix(in srgb,var(--tx3) 8%,var(--bg));border-color:color-mix(in srgb,var(--tx3) 18%,var(--bd))}.curr-lesson-card-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.curr-lesson-num{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:700;color:var(--tx2);background:var(--bg3)}.curr-lesson-topic{margin:0;font-size:14px;font-weight:600;color:var(--tx);line-height:1.4}.curr-lesson-activities{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--tx2)}@media (max-width:960px){.curr-layout{grid-template-columns:1fr}.curr-sidebar{position:static}.curr-program-list{max-height:none}.curr-program-hero{flex-direction:column}.curr-program-stats{width:100%}.curr-stat-chip{flex:1 1}}.teacher-curricula-page{display:flex;flex-direction:column;gap:0}.curr-page-tabs{display:flex;gap:6px;margin-bottom:16px;padding:4px;background:var(--bg2);border:1px solid var(--bd);border-radius:12px;width:-moz-fit-content;width:fit-content;max-width:100%;flex-wrap:wrap}.curr-page-tab{border:none;background:transparent;padding:9px 16px;border-radius:8px;font-size:13px;font-weight:600;color:var(--tx2);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.curr-page-tab:hover{color:var(--tx);background:var(--bg)}.curr-page-tab--active{background:var(--bg);color:var(--accent,var(--td));box-shadow:var(--shadow-sm)}.curr-custom-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.curr-program-pick-author{font-size:11px;font-weight:600;color:var(--td)}.curr-program-pick-date{font-size:10px;color:var(--tx3)}.curr-program-hero-text{min-width:0}.curr-program-hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex-shrink:0}.curr-custom-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.curr-custom-actions{display:flex;gap:8px;flex-wrap:wrap}.curr-custom-empty{margin:0;padding:24px 22px;text-align:center;color:var(--tx3);font-size:14px}.curr-custom-empty--inline{padding:12px 14px;font-size:13px}.curr-custom-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:280px;padding:24px}.curr-editor{display:flex;flex-direction:column;min-height:420px;max-height:min(88vh,900px)}.curr-editor-body{flex:1 1;overflow-y:auto;padding:18px 22px 22px}.curr-editor-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.curr-editor-field>span{font-size:12px;font-weight:600;color:var(--tx2)}.curr-editor-field--compact{margin-bottom:0}.curr-editor-field--wide{grid-column:span 2}.curr-editor-field--full{grid-column:1/-1;margin-bottom:0}.curr-editor-visibility{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin-bottom:18px;border-radius:var(--r12);border:1px solid color-mix(in srgb,var(--t) 22%,var(--bd));background:color-mix(in srgb,var(--tl) 55%,var(--bg2));cursor:pointer}.curr-editor-visibility input{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--t)}.curr-editor-visibility-text{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--tx)}.curr-editor-visibility-text small{font-size:12px;color:var(--tx2);line-height:1.45;font-weight:400}.curr-editor-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.curr-editor-section-head h3{margin:0;font-size:15px;font-weight:700;color:var(--tx)}.curr-editor-modules{display:flex;flex-direction:column;gap:10px}.curr-editor-module{border:1px solid var(--bd);border-radius:var(--r12);background:var(--bg2);overflow:hidden}.curr-editor-module--open{border-color:color-mix(in srgb,var(--t) 28%,var(--bd))}.curr-editor-module-head{display:grid;grid-template-columns:auto 1fr auto;grid-gap:8px;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid transparent}.curr-editor-module--open .curr-editor-module-head{border-bottom-color:var(--bd)}.curr-editor-module-toggle{display:flex;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer;color:var(--tx2);padding:4px}.curr-editor-module-title{min-width:0}.curr-editor-remove{flex-shrink:0}.curr-editor-lessons{padding:12px 14px 14px;display:flex;flex-direction:column;gap:12px}.curr-editor-lesson{padding:12px 14px;border-radius:var(--r8);border:1px solid var(--bd);background:var(--bg)}.curr-editor-lesson-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.curr-editor-lesson-label{font-size:12px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em}.curr-editor-lesson-remove{border:none;background:none;color:var(--tx3);font-size:12px;cursor:pointer;padding:2px 4px}.curr-editor-lesson-remove:hover{color:var(--r)}.curr-editor-lesson-grid{display:grid;grid-template-columns:72px minmax(120px,1fr) 1fr;grid-gap:10px 12px;gap:10px 12px}.curr-editor-textarea{resize:vertical;min-height:64px;font-family:inherit}.curr-editor-add-lesson{align-self:flex-start}.curr-editor-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--bd);background:var(--bg)}@media (max-width:720px){.curr-page-tabs{width:100%}.curr-page-tab{flex:1 1;text-align:center;padding:10px 12px;font-size:13px}.curr-program-hero-side{align-items:stretch;width:100%}.curr-custom-actions{width:100%}.curr-custom-actions .btn{flex:1 1}.curr-editor-lesson-grid{grid-template-columns:1fr 1fr}.curr-editor-field--wide{grid-column:1/-1}.curr-editor-footer{flex-direction:column-reverse}.curr-editor-footer .btn{width:100%;justify-content:center}}@media (max-width:540px){.admin-low-balance-row{gap:8px}.admin-low-balance-row .btn{width:100%;justify-content:center}}.admin-dash{display:flex;flex-direction:column;gap:16px;margin-top:4px}.admin-dash-hero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.admin-kpi-link{display:block;text-decoration:none;color:inherit;height:100%}.admin-kpi-link:hover .admin-kpi{transform:translateY(-2px);box-shadow:0 8px 24px rgba(34,28,72,.08)}.admin-kpi{background:color-mix(in srgb,var(--kpi-bg,var(--bg2)) 48%,var(--bg));border:1px solid color-mix(in srgb,var(--kpi-accent,var(--bd)) 14%,var(--bd));border-radius:var(--r14);padding:18px 20px;height:100%;transition:transform .18s var(--ease-out),box-shadow .18s var(--ease-out);position:relative}.admin-kpi--purple{--kpi-accent:var(--p);--kpi-bg:var(--pl);--kpi-fg:var(--pd)}.admin-kpi--teal{--kpi-accent:var(--t);--kpi-bg:var(--tl);--kpi-fg:var(--td)}.admin-kpi--amber{--kpi-accent:var(--a);--kpi-bg:var(--al);--kpi-fg:#633806}.admin-kpi--red{--kpi-accent:var(--r);--kpi-bg:var(--rl);--kpi-fg:var(--rd)}.admin-kpi--neutral{--kpi-accent:var(--tx3);--kpi-bg:var(--bg2);--kpi-fg:var(--tx2)}.admin-kpi--highlight{background:color-mix(in srgb,var(--kpi-bg) 62%,var(--bg));border-color:color-mix(in srgb,var(--kpi-accent) 22%,var(--bd))}.admin-kpi-top{gap:10px;margin-bottom:10px}.admin-kpi-icon,.admin-kpi-top{display:flex;align-items:center}.admin-kpi-icon{width:36px;height:36px;border-radius:10px;justify-content:center;background:var(--kpi-bg);color:var(--kpi-fg);flex-shrink:0}.admin-kpi-label{font-size:12px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;line-height:1.3}.admin-kpi-value{font-size:clamp(28px,3vw,36px);font-weight:700;line-height:1.05;color:var(--tx);letter-spacing:-.02em}.admin-kpi-sub{margin-top:6px;font-size:13px;color:var(--tx2);line-height:1.4}.admin-kpi-progress{margin-top:12px;display:flex;align-items:center;gap:10px}.admin-kpi-progress-track{flex:1 1;height:6px;background:var(--bg3);border-radius:99px;overflow:hidden}.admin-kpi-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--kpi-accent),color-mix(in srgb,var(--kpi-accent) 70%,white));transition:width .4s var(--ease-out)}.admin-kpi-progress-label{font-size:11px;font-weight:600;color:var(--kpi-fg);white-space:nowrap}.admin-dash-attention{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 16px;border-radius:var(--r12);border:1px solid color-mix(in srgb,var(--r) 25%,var(--bd));background:linear-gradient(90deg,var(--rl) 0,var(--bg) 55%)}.admin-dash-attention-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--rd)}.admin-dash-attention-head svg{flex-shrink:0}.admin-dash-attention-chips{display:flex;flex-wrap:wrap;gap:8px}.admin-dash-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;font-size:12px;border:1px solid var(--bd);background:var(--bg);transition:transform .15s,box-shadow .15s}.admin-dash-chip:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(34,28,72,.08)}.admin-dash-chip strong{font-size:14px;font-weight:700}.admin-dash-chip--amber{border-color:color-mix(in srgb,var(--a) 40%,var(--bd));background:var(--al);color:#633806}.admin-dash-chip--red{border-color:color-mix(in srgb,var(--r) 35%,var(--bd));background:var(--rl);color:var(--rd)}.admin-dash-chip--purple{border-color:color-mix(in srgb,var(--p) 35%,var(--bd));background:var(--pl);color:var(--pd)}.admin-dash-bento{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:auto auto;grid-gap:14px;gap:14px}.admin-dash-panel--chart{grid-row:span 2}.admin-dash-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.admin-dash-metrics .admin-kpi{padding:14px 16px}.admin-dash-metrics .admin-kpi-value{font-size:24px}.admin-dash-metrics .admin-kpi-top{margin-bottom:6px}.admin-dash-metrics .admin-kpi-icon{display:none}.admin-dash-rankings{margin-top:0}.admin-dash-rank-card .card-title{font-size:16px}.admin-dash-rank-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:.5px solid var(--bd)}.admin-dash-rank-row:last-of-type{border-bottom:none}.admin-dash-rank-pos{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--tx3);background:var(--bg2);flex-shrink:0}.admin-dash-rank-pos--1{background:#fff4d6;color:#9a6700}.admin-dash-rank-pos--2{background:#eef0f8;color:#5c6370}.admin-dash-rank-pos--3{background:#fde8dc;color:#9a4d12}.admin-dash-rank-body{flex:1 1;min-width:0}.admin-dash-rank-bar{margin-top:6px;height:5px;background:var(--bg3);border-radius:99px;overflow:hidden}.admin-dash-rank-bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--t),var(--p));transition:width .35s var(--ease-out)}.admin-dash-rank-bar--warn .admin-dash-rank-bar-fill{background:linear-gradient(90deg,var(--a),var(--r))}.admin-dash-rank-value{font-size:15px;font-weight:700;color:var(--td);flex-shrink:0}.admin-dash-rank-avatar{width:36px;height:36px;font-size:12px}.admin-dash-rank-link{margin-top:12px}.admin-week-chart-bar--done{background:var(--t)!important}.admin-week-chart-bar--planned{background:var(--p)!important}.admin-dash-calendar,.admin-dash-low-balance{margin-top:14px}.admin-dash-low-balance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:10px;gap:10px}.admin-dash-low-balance-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:var(--r12);border:1px solid var(--bd);background:linear-gradient(160deg,var(--bg) 0,var(--bg2) 100%)}.admin-dash-low-balance-name{font-size:14px;font-weight:600;color:var(--tx);line-height:1.3}.admin-dash-low-balance-action{align-self:flex-start;font-size:11px!important}@media (max-width:1100px){.admin-dash-hero{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-dash-bento{grid-template-columns:1fr}.admin-dash-panel--chart{grid-row:auto}.admin-dash-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.admin-dash-hero,.admin-dash-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-dash-attention{flex-direction:column;align-items:flex-start}.admin-dash-hero .admin-kpi{padding:14px 12px}.admin-dash-metrics .admin-kpi{padding:12px 10px}.admin-dash-hero .admin-kpi-value{font-size:24px;font-weight:800}.admin-dash-metrics .admin-kpi-value{font-size:20px;font-weight:800}.admin-dash-hero .admin-kpi-label,.admin-dash-metrics .admin-kpi-label{font-size:11px;line-height:1.25}}@media (min-width:400px) and (max-width:640px){.admin-dash-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}.tls-card-wrap{overflow:visible;padding:20px 22px 22px;margin-bottom:4px}.tls-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.tls-card-title{margin:0;font-size:18px;font-weight:700;letter-spacing:-.02em;color:var(--tx);line-height:1.2}.tls-card-month{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;color:var(--td);background:var(--tl);border:1px solid color-mix(in srgb,var(--t) 25%,var(--bd));white-space:nowrap;flex-shrink:0}.tls-card-wrap--prominent{box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--t) 14%,var(--bd))}.tls-card-wrap--prominent .tls-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--tl) 55%,var(--bg)) 0,var(--bg2) 100%);border-color:color-mix(in srgb,var(--t) 18%,var(--bd));padding:14px;gap:14px}.tls-card-wrap--prominent .tls-hero>.tls-kpi{min-height:136px;padding:18px 20px}.tls-card-wrap--prominent .tls-hero>.tls-kpi .tls-kpi-value{font-size:clamp(30px,3.2vw,40px)}.tls-dash{display:flex;flex-direction:column;gap:14px}.tls-hero{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;align-items:stretch;padding:12px;border-radius:var(--r12);background:var(--bg2);border:1px solid var(--bd)}@media (min-width:1280px){.tls-hero{grid-template-columns:repeat(4,minmax(0,1fr))}}.tls-kpi{background:color-mix(in srgb,var(--tls-bg,var(--bg2)) 48%,var(--bg));border:1px solid color-mix(in srgb,var(--tls-accent,var(--bd)) 14%,var(--bd));border-radius:var(--r12);padding:16px 18px;height:100%;position:relative;overflow:visible;display:flex;flex-direction:column;gap:6px;min-width:0}.tls-kpi--teal{--tls-accent:var(--t);--tls-bg:var(--tl);--tls-fg:var(--td)}.tls-kpi--purple{--tls-accent:var(--p);--tls-bg:var(--pl);--tls-fg:var(--pd)}.tls-kpi--amber{--tls-accent:var(--a);--tls-bg:var(--al);--tls-fg:#633806}.tls-kpi--red{--tls-accent:var(--r);--tls-bg:var(--rl);--tls-fg:var(--rd)}.tls-kpi--neutral{--tls-accent:var(--tx3);--tls-bg:var(--bg2);--tls-fg:var(--tx2)}.tls-kpi--highlight{background:color-mix(in srgb,var(--tls-bg) 62%,var(--bg));border-color:color-mix(in srgb,var(--tls-accent) 22%,var(--bd))}.tls-kpi--compact{padding:12px 14px}.tls-kpi--compact .tls-kpi-icon{width:30px;height:30px}.tls-kpi--compact .tls-kpi-value{font-size:22px}.tls-hero>.tls-kpi{min-height:128px;box-shadow:var(--shadow-sm)}.tls-hero>.tls-kpi .tls-kpi-top{flex-direction:row;align-items:flex-start;margin-bottom:0;padding-bottom:0;gap:10px}.tls-kpi-top-row{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:auto;flex-shrink:0}.tls-hero>.tls-kpi .tls-kpi-label{text-transform:none;font-size:13px;letter-spacing:0;font-weight:600;color:var(--tx2);line-height:1.35;flex:1 1;min-width:0;padding-top:6px}.tls-hero>.tls-kpi .tls-kpi-value{font-size:clamp(28px,3vw,36px);margin-top:2px}.tls-hero>.tls-kpi .tls-kpi-sub{font-size:13px;margin-top:2px}.tls-kpi-top{gap:8px;margin-bottom:6px;flex-wrap:wrap;width:100%}.tls-kpi-icon,.tls-kpi-top{display:flex;align-items:center}.tls-kpi-icon{width:34px;height:34px;border-radius:10px;justify-content:center;background:var(--tls-bg);color:var(--tls-fg);flex-shrink:0}.tls-kpi-label{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;line-height:1.3;flex:1 1;min-width:0}.tls-kpi-value{font-size:clamp(26px,2.8vw,34px);font-weight:700;line-height:1.05;color:var(--tx);letter-spacing:-.02em}.tls-kpi-sub{margin-top:5px;font-size:12px;color:var(--tx2);line-height:1.4}.tls-kpi-trend-label{margin-top:4px;font-size:11px;color:var(--tx3)}.tls-trend{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}.tls-trend--up{color:var(--td);background:var(--tl)}.tls-trend--down{color:var(--rd);background:var(--rl)}.tls-bento{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-gap:10px;gap:10px;align-items:start}.tls-panel{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r12);padding:16px 18px;box-shadow:none;min-width:0}.tls-panel--chart{grid-column:1;grid-row:1/span 2}.tls-panel-title{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--tx);letter-spacing:-.01em}.tls-panel--formats .format-breakdown-sub{text-align:left;margin-top:8px}.tls-metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px}.tls-week-chart-bar--done{background:var(--t)!important}.tls-week-chart-bar--planned{background:color-mix(in srgb,var(--p) 75%,var(--t))!important}.tls-compact-chart{margin-top:4px}.tls-dash--compact .tls-hero{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:1024px){.tls-dash--compact .tls-hero{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1100px){.tls-bento{grid-template-columns:1fr}.tls-panel--chart{grid-row:auto;grid-column:auto}.tls-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.tls-dash--compact .tls-hero,.tls-hero{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px}.tls-card-wrap--prominent .tls-hero{padding:12px;gap:10px}.tls-card-wrap--prominent .tls-hero>.tls-kpi,.tls-hero>.tls-kpi{min-height:auto;padding:14px 12px}.tls-card-wrap--prominent .tls-hero>.tls-kpi .tls-kpi-value,.tls-hero>.tls-kpi .tls-kpi-value{font-size:clamp(22px,6.5vw,30px)}.tls-hero>.tls-kpi .tls-kpi-label{font-size:11px;line-height:1.25}.tls-hero>.tls-kpi .tls-kpi-sub{font-size:11px;line-height:1.3}.tls-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tls-metrics .tls-kpi{padding:12px 10px}}@media (max-width:520px){.tls-card-wrap{padding:16px 14px 18px}.tls-card-head{margin-bottom:12px}.tls-card-title{font-size:16px}.tls-hero{padding:10px;gap:10px}.tls-hero>.tls-kpi{min-height:auto}.tls-kpi{padding:14px 16px}.tls-metrics .tls-kpi{padding:12px 10px}.tls-hero>.tls-kpi .tls-kpi-value,.tls-kpi-value{font-size:24px}.tls-hero>.tls-kpi .tls-kpi-label,.tls-kpi-label{font-size:12px;line-height:1.3}.teacher-week-chart-bars{height:88px}.teacher-week-chart-track{height:60px}}.stc-panel{margin-top:8px;padding-top:16px;border-top:1px solid var(--bd)}.stc-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.stc-panel-head-actions{gap:8px}.stc-complete-banner,.stc-panel-head-actions{display:flex;flex-wrap:wrap;align-items:center}.stc-complete-banner{justify-content:space-between;gap:12px;margin-bottom:14px;padding:14px 16px;border-radius:12px;border:1px solid color-mix(in srgb,var(--gd,#16a34a) 35%,var(--bd));background:color-mix(in srgb,var(--gl,#dcfce7) 55%,var(--bg))}.stc-complete-banner strong{display:block;font-size:14px;color:var(--tx)}.stc-complete-banner p{margin:4px 0 0;font-size:13px;color:var(--tx2)}.stc-history-main{display:flex;flex-direction:column;gap:2px;min-width:0}.stc-history-title{font-weight:600;color:var(--tx)}.stc-history-meta{font-size:12px;color:var(--tx3,var(--tx2))}.stc-panel-head h3{font-size:16px;font-weight:600;margin:0}.stc-panel-sub{font-size:13px;color:var(--tx2);margin:4px 0 0}.stc-active-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r12);padding:14px 16px;margin-bottom:14px}.stc-active-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.stc-active-title{font-size:15px;font-weight:600;color:var(--tx)}.stc-active-meta{font-size:12px;color:var(--tx3);margin-top:4px}.stc-active-actions{margin-top:10px}.stc-slots{display:flex;flex-direction:column;gap:4px;max-height:340px;overflow-y:auto}.stc-slot{border:1px solid var(--bd);border-radius:var(--r8);padding:10px 12px;background:var(--bg)}.stc-slot--manual{border-style:dashed;border-color:color-mix(in srgb,var(--t) 45%,var(--bd))}.stc-insert-gap{display:flex;justify-content:center;min-height:10px;padding:2px 0}.stc-insert-gap.is-open{padding:8px 0}.stc-insert-plus{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--tx3,var(--tx2));font:inherit;font-size:12px;font-weight:600;cursor:pointer;opacity:.7;padding:2px 10px;border-radius:999px;transition:opacity .15s,background .15s,color .15s}.stc-insert-plus>span:first-child{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px dashed;font-size:14px;line-height:1}.stc-insert-plus-label{display:inline}.stc-insert-gap.is-open .stc-insert-plus,.stc-insert-plus:focus-visible,.stc-slots:hover .stc-insert-plus{opacity:1}.stc-insert-plus:hover{color:var(--t);background:color-mix(in srgb,var(--t) 10%,transparent)}.stc-insert-form{display:flex;flex-wrap:wrap;gap:8px;width:100%;align-items:center;padding:8px 10px;border-radius:10px;border:1px dashed color-mix(in srgb,var(--t) 50%,var(--bd));background:color-mix(in srgb,var(--t) 6%,var(--bg))}.stc-insert-form .input{flex:1 1 180px;min-width:0}.stc-slot--completed{background:color-mix(in srgb,var(--gl) 40%,var(--bg))}.stc-slot-main{display:flex;align-items:flex-start;gap:10px}.stc-slot-seq{width:24px;height:24px;border-radius:8px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--tx3);flex-shrink:0}.stc-slot-body{flex:1 1;min-width:0}.stc-slot-topic{font-size:14px;font-weight:600;color:var(--tx);line-height:1.35}.stc-slot-meta{font-size:12px;color:var(--tx3);margin-top:3px}.stc-slot-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-left:34px}.stc-history{margin-top:16px}.stc-history h4{font-size:13px;font-weight:600;margin:0 0 8px;color:var(--tx2)}.stc-history-row{gap:10px;font-size:13px;padding:8px 0;color:var(--tx2)}.stc-history-row,.stc-wizard-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--bd)}.stc-wizard-head{align-items:center;gap:12px;padding:16px 18px}.stc-wizard-head h3{margin:0;font-size:18px}.stc-wizard-tabs{display:flex;gap:8px;margin-bottom:12px}.stc-wizard-programs{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto}.stc-program-pick{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;width:100%;padding:12px 14px;border:1px solid var(--bd);border-radius:var(--r8);background:var(--bg);transition:border-color .15s,background .15s}.stc-program-pick:hover{border-color:color-mix(in srgb,var(--t) 30%,var(--bd));background:var(--bg2)}.stc-program-pick-title{font-size:14px;font-weight:600;color:var(--tx)}.stc-program-pick-sub{font-size:12px;color:var(--tx3)}.stc-wizard-hint{font-size:13px;color:var(--tx2);margin:12px 0}.stc-start-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.stc-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--tx2)}.stc-event-topic{margin-top:14px;padding:12px 14px;border-radius:var(--r8);background:color-mix(in srgb,var(--p) 6%,var(--bg));border:1px solid color-mix(in srgb,var(--p) 14%,var(--bd))}.stc-event-topic-program{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--pd);margin-bottom:8px}.stc-panel-program-name{font-size:15px;font-weight:600;color:var(--tx);margin:2px 0 0}.stc-summary-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:4px}.stc-summary-program{font-size:18px;font-weight:700;margin:0;color:var(--tx);line-height:1.25}.stc-summary--compact .stc-summary-program{font-size:16px}.stc-summary-meta{font-size:13px;color:var(--tx2);margin:4px 0 0}.stc-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.stc-summary-topics{margin-top:14px}.stc-summary-topics-label{font-size:12px;font-weight:700;color:var(--tx2);margin-bottom:8px}.stc-summary-topic-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.stc-summary-topic-row{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:var(--r8);background:var(--bg2)}.stc-summary-topic-num{width:22px;height:22px;border-radius:6px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--tx3);flex-shrink:0}.stc-summary-topic-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.stc-summary-topic-title{font-size:13px;font-weight:600;color:var(--tx);line-height:1.35}.stc-summary-topic-sub{font-size:11px;color:var(--tx3)}.stc-summary-link{margin-top:12px;text-decoration:none;justify-content:center}.stc-summary-muted{font-size:13px;color:var(--tx3);margin:0}.stc-event-topic-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.stc-event-topic-head h4{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3)}.stc-event-topic-title{font-size:15px;font-weight:600;color:var(--tx);margin:0;line-height:1.35}.stc-event-topic-module{font-size:12px;color:var(--tx3);margin:4px 0 0}.stc-lib-active-wrap{margin-bottom:20px}.stc-lib-active-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.stc-lib-active-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--pd);margin-bottom:4px}.stc-lib-active-banner h3{font-size:20px;font-weight:700;margin:0 0 4px}.stc-lib-active-banner p{font-size:13px;color:var(--tx2);margin:0}.stc-lib-section-title{font-size:18px;font-weight:600;margin:0 0 4px}.stc-lib-section-sub{font-size:13px;color:var(--tx2);margin:0 0 14px}.stc-lib-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:10px;gap:10px}.stc-lib-history-card{text-align:left;padding:14px 16px;border:1px solid var(--bd);border-radius:var(--r12);background:var(--bg);transition:border-color .15s,box-shadow .15s}.stc-lib-history-card:hover{border-color:color-mix(in srgb,var(--p) 22%,var(--bd));box-shadow:var(--shadow-sm)}.stc-lib-history-title{font-size:14px;font-weight:600;color:var(--tx)}.stc-lib-history-meta{font-size:12px;color:var(--tx3);margin-top:4px}.stc-lib-history-date{font-size:11px;color:var(--tx3);margin-top:6px}.stc-lib-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:12px 0}.stc-lib-hero h3{margin:0 0 4px;font-size:22px}.stc-lib-hero-sub{font-size:13px;color:var(--tx2);margin:0}.stc-lib-modules{display:flex;flex-direction:column;gap:14px;margin-top:18px}.stc-lib-module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.stc-lib-module-sub{font-size:12px;color:var(--tx3);margin:4px 0 0}.stc-lib-module--done{border-color:color-mix(in srgb,var(--gd) 20%,var(--bd))}.stc-lib-lessons{display:flex;flex-direction:column;gap:8px}.stc-lib-lesson{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--r8);background:var(--bg2)}.stc-lib-lesson--completed{background:color-mix(in srgb,var(--gl) 50%,var(--bg2))}.stc-lib-lesson-num{width:26px;height:26px;border-radius:8px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--tx3);flex-shrink:0}.stc-lib-lesson-body{flex:1 1;min-width:0}.stc-lib-lesson-topic{font-size:14px;font-weight:600;color:var(--tx)}.stc-lib-lesson-type{font-size:11px;color:var(--pd);margin-top:2px;font-weight:600}.stc-lib-lesson-activities{font-size:12px;color:var(--tx2);margin:6px 0 0;line-height:1.4}@media (max-width:768px){.stc-start-grid{grid-template-columns:1fr}.stc-slot-actions{padding-left:0}.stc-slot-actions .btn{flex:1 1;justify-content:center}}.meeting-links-hint{font-size:13px;color:var(--tx2);margin:0 0 14px;line-height:1.45}.notification-setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px;background:var(--bg2);border-radius:var(--r8);margin-bottom:8px}.notification-setting-label{font-size:13px;color:var(--tx)}.notification-setting-sub{font-size:11px;color:var(--tx2);margin-top:2px;line-height:1.4}.meeting-links-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:13px;color:var(--tx2)}.meeting-links-anchor{scroll-margin-top:20px}.meeting-links-card--incomplete{border-color:color-mix(in srgb,var(--o,#e67e22) 35%,var(--bd));box-shadow:0 0 0 1px color-mix(in srgb,var(--o,#e67e22) 12%,transparent)}.meeting-links-inline-alert{margin-bottom:14px;padding:10px 12px;border-radius:var(--r8);font-size:13px;line-height:1.45;color:var(--od,#b45309);background:color-mix(in srgb,var(--o,#e67e22) 12%,var(--bg));border:1px solid color-mix(in srgb,var(--o,#e67e22) 25%,transparent)}.meeting-links-field--missing .input{border-color:color-mix(in srgb,var(--o,#e67e22) 55%,var(--bd))}.meeting-links-field--missing>span:after{content:" · потрібно";color:var(--od,#b45309);font-weight:600}.meeting-links-setup-alert{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:12px 44px 12px 14px;border-radius:12px;background:color-mix(in srgb,var(--o,#e67e22) 10%,var(--bg));color:var(--od,#b45309);font-size:14px;border:.5px solid color-mix(in srgb,var(--o,#e67e22) 28%,transparent)}.meeting-links-setup-alert-close{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--tx3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}.meeting-links-setup-alert-close:hover{background:color-mix(in srgb,var(--tx) 8%,transparent);color:var(--tx)}.meeting-links-setup-alert-close svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}.meeting-links-setup-alert-text{display:inline-flex;align-items:flex-start;gap:10px;line-height:1.4}.meeting-links-setup-alert-text svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0;margin-top:2px}.meeting-links-setup-alert-text strong{display:block;font-weight:600;color:var(--tx);margin-bottom:2px}.meeting-links-setup-alert-sub{display:block;font-size:13px;color:var(--od,#b45309)}.ml-checklist{margin-bottom:16px;padding:12px 14px;border-radius:var(--r10);background:var(--bg2);border:1px solid var(--bd)}.ml-checklist--complete{border-color:color-mix(in srgb,var(--t) 25%,var(--bd));background:color-mix(in srgb,var(--tl) 55%,var(--bg))}.ml-checklist-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ml-checklist-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--tx2)}.ml-checklist-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}.ml-checklist-badge--warn{color:var(--od,#b45309);background:color-mix(in srgb,var(--o,#e67e22) 16%,var(--bg))}.ml-checklist-badge--ok{color:var(--td,#0f766e);background:color-mix(in srgb,var(--t) 14%,var(--bg))}.ml-checklist-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ml-checklist-item{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--tx2)}.ml-checklist-item strong{display:block;color:var(--tx);font-weight:600;margin-bottom:1px}.ml-checklist-item--done{color:var(--tx2)}.ml-checklist-item--done strong{color:var(--td,#0f766e)}.ml-check{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.ml-check svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.5}.ml-check--pending{color:var(--od,#b45309);background:color-mix(in srgb,var(--o,#e67e22) 14%,var(--bg));border:1.5px dashed color-mix(in srgb,var(--o,#e67e22) 45%,transparent)}.ml-check--pending svg{stroke-width:2}.ml-check--done{color:#fff;background:var(--t)}.lesson-alert{position:relative;margin:-12px -12px 18px;padding:18px 18px 18px 20px;border-radius:var(--r12);border:1px solid color-mix(in srgb,var(--p) 22%,var(--bd));background:linear-gradient(135deg,color-mix(in srgb,var(--p) 12%,var(--bg)) 0,color-mix(in srgb,var(--pl) 80%,var(--bg)) 100%);box-shadow:var(--shadow-md)}.lesson-alert--active{border-color:color-mix(in srgb,var(--t) 35%,var(--bd));background:linear-gradient(135deg,color-mix(in srgb,var(--t) 14%,var(--bg)) 0,color-mix(in srgb,var(--tl) 85%,var(--bg)) 100%)}.lesson-alert-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.75);color:var(--tx2);display:flex;align-items:center;justify-content:center}.lesson-alert-close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.lesson-alert-body{padding-right:36px}.lesson-alert-badge-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.lesson-alert-time{font-size:13px;color:var(--tx2);font-weight:600}.lesson-alert-title{font-size:clamp(20px,3vw,26px);font-weight:700;line-height:1.25;letter-spacing:-.02em;color:var(--tx);margin:0 0 6px}.lesson-alert-sub{font-size:14px;color:var(--tx2);margin:0 0 14px}.lesson-alert-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.lesson-alert-btn{min-width:180px;justify-content:center}.lesson-alert-missing{font-size:12px;color:var(--tx3)}.miro-modal-overlay{position:fixed;inset:0;z-index:500;background:rgba(20,19,42,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:16px}.miro-modal{width:min(1200px,100%);height:min(86vh,900px);background:var(--bg);border:1px solid var(--bd);border-radius:var(--r14);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.miro-modal-body{flex:1 1;min-height:0;padding:0 12px 12px}.miro-embed-frame{width:100%;height:100%;min-height:420px;border:1px solid var(--bd);border-radius:var(--r8);background:var(--bg2)}.miro-modal-empty{padding:24px;text-align:center;color:var(--tx3)}@media (max-width:768px){.lesson-alert{margin:-8px -8px 14px;padding:16px 14px}.lesson-alert-actions{flex-direction:column;align-items:stretch}.lesson-alert-btn{width:100%;min-width:0}.miro-modal{height:92vh;border-radius:var(--r12)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.user-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;flex-shrink:0;font-weight:600;line-height:1;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tx) 8%,transparent)}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.user-avatar--xs{width:24px;height:24px;font-size:10px}.user-avatar--sm{width:32px;height:32px;font-size:11px}.user-avatar--md{width:40px;height:40px;font-size:13px}.user-avatar--lg{width:48px;height:48px;font-size:15px}.user-avatar--xl{width:72px;height:72px;font-size:22px}.user-avatar--teacher{background:var(--tl);color:var(--td)}.user-avatar--student{background:var(--pl);color:var(--p)}.user-avatar--admin{background:color-mix(in srgb,var(--tx2) 14%,var(--bg));color:var(--tx)}.user-avatar--neutral{background:var(--bg3);color:var(--tx2)}.user-avatar--photo{background:var(--bg2)}.person-inline{display:inline-flex;align-items:center;gap:10px;min-width:0}.person-inline-text{display:flex;flex-direction:column;gap:2px;min-width:0}.person-inline-name{font-size:14px;font-weight:600;color:var(--tx);line-height:1.25}.person-inline-sub{font-size:12px;color:var(--tx2);line-height:1.35}.person-row{display:flex;align-items:center;gap:14px;width:100%;text-align:left}.person-row--button{border:none;background:none;cursor:pointer;padding:0}.person-row-body{flex:1 1;min-width:0}.person-row-title-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.person-row-title{font-size:15px;font-weight:600;color:var(--tx);line-height:1.3}.person-row-sub{margin-top:4px;font-size:12px;color:var(--tx2);line-height:1.4}.person-row-about-preview{margin-top:6px;font-size:12px;color:var(--tx2);line-height:1.45}.profile-avatar-editor{display:flex;align-items:center;gap:20px;padding:18px 20px;border-radius:var(--r12);background:var(--bg2);border:1px solid var(--bd)}.profile-avatar-editor-ring{position:relative;flex-shrink:0;width:88px;height:88px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tx) 10%,transparent)}.profile-avatar-editor-ring--teacher{background:var(--tl);color:var(--td)}.profile-avatar-editor-ring--student{background:var(--pl);color:var(--p)}.profile-avatar-editor-photo{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.profile-avatar-editor-initials{font-size:28px;font-weight:600;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.profile-avatar-editor-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:10px}.profile-avatar-editor-name{font-size:16px;font-weight:600;color:var(--tx);line-height:1.3}.profile-avatar-editor-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px}.profile-avatar-editor-action{flex:1 1 140px;min-width:0;max-width:180px;justify-content:center}.profile-avatar-editor-error{font-size:12px;color:var(--rd);margin:0}.avatar-crop-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(20,19,42,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.avatar-crop-modal{width:min(720px,100%);max-height:min(92vh,860px);overflow:auto;border-radius:var(--r16);background:var(--bg);border:1px solid var(--bd);box-shadow:var(--shadow-lg)}.avatar-crop-body{padding:0 20px 20px;display:flex;flex-direction:column;gap:18px}.avatar-crop-workspace{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:20px;gap:20px;align-items:start}.avatar-crop-frame{position:relative;width:280px;height:280px;max-width:100%;flex-shrink:0;margin:0 auto;border-radius:var(--r12);overflow:hidden;background:#1a1930;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:2px solid color-mix(in srgb,var(--tx) 12%,var(--bd));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.avatar-crop-frame:active{cursor:-webkit-grabbing;cursor:grabbing}.avatar-crop-image{top:0;left:0;z-index:1;max-width:none}.avatar-crop-grid,.avatar-crop-image{position:absolute;pointer-events:none}.avatar-crop-grid{inset:0;z-index:2;background:linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 0) calc(33.33% - .5px) 0 /33.33% 100% no-repeat,linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 0) calc(66.66% - .5px) 0 /33.33% 100% no-repeat,linear-gradient(180deg,rgba(255,255,255,.22) 1px,transparent 0) 0 calc(33.33% - .5px) /100% 33.33% no-repeat,linear-gradient(180deg,rgba(255,255,255,.22) 1px,transparent 0) 0 calc(66.66% - .5px) /100% 33.33% no-repeat;opacity:.55}.avatar-crop-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.8);font-size:14px}.avatar-crop-previews{display:flex;flex-direction:column;gap:10px;min-width:120px}.avatar-crop-preview-label{font-size:12px;font-weight:600;color:var(--tx2)}.avatar-crop-preview-row{display:flex;align-items:center;gap:12px}.avatar-crop-preview-inner{position:relative;overflow:hidden;background:var(--bg3);border:1px solid var(--bd)}.avatar-crop-preview-inner--round{border-radius:50%}.avatar-crop-preview--lg .avatar-crop-preview-inner{width:72px;height:72px}.avatar-crop-preview--sm .avatar-crop-preview-inner{width:36px;height:36px}.avatar-crop-preview-inner img{position:absolute;top:0;left:0;max-width:none}.avatar-crop-controls{display:flex;flex-direction:column;gap:8px}.avatar-crop-slider-label{font-size:13px;font-weight:600;color:var(--tx)}.avatar-crop-slider{width:100%;accent-color:var(--t)}.avatar-crop-slider-hints{display:flex;justify-content:space-between;font-size:11px;color:var(--tx3)}.avatar-crop-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}@media (max-width:640px){.avatar-crop-workspace{grid-template-columns:1fr}.avatar-crop-previews{order:-1}.profile-avatar-editor{flex-direction:column;align-items:center;text-align:center}.profile-avatar-editor-body{align-items:center;width:100%}.profile-avatar-editor-actions{justify-content:center;width:100%;max-width:360px}.profile-avatar-editor-action{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 4px);max-width:none}}.teacher-about-block{margin-top:12px;padding:12px 14px;border-radius:var(--r10);background:color-mix(in srgb,var(--tl) 35%,var(--bg));border:1px solid color-mix(in srgb,var(--t) 18%,var(--bd))}.teacher-about-block--compact{margin-top:8px;padding:10px 12px}.teacher-about-block-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tx2);margin-bottom:6px}.teacher-about-block-text{margin:0;font-size:13px;line-height:1.55;color:var(--tx);white-space:pre-wrap}.lesson-alert-person{margin:10px 0 4px}.cal-participant-chip--with-avatar{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px}.optimate-modal-profile-head{display:flex;align-items:center;gap:16px;padding:0 20px 16px;border-bottom:1px solid var(--bd)}.optimate-modal .app-modal-header:has(+.optimate-modal-profile-head) h2{font-size:13px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em}.optimate-modal-profile-head-text{flex:1 1;min-width:0}.optimate-modal-profile-name{font-size:18px;font-weight:700;color:var(--tx);margin-bottom:4px}.optimate-modal--entity-unified .optimate-modal-entity-hero{padding:18px 20px 0;border-bottom:1px solid var(--bd);flex-shrink:0}.optimate-modal-entity-hero-row{display:flex;align-items:flex-start;gap:14px;min-width:0;padding-bottom:16px}.optimate-modal-entity-hero-text{flex:1 1;min-width:0}.optimate-modal-entity-hero-label{display:block;font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.optimate-modal-entity-hero-meta{display:block;font-size:11px;color:var(--tx3);margin-bottom:4px;line-height:1.35}.optimate-modal-entity-hero-name{font-size:20px;font-weight:700;color:var(--tx);letter-spacing:-.02em;line-height:1.25;word-break:break-word}.optimate-modal-entity-hero-text .teacher-about-block{margin-top:6px;font-size:13px;color:var(--tx2);line-height:1.45}.optimate-modal-entity-hero-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.optimate-entity-tabs{display:flex;gap:6px;padding:0 20px 12px;border-bottom:1px solid var(--bd)}.optimate-entity-tab{padding:8px 14px;border:1px solid transparent;border-radius:var(--r1);background:transparent;color:var(--tx2);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.optimate-entity-tab--active,.optimate-entity-tab:hover{color:var(--tx);background:var(--bg2)}.optimate-entity-tab--active{border-color:var(--bd)}.teacher-salary-embedded{padding:4px 0 8px}.teacher-salary-embedded .teacher-salary-filters,.teacher-salary-embedded .teacher-salary-stats{margin-bottom:12px}.teacher-salary-embedded .teacher-salary-note{margin:12px 0 0;font-size:12px}.optimate-student-settings{margin:0 0 16px;padding:14px 0 0;border-top:1px solid var(--bd)}.optimate-student-settings .stc-panel{margin-top:0;padding-top:0;border-top:none}.optimate-student-settings .stc-panel+.stc-panel{margin-top:16px;padding-top:16px;border-top:1px solid var(--bd)}.optimate-student-settings .stc-links-panel{margin-top:0}.sidebar-avatar-slot{flex-shrink:0}.person-row-meta{display:flex;align-items:center;gap:16px;flex-shrink:0}.admin-teacher-list .person-row{padding:4px 0}.faq-list{display:flex;flex-direction:column;gap:8px}.faq-item{border:1px solid var(--bd);border-radius:var(--r12);background:var(--bg);overflow:hidden}.faq-item--open{border-color:color-mix(in srgb,var(--accent,var(--p)) 22%,var(--bd));box-shadow:0 4px 14px rgba(34,28,72,.06)}.faq-item-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:none;background:none;text-align:left;cursor:pointer;font:inherit;color:var(--tx)}.faq-item-trigger:hover{background:var(--bg2)}.faq-item-question{font-size:15px;font-weight:600;line-height:1.35}.faq-item-chevron{width:10px;height:10px;flex-shrink:0;border-right:2px solid var(--tx3);border-bottom:2px solid var(--tx3);transform:rotate(45deg);transition:transform .15s;margin-top:-4px}.faq-item--open .faq-item-chevron{transform:rotate(-135deg);margin-top:4px}.faq-item-panel{padding:0 16px 16px;border-top:1px solid color-mix(in srgb,var(--bd) 70%,transparent)}.faq-item-panel .md-view{padding-top:12px;font-size:14px}.faq-empty{margin:0;color:var(--tx2);font-size:14px}.faq-support-card{margin-bottom:14px}.faq-support-contact-title{margin:0 0 8px;font-size:16px;font-weight:700;color:var(--tx)}.faq-support-contact-text{margin:0 0 14px;font-size:14px;line-height:1.5;color:var(--tx2)}.faq-admin-toolbar{margin-bottom:14px}.faq-admin-list{display:flex;flex-direction:column;gap:10px}.faq-admin-row--hidden{opacity:.72}.faq-admin-row-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 12px;margin-bottom:8px}.faq-admin-row-title{font-size:15px;font-weight:600;color:var(--tx);line-height:1.35;flex:1 1;min-width:0}.faq-admin-row-badges{display:flex;flex-wrap:wrap;gap:6px}.faq-admin-row-preview{margin:0 0 12px;font-size:13px;line-height:1.45;color:var(--tx2)}.faq-admin-row-actions{display:flex;flex-wrap:wrap;gap:8px}.faq-admin-editor-card{margin-bottom:12px}.faq-admin-form{display:flex;flex-direction:column;gap:14px}.faq-admin-form-title{font-size:15px;font-weight:700;color:var(--tx)}.faq-admin-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--tx2)}.faq-admin-field--inline{flex:1 1;min-width:140px}.faq-admin-form-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}.faq-admin-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--tx);padding-bottom:8px}.faq-admin-form-actions{display:flex;flex-wrap:wrap;gap:8px}@media (max-width:768px){.faq-admin-row-actions .btn{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 4px);justify-content:center}}.teacher-student-actions{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.teacher-student-action-btn{display:inline-flex;align-items:center;gap:4px;position:relative;white-space:nowrap;border-radius:999px;transition:border-color .15s,background .15s,box-shadow .15s}.teacher-student-action-btn.is-set{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--td) 45%,transparent)}.teacher-student-action-btn.is-set:after{content:"";position:absolute;top:2px;right:2px;width:6px;height:6px;border-radius:50%;background:var(--td);box-shadow:0 0 0 1px var(--bg)}.teacher-student-action-icon{font-size:12px;line-height:1}.teacher-student-action-btn--lesson.is-set{background:color-mix(in srgb,var(--a) 12%,var(--bg2))}.teacher-student-action-btn--program.is-set{background:color-mix(in srgb,var(--t) 12%,var(--bg2))}.teacher-student-action-btn--miro.is-set{background:color-mix(in srgb,var(--p) 12%,var(--bg2))}.teacher-student-action-btn--material.is-set{background:color-mix(in srgb,var(--amber,#d97706) 12%,var(--bg2))}.teacher-student-actions--compact .teacher-student-action-btn{padding:5px 9px;font-size:11px}.stc-wizard-hint--auto{color:var(--td);font-size:12px;margin:-4px 0 8px}.teacher-students-row-main{display:contents}.teacher-students-row-main.teacher-students-row--clickable{cursor:pointer;border:none;background:none;text-align:left;padding:0}.teacher-dash-student-row-wrap{display:flex;flex-direction:column;gap:8px;padding:10px 0;border-bottom:1px solid var(--bd)}.teacher-dash-student-row-wrap:last-child{border-bottom:none}.teacher-dash-student-row-wrap .teacher-student-actions{padding-left:52px}.stc-links-panel .stc-links-list{display:flex;flex-direction:column;gap:10px}.stc-link-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--bg2);border-radius:var(--r8)}.stc-link-type{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3);margin-bottom:4px}.stc-link-label{font-size:13px;font-weight:600;color:var(--tx)}.stc-link-url{font-size:12px;color:var(--tx2);word-break:break-all}.stc-custom-links{display:flex;flex-direction:column;gap:8px}.stc-link-modal{max-width:480px}.student-resources-wrap{display:flex;flex-direction:column;gap:14px}.student-resources-teacher{font-size:12px;font-weight:600;color:var(--tx2);margin-bottom:8px}.student-resources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px}.student-resource-card{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:var(--r8);border:1px solid var(--bd);background:var(--bg2);text-decoration:none;color:inherit;text-align:left;transition:border-color .15s,transform .12s}button.student-resource-card{cursor:pointer;width:100%}.student-resource-card:hover{border-color:color-mix(in srgb,var(--t) 40%,var(--bd));transform:translateY(-1px)}.student-resource-icon{font-size:20px;line-height:1}.student-resource-title{font-size:13px;font-weight:600;color:var(--tx)}.student-resource-sub{font-size:11px;color:var(--tx3)}.student-resource-card--lesson{border-left:3px solid var(--t)}.student-resource-card--miro{border-left:3px solid var(--p)}.student-resource-card--custom{border-left:3px solid var(--amber,#d97706)}.schedule-page-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;margin-bottom:14px;border-radius:var(--r2);border:1px solid color-mix(in srgb,var(--t) 22%,var(--bd));background:linear-gradient(135deg,color-mix(in srgb,var(--t) 8%,var(--bg)) 0,var(--bg2) 100%)}.schedule-page-hero-title{margin:0 0 4px;font-size:17px;font-weight:650;color:var(--tx)}.schedule-page-hero-text{margin:0;font-size:13px;color:var(--tx2);max-width:560px;line-height:1.45}.schedule-panel-overlay{position:fixed;inset:0;z-index:1200;background:rgba(10,14,24,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.schedule-panel{position:fixed;top:0;right:0;z-index:1201;width:min(480px,100vw);height:100vh;display:flex;flex-direction:column;background:var(--bg);border-left:1px solid var(--bd);box-shadow:-12px 0 40px rgba(0,0,0,.12)}.schedule-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 20px 12px;border-bottom:1px solid var(--bd)}.schedule-panel-title{margin:0;font-size:20px;font-weight:700}.schedule-panel-sub{margin:4px 0 0;font-size:12px;color:var(--tx3)}.schedule-panel-body{flex:1 1;overflow:auto;padding:16px 20px 24px;display:flex;flex-direction:column;gap:16px}.schedule-panel-section{display:flex;flex-direction:column;gap:8px}.schedule-panel-grid{display:grid;grid-template-columns:1fr 140px;grid-gap:12px;gap:12px}.schedule-panel-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--tx3)}.schedule-student-grid{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto}.schedule-student-card{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--bd);border-radius:var(--r1);background:var(--bg2);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.schedule-student-card:hover{border-color:color-mix(in srgb,var(--t) 35%,var(--bd));transform:translateY(-1px)}.schedule-student-card--active{border-color:var(--t);box-shadow:0 0 0 1px color-mix(in srgb,var(--t) 40%,transparent);background:color-mix(in srgb,var(--t) 6%,var(--bg2))}.schedule-student-card-body{flex:1 1;min-width:0}.schedule-student-card-name{font-size:13px;font-weight:600;color:var(--tx)}.schedule-student-card-sub{font-size:11px;color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-panel-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:8px}.schedule-cancel-modal{max-width:420px}.schedule-mark-modal{max-width:440px}.schedule-mark-options{display:flex;flex-direction:column;gap:10px}.schedule-mark-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:14px 16px;border-radius:var(--r2);border:1px solid var(--bd);background:var(--bg2);text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.schedule-mark-option:hover:not(:disabled){border-color:color-mix(in srgb,var(--t) 35%,var(--bd));background:color-mix(in srgb,var(--t) 6%,var(--bg2))}.schedule-mark-option--done{border-color:color-mix(in srgb,var(--gd) 40%,var(--bd))}.schedule-mark-option--missed{border-color:color-mix(in srgb,var(--rd) 35%,var(--bd))}.schedule-mark-option-title{font-size:14px;font-weight:650;color:var(--tx)}.schedule-mark-option-sub{font-size:12px;color:var(--tx2)}.schedule-mark-reasons-label{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--tx)}.schedule-mark-reasons{display:flex;flex-direction:column;gap:8px}.schedule-mark-reason{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--r1);border:1px solid var(--bd);background:var(--bg2);font-size:13px;color:var(--tx);cursor:pointer}.schedule-mark-reason:has(input:checked){border-color:color-mix(in srgb,var(--t) 40%,var(--bd));background:color-mix(in srgb,var(--t) 8%,var(--bg2))}.schedule-mark-reason input{margin-top:2px;flex-shrink:0}.cal-modal-actions--mark{flex-direction:column;align-items:stretch;gap:6px}.cal-modal-mark-hint{margin:0;font-size:12px;color:var(--tx3);line-height:1.4}.teacher-salary-page{display:flex;flex-direction:column;gap:14px}.teacher-salary-filters{margin-bottom:4px}.teacher-salary-presets-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}.teacher-salary-presets{display:flex;flex-wrap:wrap;gap:8px;flex:1 1}.teacher-salary-range-anchor{position:relative;flex-shrink:0}.teacher-salary-calendar-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:var(--r1);border:1px solid var(--bd);background:var(--bg2);color:var(--tx2);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.teacher-salary-calendar-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.teacher-salary-calendar-btn:hover{border-color:color-mix(in srgb,var(--t) 40%,var(--bd));color:var(--t)}.teacher-salary-calendar-btn--active{border-color:var(--t);color:var(--t);background:color-mix(in srgb,var(--t) 10%,var(--bg2))}.teacher-salary-range-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:40;min-width:min(340px,calc(100vw - 32px));background:var(--bg);box-shadow:0 12px 40px rgba(0,0,0,.12)}.teacher-salary-range,.teacher-salary-range-popover{padding:14px 16px;border-radius:var(--r2);border:1px solid var(--bd)}.teacher-salary-range{background:var(--bg2)}.teacher-salary-range--active{border-color:var(--t);box-shadow:0 0 0 1px color-mix(in srgb,var(--t) 35%,transparent)}.teacher-salary-range-label{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--tx3);margin-bottom:10px}.teacher-salary-range-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.teacher-salary-date-field{display:flex;flex-direction:column;gap:4px;min-width:148px}.teacher-salary-date-field span{font-size:11px;color:var(--tx3)}.teacher-salary-date-input{min-height:38px;font-size:13px}.teacher-salary-range-sep{color:var(--tx3);padding-bottom:10px;font-size:14px}.teacher-salary-range-error{margin:8px 0 0;font-size:12px;color:var(--rd)}.teacher-salary-preset{padding:8px 14px;border-radius:999px;border:1px solid var(--bd);background:var(--bg2);color:var(--tx2);font-size:12px;font-weight:600;cursor:pointer}.teacher-salary-preset--active{border-color:var(--t);color:var(--t);background:color-mix(in srgb,var(--t) 10%,var(--bg2))}.teacher-salary-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.teacher-salary-lesson-ref{color:var(--tx3)}.teacher-salary-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--bd)}.teacher-salary-note,.teacher-salary-page-label{font-size:12px;color:var(--tx3)}.teacher-salary-note{margin:0}@media (max-width:768px){.schedule-page-hero{flex-direction:column;align-items:stretch}.schedule-page-hero-btn{width:100%}.schedule-panel-grid,.teacher-salary-stats{grid-template-columns:1fr}.teacher-salary-range-popover{right:auto;left:0}.teacher-salary-range-fields{flex-direction:column;align-items:stretch}.teacher-salary-range-sep{display:none}.teacher-salary-date-field{width:100%}}.teacher-student-page{max-width:1180px;margin:0 auto;padding-bottom:48px}.teacher-student-page-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.teacher-student-back{font-size:14px;font-weight:500;color:var(--tx2);text-decoration:none}.teacher-student-back:hover{color:var(--t)}.teacher-student-refresh{display:inline-flex;align-items:center;gap:6px}.teacher-student-refresh svg{width:16px;height:16px}.teacher-student-page-hero{display:flex;align-items:center;gap:20px;padding:24px 28px;margin-bottom:20px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg,16px);box-shadow:var(--shadow-sm,0 1px 3px rgb(0 0 0/6%))}.teacher-student-page-name{margin:4px 0 0;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;letter-spacing:-.02em;color:var(--tx)}.teacher-student-page-sub{margin:6px 0 0;font-size:14px;color:var(--tx2)}.teacher-student-stats{margin-bottom:20px}.teacher-student-stats .stat-value{font-size:1.35rem}.teacher-student-quick-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px;margin-bottom:24px}.teacher-student-quick-link{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;border:1px solid var(--border);background:var(--card);text-decoration:none;color:inherit;cursor:pointer;font:inherit;text-align:left;transition:border-color .15s,box-shadow .15s}.teacher-student-quick-link:hover{border-color:var(--t);box-shadow:0 4px 16px rgb(0 0 0/6%)}.teacher-student-quick-link--empty{border-style:dashed;opacity:.92}.teacher-student-quick-link-icon{font-size:28px;line-height:1}.teacher-student-quick-link-text{display:flex;flex-direction:column;gap:2px;min-width:0}.teacher-student-quick-link-text strong{font-size:15px;color:var(--tx)}.teacher-student-quick-link-text span:last-child{font-size:12px;color:var(--tx2)}.teacher-student-page-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);grid-gap:24px;gap:24px;align-items:start}.teacher-student-page-main{min-width:0}.teacher-student-page-main,.teacher-student-page-main .optimate-student-settings{display:flex;flex-direction:column;gap:20px}.teacher-student-page-main .stc-panel{padding:22px 24px;border-radius:16px}.teacher-student-page-main .stc-slots{max-height:min(70vh,720px)}.teacher-student-page-main .stc-panel-head h3{font-size:1.15rem}.teacher-student-page-main .stc-slot{padding:14px 16px}.teacher-student-page-main .stc-slot-topic{font-size:15px;font-weight:600}.teacher-student-profile-card{position:-webkit-sticky;position:sticky;top:16px;padding:20px 22px;background:var(--card);border:1px solid var(--border);border-radius:16px}.teacher-student-profile-card .optimate-detail-section h3{font-size:13px}.teacher-student-hw-list{display:flex;flex-direction:column;gap:10px}.teacher-student-hw-row{display:grid;grid-template-columns:1fr auto auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--bg2,var(--bg));border:1px solid var(--border)}.teacher-student-hw-title{font-weight:600;font-size:14px}.teacher-student-hw-meta{font-size:12px;color:var(--tx2);margin-top:2px}.teacher-student-hw-actions{display:flex;gap:8px;flex-wrap:wrap}.teacher-student-loading{color:var(--tx2);font-size:14px}.teacher-student-hero-progress{display:flex;flex-direction:column;gap:10px;margin-top:14px;max-width:420px}.teacher-student-hero-progress-label{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--tx2);margin-bottom:4px}.teacher-student-hero-progress-label strong{color:var(--tx);font-weight:600}.teacher-student-lessons-head-actions{display:flex;gap:8px;flex-wrap:wrap}.teacher-student-lessons-stats{margin:16px 0 18px}.teacher-student-lessons-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.teacher-student-lessons-tab{border:1px solid var(--border);background:var(--bg2,var(--bg));color:var(--tx2);border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;font-weight:500;cursor:pointer}.teacher-student-lessons-tab.is-active{background:var(--t);border-color:var(--t);color:#fff}.teacher-student-lessons-list{display:flex;flex-direction:column;gap:10px}.teacher-student-lesson-row{display:grid;grid-template-columns:140px minmax(0,1fr) auto auto;grid-gap:12px;gap:12px;align-items:center;padding:14px 16px;border-radius:12px;border:1px solid var(--border);background:var(--bg2,var(--bg))}.teacher-student-lesson-row--needs-marking{border-color:color-mix(in srgb,var(--rd) 45%,var(--border));background:color-mix(in srgb,var(--rd) 8%,var(--bg2,var(--bg)));box-shadow:0 0 0 1px color-mix(in srgb,var(--rd) 25%,transparent),0 0 14px color-mix(in srgb,var(--rd) 18%,transparent)}.teacher-student-lesson-urgent{margin-top:4px;font-size:12px;font-weight:650;color:var(--rd)}.teacher-student-lesson-date{font-weight:600;font-size:13px;color:var(--tx)}.teacher-student-lesson-time{font-size:12px;color:var(--tx2);margin-top:2px}.teacher-student-lesson-title{font-weight:600;font-size:14px}.teacher-student-lesson-meta{font-size:12px;color:var(--tx2);margin-top:2px}.teacher-student-lesson-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.teacher-student-lesson-hw{margin-top:6px;font-size:12px;font-weight:600;color:var(--t)}.hw-card-kicker,.teacher-student-hw-kicker{margin:0 0 4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--tx3,var(--tx2))}.hw-card-subtitle,.teacher-student-hw-subtitle{margin:2px 0 0;font-size:13px;color:var(--tx2)}.hw-lesson-anchor{margin-bottom:16px;padding:14px 16px;border-radius:12px;border:1px solid var(--border);background:var(--bg2,var(--bg))}.hw-lesson-anchor-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--tx3,var(--tx2))}.hw-lesson-anchor-title{margin-top:4px;font-size:16px;font-weight:700;color:var(--tx)}.hw-lesson-anchor-students,.hw-lesson-anchor-when{margin-top:4px;font-size:13px;color:var(--tx2)}.hw-field-hint{display:block;margin-top:4px;font-size:12px;color:var(--tx3,var(--tx2))}.hw-row-lesson--when{color:var(--tx2)}@media (max-width:960px){.teacher-student-page-layout{grid-template-columns:1fr}.teacher-student-profile-card{position:static}.teacher-student-hw-row,.teacher-student-lesson-row{grid-template-columns:1fr}}