:root{--accent: #2457D6;--accent-hover: #1B45B0;--accent-soft: #EEF3FD;--accent-softer: #F6F8FE;--ink: #222222;--navy: #222222;--navy-deep: #222222;--blue: #2457D6;--blue-strong: #2457D6;--blue-soft: #EEF3FD;--blue-softer: #F6F8FE;--bg: #FFFFFF;--surface: #FFFFFF;--surface-2: #F7F7F7;--surface-3: #EBEBEB;--border: #EBEBEB;--border-mid: #DDDDDD;--border-strong: #B0B0B0;--text: #222222;--text-2: #6C6C6C;--text-3: #6C6C6C;--success: #16A36A;--success-text: #0E7A4E;--success-soft: #E9F7EF;--warning: #E5A000;--warning-text: #8A5F00;--warning-soft: #FDF6E3;--error: #DC4C4C;--error-text: #C13515;--error-soft: #FDEEEB;--c1: #2A66AE;--c2: #0F9D8A;--c3: #D97A1E;--c4: #8A5CC2;--c5: #6B8E23;--c6: #C2487F;--font: "Plus Jakarta Sans", "Noto Sans Malayalam", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-28: 28px;--fs-30: 30px;--fs-32: 32px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--r-input: 12px;--r-btn: 12px;--r-card: 12px;--r-modal: 32px;--r-photo: 20px;--r-pill: 9999px;--shadow-soft: 0 0 0 1px rgba(0, 0, 0, .02), 0 2px 6px rgba(0, 0, 0, .04), 0 4px 8px rgba(0, 0, 0, .1);--shadow-card: 0 6px 16px rgba(0, 0, 0, .12);--shadow-overlay: 0 0 0 1px rgba(0, 0, 0, .02), 0 8px 24px rgba(0, 0, 0, .1);--shadow-menu: 0 2px 16px rgba(0, 0, 0, .12);--shadow-search: 0 6px 20px rgba(0, 0, 0, .1);--btn-grey: #F2F2F2;--btn-grey-hover: #EBEBEB;--input-line: #8C8C8C;--ring: 0 0 0 2px var(--ink);--vp-medium: 768px;--vp-wide: 1280px;--sidebar: 252px;--rail: 72px;--topbar: 64px;--bottom-nav: 64px;--ease: cubic-bezier(.2,.7,.3,1)}*{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-14);line-height:1.5;-webkit-font-smoothing:antialiased}:lang(ml) body,[lang=ml] body{line-height:1.6}h1,h2,h3,h4,p{margin:0}p{max-width:75ch}h1{font-size:26px;font-weight:600;line-height:30px;color:var(--ink);letter-spacing:-.01em}h2{font-size:var(--fs-18);font-weight:650;line-height:1.3;color:var(--ink);letter-spacing:-.01em}h3{font-size:var(--fs-16);font-weight:600}a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:#000;text-decoration-thickness:2px}a.btn,a.icon-btn,a.list-item,a.tile,a.role-tile,a.side-brand,a.stat-link,a.side-link,.bottom-nav a,a.list-link,.tabs a,a.lesson-card,a.chip,a.mini-card,a.feature-card,a.person-card,a.subject-card{text-decoration:none}a.list-item,a.tile,a.role-tile,a.side-brand,a.stat-link,a.list-link,a.lesson-card,a.mini-card,a.feature-card,a.person-card,a.subject-card{color:inherit}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.muted{color:var(--text-2)}.small{font-size:var(--fs-14)}.xs{font-size:var(--fs-12)}.num{font-variant-numeric:tabular-nums}.strong{font-weight:600}.nowrap{white-space:nowrap}.right{text-align:right}.grow{flex:1;min-width:0}.row{display:flex;align-items:center;gap:var(--s-2)}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.top{align-items:flex-start}.stack{display:flex;flex-direction:column;gap:var(--s-3)}.stack.lg{gap:var(--s-4)}.stack.xl{gap:var(--s-5)}.stack.sm{gap:var(--s-2)}.grid{display:grid;gap:var(--s-4)}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start}.span-2{grid-column:span 2}.clamp1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:40px;padding:0 18px;border-radius:10px;border:1px solid transparent;background:var(--btn-grey);color:var(--ink);font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .15s var(--ease),transform .1s var(--ease),box-shadow .15s var(--ease)}.btn:hover:not(:disabled){background:var(--btn-grey-hover);text-decoration:none}.btn:active:not(:disabled){transform:scale(.96)}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(to right,#2f66e8,#2457d6,#1d4bc4);border-color:transparent;color:#fff}.btn.primary:hover:not(:disabled){background:linear-gradient(to right,#2457d6,#1d4bc4,#183fa6)}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.dark:hover:not(:disabled){background:#000;border-color:#000}.btn.danger{background:var(--error-text);border-color:var(--error-text);color:#fff}.btn.danger:hover:not(:disabled){background:#9f2a10;border-color:#9f2a10}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:3px;padding:0 8px;border-radius:8px}.btn.ghost:hover:not(:disabled){background:var(--surface-2);text-decoration:underline}.btn.link{background:none;border:0;padding:0;min-height:0;color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}.btn.link:hover:not(:disabled){background:none;text-decoration-thickness:2px}.btn.sm{min-height:32px;padding:0 16px;font-size:13px;border-radius:8px}.btn.lg{min-height:48px;padding:0 24px;font-size:var(--fs-16);border-radius:12px}.btn.block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;border:0;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;position:relative;transition:background-color .15s var(--ease)}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.icon-btn.outline{border:1px solid var(--border-mid);background:var(--surface)}.icon-btn.outline:hover{border-color:var(--ink)}.topbar .icon-btn{background:var(--btn-grey)}@media (min-width: 768px) and (pointer: fine){.topbar .icon-btn{width:40px;height:40px}}.topbar .icon-btn:hover{background:var(--btn-grey-hover)}.section-arrow{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--btn-grey);color:var(--ink);transition:background-color .15s var(--ease)}.section-arrow:hover{background:var(--btn-grey-hover);color:var(--ink)}.section-arrow{position:relative}.section-arrow:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.spin{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite,appear 1ms .1s both}@keyframes appear{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field>label,.label{font-size:var(--fs-14);font-weight:600;color:var(--ink)}.field:has(>label+.input:not([type=file]),>label+.select,>label+.textarea,>label+.input-wrap){position:relative}.field:has(>label+.input:not([type=file]),>label+.select,>label+.textarea,>label+.input-wrap)>label{position:absolute;top:8px;left:17px;right:44px;z-index:1;font-size:var(--fs-12);line-height:16px;font-weight:600;color:var(--text-2);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field>label+.input:not([type=file]),.field>label+.select,.field>label+.input-wrap .input{min-height:56px;padding-top:25px;padding-bottom:7px;padding-left:16px}.field>label+.textarea{padding-top:28px}.field.invalid>label{color:var(--error-text)}.req{color:var(--error-text);margin-left:2px}.input,.select,.textarea{width:100%;min-height:44px;padding:10px 16px;border:1px solid var(--input-line);border-radius:var(--r-input);background:var(--surface);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23222222' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:14px}.textarea{min-height:96px;resize:vertical}.input:hover,.select:hover,.textarea:hover{border-color:var(--ink)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--ink);box-shadow:var(--ring)}.input[readonly]{background:var(--surface-2)}.field.invalid .input,.field.invalid .select,.field.invalid .textarea{border-color:var(--error-text);background:var(--error-soft)}.hint{font-size:var(--fs-13);color:var(--text-2)}.err{font-size:var(--fs-13);color:var(--error-text);font-weight:600}.check{display:flex;align-items:flex-start;gap:var(--s-2);cursor:pointer;font-size:var(--fs-14)}.check input,input[type=checkbox],input[type=radio]{accent-color:var(--ink)}.check input{width:18px;height:18px;margin:1px 0 0;flex:none}.input-wrap{position:relative}.input-wrap .input{padding-right:46px}.input-wrap .icon-btn{position:absolute;right:6px;top:50%;margin-top:-19px}.search{position:relative;flex:0 1 300px;min-width:180px;max-width:360px}.search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--ink);pointer-events:none}.search .input{padding-left:42px;border-radius:var(--r-pill);border-color:var(--border-mid);box-shadow:0 1px 2px #0000000f}.search .input:hover{border-color:var(--border-strong);box-shadow:var(--shadow-soft)}.search .input:focus{border-color:var(--ink);box-shadow:var(--ring)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5) var(--s-4)}.form-grid .full{grid-column:1 / -1}.form-section{font-size:var(--fs-18);font-weight:650;color:var(--ink);padding-top:var(--s-4);border-top:1px solid var(--border);grid-column:1 / -1}.form-section:first-child{border-top:0;padding-top:0}.segmented{display:inline-flex;padding:4px;background:var(--surface-3);border-radius:var(--r-pill);gap:2px;max-width:100%;overflow-x:auto;scrollbar-width:none}.segmented button{border:0;background:none;padding:6px 16px;border-radius:var(--r-pill);color:var(--text-2);cursor:pointer;font-weight:600;font-size:var(--fs-14);white-space:nowrap;display:inline-flex;align-items:center;gap:8px}.segmented button:hover{color:var(--ink)}.segmented button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000024}.chips{display:flex;gap:var(--s-2);overflow-x:auto;scrollbar-width:none;padding:2px;margin:-2px}.chips::-webkit-scrollbar{display:none}.chip{display:inline-flex;align-items:center;gap:6px;flex:none;min-height:40px;padding:0 14px;border-radius:40px;border:1px solid var(--border-mid);background:var(--surface);color:var(--ink);font-weight:500;font-size:var(--fs-14);white-space:nowrap;cursor:pointer;transition:border-color .15s var(--ease),background-color .15s var(--ease),box-shadow .15s var(--ease)}.chip:hover{border-color:var(--ink);text-decoration:none}.chip.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--surface-2)}.chip .count{font-size:var(--fs-14);font-weight:500;color:var(--text-2)}.chip.on .count{color:var(--ink)}.chip.alert .count{font-size:var(--fs-12);font-weight:700;border-radius:var(--r-pill);padding:0 7px;line-height:20px}.chip.alert .count{background:var(--error-text);color:#fff}.chip .icon-tile{width:24px;height:24px;border-radius:7px}.card{background:var(--surface);border:1px solid var(--border-mid);border-radius:var(--r-card)}.card-head>.grow{flex:1 1 auto;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-3);padding:18px 20px 10px;flex-wrap:wrap}.card-head .btn.ghost{margin-right:-10px}.card-head .sub,.card-head .xs.muted{margin-top:2px;font-size:var(--fs-13)}.card-body{padding:6px 20px 20px}.card>.card-body:first-child{padding-top:20px}.card-body.flush{padding:0 0 6px}.card>.card-body.flush:first-child{padding:6px 0}.card-body.flush>.list>.list-item:first-child{border-top:1px solid var(--border)}.card>.card-body.flush:first-child>.list>.list-item:first-child{border-top:0}.stat{padding:18px 20px;display:flex;flex-direction:column;gap:2px;min-width:0;height:100%}.stat .label-text{font-size:var(--fs-13);color:var(--text-2);font-weight:500}.stat .value{font-size:var(--fs-28);font-weight:700;color:var(--ink);line-height:1.2;letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:2px}.stat .sub{font-size:var(--fs-13);color:var(--text-2)}.stat .sub.good{color:var(--success-text)}.stat .sub.bad{color:var(--error-text)}.stat .sub.warn{color:var(--warning-text)}a.stat-link{display:block;color:inherit;border-radius:var(--r-card);height:100%}a.stat-link .card{transition:box-shadow .15s var(--ease),border-color .15s var(--ease)}a.stat-link:hover .card{border-color:var(--border-mid);box-shadow:var(--shadow-soft)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--r-pill);font-size:var(--fs-12);font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.badge.good{background:var(--success-soft);color:var(--success-text);border-color:transparent}.badge.warn{background:var(--warning-soft);color:var(--warning-text);border-color:transparent}.badge.bad{background:var(--error-soft);color:var(--error-text);border-color:transparent}.badge.info{background:var(--accent-soft);color:var(--accent);border-color:transparent}.badge.live{background:var(--error-text);color:#fff;border-color:transparent;text-transform:uppercase;letter-spacing:.04em;font-size:var(--fs-12)}.badge.live:before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.sim-tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-12);color:var(--warning-text);font-weight:600}.banner{display:flex;gap:var(--s-3);align-items:flex-start;padding:14px var(--s-4);border-radius:14px;border:1px solid var(--border);background:var(--surface);font-size:var(--fs-14)}.banner svg{flex:none;margin-top:2px}.banner.info{background:var(--surface-2);border-color:transparent}.banner.warn{background:var(--warning-soft);border-color:transparent}.banner.bad{background:var(--error-soft);border-color:transparent}.banner.good{background:var(--success-soft);border-color:transparent}.banner .strong{margin-bottom:2px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--surface-3);color:var(--ink);font-weight:700;font-size:var(--fs-12);letter-spacing:.02em}.avatar.sm{width:26px;height:26px;font-size:12px;letter-spacing:0}.avatar.md{width:44px;height:44px;font-size:var(--fs-14)}.avatar.lg{width:56px;height:56px;font-size:var(--fs-18)}.avatar.xl{width:88px;height:88px;font-size:var(--fs-28)}.progress{height:6px;border-radius:var(--r-pill);background:var(--surface-3);overflow:hidden}.progress>i{display:block;height:100%;background:var(--ink);border-radius:var(--r-pill)}.progress.good>i{background:var(--success)}.progress.warn>i{background:var(--warning)}.progress.bad>i{background:var(--error)}.list{display:flex;flex-direction:column}.list-item{display:flex;gap:var(--s-3);align-items:center;padding:14px 20px;border-bottom:1px solid var(--border);color:inherit;min-width:0}.list-item:last-child{border-bottom:0}a.list-item,button.list-item,label.list-item{transition:background-color .12s var(--ease)}a.list-item:hover,button.list-item:hover,label.list-item:hover{background:var(--surface-2);text-decoration:none}button.list-item{width:100%;background:none;border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer}.kv{display:grid;grid-template-columns:minmax(110px,38%) minmax(0,1fr);gap:10px var(--s-3);font-size:var(--fs-14)}.kv dt{color:var(--text-2);margin:0}.kv dd{margin:0;overflow-wrap:anywhere;font-weight:500}.divider{border:0;border-top:1px solid var(--border);margin:0}.tabs{display:flex;gap:var(--s-5);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a,.tabs button{display:inline-flex;align-items:center;gap:8px;padding:12px 0;border:0;background:none;border-bottom:2px solid transparent;color:var(--text-2);font-weight:600;cursor:pointer;white-space:nowrap;margin-bottom:-1px}.tabs a:hover,.tabs button:hover{color:var(--ink);border-bottom-color:var(--border-mid);text-decoration:none}.tabs .on{color:var(--ink);border-bottom-color:var(--ink)}.tabs .on:hover{border-bottom-color:var(--ink)}.tab-count{font-size:var(--fs-12);color:var(--text-2);font-weight:600;background:var(--surface-2);border-radius:var(--r-pill);padding:0 7px;line-height:20px}.toolbar{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.toolbar-filters{display:contents}.toolbar .export-narrow{display:none}.toolbar .export-wide{margin-left:auto}@media (min-width: 768px) and (pointer: fine){.toolbar .search .input,.toolbar .select,.toolbar .btn{min-height:40px}.toolbar .search .input{padding-top:8px;padding-bottom:8px}.topbar .select{min-height:44px}}.filters-toggle{display:none}.filters-toggle.on{box-shadow:inset 0 0 0 1px var(--ink);background:var(--surface-2)}.toolbar .select{width:auto;max-width:210px;min-height:38px;padding-top:6px;padding-bottom:6px;padding-left:16px;border-radius:var(--r-pill);border-color:var(--border-mid);font-weight:600;font-size:var(--fs-14)}.toolbar .select:hover{border-color:var(--ink)}.toolbar .select:has(option:checked:not([value=""])){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background-color:var(--surface-2)}.chips-row{padding:16px 20px 0}.chips-row+.toolbar{border-top:0}.table-scroll{overflow-x:auto}table.table{width:100%;border-collapse:collapse;font-size:var(--fs-14)}.table th{text-align:left;font-weight:600;color:var(--text-2);font-size:var(--fs-13);padding:12px 20px 10px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);position:sticky;top:0}.table td{padding:14px 20px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table th.num,.table td.num{text-align:right;font-variant-numeric:tabular-nums}.table th button{background:none;border:0;padding:0;color:inherit;font-weight:inherit;cursor:pointer;display:inline-flex;gap:4px;align-items:center}.table th button:hover{color:var(--ink)}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable td.primary-cell{color:var(--ink);font-weight:600}.table tbody tr:hover td{background:var(--surface-2)}.table .actions{width:1%;white-space:nowrap;text-align:right}.table-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:14px 20px;border-top:1px solid var(--border);flex-wrap:wrap;font-size:var(--fs-14);color:var(--text-2)}.cards-list{display:none}.row-card{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;gap:var(--s-3);align-items:flex-start}.row-card:last-child{border-bottom:0}.row-card.clickable{cursor:pointer}.row-card.clickable:active{background:var(--surface-2)}.row-card .rc-main{flex:1;min-width:0}.row-card .rc-title{font-weight:650;color:var(--ink);font-size:var(--fs-16)}.row-card .rc-meta{display:grid;grid-template-columns:auto 1fr;gap:2px var(--s-3);font-size:var(--fs-14);margin-top:6px}.row-card .rc-meta dt{color:var(--text-2);margin:0}.row-card .rc-meta dd{margin:0;min-width:0;overflow-wrap:anywhere}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-2);padding:var(--s-7) var(--s-4);color:var(--text-2)}.empty svg{color:var(--text-3)}.empty h3{color:var(--ink);font-size:var(--fs-16)}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,#eeeeee 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.3s linear infinite,appear 1ms .1s both;border-radius:10px}@keyframes shimmer{to{background-position:-200% 0}}.menu-wrap{position:relative;display:inline-flex}.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;background:var(--surface);border:0;border-radius:12px;box-shadow:var(--shadow-menu);padding:12px 0;z-index:50}.menu.up{top:auto;bottom:calc(100% + 6px)}.menu.left{right:auto;left:0}.menu button,.menu a{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:12px 16px;border:0;background:none;cursor:pointer;text-align:left;color:var(--ink);font-size:var(--fs-14);font-weight:500}.menu button:hover,.menu a:hover{background:var(--surface-2);text-decoration:none}.menu button.danger{color:var(--error-text)}.menu hr{border:0;border-top:1px solid var(--border);margin:8px 0}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:80;display:flex;animation:fade .2s}@keyframes fade{0%{opacity:0}}.modal{margin:auto;width:100%;max-width:520px;max-height:calc(100vh - 48px);background:var(--surface);border-radius:var(--r-modal);box-shadow:var(--shadow-overlay);display:flex;flex-direction:column;animation:rise .25s var(--ease);overflow:hidden}@media (min-width: 768px){.drawer:not(:has(.assist)){margin:auto;height:auto;max-height:calc(100vh - 48px);border-radius:var(--r-modal);overflow:hidden;animation:rise .25s var(--ease)}}.modal.wide{max-width:780px}.modal.xl{max-width:1040px}@keyframes rise{0%{transform:translateY(24px);opacity:0}}.overlay-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:16px 16px 4px 32px;border-bottom:0;flex:none;min-height:64px}.overlay-head h2{font-size:22px;font-weight:600;line-height:26px;letter-spacing:-.01em}.overlay-body{padding:12px 32px 32px;overflow-y:auto;flex:1;min-height:0}.overlay-foot{display:flex;justify-content:flex-end;gap:var(--s-2);padding:16px 24px;border-top:1px solid var(--border);flex:none;flex-wrap:wrap}.overlay-foot .btn{min-height:48px;padding:0 24px;font-size:var(--fs-16);border-radius:12px}.drawer{margin-left:auto;width:100%;max-width:480px;height:100%;background:var(--surface);display:flex;flex-direction:column;box-shadow:var(--shadow-overlay);animation:slide .25s var(--ease)}.drawer.wide{max-width:680px}@keyframes slide{0%{transform:translate(32px);opacity:.4}}@keyframes sheet{0%{transform:translateY(100%)}}.toasts{position:fixed;bottom:var(--s-5);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--s-2);z-index:120;width:min(460px,calc(100vw - 32px));pointer-events:none}.toast{display:flex;gap:10px;align-items:flex-start;padding:14px 24px 14px 16px;background:var(--surface);color:var(--ink);border:1px solid var(--border-mid);border-radius:12px;box-shadow:var(--shadow-overlay);font-size:var(--fs-14);font-weight:500;animation:rise .25s var(--ease);pointer-events:auto}.toast svg{flex:none;margin-top:2px;color:var(--success-text)}.toast.bad svg{color:var(--error-text)}.action-bar{position:sticky;bottom:16px;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3) var(--s-4);flex-wrap:wrap;padding:14px 16px 14px 24px;background:var(--surface);border:1px solid var(--border-mid);border-radius:18px;box-shadow:var(--shadow-card)}.action-bar .ab-main{min-width:0;flex:1 1 auto}.action-bar .ab-total{font-size:var(--fs-18);font-weight:700;color:var(--ink);line-height:1.25;font-variant-numeric:tabular-nums}.action-bar .ab-sub{font-size:var(--fs-13);color:var(--text-2)}.action-bar .ab-actions{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap}.action-bar .steps-bar{flex:1 0 100%;order:-1;margin:-2px 0 2px}.action-bar.stepped .ab-actions{flex:1;justify-content:space-between}.action-bar.stepped{padding-left:16px}.steps-bar{display:flex;gap:6px}.steps-bar i{flex:1;height:4px;border-radius:var(--r-pill);background:var(--surface-3)}.steps-bar i.done{background:var(--ink)}.step-head{display:flex;flex-direction:column;gap:6px}.step-eyebrow{font-size:var(--fs-13);font-weight:600;color:var(--text-2)}.step-head h2{font-size:var(--fs-24);font-weight:700;letter-spacing:-.02em}.shell{display:flex;min-height:100%;width:100%}.sidebar{width:var(--sidebar);flex:none;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:30}.side-brand{display:flex;align-items:center;gap:12px;padding:16px 20px;height:var(--topbar);flex:none;min-width:0}.logo{width:34px;height:34px;border-radius:10px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex:none;font-size:var(--fs-16)}.side-brand-name{font-weight:700;color:var(--ink);line-height:1.25;font-size:var(--fs-14)}.side-brand-sub{font-size:var(--fs-12);color:var(--text-2);line-height:1.25}.side-me{display:none}.side-nav{flex:1;overflow-y:auto;padding:4px 12px 12px;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin}.side-group{font-size:var(--fs-12);font-weight:700;color:var(--text-3);padding:var(--s-4) 12px 6px;letter-spacing:.02em}.side-link{display:flex;align-items:center;gap:14px;padding:8px 12px;border-radius:10px;color:var(--text-2);font-weight:600;font-size:var(--fs-14);min-height:38px;transition:background-color .12s var(--ease),color .12s var(--ease)}.side-link:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.side-link.active{background:var(--surface-2);color:var(--ink);font-weight:700;box-shadow:inset 3px 0 0 var(--ink)}.side-link svg{flex:none}.side-foot{border-top:1px solid var(--border);padding:var(--s-2) 12px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar);background:#fffffff5;-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-5);flex:none}.topbar .select{width:auto;max-width:210px;min-height:40px;padding-top:6px;padding-bottom:6px;padding-left:16px;border-radius:var(--r-pill);border-color:var(--border-mid);font-weight:600}.topbar .select:hover{border-color:var(--ink);box-shadow:var(--shadow-soft)}.topbar .avatar{width:34px;height:34px}.account-trigger{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 5px 0 14px;border:1px solid var(--border-mid);border-radius:var(--r-pill);background:var(--surface);cursor:pointer;transition:box-shadow .15s var(--ease)}.account-trigger:hover{box-shadow:var(--shadow-soft)}.account-trigger[aria-expanded=true]{box-shadow:var(--shadow-soft);border-color:var(--border-strong)}.account-card{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:280px;max-height:calc(100vh - var(--topbar) - 24px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-card);animation:rise .18s var(--ease)}.account-head{padding:16px 18px 14px;border-bottom:1px solid var(--border)}.account-name{font-size:var(--fs-16);font-weight:700;color:var(--ink);line-height:1.3;overflow-wrap:anywhere}.account-contact{margin-top:2px;font-size:var(--fs-13);color:var(--text-2);overflow-wrap:anywhere}.account-rows{margin:0;padding:6px 0}.account-row{display:flex;align-items:center;gap:14px;padding:8px 18px}.account-row>svg{flex:none;color:var(--text-2)}.account-row dt{font-size:var(--fs-12);color:var(--text-2);line-height:1.35}.account-row dd{margin:0;font-size:var(--fs-14);font-weight:600;color:var(--ink);line-height:1.35;overflow-wrap:anywhere}.account-actions{padding:6px 0;border-top:1px solid var(--border)}.account-action{display:flex;align-items:center;gap:14px;width:100%;min-height:44px;padding:0 18px;border:0;background:none;font:inherit;font-size:var(--fs-14);font-weight:500;color:var(--ink);text-align:left;text-decoration:none;cursor:pointer}.account-action:hover{background:var(--surface-2);text-decoration:none}.account-action>svg{flex:none;color:var(--text-2)}.account-action.danger,.account-action.danger>svg{color:var(--error-text);font-weight:600}.nav-toggle,.topbar-brand{display:none}a.topbar-brand{align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:700;font-size:var(--fs-14);min-width:0;flex:0 1 auto}.topbar-brand .logo{width:32px;height:32px;font-size:var(--fs-14)}.topbar-brand .clamp1{max-width:150px}.page{width:100%;max-width:var(--vp-wide);margin-inline:auto;padding:var(--s-6) var(--s-6) var(--s-7);display:flex;flex-direction:column;gap:var(--s-5);flex:1}.page.narrow{max-width:880px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-3) var(--s-4);flex-wrap:wrap}.page-head .sub{color:var(--text-2);margin-top:6px;font-size:var(--fs-16)}.page-actions{display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center}.crumbs{display:flex;gap:8px;align-items:center;font-size:var(--fs-14);color:var(--text-2);margin-bottom:8px;flex-wrap:wrap;font-weight:500}.crumbs a{color:var(--text-2)}.crumbs a:hover{color:var(--ink)}.demo-bar{background:var(--ink);color:#e9e9e9;font-size:var(--fs-12);padding:5px var(--s-4);display:flex;gap:var(--s-3);align-items:center;justify-content:center;flex-wrap:wrap;text-align:center}.demo-bar button{background:none;border:0;color:#fff;text-decoration:underline;cursor:pointer;padding:0;font-size:inherit;font-weight:600}.demo-short{display:none}.bottom-nav{display:none;position:fixed;left:0;right:0;bottom:0;height:calc(var(--bottom-nav) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--border);z-index:40}.bottom-nav a,.bottom-nav button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-2);font-size:12px;font-weight:600;border:0;background:none;cursor:pointer;padding:0 2px}.bottom-nav span:not(.avatar){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-nav a:hover{text-decoration:none;color:var(--ink)}.bottom-nav .active{color:var(--accent)}.bottom-nav .avatar{width:26px;height:26px;font-size:12px;letter-spacing:0}.badge-dot{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--error-text);color:#fff;font-size:12px;line-height:18px;text-align:center;font-weight:700;border:2px solid #fff;box-sizing:content-box}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:var(--s-3);overflow-x:auto;padding-bottom:var(--s-2)}.board-col{background:var(--surface-2);border-radius:var(--r-card);padding:var(--s-2);display:flex;flex-direction:column;gap:var(--s-2);min-height:200px}.board-col.over{outline:2px dashed var(--ink);outline-offset:-2px}.board-col h3{padding:6px 8px;display:flex;justify-content:space-between;font-size:var(--fs-14)}.board-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px var(--s-3);cursor:pointer;transition:box-shadow .15s var(--ease)}.board-card:hover{box-shadow:var(--shadow-soft)}.week{display:grid;grid-template-columns:56px repeat(7,minmax(120px,1fr));min-width:920px;font-size:var(--fs-12)}.week-h{padding:var(--s-2);font-weight:700;text-align:center;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:2;color:var(--ink)}.week-h.today{color:var(--accent);background:var(--accent-softer)}.week-t{border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-3);padding:2px 8px;text-align:right}.week-c{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:54px;padding:3px;position:relative}.week-c.quiet{min-height:26px}.slot{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:6px;padding:4px 8px;margin-bottom:2px;cursor:pointer;color:var(--text);font-size:var(--fs-12)}.slot:hover{background:#dfe8fc}.slot.live{border-left-color:var(--success);background:var(--success-soft)}.slot.conflict{border-left-color:var(--error);background:var(--error-soft)}.day-list{display:flex;flex-direction:column}.tree{display:flex;flex-direction:column;gap:2px}.tree-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;width:100%;background:none;border:0;text-align:left;cursor:pointer;color:var(--text);font-size:var(--fs-14)}.tree-item:hover{background:var(--surface-2)}.tree-item.on{background:var(--surface-2);color:var(--ink);font-weight:700;box-shadow:inset 3px 0 0 var(--ink)}.split{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--s-4);align-items:start}.mark-row{display:flex;align-items:center;gap:var(--s-3);padding:12px 20px;border-bottom:1px solid var(--border)}.mark-row:last-child{border-bottom:0}.mark-row .grow{min-width:0}.mark-opts{display:inline-flex;gap:6px;margin-left:auto;flex:none}.mark-opts button{width:40px;height:40px;border-radius:50%;border:1px solid var(--border-mid);background:var(--surface);font-weight:700;font-size:var(--fs-14);cursor:pointer;color:var(--text-2);transition:background-color .12s var(--ease),border-color .12s var(--ease)}.mark-opts button:hover{border-color:var(--ink);color:var(--ink)}.mark-opts button.P{background:var(--success-text);border-color:var(--success-text);color:#fff}.mark-opts button.A{background:var(--error-text);border-color:var(--error-text);color:#fff}.mark-opts button.L{background:var(--warning-text);border-color:var(--warning-text);color:#fff}.mark-opts button.V{background:var(--accent);border-color:var(--accent);color:#fff}.mark-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--fs-13);color:var(--text-2)}.mark-legend b{color:var(--ink)}.dots{display:flex;flex-wrap:wrap;gap:4px}.dot-day{width:26px;height:26px;border-radius:8px;font-size:var(--fs-12);font-weight:700;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-3)}.dot-day.P{background:var(--success-soft);color:var(--success-text)}.dot-day.A{background:var(--error-soft);color:var(--error-text)}.dot-day.L{background:var(--warning-soft);color:var(--warning-text)}.dot-day.V{background:var(--accent-soft);color:var(--accent)}.chart{width:100%;display:block;overflow:visible}.chart text{font-family:var(--font);fill:var(--text-2);font-size:var(--fs-12)}.chart .grid-line{stroke:var(--border);stroke-width:1}.chart .axis{stroke:var(--border-mid);stroke-width:1}.chart-wrap{position:relative}.chart-tip{position:absolute;pointer-events:none;background:var(--ink);color:#fff;font-size:var(--fs-12);padding:8px 10px;border-radius:8px;transform:translate(-50%,-110%);white-space:nowrap;z-index:5;box-shadow:var(--shadow-card)}.legend{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);font-size:var(--fs-12);color:var(--text-2);margin-top:var(--s-2)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}.hbar{display:grid;grid-template-columns:minmax(96px,150px) minmax(0,1fr) auto;gap:10px var(--s-3);align-items:center;font-size:var(--fs-14)}.hbar .bar{height:8px;background:var(--surface-3);border-radius:var(--r-pill);overflow:hidden}.hbar .bar i{display:block;height:100%;border-radius:var(--r-pill);background:var(--c1)}details.data-table summary{cursor:pointer;font-size:var(--fs-12);color:var(--text-2);margin-top:var(--s-2)}.auth{min-height:100%;display:grid;grid-template-columns:minmax(360px,44%) 1fr;background:var(--bg)}.auth-side{background:var(--surface-2);color:var(--ink);padding:var(--s-7);display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-6);border-right:1px solid var(--border)}.auth-side h1{color:var(--ink);font-size:40px;line-height:1.12;letter-spacing:-.03em;max-width:460px}.auth-side strong{color:var(--ink)!important}.auth-points{display:flex;flex-direction:column;gap:var(--s-4);font-size:var(--fs-16);max-width:420px;color:var(--text-2)}.auth-points div{display:flex;gap:var(--s-3);align-items:flex-start}.auth-points svg{flex:none;width:36px;height:36px;padding:8px;border-radius:10px;background:var(--surface);color:var(--accent);border:1px solid var(--border);box-sizing:border-box;margin-top:-4px}.auth-art{flex:1 1 0;min-height:0;width:100%;max-height:300px;object-fit:contain;object-position:right bottom;-webkit-user-select:none;user-select:none;pointer-events:none}@media (max-height: 720px){.auth-art{display:none}}.auth-main{display:flex;align-items:center;justify-content:center;padding:var(--s-6) var(--s-4)}.auth-card{width:100%;max-width:440px;display:flex;flex-direction:column;gap:var(--s-5)}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}.role-tile{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-4);border-radius:var(--r-card);border:1px solid var(--border-mid);background:var(--surface);cursor:pointer;text-align:left;color:inherit;transition:box-shadow .15s var(--ease),border-color .15s var(--ease)}.role-tile:hover{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);text-decoration:none}.role-tile svg{color:var(--accent);margin-bottom:6px}.demo-box{border:1px dashed var(--border-strong);border-radius:14px;padding:var(--s-4);font-size:var(--fs-14);background:var(--surface);display:flex;flex-direction:column;gap:var(--s-2)}.inst-bar{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface);border:1px solid var(--border-mid);border-radius:14px}.otp-input{letter-spacing:.4em;font-size:var(--fs-18);text-align:center;font-variant-numeric:tabular-nums}.tile{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-card);border:1px solid var(--border);background:var(--surface);color:inherit;min-width:0;transition:box-shadow .15s var(--ease),transform .15s var(--ease)}a.tile:hover{box-shadow:var(--shadow-card);text-decoration:none;transform:translateY(-1px)}.subject-mark,.icon-tile{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;flex:none;font-size:var(--fs-16)}.icon-tile.soft{color:var(--ink)}.icon-tile.lg{width:56px;height:56px;border-radius:16px;font-size:var(--fs-20)}.hero{background:var(--surface-2);color:var(--ink);border-radius:var(--r-card);padding:var(--s-5);display:flex;gap:var(--s-4);align-items:center;justify-content:space-between;flex-wrap:wrap}.hero h2{color:var(--ink);font-size:var(--fs-20)}.ring-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none}.ring-wrap b{position:absolute;font-size:var(--fs-13);color:var(--ink)}[data-band=junior]{--fs-14: 16px;--fs-13: 15px;--fs-12: 14px;--fs-16: 18px;--fs-18: 20px;--fs-24: 28px;--fs-28: 30px;--r-card: 20px;--r-btn: 12px}[data-band=junior] .tile{padding:var(--s-5)}[data-band=junior] .btn{min-height:48px}[data-band=junior] .subject-mark,[data-band=junior] .subject-card .icon-tile{width:64px;height:64px;border-radius:18px;font-size:var(--fs-24)}.player{background:#111;border-radius:var(--r-card);overflow:hidden;color:#fff}.player-stage{aspect-ratio:16 / 9;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6%;text-align:center;background:linear-gradient(160deg,#1d2a44,#111);cursor:pointer;border:0;width:100%;color:#fff}.player-stage h3{font-size:clamp(16px,2.6vw,28px);font-weight:700;margin-bottom:12px;color:#fff}.player-stage p{font-size:clamp(13px,1.8vw,18px);color:#d6d6d6;max-width:80%}.player-caption{position:absolute;left:50%;bottom:8%;transform:translate(-50%);background:#000000b8;padding:4px 12px;border-radius:6px;font-size:clamp(12px,1.5vw,15px);max-width:88%}.player-controls{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);flex-wrap:wrap}.player-controls .icon-btn{color:#fff}.player-controls .icon-btn:hover{background:#ffffff24;color:#fff}.player-controls select{background:#2a2a2a;color:#fff;border:0;border-radius:8px;padding:4px 8px}.player-controls input[type=range]{flex:1 1 180px;accent-color:#fff;min-width:120px}.timeline-mark{font-variant-numeric:tabular-nums;font-size:var(--fs-12);color:#d6d6d6}.live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--s-2)}.live-tile{aspect-ratio:4/3;background:#1f1f1f;border-radius:12px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:var(--fs-12);text-align:center;padding:4px;position:relative}.whiteboard{width:100%;height:300px;background:#fff;border:1px solid var(--border);border-radius:12px;touch-action:none;cursor:crosshair;display:block}.cbt{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--s-4);align-items:start}.cbt-bar{position:sticky;top:0;z-index:25;background:var(--surface);border-bottom:1px solid var(--border);padding:12px var(--s-4);display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap}.timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--fs-18);color:var(--ink);display:inline-flex;gap:8px;align-items:center}.timer.low{color:var(--error-text)}.palette{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.palette button{aspect-ratio:1;border-radius:50%;border:1px solid var(--border-mid);background:var(--surface);cursor:pointer;font-weight:700;font-size:var(--fs-14);color:var(--text-2)}.palette button.answered{background:var(--ink);border-color:var(--ink);color:#fff}.palette button.flagged{background:var(--warning-soft);border-color:var(--warning);color:var(--warning-text)}.palette button.current{outline:2px solid var(--accent);outline-offset:2px}.option{display:flex;gap:var(--s-3);align-items:flex-start;padding:14px var(--s-4);border:1px solid var(--border-mid);border-radius:14px;cursor:pointer;background:var(--surface);transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}.option:hover{border-color:var(--ink)}.option.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--surface-2)}.option.correct{border-color:var(--success);background:var(--success-soft)}.option.wrong{border-color:var(--error);background:var(--error-soft)}.option input{margin-top:4px;flex:none}.q-text{font-size:var(--fs-16);line-height:1.6;white-space:pre-wrap}.q-figure{max-width:240px}.thread{display:flex;flex-direction:column;gap:var(--s-2)}.bubble{max-width:80%;padding:10px 14px;border-radius:18px 18px 18px 6px;background:var(--surface-2);font-size:var(--fs-14);align-self:flex-start;overflow-wrap:anywhere}.bubble.me{background:var(--ink);color:#fff;align-self:flex-end;border-radius:18px 18px 6px}.bubble small{display:block;color:var(--text-2);font-size:var(--fs-12);margin-top:4px}.bubble.me small{color:#cfcfcf}.quick-replies{display:flex;gap:var(--s-2);overflow-x:auto;scrollbar-width:none}.quick-replies .chip{min-height:34px;font-weight:500}.id-card{width:324px;max-width:100%;border:1px solid var(--border-mid);border-radius:14px;overflow:hidden;background:#fff;font-size:12px}.id-card-head{background:var(--ink);color:#fff;padding:12px;font-weight:700}.doc-sheet{background:#fff;color:#1b1b1b;font-size:var(--fs-14)}.doc-sheet table{width:100%;border-collapse:collapse}.doc-sheet th,.doc-sheet td{padding:8px;border-bottom:1px solid var(--border);text-align:left}.doc-sheet td.num,.doc-sheet th.num{text-align:right}.void-mark{color:var(--error-text);border:2px solid var(--error-text);display:inline-block;padding:2px 12px;font-weight:700;letter-spacing:.1em;transform:rotate(-4deg)}tr.clickable:focus-visible,.row-card.clickable:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.paper-q{break-inside:avoid;display:flex;flex-direction:column;gap:var(--s-2)}.paper-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-1) var(--s-4);padding-left:var(--s-4)}.paper-lines span{display:block;height:24px;border-bottom:1px solid var(--border-strong)}.sign-row{display:flex;justify-content:space-between;gap:var(--s-4);padding-top:var(--s-7);font-size:var(--fs-12);color:var(--text-2)}.sign-row span{flex:1;border-top:1px solid var(--border-strong);padding-top:var(--s-1);text-align:center}.icon-btn{position:relative}.icon-btn[aria-label]:after{content:attr(aria-label);display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:60;padding:5px 9px;border-radius:6px;background:var(--ink);color:#fff;font-size:var(--fs-12);font-weight:600;line-height:1.4;white-space:nowrap;pointer-events:none}.icon-btn[aria-label]:focus-visible:after{display:block}@media (hover: hover){.icon-btn[aria-label]:hover:after{display:block}}.topbar .icon-btn:after,.overlay-head .icon-btn:after,.actions .icon-btn:after,.list-item .icon-btn:after,.row-card .icon-btn:after,.contact-btns .icon-btn:after{left:auto;right:0;transform:none}.player-controls .icon-btn:after{top:auto;bottom:calc(100% + 4px)}.section{display:flex;flex-direction:column;gap:var(--s-3);min-width:0}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-3)}.section-head h2{font-size:22px;font-weight:600;line-height:26px;letter-spacing:-.01em}.section-head .title-row{display:flex;align-items:center;gap:12px;min-width:0}.section-head .sub{font-size:var(--fs-14);color:var(--text-2);margin-top:2px}.greeting{display:flex;align-items:center;gap:var(--s-4)}.greeting .eyebrow{font-size:var(--fs-14);color:var(--text-2);font-weight:600}.greeting h1{margin-top:2px}.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,260px);gap:var(--s-4);overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 8px;margin:-2px -2px -8px;scrollbar-width:thin}.rail>*{scroll-snap-align:start;min-width:0}.lesson-card{display:flex;flex-direction:column;gap:10px;min-width:0}.lesson-card:hover .thumb{box-shadow:var(--shadow-card)}.lesson-card .lc-title{font-weight:650;color:var(--ink);font-size:var(--fs-14);line-height:1.35}.lesson-card .lc-meta{font-size:var(--fs-13);color:var(--text-2)}.thumb{position:relative;aspect-ratio:16 / 10;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden;transition:box-shadow .15s var(--ease);background:var(--subject, var(--c1));background-image:radial-gradient(120% 90% at 100% 0%,rgba(255,255,255,.28),transparent 55%),linear-gradient(160deg,transparent,rgba(0,0,0,.18))}.thumb .thumb-mark{font-size:34px;font-weight:800;line-height:1;opacity:.95;display:inline-flex}.thumb .thumb-pill{position:absolute;right:10px;bottom:10px;background:#fffffff0;color:var(--ink);font-size:12px;font-weight:700;padding:3px 8px;border-radius:var(--r-pill)}.thumb .thumb-tag{position:absolute;left:10px;top:10px;background:#fffffff0;color:var(--ink);font-size:12px;font-weight:700;padding:3px 9px;border-radius:var(--r-pill)}.thumb .thumb-progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:#ffffff59}.thumb .thumb-progress i{display:block;height:100%;background:#fff}.feature-card{display:flex;gap:var(--s-4);align-items:center;padding:var(--s-4);border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-soft);min-width:0}.feature-card .thumb{flex:0 0 168px}.feature-card .fc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.feature-card .fc-eyebrow{font-size:var(--fs-13);font-weight:600;color:var(--text-2)}.feature-card .fc-title{font-size:var(--fs-20);font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.25}.feature-card .fc-meta{font-size:var(--fs-14);color:var(--text-2)}.feature-card.live{border-color:transparent;background:var(--ink);color:#fff;box-shadow:var(--shadow-card)}.feature-card.live .fc-title{color:#fff}.feature-card.live .fc-meta,.feature-card.live .fc-eyebrow{color:#d9d9d9}.feature-card.live .btn.primary{background:#fff;border-color:#fff;color:var(--ink)}.feature-card.live .btn.primary:hover:not(:disabled){background:#f0f0f0}.search-pill{display:flex;align-items:center;gap:var(--s-3);width:100%;max-width:560px;min-height:56px;padding:6px 6px 6px 24px;border:1px solid var(--border-mid);border-radius:var(--r-pill);background:var(--surface);box-shadow:0 3px 12px #00000014;transition:box-shadow .15s var(--ease)}.search-pill:hover{box-shadow:var(--shadow-card)}.search-pill:focus-within{border-color:var(--ink)}.search-pill input{flex:1;min-width:0;border:0;outline:none;background:none;font-size:var(--fs-16);font-weight:500;min-height:44px}.search-pill input::placeholder{color:var(--text-2)}.search-pill .go{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;border:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.search-pill .go:hover:not(:disabled){background:var(--accent-hover)}.search-pill .go:disabled{background:var(--surface-3);color:var(--text-2);cursor:default}.subject-card{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-card);border:1px solid var(--border);background:var(--surface);transition:box-shadow .15s var(--ease),transform .15s var(--ease);min-width:0}.subject-card:hover{box-shadow:var(--shadow-card);transform:translateY(-1px)}.subject-card .sc-name{font-weight:700;color:var(--ink);font-size:var(--fs-16)}.subject-card .sc-meta{font-size:var(--fs-13);color:var(--text-2)}.mini-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3)}.mini-card{display:flex;flex-direction:column;gap:6px;padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);min-width:0;transition:box-shadow .15s var(--ease)}a.mini-card:hover{box-shadow:var(--shadow-card)}.mini-card .mc-icon{width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--ink);margin-bottom:4px}.mini-card .mc-icon.good{background:var(--success-soft);color:var(--success-text)}.mini-card .mc-icon.warn{background:var(--warning-soft);color:var(--warning-text)}.mini-card .mc-icon.bad{background:var(--error-soft);color:var(--error-text)}.mini-card .mc-value{font-size:var(--fs-24);font-weight:700;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.2}.mini-card .mc-label{font-size:var(--fs-13);color:var(--text-2);line-height:1.4}.person-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:var(--s-5) var(--s-4) var(--s-4);border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-soft);min-width:0}.person-card .pc-name{font-weight:700;color:var(--ink);font-size:var(--fs-16)}.person-card .pc-meta{font-size:var(--fs-13);color:var(--text-2)}.timeline{display:flex;flex-direction:column}.timeline .tl-item{display:grid;grid-template-columns:78px 18px minmax(0,1fr) auto;gap:0 var(--s-3);align-items:start;padding:12px 0}.timeline .tl-time{font-weight:700;color:var(--ink);font-size:var(--fs-14);font-variant-numeric:tabular-nums;padding-top:1px}.timeline .tl-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--ink);background:var(--surface);margin-top:4px;position:relative}.timeline .tl-item:not(:last-child) .tl-dot:after{content:"";position:absolute;left:3px;top:14px;width:2px;height:46px;background:var(--border-mid)}.timeline .tl-item.now .tl-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.timeline .tl-item.done .tl-dot{background:var(--ink)}.profile-head{display:flex;align-items:center;gap:var(--s-5);flex-wrap:wrap}.profile-head .ph-main{flex:1 1 280px;min-width:0}.profile-head .ph-facts{display:flex;flex-wrap:wrap;gap:4px 0;color:var(--text-2);font-size:var(--fs-16);margin-top:6px}.profile-head .ph-facts span:not(:last-child):after{content:"·";margin:0 8px;color:var(--text-3)}.with-aside{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s-6);align-items:start}.with-aside>.stack{min-width:0}.aside-card{position:sticky;top:calc(var(--topbar) + 24px);border:1px solid var(--border-mid);border-radius:20px;box-shadow:var(--shadow-card);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4);background:var(--surface)}.aside-total{font-size:var(--fs-28);font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.1;font-variant-numeric:tabular-nums}.aside-total small{font-size:var(--fs-16);font-weight:500;color:var(--text-2);letter-spacing:0}.aside-rows{display:flex;flex-direction:column;border-top:1px solid var(--border)}.aside-rows>div{display:flex;justify-content:space-between;gap:var(--s-3);padding:10px 0;border-bottom:1px solid var(--border);font-size:var(--fs-14)}.aside-rows>div>span:first-child{color:var(--text-2)}.aside-rows>div>span:last-child{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.contact-btns{display:flex;gap:var(--s-2)}.contact-btns .btn{flex:1}.fee-hero{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;padding:var(--s-5);border:1px solid var(--border-mid);border-radius:20px;box-shadow:var(--shadow-card);background:var(--surface)}.fee-hero .fh-label{font-size:var(--fs-14);color:var(--text-2);font-weight:600}.fee-hero .fh-total{font-size:36px;font-weight:800;letter-spacing:-.03em;color:var(--ink);line-height:1.1;font-variant-numeric:tabular-nums}.fee-hero .fh-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:var(--fs-14);color:var(--text-2);margin-top:6px}@media (pointer: coarse),(max-width: 767.98px){.btn,.btn.sm{min-height:44px}.btn.link{min-height:44px;display:inline-flex;align-items:center}.icon-btn{width:44px;height:44px}.input,.select,.toolbar .select,.topbar .select,.player-controls select,.side-link{min-height:44px}.mark-opts button{width:44px;height:44px}.menu button,.menu a,.tabs a,.tabs button,.segmented button,.chip,.quick-replies .chip{min-height:44px}.check{min-height:44px;align-items:center}.check input{margin-top:0;width:20px;height:20px}.option,.tree-item{min-height:44px}.table-foot .btn{min-width:44px}}.form-page{width:100%;max-width:880px;margin-inline:auto;display:flex;flex-direction:column;gap:var(--s-5)}.attn-list{display:flex;flex-direction:column}.attn-item{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-3);padding:14px 20px;border-top:1px solid var(--border)}.attn-item>.grow{flex:1 1 240px}.attn-icon{width:40px;height:40px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--warning-soft);color:var(--warning-text)}.attn-icon.bad{background:var(--error-soft);color:var(--error-text)}.attn-clear{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-4) 20px;color:var(--success-text);font-weight:600}.till-total{font-size:var(--fs-28);font-weight:700;color:var(--ink);line-height:1.2;letter-spacing:-.02em}.till-row{display:flex;justify-content:space-between;gap:var(--s-3);padding:10px 0;border-bottom:1px solid var(--border);font-size:var(--fs-14)}.till-row:last-child{border-bottom:0}.till-row .num{font-variant-numeric:tabular-nums;white-space:nowrap}.section-label{font-size:var(--fs-14);font-weight:700;color:var(--text-2)}a.list-link{color:inherit}a.list-link:hover{text-decoration:none}a.list-link:hover .strong{text-decoration:underline}.top-search{flex:0 1 380px;min-width:0}.top-search-box,.top-search-field{position:relative}.top-search-field>svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--ink);pointer-events:none}.top-search-field .input{padding-left:42px;border-radius:var(--r-pill);border-color:var(--border-mid);box-shadow:0 1px 2px #0000000f}.top-search-field .input:hover{box-shadow:var(--shadow-soft);border-color:var(--border-strong)}.top-search-field .input:focus{border-color:var(--ink);box-shadow:var(--ring)}.topbar .top-search-box .input{min-height:44px;padding-top:8px;padding-bottom:8px}.top-search-results{position:absolute;top:calc(100% + 8px);left:0;width:max(100%,340px);max-height:70vh;overflow-y:auto;z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-card)}.top-search-results ul{list-style:none;margin:0;padding:8px}.top-search-results li{padding:10px 14px;border-radius:12px;cursor:pointer;min-width:0}.top-search-results li.on{background:var(--surface-2)}.top-search-note{padding:10px 18px}.top-search-note+.top-search-note,ul+.top-search-note{border-top:1px solid var(--border)}.modal .top-search-results{position:static;width:auto;max-height:none;margin-top:var(--s-3);box-shadow:none}.topbar .top-search-btn{display:none}.feature-card,.person-card,.subject-card,.mini-card,.tile{border-radius:var(--r-card);border-color:var(--border-mid);box-shadow:none}.feature-card.live{border-color:transparent}a.mini-card:hover,a.subject-card:hover,a.tile:hover,a.feature-card:hover{box-shadow:var(--shadow-card)}.aside-card,.fee-hero{border-radius:var(--r-card);border-color:transparent;box-shadow:var(--shadow-card)}.action-bar .btn.primary{border-radius:var(--r-pill)}@media (min-width: 768px){.action-bar{border-radius:var(--r-card);border-color:transparent;box-shadow:var(--shadow-card);padding:16px 24px}.action-bar.stepped{padding:16px 24px}}.thumb{border-radius:var(--r-photo);box-shadow:0 0 0 1px #00000005,0 8px 24px #0000001a}.feature-card .thumb{border-radius:12px;box-shadow:none}.lesson-card:hover .thumb{box-shadow:0 0 0 1px #00000005,0 12px 28px #00000029}.thumb .thumb-tag,.thumb .thumb-pill{background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.5);border-radius:14px;padding:4px 10px;font-size:13px;font-weight:600;color:var(--ink);box-shadow:var(--shadow-soft)}.thumb .thumb-tag{font-size:var(--fs-14)}.topbar .select{border-color:transparent;background-color:transparent;box-shadow:none}.topbar .select:hover{border-color:transparent;background-color:var(--surface-2);box-shadow:none}.account-trigger{height:40px;padding:0 4px 0 12px;border:0;background:var(--btn-grey)}.account-trigger:hover{background:var(--btn-grey-hover);box-shadow:none}.account-trigger .avatar{width:32px;height:32px}.top-search-field .input{border-color:var(--border-mid);box-shadow:0 1px 2px #00000014,0 4px 12px #0000000d}.top-search-field .input:hover{border-color:var(--border-mid);box-shadow:0 2px 4px #0000002e}.topbar .top-search-box .input{min-height:48px}.search .input{border-color:var(--border-mid)}.search-pill{min-height:64px;padding:8px 8px 8px 28px;border-color:var(--border-mid);box-shadow:var(--shadow-search)}.search-pill:hover{box-shadow:0 8px 24px #00000024}.search-pill .go{width:48px;height:48px}.badge{border-radius:14px}@media (max-width: 1279.98px){.table .hide-medium{display:none}.table th,.table td{padding-inline:12px}.table th:first-child,.table td:first-child{padding-left:20px}.table th:last-child,.table td:last-child{padding-right:20px}.sidebar:not(.open){width:var(--rail)}.sidebar:not(.open) .side-brand-text,.sidebar:not(.open) .side-link span,.sidebar:not(.open) .side-group{display:none}.sidebar:not(.open) .side-link{justify-content:center;padding:8px}.sidebar:not(.open) .side-link.active{box-shadow:none}.sidebar:not(.open) .side-nav{padding-inline:10px}.sidebar:not(.open) .side-brand{justify-content:center;padding:8px}.sidebar.open{position:fixed;left:0;top:0;box-shadow:var(--shadow-overlay);z-index:70}.nav-toggle{display:inline-flex}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-main,.cbt{grid-template-columns:minmax(0,1fr)}.split{grid-template-columns:260px minmax(0,1fr)}.page{padding:var(--s-5) var(--s-5) var(--s-7)}.with-aside{grid-template-columns:minmax(0,1fr) 300px;gap:var(--s-5)}}@media (max-width: 1023.98px){.with-aside{grid-template-columns:minmax(0,1fr)}.with-aside>.aside-card{order:-1}.aside-card{position:static;box-shadow:var(--shadow-soft)}.mini-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 767.98px){.sidebar:not(.open){display:none}.sidebar.open{width:min(320px,88vw)}.sidebar.open .side-me{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4) 20px;border-bottom:1px solid var(--border)}.page{padding:var(--s-4) var(--s-4) calc(var(--bottom-nav) + var(--s-5));gap:var(--s-4)}.bottom-nav{display:flex}.topbar{padding:0 var(--s-4);height:60px}.topbar .nav-toggle{display:none}.topbar-brand{display:flex}.account-trigger,.demo-long{display:none}.demo-short{display:inline}.demo-bar{padding:4px var(--s-4);flex-wrap:nowrap}.g2,.g3{grid-template-columns:minmax(0,1fr)}.g4,.g2.keep{grid-template-columns:repeat(2,minmax(0,1fr))}.g3.keep{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}.g3.keep .stat{padding:12px}.g3.keep .stat .value{font-size:var(--fs-18)}.g3.keep .stat .sub{font-size:var(--fs-12)}.span-2{grid-column:auto}.form-grid{grid-template-columns:minmax(0,1fr);gap:var(--s-4)}.split{grid-template-columns:minmax(0,1fr)}.table-wide{display:none}.cards-list{display:block}.input,.select,.textarea{font-size:16px}.toolbar{padding:12px var(--s-4)}.chips-row{padding:12px var(--s-4) 0}.filters-toggle{display:inline-flex;flex:none}.toolbar>.grow{display:none}.toolbar .export-wide{display:none}.toolbar-filters.open .export-narrow{display:inline-flex}.toolbar-filters:not(.open){display:none}.toolbar-filters.open{display:flex;flex-wrap:wrap;gap:var(--s-2);width:100%}.toolbar .select{flex:1 1 140px;min-width:0;max-width:100%}.player-bigplay{display:none}.search{max-width:none;flex:1 1 0;min-width:0}.topbar .select{max-width:160px;padding-left:12px;padding-right:30px;background-position:right 10px center}.topbar .hide-narrow,.topbar .top-search{display:none}.topbar .top-search-btn{display:inline-flex}.page-head .page-actions{width:100%}.page-head .page-actions .btn{flex:1 1 auto}.page-head .sub{font-size:var(--fs-14)}.auth{grid-template-columns:minmax(0,1fr)}.auth-side{display:none}.scrim{align-items:flex-end}.modal,.drawer,.drawer.wide{margin:0;width:100%;max-width:none;height:auto;max-height:calc(100% - 24px);border-radius:var(--r-modal) var(--r-modal) 0 0;animation:sheet .3s var(--ease)}.modal:before,.drawer:before{content:"";display:block;width:40px;height:5px;border-radius:3px;background:var(--border-mid);margin:8px auto 0;flex:none}.overlay-head{min-height:56px;padding:6px 8px 10px var(--s-4)}.overlay-body{padding:var(--s-4)}.overlay-foot{padding:12px var(--s-4) calc(12px + env(safe-area-inset-bottom,0px))}.overlay-foot .btn{flex:1 1 auto}.toasts{bottom:calc(var(--bottom-nav) + var(--s-3))}.action-bar{bottom:calc(var(--bottom-nav) + env(safe-area-inset-bottom,0px));margin:0 calc(-1 * var(--s-4));border-radius:18px 18px 0 0;border-width:1px 0 0;padding:12px var(--s-4);box-shadow:0 -6px 16px #00000014;flex-wrap:nowrap}.action-bar .ab-total{font-size:var(--fs-16);white-space:nowrap}.action-bar .ab-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-bar:not(.stepped) .ab-actions .btn.ghost{display:none}.action-bar.stepped{flex-wrap:wrap}.mark-row .avatar{display:none}.profile-head{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center}.profile-head .page-actions{grid-column:1 / -1}.profile-head .page-actions .btn{flex:1 1 auto;padding:0 12px}.action-bar .ab-actions{flex-wrap:nowrap}.action-bar .ab-actions .btn{white-space:nowrap}.mark-row{padding:10px var(--s-4);gap:var(--s-2)}.mark-opts{gap:4px}.palette{grid-template-columns:repeat(6,1fr)}.btn{white-space:normal;text-align:center;height:auto}.paper-options{grid-template-columns:minmax(0,1fr)}.doc-sheet .right{text-align:left}.g2.keep .tile>.row{flex-direction:column;align-items:flex-start}.g2.keep .tile .clamp1{-webkit-line-clamp:2;white-space:normal}.bottom-nav a,.bottom-nav button{padding-inline:1px}.hero{padding:var(--s-4)}h1{font-size:var(--fs-24)}.overlay-head h2{font-size:var(--fs-18);line-height:24px}.search-pill{min-height:56px;padding:6px 6px 6px 20px}.search-pill .go{width:44px;height:44px}.step-head h2{font-size:var(--fs-20)}.bubble{max-width:92%}.hbar{grid-template-columns:minmax(80px,110px) minmax(0,1fr) auto}.rail{grid-auto-columns:74%;gap:var(--s-3)}.mini-rail{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:46%;overflow-x:auto;scrollbar-width:none;padding:2px;margin:-2px}.feature-card{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:var(--s-3);padding:var(--s-3)}.feature-card .thumb{width:88px;aspect-ratio:1;border-radius:12px}.feature-card .thumb .thumb-mark{font-size:26px}.feature-card .thumb .thumb-mark svg{width:30px;height:30px}.feature-card .fc-title{font-size:var(--fs-16)}.feature-card>.btn{grid-column:1 / -1;width:100%}.greeting .avatar.xl{width:64px;height:64px;font-size:var(--fs-20)}.topbar:has(.select:not(.hide-narrow)) .topbar-brand .clamp1{display:none}.search-pill{min-height:52px;padding-left:18px}.profile-head{gap:var(--s-4)}.profile-head .avatar.xl{width:64px;height:64px;font-size:var(--fs-20)}.profile-head .ph-facts{font-size:var(--fs-14)}.fee-hero{padding:var(--s-4)}.fee-hero .fh-total{font-size:30px}.section-head h2{font-size:var(--fs-18)}.timeline .tl-item{grid-template-columns:70px 16px minmax(0,1fr)}.timeline .tl-item>:last-child:not(.tl-body){grid-column:3;margin-top:6px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.skeleton,.spin{animation:appear 1ms .1s both!important}a.tile:hover,.subject-card:hover,.btn:active:not(:disabled){transform:none}}@media print{body{background:#fff}.sidebar,.topbar,.bottom-nav,.demo-bar,.page-actions,.toasts,.no-print,.overlay-head,.overlay-foot,.action-bar{display:none!important}.scrim{position:static;background:none;display:block}.modal,.drawer{box-shadow:none;max-width:none;max-height:none;height:auto;animation:none;margin:0;border-radius:0}.modal:before,.drawer:before{display:none}.overlay-body{overflow:visible;padding:0}.page{padding:0;max-width:none}.card{break-inside:avoid}}.assist-fab{position:fixed;right:24px;bottom:24px;z-index:45;display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 22px 0 18px;border:0;border-radius:var(--r-pill);background:var(--ink);color:#fff;font:inherit;font-weight:700;font-size:var(--fs-16);white-space:nowrap;cursor:pointer;box-shadow:0 0 0 1px #ffffff24,var(--shadow-overlay);transition:background .15s var(--ease),transform .15s var(--ease);transform:translateY(calc(-1 * var(--fab-lift, 0px)))}.assist-fab svg{flex:none;color:#9db8ff}.assist-fab:hover{background:#000}.shell .page{padding-bottom:calc(var(--s-7) + 56px)}.shell .page:has(.action-bar){padding-bottom:16px}.shell .action-bar{margin-top:56px}.assist{display:flex;flex-direction:column;gap:var(--s-4)}.assist-scope{display:flex;align-items:center;gap:var(--s-2);padding:10px 12px;border-radius:12px;background:var(--surface-2);color:var(--text-2);font-size:var(--fs-13);line-height:1.4}.assist-scope>svg{color:var(--success-text);flex:none}.assist-scope .badge,.assist-scope .sim-tag{flex:none}.assist-intro{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2);padding-top:var(--s-2)}.assist-intro h3{margin-top:var(--s-2);font-size:var(--fs-20);font-weight:700;letter-spacing:-.01em}.assist-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--accent-soft);color:var(--accent)}.assist-mark.sm{width:28px;height:28px;border-radius:9px}.assist-suggest{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}.assist-suggest .chip{max-width:100%;padding:8px 14px;font-weight:500;line-height:1.35;text-align:left;white-space:normal}.assist-thread{display:flex;flex-direction:column;gap:var(--s-4)}.assist-msg{display:flex;align-items:flex-start;gap:10px;min-width:0}.assist-msg.me{justify-content:flex-end}.assist-bubble{min-width:0;max-width:100%;line-height:1.55;overflow-wrap:anywhere}.assist-msg.me .assist-bubble{max-width:85%;padding:9px 14px;border-radius:18px 18px 4px;background:var(--accent);color:#fff;white-space:pre-wrap}.assist-msg.bot .assist-bubble{flex:1;padding-top:3px}.assist-bubble>*+*{margin-top:8px}.assist-bubble ul,.assist-bubble ol{margin-bottom:0;padding-left:20px}.assist-bubble li+li{margin-top:3px}.assist-bubble a{font-weight:600}.assist-bubble code{padding:1px 5px;border-radius:5px;background:var(--surface-2);font-size:.92em}.assist-note{font-size:var(--fs-12);color:var(--warning-text)}.assist-typing{display:inline-flex;align-items:center;gap:10px;padding-top:4px;color:var(--text-2)}.assist-dots{display:inline-flex;gap:4px}.assist-dots i{width:6px;height:6px;border-radius:50%;background:var(--text-3);animation:pulse 1.2s infinite}.assist-dots i:nth-child(2){animation-delay:.2s}.assist-dots i:nth-child(3){animation-delay:.4s}.assist-more{display:flex;justify-content:center}.assist-more .btn{gap:6px}.drawer:has(.assist) .overlay-foot{padding:12px 16px}.assist-compose{display:flex;align-items:flex-end;gap:var(--s-2);width:100%}.assist-compose textarea{flex:1;min-width:0;min-height:44px;max-height:120px;padding:11px 16px;resize:none;border:1px solid var(--border-mid);border-radius:22px;background:var(--surface);line-height:1.4}.assist-compose textarea:focus-visible{outline:none;border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.overlay-foot .assist-send{width:44px;height:44px;min-height:44px;flex:none;padding:0;border-radius:50%}@media (max-width: 767.98px){.assist-fab{right:16px;bottom:calc(var(--bottom-nav) + env(safe-area-inset-bottom,0px) + 16px);height:48px;padding:0 18px 0 15px;font-size:var(--fs-14)}.shell .page{padding-bottom:calc(var(--bottom-nav) + var(--s-5) + 64px)}.shell .page:has(.action-bar){padding-bottom:calc(var(--bottom-nav) + env(safe-area-inset-bottom,0px))}.drawer:has(.assist){height:calc(100% - 24px)}.drawer:has(.assist) .overlay-foot{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.assist-compose textarea{font-size:16px}}@media (prefers-reduced-motion: reduce){.assist-dots i{animation:none}.assist-fab{transition:none}}@media (max-width: 767.98px){body:has(.action-bar:not(.on-home)) .assist-fab{display:none}.shell .action-bar:not(.on-home){margin-top:var(--s-4)}}.login-sent{display:flex;flex-direction:column;gap:var(--s-2)}.login-sent>.row{flex-wrap:wrap}.login-slip{padding:var(--s-4) var(--s-5);border:1px dashed var(--border-strong);border-radius:var(--r-card);display:flex;flex-direction:column;gap:var(--s-3)}.login-slip-rows{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px var(--s-4);margin:0}.login-slip-rows dt{color:var(--text-2)}.login-slip-rows dd{margin:0;overflow-wrap:anywhere}.login-secret{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--fs-18);letter-spacing:.08em}@media (max-width: 767.98px){.login-slip{padding:var(--s-4)}.login-slip-rows{grid-template-columns:minmax(0,1fr);gap:0}.login-slip-rows dd{margin-bottom:var(--s-2)}}.student-row{flex:1;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:12px;align-items:start}.student-row>.avatar{grid-row:1 / span 2}.student-row>.sr-name{grid-column:2;align-self:center}.student-row>.contact-btns{grid-column:3;grid-row:1}.student-row>.sr-rest{grid-column:2 / -1;min-width:0}.menu a{text-decoration:none}@media (max-width: 767.98px){.hide-phone{display:none}.assist-fab.mini{width:48px;padding:0;gap:0;justify-content:center}.assist-fab.mini span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.attn-item{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:start;gap:8px 12px;padding:14px 16px}.attn-item>.btn{grid-column:2;justify-self:start}.attn-icon{width:36px;height:36px;border-radius:10px}}.setup-num{flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border-strong);display:inline-grid;place-items:center;font-size:12px;font-weight:600;color:var(--text-2)}
