:root{--color-page: #f7f8fa;--color-surface: #ffffff;--color-surface-soft: #f8fafc;--color-surface-hover: #f1f5f9;--color-text: #1f2328;--color-muted: #8a8f98;--color-muted-strong: #6b7280;--color-line: #edf0f3;--color-line-strong: #dfe4ea;--color-accent: #3b82f6;--color-accent-bg: #eef4ff;--color-accent-line: #d7e5ff;--color-green: #16a34a;--color-green-bg: #eefbf3;--color-green-line: #ccebd6;--color-amber: #a16207;--color-amber-bg: #fff9eb;--color-amber-line: #ffe2a3;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-9: 36px;--space-10: 40px;--space-11: 44px;--space-12: 48px;--space-14: 56px;--space-16: 64px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 14px;--radius-pill: 999px;--sidebar-width: 232px;--shadow-pill: 0 2px 8px rgba(15, 23, 42, .08);--font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--weight-regular: 450;--weight-medium: 520;--weight-semibold: 620;--weight-bold: 700}*{box-sizing:border-box}body{margin:0;background:var(--color-page);color:var(--color-text);font-family:var(--font);font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select{font:inherit}a{color:inherit;text-decoration:none}p,h1,h2,h3{margin:0}#root{min-height:100vh}.ds-logo{display:inline-flex;align-items:center;color:var(--color-text)}.ds-logo span{font-family:"Marhey",var(--font);font-weight:400;font-size:26px;line-height:1;letter-spacing:-.005em}.ds-card{border:1px solid var(--color-line-strong);border-radius:var(--radius-xl);background:var(--color-surface)}.ds-badge{width:fit-content;justify-self:start;border-radius:8px;border:1px solid var(--color-line-strong);background:linear-gradient(180deg,#fff,#f7f7f7);color:var(--color-text);padding:5px 9px;font-size:12px;line-height:1;font-weight:var(--weight-semibold);box-shadow:0 4px 14px #00000012}.ds-badge.positive{border-color:var(--color-green-line);background:linear-gradient(180deg,#f8fffb,var(--color-green-bg));color:var(--color-green)}.ds-badge.accent{border-color:var(--color-accent-line);background:linear-gradient(180deg,#f8fbff,var(--color-accent-bg));color:var(--color-accent)}.ds-badge.warning{border-color:var(--color-amber-line);background:linear-gradient(180deg,#fffdf6,var(--color-amber-bg));color:var(--color-amber)}.ds-button{position:relative;overflow:hidden;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;padding:0 14px;font-size:14px;font-weight:var(--weight-semibold);line-height:1;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.ds-button:hover{transform:none}.ds-button:active{transform:translateY(0)}.ds-button.primary{background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 28%),var(--color-text);color:#fff;box-shadow:inset 0 1px #ffffff6b,inset 0 -18px 34px #0000002e,0 12px 30px #1f232829}.ds-button.primary:hover{background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 30%),#262a30;box-shadow:inset 0 1px #ffffff80,inset 0 -16px 30px #0000002e,0 12px 30px #1f23282e}.ds-button.secondary{border-color:var(--color-line-strong);background:linear-gradient(180deg,#fffffff5,#f8fafceb),var(--color-surface);color:var(--color-text);box-shadow:inset 0 1px #fffffff2,inset 0 -14px 28px #1f23280b,0 10px 28px #1f232812}.ds-button.secondary:hover{background:linear-gradient(180deg,#fff,#f7f9fb),var(--color-surface);box-shadow:inset 0 1px #fff,inset 0 -14px 28px #1f23280f,0 10px 28px #1f232817}.ds-button.ghost{border-color:transparent;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent),var(--color-surface-hover);color:var(--color-text);box-shadow:inset 0 1px #ffffffbf,inset 0 -12px 24px #1f23280a}.ds-button.ghost:hover{background:linear-gradient(180deg,rgba(255,255,255,.7),transparent),#eef2f6;box-shadow:inset 0 1px #ffffffd9,inset 0 -12px 24px #1f23280e,0 8px 20px #1f23280e}.ds-button:disabled{cursor:wait;opacity:.7;transform:none;box-shadow:inset 0 1px #ffffff8c,inset 0 -12px 24px #1f23280a}.ds-field{display:grid;gap:var(--space-2);color:var(--color-text);font-size:14px;font-weight:var(--weight-semibold)}.ds-field>span{display:flex;align-items:center;justify-content:space-between;gap:12px}.ds-field input,.ds-field select{width:100%;min-height:40px;border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);padding:0 12px;font-size:14px;font-weight:var(--weight-medium);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .16s ease,box-shadow .16s ease}.ds-field input:focus,.ds-field select:focus{border-color:var(--color-text);box-shadow:0 0 0 4px #2424240f}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);background:var(--color-page)}.dashboard-sidebar{position:sticky;top:0;min-height:100vh;height:100vh;display:flex;flex-direction:column;border-right:1px solid var(--color-line-strong);background:var(--color-surface);padding:16px 12px;overflow-y:auto;overscroll-behavior:contain}.app-content{min-width:0;display:grid;grid-template-rows:50px 1fr}.app-topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--color-line-strong);background:#ffffffeb;padding:0 18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-topbar-left,.app-topbar-actions{min-width:0;display:flex;align-items:center;gap:8px}.app-breadcrumb{min-width:0;display:flex;align-items:center;gap:7px;color:var(--color-muted);font-size:13px;font-weight:var(--weight-medium)}.app-breadcrumb strong{min-width:0;color:var(--color-text);font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-icon-button,.app-search-button{position:relative;overflow:hidden;min-height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-muted-strong);cursor:pointer;font-size:13px;font-weight:var(--weight-medium);box-shadow:inset 0 1px #fffffff2,inset 0 -12px 24px #1f23280a,0 8px 22px #1f23280b;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.app-icon-button{width:32px;padding:0}.app-icon-button svg,.app-search-button svg{width:15px;height:15px;stroke-width:2.2}.app-search-button{gap:8px;min-width:220px;justify-content:flex-start;padding:0 8px 0 11px;background:linear-gradient(180deg,#fff,#fbfcfd);box-shadow:inset 0 1px #ffffffe6}.app-search-button kbd{margin-left:auto;border:1px solid var(--color-line-strong);border-radius:6px;background:var(--color-surface);color:var(--color-muted);padding:2px 5px;font:inherit;font-size:11px;line-height:1;box-shadow:0 1px #1f23280a}.app-icon-button:hover,.app-search-button:hover{background:linear-gradient(180deg,#fff,#f5f7fa);color:var(--color-text);transform:none;box-shadow:inset 0 1px #fff,inset 0 -12px 24px #1f23280f,0 12px 28px #1f232814}.command-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:start center;background:radial-gradient(circle at 50% 8%,rgba(255,255,255,.78),transparent 34%),#1f232847;padding:10vh 20px 20px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:command-overlay-in .15s ease-out}@keyframes command-overlay-in{0%{opacity:0}to{opacity:1}}.command-dialog{position:relative;width:min(100%,620px);overflow:hidden;border:1px solid var(--color-line-strong);border-radius:var(--radius-xl);background:linear-gradient(180deg,#f8fafcdb,#fff 140px),var(--color-surface);box-shadow:0 28px 80px #1f23282e,0 1px #ffffffe6 inset;animation:command-dialog-in .19s cubic-bezier(.2,.8,.2,1)}.command-dialog:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(var(--color-line) 1px,transparent 1px),linear-gradient(90deg,var(--color-line) 1px,transparent 1px);background-size:28px 28px;opacity:.2;-webkit-mask-image:linear-gradient(#000 0,transparent 142px);mask-image:linear-gradient(#000 0,transparent 142px)}@keyframes command-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.command-head{position:relative;z-index:1;min-height:72px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--color-line);padding:16px 18px}.command-mark{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--color-line-strong);border-radius:12px;background:var(--color-surface);box-shadow:0 8px 22px #1f232814}.command-mark img{width:29px;height:29px;display:block;object-fit:contain}.command-head strong{display:block;color:var(--color-text);font-size:15px;line-height:1.2;font-weight:var(--weight-semibold)}.command-head p{margin-top:3px;color:var(--color-muted);font-size:12px;line-height:1.35;font-weight:var(--weight-medium)}.command-input-row{position:relative;z-index:1;min-height:56px;display:grid;grid-template-columns:18px 1fr 32px;align-items:center;gap:10px;border-bottom:1px solid var(--color-line);padding:0 10px 0 16px}.command-input-row>svg{width:17px;height:17px;color:var(--color-muted)}.command-input-row input{min-width:0;border:0;outline:0;background:transparent;color:var(--color-text);font-size:15px;font-weight:var(--weight-medium)}.command-input-row input::placeholder{color:var(--color-muted)}.command-input-row button{position:relative;overflow:hidden;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted-strong);cursor:pointer;box-shadow:inset 0 1px #ffffffb3,inset 0 -10px 20px #1f232809;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.command-input-row button:hover{background:linear-gradient(180deg,#fff,#f5f7fa);color:var(--color-text);transform:none;box-shadow:inset 0 1px #ffffffdb,inset 0 -10px 20px #1f23280e}.command-input-row button svg{width:16px;height:16px}.command-list{position:relative;z-index:1;display:grid;gap:4px;padding:10px;background:var(--color-surface)}.command-section-label{padding:6px 8px;color:var(--color-muted);font-size:11px;font-weight:var(--weight-semibold);letter-spacing:.03em;text-transform:uppercase}.command-list button{position:relative;overflow:hidden;min-height:58px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text);cursor:pointer;padding:0 10px;text-align:left;font-size:14px;font-weight:var(--weight-medium);transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}.command-list button:hover,.command-list button.active{background:linear-gradient(180deg,#fff,#f5f7fa);transform:none;box-shadow:inset 0 1px #ffffffbf,inset 0 -18px 30px #1f23280a}.command-list button.active{transform:none}.command-item-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface);color:var(--color-muted-strong);box-shadow:inset 0 1px #ffffffeb,inset 0 -10px 22px #1f23280a}.command-list button.active .command-item-icon{border-color:var(--color-line-strong);background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 44%),var(--color-text);color:#fff;box-shadow:inset 0 1px #ffffff6b,inset 0 -14px 28px #0000002e,0 10px 24px #1f23281f}.command-list button svg{width:17px;height:17px;color:currentColor}.command-item-text{min-width:0;display:grid;gap:3px}.command-item-text strong{min-width:0;color:var(--color-text);font-size:14px;line-height:1.2;font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-item-text small{color:var(--color-muted);font-size:12px;line-height:1.25;font-weight:var(--weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-list button em{border:1px solid var(--color-line-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-muted-strong);padding:4px 8px;font-size:11px;line-height:1;font-style:normal;font-weight:var(--weight-semibold)}.command-empty{padding:14px 8px 18px;color:var(--color-muted);font-size:14px;font-weight:var(--weight-medium)}.command-foot{position:relative;z-index:1;min-height:38px;display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px solid var(--color-line);background:#fbfcfd;padding:0 12px}.command-foot span{color:var(--color-muted);font-size:11px;font-weight:var(--weight-medium)}.sidebar-workspace{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 8px 12px;border-bottom:1px solid var(--color-line)}.sidebar-workspace button{width:30px;height:30px;display:grid;place-items:center;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted-strong);cursor:pointer}.sidebar-workspace button:hover{border-color:var(--color-line-strong);background:var(--color-surface-hover);color:var(--color-text)}.sidebar-workspace button svg{width:16px;height:16px}.dashboard-nav{display:grid;gap:0;margin-top:18px}.sidebar-nav-group{display:grid;gap:5px;padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid var(--color-line)}.sidebar-nav-group:last-child{margin-bottom:0;border-bottom:0}.sidebar-nav-group-trigger{width:100%;min-height:28px;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted);cursor:pointer;padding:0 8px 0 12px;text-align:left}.sidebar-nav-group-trigger span{font-size:11px;line-height:1;font-weight:var(--weight-semibold);letter-spacing:.075em;text-transform:uppercase}.sidebar-nav-group-trigger svg{width:14px;height:14px;color:var(--color-muted);transition:transform .16s ease}.sidebar-nav-group-trigger[aria-expanded=false] svg{transform:rotate(-90deg)}.sidebar-nav-group-trigger:hover{background:transparent;color:var(--color-muted-strong)}.sidebar-nav-group-items{display:grid;gap:4px}.dashboard-nav a{position:relative;min-height:34px;display:flex;align-items:center;gap:10px;border-radius:var(--radius-md);padding:0 10px;color:var(--color-muted-strong);font-size:13px;font-weight:var(--weight-medium);text-align:left;cursor:pointer;transition:background-color .16s ease,color .16s ease}.sidebar-nav-icon{width:18px;height:18px;display:grid;place-items:center;flex:0 0 auto;color:var(--color-muted);transition:color .16s ease}.dashboard-nav svg{width:17px;height:17px;color:var(--color-muted);stroke-width:1.9}.dashboard-nav a.active svg,.dashboard-nav a:hover svg{color:currentColor}.dashboard-nav a:hover{background:#f7f8fa;color:var(--color-text)}.dashboard-nav a:hover .sidebar-nav-icon{color:var(--color-text)}.dashboard-nav a.active{background:#eef2f7;color:var(--color-text);font-weight:var(--weight-semibold)}.dashboard-nav a.active .sidebar-nav-icon{color:var(--color-text)}.dashboard-nav a.active .sidebar-nav-icon svg{color:var(--color-text)}.dashboard-nav a span{min-width:0;overflow:hidden;text-overflow:ellipsis}.sidebar-account{margin-top:auto;min-height:54px;display:flex;align-items:center;gap:10px;border-top:1px solid var(--color-line);padding:10px 6px 0}.sidebar-account-avatar{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border-radius:var(--radius-md);background:var(--color-text);color:#fff;font-size:12px;line-height:1;font-weight:var(--weight-semibold);overflow:hidden}.sidebar-account-avatar img{width:100%;height:100%;display:block;object-fit:cover}.sidebar-account-text{min-width:0;flex:1 1 auto;display:grid;gap:3px}.sidebar-account span{color:var(--color-muted);font-size:12px;line-height:1;font-weight:var(--weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-account strong{min-width:0;color:var(--color-text);font-size:13px;line-height:1.15;font-weight:var(--weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-account button{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted-strong);cursor:pointer;padding:0}.sidebar-account button:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar-account button svg{width:15px;height:15px;stroke-width:2.2}.dashboard-main{min-width:0;width:100%;padding:0}.dashboard-head{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px;border-bottom:1px solid var(--color-line-strong);background:var(--color-surface);padding:0 22px}.dashboard-head-copy{position:relative;z-index:1;min-width:0}.dashboard-head-eyebrow{display:block;margin-bottom:5px;color:var(--color-muted);font-size:11px;line-height:1;font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase}.dashboard-head h1{color:var(--color-text);font-size:20px;line-height:1.2;font-weight:var(--weight-semibold)}.dashboard-head p{margin-top:2px;color:var(--color-muted);font-size:12px;font-weight:var(--weight-medium)}.dashboard-head-actions{position:relative;z-index:1;display:flex;align-items:center;justify-content:flex-end;gap:8px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 22px 0;margin-top:0}.metric-card{min-height:92px;padding:16px}.metric-card span{display:block;color:var(--color-muted);font-size:13px;font-weight:var(--weight-medium)}.metric-card strong{display:block;margin-top:14px;color:var(--color-text);font-size:24px;line-height:1;font-weight:var(--weight-bold)}.metric-card em{display:block;margin-top:6px;color:var(--color-muted);font-size:13px;font-style:normal;font-weight:var(--weight-medium)}.skeleton-card{overflow:hidden}.skeleton-block{display:block;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-surface-hover) 0%,#e8edf3 40%,var(--color-surface-hover) 80%);background-size:220% 100%;animation:skeleton-pulse 1.35s ease-in-out infinite}.skeleton-label{width:45%;height:12px}.skeleton-value{width:62%;height:26px;margin-top:16px}.skeleton-hint{width:34%;height:11px;margin-top:12px}.skeleton-row{min-height:56px;display:grid;grid-template-columns:minmax(220px,1fr) 140px 104px 92px;align-items:center;gap:14px;padding:0 16px;border-bottom:1px solid var(--color-line)}.skeleton-row:last-child{border-bottom:0}.skeleton-row-main{display:grid;gap:8px}.skeleton-cell-main{width:min(60%,220px);height:12px}.skeleton-cell-sub{width:min(40%,140px);height:10px;opacity:.6}.skeleton-cell{width:80%;height:12px}.skeleton-cell-short{width:64px;height:12px}.skeleton-cell-pill{width:74px;height:22px;border-radius:var(--radius-pill)}@keyframes skeleton-pulse{to{background-position:-220% 0}}.dashboard-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:18px 22px 0;margin-top:0}.dashboard-section-head h2{margin:0;color:var(--color-text);font-size:15px;line-height:1.2;font-weight:var(--weight-semibold)}.dashboard-section-head span{color:var(--color-muted);font-size:13px;font-weight:var(--weight-medium)}.dashboard-section-head a{color:var(--color-muted-strong);font-size:13px;font-weight:var(--weight-medium)}.dashboard-section-head a:hover{color:var(--color-text)}.data-card{margin:18px 22px 0;overflow:hidden}.data-row{min-height:56px;display:grid;align-items:center;gap:14px;padding:0 16px;border-bottom:1px solid var(--color-line)}.data-row:last-child{border-bottom:0}.data-row-button{width:100%;border-right:0;border-left:0;border-top:0;border-radius:0;background:transparent;color:inherit;cursor:pointer;text-align:left;font:inherit}.data-row-button:hover{background:#fbfcfd}.data-row-button:focus-visible{outline:2px solid rgba(31,35,40,.22);outline-offset:-2px}.data-row strong,.empty-state strong{display:block;min-width:0;color:var(--color-text);font-size:14px;line-height:1.2;font-weight:var(--weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-row span,.empty-state p{color:var(--color-muted);font-size:13px;font-weight:var(--weight-medium)}.students-row{grid-template-columns:minmax(280px,1fr) 180px 140px 104px}.students-card{margin-top:12px}.students-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:center;gap:10px;margin:18px 22px 0}.students-search,.students-filters{min-height:40px;display:flex;align-items:center;border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:linear-gradient(180deg,#fff,#fbfcfd);box-shadow:inset 0 1px #fffffff2,inset 0 -12px 24px #1f232809}.students-search{gap:9px;padding:0 12px}.students-search svg,.students-filters svg{width:16px;height:16px;color:var(--color-muted);stroke-width:2}.students-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--color-text);font-size:14px;font-weight:var(--weight-medium)}.students-search input::placeholder{color:var(--color-muted)}.students-filters{gap:6px;padding:0 7px 0 10px}.students-filters>span{display:inline-flex;align-items:center;gap:7px;color:var(--color-muted-strong);font-size:13px;font-weight:var(--weight-semibold);padding-right:2px}.students-filters select{min-height:30px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted-strong);cursor:pointer;padding:0 6px;font-size:13px;font-weight:var(--weight-medium);outline:0}.students-filters select:hover{background:var(--color-surface-hover);color:var(--color-text)}.students-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 22px 0}.students-summary>div{min-height:72px;display:grid;align-content:center;gap:8px;border:1px solid var(--color-line-strong);border-radius:var(--radius-lg);background:radial-gradient(circle at 0% 0%,rgba(31,35,40,.045),transparent 40%),var(--color-surface);padding:0 14px}.students-summary span{color:var(--color-muted);font-size:12px;font-weight:var(--weight-medium)}.students-summary strong{color:var(--color-text);font-size:24px;line-height:1;font-weight:var(--weight-semibold)}.students-summary--loading>div{gap:13px}.students-summary-label-skeleton{width:42%;height:11px}.students-summary-value-skeleton{width:28%;height:25px}.student-cell{min-width:0;display:flex;align-items:center;gap:10px}.student-avatar{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:var(--radius-md);background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 34%),var(--color-text);color:#fff!important;font-size:12px!important;line-height:1;font-weight:var(--weight-semibold)!important;box-shadow:inset 0 1px #ffffff57,inset 0 -10px 20px #00000024}.schedule-row{grid-template-columns:74px minmax(220px,1fr) minmax(118px,150px) 138px}.schedule-board{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.45fr);gap:16px;margin:18px 22px 0}.schedule-calendar-card,.schedule-agenda-card{overflow:hidden}.schedule-calendar-head,.schedule-agenda-head{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-line);padding:0 16px;background:linear-gradient(180deg,#fffffff5,#f9fafcdb)}.schedule-calendar-head button{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-muted-strong);cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}.schedule-calendar-head button:hover{border-color:var(--color-line);background:#fff;color:var(--color-text)}.schedule-calendar-head svg{width:16px;height:16px}.schedule-calendar-head div,.schedule-selected-day>div{min-width:0;display:grid;gap:3px}.schedule-calendar-head strong,.schedule-agenda-head strong{color:var(--color-text);font-size:15px;font-weight:var(--weight-semibold);text-transform:capitalize}.schedule-calendar-head span,.schedule-agenda-head span{color:var(--color-muted);font-size:12px;font-weight:var(--weight-medium)}.schedule-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:14px 14px 6px}.schedule-weekdays span{color:var(--color-muted);font-size:11px;font-weight:var(--weight-semibold);text-align:center;text-transform:uppercase}.schedule-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:0 14px 14px}.schedule-day-button{position:relative;min-height:54px;display:grid;place-items:center;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text);cursor:pointer;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}.schedule-day-button:hover{border-color:var(--color-line);background:#fff;box-shadow:var(--shadow-sm)}.schedule-day-button span{font-size:14px;font-weight:var(--weight-semibold);line-height:1}.schedule-day-button em{position:absolute;right:5px;bottom:5px;min-width:17px;height:17px;display:grid;place-items:center;border-radius:999px;background:#eef7f1;color:#159447;padding:0 4px;font-size:9px;line-height:1;font-style:normal;font-weight:var(--weight-semibold);box-shadow:inset 0 0 0 1px #1594471f}.schedule-day-button.is-outside{color:var(--color-muted);opacity:.52}.schedule-day-button.is-today:not(.is-selected){border-color:var(--color-line-strong);background:#fff}.schedule-day-button.is-selected{border-color:#20242b;background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 38%),#20242b;color:#fff;align-content:center;box-shadow:inset 0 1px #ffffff57,0 14px 32px #0f12182e}.schedule-day-button.is-selected em{background:#ffffff29;color:#fff;box-shadow:inset 0 0 0 1px #ffffff2e}.schedule-agenda-head{align-items:center}.schedule-selected-day{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:8px}.schedule-selected-day button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--color-line);border-radius:var(--radius-md);background:#fff;color:var(--color-muted-strong);cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.schedule-selected-day button:hover{border-color:var(--color-line-strong);background:var(--color-surface-hover);color:var(--color-text);box-shadow:var(--shadow-sm)}.schedule-selected-day svg{width:15px;height:15px}.schedule-agenda-actions{display:flex;align-items:center;gap:8px}.schedule-agenda-actions select{min-height:36px;border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);padding:0 12px;font-size:13px;font-weight:var(--weight-medium);outline:0}.schedule-agenda-list{display:grid}.schedule-agenda-card .empty-state{min-height:360px;margin:0;border:0;border-radius:0}.schedule-agenda-card .skeleton-table{margin:16px}.finance-row{grid-template-columns:minmax(240px,1fr) 138px 104px}.row-time{font-size:14px;font-weight:var(--weight-semibold)}.entity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:18px 22px 0}.group-card{min-height:138px;display:grid;gap:18px;align-content:space-between;padding:16px}.group-card-button{width:100%;cursor:pointer;text-align:left;font:inherit;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.group-card-button:hover{border-color:var(--color-line-strong);box-shadow:0 12px 30px #1f23280f}.group-card strong{display:block;min-width:0;color:var(--color-text);font-size:15px;line-height:1.25;font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-card span{display:block;margin-top:5px;color:var(--color-muted-strong);font-size:13px;line-height:1.35;font-weight:var(--weight-medium)}.group-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.group-card-bottom>span{margin:0;color:var(--color-muted);font-size:13px}.group-details{display:grid;gap:14px}.group-details-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.82fr);gap:14px;align-items:start}.group-details-column{display:grid;gap:14px;min-width:0}.group-panel{display:grid;gap:12px;border:1px solid var(--color-line);border-radius:var(--radius-lg);background:radial-gradient(circle at 0% 0%,rgba(31,35,40,.026),transparent 38%),#fbfcfd;padding:14px}.group-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.group-panel-head strong{color:var(--color-text);font-size:14px;line-height:1.2;font-weight:var(--weight-semibold)}.group-panel-head span{color:var(--color-muted);font-size:12px;line-height:1.3;font-weight:var(--weight-medium);text-align:right}.group-overview{display:grid;grid-template-columns:.7fr .7fr minmax(0,1.1fr);gap:10px}.group-overview-card{min-width:0;min-height:86px;display:grid;align-content:center;gap:7px;border:1px solid var(--color-line-strong);border-radius:var(--radius-lg);background:radial-gradient(circle at 0% 0%,rgba(31,35,40,.05),transparent 42%),var(--color-surface);padding:0 14px}.group-overview-card span{color:var(--color-muted);font-size:12px;font-weight:var(--weight-medium)}.group-overview-card strong{min-width:0;color:var(--color-text);font-size:22px;line-height:1;font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-overview-card em{min-width:0;color:var(--color-muted-strong);font-size:12px;line-height:1.3;font-style:normal;font-weight:var(--weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-edit-form{display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:end;gap:10px}.group-edit-form .ds-field{gap:5px;font-size:12px}.group-edit-form .ds-field input{min-height:34px;border-radius:var(--radius-sm);padding:0 10px;font-size:13px}.group-edit-form .ds-button{min-height:34px;width:fit-content;justify-self:start;padding:0 13px;font-size:13px}.group-edit-form .ds-field:nth-child(4){grid-column:1 / -1}.group-edit-form .ds-button{grid-column:1 / -1}.group-edit-form .ds-field:nth-child(1),.group-edit-form .ds-field:nth-child(2){grid-column:1 / -1}.group-roster-head{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--color-line);border-radius:var(--radius-lg);background:#fbfcfd;padding:14px}.group-roster-head div{display:grid;gap:5px}.group-roster-head span{color:var(--color-muted);font-size:12px;font-weight:var(--weight-medium)}.group-roster-head strong{color:var(--color-text);font-size:24px;line-height:1;font-weight:var(--weight-semibold)}.group-add-student{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.group-add-student select{min-width:0;min-height:40px;border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);padding:0 12px;font-size:14px;font-weight:var(--weight-medium);outline:0}.group-roster-empty{min-height:160px;display:grid;justify-items:center;align-content:center;gap:8px;border:1px dashed var(--color-line-strong);border-radius:var(--radius-lg);background:#fbfcfd;text-align:center;padding:24px}.group-roster-empty svg{width:26px;height:26px;color:var(--color-muted)}.group-roster-empty strong{color:var(--color-text);font-size:15px;font-weight:var(--weight-semibold)}.group-roster-empty span{color:var(--color-muted);font-size:13px;font-weight:var(--weight-medium)}.group-roster-list{display:grid;border:1px solid var(--color-line-strong);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.group-roster-row{min-height:58px;display:grid;grid-template-columns:34px minmax(0,1fr) 32px;align-items:center;gap:10px;border-bottom:1px solid var(--color-line);padding:0 12px}.group-roster-row:last-child{border-bottom:0}.group-roster-row strong{display:block;color:var(--color-text);font-size:14px;font-weight:var(--weight-semibold)}.group-roster-row span{color:var(--color-muted);font-size:12px;font-weight:var(--weight-medium)}.group-roster-row button{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted-strong);cursor:pointer}.group-roster-row button:hover{background:var(--color-surface-hover);color:var(--color-text)}.group-roster-row button svg{width:15px;height:15px}.group-lessons-empty{min-height:136px}.group-lessons-list{display:grid;border:1px solid var(--color-line-strong);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.group-lesson-row{min-height:54px;display:grid;grid-template-columns:minmax(128px,.8fr) minmax(0,1fr) 124px;align-items:center;gap:10px;border-bottom:1px solid var(--color-line);padding:0 12px}.group-lesson-row:last-child{border-bottom:0}.group-lesson-row span{color:var(--color-muted-strong);font-size:13px;font-weight:var(--weight-semibold)}.group-lesson-row strong{min-width:0;color:var(--color-text);font-size:13px;font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{position:relative;margin:18px 22px 0;overflow:hidden;animation:empty-state-in .36s cubic-bezier(.22,.61,.36,1) both}.empty-state:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(var(--color-line) 1px,transparent 1px),linear-gradient(90deg,var(--color-line) 1px,transparent 1px);background-size:34px 34px;opacity:.32;-webkit-mask-image:radial-gradient(circle at 50% 30%,#000 0%,transparent 70%);mask-image:radial-gradient(circle at 50% 30%,#000 0%,transparent 70%)}.empty-state-brand-pattern{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.empty-state-brand-pattern span{position:absolute;color:var(--color-text);font-family:"Marhey",var(--font);line-height:1;font-weight:400;opacity:.032;-webkit-user-select:none;user-select:none}.empty-state-brand-pattern span:nth-child(1){left:8%;top:18%;font-size:82px;transform:rotate(-12deg)}.empty-state-brand-pattern span:nth-child(2){left:24%;top:66%;font-size:118px;transform:rotate(9deg)}.empty-state-brand-pattern span:nth-child(3){left:42%;top:22%;font-size:96px;transform:rotate(16deg)}.empty-state-brand-pattern span:nth-child(4){left:61%;top:58%;font-size:142px;transform:rotate(-8deg)}.empty-state-brand-pattern span:nth-child(5){right:7%;top:20%;font-size:74px;transform:rotate(13deg)}.empty-state-brand-pattern span:nth-child(6){right:13%;bottom:0;font-size:128px;transform:rotate(-18deg)}.empty-state-brand-pattern span:nth-child(7){left:4%;bottom:-12px;font-size:104px;transform:rotate(18deg)}.empty-state-brand-pattern span:nth-child(8){left:76%;top:48%;font-size:92px;transform:rotate(5deg)}.empty-state-brand-pattern span:nth-child(9){left:33%;top:5%;font-size:54px;transform:rotate(-22deg)}@keyframes empty-state-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.empty-state--compact{display:grid;justify-items:start;gap:8px;padding:26px;background:radial-gradient(circle at 18% 12%,rgba(31,35,40,.09),transparent 34%),radial-gradient(circle at 92% 86%,rgba(31,35,40,.055),transparent 36%),var(--color-surface)}.empty-state--compact .empty-state-icon{position:relative;z-index:1;width:42px;height:42px;margin-bottom:4px;border-radius:13px;background:var(--color-text);color:#fff;box-shadow:inset 0 1px #ffffff57,inset 0 -18px 34px #00000024,0 12px 30px #1f23281f}.empty-state--compact .empty-state-icon svg{width:20px;height:20px;stroke-width:1.8}.empty-state--compact strong{position:relative;z-index:1;font-size:16px}.empty-state--compact p{position:relative;z-index:1;max-width:520px}.empty-state--hero{display:grid;justify-items:center;text-align:center;gap:14px;min-height:360px;padding:76px 32px;border-style:dashed;background:radial-gradient(circle at 50% 18%,rgba(31,35,40,.105),transparent 34%),radial-gradient(circle at 82% 82%,rgba(31,35,40,.07),transparent 38%),radial-gradient(circle at 12% 76%,rgba(31,35,40,.052),transparent 34%),linear-gradient(180deg,#fff,#fbfcfd);box-shadow:inset 0 1px #ffffffe6,0 18px 44px #1f23280b}.empty-state--hero:after{content:none}.empty-state--compact .empty-state-brand-pattern span{opacity:.024}.empty-state--compact .empty-state-brand-pattern span:nth-child(n+6){display:none}.empty-state--hero .empty-state-brand-pattern span{opacity:.04}.empty-state--hero .empty-state-brand-pattern span:nth-child(1){left:9%;top:14%;font-size:96px}.empty-state--hero .empty-state-brand-pattern span:nth-child(2){left:18%;top:68%;font-size:138px}.empty-state--hero .empty-state-brand-pattern span:nth-child(3){left:38%;top:11%;font-size:72px}.empty-state--hero .empty-state-brand-pattern span:nth-child(4){left:58%;top:61%;font-size:158px}.empty-state--hero .empty-state-brand-pattern span:nth-child(5){right:9%;top:19%;font-size:106px}.empty-state--hero .empty-state-brand-pattern span:nth-child(6){right:4%;bottom:-24px;font-size:152px}.empty-state--hero .empty-state-brand-pattern span:nth-child(7){left:3%;bottom:-20px;font-size:122px}.empty-state--hero .empty-state-brand-pattern span:nth-child(8){left:78%;top:52%;font-size:76px}.empty-state--hero .empty-state-brand-pattern span:nth-child(9){left:48%;top:37%;font-size:52px;opacity:.026}.empty-state--hero .empty-state-icon{position:relative;z-index:1;width:64px;height:64px;border-radius:18px;background:var(--color-text);border:1px solid rgba(31,35,40,.12);color:#fff;display:grid;place-items:center;margin-bottom:8px;box-shadow:0 18px 48px #1f232824,inset 0 2px #ffffff61,inset 0 14px 24px #ffffff14,inset 0 -22px 42px #00000029;transform:rotate(-2deg)}.empty-state--hero .empty-state-icon svg{width:27px;height:27px;stroke-width:1.8;transform:rotate(2deg)}.empty-state--hero strong{position:relative;z-index:1;font-size:22px;line-height:1.2;letter-spacing:-.005em}.empty-state--hero p{position:relative;z-index:1;max-width:430px;font-size:14px;line-height:1.55}.empty-state-icon{display:grid;place-items:center}.empty-state strong{white-space:normal;overflow:visible;text-overflow:clip;color:var(--color-text);font-weight:var(--weight-semibold)}.empty-state p{color:var(--color-muted-strong);font-size:14px;line-height:1.5;font-weight:var(--weight-medium)}.empty-state-action{position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;margin-top:10px}.empty-state--hero .empty-state-action{margin-top:6px}.auth-screen{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:radial-gradient(at 18% 22%,hsla(212,100%,92%,.55) 0px,transparent 55%),radial-gradient(at 82% 18%,hsla(150,90%,92%,.45) 0px,transparent 55%),radial-gradient(at 12% 88%,hsla(38,100%,92%,.5) 0px,transparent 55%),radial-gradient(at 88% 82%,hsla(340,100%,94%,.4) 0px,transparent 55%),var(--color-surface);padding:32px 20px;overflow:hidden}.auth-screen-logo{position:relative;z-index:1;flex:0 0 auto}.auth-screen-card{position:relative;z-index:1;width:min(100%,420px);padding:34px;box-shadow:0 12px 40px #0f172a0f,0 2px 6px #0f172a0a}.auth-screen-card--state{width:min(100%,380px);padding:32px}.auth-screen-footer{position:relative;z-index:1;min-height:20px;color:var(--color-muted);font-size:14px;font-weight:var(--weight-medium)}.auth-screen-footer a{margin-left:var(--space-2);color:var(--color-text);font-weight:var(--weight-semibold)}.auth-title{color:var(--color-text);font-size:clamp(24px,2.4vw,30px);line-height:1.15;font-weight:var(--weight-bold)}.auth-subtitle{margin-top:var(--space-3);color:var(--color-muted);font-size:16px;line-height:1.4;font-weight:var(--weight-medium)}.auth-google{margin-top:var(--space-8);width:100%}.auth-google svg{width:20px;height:20px;flex:0 0 auto}.auth-divider{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-6) 0;color:var(--color-muted);font-size:13px;font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:.08em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-line)}.auth-form{display:grid;gap:var(--space-5)}.auth-form .ds-field>span{display:flex;align-items:center;justify-content:space-between}.auth-form .ds-field a{color:var(--color-muted);font-size:13px;font-weight:var(--weight-medium)}.auth-form .ds-field a:hover{color:var(--color-text)}.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.auth-submit{width:100%;margin-top:var(--space-2)}.auth-error{border:1px solid var(--color-amber-line);border-radius:var(--radius-md);background:var(--color-amber-bg);color:var(--color-amber);padding:var(--space-4) var(--space-5);font-size:15px;line-height:1.4;font-weight:var(--weight-medium)}.auth-info{border:1px solid var(--color-green-line);border-radius:var(--radius-md);background:var(--color-green-bg);color:var(--color-green);padding:var(--space-4) var(--space-5);font-size:15px;line-height:1.4;font-weight:var(--weight-medium)}.auth-info--standalone{margin-top:26px}.auth-form input[name=code]{min-height:48px;text-align:center;font-size:22px;letter-spacing:.26em;font-weight:var(--weight-semibold)}.auth-form input[name=code]::placeholder{letter-spacing:.18em}.auth-spinner{width:18px;height:18px;border:2px solid rgba(31,35,40,.14);border-top-color:var(--color-text);border-radius:50%;animation:auth-spin .68s linear infinite;display:inline-block}.auth-spinner--lg{width:32px;height:32px;border-width:2.5px}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-submit--standalone{margin-top:var(--space-7)}.auth-link-button{border:0;padding:0;margin-left:var(--space-2);background:transparent;color:var(--color-text);font-size:16px;font-weight:var(--weight-semibold);cursor:pointer}.auth-link-button:hover{text-decoration:underline}.auth-form--spaced{margin-top:var(--space-8)}.auth-hint{margin-top:var(--space-2);text-align:center;color:var(--color-muted);font-size:14px;font-weight:var(--weight-medium)}.auth-hint .auth-link-button{font-size:14px}.auth-link-button:disabled{cursor:wait;opacity:.6}.onboarding-screen{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;background:var(--color-surface);color:var(--color-text)}.onboarding-top{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;border-bottom:1px solid var(--color-line);padding:18px 28px;background:var(--color-surface)}.onboarding-top-meta{justify-self:center;display:inline-flex;align-items:center;gap:10px;color:var(--color-muted-strong);font-size:13px;font-weight:var(--weight-medium)}.onboarding-top-step{color:var(--color-muted)}.onboarding-top-label{position:relative;color:var(--color-text);font-weight:var(--weight-semibold)}.onboarding-top-label:before{content:"";display:inline-block;width:4px;height:4px;margin-right:8px;border-radius:50%;background:var(--color-muted);vertical-align:middle}.onboarding-top-email{justify-self:end;color:var(--color-muted);font-size:13px;font-weight:var(--weight-medium);overflow:hidden;text-overflow:ellipsis}.onboarding-progress{position:absolute;bottom:-1px;left:0;height:2px;background:var(--color-text);transition:width .42s cubic-bezier(.22,.61,.36,1)}.onboarding-stage{display:grid;place-items:center;padding:64px 24px;animation:onboarding-step-in .38s cubic-bezier(.22,.61,.36,1)}@keyframes onboarding-step-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.onboarding-welcome{display:grid;justify-items:center;gap:18px;text-align:center;max-width:520px}.onboarding-welcome-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--color-accent-bg);color:var(--color-accent);animation:onboarding-mark-pop .52s cubic-bezier(.34,1.56,.64,1) 80ms both}.onboarding-welcome-mark svg{width:28px;height:28px;stroke-width:1.8}.onboarding-welcome h1{margin:0;color:var(--color-text);font-size:clamp(34px,4vw,44px);line-height:1.1;letter-spacing:-.01em;font-weight:var(--weight-semibold);animation:onboarding-fade-up .56s cubic-bezier(.22,.61,.36,1) .18s both}.onboarding-welcome p{max-width:440px;color:var(--color-muted-strong);font-size:16px;line-height:1.55;font-weight:var(--weight-medium);animation:onboarding-fade-up .56s cubic-bezier(.22,.61,.36,1) .28s both}.onboarding-welcome-hint{display:inline-flex;align-items:center;gap:6px;margin-top:6px;border:0;background:transparent;color:var(--color-muted-strong);cursor:pointer;padding:4px 8px;font-size:13px;font-weight:var(--weight-medium);animation:onboarding-fade-up .56s cubic-bezier(.22,.61,.36,1) .38s both}.onboarding-welcome-hint svg{width:14px;height:14px}.onboarding-welcome-hint:hover{color:var(--color-text)}@keyframes onboarding-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes onboarding-mark-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.onboarding-form-stage{width:min(100%,540px);display:grid;gap:28px}.onboarding-form-head{display:grid;gap:6px;text-align:left}.onboarding-form-kicker{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted);font-size:12px;font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase}.onboarding-form-head h2{margin:0;color:var(--color-text);font-size:clamp(24px,2.6vw,30px);line-height:1.15;letter-spacing:-.01em;font-weight:var(--weight-semibold)}.onboarding-form-head p{margin:0;color:var(--color-muted-strong);font-size:14px;line-height:1.5;font-weight:var(--weight-medium)}.onboarding-form-body{display:grid;grid-template-columns:1fr 1fr;gap:14px}.onboarding-form-body--single{grid-template-columns:1fr}.onboarding-form-body--span{grid-column:1 / -1}@media(max-width:540px){.onboarding-form-body{grid-template-columns:1fr}}.onboarding-done{display:grid;justify-items:center;gap:18px;text-align:center;max-width:560px}.onboarding-done-mark{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:var(--color-green-bg);color:var(--color-green);border:1px solid var(--color-green-line);animation:onboarding-mark-pop .54s cubic-bezier(.34,1.56,.64,1) 60ms both}.onboarding-done-mark svg{width:36px;height:36px;stroke-width:2.4}.onboarding-done h1{margin:0;color:var(--color-text);font-size:clamp(28px,3.4vw,38px);line-height:1.15;font-weight:var(--weight-semibold);animation:onboarding-fade-up .52s ease .16s both}.onboarding-done>p{color:var(--color-muted-strong);font-size:15px;font-weight:var(--weight-medium);animation:onboarding-fade-up .52s ease .24s both}.onboarding-done-summary{width:100%;margin:12px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:left;animation:onboarding-fade-up .52s ease .34s both}.onboarding-done-summary>div{display:grid;gap:2px;border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface-soft);padding:10px 12px}.onboarding-done-summary dt{color:var(--color-muted);font-size:11px;font-weight:var(--weight-medium);letter-spacing:.04em;text-transform:uppercase}.onboarding-done-summary dd{margin:0;color:var(--color-text);font-size:14px;font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.onboarding-bottom{display:grid;gap:12px;border-top:1px solid var(--color-line);padding:18px 28px;background:var(--color-surface)}.onboarding-error{justify-self:center;width:min(100%,540px)}.onboarding-bottom-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:540px;margin:0 auto;width:100%}.onboarding-bottom-actions--single{justify-content:center}.onboarding-bottom-actions>.ds-button{min-width:168px;justify-content:center}.onboarding-bottom-actions>.ds-button svg{width:16px;height:16px}.onboarding-back,.onboarding-skip{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--color-muted-strong);cursor:pointer;padding:8px 10px;font-size:14px;font-weight:var(--weight-medium)}.onboarding-back svg{width:14px;height:14px}.onboarding-back:hover,.onboarding-skip:hover{color:var(--color-text)}.ds-field-hint{color:var(--color-muted);font-size:12px;font-weight:var(--weight-medium)}@media(max-width:720px){.onboarding-top{grid-template-columns:1fr auto}.onboarding-top-meta{display:none}.onboarding-stage{padding:32px 16px}.onboarding-done-summary{grid-template-columns:1fr}}@media(max-width:1180px){.app-shell{grid-template-columns:1fr}.dashboard-sidebar{position:static;min-height:auto;height:auto;border-right:0;border-bottom:1px solid var(--color-line);padding:14px;overflow:visible}.dashboard-nav{grid-template-columns:1fr;margin-top:12px}.sidebar-account{margin-top:14px}.dashboard-nav a{justify-content:flex-start;min-height:42px;padding:0 var(--space-3);font-size:14px;text-align:left}.dashboard-main{padding:0}}@media(max-width:760px){.dashboard-sidebar{padding:12px}.app-topbar{min-width:0;padding:0 12px}.app-breadcrumb span:first-child,.app-search-button kbd{display:none}.app-search-button{min-width:0;width:34px;justify-content:center;padding:0}.app-search-button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.command-overlay{place-items:start center;padding:72px 12px 12px}.command-head{min-height:64px;padding:14px}.command-mark{width:34px;height:34px;font-size:22px}.command-input-row{min-height:52px}.command-list button{grid-template-columns:32px minmax(0,1fr)}.command-item-icon{width:32px;height:32px}.command-list button em,.command-foot{display:none}.dashboard-nav,.metrics{grid-template-columns:1fr}.dashboard-head{flex-direction:column;align-items:stretch;min-height:auto;padding:16px}.dashboard-head-actions{justify-content:flex-start;flex-wrap:wrap}.dashboard-head h1{font-size:20px}.dashboard-head p{font-size:12px}.dashboard-main{padding:0}.metrics,.dashboard-section-head{padding-right:16px;padding-left:16px}.empty-state,.data-card,.entity-grid,.page-actions,.students-toolbar,.students-summary,.schedule-board{margin-right:16px;margin-left:16px}.students-toolbar{grid-template-columns:1fr}.students-filters{flex-wrap:wrap;min-height:auto;padding:7px}.students-filters>span{width:100%}.students-summary,.schedule-board{grid-template-columns:1fr}.schedule-agenda-head,.schedule-agenda-actions{align-items:stretch;flex-direction:column}.schedule-agenda-actions select,.schedule-agenda-actions .ds-button{width:100%}.schedule-day-button{min-height:46px}.group-add-student,.group-details-grid,.group-overview,.group-lesson-row,.group-edit-form{grid-template-columns:1fr}.group-edit-form .ds-button{width:100%}.group-edit-form .ds-field:nth-child(4){grid-column:auto}.data-row{grid-template-columns:1fr;gap:10px;padding:14px}.metric-card{min-height:116px}.auth-screen-card{padding:28px}.auth-screen-card--state{padding:26px}.auth-row{grid-template-columns:1fr}.modal-overlay{place-items:end center;padding:16px}.modal-dialog{max-height:calc(100vh - 32px)}.modal-foot{flex-direction:column-reverse;align-items:stretch}.modal-foot .ds-button{width:100%}.student-form-grid{grid-template-columns:1fr}.toast-stack{right:12px;bottom:12px;left:12px}.toast{min-width:0;max-width:none}}.auth-minimal{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;background:var(--color-surface);padding:32px 20px;text-align:center}.auth-minimal-body{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:360px}.auth-minimal-body p{color:var(--color-muted-strong);font-size:15px;line-height:1.4;font-weight:var(--weight-medium)}.auth-minimal-body a{color:var(--color-text);font-size:14px;font-weight:var(--weight-semibold);text-decoration:underline;text-underline-offset:3px}.auth-minimal-body a:hover{text-decoration:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:start center;background:radial-gradient(circle at 50% 12%,rgba(255,255,255,.78),transparent 34%),#1f23284d;padding:9vh 20px 24px;animation:modal-overlay-in .16s ease-out;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}.modal-dialog{position:relative;width:100%;max-height:82vh;display:grid;grid-template-rows:auto 1fr auto;border:1px solid var(--color-line-strong);border-radius:var(--radius-xl);background:linear-gradient(180deg,#f8fafccc,#fff 88px),var(--color-surface);box-shadow:0 28px 80px #1f23282e,0 1px #ffffffe6 inset;animation:modal-dialog-in .18s cubic-bezier(.2,.8,.2,1);overflow:hidden}.modal-dialog:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(var(--color-line) 1px,transparent 1px),linear-gradient(90deg,var(--color-line) 1px,transparent 1px);background-size:28px 28px;opacity:.22;-webkit-mask-image:linear-gradient(#000 0,transparent 128px);mask-image:linear-gradient(#000 0,transparent 128px)}@keyframes modal-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-dialog--sm{max-width:400px}.modal-dialog--md{max-width:620px}.modal-dialog--lg{max-width:760px}.modal-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-line);padding:18px 18px 16px}.modal-mark{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--color-line-strong);border-radius:11px;background:var(--color-surface);box-shadow:0 8px 22px #1f232814}.modal-mark img{width:29px;height:29px;display:block;object-fit:contain}.modal-title-block{min-width:0;flex:1 1 auto}.modal-head h2{color:var(--color-text);font-size:16px;line-height:1.25;font-weight:var(--weight-semibold)}.modal-head p{margin-top:4px;color:var(--color-muted);font-size:12px;line-height:1.45;font-weight:var(--weight-medium)}.modal-close{position:relative;overflow:hidden;flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted-strong);cursor:pointer;box-shadow:inset 0 1px #ffffff9e,inset 0 -10px 20px #1f232806;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.modal-close:hover{background:linear-gradient(180deg,#fff,#f5f7fa);color:var(--color-text);transform:none;box-shadow:inset 0 1px #ffffffd1,inset 0 -10px 20px #1f23280d}.modal-close svg{width:16px;height:16px}.modal-body{position:relative;z-index:1;overflow-y:auto;padding:16px;background:var(--color-surface)}.modal-foot{position:relative;z-index:1;display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px solid var(--color-line);padding:12px 18px;background:#fbfcfd;border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl)}.modal-form{display:grid;gap:13px}.student-modal-form{display:grid;gap:12px}.student-form-section{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:radial-gradient(circle at 0% 0%,rgba(31,35,40,.035),transparent 38%),#fbfcfd;padding:14px}.student-form-section-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.student-form-section-head>span{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--color-line-strong);border-radius:10px;background:linear-gradient(180deg,rgba(255,255,255,.14),transparent 36%),var(--color-text);color:#fff;box-shadow:inset 0 1px #ffffff57,inset 0 -10px 20px #00000024,0 8px 18px #1f23281a}.student-form-section-head svg{width:16px;height:16px;stroke-width:2}.student-form-section-head strong{display:block;color:var(--color-text);font-size:14px;line-height:1.2;font-weight:var(--weight-semibold)}.student-form-section-head p{margin-top:3px;color:var(--color-muted);font-size:12px;line-height:1.35;font-weight:var(--weight-medium)}.student-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.student-form-grid-span{grid-column:1 / -1}.student-form-grid .ds-field{gap:7px;font-size:13px}.student-form-grid .ds-field input{min-height:38px;background:var(--color-surface)}.toast-stack{position:fixed;z-index:110;right:16px;bottom:16px;display:grid;gap:8px;pointer-events:none}.toast{min-width:260px;max-width:360px;display:grid;grid-template-columns:18px minmax(0,1fr) 24px;align-items:center;gap:10px;border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-shadow:0 12px 28px #1f23281f;padding:10px 10px 10px 12px;font-size:13px;line-height:1.35;font-weight:var(--weight-medium);pointer-events:auto;animation:toast-in .18s cubic-bezier(.2,.8,.2,1)}.toast-icon{width:17px;height:17px;stroke-width:2}.toast span{min-width:0}.toast-close{position:relative;overflow:hidden;width:24px;height:24px;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:currentColor;cursor:pointer;opacity:.62;box-shadow:inset 0 1px #ffffff8c,inset 0 -8px 16px #1f232806;transition:background-color .16s ease,opacity .16s ease,box-shadow .16s ease,transform .16s ease}.toast-close:hover{background:linear-gradient(180deg,#ffffff9e,#1f23280a);opacity:1;transform:none;box-shadow:inset 0 1px #ffffffbd,inset 0 -8px 16px #1f23280b}.toast-close svg{width:14px;height:14px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast--success{border-color:var(--color-green-line);background:var(--color-green-bg);color:var(--color-green)}.toast--error{border-color:var(--color-amber-line);background:var(--color-amber-bg);color:var(--color-amber)}.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:18px 22px 0}.ds-button svg{width:16px;height:16px;flex:0 0 auto}
