@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap";
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--sb-fade:0px}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--color-navy:#0c447c;--color-navy-dark:#0a2b50;--color-navy-light:#3b82d6;--color-amber:#ba7517;--color-amber-light:#fac775;--color-bg:#f3f5fa;--color-surface:#fff;--color-surface-2:#f7f9fc;--color-border:#e3e8f0;--color-border-light:#edf0f5;--color-text:#0f172a;--color-text-muted:#525c6e;--color-text-faint:#8691a5;--tone-blue-bg:#e8f1fc;--tone-blue:#185fa5;--tone-green-bg:#e6f5ec;--tone-green:#1e7b45;--tone-amber-bg:#fdf1df;--tone-amber:#9a5d0c;--tone-red-bg:#fcecec;--tone-red:#b42828;--tone-purple-bg:#f2eafd;--tone-purple:#6b21a8;--shadow-sm:0 1px 2px #0f172a0a, 0 1px 3px #0f172a08;--shadow-md:0 1px 2px #0f172a0a, 0 8px 24px #0f172a0f;--shadow-lg:0 16px 48px #0f172a29;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:24px;--font-display:"Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--topbar-h:56px;--tabbar-h:64px}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;letter-spacing:-.006em;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}::selection{background:var(--color-amber-light);color:var(--color-navy-dark)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:2px solid var(--color-bg);background:#cfd6e2;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#a9b3c4}h1,h2,h3{color:var(--color-navy-dark);font-family:var(--font-display);letter-spacing:-.022em;margin-top:0;font-weight:700;line-height:1.25}h1{font-size:28px;font-weight:800}h2{font-size:20px}h3{font-size:17px}p{color:var(--color-text-muted);line-height:1.6}a{color:var(--color-navy);text-decoration:none;transition:color .15s}a:hover{color:var(--color-navy-light)}button{background:var(--color-navy);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,box-shadow .15s,transform .1s,color .15s,border-color .15s;box-shadow:0 1px 2px #0c447c2e}button:hover:not(:disabled){background:var(--color-navy-dark);box-shadow:0 4px 12px #0c447c38}button:active:not(:disabled){transform:scale(.98)}button:disabled{background:var(--color-border);color:var(--color-text-faint);cursor:not-allowed;box-shadow:none}.btn-link{background:var(--color-navy);color:#fff;border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;line-height:normal;text-decoration:none;transition:background .15s;display:inline-flex;box-shadow:0 1px 2px #0c447c2e}.btn-link:hover{background:var(--color-navy-dark);color:#fff}.btn-link.btn-secondary{background:var(--color-surface);color:var(--color-navy);border:1px solid var(--color-border);box-shadow:none}.btn-link.btn-secondary:hover{background:var(--color-surface-2);color:var(--color-navy)}:focus-visible{outline:2px solid var(--color-navy-light);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}input,select,textarea{background:var(--color-surface);color:var(--color-text);border:1px solid #d6dde8;border-radius:12px;width:100%;padding:10px 13px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}input[type=date],input[type=time],input[type=datetime-local]{appearance:none;text-align:left;min-width:0;max-width:100%;display:block}input[type=date]::-webkit-date-and-time-value{text-align:left}input[type=time]::-webkit-date-and-time-value{text-align:left}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.field-row>*{min-width:0}input::placeholder,textarea::placeholder{color:#a3acbd}input:focus,select:focus,textarea:focus{border-color:var(--color-navy-light);outline:none;box-shadow:0 0 0 4px #3b82d624}input[type=file]{color:var(--color-text-muted);background:var(--color-surface-2);cursor:pointer;border:1.5px dashed #cfd7e3;padding:7px;font-size:13.5px}input[type=file]::file-selector-button{background:var(--tone-blue-bg);color:var(--color-navy);cursor:pointer;border:none;border-radius:9px;margin-right:12px;padding:8px 14px;font-family:inherit;font-size:13.5px;font-weight:600}input[type=file]:hover::file-selector-button{background:#d9e8fa}label{color:var(--color-text-muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}table{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border-light);border-collapse:separate;border-spacing:0;width:100%;overflow:hidden}th{color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.05em;text-align:left;background:var(--color-surface-2);border-bottom:1px solid var(--color-border);padding:12px 16px;font-size:11.5px;font-weight:700}td{border-bottom:1px solid var(--color-border-light);padding:14px 16px;font-size:14px}tr:last-child td{border-bottom:none}tbody tr{transition:background .12s}tbody tr:hover{background:var(--color-surface-2)}input[type=checkbox]{width:auto;accent-color:var(--color-navy);cursor:pointer}.page-shell{min-height:100vh}.page-content{max-width:1100px;margin:0 auto;padding:36px 32px 48px}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);padding:28px}.card-sm{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);padding:20px;transition:box-shadow .15s,transform .15s,border-color .15s}.card-sm:hover{box-shadow:var(--shadow-md);border-color:#d6e0ee}.auth-shell{background:radial-gradient(900px 500px at 100% 0%, #3b82d673, transparent 60%), radial-gradient(700px 500px at 0% 100%, #ba751740, transparent 60%), linear-gradient(150deg, #071f3b 0%, var(--color-navy-dark) 45%, var(--color-navy) 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.stat-badge{background:var(--color-surface-2);border:1px solid var(--color-border-light);color:var(--color-text-muted);border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:500;display:inline-flex}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-header h1{margin-bottom:4px}.page-header p{margin:0}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.form-card{padding:36px}button.btn-block{width:100%;min-height:48px;font-size:15px}.auth-stack{z-index:1;flex-direction:column;align-items:center;gap:22px;width:100%;max-width:400px;display:flex;position:relative}.auth-brand{color:#fff;text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.auth-brand-row{text-align:left;align-items:center;gap:14px;display:flex}.auth-brand-mark{color:#fff;background:linear-gradient(140deg,#3b82d6,#0c447c 70%);border-radius:19px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex;box-shadow:0 10px 26px #0000004d,inset 0 0 0 1px #ffffff2e}.auth-brand-text{flex-direction:column;gap:4px;display:flex}.auth-brand-by{letter-spacing:.22em;text-transform:uppercase;color:#ffffffbf;margin-top:4px;font-size:11.5px;font-weight:600}.auth-brand-name{font-family:var(--font-display);letter-spacing:.06em;font-size:30px;font-weight:800;line-height:1}.auth-brand-full{display:none}.auth-brand-tag{color:#ffffffb3;font-size:13.5px}.auth-card{width:100%;padding:32px 28px}@media (min-width:900px){.auth-stack{flex-direction:row;gap:70px;max-width:900px}.auth-brand{flex:1;gap:14px}.auth-brand-row{display:none}.auth-brand-full{isolation:isolate;display:block;position:relative}.auth-brand-full .full-logo{max-width:none}.auth-brand-full:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#4da6ff57,#0000 65%);border-radius:50%;position:absolute;inset:-70px}.auth-card{flex-shrink:0;max-width:400px}}@media (max-width:768px){.form-card{padding:20px}}.empty-state{text-align:center;background:var(--color-surface);border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-faint);padding:44px 24px}.empty-state svg{color:#c3ccda;margin-bottom:12px}.tab-bar{background:var(--color-surface);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:16px;gap:4px;width:fit-content;max-width:100%;margin-bottom:24px;padding:5px;display:flex;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab-pill{color:var(--color-text-muted);cursor:pointer;box-shadow:none;white-space:nowrap;background:0 0;border:none;border-radius:11px;flex-shrink:0;align-items:center;gap:7px;padding:9px 14px;font-size:14px;font-weight:600;display:inline-flex}.tab-pill:hover:not(:disabled){background:var(--color-bg);color:var(--color-navy);box-shadow:none}.tab-pill.active,.tab-pill.active:hover:not(:disabled){background:var(--color-navy);color:#fff;box-shadow:none}.tab-bar-sm{box-shadow:none;background:#e9edf4;border:none;border-radius:14px;padding:4px}.tab-bar-sm .tab-pill{padding:7px 12px;font-size:13px}.tab-bar-sm .tab-pill.active,.tab-bar-sm .tab-pill.active:hover:not(:disabled){background:var(--color-surface);color:var(--color-navy);box-shadow:0 1px 3px #0f172a1a}.badge{border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-amber{background:var(--tone-amber-bg);color:var(--tone-amber)}.badge-navy{background:var(--tone-blue-bg);color:var(--color-navy)}.badge-red{background:var(--tone-red-bg);color:var(--tone-red)}.progress-track{background:var(--color-border-light);border-radius:20px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--color-amber), var(--color-amber-light));border-radius:20px;height:100%;transition:width .4s}.section-title{align-items:center;gap:10px;margin:0 0 14px;display:flex}.section-title h3,.section-title h2{margin:0;font-size:17px}.auth-shell{position:relative;overflow:clip}.auth-shell:before{content:"";border:1px solid #ffffff17;border-radius:50%;width:520px;height:520px;position:absolute;top:-160px;right:-120px}.auth-shell:after{content:"";border:1px solid #ffffff14;border-radius:50%;width:320px;height:320px;position:absolute;bottom:-90px;left:-70px}.auth-shell .card{z-index:1;border-radius:var(--radius-xl);border:none;animation:.3s page-fade-in;position:relative;box-shadow:0 30px 80px #00000059}.btn-ghost-danger{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border);box-shadow:none;padding:6px 12px;font-size:13px;font-weight:600}button.btn-ghost-danger:hover{background:var(--tone-red);color:#fff;border-color:var(--tone-red);box-shadow:none}.modal-overlay{-webkit-backdrop-filter:blur(3px);z-index:1400;background:#0a162a80;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:90%;max-width:400px;padding:28px;animation:.18s pop-in}.modal-card h2,.modal-card h3{margin-bottom:8px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.btn-danger{background:var(--tone-red)}button.btn-danger:hover:not(:disabled){background:#8e1f1f}.btn-secondary{background:var(--color-surface);color:var(--color-navy);border:1px solid var(--color-border);box-shadow:none}.btn-secondary:hover{background:var(--color-surface-2)}.page-shell{background-color:var(--color-bg);min-height:100vh}.hero-banner{background:radial-gradient(420px 260px at 100% 0%, #60a5fa61, transparent 70%), radial-gradient(360px 240px at 0% 110%, #fac77529, transparent 70%), linear-gradient(140deg, #0a2b50 0%, var(--color-navy) 55%, #1d5fa8 100%);border-radius:var(--radius-xl);color:#fff;margin-bottom:24px;padding:32px;position:relative;overflow:hidden;box-shadow:0 14px 34px #0c447c38}.hero-banner:before{content:"";border:1px solid #ffffff1f;border-radius:50%;width:280px;height:280px;position:absolute;top:-110px;right:-70px}.hero-banner:after{content:"";border:1px solid #ffffff14;border-radius:50%;width:170px;height:170px;position:absolute;bottom:-90px;right:70px}.hero-banner h1{color:#fff;z-index:1;font-size:28px;position:relative}.hero-banner p{color:#ffffffc7;z-index:1;position:relative}.stat-row{z-index:1;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:22px;display:grid;position:relative}.stat-box{-webkit-backdrop-filter:blur(4px);background:#ffffff1a;border:1px solid #ffffff24;border-radius:16px;min-width:0;padding:14px 16px}.stat-box .stat-number{font-family:var(--font-display);color:#fff;letter-spacing:-.02em;font-size:26px;font-weight:800;line-height:1.15}.stat-box .stat-label{color:#ffffffb8;margin-top:2px;font-size:12.5px;font-weight:500}.icon-tile{border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:12px;display:flex}.app-layout{min-height:100vh;display:flex}.sidebar{color:#fff;z-index:100;background:radial-gradient(260px 200px at 0 0,#3b82d647,#0000 70%),linear-gradient(#0a2b50 0%,#071f3b 100%);flex-direction:column;flex-shrink:0;width:76px;height:100vh;padding:20px 12px;transition:width .2s,box-shadow .2s;display:flex;position:fixed;top:0;left:0;overflow:hidden}@media (hover:hover) and (pointer:fine){.sidebar:hover{width:248px;box-shadow:8px 0 32px #00000040}.sidebar:hover .sidebar-label{opacity:1}}button.sidebar-brand{color:#fff;white-space:nowrap;box-shadow:none;background:0 0;border:none;border-radius:12px;justify-content:flex-start;align-items:center;gap:12px;width:100%;padding:4px 4px 24px;font-size:16px;font-weight:700;display:flex}button.sidebar-brand:hover:not(:disabled){box-shadow:none;background:0 0}.sidebar-brand-mark{background:linear-gradient(140deg,#3b82d6,#0c447c);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:inset 0 0 0 1px #ffffff29}.sidebar-brand .sidebar-label{font-family:var(--font-display);text-align:left;flex-direction:column;font-size:17px;font-weight:800;line-height:1.1;display:flex}.sidebar-brand .sidebar-label small{color:#fff9;margin-top:2px;font-family:Inter,sans-serif;font-size:11.5px;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar-link{color:#ffffff9e;white-space:nowrap;border-radius:12px;align-items:center;gap:14px;height:44px;padding:0 13px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.sidebar-link:hover{color:#fff;background:#ffffff14}.sidebar-link.active{color:#fff;background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff14}.sidebar-link svg{flex-shrink:0}.sidebar-label{opacity:0;transition:opacity .15s}.sidebar-account{white-space:nowrap;border-top:1px solid #ffffff14;align-items:center;gap:12px;margin-top:8px;padding:10px 6px;display:flex;overflow:hidden}.sidebar-avatar{color:#fff;background:#ffffff24;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:700;display:flex}.sidebar-account-name{color:#ffffffd9;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}button.sidebar-logout{color:#fffc;height:44px;box-shadow:none;white-space:nowrap;background:#ffffff0f;border:1px solid #ffffff1a;align-items:center;gap:14px;width:100%;margin-top:6px;padding:0 14px;font-weight:500;display:flex;overflow:hidden}button.sidebar-logout:hover:not(:disabled){color:#fff;box-shadow:none;background:#ffffff24}.main-area{background-color:var(--color-bg);background-image:radial-gradient(1400px 420px at 50% -160px,#3b82d61f,#0000 70%);background-repeat:no-repeat;flex:1;min-width:0;min-height:100vh;margin-left:76px;transition:margin-left .2s;overflow-x:hidden}@media (hover:hover) and (pointer:fine){.sidebar:hover~.main-area{margin-left:248px}}.session-list-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);margin-bottom:28px;padding:6px 22px}.session-row{border-bottom:1px solid var(--color-border-light);align-items:center;gap:16px;padding:14px 0;display:flex}.session-row:last-child{border-bottom:none}.session-day-badge{background:var(--tone-blue-bg);border-radius:14px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:52px;display:flex}.session-day-badge .day-label{letter-spacing:.04em;color:var(--tone-blue);text-transform:uppercase;font-size:10.5px;font-weight:700}.session-day-badge .day-number{font-family:var(--font-display);color:var(--color-navy-dark);font-size:19px;font-weight:800;line-height:1.1}.session-countdown{background:var(--tone-amber-bg);color:var(--tone-amber);white-space:nowrap;border-radius:20px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:600}.quick-groups-wrapper{position:relative}.quick-groups-flyout{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--color-border-light);opacity:0;visibility:hidden;z-index:150;flex-direction:column;gap:2px;margin-top:10px;padding:8px;transition:opacity .15s,transform .15s,visibility .15s;display:flex;position:absolute;top:100%;left:0;right:0;transform:translateY(-6px)}@media (hover:none),(pointer:coarse){.quick-groups-flyout{display:none}}.quick-groups-wrapper>.quick-tile{height:100%}.quick-groups-wrapper:hover .quick-groups-flyout{opacity:1;visibility:visible;transform:translateY(0)}.quick-group-item{color:var(--color-text);border-radius:8px;padding:10px 12px;font-size:14px;font-weight:500;transition:background .12s;display:block}.quick-group-item:hover{background:var(--color-bg);color:var(--color-navy);text-decoration:none}.quick-group-view-all{border-top:1px solid var(--color-border-light);color:var(--color-navy);margin-top:4px;padding:10px 12px;font-size:13px;font-weight:600;display:block}.quick-group-view-all:hover{background:var(--color-bg);text-decoration:none}.session-time-picker{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.session-time-picker select{flex:1;min-width:0}.session-time-picker button{flex-shrink:0}@media (max-width:480px){.session-time-picker select{flex:calc(50% - 4px)}.session-time-picker button{flex:100%}}.account-row{border-bottom:1px solid var(--color-border-light);align-items:center;gap:14px;min-width:0;padding:14px 0;display:flex}.account-row:last-child{border-bottom:none}.account-row-main{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.account-row-text{flex:1;min-width:0}.account-row-name{color:var(--color-text);margin:0;font-size:15px;font-weight:600;display:block}a.account-row-name:hover{color:var(--color-navy)}.account-row-sub{color:var(--color-text-faint);margin:1px 0 0;font-size:12.5px;line-height:1.4}.avatar-circle{width:38px;height:38px;color:var(--color-navy);background:var(--tone-blue-bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.avatar-amber{color:var(--tone-amber);background:var(--tone-amber-bg)}.account-row-text p{overflow-wrap:anywhere}.account-row-meta .badge{white-space:normal;overflow-wrap:anywhere;line-height:1.4}.account-row-meta{color:var(--color-text-faint);white-space:nowrap;flex-shrink:0;font-size:13px}.account-row-actions{flex-shrink:0;gap:8px;display:flex}@media (max-width:640px){.account-row{flex-wrap:wrap;align-items:flex-start}.account-row-main{flex:100%}.account-row-meta{white-space:normal;min-width:0;max-width:calc(100% - 52px)}.account-row-meta,.account-row-actions{margin-left:52px}.account-row-meta{order:2;align-self:center;margin-top:2px}.account-row-actions{order:3;margin-top:4px}.account-row-meta+.account-row-actions{margin-left:auto}.account-row-actions button{min-height:36px}}.toast-stack{z-index:1100;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}html[data-nav=dock] .toast-stack{top:calc(env(safe-area-inset-top,0px) + var(--topbar-h) + 8px);z-index:1200;bottom:auto;left:16px;right:16px}html[data-nav=dock] .toast{width:100%;animation-name:toast-in-top}@keyframes toast-in-top{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toast{box-shadow:var(--shadow-lg);color:#fff;border-radius:14px;align-items:center;gap:10px;padding:13px 18px;font-size:14px;font-weight:500;animation:.2s toast-in;display:flex}.toast-success{background:#16663a}.toast-error{background:#a32424}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-content{animation:.25s page-fade-in}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg, var(--color-border-light) 25%, var(--color-border) 50%, var(--color-border-light) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}input[type=checkbox]:checked{animation:.3s checkbox-pulse}@keyframes checkbox-pulse{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.sidebar.expanded{width:248px;box-shadow:8px 0 32px #00000040}.sidebar.expanded .sidebar-label{opacity:1}.sidebar-backdrop{z-index:99;background:#0a162a59;position:fixed;inset:0}@media (hover:none),(pointer:coarse){button{min-height:44px;padding:11px 18px}input,select,textarea{min-height:46px;padding:12px 14px;font-size:16px}.tab-pill{min-height:40px;padding:9px 16px}input[type=checkbox]{width:20px;height:20px}.btn-ghost-danger,.btn-secondary{min-height:40px}.card-sm:hover,.quick-tile:hover,a.work-card:hover,.material-card:hover,a.material-row:hover{transform:none}}html[data-nav=dock] .main-area{padding-top:calc(var(--topbar-h) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--tabbar-h) + 20px + env(safe-area-inset-bottom,0px));margin-left:0}html[data-nav=dock] .workspace-tabs{display:none}.m-topbar{z-index:1000;height:calc(var(--topbar-h) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 16px 0;-webkit-backdrop-filter:saturate(180%)blur(16px);background:#f3f5fadb;border-bottom:1px solid #0f172a0f;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.m-brand{color:var(--color-navy-dark);align-items:center;gap:10px;display:flex}.m-brand:hover{color:var(--color-navy-dark)}.m-brand-mark{color:#fff;background:linear-gradient(140deg,#3b82d6,#0c447c 70%);border-radius:11px;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 10px #0c447c40}.m-brand-text{font-family:var(--font-display);letter-spacing:-.02em;flex-direction:column;font-size:17px;font-weight:800;line-height:1.05;display:flex}.m-brand-text small{letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-faint);margin-top:3px;font-family:Inter,sans-serif;font-size:9.5px;font-weight:600}button.m-avatar{width:38px;height:38px;min-height:0;color:var(--color-navy);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:700;display:flex}button.m-avatar:hover:not(:disabled){background:var(--color-surface);box-shadow:var(--shadow-md)}.m-tabbar{z-index:1000;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding:0 6px env(safe-area-inset-bottom,0px);-webkit-backdrop-filter:saturate(180%)blur(18px);background:#ffffffe6;border-top:1px solid #0f172a12;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #0f172a0d}.m-tab,button.m-tab{min-width:0;height:var(--tabbar-h);min-height:0;box-shadow:none;color:#7b869a;background:0 0;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;font-weight:600;text-decoration:none;display:flex}button.m-tab:hover:not(:disabled),.m-tab:hover{box-shadow:none;color:var(--color-navy);background:0 0}.m-tab-icon{border-radius:15px;justify-content:center;align-items:center;width:54px;height:30px;transition:background .2s,color .2s;display:flex}.m-tab-label{letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;line-height:1;overflow:hidden}.m-tab.active{color:var(--color-navy)}.m-tab.active .m-tab-icon{background:var(--tone-blue-bg)}.m-tab.active .m-tab-label{font-weight:700}.m-sheet-backdrop{z-index:1300;background:#0a162a73;justify-content:center;align-items:flex-end;animation:.15s fade-in;display:flex;position:fixed;inset:0}.m-sheet{background:var(--color-bg);width:100%;max-width:560px;max-height:88vh;padding:8px 16px calc(18px + env(safe-area-inset-bottom,0px));border-radius:26px 26px 0 0;animation:.24s cubic-bezier(.2,.9,.3,1) sheet-up;overflow-y:auto;box-shadow:0 -10px 40px #0003}.m-sheet-grip{background:#cad2df;border-radius:3px;width:40px;height:5px;margin:0 auto 12px;display:block}.m-sheet-head{align-items:center;gap:12px;padding:4px 4px 16px;display:flex}.m-sheet-avatar{color:#fff;background:linear-gradient(140deg,#3b82d6,#0c447c 70%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:16px;font-weight:700;display:flex}.m-sheet-name{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:17px;font-weight:700;line-height:1.3}.m-sheet-role{color:var(--color-text-faint);margin:0;font-size:13px;line-height:1.3}button.m-sheet-close{width:36px;height:36px;min-height:0;color:var(--color-text-muted);box-shadow:none;background:#e4e9f1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}button.m-sheet-close:hover:not(:disabled){color:var(--color-text);box-shadow:none;background:#d8dfea}.m-sheet-list{background:var(--color-surface);box-shadow:var(--shadow-sm);border-radius:18px;margin-bottom:12px;overflow:hidden}.m-sheet-link,button.m-sheet-link{width:100%;min-height:58px;box-shadow:none;color:var(--color-text);text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:14px;padding:0 16px;font-size:15.5px;font-weight:600;text-decoration:none;display:flex}.m-sheet-link+.m-sheet-link{border-top:1px solid var(--color-border-light)}.m-sheet-link:hover,button.m-sheet-link:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text);box-shadow:none}.m-sheet-link.active{color:var(--color-navy);background:#f4f8fe}.m-sheet-icon{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.m-sheet-label{flex:1;min-width:0}.m-sheet-chevron{color:#b3bccb;flex-shrink:0}button.m-sheet-logout{color:var(--tone-red)}button.m-sheet-logout .m-sheet-icon{color:var(--tone-red);background:var(--tone-red-bg)}button.m-sheet-logout:hover:not(:disabled){color:var(--tone-red)}@media (max-width:768px){.page-content{padding:16px 16px 24px}h1{font-size:24px}.page-header{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:18px}.page-header>button,.page-header>a.btn-link{align-self:flex-start}.card{border-radius:18px;padding:18px}.hero-banner{border-radius:22px;margin-bottom:18px;padding:20px 18px 18px}.hero-banner h1{font-size:21px}.stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.stat-box{border-radius:14px;padding:10px 10px 11px}.stat-box .stat-number{font-size:19px}.stat-box .stat-label{font-size:11px;line-height:1.3}.grid-cards{grid-template-columns:1fr}.tab-bar{scrollbar-width:none;-webkit-overflow-scrolling:touch;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab-pill{flex-shrink:0}.session-list-card{padding:4px 16px}.session-row{grid-template-columns:auto minmax(0,1fr);gap:6px 14px;display:grid}.session-row .session-day-badge{grid-row:span 2;align-self:start}.session-countdown{grid-column:2;justify-self:start;margin-left:0}.modal-overlay{align-items:flex-end}.modal-card{width:100%;max-width:560px;max-height:90vh;padding:22px 18px calc(18px + env(safe-area-inset-bottom,0px));border-radius:26px 26px 0 0;animation:.24s cubic-bezier(.2,.9,.3,1) sheet-up;overflow-y:auto}.auth-shell .card{padding:28px 22px}table{-webkit-overflow-scrolling:touch;white-space:nowrap;display:block;overflow-x:auto}}@media (max-width:380px){.page-content{padding:14px 12px 24px}.card{padding:16px}h1{font-size:22px}h2{font-size:18px}.hero-banner{padding:18px 14px 14px}.stat-box .stat-number{font-size:17px}}@supports (padding:max(0px)){.sidebar{padding-top:max(24px, env(safe-area-inset-top));padding-bottom:max(12px, env(safe-area-inset-bottom))}}.group-flyout{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;z-index:200;width:240px;margin-left:10px;padding:12px;transition:opacity .15s,transform .15s,visibility .15s;top:0;left:100%;transform:translate(-8px);position:absolute!important}.sidebar-item-wrapper:hover .group-flyout{opacity:1;visibility:visible;transform:translate(0)}button.btn-secondary{background:var(--color-surface)!important;color:var(--color-navy)!important;border:1px solid var(--color-border)!important;box-shadow:none!important}button.btn-secondary:hover{background:var(--color-surface-2)!important;color:var(--color-navy)!important;box-shadow:none!important;transform:none!important}.stat-row-6{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}@media (min-width:1100px){.stat-row-6{grid-template-columns:repeat(6,1fr)}}@media (min-width:769px) and (max-width:1099px){.stat-row-6{grid-template-columns:repeat(3,1fr)}}.stack-lg{flex-direction:column;gap:24px;display:flex}.workspace-tabs-teacher{margin-bottom:24px}.stat-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:768px){.stat-row-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.stack-lg .session-list-card{margin-bottom:0}@media (max-width:768px){.stat-row-6{grid-template-columns:repeat(3,minmax(0,1fr))}.stack-lg{gap:22px}}.workspace-header{margin-bottom:20px}.workspace-header h1{margin:0 0 4px}.workspace-header p{margin:0;font-size:14.5px}.workspace-tabs{margin-bottom:24px}.seg-tabs{background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:16px;gap:4px;max-width:100%;padding:5px;display:flex;position:relative;overflow-x:auto}.seg-tabs::-webkit-scrollbar{display:none}.seg-tab{color:var(--color-text-muted);box-shadow:none;white-space:nowrap;background:0 0;border-radius:11px;flex-shrink:0;align-items:center;gap:7px;padding:9px 14px;font-size:14px;font-weight:600;display:inline-flex}.seg-tab:hover:not(:disabled){background:var(--color-bg);color:var(--color-navy);box-shadow:none;transform:none}.seg-tab.active,.seg-tab.active:hover{background:var(--color-navy);color:#fff}.seg-tabs-sm{box-shadow:none;background:#e9edf4;border:none;display:inline-flex}.seg-tabs-sm .seg-tab{padding:7px 12px;font-size:13px}.seg-tabs-sm .seg-tab.active{background:var(--color-surface);color:var(--color-navy);box-shadow:var(--shadow-sm)}.seg-count{background:#0c447c1a;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}.seg-tab.active .seg-count{background:#ffffff38}.seg-tabs-sm .seg-tab.active .seg-count{background:#e6f1fb}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.stat-tile{background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);border-radius:16px;min-width:0;padding:14px 16px}.stat-tile-top{align-items:center;gap:8px;margin-bottom:6px;display:flex}.stat-tile-icon{background:var(--color-bg);width:30px;height:30px;color:var(--color-navy);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.stat-tile-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:700}.stat-tile-value{font-family:var(--font-display);color:var(--color-navy-dark);letter-spacing:-.02em;font-size:24px;font-weight:800;line-height:1.2}.stat-tile-hint{color:var(--color-text-faint);margin-top:2px;font-size:12px}.score-pill{white-space:nowrap;border-radius:20px;align-items:center;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.status-chip{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-info{color:#185fa5;background:#e6f1fb}.status-muted{color:var(--color-text-faint);background:var(--color-bg)}.status-danger{color:#a32d2d;background:#fcebeb}.status-warn{color:#ba7517;background:#fef3e2}.status-ok{color:#1e7b45;background:#e9f7ef}.btn-sm{white-space:nowrap;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:inline-flex}.bar-track{background:var(--color-bg);border-radius:4px;height:8px;overflow:hidden}.bar-fill{border-radius:4px;height:100%;transition:width .4s}.list-eyebrow{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-navy-dark);align-items:center;gap:8px;margin:0 0 12px;font-size:17px;font-weight:700;line-height:1.3;display:flex}.list-eyebrow span{color:var(--color-text-muted);letter-spacing:0;background:#e6eaf1;border-radius:10px;margin-left:0;padding:1px 8px;font-family:Inter,sans-serif;font-size:12px;font-weight:700}.work-list{flex-direction:column;gap:10px;display:flex}.work-card{background:var(--color-surface);border:1px solid var(--color-border-light);color:var(--color-text);box-shadow:var(--shadow-sm);border-radius:18px;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}a.work-card:hover{box-shadow:var(--shadow-md);color:var(--color-text);border-color:#d3ddeb;transform:translateY(-1px)}a.work-card:active{transform:scale(.99)}.work-card-danger{background:linear-gradient(90deg, #fff6f6, var(--color-surface) 40%);border-color:#f3cfcf}.work-card-icon{border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.work-card-body{flex:1;min-width:0}.work-card-title{color:var(--color-text);overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:600}.work-card-meta{color:var(--color-text-faint);margin:2px 0 0;font-size:12px;line-height:1.5}.work-card-feedback{color:var(--color-text-muted);margin:6px 0 0;font-size:13px;font-style:italic}.work-card-side{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;display:flex}.section-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.section-heading h3{margin:0}.section-heading p{color:var(--color-text-faint);margin:2px 0 0;font-size:13px}.big-score{margin:0 0 18px;font-size:44px;font-weight:800;line-height:1}.breakdown{flex-direction:column;gap:12px;display:flex}.breakdown-label{color:var(--color-text-muted);justify-content:space-between;gap:10px;margin-bottom:5px;font-size:13px;display:flex}.breakdown-label em{color:var(--color-text-faint);font-style:normal}.fine-print{color:var(--color-text-faint);align-items:flex-start;gap:6px;margin:14px 0 0;font-size:12px;display:flex}.fine-print svg{flex-shrink:0;margin-top:2px}.all-clear{color:#1e7b45;align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.inline-error{color:#a32d2d;font-size:14px}.chip-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;display:grid}.chapter-chip{background:var(--color-bg);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.chapter-list{flex-direction:column;gap:10px;display:flex}.chapter-perf{background:var(--color-surface-2);border:1px solid var(--color-border-light);border-radius:16px;padding:12px}.chapter-list,.scroll-box,.table-scroll-tall{scrollbar-width:thin;-webkit-overflow-scrolling:touch;max-height:min(560px,66vh);padding-right:4px;overflow-y:auto}@property --sb-fade{syntax:"<length>";inherits:false;initial-value:0}@keyframes sb-fade{0%{--sb-fade:40px}92%{--sb-fade:40px}to{--sb-fade:0px}}@supports (animation-timeline:scroll()){.chapter-list,.scroll-box{-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - var(--sb-fade)), transparent);-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - var(--sb-fade)), transparent);-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - var(--sb-fade)), transparent);-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - var(--sb-fade)), transparent);mask-image:linear-gradient(to bottom, #000 calc(100% - var(--sb-fade)), transparent);animation:linear both sb-fade;animation-timeline:scroll(self)}}.table-scroll-tall thead th{z-index:1;position:sticky;top:0}@media print{.chapter-list,.scroll-box,.table-scroll-tall{max-height:none;overflow:visible;-webkit-mask-image:none;mask-image:none}}.chapter-row-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.chapter-row-head p{color:var(--color-text);margin:0;font-size:14px;font-weight:600}.metric-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.metric{border-radius:8px;flex-direction:column;align-items:center;min-width:0;padding:8px 4px;display:flex}.metric-strong{outline:1.5px solid var(--color-border)}.metric-value{font-size:16px;font-weight:700}.metric-label{color:var(--color-text-faint);text-align:center;font-size:11px}.empty-chart{text-align:center;border:1.5px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-faint);background:#fafbfd;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:20px;display:flex}.empty-chart-title{color:var(--color-text-muted);margin:4px 0 0;font-size:14px;font-weight:600}.empty-chart-text{max-width:420px;margin:0;font-size:13px}.empty-panel{text-align:center;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);padding:36px 20px}.empty-panel-icon{background:var(--tone-blue-bg);width:52px;height:52px;color:var(--color-text-faint);border-radius:16px;justify-content:center;align-items:center;display:inline-flex}.empty-panel-title{font-family:var(--font-display);color:var(--color-text);margin:12px 0 2px;font-size:16px;font-weight:700}.empty-panel-text{margin:0;font-size:13px}.bar-chart-scroll{padding-bottom:4px;overflow-x:auto}.bar-chart-plot{align-items:flex-end;gap:12px;min-width:min-content;display:flex}.bar-col{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;width:44px;display:flex}.bar-area{border-bottom:1px solid var(--color-border);align-items:flex-end;width:100%;height:120px;display:flex}.bar{border-radius:7px 7px 2px 2px;width:100%}.bar-empty{background:repeating-linear-gradient(45deg, var(--color-bg), var(--color-bg) 4px, #e3e8f0 4px, #e3e8f0 8px);height:10px!important}.bar-value{min-height:15px;font-size:11px;font-weight:700}.bar-label{color:var(--color-text-faint);white-space:nowrap;font-size:10px}.bar-chart-note{color:var(--color-text-faint);margin:10px 0 0;font-size:12px}.attendance-row{border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;padding:12px 0;font-size:14px;font-weight:500;display:flex}.attendance-row:last-child{border-bottom:none}.session-message{color:var(--color-text);overflow-wrap:anywhere;align-items:flex-start;gap:6px;margin:0;font-weight:500;display:flex}.session-message svg{flex-shrink:0;margin-top:4px}.session-due{color:#ba7517}.session-overdue{color:#a32d2d}.material-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.material-card{background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);color:var(--color-text);border-radius:20px;flex-direction:column;gap:6px;padding:18px;transition:box-shadow .15s,transform .15s;display:flex}.material-card:hover{box-shadow:var(--shadow-md);color:var(--color-text);transform:translateY(-2px)}.material-card-top{justify-content:space-between;align-items:flex-start;margin-bottom:4px;display:flex}.material-eyebrow{color:#6b21a8;text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:11px;font-weight:700}.material-title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:16px;font-weight:700}.resource-chips{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.resource-chip{color:#6b21a8;background:#f3e8fd;border-radius:14px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.resource-chip.off{background:var(--color-bg);color:var(--color-text-faint)}.material-foot{border-top:1px solid var(--color-border-light);color:var(--color-text-faint);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px;font-size:12px;display:flex}.covered{color:#1e7b45;align-items:center;gap:4px;font-weight:600;display:inline-flex}.not-covered{color:var(--color-text-faint)}.group-switcher{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.group-switcher button{font-size:13px}.hero-identity{z-index:1;align-items:center;gap:14px;display:flex;position:relative}.hero-avatar{color:#fff;background:#ffffff29;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:17px;font-weight:700;display:flex;box-shadow:inset 0 0 0 1px #ffffff2e}.hero-kicker{font-size:13px;color:#ffffffb3!important;margin:0!important}.hero-banner h1.person-name{margin:0}.hero-sub{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex;margin:14px 0 0!important}.hero-course{color:var(--color-navy);background:#fff;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:700}.stat-box-strong{background:#fff3;border-color:#ffffff59}.person-name{overflow-wrap:anywhere;word-break:normal;-webkit-hyphens:auto;hyphens:auto;min-width:0}.attention-card{border-radius:var(--radius-lg);color:var(--tone-red);background:#fff7f7;border:1px solid #f3d2d2;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.attention-card svg{flex-shrink:0;margin-top:2px}.attention-title{color:#a32d2d;margin:0 0 4px;font-weight:700}.attention-card ul{color:var(--color-text);margin:0;padding-left:18px;font-size:14px}.attention-card li{margin:2px 0}.quick-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.quick-tile{--tile:var(--color-navy);--tile-bg:var(--tone-blue-bg);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-sm);color:var(--color-text);border:1px solid var(--color-border-light);border-radius:20px;flex-direction:column;align-items:flex-start;gap:2px;padding:16px;transition:box-shadow .15s,transform .15s;display:flex;position:relative}.quick-tile:hover{box-shadow:var(--shadow-md);color:var(--color-text);transform:translateY(-2px)}.quick-tile:active{transform:scale(.98)}.quick-tile-icon{background:var(--tile-bg);width:42px;height:42px;color:var(--tile);border-radius:13px;justify-content:center;align-items:center;margin-bottom:10px;display:flex}.quick-tile-label{color:var(--color-text);overflow-wrap:anywhere;font-size:14.5px;font-weight:700;line-height:1.3}.quick-tile-stat{color:var(--color-text-faint);font-size:12.5px;font-weight:500}.quick-tile-arrow{color:#b3bccb;position:absolute;top:16px;right:14px}.tile-blue{--tile:var(--tone-blue);--tile-bg:var(--tone-blue-bg)}.tile-green{--tile:var(--tone-green);--tile-bg:var(--tone-green-bg)}.tile-amber{--tile:var(--tone-amber);--tile-bg:var(--tone-amber-bg)}.tile-red{--tile:var(--tone-red);--tile-bg:var(--tone-red-bg)}.tile-purple{--tile:var(--tone-purple);--tile-bg:var(--tone-purple-bg)}@media (max-width:640px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-tile{border-radius:18px;padding:14px}.work-card{flex-wrap:wrap;gap:12px;padding:12px 14px}.work-card-side{justify-content:flex-start;width:100%;padding-left:54px}.metric-row{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-strong{flex-direction:row;grid-column:span 4;justify-content:center;gap:8px}.big-score{font-size:38px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-tile-value{font-size:20px}.stat-grid:has(>:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stat-grid:has(>:nth-child(3):last-child) .stat-tile{padding:12px 10px}.stat-grid:has(>:nth-child(3):last-child) .stat-tile-top{flex-direction:column;align-items:flex-start;gap:6px}.stat-grid:has(>:nth-child(3):last-child) .stat-tile-label{font-size:10px}.stat-grid:has(>:nth-child(3):last-child) .stat-tile-hint{font-size:11px}.material-grid{grid-template-columns:1fr}}.topic-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}button.report-link{box-shadow:none;text-align:left;color:inherit;background:0 0;border-radius:6px;flex-direction:column;align-items:flex-start;padding:0;display:flex}button.report-link:hover{box-shadow:none;background:0 0;transform:none}button.report-link:hover .work-card-title{text-decoration:underline}.grade-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.grade-row-who{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.grade-row-who>span:first-child{overflow-wrap:anywhere;font-size:14px;font-weight:500}.grade-row-actions{white-space:nowrap;align-items:center;gap:6px;margin-left:auto;display:flex}button.back-button,button.btn-secondary.back-button{border-radius:20px;align-items:center;gap:4px;min-height:36px;margin-bottom:16px;font-size:13.5px;font-weight:600;display:inline-flex;background:var(--color-surface)!important;border:1px solid var(--color-border-light)!important;box-shadow:var(--shadow-sm)!important;padding:6px 14px 6px 10px!important}button.back-button:hover{background:var(--color-surface-2)!important}.editor-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 16px;display:flex}.editor-title{flex:320px;align-items:center;gap:14px;min-width:0;display:flex}.editor-title>div:last-child{min-width:0}.editor-title .icon-tile{flex-shrink:0}.editor-title h1{overflow-wrap:anywhere}.editor-title-row{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}button.share-toggle{min-height:0}@media (max-width:640px){.editor-title{flex-basis:100%;align-items:flex-start}.editor-title .icon-tile{width:42px;height:42px}.editor-title h1{font-size:22px}.editor-header>button{min-height:38px;padding:8px 14px;font-size:13px}}.upload-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}label.upload-drop{color:var(--color-navy);cursor:pointer;background:linear-gradient(#f8fbff,#f1f6fd);border:2px dashed #c5d3e6;border-radius:18px;align-items:center;gap:14px;margin:0;padding:20px 18px;font-weight:500;transition:border-color .15s,background .15s;display:flex;position:relative}label.upload-drop:hover{border-color:var(--color-navy-light);background:#eef5fe}label.upload-drop:focus-within{outline:2px solid var(--color-navy-light);outline-offset:2px}label.upload-drop.is-compact{margin-top:10px;padding:12px 14px}label.upload-drop.is-uploading{cursor:progress;border-style:solid;border-color:var(--color-navy-light)}.upload-drop-icon{width:46px;height:46px;color:var(--color-navy);box-shadow:var(--shadow-sm);background:#fff;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.is-compact .upload-drop-icon{border-radius:11px;width:36px;height:36px}.upload-drop-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.upload-drop-text strong{color:var(--color-navy-dark);overflow-wrap:anywhere;font-size:15px;font-weight:700}.upload-drop-text>span:not(.upload-progress){color:var(--color-text-muted);font-size:12.5px}.upload-progress{background:#dce7f5;border-radius:3px;height:6px;margin-top:4px;display:block;overflow:hidden}.upload-progress span{background:var(--color-navy-light);border-radius:3px;width:40%;height:100%;animation:1.1s ease-in-out infinite upload-slide;display:block}@keyframes upload-slide{0%{transform:translate(-100%)}to{transform:translate(260%)}}.uploaded-list{flex-direction:column;gap:8px;display:flex}.uploaded-file{background:#f3faf6;border:1.5px solid #bfe3cd;border-radius:16px;align-items:center;gap:12px;padding:12px 12px 12px 14px;transition:box-shadow .3s,border-color .3s;display:flex}.uploaded-file.is-fresh{border-color:var(--tone-green);animation:.35s upload-pop;box-shadow:0 0 0 4px #1e7b4524}@keyframes upload-pop{0%{transform:scale(.98)}60%{transform:scale(1.01)}to{transform:none}}.uploaded-file-icon{background:#fff;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.uploaded-file-icon.tone-green{color:var(--tone-green)}.uploaded-file-icon.tone-red{color:var(--tone-red)}.uploaded-file-icon.tone-purple{color:var(--tone-purple)}.uploaded-file-icon.tone-blue{color:var(--tone-blue)}.uploaded-file-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.uploaded-file-status{text-transform:uppercase;letter-spacing:.04em;color:var(--tone-green);align-items:center;gap:4px;font-size:11.5px;font-weight:700;display:inline-flex}.uploaded-file-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.uploaded-file-meta{color:var(--color-text-faint);font-size:12px}.uploaded-file-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.upload-action,button.upload-action,label.upload-action{min-height:36px;color:var(--color-navy);border:1px solid var(--color-border);box-shadow:none;cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:5px;margin:0;padding:7px 11px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.upload-action:hover,button.upload-action:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-navy);box-shadow:none}button.upload-action-danger{color:var(--color-text-faint);padding:7px 9px}button.upload-action-danger:hover:not(:disabled){color:var(--tone-red);background:var(--tone-red-bg);border-color:#f3cfcf}label.upload-action.is-busy{cursor:progress;opacity:.8}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:480px){.uploaded-file{flex-wrap:wrap}.uploaded-file-actions{width:100%;padding-left:54px}.uploaded-file-actions>.upload-action:not(.upload-action-danger){flex:1;justify-content:center}}.ready-list{background:var(--tone-amber-bg);border:1px solid #f2d9ae;border-radius:18px;flex-direction:column;gap:8px;margin-bottom:20px;padding:14px 16px;display:flex}.ready-list.is-ready{background:var(--tone-green-bg);border-color:#bfe3cd}.ready-list-title{color:var(--tone-amber);align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.ready-list.is-ready .ready-list-title{color:var(--tone-green)}.ready-list-items{flex-wrap:wrap;gap:6px;display:flex}.ready-item{color:var(--color-text-muted);background:#fff;border-radius:20px;align-items:center;gap:5px;padding:5px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.ready-item.done{color:var(--tone-green)}.att-month{color:var(--color-text-muted);margin:0 0 10px;font-size:13px;font-weight:700}.date-strip{scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;gap:8px;margin:0 -2px;padding:2px 2px 6px;display:flex;overflow-x:auto}.date-strip::-webkit-scrollbar{display:none}button.date-chip{scroll-snap-align:start;background:var(--color-surface);border:1px solid var(--color-border);min-width:64px;min-height:0;box-shadow:none;color:var(--color-text);border-radius:16px;flex-direction:column;flex:none;align-items:center;gap:2px;padding:9px 10px 8px;font-weight:600;display:flex}button.date-chip:hover:not(:disabled){background:var(--color-surface-2);box-shadow:none;border-color:#c9d5e5}button.date-chip.active,button.date-chip.active:hover:not(:disabled){background:var(--color-navy);border-color:var(--color-navy);color:#fff;box-shadow:0 6px 14px #0c447c40}.date-chip-day{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-faint);white-space:nowrap;font-size:11px;font-weight:700}button.date-chip.active .date-chip-day{color:#ffffffbf}.date-chip-num{font-family:var(--font-display);font-size:20px;font-weight:800;line-height:1.1}.date-chip-dot{background:0 0;border-radius:50%;width:6px;height:6px}.date-chip-dot.on{background:var(--tone-green)}button.date-chip.active .date-chip-dot.on{background:#7ee2a8}.att-legend{color:var(--color-text-faint);align-items:center;gap:6px;margin:4px 0 0;font-size:12px;display:flex}.att-legend .date-chip-dot{display:inline-block}.att-session{border-top:1px solid var(--color-border-light);margin-top:18px;padding-top:16px}.att-session-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.att-session-title{font-family:var(--font-display);color:var(--color-navy-dark);margin:0;font-size:16px;font-weight:700}.att-session-sub{color:var(--color-text-faint);margin:1px 0 0;font-size:12.5px}.att-row{align-items:center;gap:12px;padding:10px 0;display:flex}.att-row+.att-row{border-top:1px solid var(--color-border-light)}.att-name{min-width:0;color:var(--color-text);flex:1;font-size:14.5px;font-weight:600}.att-toggle{background:#eef1f6;border-radius:12px;flex-shrink:0;gap:3px;padding:3px;display:inline-flex}.att-toggle button{min-height:36px;color:var(--color-text-muted);box-shadow:none;background:0 0;border:none;border-radius:9px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.att-toggle button:hover:not(:disabled){color:var(--color-text);box-shadow:none;background:#ffffffb3}.att-toggle button.on-present,.att-toggle button.on-present:hover:not(:disabled){background:var(--tone-green);color:#fff}.att-toggle button.on-absent,.att-toggle button.on-absent:hover:not(:disabled){background:var(--tone-red);color:#fff}.att-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.att-history-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.att-history-row{flex-direction:column;padding:11px 0;display:flex}.att-history-row+.att-history-row{border-top:1px solid var(--color-border-light)}.att-history-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.att-pct{white-space:nowrap;flex-shrink:0;font-size:13px;font-weight:700}.att-pct-green{color:var(--tone-green)}.att-pct-amber{color:var(--tone-amber)}.att-pct-red{color:var(--tone-red)}.att-fill-green{background:var(--tone-green)}.att-fill-amber{background:#d08b22}.att-fill-red{background:var(--tone-red)}@media (max-width:480px){.att-row{flex-wrap:wrap;row-gap:8px}.att-toggle{width:calc(100% - 50px);margin-left:50px}.att-toggle button{flex:1;justify-content:center}.att-actions>button{flex:1}}.group-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden}.group-card:hover{box-shadow:var(--shadow-md)}a.group-card-link{color:inherit;flex-direction:column;flex:1;display:flex}.group-card-top{color:#fff;background:radial-gradient(260px 160px at 100% 0%, #60a5fa61, transparent 70%), linear-gradient(140deg, #0a2b50 0%, var(--color-navy) 60%, #1d5fa8 100%);padding:20px 20px 18px;position:relative;overflow:hidden}.group-card-top:after{content:"";border:1px solid #ffffff1f;border-radius:50%;width:150px;height:150px;position:absolute;top:-70px;right:-40px}.group-card-chips{align-items:center;gap:8px;margin-bottom:10px;display:flex}.group-card-papers{color:#ffffffbf;font-size:12px;font-weight:600}h3.group-card-name{color:#fff;margin:0;font-size:19px}.group-card-schedule{color:#ffffffbf;margin:4px 0 0;font-size:13px}.group-card-body{padding:16px 20px 4px}.group-card-stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;display:grid}.group-card-stats>div{background:var(--color-surface-2);border:1px solid var(--color-border-light);border-radius:14px;flex-direction:column;padding:10px 12px;display:flex}.group-card-stats strong{font-family:var(--font-display);color:var(--color-navy-dark);font-size:20px;font-weight:800;line-height:1.2}.group-card-stats span{color:var(--color-text-faint);font-size:12px}.group-card-created{color:var(--color-text-faint);margin:10px 0 0;font-size:12px}.group-card-actions{gap:8px;padding:14px 20px 18px;display:flex}.group-card-actions>button{flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;display:inline-flex}.chapter-rows{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px;display:grid}.chapter-row{background:var(--color-surface);border:1px solid var(--color-border-light);min-width:0;box-shadow:var(--shadow-sm);cursor:pointer;border-radius:16px;align-items:center;gap:12px;padding:12px 12px 12px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.chapter-row:hover{box-shadow:var(--shadow-md);border-color:#d3ddeb}.chapter-row-done{background:linear-gradient(90deg, #f2faf5, var(--color-surface) 60%);border-color:#cde9d8}.chapter-row-icon{width:40px;height:40px;color:var(--tile,var(--tone-blue));background:var(--tile-bg,var(--tone-blue-bg));border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chapter-row-body{flex:1;min-width:0}.chapter-row-title{color:var(--color-text);overflow-wrap:anywhere;margin:0;font-size:14.5px;font-weight:600;line-height:1.35}.chapter-row-meta{color:var(--color-text-faint);flex-wrap:wrap;align-items:center;gap:4px 10px;margin:3px 0 0;font-size:12px;line-height:1.4;display:flex}.chapter-row-meta>span:not(.status-chip){align-items:center;gap:4px;display:inline-flex}.chapter-row-meta .on{color:var(--tone-green);font-weight:500}.chapter-row-meta .status-chip{padding:2px 8px;font-size:11px}.chapter-row-type{color:var(--color-navy);font-weight:700}.chapter-row-sub{color:var(--color-text-muted);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:2px 0 0;font-size:12.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.chapter-rows-single{grid-template-columns:1fr}.card .chapter-row{box-shadow:none}.chapter-row-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}button.publish-toggle{background:var(--tone-red-bg);min-height:30px;color:var(--tone-red);box-shadow:none;border:none;border-radius:20px;padding:4px 11px;font-size:12px;font-weight:700}button.publish-toggle.is-published{background:var(--tone-blue-bg);color:var(--color-navy)}button.publish-toggle:hover:not(:disabled){background:var(--tone-red);color:#fff;box-shadow:none}button.publish-toggle.is-published:hover:not(:disabled){background:var(--color-navy);color:#fff}button.icon-button{background:var(--color-surface-2);width:34px;height:34px;min-height:0;color:var(--color-text-muted);border:1px solid var(--color-border-light);box-shadow:none;border-radius:10px;justify-content:center;align-items:center;padding:0;display:inline-flex}button.icon-button:hover:not(:disabled){background:var(--tone-blue-bg);color:var(--color-navy);box-shadow:none}button.icon-button-danger:hover:not(:disabled){background:var(--tone-red-bg);color:var(--tone-red)}@media (max-width:640px){.chapter-rows{grid-template-columns:1fr;gap:8px}.chapter-row{gap:10px;padding:11px 10px 11px 12px}.chapter-row-icon{border-radius:11px;width:36px;height:36px}}.assignment-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.deadline-chip{white-space:nowrap;border-radius:14px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-flex}.deadline-chip-muted{background:var(--color-bg);color:var(--color-text-faint);border:1px solid var(--color-border)}.eyebrow-line{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-faint);align-items:center;gap:6px;font-weight:700;display:flex;margin:0 0 4px!important;font-size:12px!important}.assignment-materials{margin-bottom:20px}.material-rows{flex-direction:column;gap:8px;display:flex}a.material-row{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:var(--radius-md);color:var(--color-text);align-items:center;gap:16px;padding:16px 18px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}a.material-row:hover{box-shadow:var(--shadow-md);color:var(--color-text);border-color:#c9d7e8;transform:translateY(-1px)}.material-row-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.material-row-text{flex-direction:column;flex:1;min-width:0;display:flex}.material-row-title{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.material-row-sub{color:var(--color-text-faint);font-size:13px}.material-row-open{color:var(--color-text-faint);flex-shrink:0}.feedback-card{border-radius:var(--radius-md);color:#4a1772;background:#f3e8fd;align-items:flex-start;gap:12px;margin-bottom:20px;padding:14px 16px;display:flex}.feedback-card svg{flex-shrink:0;margin-top:2px}.feedback-label{text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:12px;font-weight:700}.feedback-text{color:var(--color-text);white-space:pre-line;overflow-wrap:anywhere;margin:2px 0 0;font-size:14px}.feedback-input{margin-top:10px;font-size:13px}.feedback-inline{color:var(--color-text-muted);overflow-wrap:anywhere;margin:8px 0 0;font-size:13px;font-style:italic}.grade-summary{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:18px;margin-bottom:20px;padding:18px 20px;display:flex}.grade-ring{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:76px;height:76px;display:flex;position:relative}.grade-ring:before{content:"";background:var(--color-surface);border-radius:50%;position:absolute;inset:8px}.grade-ring span{font-family:var(--font-display);font-size:17px;font-weight:800;position:relative}.grade-summary-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-faint);margin:0;font-size:12px;font-weight:700}.grade-summary-mark{font-family:var(--font-display);color:var(--color-navy-dark);margin:2px 0 0;font-size:30px;font-weight:800;line-height:1.1}.grade-summary-mark span{color:var(--color-text-faint);font-size:17px;font-weight:600}.grade-summary-note{color:var(--color-text-muted);margin:4px 0 0;font-size:13px}.form-stack{flex-direction:column;gap:14px;display:flex}.form-stack label{margin-bottom:6px;display:block}.session-row-cancelled{opacity:.85}a.session-row-link{color:inherit;border-radius:10px;text-decoration:none}a.session-row-link:hover{background:var(--color-bg);color:inherit}.session-row-cancelled .session-day-badge{background:#fcebeb}.session-message.session-cancelled{color:#a32d2d}.session-moved{color:#ba7517;align-items:center;gap:3px;font-weight:500;display:inline-flex}.announcement-list{flex-direction:column;gap:10px;display:flex}.announcement{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-navy);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.announcement-icon{color:#0c447c;background:#e6f1fb;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.announcement-title{color:var(--color-text);overflow-wrap:anywhere;margin:0;font-size:14.5px;font-weight:700}.announcement-body{color:var(--color-text-muted);white-space:pre-line;overflow-wrap:anywhere;margin:3px 0 0;font-size:13.5px}.announcement-date{color:var(--color-text-faint);margin:4px 0 0;font-size:12px}.sched-list{flex-direction:column;display:flex}.sched-row{align-items:center;gap:12px;padding:12px 0;display:flex}.sched-row+.sched-row{border-top:1px solid var(--color-border-light)}.sched-cancelled .session-day-badge{background:var(--tone-red-bg)}.sched-cancelled .session-day-badge .day-label,.sched-cancelled .session-day-badge .day-number{color:var(--tone-red)}.sched-moved .session-day-badge{background:var(--tone-amber-bg)}.sched-body{flex:1;min-width:0}.sched-title{color:var(--color-text);margin:0;font-size:14.5px;font-weight:600}.sched-meta{color:var(--color-text-faint);flex-wrap:wrap;align-items:center;gap:4px;margin:3px 0 0;font-size:12.5px;line-height:1.4;display:flex}.sched-meta .status-chip{white-space:normal;padding:2px 8px;font-size:11px}.sched-actions{flex-shrink:0;gap:6px;display:flex}.sched-actions button{min-height:34px}@media (max-width:640px){.sched-row{flex-wrap:wrap}.sched-actions{width:100%;padding-left:62px}.sched-actions button{flex:1;justify-content:center}}.attn-chips{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}button.attn-chip{--a:var(--tone-red);--a-bg:var(--tone-red-bg);background:var(--color-surface);border:1px solid var(--color-border-light);min-height:56px;box-shadow:var(--shadow-sm);color:var(--a);text-align:left;border-radius:16px;align-items:center;gap:10px;padding:10px 14px;font-weight:500;display:flex}button.attn-chip:hover:not(:disabled),button.attn-chip.open{background:var(--color-surface);border-color:var(--a);color:var(--a);box-shadow:var(--shadow-md)}button.attn-chip.attn-amber{--a:var(--tone-amber);--a-bg:var(--tone-amber-bg)}button.attn-chip.attn-blue{--a:var(--tone-blue);--a-bg:var(--tone-blue-bg)}.attn-chip-icon{background:var(--a-bg);width:34px;height:34px;color:var(--a);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.attn-chip-text{min-width:0;color:var(--color-text);flex:1;font-size:14px}.attn-chip-text strong{font-family:var(--font-display);color:var(--a);margin-right:3px;font-size:17px;font-weight:800}.attn-list{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:10px;padding:4px 16px}a.attn-row{color:var(--color-text);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}a.attn-row+a.attn-row{border-top:1px solid var(--color-border-light)}a.attn-row:hover .attn-row-title{color:var(--color-navy)}.attn-row-main{flex-direction:column;min-width:0;display:flex}.attn-row-title{overflow-wrap:anywhere;font-size:14px;font-weight:600}.attn-row-sub{color:var(--color-text-faint);font-size:12.5px}.attn-row-time{color:var(--tone-amber);white-space:nowrap;font-size:12.5px;font-weight:700}.nc-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px}.nc-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.nc-head-icon{background:var(--tone-blue-bg);width:36px;height:36px;color:var(--color-navy);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.nc-title{margin:0;font-size:17px}.nc-count{color:#fff;background:#d93a3a;border-radius:10px;padding:2px 9px;font-size:12px;font-weight:700}button.nc-link{min-height:0;color:var(--color-navy);box-shadow:none;background:0 0;border-radius:8px;align-items:center;gap:5px;margin-left:auto;padding:6px 4px;font-size:13px;font-weight:600;display:inline-flex}button.nc-link:hover:not(:disabled){color:var(--color-navy-light);box-shadow:none;background:0 0}.nc-body{flex-direction:column;gap:14px;display:flex}.nc-group{flex-direction:column;gap:6px;display:flex}.nc-scroll.scroll-box{max-height:min(460px,58vh);padding:2px 4px 2px 2px}.nc-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint);margin:0 0 2px;font-size:11.5px;font-weight:700}button.nc-item{--nc:var(--tone-blue);--nc-bg:var(--tone-blue-bg);background:var(--color-surface-2);width:100%;min-height:0;color:var(--color-text);box-shadow:none;text-align:left;border:1px solid #0000;border-radius:14px;align-items:center;gap:12px;padding:12px;font-weight:400;display:flex}button.nc-item:hover:not(:disabled){color:var(--color-text);box-shadow:none;background:#eef2f8}button.nc-item.nc-unread{background:#f1f6fd;border-color:#d9e7f8}button.nc-item.nc-tone-green{--nc:var(--tone-green);--nc-bg:var(--tone-green-bg)}button.nc-item.nc-tone-amber{--nc:var(--tone-amber);--nc-bg:var(--tone-amber-bg)}button.nc-item.nc-tone-red{--nc:var(--tone-red);--nc-bg:var(--tone-red-bg)}button.nc-item.nc-tone-purple{--nc:var(--tone-purple);--nc-bg:var(--tone-purple-bg)}.nc-icon{background:var(--nc-bg);width:38px;height:38px;color:var(--nc);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.nc-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.nc-item-title{color:var(--color-text);overflow-wrap:anywhere;font-size:14.5px;font-weight:600;line-height:1.35}.nc-item-body{color:var(--color-text-muted);overflow-wrap:anywhere;font-size:13.5px;line-height:1.4}.nc-time{color:var(--color-text-faint);margin-top:1px;font-size:12px}.nc-chevron{color:#b3bccb;flex-shrink:0}.nc-dot{background:var(--color-navy-light);border-radius:50%;flex-shrink:0;width:9px;height:9px;box-shadow:0 0 0 3px #3b82d62e}.nc-empty{background:var(--tone-green-bg);color:var(--tone-green);border-radius:14px;align-items:center;gap:10px;margin:0;padding:14px;font-size:14px;font-weight:500;display:flex}@media (max-width:640px){.nc-card{padding:16px 14px}button.nc-item{gap:11px;padding:11px}}.ppq-panel{background:var(--color-bg);border-radius:var(--radius-md);margin-top:12px;padding:14px}.ppq-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.ppq-title{color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:12px;font-weight:600}.ppq-aside{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ppq-chip{white-space:nowrap;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:700}.ppq-empty{color:var(--color-text-faint);margin:0;font-size:13px;font-style:italic}.ppq-list{flex-direction:column;gap:8px;display:flex}.ppq-row{border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.ppq-parts{flex-direction:column;flex:100%;gap:6px;padding:8px 0 2px 54px;display:flex}.ppq-part{border:1px solid var(--color-border-light);background:#ffffffb3;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;display:flex}.ppq-part.is-invalid{border-color:#a32d2d}.ppq-part-name{color:var(--color-text);overflow-wrap:anywhere;min-width:0;font-size:13px;font-weight:500}.ppq-part-mark{white-space:nowrap;font-size:14px;font-weight:700}.ppq-part-mark small{color:var(--color-text-muted);font-size:11px;font-weight:500}.ppq-input-sm input{width:50px;min-height:36px;font-size:15px}@media (max-width:480px){.ppq-parts{padding-left:0}}.ppq-more{color:#fff;border:2px solid #fff;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:700;position:absolute;bottom:-6px;right:-6px}.ppq-q{color:var(--color-text);margin:0;font-size:14px;font-weight:600}.ppq-chapters{color:var(--color-text-muted);overflow-wrap:anywhere;margin:0;font-size:12px}.ppq-score{text-align:right;flex-shrink:0}.ppq-mark{margin:0;font-size:17px;font-weight:700}.ppq-mark span{color:var(--color-text-muted);font-size:12px;font-weight:500}.ppq-pct{margin:0;font-size:11px}.ppq-missing{color:var(--color-text-faint);margin:0;font-size:12px}.ppq-input{color:var(--color-text-muted);align-items:center;gap:4px;margin:0;font-size:12px;font-weight:500;display:inline-flex}.ppq-input input{text-align:center;background:#fff;width:58px;min-height:40px;padding:6px 4px;font-size:16px;font-weight:700}.ppq-note{color:var(--color-text-muted);align-items:flex-start;gap:6px;margin:12px 0 0;font-size:12px;display:flex}.ppq-note svg{flex-shrink:0;margin-top:2px}.ppq-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.ppq-actions>button{flex:auto}.ppq-status{white-space:nowrap;border-radius:12px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.ppq-status-locked{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border)}.ppq-status-open{color:#1e7b45;background:#e9f7ef}.ppq-status-requested{color:#ba7517;background:#fef3e2}.ppq-request{border-radius:var(--radius-md);color:#7a4d0b;background:#fef3e2;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;font-size:13px;display:flex}.ppq-request>div{flex-wrap:wrap;gap:6px;display:flex}.child-switcher{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}button.child-chip{background:var(--color-surface);max-width:100%;color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);text-align:left;border-radius:999px;align-items:center;gap:10px;padding:6px 14px 6px 6px;font-weight:500;display:inline-flex}button.child-chip:hover{background:var(--color-surface);color:var(--color-navy);box-shadow:var(--shadow-md);transform:none}button.child-chip.active,button.child-chip.active:hover{background:var(--color-navy);color:#fff;border-color:var(--color-navy)}.child-chip-avatar{color:#0c447c;background:#e6f1fb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:inline-flex}button.child-chip.active .child-chip-avatar{color:#fff;background:#fff3}.child-chip-name{overflow-wrap:anywhere;min-width:0;line-height:1.3}.insight-card{padding:20px 22px}.insight-title{color:var(--color-navy);align-items:center;gap:8px;margin:0 0 12px;font-size:15px;font-weight:700;display:flex}.insight-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.insight{color:var(--color-text);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:14px;line-height:1.5;display:flex}.insight svg{flex-shrink:0;margin-top:3px}.insight-good{background:#e9f7ef}.insight-good svg{color:#1e7b45}.insight-warn{background:#fef3e2}.insight-warn svg{color:#ba7517}.insight-bad{background:#fcebeb}.insight-bad svg{color:#a32d2d}.insight-info{background:var(--color-bg)}.insight-info svg{color:var(--color-navy)}.insight-more{align-items:center;gap:2px;margin-top:12px;display:inline-flex}.parent-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;display:grid}.activity-card{padding:6px 18px}.activity-row{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:12px 0;display:flex}.activity-row:last-child{border-bottom:none}.activity-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.activity-title{color:var(--color-text);overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:600}.activity-meta{color:var(--color-text-faint);margin:2px 0 0;font-size:12px}.work-card-chevron{color:var(--color-text-faint);flex-shrink:0}@media (max-width:1000px){.parent-grid{grid-template-columns:1fr}}button.analytics-head{width:100%;color:var(--color-text);box-shadow:none;text-align:left;background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;padding:0 0 14px;display:flex}button.analytics-head:hover,button.analytics-head:focus,button.analytics-head:active{color:var(--color-text);box-shadow:none;background:0 0;transform:none}button.analytics-head:focus-visible{outline:2px solid var(--color-navy);outline-offset:4px;border-radius:8px}.analytics-title{color:var(--color-navy);overflow-wrap:anywhere;font-size:16px;font-weight:700;display:block}.analytics-sub{color:var(--color-text-faint);flex-wrap:wrap;align-items:center;gap:5px;margin-top:2px;font-size:12px;display:flex}.analytics-metrics{grid-template-columns:repeat(7,minmax(0,1fr))}.analytics-section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.analytics-section-head .list-eyebrow{align-items:center;gap:6px;display:flex}.chapter-row-head small{color:var(--color-text-faint);font-size:12px;font-weight:400}.text-link{color:var(--color-navy);font-size:13px;font-weight:500;text-decoration:none}.text-link:hover{text-decoration:underline}.table-scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.analytics-table{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}.analytics-table th,.analytics-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:10px 12px}.analytics-table thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint);background:var(--color-bg);font-size:11px;font-weight:600}.analytics-table tbody th{white-space:normal;text-transform:none;letter-spacing:normal;min-width:160px;color:var(--color-text);background:0 0;font-size:13px;font-weight:500}.analytics-table tbody tr:last-child th,.analytics-table tbody tr:last-child td{border-bottom:none}@media (max-width:900px){.analytics-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:480px){.analytics-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}}.report-card{flex-direction:column;gap:18px;display:flex}.report-head{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:6px 0 4px;display:flex}.report-head .full-logo{margin-bottom:8px}.report-kind{letter-spacing:.14em;text-transform:uppercase;color:var(--color-amber);font-size:11px;font-weight:700}.report-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-navy-dark);margin:0;font-size:28px;font-weight:800;line-height:1.15}.report-range{color:var(--color-navy);background:#e6f1fb;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.report-accent{background:linear-gradient(90deg, var(--color-navy), var(--color-amber));border-radius:20px;width:64px;height:4px;margin-top:10px}.report-meta{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.report-meta>div{background:var(--color-bg);text-align:center;border-radius:14px;padding:10px 18px}.report-meta-label{color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:11px}.report-meta-value{color:var(--color-text);margin:0;font-size:14px;font-weight:600}.report-overall{background:var(--color-bg);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;padding:18px 20px;display:flex}.report-big{margin:2px 0 0;font-size:38px;font-weight:800;line-height:1.1}.report-delta{color:var(--color-text-faint);align-items:center;gap:6px;margin:6px 0 0;font-size:13px;display:flex}.report-parts{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:360px;display:flex}.report-parts span{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:3px 9px;font-size:11px}.report-parts em{color:var(--color-text-faint);margin-left:2px;font-style:normal}.report-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;display:grid}.report-stat{background:var(--color-bg);border-radius:var(--radius-md);padding:14px 16px}.report-stat-value{margin:0;font-size:22px;font-weight:700}.report-stat-label{color:var(--color-text-muted);margin:0;font-size:12px}.report-section{background:var(--color-bg);border-radius:var(--radius-md);break-inside:avoid;page-break-inside:avoid;padding:16px 20px}.report-section-head{color:var(--color-navy);align-items:center;gap:8px;margin-bottom:8px;display:flex}.report-section-head h3{margin:0;font-size:15px}.report-section-aside{margin-left:auto;font-size:13px}.report-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:13px;display:flex}.report-row:last-child{border-bottom:none}.report-row-label{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;display:flex}.report-row-label small{color:var(--color-text-faint);font-size:11px}.report-row-value{flex-shrink:0}.report-late{color:#a32d2d;background:#fcebeb;border-radius:8px;padding:1px 6px;font-size:10px;font-weight:700}@media (max-width:480px){.report-stats:has(>:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.report-stats:has(>:nth-child(3):last-child) .report-stat{padding:12px 10px}.report-stats:has(>:nth-child(3):last-child) .report-stat-value{font-size:19px}.report-parts{justify-content:flex-start}.report-big{font-size:32px}}@media print{.sidebar,.sidebar-backdrop,.toast-stack,.page-header button,.tab-bar,.no-print{display:none!important}.main-area{margin-left:0!important;padding-bottom:0!important}.workspace-tabs,.modal-overlay,[data-app-chrome],.seg-tabs,.group-switcher,.child-switcher,.work-card-side button,.topic-actions button{display:none!important}html,body,.page-shell,.main-area{background:#fff!important}.page-content{max-width:100%!important;padding:0!important;animation:none!important}.card{box-shadow:none!important;border:1px solid #ddd!important}body{background:#fff!important}}.pulse-dot{background:#a32d2d;border-radius:50%;width:7px;height:7px;animation:1.4s infinite pulse-dot-anim;display:inline-block}@keyframes pulse-dot-anim{0%{box-shadow:0 0 #a32d2d80}70%{box-shadow:0 0 0 6px #a32d2d00}to{box-shadow:0 0 #a32d2d00}}.made-by-line{text-align:center;color:var(--color-text-faint);margin:0;font-size:12px}.m-sheet-credit{margin:14px 0 2px}.report-credit{border-top:1px solid var(--color-border-light);color:var(--color-text-faint);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:24px;padding-top:12px;font-size:12px;display:flex}.split-box{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:#fff;margin-bottom:16px;padding:14px}.split-title{color:var(--color-text);margin:0 0 2px;font-size:13px;font-weight:700}.split-sub{color:var(--color-text-muted);margin:0;font-size:12px}.split-bar{background:var(--color-bg);border-radius:999px;gap:3px;height:10px;margin:14px 0 12px;display:flex;overflow:hidden}.split-seg{border-radius:999px;flex-basis:0;min-width:0;transition:flex-grow .2s}.split-left{background:repeating-linear-gradient(45deg,#e3e8f0 0 6px,#f1f4f9 6px 12px)}.split-c0{background:#1d5fa8}.split-c1{background:#7c3aed}.split-c2{background:#0f9f6e}.split-rows{flex-direction:column;gap:8px;display:flex}.split-row{background:var(--color-surface-2);border-radius:12px;align-items:center;gap:10px;padding:6px 8px;display:flex}.split-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.split-name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:13.5px;font-weight:500}.split-input{color:var(--color-text-muted);align-items:center;gap:6px;margin:0;font-size:12px;font-weight:500;display:inline-flex}.split-input input{text-align:center;background:#fff;width:62px;min-height:38px;padding:6px;font-size:16px;font-weight:700}.split-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.split-status{border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.split-status.ok{background:var(--tone-green-bg);color:var(--tone-green)}.split-status.short{color:#ba7517;background:#fef3e2}.split-status.over{color:#a32d2d;background:#fcebeb}.split-hint{color:var(--color-text-faint);margin:10px 0 0;font-size:12px}.hw-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.hw-toolbar>:first-child{flex:auto;min-width:0}.brand-word{letter-spacing:.06em;white-space:nowrap}.brand-y{color:#1f6fe5!important}.auth-brand .brand-y,.sidebar .brand-y{color:#4da6ff!important}.grade-badge{font-family:var(--font-display);flex-shrink:0;justify-content:center;align-items:center;font-weight:800;line-height:1;display:inline-flex}.grade-badge-empty{background:var(--color-bg);width:38px;height:38px;color:var(--color-text-faint);border-radius:12px;font-size:16px}.grade-chip{white-space:nowrap;border-radius:999px;align-items:center;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.bscale{margin-top:14px}.bscale-bar{border-radius:999px;height:12px;display:flex;position:relative;overflow:visible}.bscale-bar>span{flex-basis:0;height:100%;display:block}.bscale-bar>span:first-child{border-radius:999px 0 0 999px}.bscale-bar>span:last-of-type{border-radius:0 999px 999px 0}.bscale-pin{background:var(--color-navy);border-radius:2px;width:4px;height:24px;margin-left:-2px;position:absolute;top:-6px;box-shadow:0 0 0 2px #fff}.bscale-ticks{height:18px;color:var(--color-text-faint);margin-top:6px;font-size:10.5px;position:relative}.bscale-ticks span{white-space:nowrap;position:absolute;transform:translate(-50%)}.paper-grade{margin-bottom:20px}.paper-grade-row{align-items:center;gap:14px;margin-top:8px;display:flex}.paper-grade-mark{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:24px;font-weight:800}.paper-grade-mark span{color:var(--color-text-faint);font-size:14px;font-weight:600}.paper-grade-sub{color:var(--color-text-muted);margin:2px 0 0;font-size:13px}.trend-chip{color:#5b6475;white-space:nowrap;background:#eef1f6;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.trend-chip.up{color:#1e7b45;background:#e9f7ef}.trend-chip.down{color:#a32d2d;background:#fcebeb}.bound-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 4px;display:grid}.bound-grid label{flex-direction:column;gap:4px;margin:0;font-size:12px;font-weight:700;display:flex}.bound-grid input{text-align:center;min-height:42px;padding:6px;font-size:16px;font-weight:700}@media (min-width:640px){.bound-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.bound-grid-8{grid-template-columns:repeat(4,minmax(0,1fr))}@media (min-width:640px){.bound-grid-8{grid-template-columns:repeat(8,minmax(0,1fr))}}.bscale-list{color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:11.5px}.bscale-list span{color:var(--color-text-faint)}.full-logo{max-width:60vw;height:auto;display:block}.report-tally{flex-direction:column;gap:12px;padding:4px 0 2px;display:flex}.report-tally-row{flex-wrap:wrap;align-items:center;gap:10px 18px;display:flex}.report-tally-label{letter-spacing:.06em;color:var(--color-text-faint);flex-basis:100%;font-size:11px;font-weight:700}.report-tally-item{font-family:var(--font-display);color:var(--color-navy-dark);align-items:center;gap:8px;font-size:16px;font-weight:800;display:inline-flex}.report-tally-note{color:var(--color-text-faint);margin:0;font-size:12px}.report-score{align-items:center;gap:10px;display:inline-flex}.credit-caps{letter-spacing:.2em;text-transform:uppercase;color:var(--color-navy);font-size:10.5px;font-weight:700}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
