@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAa0ABQAAAAADOwAAAZHAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbbhwoP0hWQVJtP01WQVJGBmA/U1RBVIEcAGQvXBEICoMkgmcLFgAwhEwBNgIkAyYEIAWGXAdiDAcbOgtRlHLSRcD8TEzkdoghPRuspKefbVnJIM5yRfA8vZv9uTNJSCZY21Scrigr6qyJ/C3sE1OFKuVP3e+lxUTbYio1zb/kFdk2bufY2BlhWERRBrcDUBhB5GEpd2Cy+MDxqf9zLPX+XVsk5r+s50d6IpWLatqbdT6f2MAikiOKQocbjya2QT0DqPDX4R0jQBgAUAiCRhDA0EkvYeLk9X3I2bEWI8jBAihIANm+kUWQBgggWChcBBdFhXlAUgOCAgBA0AgKjUJ8HKvjddFCKSgAVklEBYAeEJgCQJH0qB3B+neDg4sAA4hAD0AVIEAA0IACJGeaUjMIIIhBUE/zNABjTQMBwEVRcwcYBUCObLERABAgjAA1M/ZSa9hSi4OlpsnZ2KBOVUsAZlRGl1W0NZ6gSwhQPIAFs7YFL0QS91vRQgdgx2VDAnIegKpQvwAJIoLgooBAGtCJcHizg0TDiz8vhPgIcVXaDJu37ZyDAIjFy4AAiC1JAA0olJwN6nFAACQk/zfQVUuA3t5ELKMT9hpBSRj+HBSggYCIAIEkUoC4PCIQIWHGA8+IStxf0PW15ntP22gc+Wo+BLyQAHECQiAVd+c3Ba8gZ4NOACBaLOhsbIMkAXEmuHsSAvkf4oJaAogH6nEQAzoBIEihUAwAA0AACAObAGcANYAAABaqgMmpWAhiiVyrvNyqFV8tMQ5Iyq6r9Lf7W82i8ILl2cv8zbfdJ5lnPzSnvt/XXPfRR/5pH3xA+u5uS0798EPJ3Fft33w36Wc+8E/7aIB/9fvvb1pE9erNXLB9mkw//cSg8Cnx03VGXDvZnRzKqV9Xkhn7eRHb3wVjHpg19nkZpX9bBU+vnHegrsuQcbW9Bi7oO33h+8SU0Tly/MbeYUuG1cftVz6oNxrW0qH1iezq446fkDFo/rgvTkqt7zmteFzncZ0uxXti09FFF2z+C7CODpjUudOE5NSeb3bv/mbPKcmOEzpWQ3VBgBAuj/AOY3qMm7UvgA8qo3+qvAUBBAX0wADQG4AG+jCKaSxkBe/zvcTG8jRpRZgqhCog4sd++cOo7J+/RdvaaMoc78Ri/PNPSclx6fDvG1Kt3qQFi1rq+5EaavTtt9TVvfvucYsA5wc4oESU+E1ikF9TkrOkIsIH5Fawx7SBNLnMcWlM3skBluCmQNs7GeyFvYVDamsqwhxx18n/+WdxzDgOLU1AqbUlb3m+KOT9+ONvY/7XlrdLS//5v7nN97XHj0VzJpJvz4spq0V7ioXDuv2YrSxtF/KZmvbWfKtorXSh8dfvgGu+ev/nFSaXM6jyuCE/f/EpmuP7Rqu8R98vP/+tXUdrOgKlZP9Q/s+fRF9+3CHZd4EugfPv158me9X7v/6aSMCxMJmIr//65bNXngl7+uiPP5oKx+y27D8trp+psUzMacpm80XlnYeMAct0LynxhNYgaP3dtn8/LBAi+ksr+7NvjjtJV+UXrz0uLXV1x08AZRN1S2A8EaVE5afk/dfGjz//+fdHn36Xdttz2d9/z+bawZ8/slNN1aYtq+ZPGzNuPGdwOsfYflwmHCkPgs5DcKizvdpS/3gEUMW9/lvQvWp1bGTW1fpngC/uSVYAfH3TeSusL8TtlHUD4KAAEHjahk4YpuffGwEBN/dUmpHqdHyJ3Ap8O3UlQ4gCNrMRwLBBKiskL6a+RoBi/9XGlgc8L4/CUejQxaiIyqmomdhktOhfgDbDfaNDb4+yKIPd6IgmzDa0CByijWFmL2dlSRKagTIWXeIU9HDphoZiJeBTjAefHMxDhVSRFUgVcOkW3EGMahYVMFjWHhMluB2wAcbHYqF1LpsDF9C6s+CI2fDgh4wSuFEyGadjXAmIk3CugIRibLIti9ZtC8S4VSqfikGqPaoI122XyRYLBmsOmdiiTpqK1OklUQzpMcZmQRQV4M4oJCMkfRQXK+qvjifUcQd1bRdetW/LWjacYxvcttnVjWg5h0q4xw6rZyejSpZVZ78LzC4uyDNRQ4bymHSTMyM+SZ7D75mg/7YTlmNz7W8T00h0VEiGKB+F7iWYZFvSTiA4LVxttm2ATt5EoUWLJbY4EnLGrfsvEROlHtzlKn3H9VUT5tU/2dt3/EBv7foYzV/W4upyj04woO/gh6Vwwt3WGQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@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-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}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;--spacing:.25rem;--text-base:1rem;--text-base--line-height: 1.5 ;--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%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;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:where(:not(iframe)){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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-8{margin:calc(var(--spacing) * 8)}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-6{height:calc(var(--spacing) * 6)}.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}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.blur{--tw-blur:blur(8px);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,)}.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,)}}:root{color:var(--paint-fg-172033,#172033);background:var(--paint-bg-f7f7fa,#f7f7fa);font-synthesis:none;--blue:#375cdb;--blue-dark:#2949b8;--yellow:#ffd12b;--orange:#ff813f;--ink:#172033;--muted:#5e687a;--line:#e6e8ee;--radius:22px;font-family:Plus Jakarta Sans Variable,sans-serif;font-size:14px}*{box-sizing:border-box}body{min-width:0;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:not-allowed;opacity:.52}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline-offset:4px;outline:3px solid #ffbc24}input,select,textarea{color:var(--ink);background:var(--paint-bg-fff,#fff);border:1px solid var(--paint-border-cfd4df,#cfd4df);border-radius:12px;outline:none;width:100%;min-height:46px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:var(--paint-fg-697487,#697487)}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #375cdb1a}select{cursor:pointer;padding-right:28px}textarea{resize:vertical;min-height:105px}label{color:var(--paint-fg-4b5568,#4b5568);flex-direction:column;gap:8px;font-size:12px;font-weight:600;display:flex}h1,h2,h3,p{margin:0}h1{letter-spacing:-1.6px;font-size:36px;font-weight:750;line-height:1.2}h2{letter-spacing:-.5px;font-size:18px;font-weight:700;line-height:1.45}h3{font-size:15px;font-weight:700}p{color:var(--muted);font-size:13px;line-height:1.8}small{color:var(--muted);font-size:11px;line-height:1.6}svg{flex-shrink:0}form>label{margin:18px 0}form>.button{margin-top:16px}.button{background:var(--blue);color:#fff;border:1px solid var(--blue);white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:45px;padding:12px 18px;font-size:12px;font-weight:650;transition:background .15s;display:inline-flex}.button:hover:not(:disabled){background:var(--blue-dark)}.button.secondary{border-color:var(--paint-border-d9dde6,#d9dde6);color:var(--paint-fg-2b364c,#2b364c);background:#fff}.button.secondary:hover:not(:disabled){background:var(--paint-bg-eef2ff,#eef2ff);border-color:var(--paint-border-b6c3f2,#b6c3f2)}.button.small{min-height:40px;padding:9px 13px;font-size:11px}.button svg{width:17px;height:17px}.button.wide{width:100%}.button-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;display:flex}.icon-button{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;min-height:42px;display:inline-flex}.icon-button:hover{background:var(--paint-bg-e9edf6,#e9edf6)}.icon-button svg{width:20px;height:20px}.text-button{min-height:42px;color:var(--paint-fg-2c4cbd,#2c4cbd);justify-content:center;align-items:center;gap:8px;padding:6px 0;font-size:12px;font-weight:650;display:inline-flex}.text-button svg{width:16px}.danger{color:var(--paint-fg-ac2f28,#ac2f28)}.pill{white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;padding:7px 10px;font-size:11px;font-weight:600;display:inline-flex}.pill.success{background:var(--paint-bg-e7f5e9,#e7f5e9);color:var(--paint-fg-27673d,#27673d)}.pill.neutral{background:var(--paint-bg-eef0f5,#eef0f5);color:var(--paint-fg-515b6e,#515b6e)}.pill.light{background:var(--paint-bg-ffffff21,#ffffff21);color:#fff}.count{background:var(--paint-bg-eef1fa,#eef1fa);min-width:25px;height:25px;color:var(--paint-fg-3b55a1,#3b55a1);border-radius:8px;justify-content:center;align-items:center;margin-left:9px;padding:0 6px;font-size:11px;font-weight:650;display:inline-flex}.eyebrow{letter-spacing:1.4px;color:var(--paint-fg-55637b,#55637b);font-size:10px;font-weight:650;display:block}.muted{color:var(--muted);font-size:12px}.notice{background:var(--paint-bg-edf1ff,#edf1ff);border:1px solid var(--paint-border-dce3ff,#dce3ff);color:var(--paint-fg-284497,#284497);border-radius:12px;align-items:center;gap:10px;margin-bottom:20px;padding:13px 16px;font-size:12px;line-height:1.8;display:flex}.notice.error{background:var(--paint-bg-fff0ed,#fff0ed);border-color:var(--paint-border-f7d5cf,#f7d5cf);color:var(--paint-fg-9c362c,#9c362c)}.notice>svg{width:18px}.notice>span{flex:1}.notice .icon-button{margin-left:auto}.segmented{background:var(--paint-bg-f0f1f5,#f0f1f5);border-radius:13px;gap:5px;padding:5px;display:flex}.segmented button{min-height:39px;color:var(--paint-fg-515d73,#515d73);white-space:nowrap;border-radius:10px;flex:1;padding:9px 14px;font-size:12px;font-weight:600}.segmented .selected{color:var(--blue-dark);background:#fff;box-shadow:0 2px 6px #2231560b}.segmented.compact{width:max-content;max-width:100%}.segmented.compact button{min-height:34px;padding:8px 12px;font-size:11px}.brand{letter-spacing:-.6px;align-items:center;gap:10px;font-size:23px;font-weight:800;display:flex}.brand-mark{flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.brand-mark svg{width:34px;height:34px}.brand small{letter-spacing:1px;color:inherit;margin-top:1px;font-size:10px;font-weight:450;display:block}.user-avatar{background:var(--yellow);width:39px;height:39px;color:var(--paint-fg-182139,#182139);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:750;display:grid}.user-avatar.large{width:60px;height:60px;font-size:19px}.boot-screen,.error-page{min-height:100dvh;color:var(--blue);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:30px;display:flex}.boot-screen span{font-size:12px}.spin{animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skip-link{z-index:200;background:var(--paint-bg-fff,#fff);padding:15px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:10px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{min-height:100dvh;display:flex}.sidebar{background:var(--blue);color:#fff;z-index:40;flex-direction:column;width:218px;padding:32px 18px 20px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar>.brand{margin:4px 13px 48px}.sidebar-course{letter-spacing:1.4px;color:#fff;margin:0 14px 17px;font-size:9px}.sidebar nav{flex-direction:column;gap:8px;display:flex}.sidebar nav button,.sidebar-bottom>button{text-align:left;color:#fff;border-radius:14px;align-items:center;gap:13px;width:100%;min-height:48px;padding:13px 16px;font-size:13px;font-weight:600;display:flex}.sidebar nav svg,.sidebar-bottom>button>svg{width:21px;height:21px}.sidebar nav button:hover,.sidebar-bottom>button:hover{background:var(--paint-bg-ffffff15,#ffffff15)}.sidebar nav .active,.sidebar-bottom>button.active{color:var(--paint-fg-2d4ebe,#2d4ebe);background:#fff}.sidebar-bottom{margin-top:auto;padding-top:40px}.sidebar-bottom .sidebar-user{border-top:1px solid var(--paint-border-ffffff38,#ffffff38);border-radius:0;gap:10px;margin-top:16px;padding:20px 8px 0}.sidebar-user strong{max-width:130px;font-size:11px;line-height:1.7;display:block}.sidebar-user small{color:#fff;font-size:10px}.app-main{width:calc(100% - 218px);min-width:0;margin-left:218px}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:88px;padding:0 38px;display:flex}.topbar>div{align-items:center;gap:18px;display:flex}.topbar-course{align-items:center;gap:9px;font-size:13px;font-weight:650;display:flex}.topbar-course svg{width:19px;color:var(--blue)}.topbar-period{border-left:1px solid var(--line);color:var(--muted);padding-left:18px;font-size:11px}.mobile-menu{display:none}.content{max-width:1420px;margin:auto;padding:32px 38px 60px}.page-heading{justify-content:space-between;align-items:center;gap:18px;margin:9px 0 29px;display:flex}.page-heading .eyebrow{margin-bottom:11px}.heading-dot{color:var(--blue);margin-left:2px}.date-pill{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 15px;font-size:12px;font-weight:550}.panel{background:var(--paint-bg-fff,#fff);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:22px;padding:25px}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.section-heading h2{align-items:center;gap:2px;display:flex}.section-heading p{margin-top:4px;font-size:11px}.section-heading>svg{color:var(--paint-fg-556682,#556682);width:21px}.source-link{border-top:1px solid var(--line);color:var(--paint-fg-2e3c57,#2e3c57);overflow-wrap:anywhere;align-items:center;gap:10px;padding:17px 0;font-size:12px;font-weight:550;display:flex}.source-link>svg{width:17px;height:17px}.source-link>svg:last-child{color:var(--paint-fg-4766be,#4766be);margin-left:auto}.source-link:hover{color:var(--blue)}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:17px;padding:45px 15px;display:flex}.empty-state h3{color:var(--muted);font-size:14px;font-weight:550}.empty-state>.spin{color:var(--blue);width:26px;height:26px}.empty-state p{max-width:300px;font-size:12px}.bottom-nav{display:none}.workspace-grid{grid-template-rows:190px 175px;grid-template-columns:1.25fr 1fr;gap:18px;margin-bottom:30px;display:grid}.workspace-card{text-align:left;border-radius:25px;flex-direction:column;justify-content:space-between;gap:18px;min-width:0;padding:24px;transition:transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.workspace-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #1f31631a}.workspace-card.yellow{background:var(--yellow);color:var(--paint-fg-172033,#172033)}.workspace-card.blue{background:var(--blue);color:#fff}.workspace-card.orange{background:var(--orange);color:var(--paint-fg-1e2534,#1e2534)}.workspace-card.light{background:var(--paint-bg-e9eaf0,#e9eaf0);color:var(--paint-fg-243047,#243047)}.card-grading h2{letter-spacing:-1.1px;font-size:31px}.workspace-card h2{letter-spacing:-.9px;font-size:22px}.workspace-card p{color:inherit;margin-top:7px;font-size:12px;font-weight:500}.card-top{z-index:2;justify-content:space-between;align-items:center;width:100%;display:flex;position:relative}.card-top>svg{width:22px;height:22px}.card-symbol{background:var(--paint-bg-ffffffc9,#ffffffc9);width:39px;height:39px;color:var(--ink);border-radius:12px;place-items:center;display:grid}.card-symbol svg{width:22px;height:22px}.card-grading>div:nth-child(2){z-index:2;position:absolute;top:95px;left:25px}.card-grading .card-action{z-index:2;align-items:center;gap:9px;font-size:12px;font-weight:650;display:flex;position:relative}.card-action svg{width:17px}.grade-illustration{width:160px;height:180px;position:absolute;bottom:60px;right:22px}.grade-illustration>div{background:#fff;border-radius:14px;padding:36px 17px;position:absolute;top:30px;right:0;bottom:0;left:23px;transform:rotate(12deg);box-shadow:8px 10px #dcae13}.grade-illustration i{background:var(--paint-bg-dce4ff,#dce4ff);border-radius:4px;height:8px;margin-bottom:15px;display:block}.grade-illustration i:nth-child(2){width:75%}.grade-illustration>span{background:var(--blue);color:#fff;text-align:center;z-index:2;border-radius:20px;width:70px;height:70px;font-size:44px;line-height:70px;position:absolute;top:0;left:0;transform:rotate(-12deg);box-shadow:4px 5px #b09318}.three-dots{gap:7px;display:flex;position:absolute;bottom:25px;right:25px}.three-dots>span{border:1px solid var(--paint-border-ffffff99,#fff9);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:19px;line-height:1;display:grid}.three-dots .done{color:var(--blue);background:#fff}.three-dots svg{width:15px}.card-files{grid-area:3/1;height:175px}.card-schedule{grid-area:3/2;height:175px}.workspace-grid{grid-template-rows:190px 175px 175px}.card-grading{grid-row:1/3}.card-documentation{grid-area:1/2/3}.card-documentation h2{font-size:28px}.card-documentation .card-top{margin-bottom:auto}.card-documentation>div:nth-child(2){margin-bottom:50px}.card-documentation .card-symbol{width:48px;height:48px}.card-documentation:after{content:"";border:32px solid var(--paint-border-ffffff0d,#ffffff0d);border-radius:50%;width:200px;height:200px;position:absolute;top:90px;right:-65px}.home-bottom{grid-template-columns:1.2fr 1fr;gap:22px;display:grid}.home-bottom>.panel{margin:0}.group-row{text-align:left;border-top:1px solid var(--line);align-items:center;gap:13px;width:100%;min-height:81px;padding:15px 0;display:flex}.group-letter{background:var(--paint-bg-eff2ff,#eff2ff);width:42px;height:42px;color:var(--paint-fg-304db2,#304db2);border-radius:13px;place-items:center;font-size:16px;font-weight:700;display:grid}.group-row strong{font-size:13px;font-weight:650;display:block}.group-row small{margin-top:3px;font-size:11px;display:block}.group-row>svg{width:19px;color:var(--blue);margin-left:auto}.references .section-heading{margin-bottom:15px}.selectors{align-items:center;gap:17px;max-width:700px;margin:0 0 23px;display:flex}.selectors label{flex:1;min-width:0;font-size:11px}.selectors select{background:#fff;min-height:47px;padding:11px 14px;font-size:13px}.grading-panel{padding:25px 0 0;overflow:hidden}.grading-panel>.section-heading{padding:0 25px}.grading-toolbar{justify-content:space-between;align-items:center;gap:15px;padding:0 25px 22px;display:flex}.search-field{width:220px;position:relative}.search-field input{min-height:40px;padding:10px 13px 10px 36px;font-size:12px}.search-field>svg{width:15px;height:15px;color:var(--paint-fg-65718a,#65718a);position:absolute;top:13px;left:13px}.table-scroll{overflow-x:auto}.grade-table{border-collapse:collapse;white-space:nowrap;width:100%}.grade-table th{background:var(--paint-bg-f7f8fc,#f7f8fc);text-align:left;color:var(--paint-fg-4d5b75,#4d5b75);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 11px;font-size:11px;font-weight:600}.grade-table th:first-child,.grade-table td:first-child{padding-left:25px}.grade-table th small{color:var(--paint-fg-65708a,#65708a);margin-top:4px;font-size:10px;font-weight:450;display:block}.grade-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:18px 11px}.student-cell{align-items:center;gap:11px;display:flex}.avatar{background:var(--paint-bg-e8edff,#e8edff);width:34px;height:34px;color:var(--paint-fg-344fb4,#344fb4);border-radius:11px;flex-shrink:0;place-items:center;font-size:10px;font-weight:700;display:grid}.color-1{background:var(--paint-bg-fff0d6,#fff0d6);color:var(--paint-fg-8e5500,#8e5500)}.color-2{background:var(--paint-bg-e6f4e8,#e6f4e8);color:var(--paint-fg-2e6942,#2e6942)}.color-3{background:var(--paint-bg-ffe8df,#ffe8df);color:var(--paint-fg-934122,#934122)}.student-cell strong{white-space:normal;max-width:225px;font-size:11px;font-weight:650;display:block}.student-cell small{color:var(--paint-fg-647086,#647086);margin-top:4px;font-size:10px;display:block}.grade-table td input{text-align:center;border-color:var(--paint-border-dce0e9,#dce0e9);min-width:44px;max-width:59px;min-height:40px;color:var(--paint-fg-253d7a,#253d7a);border-radius:10px;padding:8px 5px;font-size:13px}.grade-table td input:placeholder-shown{background:var(--paint-bg-f9faff,#f9faff)}.score{min-width:40px;height:34px;color:var(--paint-fg-5b6780,#5b6780);border-radius:9px;place-items:center;font-size:13px;font-weight:650;display:inline-grid}.score.complete{background:var(--paint-bg-e8f5e9,#e8f5e9);color:var(--paint-fg-28653b,#28653b)}.review-button{color:var(--paint-fg-2e4eb6,#2e4eb6);align-items:center;gap:6px;min-height:40px;font-size:11px;font-weight:650;display:inline-flex}.send-bar{justify-content:space-between;align-items:center;gap:22px;padding:23px 25px;display:flex}.send-bar>div{width:210px;max-width:45%}.send-bar span{color:var(--paint-fg-52617a,#52617a);font-size:12px;font-weight:550}.progress{background:var(--paint-bg-edf0f6,#edf0f6);border-radius:9px;height:5px;margin-top:11px;overflow:hidden}.progress i{background:var(--blue);border-radius:9px;height:100%;display:block}.lms-bar{background:var(--paint-bg-edf1ff,#edf1ff);border:1px solid var(--paint-border-dce4ff,#dce4ff);border-radius:18px;align-items:center;gap:15px;margin-bottom:22px;padding:19px 22px;display:flex}.lms-bar>div{flex:1;align-items:center;gap:11px;min-width:0;display:flex}.lms-bar strong{font-size:13px;display:block}.lms-bar small{overflow-wrap:anywhere;margin-top:4px;font-size:11px;display:block}.lms-bar select{width:120px;max-width:32%;min-height:40px;padding:9px 12px;font-size:12px}.provider-icon{width:38px;height:38px;color:var(--paint-fg-355ac7,#355ac7);background:#fff;border-radius:12px;flex-shrink:0;place-items:center;font-size:18px;font-weight:750;display:grid}.provider-icon.google{background:var(--paint-bg-edf2ff,#edf2ff);color:var(--paint-fg-3153ba,#3153ba)}.provider-icon.moodle{background:var(--paint-bg-fff1da,#fff1da);color:var(--paint-fg-92540f,#92540f)}.provider-icon.fri{background:var(--paint-bg-eaf5ed,#eaf5ed);color:var(--paint-fg-2f6744,#2f6744)}.provider-title{align-items:center;gap:12px;display:flex}.stage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:23px;display:grid}.stage-card{border:1px solid var(--line);text-align:left;background:#fff;border-radius:17px;align-items:center;gap:13px;min-width:0;padding:20px 17px;display:flex}.stage-card>span{color:var(--paint-fg-657390,#657390);font-size:17px;font-weight:650}.stage-card>span svg{width:21px;color:var(--paint-fg-2c7a46,#2c7a46)}.stage-card>svg{width:21px;color:var(--paint-fg-647392,#647392);margin-left:auto}.stage-card h3{font-size:13px}.stage-card small{margin-top:5px;font-size:10px;display:block}.stage-card.active{background:var(--paint-bg-fff5ca,#fff5ca);border-color:var(--paint-border-f1d35c,#f1d35c)}.stage-card.active>span{color:var(--paint-fg-715210,#715210)}.upload-zone{border:1px dashed var(--paint-border-b8c5eb,#b8c5eb);background:var(--paint-bg-f8faff,#f8faff);text-align:center;cursor:pointer;border-radius:16px;justify-content:center;align-items:center;gap:12px;min-height:190px;padding:25px;display:flex;position:relative}.upload-zone>svg{width:36px;height:36px;color:var(--blue)}.upload-zone strong{color:var(--paint-fg-304d9e,#304d9e);font-size:14px}.upload-zone>span{color:var(--paint-fg-5b6d91,#5b6d91);font-size:11px;font-weight:450}.upload-zone input{opacity:0;cursor:pointer;position:absolute;top:0;right:0;bottom:0;left:0}.panel>.section-heading>select{width:130px;min-height:40px;padding:9px 12px;font-size:12px}.file-row{border-top:1px solid var(--line);align-items:center;gap:13px;padding:17px 0;display:flex}.file-preview{background:var(--paint-bg-edf1ff,#edf1ff);width:45px;height:45px;color:var(--paint-fg-3f5cad,#3f5cad);border-radius:12px;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.file-preview img{object-fit:cover;width:100%;height:100%}.file-preview svg{width:23px}.file-info{flex:1;min-width:0}.file-info strong{overflow-wrap:anywhere;font-size:12px;display:block}.file-info small{margin-top:4px;font-size:10px;display:block}.schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.schedule-card{border-radius:24px;flex-direction:column;gap:10px;min-height:260px;padding:25px;display:flex}.schedule-0{background:var(--yellow)}.schedule-1{background:var(--blue);color:#fff}.schedule-2{background:var(--orange)}.schedule-card .section-heading{margin-bottom:12px}.day-pill{align-items:center;gap:8px;font-size:12px;font-weight:650;display:flex}.day-pill svg{width:17px}.schedule-card .pill{background:var(--paint-bg-ffffffa6,#ffffffa6);color:var(--paint-fg-243349,#243349)}.schedule-card h2{letter-spacing:-.7px;font-size:27px}.schedule-time{font-size:20px;font-weight:600}.schedule-card small{color:inherit;font-size:11px;line-height:1.8}.schedule-card .text-button{color:inherit;align-self:flex-start;margin-top:auto}.schedule-1 .pill{background:var(--paint-bg-ffffff24,#ffffff24);color:#fff}.profile-panel{align-items:center;gap:16px;display:flex}.profile-panel p{margin-top:5px;font-size:12px}.profile-panel>.button{margin-left:auto}.profile-panel h2{font-size:18px}.connection-setup>.panel{max-width:100%}.setup-step{border-top:1px solid var(--line);color:var(--paint-fg-263651,#263651);padding:18px 0}.setup-step:last-child{padding-bottom:0}.setup-step summary{cursor:pointer;align-items:center;gap:12px;min-height:28px;font-size:13px;font-weight:650;list-style:none;display:flex}.setup-step summary::-webkit-details-marker{display:none}.setup-step summary>svg:last-child{width:16px;margin-left:auto;transition:transform .2s}.setup-step[open] summary>svg:last-child{transform:rotate(90deg)}.step-number{background:var(--paint-bg-eef2ff,#eef2ff);width:26px;height:26px;color:var(--paint-fg-3953ab,#3953ab);border-radius:9px;flex-shrink:0;place-items:center;font-size:11px;font-weight:650;display:grid}.step-content{padding-top:20px}.step-content>label{margin-bottom:18px}.step-content>form:first-child{margin-top:-10px}.setup-instructions{color:var(--paint-fg-4f5f79,#4f5f79);margin:0 0 17px;padding-left:18px;font-size:12px;line-height:1.9}.setup-instructions li{margin:6px 0}.copy-field{background:var(--paint-bg-f4f6fb,#f4f6fb);border:1px solid var(--paint-border-e2e7f1,#e2e7f1);border-radius:12px;align-items:center;gap:10px;margin:16px 0;padding:10px 12px;display:flex}.copy-field code{overflow-wrap:anywhere;min-width:0;color:var(--paint-fg-354f8e,#354f8e);flex:1;font-size:11px}.simple-step{justify-content:space-between;align-items:center;gap:15px;display:flex}.simple-step>div{align-items:center;gap:12px;display:flex}.simple-step strong{font-size:13px;font-weight:650}.connection-results{background:var(--paint-bg-f5f7fb,#f5f7fb);border-radius:13px;flex-wrap:wrap;gap:13px;margin-top:22px;padding:17px;display:flex}.connection-results>strong{width:100%;font-size:12px}.connection-results span{overflow-wrap:anywhere;align-items:center;gap:7px;font-size:11px;display:flex}.connection-results .ready{color:var(--paint-fg-276d3d,#276d3d)}.connection-results .not-ready{color:var(--paint-fg-994523,#994523)}.connection-results svg{width:17px}.setup-help{color:var(--paint-fg-425578,#425578);margin:0;padding:0 0 5px}.setup-help summary{color:var(--paint-fg-344fa6,#344fa6);cursor:pointer;font-size:12px}.setup-help p{overflow-wrap:anywhere;margin-top:12px;font-size:12px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0;display:grid}.form-grid label{min-width:0}.mapping-card{border:1px solid var(--line);border-radius:14px;margin-bottom:14px;padding:18px}.mapping-card .section-heading{margin-bottom:10px}.mapping-card .form-grid{margin:0}.mapping-card h3{font-size:12px}.mapping-card .text-button{min-height:30px;font-size:11px}.file-viewer{gap:10px;margin:12px 0;display:grid}.file-viewer iframe,.file-viewer img,.file-viewer video{border:1px solid var(--line);background:var(--paint-bg-fff,#fff);border-radius:12px;width:100%}.file-viewer iframe{height:min(72vh,760px)}.file-viewer iframe.video-frame{aspect-ratio:9/16;background:#000;height:auto;max-height:72vh}.file-viewer img,.file-viewer video{object-fit:contain;max-height:72vh}.file-viewer pre{white-space:pre-wrap;max-height:60vh;font-size:12px;overflow:auto}.docx-view{border:1px solid var(--line);background:var(--paint-bg-fff,#fff);max-height:72vh;color:var(--paint-fg-111,#111);border-radius:12px;padding:18px;font-size:13px;overflow:auto}.docx-view img{max-width:100%;height:auto}.docx-view table{border-collapse:collapse;max-width:100%}.file-viewer-actions,.heading-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.file-chip{border:1px solid var(--line);background:var(--paint-bg-fff,#fff);max-width:100%;color:var(--ink);text-align:left;overflow-wrap:anywhere;cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:inline-flex}.file-chip.selected{border-color:var(--blue);color:var(--blue-dark);background:var(--paint-bg-f1f4fd,#f1f4fd)}.file-button{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0}.file-button:hover{background:var(--paint-bg-f6f7fb,#f6f7fb)}.class-generator{grid-template-columns:minmax(0,1fr) 120px auto auto;align-items:end;gap:12px;margin-bottom:18px;display:grid}.class-table{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) 48px 40px;align-items:center;gap:8px 10px;margin-bottom:12px;display:grid}.class-table>span{color:var(--muted);font-size:11px;font-weight:600}.class-table input[type=checkbox]{justify-self:center;width:18px;height:18px}.danger-button{background:#b42318}.danger-button:hover:not(:disabled){background:#8f1c13}@media(max-width:640px){.class-generator{grid-template-columns:1fr 1fr}.class-table{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 28px 32px;gap:6px}.class-table input:not([type=checkbox]){min-height:36px;padding:6px 8px;font-size:12px}}.folder-map{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:16px 0 20px;display:grid}.folder-map label{gap:6px;font-size:12px;font-weight:600;display:grid}.gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.gallery-tile{text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:0 0;border:0;gap:6px;padding:0;display:grid;position:relative}.gallery-tile img,.gallery-icon{aspect-ratio:1;object-fit:cover;background:var(--paint-bg-eef0f5,#eef0f5);border:1px solid var(--line);border-radius:12px;width:100%}.gallery-icon{color:var(--muted);place-items:center;display:grid}.gallery-tile:hover img,.gallery-tile:focus-visible img{outline:2px solid var(--blue);outline-offset:2px}.gallery-tile small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gallery-badge{color:#fff;background:#0f1423b8;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;top:8px;right:8px}.gallery-badge svg{width:14px;height:14px}@media(max-width:640px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}.lms-mark{text-align:center;margin-top:4px;font-size:10px;font-weight:600;display:block}.lms-mark.in{color:var(--paint-fg-1d7a46,#1d7a46)}.lms-mark.out{color:var(--paint-fg-b42318,#b42318)}.lms-bar .button svg{width:16px}.lms-grades{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.lms-grade{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:8px 0;display:grid}.lms-grade span{min-width:0;display:grid}.lms-grade small{color:var(--muted);overflow-wrap:anywhere;font-size:11px}.lms-grade b{font-size:15px}.course-fetch{align-items:end;gap:12px;margin-bottom:16px;display:flex}.course-fetch label{flex:1;min-width:0}.assignment-list{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;display:grid;overflow:hidden}.assignment-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 120px 130px;align-items:center;gap:10px;padding:10px 14px;display:grid}.assignment-row:first-child{border-top:0}.assignment-row.picked{background:var(--paint-bg-f1f4fd,#f1f4fd)}.assignment-name{min-width:0;display:grid}.assignment-name strong{overflow-wrap:anywhere;font-size:13px}.assignment-name small{color:var(--muted);font-size:11px}.assignment-row select{min-height:38px;font-size:12px}@media(max-width:640px){.course-fetch{flex-direction:column;align-items:stretch}.assignment-row{grid-template-columns:1fr 1fr}.assignment-name{grid-column:1/-1}}.mapping-checks{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0;display:grid}.checkbox-label{flex-direction:row;align-items:center;gap:10px;font-size:12px;display:flex}.checkbox-label input{width:17px;min-height:17px;accent-color:var(--blue)}.roster-result{margin-top:20px;font-size:12px}.roster-result>strong{margin-bottom:12px;display:block}.roster-result>div{border-top:1px solid var(--line);align-items:center;gap:15px;padding:12px 0;display:flex}.roster-result>div>span:last-child{margin-left:auto}.account-id{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 0 23px;font-size:13px;display:flex}.account-id>span{color:var(--muted)}.logout{color:var(--paint-fg-a5322a,#a5322a)!important;margin-top:24px!important}.dialog-overlay{z-index:70;background:#14203e66;animation:.15s fade-in;position:fixed;top:0;right:0;bottom:0;left:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet{z-index:71;background:#fff;flex-direction:column;width:480px;max-width:100%;display:flex;position:fixed;inset:0 0 0 auto;box-shadow:-10px 0 40px #14203e1a}.sheet-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:15px;padding:28px;display:flex}.sheet-header h2{font-size:21px}.sheet-header p{margin-top:7px;font-size:11px}.sheet-body{overscroll-behavior:contain;flex:1;padding:27px;overflow:auto}.sheet-body>.section-heading select{width:120px;min-height:40px;padding:10px;font-size:12px}.subheading{margin:25px 0 17px}.score-inputs{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:23px;display:grid}.score-inputs label{gap:5px;font-size:11px}.score-inputs small{font-size:10px}.score-inputs input{text-align:center;min-height:48px;padding:12px 5px}.total-line{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin:23px 0;padding-top:22px;font-size:14px;display:flex}.total-line strong{color:var(--blue);font-size:30px}.submission{background:var(--paint-bg-f7f9ff,#f7f9ff);border:1px solid var(--paint-border-e4e9f6,#e4e9f6);border-radius:14px;padding:17px}.submission>small{margin:10px 0;font-size:10px;display:block}.submission pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--paint-fg-273751,#273751);max-height:330px;font-family:inherit;font-size:13px;line-height:1.85;overflow:auto}.confirm-summary{background:var(--yellow);border-radius:18px;align-items:center;gap:17px;margin-bottom:22px;padding:25px;display:flex}.confirm-summary strong{font-size:42px;font-weight:700}.confirm-summary span{font-size:13px;font-weight:550}.toast{color:#fff;z-index:100;background:#17233f;border-radius:15px;align-items:center;gap:11px;max-width:calc(100% - 30px);padding:16px 20px;font-size:12px;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 10px 35px #18223f33}.toast svg{width:20px;color:var(--paint-fg-99e1a7,#99e1a7)}.login-page{background:#fff;grid-template-columns:1fr 1fr;min-height:100dvh;display:grid}.login-art{background:var(--blue);color:#fff;flex-direction:column;padding:43px 45px;display:flex;position:relative;overflow:hidden}.login-art>.brand{font-size:24px}.login-art>.brand>span:last-child:not(.brand-mark){letter-spacing:0;border-left:1px solid var(--paint-border-ffffff66,#fff6);margin-left:2px;padding-left:12px;font-size:11px;font-weight:500}.login-art-copy{width:100%;max-width:460px;margin:auto;padding:70px 0 0;position:relative}.login-art-copy .pill{padding:9px 12px;font-size:11px}.login-art-copy h1{color:#fff;letter-spacing:-2.5px;z-index:2;margin-top:22px;font-size:54px;line-height:1.2;position:relative}.login-illustration{width:100%;min-height:290px;margin-top:10px;position:relative}.illustration-circle{background:var(--yellow);border-radius:50%;width:280px;height:280px;position:absolute;top:15px;left:40px}.login-illustration img{object-fit:contain;filter:drop-shadow(0 15px 20px #122e7b33);width:330px;height:280px;position:absolute;inset:10px 0 auto auto;transform:rotate(-8deg)}.illustration-check{background:var(--orange);width:62px;height:62px;color:var(--paint-fg-1d2539,#1d2539);border-radius:19px;place-items:center;font-size:38px;display:grid;position:absolute;bottom:30px;left:15px;transform:rotate(-12deg);box-shadow:4px 5px #2448bd}.login-panel{justify-content:center;align-items:center;padding:45px;display:flex}.login-form{width:350px;max-width:100%}.login-form>.eyebrow{color:var(--paint-fg-52617b,#52617b);font-size:10px}.login-form h2{letter-spacing:-1.1px;margin:17px 0 30px;font-size:32px}.login-form .segmented{margin-bottom:25px}.login-form label{gap:9px;font-size:12px}.login-form input{min-height:49px;font-size:14px}.password-field{display:block;position:relative}.password-field>input{padding-right:47px}.password-field .icon-button{color:var(--paint-fg-5e6c83,#5e6c83);position:absolute;top:4px;right:4px}.login-form .button{min-height:48px;font-size:13px}.login-help{text-align:center;color:var(--paint-fg-59667c,#59667c);margin-top:20px;font-size:11px}.mobile-brand{display:none}@media(min-width:1500px){.content{padding:42px 55px 65px}.topbar{padding:0 55px}.workspace-grid{grid-template-rows:190px 185px;grid-template-columns:1.2fr 1fr 1fr}.card-grading{grid-area:1/1/3}.card-documentation{grid-area:1/2/3}.card-files{grid-area:1/3;height:auto}.card-schedule{grid-area:2/3;height:auto}.grade-illustration{width:150px;bottom:70px;right:20px}.card-grading h2{font-size:26px}.home-bottom{grid-template-columns:1.6fr 1fr}}@media(max-width:1100px){.sidebar{width:195px;padding:28px 13px 20px}.sidebar>.brand{margin-left:12px}.app-main{width:calc(100% - 195px);margin-left:195px}.content{padding:26px 25px 50px}.topbar{padding:0 25px}.workspace-grid{grid-template-rows:160px 160px 155px;gap:16px}.workspace-card{padding:22px}.card-grading h2{font-size:25px}.card-grading>div:nth-child(2){top:86px;left:22px}.grade-illustration{transform-origin:100% 100%;bottom:55px;right:18px;transform:scale(.75)}.card-documentation h2{font-size:24px}.card-files,.card-schedule{height:155px}.home-bottom{grid-template-columns:1fr 1fr;gap:16px}.panel{padding:22px}.group-row strong{font-size:12px}.group-row small{font-size:10px}.grade-table th:first-child,.grade-table td:first-child{padding-left:18px}.grade-table th,.grade-table td{padding-left:8px;padding-right:8px}.student-cell{gap:8px}.student-cell strong{max-width:160px;font-size:10px}.student-cell small{font-size:9px}.grade-table td input{max-width:51px}.grading-toolbar{gap:10px;padding:0 18px 20px}.grading-panel{padding:22px 0 0}.grading-panel>.section-heading{padding:0 18px}.search-field{width:175px}.simple-step{flex-wrap:wrap;align-items:flex-start}.simple-step>.button{margin-left:38px}.stage-card{gap:10px;padding:18px 13px}.stage-card>svg{display:none}.login-art{padding:35px}.login-art-copy h1{font-size:45px}.login-illustration{min-height:260px}.illustration-circle{width:230px;height:230px;left:20px}.login-illustration img{width:290px;height:250px;right:-20px}.login-panel{padding:35px}}@media(max-width:900px)and (min-width:768px){.topbar-period{display:none}.home-bottom{grid-template-columns:1fr}.workspace-card h2{font-size:20px}.card-documentation h2{font-size:21px}.three-dots{bottom:20px;right:20px}.grade-table .avatar{display:none}.grade-table td:first-child{max-width:160px}.segmented.compact button{padding:8px;font-size:10px}.search-field{width:155px}.stage-card h3{font-size:12px}.stage-card small{font-size:9px}.stage-card>span{display:none}.login-illustration img{width:250px;right:-30px}.illustration-circle{width:210px;height:210px;left:0}.login-art-copy h1{font-size:39px}}@media(max-width:767px){input,select,textarea{font-size:16px!important}button{min-height:44px}h1{letter-spacing:-1px;font-size:29px}h2{font-size:17px}.sidebar{z-index:61;width:245px;padding-top:calc(28px + env(safe-area-inset-top));padding-bottom:calc(25px + env(safe-area-inset-bottom));transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar nav button,.sidebar-bottom>button{font-size:14px}.sidebar>.brand{margin-bottom:42px}.sidebar-course{font-size:10px}.sidebar-user strong{max-width:160px;font-size:12px}.sidebar-user small{font-size:11px}.menu-overlay{z-index:60;background:#17223c66;position:fixed;top:0;right:0;bottom:0;left:0}.app-main{width:100%;margin-left:0}.topbar{height:auto;min-height:75px;padding:calc(13px + env(safe-area-inset-top)) 16px 13px}.topbar>div{gap:9px}.topbar-course{gap:5px;font-size:12px}.topbar-course>svg,.topbar-period{display:none}.mobile-menu{display:inline-flex}.topbar .icon-button{width:36px;min-height:38px}.topbar .user-avatar{width:35px;height:35px;min-height:35px;font-size:11px}.content{padding:23px 18px calc(115px + env(safe-area-inset-bottom))}.page-heading{gap:12px;margin:7px 0 24px}.page-heading .eyebrow{letter-spacing:1.2px;margin-bottom:9px;font-size:9px}.page-heading .button{min-height:41px;padding:10px 12px;font-size:11px}.date-pill{border-radius:10px;padding:9px 12px;font-size:11px}.panel{border-radius:20px;margin-bottom:20px;padding:20px}.section-heading{gap:10px;margin-bottom:19px}.section-heading h2{font-size:16px}.section-heading .text-button{gap:5px;font-size:11px}.source-link{min-height:51px;padding:16px 0;font-size:12px}.workspace-grid{grid-template-rows:190px 145px 145px;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:25px}.workspace-card{border-radius:23px;gap:10px;padding:19px}.workspace-card h2{letter-spacing:-.6px;font-size:18px}.workspace-card p{margin-top:5px;font-size:11px;line-height:1.7}.card-grading{grid-area:1/1/auto/3}.card-grading>div:nth-child(2){top:78px;left:20px}.card-grading h2{font-size:27px}.card-grading .card-top{width:calc(100% - 38px);position:absolute;top:18px;left:19px}.card-symbol{border-radius:10px;width:33px;height:33px}.card-symbol svg{width:19px;height:19px}.card-top>svg{width:20px;height:20px}.grade-illustration{bottom:27px;right:25px;transform:scale(.68)}.card-grading .card-action{gap:6px;font-size:10px;position:absolute;bottom:20px;left:21px}.card-documentation{grid-area:2/1/4;gap:15px}.card-documentation>div:nth-child(2){margin-bottom:73px}.card-documentation h2{font-size:20px}.card-documentation .card-symbol{width:36px;height:36px}.card-documentation .card-top{margin-bottom:auto}.card-documentation:after{border-width:25px;width:160px;height:160px;top:105px;right:-70px}.three-dots{gap:5px;bottom:25px;left:20px;right:auto}.three-dots>span{width:25px;height:25px}.card-files{grid-area:2/2;height:auto}.card-files h2{font-size:18px}.card-schedule{grid-area:3/2;height:auto}.card-files p{font-size:10px}.home-bottom{grid-template-columns:1fr;gap:18px}.home-bottom>.panel{margin:0}.group-row{min-height:81px}.group-row strong{font-size:13px}.group-row small{font-size:11px}.group-letter{width:40px;height:40px}.bottom-nav{bottom:calc(13px + env(safe-area-inset-bottom));z-index:50;background:var(--blue);border-radius:22px;justify-content:space-around;align-items:center;gap:4px;padding:10px 8px;display:flex;position:fixed;left:15px;right:15px;box-shadow:0 8px 25px #2748bc29}.bottom-nav button{color:#fff;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:5px;min-height:51px;padding:6px 2px;font-size:10px;font-weight:550;display:flex}.bottom-nav svg{width:21px;height:21px}.bottom-nav .active{background:var(--yellow);color:var(--paint-fg-17233e,#17233e)}.selectors{gap:10px;max-width:100%;margin-bottom:21px}.selectors label{flex:1;font-size:10px}.selectors label:nth-child(2){flex:1.3}.selectors select{border-radius:11px;max-width:100%;min-height:45px;padding:11px 9px}.grading-panel{padding:20px 0 0}.grading-panel>.section-heading{padding:0 16px}.grading-panel .section-heading h2{font-size:16px}.grading-toolbar{flex-direction:column;align-items:stretch;gap:12px;padding:0 16px 18px}.segmented.compact{width:100%}.segmented.compact button{min-height:35px;padding:8px;font-size:10px}.search-field{width:100%}.search-field input{min-height:44px;padding:10px 12px 10px 37px}.search-field>svg{top:15px}.grade-table{white-space:normal;display:block}.grade-table thead{display:none}.grade-table tbody{display:block}.grade-table tr{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:13px 9px;padding:19px 16px;display:grid}.grade-table td,.grade-table td:first-child{border:0;max-width:none;padding:0}.grade-table td:first-child{grid-column:1/5}.student-cell{gap:10px}.student-cell strong{max-width:none;font-size:12px}.student-cell small{margin-top:3px;font-size:10px}.avatar{border-radius:11px;width:35px;height:35px;font-size:11px}.grade-table td[data-label]:before{content:attr(data-label);color:var(--paint-fg-5b6780,#5b6780);margin-bottom:7px;font-size:10px;font-weight:500;display:block}.grade-table td input{width:100%;min-width:0;max-width:none;height:45px;padding:10px 4px;font-size:16px}.grade-table td:nth-last-child(2){grid-column:1/3;align-items:center;gap:10px;display:flex}.grade-table td:nth-last-child(2):before{margin:0;display:inline-block}.grade-table td:last-child{grid-column:3/5;justify-content:flex-end;display:flex}.review-button{min-height:35px;font-size:11px}.score{min-width:43px;height:30px;font-size:13px}.send-bar{flex-direction:column;align-items:stretch;gap:18px;padding:20px 16px}.send-bar>div{width:100%;max-width:none}.send-bar span{font-size:11px}.send-bar .button{font-size:12px}.lms-bar{border-radius:16px;flex-wrap:wrap;gap:12px;padding:16px}.lms-bar>div{flex-basis:100%}.lms-bar select{flex:1;width:auto;max-width:none;min-height:43px}.lms-bar strong{font-size:13px}.lms-bar small{font-size:11px}.lms-bar>.text-button{flex:1;min-height:43px;font-size:12px}.stage-grid{grid-template-columns:1fr;gap:10px}.stage-card{border-radius:16px;gap:15px;min-height:75px;padding:17px}.stage-card>span{font-size:19px}.stage-card h3{font-size:14px}.stage-card small{font-size:11px}.stage-card>svg{display:block}.panel>.section-heading>select{width:118px;min-height:42px;padding:10px}.upload-zone{gap:12px;min-height:185px;padding:22px 12px}.upload-zone strong{font-size:13px}.upload-zone>span{font-size:11px}.file-row{flex-wrap:wrap;gap:10px;padding:16px 0}.file-preview{width:40px;height:40px}.file-info{flex-basis:calc(100% - 55px)}.file-info strong{font-size:11px}.file-info small{font-size:10px}.file-row>.icon-button,.file-row>.button{min-height:42px}.file-row>.icon-button{margin-left:auto}.schedule-grid{grid-template-columns:1fr;gap:17px}.schedule-card{border-radius:23px;min-height:265px;padding:24px}.schedule-card h2{font-size:29px}.schedule-time{font-size:23px}.schedule-card small,.schedule-card .text-button{font-size:12px}.profile-panel{flex-wrap:wrap;gap:12px;padding:20px}.profile-panel .user-avatar.large{width:45px;height:45px;font-size:15px}.profile-panel h2{font-size:17px}.profile-panel p{font-size:11px}.profile-panel>.button{width:100%;margin-top:5px;font-size:12px}.provider-title{gap:10px}.provider-title h2{font-size:17px}.pill{padding:7px 9px;font-size:10px}.setup-step summary{gap:10px;font-size:12px}.step-number{width:25px;height:25px;font-size:11px}.setup-step{padding-top:17px;padding-bottom:17px}.step-content{padding-top:18px}.setup-instructions{font-size:12px;line-height:1.9}.simple-step{gap:15px}.simple-step strong{font-size:12px}.simple-step>.button{margin-left:35px;font-size:11px}.connection-results{gap:12px;padding:14px}.connection-results span{word-break:break-word;max-width:100%;font-size:11px}.connection-results svg{width:17px}.form-grid{grid-template-columns:1fr;gap:18px;margin:20px 0}.mapping-card .form-grid{grid-template-columns:1fr 1fr;gap:14px}.mapping-card label{font-size:11px}.mapping-card{padding:15px}.mapping-checks{grid-template-columns:1fr 1fr;gap:17px}.checkbox-label{font-size:11px;line-height:1.8}.copy-field{gap:5px;padding:10px}.copy-field code{font-size:10px}.copy-field .icon-button{width:35px}.roster-result>div{flex-wrap:wrap;gap:9px}.sheet{border-radius:24px 24px 0 0;width:100%;max-height:96dvh;top:4dvh}.sheet-header{gap:10px;padding:23px 20px 20px}.sheet-header h2{overflow-wrap:anywhere;max-width:270px;font-size:20px}.sheet-header p{font-size:11px}.sheet-body{padding:23px 20px calc(30px + env(safe-area-inset-bottom))}.sheet-body>.section-heading select{width:125px}.score-inputs{gap:9px}.score-inputs input{min-width:0;padding:12px 3px;font-size:16px}.score-inputs label,.score-inputs small{font-size:10px}.total-line{font-size:13px}.total-line strong{font-size:30px}.sheet-body form label{font-size:12px}.submission pre{font-size:13px}.toast{bottom:calc(101px + env(safe-area-inset-bottom));border-radius:14px;width:max-content;max-width:calc(100% - 30px);padding:15px;font-size:12px}.toast svg{width:19px}.notice{overflow-wrap:anywhere;align-items:flex-start;gap:8px;padding:12px;font-size:11px}.notice>svg{margin-top:3px}.notice .icon-button{width:28px;min-height:28px}.login-page{background:var(--paint-bg-fff,#fff);min-height:100dvh;display:block}.login-art{display:none}.login-panel{align-items:center;min-height:100dvh;padding:35px 25px}.login-form{width:350px;max-width:100%}.mobile-brand{color:var(--blue);margin-bottom:54px;font-size:24px;display:flex}.login-form>.eyebrow{font-size:10px}.login-form h2{letter-spacing:-1.2px;margin:15px 0 27px;font-size:31px}.login-form input{min-height:50px;font-size:16px}.login-form .button{min-height:48px;font-size:13px}.login-form .segmented button{font-size:12px}.login-help{margin-top:23px;font-size:11px}.password-field .icon-button{min-height:40px;top:5px}.login-form label{font-size:12px}}@media(max-width:370px){.content{padding-left:15px;padding-right:15px}.topbar{padding-left:10px;padding-right:10px}.topbar>div{gap:6px}.topbar-course{font-size:11px}.page-heading h1{font-size:27px}.workspace-grid{grid-template-rows:185px 140px 140px;gap:10px}.workspace-card{padding:16px}.card-grading>div:nth-child(2){left:18px}.grade-illustration{bottom:28px;right:14px;transform:scale(.58)}.card-documentation h2,.workspace-card h2{font-size:17px}.card-grading h2{font-size:25px}.workspace-card p{font-size:10px}.card-grading .card-action{font-size:10px;left:18px}.card-files h2{font-size:16px}.three-dots{gap:4px;left:17px}.card-files p{font-size:9px}.card-symbol{width:31px;height:31px}.workspace-card .card-top>svg{width:17px}.selectors{gap:7px}.selectors select{padding-left:7px;padding-right:7px;font-size:16px}.bottom-nav{border-radius:20px;gap:3px;left:12px;right:12px}.bottom-nav button{font-size:9px}.bottom-nav svg{width:20px}.profile-panel p{font-size:10px}.sheet-body,.sheet-header{padding-left:17px;padding-right:17px}.login-panel{padding:30px 22px}.login-form h2{font-size:29px}.mobile-brand{margin-bottom:42px}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.sidebar nav button.active:hover,.sidebar-bottom>button.active:hover,.schedule-1 .pill{background:var(--paint-bg-fff,#fff);color:var(--paint-fg-2d4ebe,#2d4ebe)}.pill.light{color:#fff;background:#284bb8}@media(max-width:370px){.selectors label:first-child{flex:.8}.selectors label:nth-child(2){flex:1.55}.selectors label:nth-child(3){flex:.65}}@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-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}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}:root{--blue: #1f6bff;--blue-dark: #1553cc;--orange: #ff7a2f;--ink: #172235;--muted: #5f6b80;--line: #e3eaf3;--tint: #edf4ff;--tint-strong: #dbe9ff;--mint: #e4f6ec;--peach: #fff0e6;--surface: #ffffff;--radius: 28px;--shadow: 0 18px 44px rgba(31, 74, 140, .08);--shadow-strong: 0 22px 50px rgba(31, 74, 140, .14);color:var(--ink);background:var(--paint-bg-eef4fb, #eef4fb)}body{background:transparent;color:var(--ink)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(260px 260px at 92% 18%,rgba(255,214,140,.26),transparent 70%),radial-gradient(320px 320px at 4% 58%,rgba(140,190,255,.2),transparent 70%),radial-gradient(380px 300px at 90% 96%,rgba(170,225,196,.22),transparent 70%),radial-gradient(1200px 420px at 70% -120px,var(--paint-bg-cfe4fb, #cfe4fb) 0%,transparent 70%),linear-gradient(180deg,var(--paint-bg-dceaf9, #dceaf9) 0,var(--paint-bg-eef4fb, #eef4fb) 360px,var(--paint-bg-f4f8fc, #f4f8fc) 100%)}::selection{background:var(--tint-strong)}input,select,textarea{background:var(--paint-bg-f7faff, #f7faff);border:1px solid var(--paint-border-d9e3f0, #d9e3f0);border-radius:16px}input:focus,textarea:focus,select:focus{border-color:var(--blue);background:var(--paint-bg-fff, #fff);box-shadow:0 0 0 4px #1f6bff1f}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid rgba(31,107,255,.45);outline-offset:3px}.button{border-radius:999px;min-height:46px;padding:12px 22px;font-size:13px;font-weight:650;background:var(--blue);border-color:var(--blue);box-shadow:0 10px 22px #1f6bff38}.button:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark)}.button.secondary{background:var(--paint-bg-fff, #fff);color:var(--ink);border:1px solid var(--paint-border-d5deea, #d5deea);box-shadow:none}.button.secondary:hover:not(:disabled){background:var(--tint);border-color:var(--paint-border-c3d4ec, #c3d4ec)}.button.small{min-height:36px;padding:8px 16px;font-size:12px;box-shadow:0 8px 18px #1f6bff33}.button:disabled{box-shadow:none}.icon-button{min-height:0;aspect-ratio:1;padding:0;border-radius:50%;background:var(--paint-bg-fff, #fff);border:1px solid var(--paint-border-dde6f1, #dde6f1);color:var(--ink)}.icon-button:hover:not(:disabled){background:var(--tint)}.text-button{color:var(--blue);font-weight:650}.danger,.text-button.danger,.icon-button.danger{color:var(--paint-fg-c0271a, #c0271a)}.danger-button{background:#c0271a;border-color:#c0271a;box-shadow:0 10px 22px #c0271a33}.pill{border-radius:999px;background:var(--tint);color:var(--paint-fg-24467d, #24467d);font-weight:600}.pill.success{background:var(--mint);color:var(--paint-fg-1d6b40, #1d6b40)}.count{background:var(--tint);color:var(--blue-dark);border-radius:999px}.eyebrow{color:var(--paint-fg-4b6286, #4b6286);letter-spacing:.08em}.muted{color:var(--muted)}.notice{border-radius:18px;background:var(--paint-bg-fff8e8, #fff8e8);border:1px solid var(--paint-border-f5dfa8, #f5dfa8);color:var(--paint-fg-6b4e09, #6b4e09)}.notice.error{background:var(--paint-bg-fff1ef, #fff1ef);border-color:var(--paint-border-f6c9c3, #f6c9c3);color:var(--paint-fg-962015, #962015)}.segmented{background:var(--tint);border-radius:999px;padding:4px}.segmented button{border-radius:999px}.segmented button.selected{background:var(--paint-bg-fff, #fff);color:var(--blue);box-shadow:0 6px 14px #1f4a8c1a}.sidebar{inset:16px auto 16px 16px;width:236px;background:var(--paint-bg-fff, #fff);color:var(--ink);border-radius:32px;padding:28px 16px 18px;box-shadow:var(--shadow)}.sidebar .brand,.sidebar .brand span,.sidebar .brand small{color:var(--ink)}.brand-mark,.sidebar .brand-mark{background:none;box-shadow:none;display:inline-grid;place-items:center}.brand-mark img{width:100%;height:100%;object-fit:contain}.topbar-course img{width:20px;height:20px}.sidebar-course{color:var(--paint-fg-5f6b80, #5f6b80);opacity:1}.sidebar nav button,.sidebar-bottom>button{color:var(--paint-fg-3a465c, #3a465c);border-radius:18px;font-weight:600}.sidebar nav button:hover,.sidebar-bottom>button:hover{background:var(--tint);color:var(--ink)}.sidebar nav button.active,.sidebar-bottom>button.active{background:var(--blue);color:#fff;box-shadow:0 10px 22px #1f6bff40}.sidebar nav button.active:hover,.sidebar-bottom>button.active:hover{background:var(--blue-dark);color:#fff}.sidebar-bottom>.sidebar-user,.sidebar-bottom>.sidebar-user:hover{width:100%;margin-top:12px;padding:10px 12px;border:0;border-radius:20px;background:var(--tint);color:var(--ink);box-shadow:none}.sidebar-bottom>.sidebar-user:hover{background:var(--tint-strong)}.sidebar-user strong{color:var(--ink);font-size:12px}.sidebar-user small{color:var(--muted)}.user-avatar{background:linear-gradient(135deg,var(--paint-bg-ffd27a, #ffd27a),#ff9d5c);color:var(--paint-fg-4a2a00, #4a2a00);border-radius:50%}.app-main{width:calc(100% - 268px);margin-left:268px}.topbar{background:transparent;border-bottom:0;height:84px;padding:0 36px}.topbar-course{background:var(--paint-bg-fff, #fff);border-radius:999px;padding:8px 14px;box-shadow:0 8px 20px #1f4a8c0f;color:var(--ink)}.topbar-period{color:var(--paint-fg-4b6286, #4b6286)}.user-chip{display:inline-flex;align-items:center;gap:10px;padding:5px 16px 5px 5px;background:var(--paint-bg-fff, #fff);border-radius:999px;box-shadow:0 8px 20px #1f4a8c14;font-weight:650;font-size:13px;color:var(--ink)}.user-chip .user-avatar{width:34px;height:34px;min-height:34px;display:inline-grid;place-items:center;font-size:11px;font-weight:700}.content{max-width:1240px;padding:8px 36px 64px}.page-heading h1{letter-spacing:-.03em;color:var(--ink)}.heading-dot{color:var(--orange)}.panel{border:0;border-radius:var(--radius);box-shadow:var(--shadow);background:var(--surface)}.section-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px}.section-heading>*{min-width:0}.section-heading h2,.section-heading h3{color:var(--ink);letter-spacing:-.01em;overflow-wrap:anywhere}.heading-text{display:grid;gap:3px;min-width:0;flex:1 1 auto}.heading-text h2{display:flex;align-items:center;gap:8px;margin:0}.heading-text small{font-size:12px;line-height:1.4}.heading-actions{flex:none}.gallery-heading{flex-wrap:nowrap;align-items:flex-start;margin-bottom:16px}.empty-state{color:var(--muted)}.toast{background:var(--ink);border-radius:999px;box-shadow:var(--shadow-strong)}.date-pill{background:#ffffffd9;border-radius:999px;color:var(--paint-fg-24467d, #24467d);font-weight:600}.scene{display:block;width:100%;height:100%}.home-hero{position:relative;overflow:hidden;border-radius:32px;min-height:270px;display:flex;align-items:flex-start;box-shadow:var(--shadow)}.home-hero .hero-art{position:absolute;top:0;right:0;bottom:0;left:0}.hero-copy{position:relative;padding:34px 38px 78px;display:grid;gap:12px;max-width:620px}.hero-copy h1{margin:0;font-size:clamp(26px,3.4vw,40px);line-height:1.15;letter-spacing:-.03em;color:var(--paint-fg-13203a, #13203a)}.hero-copy .date-pill{justify-self:start;padding:7px 14px;font-size:12px}.home-sheet{position:relative;margin-top:-52px;background:var(--paint-bg-fff, #fff);border-radius:34px;padding:18px 30px 30px;box-shadow:var(--shadow-strong)}.sheet-handle{display:block;width:46px;height:5px;margin:0 auto 14px;border-radius:999px;background:var(--paint-bg-d8e0eb, #d8e0eb)}.home-sheet .section-heading{margin-bottom:14px}.quick-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:30px}.quick-card{position:relative;overflow:hidden;border-radius:24px;aspect-ratio:4 / 4.4;padding:0;text-align:left;box-shadow:0 12px 28px #1f4a8c1a;transition:transform .18s,box-shadow .18s}.quick-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-strong)}.quick-card .scene{position:absolute;top:0;right:0;bottom:0;left:0}.quick-caption{position:absolute;left:10px;right:10px;bottom:10px;display:grid;gap:2px;padding:9px 12px;border-radius:18px;background:#ffffffdb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.quick-caption strong{display:flex;align-items:center;gap:7px;font-size:14px;line-height:1.25;color:var(--ink)}.quick-caption strong svg{color:var(--blue);width:17px;height:17px}.quick-caption small{color:var(--paint-fg-4f5c72, #4f5c72);font-size:11.5px;line-height:1.35}.stage-dots{display:flex;gap:6px;margin-top:4px}.stage-dots i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1.5px dashed var(--paint-border-9fb2cc, #9fb2cc);color:#fff}.stage-dots i.done{border:0;background:#22a35a}.stage-dots svg{width:11px;height:11px}.home-columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px}.plot-list{display:grid;gap:12px}.plot-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 14px 10px 10px;border-radius:22px;background:var(--tint)}.plot-thumb{position:relative;width:64px;height:64px;border-radius:16px;overflow:hidden}.plot-thumb b{position:absolute;right:5px;bottom:5px;display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:8px;background:var(--paint-bg-fff, #fff);color:var(--ink);font-size:12px}.plot-info{display:grid;gap:4px;min-width:0}.plot-info strong{font-size:15px;color:var(--ink)}.plot-info small{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}.plot-info small svg{width:14px;height:14px}.references{display:grid;align-content:start;gap:4px}.references .source-link{border-radius:16px;padding:12px 14px;background:var(--paint-bg-f7faff, #f7faff);color:var(--ink);font-weight:600}.references .source-link:hover{background:var(--tint)}.grade-heading .grade-title{display:flex;align-items:center;gap:10px;min-width:0}.grade-title h1{margin:0}.grade-heading .grade-menu-toggle{width:42px;height:42px;flex:none}.grade-menu-toggle svg{width:24px;height:24px}.grade-context{display:grid;grid-template-columns:minmax(360px,1.2fr) minmax(200px,1fr);gap:28px;align-items:end;padding:16px 20px;margin-bottom:18px;border:1px solid var(--paint-border-e1e9f3, #e1e9f3);border-radius:22px;background:var(--paint-bg-ffffffba, #ffffffba)}.grade-context-selectors{display:grid;grid-template-columns:76px minmax(130px,1fr) 110px;gap:10px;min-width:0}.grade-context-selectors.all-classes{grid-template-columns:76px minmax(130px,1fr)}.grade-context-selectors label{display:grid;gap:5px;min-width:0;font-size:11px;font-weight:600;color:var(--paint-fg-52617a, #52617a)}.grade-context-selectors.incoming-only{grid-template-columns:minmax(110px,180px)}.incoming-grading-tabs{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:4px;width:fit-content;max-width:100%;margin-bottom:16px;overflow-x:auto}.incoming-grading-tabs button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:7px;min-width:0;white-space:nowrap}.incoming-grading-tabs .count{display:inline-grid;flex:0 0 auto;place-items:center;min-width:22px;min-height:22px;padding:0 6px;margin:0;line-height:1}.incoming-status-tabs{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:4px;width:fit-content;max-width:100%;margin:-7px 0 16px;overflow-x:auto}.incoming-status-tabs button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:7px;min-width:0;white-space:nowrap}.incoming-status-tabs .count{display:inline-grid;flex:0 0 auto;place-items:center;min-width:20px;min-height:20px;padding:0 5px;margin:0;line-height:1}.student-cell .incoming-pupil-route{margin-top:5px;color:var(--paint-fg-174b96, #174b96);line-height:1.5;white-space:normal}.student-cell .incoming-safe-status{display:inline-flex;width:fit-content;margin-top:5px;padding:3px 8px;border-radius:999px;background:var(--paint-bg-e5f6ec, #e5f6ec);color:var(--paint-fg-17643c, #17643c);font-size:10.5px;font-weight:700}.incoming-finish-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:0 10px;border:1px solid var(--paint-border-b9e5ca, #b9e5ca);border-radius:999px;background:var(--paint-bg-f0faf4, #f0faf4);color:var(--paint-fg-17643c, #17643c);font-size:11px;font-weight:700;white-space:nowrap}.incoming-finish-button svg{width:16px;height:16px;flex:none}.incoming-finish-button:disabled{opacity:.6}.incoming-finished{display:inline-flex;align-items:center;min-height:30px;padding:0 9px;font-size:11px;white-space:nowrap}.submission-source-picker{margin:12px 0}.submission-source-name{color:var(--paint-fg-174b96, #174b96);overflow-wrap:anywhere}.grade-context-selectors select{width:100%;min-width:0;min-height:42px;padding:9px 10px;font-size:14px;background:var(--paint-bg-fff, #fff);border-radius:12px}.grade-lms-status{display:flex;gap:8px;align-items:center;min-width:0;min-height:42px;font-size:12px;color:var(--paint-fg-52617a, #52617a)}.grade-lms-status>svg{width:18px;height:18px;color:var(--paint-fg-4469a5, #4469a5);flex:none}.grade-lms-status>span{display:flex;flex-wrap:wrap;gap:3px 8px;min-width:0;flex:1;overflow-wrap:anywhere}.grade-lms-status strong{color:var(--paint-fg-304564, #304564);font-weight:650}.grade-lms-status.has-error{color:var(--paint-fg-a43c22, #a43c22)}.grade-lms-status .icon-button{width:34px;height:34px;flex:none;background:var(--paint-bg-f2f6fc, #f2f6fc)}.grade-lms-status .icon-button svg{width:17px;height:17px}.grade-lms-status .text-button{font-size:12px;white-space:nowrap}.grading-panel>.grade-searchbar{flex-direction:row;align-items:center;padding-bottom:16px;gap:10px}.grade-searchbar .search-field{flex:1;width:auto}.grade-searchbar .search-field input{min-height:44px}.grade-filter-toggle{position:relative;flex:none;width:44px;height:44px;border-radius:14px;background:var(--paint-bg-f7faff, #f7faff)}.grade-filter-toggle.on{border-color:var(--paint-border-82abef, #82abef);color:var(--paint-fg-195ac8, #195ac8);background:var(--paint-bg-edf4ff, #edf4ff)}.grade-filter-count{position:absolute;top:-5px;right:-4px;width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:#1f6bff;color:#fff;font-size:10px;font-weight:700}.grade-applied-filters{display:flex;gap:7px;flex-wrap:wrap;align-items:center;padding:0 26px 14px}.grade-applied-filters button{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:5px 10px;border:1px solid var(--paint-border-dce6f4, #dce6f4);border-radius:999px;background:var(--paint-bg-f4f8fe, #f4f8fe);color:var(--paint-fg-36557f, #36557f);font-size:11px}.grade-applied-filters button.active{background:var(--paint-bg-e5efff, #e5efff);border-color:var(--paint-border-91b6f4, #91b6f4);color:var(--paint-fg-174fa5, #174fa5)}.grade-applied-filters button.clear{border-color:transparent;background:transparent;color:var(--paint-fg-5f6b80, #5f6b80)}.grade-actions-menu{display:grid;gap:4px}.grade-actions-menu button{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px;border:0;border-radius:14px;text-align:left;color:var(--paint-fg-243d62, #243d62);background:transparent;font-size:14px;font-weight:600}.grade-actions-menu button:hover{background:var(--paint-bg-edf4ff, #edf4ff)}.grade-actions-menu button>svg{width:20px;height:20px;flex:none}.grade-actions-menu button>span{flex:1}.grade-actions-menu button>svg:last-child{width:15px;height:15px;color:var(--paint-fg-667c9a, #667c9a)}.grade-filter-sheet{display:grid;gap:16px}.grade-filter-sheet>label{display:grid;gap:7px;font-size:13px;font-weight:600;color:var(--paint-fg-43546d, #43546d)}.grade-filter-sheet select,.grade-filter-sheet textarea{width:100%;font-weight:400}.grade-filter-sheet label.grade-checkbox{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0}.grade-filter-sheet .grade-checkbox input[type=checkbox]{width:18px;height:18px;min-height:0;padding:0;margin:0;flex:none;accent-color:#1f6bff}.grade-selection-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}.grade-selection-actions button{font-size:12px}.grade-filter-footer{margin-top:4px}.grade-filter-footer>.button:last-child{flex:1}.grading-panel .grade-sync{border:0;padding:8px 24px 12px;font-size:11px;line-height:1.5;color:var(--paint-fg-53647e, #53647e);background:var(--paint-bg-f7faff, #f7faff);overflow-wrap:anywhere}@media(max-width:900px){.grade-context{display:block;padding:14px}.grade-context-selectors{grid-template-columns:minmax(0,.75fr) minmax(0,1.5fr) minmax(0,.85fr);gap:8px}.grade-context-selectors.all-classes{grid-template-columns:minmax(0,.75fr) minmax(0,2.35fr)}.grade-context-selectors select{font-size:16px}.grade-lms-status{margin-top:10px;padding-top:9px;border-top:1px solid var(--paint-border-e0e8f3, #e0e8f3);min-height:36px;font-size:11px}.grade-lms-status .icon-button{width:30px;height:30px}}@media(max-width:767px){.grade-heading{margin-bottom:16px}.grade-heading .grade-title h1{font-size:28px}.grade-context{margin-bottom:14px;border-radius:20px}.grading-panel>.section-heading{margin-bottom:16px}.grading-panel>.grade-searchbar{padding-left:16px;padding-right:16px;padding-bottom:14px}.grade-searchbar .search-field input{font-size:16px}.grade-applied-filters,.grading-panel .grade-sync{padding-left:16px;padding-right:16px}}.selectors label{color:var(--paint-fg-4b5870, #4b5870);font-weight:600}.grading-panel{padding:26px 0 0;overflow:hidden}.grading-panel>.section-heading,.grading-panel>.grading-toolbar{padding:0 26px}.grading-panel>.grading-toolbar{padding-bottom:22px}.grade-table thead th{background:var(--paint-bg-f4f8fe, #f4f8fe);color:var(--paint-fg-3f4d66, #3f4d66);border:0}.grade-table tbody tr{border-color:var(--line)}.grade-table tbody tr:hover{background:var(--paint-bg-fafcff, #fafcff)}.grade-table input{border-radius:14px;text-align:center;font-weight:650}.avatar{border-radius:14px}.score.complete{background:var(--mint);color:var(--paint-fg-1d6b40, #1d6b40);border-radius:12px}.review-button{color:var(--blue);font-weight:650}.send-bar{background:var(--paint-bg-f7faff, #f7faff);border-top:1px solid var(--line)}.progress{background:var(--paint-bg-dfe8f4, #dfe8f4);border-radius:999px}.progress i{background:linear-gradient(90deg,var(--blue),#59a0ff);border-radius:999px}.lms-bar{background:linear-gradient(120deg,var(--paint-bg-eaf3ff, #eaf3ff),var(--paint-bg-f3f0ff, #f3f0ff));border-radius:var(--radius);box-shadow:none}.provider-icon{border-radius:14px}.stage-card{border:0;border-radius:24px;background:var(--paint-bg-fff, #fff);box-shadow:var(--shadow)}.stage-card.active{background:linear-gradient(135deg,#1f6bff,#4a8dff);color:#fff;box-shadow:0 16px 32px #1f6bff4d}.stage-card.active small,.stage-card.active h3,.stage-card.active>span,.stage-card.active>svg{color:#fff}.upload-zone{border:2px dashed var(--paint-border-bcd0ec, #bcd0ec);border-radius:24px;background:var(--tint)}.upload-zone:hover{background:var(--tint-strong)}.gallery-tile img,.gallery-icon{border-radius:20px;border:0;box-shadow:0 8px 18px #1f4a8c1a}.file-row{border-radius:18px}.file-preview{border-radius:14px}.schedule-card{border:0;border-radius:28px;background:var(--paint-bg-fff, #fff);box-shadow:var(--shadow);position:relative;overflow:hidden}.schedule-card:before{content:"";position:absolute;inset:0 0 auto;height:6px;background:var(--blue)}.schedule-card.schedule-1:before{background:#22a35a}.schedule-card.schedule-2:before{background:var(--orange)}.schedule-card .day-pill{background:var(--tint);color:var(--paint-fg-24467d, #24467d);border-radius:999px}.schedule-card,.schedule-card.schedule-0,.schedule-card.schedule-1,.schedule-card.schedule-2,.schedule-card h2,.schedule-card .schedule-time{color:var(--ink)}.schedule-card small{color:var(--muted)}.schedule-card .text-button{color:var(--blue)}.schedule-card .pill{background:var(--paint-bg-f4f7fb, #f4f7fb);color:var(--paint-fg-4b5870, #4b5870)}.profile-panel{background:linear-gradient(120deg,var(--paint-bg-e6f1ff, #e6f1ff) 0%,var(--paint-bg-f4f9ff, #f4f9ff) 60%,var(--paint-bg-fff, #fff) 100%)}.setup-step{border-radius:20px;border-color:var(--line)}.setup-step>summary{border-radius:20px}.setup-step[open]{background:var(--paint-bg-fbfdff, #fbfdff)}.step-number{background:var(--tint);color:var(--blue-dark);border-radius:12px}.connection-results{background:var(--paint-bg-f7faff, #f7faff);border-radius:18px}.danger-zone{background:linear-gradient(120deg,var(--paint-bg-fff4f2, #fff4f2),var(--paint-bg-fff, #fff))}.sheet{border-radius:32px 0 0 32px;box-shadow:-20px 0 60px #1722352e}.dialog-overlay{background:#17223561;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-summary{border-radius:24px;background:linear-gradient(135deg,#1f6bff,#59a0ff);color:#fff}.lms-grade{border-bottom:1px solid var(--line)}.file-chip{border-radius:999px;background:var(--tint);border-color:transparent}.login-page{background:transparent}.login-art{position:relative;overflow:hidden;background:radial-gradient(420px 320px at 85% 20%,rgba(255,255,255,.55),transparent 70%),linear-gradient(180deg,var(--paint-bg-bcdcfb, #bcdcfb) 0%,var(--paint-bg-d6eafd, #d6eafd) 60%,var(--paint-bg-e9f3ff, #e9f3ff) 100%);color:var(--ink);border-radius:0 40px 40px 0}.login-art .brand,.login-art .brand span,.login-art-copy h1{color:var(--ink)}.login-art .pill.light{background:#fffc;color:var(--paint-fg-24467d, #24467d)}.login-scene{position:absolute;inset:auto 0 0;width:100%;height:min(44%,420px);overflow:visible}.login-art-copy{position:relative;z-index:1;margin-top:clamp(40px,9vh,110px);margin-bottom:auto}.login-panel{background:transparent}.login-form{background:var(--paint-bg-fff, #fff);border-radius:32px;box-shadow:var(--shadow-strong);padding:34px}@keyframes page-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes viewer-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}@keyframes pop{0%{transform:translateY(-14px) scale(1)}40%{transform:translateY(-14px) scale(.88)}to{transform:translateY(-14px) scale(1)}}.page-enter{animation:page-in .38s cubic-bezier(.2,.8,.2,1) both}.quick-card,.plot-row,.gallery-tile,.schedule-card,.stage-card,.home-sheet,.home-hero{animation:rise-in .5s cubic-bezier(.2,.8,.2,1) both}.home-sheet{animation-delay:.06s}.quick-card:nth-child(2),.plot-row:nth-child(2),.gallery-tile:nth-child(2),.schedule-card:nth-child(2),.stage-card:nth-child(2){animation-delay:.06s}.quick-card:nth-child(3),.plot-row:nth-child(3),.gallery-tile:nth-child(3),.schedule-card:nth-child(3),.stage-card:nth-child(3){animation-delay:.12s}.quick-card:nth-child(4),.plot-row:nth-child(4),.gallery-tile:nth-child(n+4),.schedule-card:nth-child(n+4){animation-delay:.18s}.button,.icon-button,.quick-card,.gallery-tile,.stage-card,.plot-row,.user-chip,.sidebar nav button,.sidebar-bottom>button,.segmented button,.file-chip{transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .2s,background-color .2s,color .2s,border-color .2s}.button:active:not(:disabled),.icon-button:active:not(:disabled),.user-chip:active,.segmented button:active{transform:scale(.96)}.quick-card:active,.gallery-tile:active,.stage-card:active{transform:scale(.98)}.plot-row:hover{transform:translate(3px)}.gallery-tile:hover img{transform:translateY(-2px)}.gallery-tile img{transition:transform .2s}.toast{animation:toast-in .32s cubic-bezier(.2,.8,.2,1) both}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;grid-template-rows:auto 1fr;background:#0f1624eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:viewer-in .24s cubic-bezier(.2,.8,.2,1) both}.viewer.closing{animation:viewer-out .2s ease both}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;color:#fff}.viewer-title{display:grid;gap:2px;min-width:0}.viewer-title strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-title small{color:var(--paint-fg-b9c5d8, #b9c5d8);font-size:12px}.viewer-actions{display:flex;gap:8px;flex:none}.viewer-body{min-height:0;overflow:auto;padding:0 16px calc(16px + env(safe-area-inset-bottom))}.viewer .file-viewer{margin:0 auto;max-width:1100px;height:100%;grid-template-rows:1fr auto}.viewer .file-viewer iframe{height:100%;min-height:calc(100dvh - 150px);border:0;border-radius:16px}.viewer .file-viewer img,.viewer .file-viewer video{max-height:calc(100dvh - 150px);margin:0 auto;border:0;background:transparent}.viewer .docx-view{max-height:none;min-height:calc(100dvh - 150px)}.viewer .file-viewer-actions .text-button{color:#cfe0ff}.viewer .muted{color:var(--paint-fg-b9c5d8, #b9c5d8)}.file-chip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:18px;background:var(--tint);border:0;cursor:default}.file-chip>span{font-size:13px;color:var(--ink);overflow-wrap:anywhere}.file-chip>svg{color:var(--blue)}.art{display:block;width:100%;height:100%}.quick-card .art{position:absolute;top:0;right:0;bottom:0;left:0}.schedule-art{height:140px;margin:-25px -25px 16px;width:calc(100% + 50px)}.deck-card{cursor:default}.deck-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.deck-links a{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:999px;background:var(--blue);color:#fff;font-size:12px;font-weight:650;line-height:1.2;white-space:nowrap}.deck-links a:active{transform:scale(.96)}.deck-links a svg{width:13px;height:13px}.deck-missing{font-size:11px;color:var(--muted)}.deck-editor{display:grid;gap:10px;margin:8px 0 18px}.deck-editor h3{margin:0;font-size:14px}.deck-row{display:grid;grid-template-columns:80px minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:end}.deck-row strong{padding-bottom:14px;font-size:13px}@media(max-width:640px){.deck-row{grid-template-columns:1fr 1fr}.deck-row strong{grid-column:1 / -1;padding:0}}body{overscroll-behavior-y:contain}.pull-indicator{position:fixed;top:calc(8px + env(safe-area-inset-top));left:50%;z-index:90;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--paint-bg-fff, #fff);color:var(--blue);box-shadow:0 10px 24px #1f4a8c33;pointer-events:none}.pull-indicator svg{width:20px;height:20px;transition:transform .12s}.pull-indicator.ready{background:var(--blue);color:#fff}.pull-indicator.refreshing svg{animation:spin .8s linear infinite}.lookup-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:6px}.lookup-field .button{min-height:46px}.integration-card{display:grid;gap:4px;margin:4px 0 14px;padding:12px 14px;border-radius:16px;background:var(--mint);color:var(--paint-fg-1d5f3b, #1d5f3b)}.integration-card strong{font-size:13px}.integration-card small{font-size:12px;color:var(--paint-fg-2f5a44, #2f5a44);overflow-wrap:anywhere}.integration-card.empty{background:var(--paint-bg-fff8e8, #fff8e8);color:var(--paint-fg-6b4e09, #6b4e09)}.integration-card.empty small{color:var(--paint-fg-6b4e09, #6b4e09)}.integration-warning{color:var(--paint-fg-962015, #962015)!important}.account-list{display:grid;gap:8px}.account-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:10px 12px;padding:10px 12px;border-radius:18px;background:var(--paint-bg-f7faff, #f7faff)}.account-item .user-avatar{width:38px;height:38px;min-height:38px;display:inline-grid;place-items:center;font-size:12px;font-weight:700}.account-item .integration-card,.account-item .account-invite{grid-column:1 / -1;margin:0}.account-actions-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 14px}.account-actions-row .text-button{min-height:32px;font-size:12.5px}.account-meta{display:grid;min-width:0}.account-meta strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-meta small{color:var(--muted);font-size:11.5px}.pill.warning{background:var(--paint-bg-fff1d6, #fff1d6);color:var(--paint-fg-7a5200, #7a5200)}@media(max-width:640px){.account-item{grid-template-columns:38px minmax(0,1fr) auto}.account-item .pill{grid-column:2;justify-self:start}}.row-menu{position:relative}.row-menu summary{list-style:none;width:34px;height:34px;cursor:pointer}.row-menu summary::-webkit-details-marker{display:none}.row-menu[open] summary{background:var(--paint-bg-e7efff, #e7efff);color:var(--blue)}.row-menu .account-actions-row{position:absolute;top:calc(100% + 6px);right:0;z-index:20;display:grid;width:max-content;max-width:calc(100vw - 40px);gap:2px;padding:4px;justify-content:stretch;border-radius:14px;background:var(--paint-bg-fff, #fff);box-shadow:0 12px 30px #1f4a8c2e}.row-menu .account-actions-row .text-button{display:flex;justify-content:flex-start;text-align:left;width:100%;min-height:34px;padding:7px 9px;gap:8px;border-radius:9px;font-size:12.5px;line-height:1.3;white-space:nowrap}.row-menu .account-actions-row .text-button svg{width:17px;height:17px;flex:none}.row-menu .account-actions-row .text-button:hover{background:var(--paint-bg-f3f7fd, #f3f7fd)}.row-menu .account-actions-row .text-button.danger:hover{background:var(--paint-bg-fff1ef, #fff1ef)}.auto-connections{display:grid;gap:10px}.auto-connection{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:12px}.auto-connection strong{font-size:14px;color:var(--ink)}.status-dot{width:10px;height:10px;border-radius:50%;background:#c3ccd9}.status-dot.on{background:#22a35a;box-shadow:0 0 0 4px #22a35a26}.schedule-panel .section-heading{margin-bottom:14px}.schedule-list{display:grid;gap:10px}.schedule-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 14px 10px 10px;border-radius:22px;background:var(--tint);animation:rise-in .45s cubic-bezier(.2,.8,.2,1) both}.schedule-row:nth-child(2){animation-delay:.05s}.schedule-row:nth-child(3){animation-delay:.1s}.schedule-row:nth-child(n+4){animation-delay:.15s}.day-tile{display:grid;place-items:center;align-content:center;gap:1px;width:64px;height:64px;border-radius:18px;background:var(--paint-bg-fff, #fff);color:var(--ink);box-shadow:0 6px 14px #1f4a8c14}.day-tile small{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;padding:2px 8px;border-radius:999px;background:var(--blue)}.day-tile strong{font-size:15px;letter-spacing:-.01em}.day-tile.day-1 small{background:#1f6bff}.day-tile.day-2 small{background:#22a35a}.day-tile.day-3 small{background:#ff7a2f}.day-tile.day-4 small{background:#8a5cf6}.day-tile.day-5 small{background:#d63f6c}.schedule-info{display:grid;gap:4px;min-width:0}.schedule-info strong{font-size:16px;color:var(--ink)}.schedule-info small{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;color:var(--muted);font-size:12px}.schedule-info small svg{width:14px;height:14px}.schedule-info em{font-style:normal;font-size:10.5px;font-weight:650;padding:2px 8px;border-radius:999px;background:var(--paint-bg-fff1d6, #fff1d6);color:var(--paint-fg-7a5200, #7a5200)}@media(max-width:640px){.schedule-row{grid-template-columns:56px minmax(0,1fr) auto;gap:12px;padding:8px 10px 8px 8px}.day-tile{width:56px;height:56px;border-radius:16px}.day-tile strong{font-size:14px}}.audit-controls{display:grid;grid-template-columns:140px auto;gap:10px;justify-content:start;margin:6px 0 14px}.audit-result{display:grid;gap:12px}.audit-table{display:grid;grid-template-columns:1fr;gap:6px}.audit-table>span{display:none}.audit-row{border-radius:16px;background:var(--paint-bg-f7faff, #f7faff);overflow:hidden}.audit-row summary{display:grid;grid-template-columns:minmax(0,1fr) 70px 70px;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;list-style:none;font-size:13px}.audit-row summary::-webkit-details-marker{display:none}.audit-row summary span{font-weight:650;text-align:center;border-radius:999px;padding:3px 0}.audit-row.ok summary span{background:var(--mint);color:var(--paint-fg-1d6b40, #1d6b40)}.audit-row.warn summary span{background:var(--paint-bg-fff1d6, #fff1d6);color:var(--paint-fg-7a5200, #7a5200)}.audit-detail{display:grid;gap:4px;padding:0 14px 12px}.audit-detail small{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.audit-group{display:grid;gap:2px;padding:8px 10px;border-radius:12px;background:var(--paint-bg-fff, #fff)}.audit-group strong{font-size:12.5px;color:var(--ink)}.audit-group b{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px}.audit-group b.ok{background:var(--mint);color:var(--paint-fg-1d6b40, #1d6b40)}.audit-group b.part{background:var(--paint-bg-fff1d6, #fff1d6);color:var(--paint-fg-7a5200, #7a5200)}.audit-group b.none{background:var(--paint-bg-eef1f6, #eef1f6);color:var(--paint-fg-5f6b80, #5f6b80)}.audit-unmatched{display:grid;gap:4px;padding:12px 14px;border-radius:16px;background:var(--paint-bg-fff4f2, #fff4f2)}.audit-unmatched strong{font-size:13px;color:var(--paint-fg-962015, #962015)}.audit-unmatched small{font-size:12px;color:var(--paint-fg-5f2a24, #5f2a24);overflow-wrap:anywhere}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheet-left{0%{transform:translate(100%)}to{transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-down{0%{transform:none}to{transform:translateY(100%)}}@keyframes sheet-right{0%{transform:none}to{transform:translate(100%)}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes viewer-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.98)}}.sheet{animation:sheet-left .34s cubic-bezier(.2,.8,.2,1) both}.sheet[data-state=closed]{animation:sheet-right .26s cubic-bezier(.4,0,1,1) both}.dialog-overlay{animation:fade .25s ease both}.dialog-overlay[data-state=closed]{animation:fade-out .24s ease both}.sheet.compact{inset:auto 24px 24px auto;width:380px;max-height:calc(100dvh - 48px);border-radius:28px;animation-name:sheet-up}.sheet.compact[data-state=closed]{animation:sheet-down .26s cubic-bezier(.4,0,1,1) both}.sheet.compact .sheet-header{padding:22px 22px 14px;border-bottom:0}.sheet.compact .sheet-header h2{font-size:18px}.sheet.compact .sheet-body{padding:0 22px 22px}.account-card{display:flex;align-items:center;gap:14px;padding:14px;border-radius:22px;background:linear-gradient(120deg,var(--paint-bg-e6f1ff, #e6f1ff),var(--paint-bg-f4f9ff, #f4f9ff))}.account-card .user-avatar.large{width:52px;height:52px;min-height:52px;display:inline-grid;place-items:center;font-size:15px;font-weight:700;flex:none}.account-card strong{display:block;font-size:15px;color:var(--ink)}.account-card small{color:var(--muted);font-size:12px}.account-actions{display:grid;gap:8px;margin-top:12px}.account-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:50px;padding:0 16px;border-radius:16px;background:var(--paint-bg-f5f8fd, #f5f8fd);color:var(--ink);font-weight:600;text-align:left}.account-row:hover{background:var(--tint)}.account-row svg{width:19px;height:19px}.account-row .caret{transition:transform .2s;color:var(--muted)}.account-row.open .caret{transform:rotate(180deg)}.account-row.danger{color:var(--paint-fg-c0271a, #c0271a);background:var(--paint-bg-fff4f2, #fff4f2)}.pin-form{display:grid;gap:8px;padding:4px 2px 6px;animation:page-in .25s ease both}.pin-form input{min-height:46px}@media(max-width:1100px)and (min-width:768px){.sidebar{width:212px}.app-main{width:calc(100% - 240px);margin-left:240px}.topbar,.content{padding-left:24px;padding-right:24px}}@media(max-width:1100px){.quick-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-card{aspect-ratio:4 / 3}.home-columns{grid-template-columns:1fr}}@media(max-width:767px){.sidebar{inset:0 auto 0 0;border-radius:0 32px 32px 0}.app-main{width:100%;margin-left:0}.topbar{position:sticky;top:0;z-index:30;min-height:64px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:#e6f0fbf5}.topbar .user-chip{padding:4px 14px 4px 4px}.page-heading{margin:10px 0 18px}.page-heading h1{font-size:30px}.topbar-course,.topbar-period{display:none}.topbar>div:first-child{min-width:0}.topbar-course.pickable{display:inline-flex;align-items:center;min-width:0;min-height:44px;padding:0 8px}.topbar-course.pickable img,.topbar-word{display:none}.topbar:has(.pickable) .user-chip{padding:4px}.topbar:has(.pickable) .user-chip>span:last-child{display:none}.topbar .icon-button,.topbar .mobile-menu{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;flex:none;aspect-ratio:1;border:0;border-radius:50%;box-shadow:0 8px 20px #1f4a8c14}.content{padding:8px 16px calc(112px + env(safe-area-inset-bottom))}.home-hero{margin:0;border-radius:30px;min-height:0;box-shadow:0 14px 30px #1f4a8c1a}.hero-copy{padding:20px 20px 66px;gap:10px}.hero-copy h1{font-size:25px}.home-sheet{margin:-44px 0 0;border-radius:30px;padding:12px 16px 20px;box-shadow:0 14px 34px #1f4a8c1f}.quick-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 -16px 22px;padding:2px 16px 10px;scroll-padding:16px;scrollbar-width:none}.quick-cards::-webkit-scrollbar{display:none}.quick-card{flex:0 0 min(64%,240px);aspect-ratio:1 / 1.02;scroll-snap-align:start}.home-columns{grid-template-columns:1fr;gap:22px}.plot-row{grid-template-columns:56px minmax(0,1fr) auto;gap:12px;padding:8px 10px 8px 8px}.plot-thumb{width:56px;height:56px}.selectors{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.5fr) minmax(0,.75fr);gap:8px}.selectors:has(>label:nth-child(2):last-child){grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}.selectors select{padding-left:12px;padding-right:28px}.lms-bar{flex-wrap:wrap;gap:12px}.lms-bar .button{width:100%}.grading-panel>.section-heading,.grading-panel>.grading-toolbar{padding:0 18px}.grading-panel>.grading-toolbar{padding-bottom:18px}.schedule-art{margin:-24px -24px 14px;width:calc(100% + 48px)}.viewer-body{padding:0 8px calc(10px + env(safe-area-inset-bottom))}.viewer .file-viewer iframe{min-height:calc(100dvh - 130px);border-radius:12px}.file-chip{grid-template-columns:auto minmax(0,1fr)}.file-chip .button{grid-column:1 / -1;width:100%}.panel{border-radius:26px}.sheet{border-radius:28px 28px 0 0;animation-name:sheet-up}.sheet[data-state=closed],.sheet.compact[data-state=closed]{animation:sheet-down .26s cubic-bezier(.4,0,1,1) both}.sheet.compact{inset:auto 0 0 0;top:auto;width:100%;max-height:88dvh;border-radius:28px 28px 0 0;padding-bottom:env(safe-area-inset-bottom)}.sheet.compact:before{content:"";display:block;width:42px;height:5px;margin:10px auto 0;border-radius:999px;background:var(--paint-bg-d8e0eb, #d8e0eb)}.sheet.compact .sheet-header{padding:12px 20px}.sheet.compact .sheet-body{padding:0 20px 20px}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);align-items:center;position:fixed;left:14px;right:14px;bottom:calc(12px + env(safe-area-inset-bottom));height:68px;padding:0 6px;background:var(--paint-bg-fff, #fff);border-radius:28px;box-shadow:0 18px 40px #17223529;z-index:50;border:0}.bottom-nav button{position:relative;display:grid;place-items:center;height:100%;color:var(--paint-fg-8090a8, #8090a8);background:none}.bottom-nav button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.bottom-nav button svg{width:24px;height:24px}.bottom-nav button.active,.bottom-nav button[aria-current=page]{color:var(--blue);background:none;box-shadow:none}.bottom-nav button.active:not(.fab):before{content:"";position:absolute;top:-1px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--blue)}.bottom-nav button.fab,.bottom-nav button.fab[aria-current=page]{justify-self:center;width:58px;height:58px;border-radius:50%;background:var(--orange);color:#fff;transform:translateY(-14px);box-shadow:0 12px 24px #ff7a2f6b}.bottom-nav button.fab.active{box-shadow:0 0 0 5px #fff,0 12px 24px #ff7a2f6b}.login-art{border-radius:0 0 36px 36px}.login-form{padding:26px 22px;border-radius:28px}}@media(prefers-reduced-motion:reduce){.page-enter,.quick-card,.plot-row,.gallery-tile,.schedule-card,.stage-card,.home-sheet,.home-hero,.viewer,.viewer.closing,.toast,.sheet,.sheet[data-state=closed],.dialog-overlay,.dialog-overlay[data-state=closed],.pin-form{animation:none!important}.button:active,.quick-card:active,.plot-row:hover{transform:none!important}}.timer-pill{display:inline-flex;align-items:center;gap:7px;height:44px;min-width:44px;padding:0 12px;justify-content:center;border-radius:999px;background:var(--paint-bg-fff, #fff);color:var(--ink);font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;box-shadow:0 8px 20px #1f4a8c14}.timer-pill svg{width:20px;height:20px}.timer-pill.live{background:var(--blue);color:#fff;padding:0 16px 0 13px}.timer-pill.ringing{background:var(--orange);color:#fff;animation:timer-shake .9s ease-in-out infinite}@keyframes timer-shake{0%,to{transform:rotate(0)}20%{transform:rotate(-6deg)}40%{transform:rotate(6deg)}60%{transform:rotate(-3deg)}}.timer-stage{position:relative;overflow:hidden;padding:26px 30px 24px;background:radial-gradient(220px 220px at 96% 4%,rgba(255,214,140,.45),transparent 70%),radial-gradient(260px 200px at 0% 100%,rgba(170,225,196,.45),transparent 70%),linear-gradient(160deg,var(--paint-bg-e2efff, #e2efff) 0%,var(--paint-bg-f4f9ff, #f4f9ff) 70%);margin-bottom:20px;container-type:inline-size}.timer-stage-top{display:flex;gap:8px;align-items:center}.timer-stage-top .icon-button{background:var(--paint-bg-fff, #fff);border:0;border-radius:50%;width:42px;height:42px}.timer-main{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:40px;padding:10px 0 18px}.timer-ring{position:relative;width:240px;aspect-ratio:1}.timer-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{fill:none;stroke:#ffc53d;stroke-width:18}.ring-progress{fill:none;stroke:var(--blue);stroke-width:18;stroke-linecap:round;transition:stroke-dashoffset .3s linear}.ring-face{position:absolute;top:34px;right:34px;bottom:34px;left:34px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 50% 30%,var(--paint-bg-fff, #fff) 0%,var(--paint-bg-e8f2ff, #e8f2ff) 100%);box-shadow:inset 0 -8px 18px #1f4a8c14;color:var(--blue)}.ring-face svg{width:44%;height:44%}.timer-readout h2{margin:0;font-size:26px;color:var(--blue);letter-spacing:-.02em}.timer-digits{display:block;font-size:clamp(56px,13cqi,120px);line-height:1;font-weight:800;letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;margin:6px 0 4px}.timer-readout>p{margin:0 0 18px}.timer-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.timer-actions .icon-button{width:46px;height:46px;border-radius:50%;background:var(--paint-bg-fff, #fff);border:1px solid var(--paint-border-d5deea, #d5deea)}.button.timer-primary{min-width:150px;min-height:54px;font-size:15px;gap:8px}.timer-stage.ringing .timer-primary{background:#ffc53d;border-color:var(--paint-border-ffc53d, #ffc53d);color:var(--paint-fg-3a2500, #3a2500);box-shadow:0 6px #ef9a1a}.timer-stage.urgent .timer-digits,.timer-stage.ringing .timer-digits{color:var(--orange)}.timer-stage.ringing .ring-face{animation:timer-shake .9s ease-in-out infinite}.timer-footer{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:16px}.timer-footer>span:not(.timer-bar){display:grid;gap:4px}.timer-footer small{font-size:12px;color:var(--muted);font-weight:600}.timer-footer>span:last-child{justify-items:end}.flip-digits{display:inline-flex;gap:3px;align-items:center}.flip-digits b{display:inline-grid;place-items:center;width:22px;height:28px;border-radius:6px;background:var(--paint-bg-fff, #fff);color:var(--blue);font-size:16px;font-variant-numeric:tabular-nums;box-shadow:0 2px #d5e2f3}.flip-digits i{font-style:normal;font-weight:800;color:var(--blue)}.timer-bar{position:relative;height:28px;border-radius:999px;background:#ffffffe6;overflow:hidden}.timer-bar>span{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,#8fb6ff,var(--blue));transition:width .4s}.timer-bar em{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;font-size:12px;font-weight:700;color:var(--muted)}.timer-stage:fullscreen{display:grid;align-content:center;border-radius:0;padding:4vh 6vw}.timer-stage:fullscreen .timer-ring{width:min(42vh,36vw)}.timer-stage:fullscreen .timer-digits{font-size:min(22vh,15vw)}.timer-stage:fullscreen .timer-readout h2{font-size:4vh}.timer-track-panel{margin-bottom:20px}.timer-total{padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:12px;font-weight:650;color:var(--muted)}.timer-track{display:flex;gap:0;overflow-x:auto;padding:10px 2px 18px;scrollbar-width:none}.track-step{position:relative;flex:1 0 110px;display:grid;justify-items:center;gap:10px;background:none;border:0;padding:0;font-size:13px;font-weight:650;color:var(--muted)}.track-step+.track-step:before{content:"";position:absolute;top:33px;right:calc(50% + 34px);width:calc(100% - 68px);height:5px;border-radius:999px;background:var(--tint-strong)}.track-step.done+.track-step:before,.track-step.done+.track-step.current:before{background:var(--blue)}.track-dot{position:relative;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:var(--tint);border:4px solid var(--tint-strong);color:var(--paint-fg-6c8fc4, #6c8fc4);transition:transform .2s,border-color .2s}.track-dot svg{width:28px;height:28px}.track-dot b{position:absolute;top:-8px;right:-12px;min-width:26px;height:26px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:var(--paint-bg-fff, #fff);border:3px solid var(--tint-strong);font-size:11px;color:var(--ink)}.track-step.done .track-dot{background:var(--paint-bg-e4f6ec, #e4f6ec);border-color:#22a35a;color:var(--paint-fg-22a35a, #22a35a)}.track-step.current{color:var(--blue)}.track-step.current .track-dot{width:74px;height:74px;margin-top:-4px;background:var(--paint-bg-fff, #fff);border-color:var(--blue);color:var(--blue);box-shadow:0 10px 22px #1f6bff38}.track-step.current .track-dot b{border-color:var(--blue)}.track-step:hover .track-dot{transform:translateY(-2px)}.timer-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;align-items:start}.timer-editor,.timer-sound{display:grid;gap:12px}.timer-sound .volume{display:flex;flex-direction:row;margin:0;align-items:center;gap:10px;color:var(--blue)}.volume input{flex:1;accent-color:var(--blue);background:none;border:0;box-shadow:none}.timer-sound p{margin:0;font-size:12px}.timer-alert{position:fixed;z-index:80;left:50%;top:18px;transform:translate(-50%);display:flex;align-items:center;gap:12px;width:min(460px,calc(100% - 32px));padding:12px 12px 12px 16px;border-radius:24px;background:var(--paint-bg-fff, #fff);box-shadow:var(--shadow-strong);border:2px solid var(--orange);animation:toast-in .32s cubic-bezier(.2,.8,.2,1) both}.timer-alert>svg{flex:none;width:30px;height:30px;color:var(--orange);animation:timer-shake .9s ease-in-out infinite}.timer-alert>span{flex:1;display:grid;min-width:0}.timer-alert small{color:var(--muted)}@container (max-width: 620px){.timer-main{grid-template-columns:1fr;justify-items:center;text-align:center;gap:14px}.timer-ring{width:min(62cqi,220px)}.timer-actions{justify-content:center}.button.timer-primary{flex:1 0 100%}.timer-digits{font-size:clamp(56px,22cqi,110px)}}@container (min-width: 621px) and (max-width: 820px){.timer-main{gap:24px}.timer-ring{width:190px}}@media(max-width:1100px){.timer-columns{grid-template-columns:1fr}}@media(max-width:767px){.timer-stage{padding:18px}.timer-footer{gap:10px}.flip-digits b{width:18px;height:24px;font-size:14px}.timer-alert{top:calc(74px + env(safe-area-inset-top))}.topbar .timer-pill.live,.topbar .timer-pill.ringing{width:auto;aspect-ratio:auto}}@media(prefers-reduced-motion:reduce){.timer-pill.ringing,.timer-alert>svg,.timer-stage.ringing .ring-face{animation:none}}.timer-editor,.timer-sound{gap:10px}.track-step:focus-visible{outline-offset:4px;border-radius:18px}.session-list{display:grid}.session-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.session-row:last-child{border-bottom:0}.session-icon{position:relative;flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--tint);color:var(--blue)}.session-icon svg{width:20px;height:20px}.session-icon select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;min-height:0}.session-row input{min-height:0;border:0;background:transparent;box-shadow:none}.session-row input:focus{background:var(--paint-bg-f3f7fd, #f3f7fd);box-shadow:none}.session-name{flex:1;min-width:0;padding:8px 10px;border-radius:10px;font-weight:600;font-size:14px}.session-length{flex:none;display:inline-flex;align-items:center;gap:2px;height:36px;padding:0 10px 0 4px;border-radius:999px;background:var(--paint-bg-f3f7fd, #f3f7fd)}.session-length input{width:44px;padding:0 2px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.session-length input[type=time]{width:112px;text-align:left}.session-length input::-webkit-inner-spin-button{display:none}.session-length small{font-size:12px;color:var(--muted)}.session-mode{display:grid;place-items:center;min-width:28px;height:28px;padding:0 4px;border:0;border-radius:999px;background:var(--paint-bg-fff, #fff);color:var(--blue);font-size:11px;font-weight:700}.session-mode svg{width:15px;height:15px}.session-delete{flex:none;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:none;color:var(--paint-fg-9aa8bd, #9aa8bd)}.session-delete:hover:not(:disabled){background:var(--paint-bg-fff0ec, #fff0ec);color:var(--paint-fg-d9452b, #d9452b)}.session-delete:disabled{opacity:.35}.session-delete svg{width:17px;height:17px}.session-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;border:1px dashed var(--paint-border-c9d6e8, #c9d6e8);border-radius:14px;background:none;color:var(--blue);font-size:13px;font-weight:650}.session-add:hover{background:var(--tint)}.sound-pick{display:flex;gap:8px}.sound-pick select{flex:1;min-width:0;min-height:44px;font-weight:600}.sound-pick .icon-button{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--blue);color:#fff}.timer-sound p{font-size:12px}.schedule-item{border-radius:22px;background:var(--tint);animation:rise-in .45s cubic-bezier(.2,.8,.2,1) both}.schedule-item .schedule-row{background:none;animation:none}.schedule-detail{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,2fr);gap:18px;margin:0 10px 10px;padding:14px 16px;border-radius:16px;background:var(--paint-bg-fff, #fff)}.schedule-detail small{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.crew-list{display:flex;flex-wrap:wrap;gap:6px}.crew-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;background:var(--paint-bg-f3f7fd, #f3f7fd);font-size:12px;color:var(--ink)}.crew-chip b{padding:3px 7px;border-radius:999px;background:var(--paint-bg-fff, #fff);font-size:11px;color:var(--blue)}.crew-chip:not(:has(span)){padding-right:4px}.crew-chip.me{background:var(--blue);color:#fff}.jobdesk table{width:100%;border-collapse:collapse;font-size:13px}.jobdesk th,.jobdesk td{padding:7px 8px;border-top:1px solid var(--line);text-align:left;vertical-align:top}.jobdesk tr:first-child th,.jobdesk tr:first-child td{border-top:0}.jobdesk th{width:48%;font-weight:600;color:var(--ink)}.jobdesk th em{display:block;font-style:normal;font-weight:500;font-size:11px;color:var(--muted)}.jobdesk td{display:flex;flex-wrap:wrap;gap:4px}.jobdesk td span{padding:1px 8px;border-radius:999px;background:var(--paint-bg-f3f7fd, #f3f7fd)}.jobdesk td span.me{background:var(--orange);color:#fff;font-weight:650}.jobdesk tr.mine th{color:var(--orange)}@media(max-width:767px){.schedule-detail{grid-template-columns:1fr;gap:14px;margin:0 8px 8px;padding:12px}}.schedule-detail:has(>:only-child){grid-template-columns:1fr}.hero-slide{display:grid;gap:12px;animation:page-in .45s cubic-bezier(.2,.8,.2,1) both}.hero-copy.hero-carousel{width:100%;min-width:0;max-width:740px;align-content:start}.hero-carousel-viewport{display:grid;min-width:0;overflow:hidden}.hero-carousel .hero-slide{grid-area:1 / 1;grid-template-rows:auto 1fr auto;min-width:0;gap:12px;align-self:stretch;visibility:hidden;opacity:0;pointer-events:none;animation:none}.hero-carousel .hero-slide.is-active{visibility:visible;opacity:1;pointer-events:auto;animation:hero-content-in .28s cubic-bezier(.2,.7,.3,1) both}.hero-carousel[data-direction=backward]{--hero-enter-offset: -18px}.hero-carousel .hero-slide h1{align-self:start;font-size:clamp(24px,2.8vw,36px);line-height:1.22}.hero-slide-footer{display:grid;justify-items:start;gap:12px}.hero-carousel .hero-chips{gap:6px}.hero-carousel .date-pill{padding:5px 11px;font-size:11px;line-height:1.5;box-shadow:none}.hero-carousel .hero-action{min-height:42px;height:auto;padding:10px 16px;box-shadow:none}.hero-action-row{display:flex;align-items:center;gap:12px;min-height:44px;min-width:0;margin-top:0}.hero-action-row .hero-action{flex:none}.hero-pagination{display:flex;align-items:center;min-width:0;overflow-x:auto;scrollbar-width:none}.hero-pagination::-webkit-scrollbar{display:none}.hero-pagination .hero-page-dot{display:grid;place-items:center;flex:0 0 28px;width:28px;height:44px;min-height:44px;padding:0;border-radius:10px;border:0;background:transparent;box-shadow:none;color:var(--paint-fg-1761ef, #1761ef)}.hero-page-dot span{width:6px;height:6px;border-radius:999px;background:#657f9e}.hero-page-dot[aria-pressed=true] span{width:18px;background:currentColor}.hero-page-dot:hover{background:var(--paint-bg-ffffff60, #ffffff60)}.lite .hero-carousel .hero-slide.is-active{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){.hero-carousel .hero-slide.is-active{animation:none!important;transition:none!important}}@media(max-width:1099px){.hero-copy.hero-carousel{max-width:none}}@keyframes hero-content-in{0%{opacity:.15;transform:translate3d(var(--hero-enter-offset, 18px),0,0)}to{opacity:1;transform:translateZ(0)}}.hero-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.hero-chips .date-pill{padding:7px 14px;font-size:12px}.hero-action{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 16px;border:0;border-radius:999px;background:var(--blue);color:#fff;font-size:12px;font-weight:650;box-shadow:0 8px 18px #1f6bff40}.hero-action svg{width:14px;height:14px}.tone-live .eyebrow{color:var(--paint-fg-126337, #126337)}.tone-live .hero-action{background:#15713e;box-shadow:0 8px 18px #22a35a40}.tone-todo .eyebrow{color:var(--paint-fg-873c11, #873c11)}.tone-todo .hero-action{background:var(--orange);color:var(--paint-fg-482000, #482000);box-shadow:0 8px 18px #ff7a2f47}.hero-dots{display:flex;gap:6px;margin-top:4px}.hero-dots button{width:8px;height:8px;min-height:0;padding:0;border:0;border-radius:999px;background:#13203a2e;transition:width .25s,background-color .25s}.hero-copy{touch-action:pan-y}.hero-controls{display:inline-flex;align-items:center;gap:10px;width:max-content;max-width:100%;padding:5px;margin-top:14px;border:1px solid var(--paint-border-ffffffa6, #ffffffa6);border-radius:999px;background:var(--paint-bg-ffffffc9, #ffffffc9);box-shadow:0 6px 20px #254d8610}.hero-controls .hero-dots{align-items:center;margin:0;gap:5px}.hero-controls .hero-dots button{position:relative;width:7px;height:7px;min-height:0;flex:none;padding:0;background:#7c94b2}.hero-controls .hero-dots button:after{content:"";position:absolute;top:-10px;right:-3px;bottom:-10px;left:-3px}.hero-controls .hero-dots button.active{width:22px;background:#1761ef}.hero-arrow{display:grid;place-items:center;flex:none;width:32px;height:32px;min-height:0;padding:0;border:0;border-radius:50%;background:var(--paint-bg-eaf2ff, #eaf2ff);color:var(--paint-fg-174d9d, #174d9d)}.hero-arrow:hover{background:var(--paint-bg-d8e7ff, #d8e7ff)}.hero-arrow svg{width:16px;height:16px}.hero-counter{font-size:11px;font-weight:700;color:var(--paint-fg-1d416f, #1d416f);white-space:nowrap}.hero-counter span{color:var(--paint-fg-52677f, #52677f);font-weight:500}.workspace-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;padding:5px;border-radius:22px;background:var(--paint-bg-eaf1fb, #eaf1fb);width:max-content;max-width:100%}.workspace-tabs button{min-height:40px;border:0;background:transparent;color:var(--paint-fg-475a75, #475a75);padding:9px 16px;border-radius:18px;font-size:13px;font-weight:600}.workspace-tabs button.active{background:var(--paint-bg-fff, #fff);color:var(--paint-fg-1654c7, #1654c7);box-shadow:0 3px 10px #243e6610}.staff-grading-scope{margin-bottom:14px;width:max-content;max-width:100%}.sync-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 24px;border-bottom:1px solid var(--line);color:var(--paint-fg-4d607c, #4d607c);font-size:12px}.nim-filter{margin:0;padding:0 24px 12px}.nim-filter summary,.calendar-editor>summary{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer;color:var(--paint-fg-294c7c, #294c7c)}.nim-filter .report-form{padding-top:14px}.grade-table .row-select{width:18px;height:18px;min-height:0;padding:0;flex:none;accent-color:#1f6bff;border-radius:4px}.report-form{display:grid;gap:16px;min-width:0}.report-form>label,.calendar-row>label{display:grid;gap:7px;color:var(--paint-fg-3c4e69, #3c4e69);font-size:13px;font-weight:600;min-width:0}.report-form textarea{width:100%;resize:vertical;min-height:88px}.report-form input[type=file]{font-size:12px;max-width:100%;padding:10px}.report-form .check-label,.check-label{display:flex;align-items:center;gap:8px;font-size:13px}.check-label input,.recap-classes input,.recap-modules input{width:18px;height:18px;min-height:0;flex:none;margin:0;accent-color:#1f6bff}.report-filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;margin-bottom:18px}.report-filters>*{min-width:0;width:100%}.report-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:12px}.report-card{display:grid;align-content:start;gap:8px;text-align:left;padding:20px;border:1px solid var(--paint-border-dae5f4, #dae5f4);border-radius:22px;background:var(--paint-bg-f8fbff, #f8fbff);color:var(--paint-fg-1d2d47, #1d2d47)}.report-card:hover{border-color:var(--paint-border-84aff5, #84aff5);background:var(--paint-bg-f0f6ff, #f0f6ff)}.report-card .pill{width:max-content}.report-card small{color:var(--paint-fg-53647c, #53647c);font-size:12px}.report-detail{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.evidence-row{display:flex;align-items:center;gap:12px;justify-content:space-between;min-width:0;padding:8px 12px;border-radius:14px;background:var(--paint-bg-f1f6fc, #f1f6fc)}.evidence-row span{overflow:hidden;text-overflow:ellipsis;font-size:12px}.report-toggle{color:var(--paint-fg-9c531b, #9c531b)}.conflict-panel{padding:16px 24px;display:flex;gap:8px;flex-wrap:wrap;background:var(--paint-bg-fff7e9, #fff7e9);color:var(--paint-fg-7c4a12, #7c4a12)}.conflict-panel p{width:100%;margin:0 0 8px;font-size:13px}.calendar-editor{margin-bottom:22px}.calendar-editor>summary{min-height:28px;font-size:15px}.calendar-editor>summary .muted{margin-left:auto;font-size:11px}.calendar-content{display:grid;gap:14px;padding-top:12px}.calendar-row{display:grid;grid-template-columns:100px minmax(140px,1fr) 42px;align-items:end;gap:12px;max-width:620px}.calendar-row input,.calendar-row select{width:100%;min-width:0}.recap-classes,.recap-modules{display:flex;flex-wrap:wrap;gap:12px;border:1px solid var(--paint-border-dce6f4, #dce6f4);border-radius:18px;padding:14px;margin:0}.recap-classes legend,.recap-modules legend{font-size:12px;color:var(--paint-fg-53647c, #53647c);padding:0 6px}.recap-classes label,.recap-modules label{display:flex;gap:7px;align-items:center;font-size:12px;padding:6px}.recap-panel .report-form>.button{justify-self:start}@media(max-width:767px){.hero-controls{gap:8px;margin-top:14px}.report-filters{grid-template-columns:1fr 1fr}.report-filters input{grid-column:1/-1}.sync-summary,.nim-filter{padding-left:16px;padding-right:16px}.calendar-row{grid-template-columns:76px minmax(110px,1fr) 36px;gap:8px}.calendar-row .icon-button{width:34px;height:34px}.workspace-tabs{width:100%}.workspace-tabs button{flex:1;padding:9px 10px;font-size:12px}}.hero-dots button.active{width:22px;background:var(--blue)}.schedule-item .schedule-row{grid-template-columns:64px minmax(0,1fr) auto auto}.schedule-info strong{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:0}.status-badge svg{width:13px;height:13px}.status-badge.done{background:var(--paint-bg-e4f6ec, #e4f6ec);color:var(--paint-fg-1a8a4c, #1a8a4c)}.status-badge.live{background:#22a35a;color:#fff;animation:live-pulse 1.6s ease-in-out infinite}.status-badge.today{background:var(--paint-bg-fff0e6, #fff0e6);color:var(--paint-fg-d9611e, #d9611e)}@keyframes live-pulse{50%{box-shadow:0 0 0 5px #22a35a2e}}.schedule-item.is-live{box-shadow:0 0 0 2px #22a35a}.schedule-item.is-done{background:var(--paint-bg-f4f7fb, #f4f7fb)}.schedule-item.is-done .day-tile{opacity:.6}.schedule-item.is-done .schedule-info>strong{color:var(--paint-fg-7d8aa0, #7d8aa0)}.schedule-group{display:flex;align-items:center;gap:6px;margin:8px 4px 0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--paint-fg-1a8a4c, #1a8a4c)}.detail-toggle{width:36px;height:36px;border-radius:50%;border:0;background:var(--paint-bg-fff, #fff)}.detail-toggle svg{transition:transform .2s}.detail-toggle.open svg{transform:rotate(180deg)}@media(max-width:767px){.schedule-item .schedule-row{grid-template-columns:56px minmax(0,1fr) auto auto}}@media(prefers-reduced-motion:reduce){.status-badge.live{animation:none}}.lecturers{display:grid;gap:6px;margin-bottom:22px}.lecturer-row{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 12px;border-radius:16px;background:var(--paint-bg-f7faff, #f7faff)}.lecturer-avatar{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--tint-strong);color:var(--blue-dark);font-size:11px;font-weight:800}.lecturer-info{flex:1;min-width:0;display:grid;gap:2px}.lecturer-info strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;color:var(--ink)}.lecturer-info small{font-size:11px;color:var(--muted)}.lecturer-wa{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#25d366;color:#fff;box-shadow:0 8px 16px #25d36647;transition:transform .18s}.lecturer-wa:hover{transform:scale(1.06)}.lecturer-wa svg{width:22px;height:22px}.sidebar.rail{--rail-ink: rgba(255, 255, 255, .86);inset:16px auto 16px 16px;width:236px;padding:22px 16px 18px;border-radius:30px;background:radial-gradient(240px 200px at 85% -30px,rgba(255,255,255,.35),transparent 70%),linear-gradient(180deg,#5aaeff 0%,#2f86ff 38%,var(--blue) 72%,var(--blue-dark) 100%);color:#fff;box-shadow:0 20px 44px #1f6bff47;transition:width .28s cubic-bezier(.2,.8,.2,1),transform .28s cubic-bezier(.2,.8,.2,1)}.app-main{transition:margin-left .28s cubic-bezier(.2,.8,.2,1),width .28s cubic-bezier(.2,.8,.2,1)}.rail-head{display:flex;flex-shrink:0;align-items:center;gap:12px;margin:0 0 40px;min-height:52px}.rail-logo{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--paint-bg-fff3d6, #fff3d6)}.rail-brand{display:grid;min-width:0;white-space:nowrap}.rail-brand strong{font-size:17px;letter-spacing:-.02em}.rail-brand small{font-size:11px;color:var(--rail-ink)}.rail-close{display:none}.sidebar.rail nav{gap:6px}.sidebar.rail nav button,.sidebar.rail .sidebar-bottom>button{position:relative;min-height:48px;padding:12px 14px;gap:14px;border-radius:14px;background:none;color:var(--rail-ink);box-shadow:none;white-space:nowrap;font-weight:600}.sidebar.rail nav button:hover,.sidebar.rail .sidebar-bottom>button:hover{background:#ffffff29;color:#fff}.sidebar.rail nav button.active,.sidebar.rail .sidebar-bottom>button.active,.sidebar.rail nav button.active:hover,.sidebar.rail .sidebar-bottom>button.active:hover{background:var(--paint-bg-fff, #fff);color:var(--blue);box-shadow:0 10px 22px #0d348c38}.sidebar.rail nav button.active:before,.sidebar.rail .sidebar-bottom>button.active:before{content:"";position:absolute;left:-16px;top:50%;width:3px;height:24px;border-radius:0 3px 3px 0;background:var(--paint-bg-fff, #fff);transform:translateY(-50%)}.sidebar.rail nav svg,.sidebar.rail .sidebar-bottom>button>svg{flex:none;width:22px;height:22px}.rail-label{overflow:hidden;transition:opacity .2s}.sidebar.rail .sidebar-bottom{display:grid;gap:6px;padding-top:24px}.sidebar.rail .sidebar-bottom>.sidebar-user,.sidebar.rail .sidebar-bottom>.sidebar-user:hover{margin:0;padding:8px 10px;border:0;border-radius:16px;background:#ffffff29;color:#fff}.sidebar.rail .sidebar-user .user-avatar{flex:none;width:32px;height:32px;display:grid;place-items:center;font-size:11px;font-weight:700}.sidebar.rail .sidebar-user strong{color:#fff;overflow:hidden;text-overflow:ellipsis;max-width:140px}.sidebar.rail .sidebar-user small{color:var(--rail-ink)}.rail-toggle{position:absolute;top:38px;right:-14px;display:grid;place-items:center;width:28px;height:28px;padding:0;border:3px solid var(--paint-border-e4eef9, #e4eef9);border-radius:50%;background:var(--paint-bg-fff, #fff);color:var(--blue);box-shadow:0 4px 10px #1f4a8c2e;cursor:pointer}.rail-toggle svg{width:13px;height:13px;transition:transform .28s}.rail-collapsed .rail-toggle svg{transform:rotate(180deg)}@media(min-width:768px){.app-main{width:calc(100% - 276px);margin-left:276px}.rail-collapsed .sidebar.rail{width:84px}.rail-collapsed .app-main{width:calc(100% - 124px);margin-left:124px}.rail-collapsed .rail-brand,.rail-collapsed .rail-label{opacity:0;width:0;pointer-events:none}.rail-collapsed .sidebar.rail nav button,.rail-collapsed .sidebar.rail .sidebar-bottom>button{justify-content:center;padding:12px 0;gap:0}.rail-collapsed .sidebar.rail nav{gap:4px}.rail-collapsed .sidebar.rail nav button{min-height:44px;padding:10px 0}.rail-collapsed .sidebar.rail .sidebar-bottom>.sidebar-user{background:none;padding:8px 0}.rail-collapsed .rail-head{justify-content:center;gap:0}}@media(max-width:1100px)and (min-width:768px){.sidebar.rail{width:220px}.app-main{width:calc(100% - 252px);margin-left:252px}}@media(max-width:767px){.sidebar.rail{inset:10px auto 10px 10px;width:min(280px,calc(100% - 56px));border-radius:28px;padding:calc(18px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));transform:translate(calc(-100% - 24px))}.sidebar.rail.open{transform:translate(0)}.rail-toggle{display:none}.rail-head{margin-bottom:28px}.rail-close{display:grid;place-items:center;margin-left:auto;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:#ffffff2e;color:#fff}.rail-close svg{width:18px;height:18px}.menu-overlay{background:#17223573;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}}@media(prefers-reduced-motion:reduce){.sidebar.rail,.app-main{transition:none}}@media(min-width:768px){.topbar,.content{max-width:1680px;margin-left:auto;margin-right:auto}}.hero-week{display:none}@media(min-width:1100px){.home-hero{align-items:stretch;justify-content:space-between}.hero-copy{flex:1}.hero-week{position:relative;display:grid;align-content:start;gap:10px;width:300px;flex:none;margin:28px 28px 92px 0;padding:18px;border-radius:24px;background:#ffffffb8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 12px 28px #1f4a8c1a}}.hero-week-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--paint-fg-4b6286, #4b6286)}.hero-stat{display:grid;gap:4px;padding:10px 12px;border-radius:16px;background:var(--paint-bg-fff, #fff)}.hero-stat small{font-size:11px;color:var(--muted)}.hero-stat strong{display:flex;align-items:baseline;gap:6px;font-size:18px;letter-spacing:-.02em;color:var(--ink)}.hero-stat em{font-style:normal;font-size:12px;font-weight:600;letter-spacing:0;color:var(--muted)}.hero-bar{height:6px;border-radius:999px;background:var(--tint);overflow:hidden}.hero-bar>span{display:block;height:100%;border-radius:inherit;background:#22a35a;transition:width .4s}.hero-bar.todo>span{background:var(--blue)}@media(min-width:1400px){.quick-card{aspect-ratio:4 / 3.5}}.home-hero{background:#8cc4f8}.home-hero .hero-art img{width:100%;height:100%;object-fit:cover;object-position:70% 25%;display:block}.home-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(232,243,255,.92) 0%,rgba(232,243,255,.6) 38%,transparent 62%);pointer-events:none}@media(max-width:767px){.home-hero .hero-art img{object-position:100% 30%}.home-hero:before{background:linear-gradient(100deg,#e8f3fff0,#e8f3ffd1 55%,#e8f3ff59)}}.home-hero .hero-art{z-index:0}.home-hero:before{z-index:1}.home-hero .hero-copy,.home-hero .hero-week{z-index:2}.home-hero .hero-copy h1,.home-hero .hero-copy .eyebrow{text-shadow:0 0 2px rgba(240,247,255,.9),0 0 12px rgba(240,247,255,.95),0 0 28px rgba(240,247,255,.85)}@media(max-width:1100px){.home-hero:before{background:linear-gradient(100deg,#e8f3fff0,#e8f3ffcc 55%,#e8f3ff4d)}}.docs-heading{align-items:flex-start}.docs-heading>div{display:grid;gap:14px}.docs-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.docs-filters .segmented{display:inline-flex;gap:2px;background:var(--paint-bg-fff, #fff);box-shadow:0 8px 20px #1f4a8c0f}.docs-filters .segmented button{min-height:36px;padding:0 14px;border:0;background:none;font-size:13px;font-weight:650;color:var(--muted)}.docs-filters .segmented button.selected{background:var(--blue);color:#fff;box-shadow:0 6px 14px #1f6bff40}.docs-filters .class-pick{min-height:44px;padding:0 38px 0 16px;border:0;border-radius:999px;background-color:var(--paint-bg-fff, #fff);font-weight:700;font-size:13px;box-shadow:0 8px 20px #1f4a8c0f}.docs-steps{display:flex;align-items:stretch;gap:12px;margin-bottom:18px}.stage-stepper{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;padding:8px;list-style:none;border-radius:24px;background:var(--paint-bg-fff, #fff);box-shadow:var(--shadow)}.stage-stepper li{position:relative}.stage-stepper li+li:before{content:"";position:absolute;left:-14px;top:50%;width:28px;height:3px;border-radius:3px;background:var(--tint-strong);transform:translateY(-50%);z-index:1}.stage-stepper li.done+li:before{background:#22a35a}.stage-stepper button{width:100%;display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 14px;border:0;border-radius:18px;background:none;text-align:left;color:var(--ink)}.stage-stepper button:hover{background:var(--paint-bg-f5f9ff, #f5f9ff)}.stage-stepper li.current button{background:var(--tint)}.step-dot{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2px solid var(--tint-strong);background:var(--paint-bg-fff, #fff);font-size:13px;font-weight:800;color:var(--muted)}.step-dot svg{width:16px;height:16px}.stage-stepper li.done .step-dot{border-color:#22a35a;background:#22a35a;color:#fff}.stage-stepper li.current .step-dot{border-color:var(--blue);box-shadow:0 0 0 4px #1f6bff26}.stage-stepper li.current:not(.done) .step-dot{color:var(--blue)}.step-text{flex:1;min-width:0;display:grid}.step-text strong{font-size:14px}.step-text small{font-size:12px;color:var(--muted)}.step-thumbs{display:flex;flex:none}.step-thumbs img{width:30px;height:30px;border-radius:9px;object-fit:cover;border:2px solid var(--paint-border-fff, #fff);box-shadow:0 3px 8px #1f4a8c26}.step-thumbs img+img{margin-left:-12px}.step-thumbs img:nth-child(2){transform:rotate(6deg)}.step-thumbs img:nth-child(3){transform:rotate(-6deg)}.docs-panel{position:relative;min-height:260px}.add-files{position:relative;min-height:40px;padding:0 16px;gap:6px;cursor:pointer}.add-files input,.docs-empty input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.docs-panel .notice{display:flex;align-items:center;gap:8px}.upload-queue{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-bottom:18px}.upload-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:18px;background:var(--paint-bg-f7faff, #f7faff)}.upload-row .file-preview{flex:none;width:44px;height:44px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:var(--tint);color:var(--blue)}.upload-row .file-preview img{width:100%;height:100%;object-fit:cover}.upload-main{flex:1;min-width:0;display:grid;gap:6px}.upload-line{display:flex;align-items:baseline;gap:8px}.upload-line strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}.upload-line small{flex:none;font-size:11px;color:var(--muted)}.upload-bar{position:relative;height:26px;border-radius:999px;background:var(--paint-bg-e6edf7, #e6edf7);overflow:hidden}.upload-bar>span{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,var(--paint-bg-bfe0ff, #bfe0ff),#8cc4ff);transition:width .3s}.upload-bar em{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:700;color:var(--ink);text-shadow:0 0 6px rgba(255,255,255,.9)}.upload-wait,.upload-error{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.upload-error{color:var(--paint-fg-c2410c, #c2410c)}.upload-row.failed{background:var(--paint-bg-fff6ef, #fff6ef)}.upload-row .icon-button{flex:none;width:36px;height:36px;border-radius:50%}.upload-cancel{flex:none;display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:var(--paint-bg-dfe6f0, #dfe6f0);color:#fff}.upload-cancel:hover{background:#d9452b}.upload-cancel svg{width:14px;height:14px}.docs-empty{position:relative;display:grid;justify-items:center;gap:8px;padding:44px 20px;border:2px dashed var(--paint-border-cfdcec, #cfdcec);border-radius:24px;text-align:center;cursor:pointer;transition:background-color .2s,border-color .2s}.docs-empty:hover{background:var(--paint-bg-f7faff, #f7faff);border-color:var(--blue)}.docs-empty-plus{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--blue);color:#fff;box-shadow:0 10px 22px #1f6bff47}.docs-empty-plus svg{width:24px;height:24px}.docs-empty strong{font-size:15px;color:var(--ink)}.docs-empty small{font-size:12px;color:var(--muted)}.docs-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.docs-tile{position:relative;aspect-ratio:1;padding:0;border:0;border-radius:20px;overflow:hidden;background:var(--tint);box-shadow:0 8px 18px #1f4a8c14;animation:rise-in .4s cubic-bezier(.2,.8,.2,1) both;transition:transform .18s}.docs-tile:hover{transform:translateY(-3px)}.docs-tile img{width:100%;height:100%;object-fit:cover;display:block}.docs-tile .gallery-icon{display:grid;place-items:center;height:100%;color:var(--blue)}.docs-tile .gallery-icon svg{width:36px;height:36px}.docs-tile small{position:absolute;left:8px;bottom:8px;max-width:calc(100% - 16px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:3px 9px;border-radius:999px;background:#1722359e;color:#fff;font-size:11px;font-weight:600}.docs-play{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#ffffffe6;color:var(--blue);transform:translate(-50%,-50%);box-shadow:0 8px 18px #17223540}.docs-play svg{width:18px;height:18px;margin-left:2px}.drop-overlay{position:absolute;top:8px;right:8px;bottom:8px;left:8px;z-index:5;display:grid;place-content:center;justify-items:center;gap:10px;border:2px dashed var(--blue);border-radius:24px;background:#edf4ffeb;color:var(--blue);pointer-events:none}.drop-overlay svg{width:40px;height:40px}@media(max-width:767px){.docs-heading{flex-direction:row}.docs-steps{flex-direction:column;gap:10px}.stage-stepper{padding:6px}.stage-stepper button{flex-direction:column;gap:6px;min-height:0;padding:10px 4px;text-align:center}.step-text{justify-items:center}.step-thumbs{display:none}.stage-stepper li+li:before{top:27px}.add-files span{display:none}.add-files{width:40px;padding:0;justify-content:center}.docs-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}.docs-filters .class-pick{width:auto;min-width:150px}label.add-files{flex-direction:row;margin:0;color:#fff;font-size:13px}label.docs-empty{display:grid;margin:0}.sound-pick .icon-button.playing{background:var(--orange);box-shadow:0 0 0 5px #ff7a2f2e}.upload-main{grid-template-columns:minmax(0,1fr)}.upload-line,.upload-line strong{min-width:0}.upload-bar{min-width:0;width:100%}.upload-row{overflow:hidden}.health-panel .section-heading{align-items:flex-start}.health-result{display:grid;gap:12px}.health-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.health-summary span{display:grid;gap:2px;padding:12px 14px;border-radius:16px;font-size:12px;color:var(--muted)}.health-summary strong{font-size:20px;letter-spacing:-.02em}.health-summary .ok{background:var(--paint-bg-e4f6ec, #e4f6ec)}.health-summary .ok strong{color:var(--paint-fg-1a8a4c, #1a8a4c)}.health-summary .warn{background:var(--paint-bg-fff3e6, #fff3e6)}.health-summary .warn strong{color:var(--paint-fg-d9611e, #d9611e)}.health-ok{display:flex;align-items:center;gap:8px;margin:0;padding:12px 14px;border-radius:16px;background:var(--paint-bg-e4f6ec, #e4f6ec);color:var(--paint-fg-1a8a4c, #1a8a4c);font-weight:650}.health-block{border-radius:18px;background:var(--paint-bg-f7faff, #f7faff);padding:4px 12px 8px}.health-block summary{display:flex;align-items:center;gap:8px;padding:10px 2px;font-weight:700;cursor:pointer}.health-row{display:grid;grid-template-columns:90px minmax(0,1fr);column-gap:12px;row-gap:2px;padding:8px 2px;border-top:1px solid var(--line);font-size:13px}.health-row strong:before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:#22a35a}.health-row.warn strong:before{background:var(--orange)}.health-row small{color:var(--muted)}.health-row em{grid-column:2;font-style:normal;font-size:12px;color:var(--paint-fg-c2410c, #c2410c)}@media(max-width:767px){.health-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.health-row{grid-template-columns:1fr}.health-row em{grid-column:1}}.art-shadow{filter:drop-shadow(0 8px 10px rgba(31,74,140,.18))}.lite *,.lite *:before,.lite *:after{animation-duration:1ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:1ms!important;transition-delay:0s!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.lite .spin,.lite .empty-state>.spin{animation-duration:.9s!important;animation-iteration-count:infinite!important}.lite .art-shadow{filter:none}.lite .quick-caption,.lite .hero-week{background:#fffffff2}.lite .menu-overlay{background:#1722358c}.lite .home-hero .hero-copy h1,.lite .home-hero .hero-copy .eyebrow{text-shadow:0 0 10px rgba(240,247,255,.95)}.lite-setting{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}.lite-setting h2{margin:0 0 4px}.lite-setting p{margin:0;font-size:13px;max-width:520px}.lite-setting .segmented{display:inline-flex;gap:2px}.lite-setting .segmented button{min-height:38px;padding:0 16px;border:0;background:none;font-size:13px;font-weight:650;color:var(--muted)}.lite-setting .segmented button.selected{color:var(--blue)}.docs-tile{content-visibility:auto;contain-intrinsic-size:auto 170px}.health-invite{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;background:var(--tint);font-size:13px}.health-invite>span{flex:1;min-width:220px}.timetable-panel .section-heading{flex-wrap:wrap;gap:10px}.timetable-note{margin:-4px 0 16px;font-size:12.5px}.timetable{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px;align-items:start}.timetable-title{display:flex;align-items:center;gap:8px;min-width:0}.day-tag{padding:2px 9px;border-radius:999px;background:var(--blue);color:#fff;font-size:11px;font-weight:700}.day-tag.day-1{background:#1f6bff}.day-tag.day-2{background:#22a35a}.day-tag.day-3{background:#ff7a2f}.day-tag.day-4{background:#8a5cf6}.day-tag.day-5{background:#d63f6c}.timetable-card.today{background:var(--paint-bg-f2f7ff, #f2f7ff)}.timetable-card{display:grid;gap:10px;min-width:0;padding:14px 16px;border-radius:18px;background:var(--paint-bg-fff, #fff);border:1px solid var(--paint-border-e6edf8, #e6edf8);box-shadow:0 6px 14px #1f4a8c0f}.timetable-card.mine{box-shadow:inset 0 0 0 1.5px #ff7a2f8c,0 6px 14px #1f4a8c0f}.timetable-card.is-done{opacity:.62}.timetable-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.timetable-card header strong{font-size:15px;letter-spacing:-.01em}.timetable-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;color:var(--muted);font-size:12px}.timetable-meta em{padding:1px 7px;border-radius:999px;background:var(--paint-bg-fff4e5, #fff4e5);color:var(--paint-fg-b25a00, #b25a00);font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.04em}.timetable-card .crew-list{align-items:center;gap:4px}.timetable-card .crew-list>svg{margin-right:2px;color:var(--muted)}.timetable-card .crew-chip{padding:0;background:none}.timetable-card .crew-chip b{background:var(--paint-bg-eef4ff, #eef4ff)}.timetable-card .crew-chip.me b{background:var(--orange, #ff7a2f);color:#fff}.pdf-pages{display:grid;gap:10px;width:100%;min-width:0}.pdf-pages canvas{display:block;width:100%;height:auto;border-radius:6px;background:var(--paint-bg-fff, #fff);box-shadow:0 4px 14px #1f4a8c1f}.grade-table tr.absent{--absence-tint: #eef2ff;--absence-ink: #373b88;--absence-border: #c6cbea;background:var(--paint-bg-fff, #fff);box-shadow:inset 3px 0 0 var(--absence-border)}.grade-table tr.absence-alpa{--absence-tint: #fff0f2;--absence-ink: #9f2332;--absence-border: #edb8c0}.grade-table tr.absence-pindah{--absence-tint: #edf4ff;--absence-ink: #174b96;--absence-border: #bdcfee}.grade-table tr.absent td{background:transparent}.grade-table tr.absent:hover{background:var(--paint-bg-f8fafc, #f8fafc)}.student-cell>span:last-child{min-width:0}.absence-badge{display:inline-flex;align-items:center;width:fit-content;margin-top:3px;padding:0 6px;border:0;border-radius:6px;background:var(--paint-bg-ffe9d2, #ffe9d2);color:var(--paint-fg-a34a00, #a34a00);font:inherit;font-size:10px;font-weight:600;line-height:1.6;text-align:left;white-space:normal;max-width:100%;cursor:pointer}.absence-badge.alpa{background:var(--paint-bg-fde3e3, #fde3e3);color:var(--paint-fg-b42318, #b42318)}.absence-badge.izin{background:var(--paint-bg-ece6ff, #ece6ff);color:var(--paint-fg-5b3cc4, #5b3cc4)}.absence-badge svg{flex:none}.row-actions{display:inline-flex;align-items:center;gap:6px}.absence-toggle{width:34px;height:34px;color:var(--muted)}.absence-toggle.on{background:var(--paint-bg-ffe9d2, #ffe9d2);color:var(--paint-fg-a34a00, #a34a00)}.absence-form{display:grid;gap:10px;min-width:0;margin:0;padding:0;border:0}.attendance-file-control{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 14px;border:1px solid var(--paint-border-c3d4f4, #c3d4f4);border-radius:14px;background:var(--paint-bg-e5eeff, #e5eeff);color:var(--paint-fg-174b96, #174b96);font-weight:700}.attendance-file-control:focus-within{outline:2px solid var(--blue);outline-offset:2px}.attendance-file-control input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;padding:0;cursor:pointer}.attendance-upload-progress{display:grid;gap:8px;font-size:12px;color:var(--paint-fg-174b96, #174b96)}.attendance-upload-progress progress{width:100%;height:8px;accent-color:var(--blue)}.assistant-picker,.attendance-forward-log{display:grid;gap:10px;min-width:0}.assistant-options{max-height:220px;overflow-y:auto;overscroll-behavior:contain;display:grid;gap:6px}.assistant-options label{display:flex;flex-direction:row;align-items:center;gap:12px;min-height:48px;padding:10px 12px;border-radius:12px;background:var(--paint-bg-eef4fc, #eef4fc);color:var(--ink);cursor:pointer}.assistant-options input[type=checkbox]{width:18px;height:18px;min-height:18px;margin:0;padding:0;flex-shrink:0;accent-color:var(--blue)}.assistant-options label span,.attendance-forward-log>div{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}.assistant-options small,.attendance-forward-log small{color:var(--paint-fg-526078, #526078);font-size:12px}.attendance-forward-picker{min-width:0}.attendance-forward-picker summary{padding:12px 0;color:var(--paint-fg-174b96, #174b96);font-size:13px;font-weight:700;cursor:pointer}.attendance-forward-log h3{margin:4px 0;font-size:14px}.attendance-forward-log>div{padding:12px;background:var(--paint-bg-eef4fc, #eef4fc);border-radius:12px;font-size:13px}.attendance-history{width:fit-content;margin-bottom:16px}.absence-form .segmented{flex-wrap:wrap}.absence-label{font-size:12.5px;font-weight:700;color:var(--muted)}.absence-field{display:grid;gap:6px;font-size:12.5px;font-weight:700;color:var(--muted)}.absence-field select,.absence-field textarea{font-weight:400;color:var(--ink)}.absence-error{margin:0;color:var(--paint-fg-c62828, #c62828);font-size:13px}.nowrap{white-space:nowrap}.schedule-detail .incoming{grid-column:1 / -1}.incoming{display:grid;gap:6px;padding:10px 12px;border-radius:14px;background:var(--paint-bg-fff8ee, #fff8ee)}.incoming>small{display:flex;align-items:center;gap:6px;margin:0;color:var(--paint-fg-a34a00, #a34a00);font-weight:700}.incoming-row span{display:grid;gap:1px;min-width:0}.incoming-row strong{font-size:13px}.incoming-row small{display:block;margin:0;color:var(--muted);font-size:11.5px;font-weight:400;letter-spacing:0;text-transform:none}.incoming-row em{color:var(--ink);font-size:12px}.account-card .account-role{display:inline-flex;align-items:center;margin-top:7px;padding:3px 9px;border-radius:999px;background:var(--paint-bg-fff, #fff);border:1px solid var(--paint-border-d7e4f6, #d7e4f6);color:var(--paint-fg-26518d, #26518d);font-size:11px;font-weight:700}.row-actions .review-button{width:34px;height:34px;padding:0;min-height:0;border:1px solid var(--line);border-radius:50%;background:var(--paint-bg-fff, #fff);color:var(--paint-fg-1f6bff, #1f6bff)}.row-actions .review-button svg{width:18px;height:18px}.feedback-overlay{z-index:145}.feedback-confirm{position:fixed;z-index:146;top:50%;left:50%;transform:translate(-50%,-50%);width:min(400px,calc(100vw - 32px));padding:24px;border:1px solid var(--paint-border-e1e8f2, #e1e8f2);border-radius:26px;background:var(--paint-bg-fff, #fff);color:var(--paint-fg-172235, #172235);box-shadow:0 24px 80px #112b4f33}.feedback-confirm h2{margin:14px 0 8px;font-size:20px;line-height:1.35;letter-spacing:-.02em}.feedback-confirm p{margin:0;color:var(--paint-fg-52617a, #52617a);font-size:13px;line-height:1.65;overflow-wrap:anywhere}.feedback-symbol{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:14px;color:var(--paint-fg-1e5bbe, #1e5bbe);background:var(--paint-bg-edf4ff, #edf4ff)}.feedback-symbol.danger{background:var(--paint-bg-fff0ed, #fff0ed);color:var(--paint-fg-ac3227, #ac3227)}.feedback-symbol svg{width:26px;height:26px}.feedback-confirm .button-row{display:flex;gap:10px;margin-top:22px}.feedback-confirm .button-row>button{flex:1;min-height:44px}.feedback-confirm .feedback-danger{color:#fff;background:#b9372c;box-shadow:none}.feedback-confirm .feedback-danger:hover{background:#992a20}.flash-message{position:fixed;z-index:160;top:calc(16px + env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;width:max-content;max-width:min(500px,calc(100vw - 32px));padding:11px 12px 11px 15px;border-radius:18px;background:#18283d;color:#fff;box-shadow:0 12px 36px #14243b30;font-size:13px;line-height:1.5}.flash-message>svg{width:20px;height:20px;color:var(--paint-fg-9de3b8, #9de3b8);flex:none}.flash-message.error>svg{color:var(--paint-fg-ffc1b5, #ffc1b5)}.flash-message>span{min-width:0;overflow-wrap:anywhere}.flash-message button{display:grid;place-items:center;flex:none;width:28px;height:28px;min-height:0;padding:0;border:0;border-radius:50%;color:#e4ebf5;background:var(--paint-bg-ffffff18, #ffffff18)}.flash-message button svg{width:14px;height:14px}.icon-button.bell{position:relative}.bell-count{position:absolute;top:2px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#c8372a;color:#fff;font-size:10px;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px #fff}.notice-list{display:grid;gap:6px}.notice-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px;border:0;border-radius:14px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.notice-item:hover{background:var(--paint-bg-f3f7fd, #f3f7fd)}.notice-item.new{background:var(--paint-bg-eef5ff, #eef5ff)}.notice-icon{display:grid;flex:none;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--paint-bg-eef4ff, #eef4ff);color:var(--blue);font-size:18px}.notice-icon.absence{background:var(--paint-bg-ffe9d2, #ffe9d2);color:var(--paint-fg-a34a00, #a34a00)}.notice-text{display:grid;gap:2px;min-width:0}.notice-text strong{font-size:13.5px}.notice-text small{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--muted);font-size:12px}.notice-text em{color:var(--muted);font-size:11px;font-style:normal}.notice-detail{display:grid;gap:12px}.notice-detail p{margin:0;line-height:1.6}.sheet.compact.notice-sheet{width:420px;max-height:min(540px,78dvh)}.notice-sheet .sheet-header{padding:18px 18px 10px}.notice-sheet .sheet-header>.icon-button{width:34px;height:34px}.notice-sheet .sheet-body{padding:0 14px 16px}.notice-sheet .notice-toolbar{display:flex;justify-content:flex-end;padding:0 5px 8px}.notice-sheet .notice-delete{color:var(--paint-fg-a33d32, #a33d32);font-size:11px}.notice-sheet .notice-delete svg{width:14px;height:14px}.notice-sheet .notice-list{gap:5px}.notice-sheet .notice-row{display:flex;align-items:flex-start;min-width:0;border-radius:14px;background:var(--paint-bg-f7f9fd, #f7f9fd)}.notice-sheet .notice-row.new{background:var(--paint-bg-edf4ff, #edf4ff)}.notice-sheet .notice-item{flex:1;width:auto;min-width:0;min-height:0;padding:10px;gap:8px}.notice-sheet .notice-icon{width:28px;height:28px;border-radius:9px;font-size:16px}.notice-sheet .notice-text strong{font-size:12px;font-weight:650;line-height:1.45}.notice-sheet .notice-text small{-webkit-line-clamp:1;font-size:11px;line-height:1.5}.notice-sheet .notice-text em{font-size:10px}.notice-sheet .notice-dismiss{margin:8px 5px 0 0;width:30px;height:30px;flex:none;background:transparent;border:0;color:var(--paint-fg-6d7b90, #6d7b90)}.notice-sheet .notice-dismiss:hover{color:var(--paint-fg-a33d32, #a33d32);background:var(--paint-bg-fcefeb, #fcefeb)}.notice-sheet .notice-dismiss svg{width:15px;height:15px}.notice-detail-tools{display:flex;justify-content:space-between;align-items:center}.notice-detail-tools button{font-size:12px}.notice-sheet .notice-detail{padding:2px 5px;gap:12px}.notice-sheet .notice-detail>strong{font-size:14px}.notice-sheet .notice-detail p{font-size:13px;overflow-wrap:anywhere}.notice-sheet .notice-detail>small{font-size:11px}.notice-sheet .notice-detail>.button{width:100%}.notice-detail .notice-detail-title{margin:2px 0;color:var(--ink);font-size:17px;line-height:1.45;letter-spacing:-.02em}.notice-subject{display:grid;gap:12px;padding:14px;border:1px solid var(--paint-border-dce6f3, #dce6f3);border-radius:16px;background:var(--paint-bg-f5f8fd, #f5f8fd);min-width:0}.notice-person{display:grid;gap:4px;min-width:0}.notice-person>strong{font-size:13px;line-height:1.6;overflow-wrap:anywhere}.notice-person>span{font-size:11px;line-height:1.6;color:var(--paint-fg-43536c, #43536c)}.notice-subject dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0}.notice-subject dl>div{display:grid;align-content:start;gap:4px;min-width:0}.notice-subject .notice-fact-wide{grid-column:1 / -1}.notice-subject dt{color:var(--paint-fg-5b6b82, #5b6b82);font-size:10px}.notice-subject dd{margin:0;color:var(--paint-fg-243d61, #243d61);font-size:12px;font-weight:650;line-height:1.6;overflow-wrap:anywhere}.notice-message-block{display:grid;gap:4px;min-width:0}.notice-message-block>strong{color:var(--paint-fg-243d61, #243d61);font-size:12px}.notice-detail .notice-detail-message{white-space:pre-wrap;color:var(--paint-fg-43536c, #43536c);line-height:1.75}.notice-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 16px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;line-height:1.6;color:var(--paint-fg-5b6b82, #5b6b82)}.notice-detail-tools{gap:12px}.notice-detail-tools>button{min-height:40px}.notice-sheet .empty-state{min-height:0;padding:22px 8px}body:has(.notice-sheet[data-state=open]) .toast{visibility:hidden;pointer-events:none}@media(max-width:767px){.sheet.compact.notice-sheet{width:100%;max-width:100%;inset:auto 0 0;border-radius:24px 24px 0 0;max-height:76dvh}.notice-sheet .sheet-body{padding-bottom:calc(16px + env(safe-area-inset-bottom))}}.timetable-crew{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:6px 14px;margin:0;padding:0;list-style:none}.timetable-crew li{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:8px;font-size:12px;color:var(--ink)}.timetable-crew b{padding:2px 0;border-radius:999px;background:var(--paint-bg-eef4ff, #eef4ff);color:var(--blue);font-size:10.5px;text-align:center}.timetable-crew span{min-width:0;line-height:1.35}.timetable-crew li.me b{background:var(--orange, #ff7a2f);color:#fff}.timetable-crew li.me span{color:var(--paint-fg-a34a00, #a34a00);font-weight:600}.absence-makeup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.absence-makeup .absence-field:first-child{grid-column:1 / -1}.absence-makeup input{width:100%;min-width:0;font-weight:400;color:var(--ink)}.absence-slot{margin:-2px 0 0;padding:8px 10px;border-radius:10px;background:var(--paint-bg-eef5ff, #eef5ff);color:var(--paint-fg-1f4fae, #1f4fae);font-size:12.5px}.makeup-join{display:grid;gap:6px}.makeup-option{display:grid;gap:1px;width:100%;padding:8px 12px;border:1.5px solid var(--paint-border-dfe8f6, #dfe8f6);border-radius:12px;background:var(--paint-bg-fff, #fff);color:inherit;font:inherit;text-align:left;cursor:pointer}.makeup-option strong{font-size:13px}.makeup-option small{color:var(--muted);font-size:11.5px}.makeup-option.selected{border-color:var(--blue);background:var(--paint-bg-eef5ff, #eef5ff)}.select-toggle.on{background:var(--blue);color:#fff}.docs-tile .tile-check{position:absolute;top:8px;left:8px;z-index:2;display:grid;place-items:center;width:24px;height:24px;border:2px solid var(--paint-border-fff, #fff);border-radius:8px;background:#0f1e3c59;color:#fff;font-size:14px;box-shadow:0 2px 6px #0003}.docs-tile.chosen{outline:3px solid var(--blue);outline-offset:2px}.docs-tile.chosen .tile-check{border-color:var(--blue);background:var(--blue)}.docs-gallery.selecting .docs-tile:not(.chosen) img{opacity:.85}.select-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);width:min(820px,calc(100% - 48px));z-index:60;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px 10px 16px;border-radius:18px;background:var(--paint-bg-fff, #fff);box-shadow:0 10px 30px #1f4a8c2e}.select-count{display:flex;align-items:center;gap:10px;font-size:13.5px}.select-actions{display:flex;flex-wrap:wrap;gap:6px}.select-note{flex-basis:100%;color:var(--muted);font-size:12px}.button.small.danger{background:#e5484d;color:#fff}.button.small.danger:disabled{opacity:.45}.move-to{position:relative;flex-direction:row}.move-to select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.move-to.disabled{opacity:.45;pointer-events:none}.rename-form{display:grid;gap:10px}.rename-form input{font-weight:400;color:var(--ink)}@media(max-width:640px){.gallery-heading .heading-actions>.icon-button{display:none}.gallery-heading .heading-actions{display:flex;gap:8px}.select-toggle{width:44px;height:44px;padding:0;justify-content:center;border-radius:999px}.select-toggle span,html.selecting .bottom-nav{display:none}.select-bar{position:fixed;left:14px;right:14px;width:auto;transform:none;bottom:calc(13px + env(safe-area-inset-bottom));z-index:60;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;margin:0;padding:8px 8px 8px 14px;border-radius:20px}.select-count{display:grid;gap:0;font-size:12px;line-height:1.3}.select-count strong{font-size:16px}.select-actions .wide-only{display:none}.select-actions .button>span{text-transform:capitalize}.select-count .text-button{font-size:11.5px;padding:0}.select-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.select-actions .button{flex-direction:column;gap:2px;min-height:48px;padding:4px 2px;border:0;border-radius:14px;box-shadow:none;font-size:10.5px;white-space:nowrap}.select-actions .button svg{font-size:18px}.select-note{grid-column:1 / -1}}html.selecting .content{padding-bottom:130px}@media(max-width:640px){html.selecting .content{padding-bottom:calc(112px + env(safe-area-inset-bottom))}}.sidebar.rail nav{min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;flex-shrink:1}.sidebar.rail nav::-webkit-scrollbar{display:none;width:0;height:0}.sidebar.rail .sidebar-bottom{flex-shrink:0}.account-card .account-role{margin-left:10px;vertical-align:middle}.account-card>span:last-child{min-width:0}.send-bar>div:first-child{display:flex;flex-direction:column;gap:7px}.send-bar small{display:block;line-height:1.5}.row-actions .review-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-width:92px;height:36px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:650;flex:none}.incoming-count{display:inline-flex;align-items:center;min-height:24px;margin-inline-start:5px;border:1px solid var(--paint-border-edc291, #edc291);border-radius:999px;padding:3px 9px;background:var(--paint-bg-fff3e4, #fff3e4);color:var(--paint-fg-8b4300, #8b4300);font:inherit;font-size:11px;font-weight:700;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,transform .14s ease}.incoming-count:hover{border-color:var(--paint-border-db9d57, #db9d57);background:var(--paint-bg-ffe9cf, #ffe9cf)}.incoming-count:active{transform:scale(.97)}.incoming-count:focus-visible{outline:3px solid #1f6bff;outline-offset:2px}.incoming-detail+.incoming-detail{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.attendance-panel{padding:20px}.attendance-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr));gap:10px}.attendance-filters select,.attendance-search{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--paint-bg-f7faff, #f7faff);color:var(--ink)}.attendance-filters select{padding:10px}.attendance-search{display:flex;gap:8px;align-items:center;padding:0 12px}.attendance-search input{width:100%;min-width:0;border:0;background:transparent;padding:12px 0}.attendance-summary{margin:18px 0 8px;font-size:12px}.attendance-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:var(--paint-bg-fff, #fff);padding:16px 0;border:0;border-bottom:1px solid var(--line);color:var(--ink)}.attendance-row>span:first-child{min-width:0}.attendance-row strong{display:block;overflow-wrap:anywhere;font-size:14px}.attendance-row small{display:block;color:var(--muted);margin-top:5px;font-size:12px;overflow-wrap:anywhere}.attendance-row .pill{flex:none}.attendance-pindah{background:var(--paint-bg-fff0da, #fff0da);color:var(--paint-fg-874000, #874000)}.attendance-izin,.attendance-sakit{background:var(--paint-bg-e9efff, #e9efff);color:var(--paint-fg-315398, #315398)}.attendance-alpa{background:var(--paint-bg-fff0ee, #fff0ee);color:var(--paint-fg-ab302a, #ab302a)}.attendance-detail{display:grid;gap:14px;margin-top:10px}.attendance-detail>.pill{justify-self:start}.attendance-detail dl{margin:0;display:grid;gap:13px}.attendance-detail dl>div{display:grid;grid-template-columns:110px 1fr;gap:12px}.attendance-detail dt{color:var(--muted);font-size:13px}.attendance-detail dd{margin:0;color:var(--ink);font-size:14px;overflow-wrap:anywhere}.attendance-detail dd small{display:block;color:var(--muted);margin-top:4px}.attendance-note{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:var(--paint-bg-eef4fc, #eef4fc);border-radius:12px;font-size:13px}.attendance-evidence{display:grid;gap:12px}.attendance-evidence article{display:grid;gap:9px}.attendance-evidence a{display:flex;gap:8px;align-items:center;font-size:13px;overflow-wrap:anywhere;min-width:0}.attendance-evidence a svg{flex-shrink:0}.attendance-evidence iframe{border:1px solid var(--line);border-radius:14px;width:100%;height:330px;background:#fff}@media(max-width:900px){.attendance-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-search{grid-column:1 / -1}}@media(max-width:420px){.attendance-panel{padding:16px}.attendance-detail dl>div{grid-template-columns:88px 1fr}}.attendance-search{flex-direction:row}.attendance-search>svg{width:18px;height:18px;flex:none;color:var(--muted)}.attendance-complete{margin-top:20px}.attendance-resolved{margin:0;font-size:12px;color:var(--paint-fg-216b44, #216b44);background:var(--paint-bg-e4f5eb, #e4f5eb);border-radius:12px;padding:10px 12px}.login-page{background:var(--paint-bg-f1effb, #f1effb)}.login-art{background:radial-gradient(ellipse at 70% 30%,#c9bff8 0,transparent 65%),linear-gradient(145deg,#a69ce8,#c9c4ef 68%,var(--paint-bg-e7d5eb, #e7d5eb));border-radius:0 42px 42px 0}.login-art>.auth-brand{gap:10px;align-items:center;position:relative;z-index:2;width:max-content}.login-art>.auth-brand>.auth-wordmark{border:0;padding:0;margin:0;font-size:26px;letter-spacing:-1.2px;font-weight:750;color:var(--paint-fg-1c253e, #1c253e)}.auth-wordmark b{color:var(--paint-fg-e4754a, #e4754a)}.auth-brand .brand-mark{background:var(--paint-bg-fff9, #fff9);width:43px;height:43px;border-radius:14px;display:grid;place-items:center}.auth-brand .brand-mark img{width:30px;height:30px}.auth-course{position:absolute;top:49px;right:40px;color:var(--paint-fg-354063, #354063);font-size:11px;font-weight:700;letter-spacing:1px}.login-art-copy{margin-top:clamp(50px,9vh,120px);padding:0;margin-bottom:0;z-index:2}.login-art-copy h1{color:var(--paint-fg-222940, #222940);font-size:clamp(38px,4vw,60px);margin:0}.auth-orbit{position:absolute;width:320px;height:320px;border:1px solid var(--paint-border-ffffff65, #ffffff65);border-radius:50%;left:50%;bottom:64px;transform:translate(-50%)}.auth-illustration{position:absolute;width:min(88%,520px);height:350px;object-fit:contain;left:50%;bottom:14px;transform:translate(-50%);z-index:1}.auth-spark{position:absolute;z-index:2;display:grid;place-items:center;width:49px;height:49px;border-radius:18px;background:var(--paint-bg-ffffffc9, #ffffffc9)}.auth-spark svg{width:26px;height:26px}.auth-spark-check{left:12%;bottom:110px;color:var(--paint-fg-2a8564, #2a8564);transform:rotate(-12deg)}.auth-spark-star{right:13%;bottom:290px;color:var(--paint-fg-7b5fc2, #7b5fc2);transform:rotate(12deg)}.login-form{width:400px;border-radius:34px;padding:34px;box-shadow:0 22px 60px -30px #40366b35}.login-form h2{margin:0 0 25px;font-size:30px;color:var(--paint-fg-202439, #202439)}.login-form .segmented{background:var(--paint-bg-f0eef7, #f0eef7);margin-bottom:24px}.login-form .segmented button{color:var(--paint-fg-566078, #566078)}.login-form .segmented button.selected{color:var(--paint-fg-2e3054, #2e3054);background:var(--paint-bg-fff, #fff)}.login-form .auth-input{display:block;position:relative}.auth-input>svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:19px;height:19px;color:var(--paint-fg-70629c, #70629c);pointer-events:none;z-index:1}.login-form .auth-input>input{padding-left:44px}.login-form input{color:var(--paint-fg-202439, #202439);background:var(--paint-bg-f7f7fb, #f7f7fb);border-color:var(--paint-border-dedeea, #dedeea);border-radius:16px}.login-form input::placeholder{color:var(--paint-fg-677087, #677087);opacity:1}.login-form input:focus-visible{outline:2px solid #6555ac;outline-offset:2px}.login-form .button{color:#fff;background:#24243e;border-color:#24243e;box-shadow:0 8px 22px -12px #24243e70;border-radius:999px}.login-form .button:hover:not(:disabled){background:#393455}.login-form .password-field .icon-button{background:transparent;border:0;width:42px;height:42px;min-height:0;top:4px;right:3px;color:var(--paint-fg-5c5976, #5c5976)}@media(max-width:900px){.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100svh;padding:30px 18px;background:radial-gradient(ellipse at 10% 15%,var(--paint-bg-e2dcfa, #e2dcfa),transparent 65%),var(--paint-bg-eeedf7, #eeedf7)}.login-art{display:block;width:min(100%,440px);height:260px;flex:none;padding:24px;border-radius:34px 34px 0 0}.login-art>.auth-brand>.auth-wordmark{font-size:24px}.auth-course{top:39px;right:27px;font-size:10px}.login-art-copy{display:none}.auth-illustration{width:285px;max-width:85%;height:210px;top:64px;bottom:auto}.auth-orbit{width:230px;height:230px;top:95px;bottom:auto}.auth-spark{width:39px;height:39px;border-radius:14px}.auth-spark svg{width:22px;height:22px}.auth-spark-check{left:27px;bottom:57px}.auth-spark-star{right:25px;bottom:126px}.login-panel{width:min(100%,440px);min-height:0;padding:0;margin-top:-22px;z-index:3}.login-form{width:100%;padding:27px 25px 29px;border-radius:34px;background:linear-gradient(145deg,var(--paint-bg-fff, #fff) 70%,var(--paint-bg-fff4ef, #fff4ef))}.login-form h2{margin:0 0 22px;font-size:29px;letter-spacing:-1px}.login-form .segmented{margin-bottom:22px}.login-form .segmented button{min-height:40px;font-size:12px}.login-form input{font-size:16px;min-height:50px}.login-form label{font-size:12px;gap:7px}.login-form .button{min-height:50px;margin-top:8px;font-size:14px}.login-page.is-activating{justify-content:flex-start}.is-activating .login-art{height:205px}.is-activating .auth-illustration{height:158px;top:58px}}@media(min-width:901px)and (max-height:760px){.auth-illustration{height:270px;bottom:8px}.auth-orbit{width:240px;height:240px;bottom:24px}.login-art-copy{margin-top:45px}}@keyframes auth-float{0%,to{transform:translate3d(-50%,0,0)}50%{transform:translate3d(-50%,-9px,0)}}@keyframes auth-spark{0%,to{translate:0 0}50%{translate:0 -6px}}@keyframes auth-arrive{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:no-preference){html:not(.lite) .auth-illustration{animation:auth-float 6s ease-in-out infinite}html:not(.lite) .auth-spark{animation:auth-spark 5s ease-in-out infinite}html:not(.lite) .auth-spark-star{animation-delay:-2s}html:not(.lite) .login-form{animation:auth-arrive .4s ease both}}.login-art>.brand.auth-brand>.auth-wordmark:last-child:not(.brand-mark){border:0;padding:0;margin:0;font-size:26px;letter-spacing:-1.2px;font-weight:750;color:var(--paint-fg-1c253e, #1c253e)}@media(max-width:900px){.login-art>.brand.auth-brand>.auth-wordmark:last-child:not(.brand-mark){font-size:24px}.is-activating .auth-spark-star{bottom:68px}}@media(max-width:900px){html.auth-screen,html.auth-screen body,html.auth-screen #root{height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}html.auth-screen body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%}.login-page{position:fixed;inset:auto 0 auto;top:var(--auth-top, 0px);height:var(--auth-height, 100dvh);min-height:0;padding:0;justify-content:flex-start;overflow:hidden;overscroll-behavior:none}.login-art{width:100%;height:clamp(130px,calc(var(--auth-height, 100dvh) * .35),340px);padding:calc(22px + env(safe-area-inset-top)) 26px 20px;border-radius:0}.auth-illustration{top:calc(64px + env(safe-area-inset-top));width:clamp(230px,62vw,400px);max-width:85%;height:calc(100% - 65px)}.auth-orbit{top:80px}.auth-spark-check{bottom:46px}.auth-spark-star{bottom:105px}.login-panel{flex:1;min-height:0;width:100%;padding:0;margin-top:-22px;display:block;overflow:hidden}.login-form{width:100%;height:100%;min-height:0;padding:28px 24px calc(26px + env(safe-area-inset-bottom));border-radius:32px 32px 0 0;box-shadow:none;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scroll-padding-block:24px}.login-form>h2,.login-form>.segmented,.login-form>form,.login-form>.notice{max-width:480px;margin-inline:auto}.login-page.is-activating{justify-content:flex-start}.is-activating .login-art{height:clamp(100px,calc(var(--auth-height, 100dvh) * .22),205px)}.is-activating .auth-illustration{top:58px;height:calc(100% - 50px)}.is-activating .auth-spark-star{bottom:50px}.login-form .button{margin-bottom:4px}}.report-review-back{margin-bottom:18px}@media(max-width:900px){.is-activating .auth-spark{display:none}.login-page[data-compact=true] .login-art{height:calc(76px + env(safe-area-inset-top))}.login-page[data-compact=true] .login-panel{margin-top:0}.login-page[data-compact=true] .auth-illustration,.login-page[data-compact=true] .auth-orbit,.login-page[data-compact=true] .auth-spark{display:none}}.grade-table tr.absent .student-cell strong{color:var(--paint-fg-172439, #172439)}.grade-table tr.absent .student-cell small{color:var(--paint-fg-526078, #526078)}.grade-table tr.absent td[data-label]:before{color:var(--paint-fg-475569, #475569)}.grade-table tr.absent td input{background:var(--paint-bg-fff, #fff);border-color:var(--paint-border-b6c4d8, #b6c4d8);color:var(--paint-fg-233653, #233653)}.grade-table td input::placeholder{color:var(--paint-fg-596579, #596579);opacity:1}.grade-table .lms-mark.out{color:var(--paint-fg-a92320, #a92320)}.grade-table .lms-mark.in{color:var(--paint-fg-17643c, #17643c)}.grade-table tr.absent .score:not(.complete){color:var(--paint-fg-475569, #475569)}.grade-table tr.absent .absence-badge{display:inline-flex;align-items:center;min-height:0;height:auto;padding:4px 9px;margin-top:6px;border:1px solid var(--absence-border);border-radius:999px;background:var(--absence-tint);color:var(--absence-ink);font-size:11px;line-height:1.4;font-weight:700}.grade-table tr.absent .absence-badge>span{display:inline}.grade-table .row-actions .icon-button{color:var(--paint-fg-475569, #475569);border-color:var(--paint-border-c4cfdf, #c4cfdf);background:var(--paint-bg-fff, #fff)}.grade-table tr.absent .absence-toggle.on{background:var(--absence-tint);color:var(--absence-ink);border-color:var(--absence-border)}.grade-table .row-actions .review-button{color:var(--paint-fg-175fc7, #175fc7);border-color:var(--paint-border-c4cfdf, #c4cfdf)}@media(max-width:767px){.grade-context:has(.incoming-only){display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px}.grade-context-selectors.incoming-only{grid-template-columns:minmax(0,1fr)}.grade-context:has(.incoming-only) .grade-lms-status{margin:0;padding:0;border:0;min-width:0}.grade-context:has(.incoming-only) .wait-bar{grid-column:1 / -1}.grading-panel .grade-table tbody tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;padding:22px 18px}.grading-panel .grade-table td:first-child,.grading-panel .grade-table td:nth-last-child(2),.grading-panel .grade-table td:last-child{grid-column:1 / -1}.grading-panel .grade-table td[data-label]{min-width:0}.grading-panel .grade-table td[data-label]:before{margin-bottom:8px;font-size:12px;font-weight:650}.grading-panel .grade-table td input{width:100%;min-height:52px;height:52px;border-radius:14px;font-size:18px}.grading-panel .grade-table .lms-mark{display:block;min-height:18px;margin-top:7px;font-size:11px}.grading-panel .grade-table td:nth-last-child(2){display:flex;align-items:center;gap:12px;min-height:44px;margin-top:2px}.grading-panel .grade-table td:last-child{display:flex;justify-content:stretch;min-width:0;margin-top:2px}.grading-panel .grade-table .row-actions{display:grid;grid-template-columns:44px 44px minmax(0,1fr);align-items:center;gap:10px;width:100%}.grading-panel .grade-table .row-actions .icon-button{width:44px;min-width:44px;height:44px;min-height:44px}.grading-panel .grade-table .row-actions .review-button{width:100%;min-height:44px;padding:0 12px;justify-content:center;white-space:nowrap}.grading-panel .grade-table .incoming-finish-button,.grading-panel .grade-table .incoming-finished{grid-column:1 / -1;justify-self:start}.grading-panel .grade-table .incoming-finish-button{width:100%;min-height:46px;font-size:13px}.grading-panel .grade-table .student-cell{align-items:flex-start;gap:12px}.grading-panel .grade-table .student-cell strong{font-size:14px;line-height:1.45}.grading-panel .grade-table .student-cell small{margin-top:5px;font-size:12px;line-height:1.5}.grading-panel .grade-table tr.absent .absence-badge{min-height:40px;margin-top:8px;padding:8px 12px;font-size:12px}.incoming-grading-tabs,.incoming-status-tabs{width:100%;gap:8px;overflow:visible;padding:4px}.incoming-grading-tabs button,.incoming-status-tabs button{flex:1 1 0;min-height:44px;padding:9px 10px;white-space:normal;line-height:1.3}.grading-panel .button-row{gap:12px}}.list-filter-bar{min-width:0;margin-bottom:16px}.push-settings,.notification-composer{margin-bottom:20px;min-width:0}.push-settings h2,.notification-composer h2{display:flex;align-items:center;gap:8px}.push-settings>.muted{margin:12px 0;font-size:12px;line-height:1.6}.push-device-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.push-preferences{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.push-preferences label{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:44px;padding:10px;border-radius:12px;background:var(--paint-bg-f3f7fd, #f3f7fd)}.push-preferences input{width:18px;height:18px;min-height:18px;flex:none;margin:0;accent-color:var(--blue)}.notification-target-fields{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px}.notification-target-fields label,.notification-composer input,.notification-composer select{min-width:0;max-width:100%}.notification-recipient-preview{padding:14px;border:1px solid var(--paint-border-c2d7f5, #c2d7f5);border-radius:16px;background:var(--paint-bg-f2f7ff, #f2f7ff);overflow-wrap:anywhere}.notification-recipient-preview>strong{display:flex;align-items:center;gap:8px;font-size:13px}.notification-recipient-preview>div{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.notification-recipient-preview>p{color:var(--ink);font-weight:700}.notification-send-history{margin-top:20px}.notification-send-history summary{padding:10px 0;cursor:pointer;font-size:13px}.notification-send-history article{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.notification-send-history strong{font-size:13px}.timetable-card.is-notice-target,.schedule-item.is-notice-target{outline:2px solid #1f6bff;outline-offset:3px;scroll-margin-block:100px}@media(max-width:767px){.push-preferences{grid-template-columns:1fr;gap:8px}.push-device-actions>button{flex:1 1 140px}.notification-composer{padding:16px}}.list-filter-search-row{display:flex;align-items:center;gap:10px}.list-filter-search{display:flex;flex-direction:row;align-items:center;gap:9px;flex:1;min-width:0;padding:0 12px;border:1px solid var(--paint-border-d9e3f0, #d9e3f0);border-radius:14px;background:var(--paint-bg-f7faff, #f7faff)}.list-filter-search:focus-within{border-color:var(--blue)}.list-filter-search>svg{width:18px;height:18px;color:var(--paint-fg-526078, #526078)}.list-filter-search input{width:100%;min-width:0;height:44px;min-height:44px;padding:8px 0;border:0;border-radius:0;background:transparent;box-shadow:none}.list-filter-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:none;min-width:44px;min-height:44px;padding:0 10px;border:1px solid var(--paint-border-d9e3f0, #d9e3f0);border-radius:14px;background:var(--paint-bg-f7faff, #f7faff);color:var(--paint-fg-344760, #344760)}.list-filter-toggle.is-filtered{background:var(--paint-bg-edf4ff, #edf4ff);border-color:var(--paint-border-b6cdf4, #b6cdf4);color:var(--paint-fg-1752af, #1752af)}.list-filter-toggle span{font-size:11px;font-weight:700}.list-filter-summary{margin:7px 2px 0;font-size:11px;line-height:1.5;color:var(--paint-fg-526078, #526078)}.list-filter-fields{display:grid;gap:14px}.list-filter-fields label{min-width:0}.list-filter-fields select{width:100%;min-width:0;min-height:44px}.list-filter-actions{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:20px}.attendance-panel .attendance-summary{margin:10px 0 4px}.student-identity{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:5px;min-width:0}.student-identity>strong,.student-identity>small:not(.incoming-safe-status){flex-basis:100%}.student-cell .student-identity>small,.student-cell .student-identity>.absence-badge{margin-top:0}@media(max-width:767px){.grading-panel .grade-table tbody tr{gap:12px;padding:18px 16px}.grading-panel .grade-table .student-cell strong{font-size:12px;line-height:1.4}.grading-panel .grade-table .student-cell small{margin-top:0;font-size:11px}.grading-panel .grade-table .student-cell{gap:10px}.grading-panel .grade-table td input{height:44px;min-height:44px}.grading-panel .grade-table td[data-label]:before{font-size:11px;margin-bottom:6px}.grading-panel .grade-table .lms-mark{margin-top:5px;min-height:16px}.grading-panel .grade-table td:nth-last-child(2){min-height:34px}.grading-panel .grade-table tr.absent .absence-badge{min-height:32px;padding:5px 9px;font-size:11px;margin-top:0}.grading-panel .grade-table .row-actions{gap:8px}.grading-panel .grade-table .incoming-finish-button{min-height:44px}.attendance-panel,.reports-panel{padding:16px}.attendance-panel .attendance-history{margin-bottom:12px}.attendance-row{padding:13px 0}.attendance-row strong{font-size:12px;line-height:1.45}.attendance-row small{font-size:11px;line-height:1.5}.attendance-row .pill{font-size:10px;padding:5px 8px}.reports-panel .section-heading{margin-bottom:14px}.report-card{padding:14px;gap:6px;border-radius:18px}.report-card strong{font-size:12px}.report-card small{font-size:11px}.page-heading h1{font-size:clamp(24px,5vw,30px)}}@media(min-width:421px)and (max-width:767px){.grading-panel .grade-table tbody tr{grid-template-columns:repeat(4,minmax(0,1fr))}}.topbar-course.pickable{position:relative}.practicum-trigger{display:inline-flex;align-items:center;gap:6px;min-width:0;min-height:0;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.practicum-trigger strong{overflow:hidden;max-width:170px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.topbar-course .practicum-trigger svg{width:14px;height:14px;color:var(--muted);transition:transform .18s ease}.topbar-course.open .practicum-trigger svg{transform:rotate(180deg)}.practicum-menu{position:absolute;top:calc(100% + 10px);left:0;z-index:60;display:grid;gap:4px;min-width:270px;padding:8px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-strong);transform-origin:top left;animation:picker-in .16s ease-out}.practicum-menu>small{padding:6px 10px 4px;color:var(--muted);font-size:11px;font-weight:650}.practicum-option{display:grid;grid-template-columns:36px minmax(0,1fr) 18px;align-items:center;gap:10px;width:100%;min-height:52px;padding:7px 10px;border:0;border-radius:13px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.practicum-option:hover,.practicum-option:focus-visible,.practicum-option[aria-checked=true]{background:var(--tint);outline:none}.practicum-option:focus-visible{box-shadow:0 0 0 2px var(--blue) inset}.practicum-badge{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--tint-strong);color:var(--blue);font-size:12px;font-weight:800}.practicum-text{display:grid;gap:2px;min-width:0}.practicum-text strong,.practicum-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.practicum-text strong{font-size:13px}.practicum-text small{color:var(--muted);font-size:11px}.practicum-option>svg{width:18px;height:18px;color:var(--blue)}@keyframes picker-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}}@media(max-width:767px){.practicum-menu{position:fixed;top:var(--picker-top);right:12px;left:12px;min-width:0;transform-origin:top center}}@media(prefers-reduced-motion:reduce){.practicum-menu{animation:none}.topbar-course .practicum-trigger svg{transition:none}}.lite .practicum-menu{animation:none}.lab-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.wizard-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px}.wizard-group{margin:24px 0 10px;font-size:15px}.wizard-content .connection-setup>.panel{padding:0;background:none;border:0;box-shadow:none}.wizard-content .connection-setup .section-heading>h2,.wizard-content .connection-setup .section-heading .provider-title,.wizard-content .connection-setup .section-heading .heading-text h2{display:none}.other-practicums{display:grid;gap:8px;margin-bottom:18px}.other-practicums h2{margin:0}.other-class{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 14px;border:1px solid var(--paint-border-e6edf8, #e6edf8);border-radius:14px;background:var(--paint-bg-fff, #fff);color:inherit;font:inherit;text-align:left;cursor:pointer}.other-class span{display:grid;gap:1px;min-width:0}.other-class strong{font-size:13.5px}.other-class small{color:var(--muted);font-size:12px}.lab-list{display:grid;gap:14px;margin-bottom:14px}.lab-card{display:grid;gap:12px}.lab-setup{display:flex;flex-wrap:wrap;gap:6px}.lab-setup .pill{padding:4px 10px;font-size:12px}.lab-person{display:flex;align-items:center;justify-content:space-between;gap:10px}.lab-person span{display:grid;gap:1px;min-width:0}.lab-person small{color:var(--muted);font-size:12px}.lab-code{display:grid;gap:6px}.lab-code p{margin:0;font-size:13px}.lab-form,.lab-card .step-content{display:grid;gap:10px}.wizard-steps{display:grid;gap:10px;margin:0;padding:0;list-style:none}.wizard-step{display:grid;gap:12px}.wizard-steps>.wizard-step{margin:0;padding:0;gap:0;border-radius:20px;min-width:0}.wizard-step .wizard-head{padding:16px 20px;min-height:64px}.wizard-step-status{font-size:12px;color:var(--muted);white-space:nowrap}.wizard-head>svg{flex:none;transition:transform .16s ease}.wizard-head>svg.is-open{transform:rotate(180deg)}.wizard-content{padding:4px 20px 20px;max-width:920px;min-width:0}.wizard-content label{min-width:0}.wizard-content .wizard-file{overflow-wrap:anywhere}.setup-source-mode{width:fit-content;max-width:100%}.setup-class-picker summary{cursor:pointer;padding:8px 0;color:var(--blue-dark)}.setup-class-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.setup-class-options .wizard-class{min-height:40px;padding:4px}.wizard-file strong{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.setup-format{font-size:12px;font-weight:500;padding:4px 8px;border-radius:8px;background:var(--tint);color:var(--blue-dark)}.setup-module-hints{display:grid;gap:8px}.setup-module-hints summary{cursor:pointer;color:var(--blue-dark);padding:8px 0}.setup-warnings{border:1px solid var(--paint-border-d8b166, #d8b166);background:var(--paint-bg-fff9eb, #fff9eb);color:var(--paint-fg-754707, #754707);border-radius:12px;padding:12px;font-size:12px;overflow-wrap:anywhere}.setup-warnings summary{cursor:pointer;font-weight:600}.setup-warnings p{padding-top:8px}.setup-warnings ul{padding-left:18px}.setup-warning-text{color:var(--paint-fg-754707, #754707)}@media(max-width:540px){.wizard-step .wizard-head{padding:14px 16px;gap:10px}.wizard-head strong{font-size:14px}.wizard-step-status{font-size:10px}.wizard-content{padding:4px 16px 18px}}.wizard-head{display:flex;align-items:center;gap:12px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.wizard-head:disabled{color:var(--muted);cursor:default}.wizard-head strong{flex:1;min-width:0}.wizard-number{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--tint);color:var(--blue-dark);font-size:13px;font-weight:700}.wizard-step.done .wizard-number{background:var(--mint);color:var(--paint-fg-1d6b40, #1d6b40)}.wizard-form{display:grid;gap:10px}.wizard-form p{margin:0}.wizard-done{color:var(--paint-fg-1d6b40, #1d6b40);font-weight:600}.wizard-guide{display:grid;gap:8px;margin:0;padding-left:20px;list-style:decimal}.wizard-guide code{overflow-wrap:anywhere}.wizard-guide .copy-field{display:flex;align-items:center;gap:8px;margin:6px 0}.wizard-found{display:grid;gap:10px;padding-top:10px;border-top:1px solid var(--paint-border-e6edf8, #e6edf8)}.wizard-form label.wizard-class{display:flex;flex-direction:row;align-items:center;gap:10px}.wizard-class input{flex:none;width:18px;height:18px}.wizard-class span{display:grid;gap:1px;min-width:0}.wizard-problem{color:var(--paint-fg-c0271a, #c0271a)}.wizard-task{display:grid;grid-template-columns:minmax(0,1fr) 104px 130px;align-items:center;gap:8px}.wizard-task>span{display:grid;gap:1px;min-width:0;overflow-wrap:anywhere}@media(max-width:560px){.wizard-task{grid-template-columns:104px minmax(0,1fr)}.wizard-task>span{grid-column:1 / -1}}.rubric-page,.rubric-form,.rubric-session,.rubric-score{display:grid;gap:10px}.rubric-pupil{display:flex;align-items:center;gap:10px;width:100%;padding:10px 2px;border:0;border-top:1px solid var(--paint-border-e6edf8, #e6edf8);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.rubric-pupil>span:first-child{display:grid;flex:1;gap:1px;min-width:0}.rubric-pupil small{color:var(--muted);font-size:12px}.rubric-pupil em{font-style:normal;font-weight:700}.rubric-pupil .pill{flex:none;padding:4px 10px;font-size:12px}.rubric-pupil-card{border-top:1px solid var(--paint-border-e6edf8, #e6edf8);padding:8px 0 12px}.rubric-pupil-card .rubric-pupil{border:0}.rubric-pupil-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}.rubric-pupil-actions .button{min-height:38px;padding:8px 12px;font-size:12px;gap:6px}.rubric-attendance-label{color:var(--paint-fg-21588c, #21588c)!important}.rubric-lms-status{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px 0;color:var(--muted);font-size:12px}.rubric-lms-status:has(.wait-bar)>span{display:none}.rubric-lms-status .wait-bar{grid-column:1;grid-row:1}.rubric-lms-status small{grid-column:1 / -1;width:100%}.heic-thumb{display:contents}.rubric-save-receipt{display:grid;gap:6px;padding:16px;margin-bottom:16px;border:1px solid var(--paint-border-b3dbca, #b3dbca);border-radius:20px;background:var(--paint-bg-effaf4, #effaf4);color:var(--paint-fg-173b2b, #173b2b)}.rubric-save-receipt small{overflow-wrap:anywhere}.rubric-session{padding-top:10px;border-top:1px solid var(--paint-border-e6edf8, #e6edf8)}.rubric-session h3{display:flex;justify-content:space-between;margin:0}.rubric-levels{display:flex;flex-wrap:wrap;gap:6px}.rubric-levels button{padding:5px 9px;border:1px solid var(--paint-border-dbe4f3, #dbe4f3);border-radius:10px;background:var(--paint-bg-fff, #fff);color:inherit;font:inherit;font-size:12px;cursor:pointer}.rubric-levels button.active{border-color:var(--blue-dark);background:var(--tint);color:var(--blue-dark);font-weight:700}.rubric-total{display:flex;justify-content:space-between;margin:0}.rubric-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wizard-file{display:grid;gap:1px}.attendance-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:10px 2px;border-top:1px solid var(--paint-border-e6edf8, #e6edf8)}.attendance-row>span:first-child{display:grid;gap:1px;min-width:0}.attendance-row small{color:var(--muted);font-size:12px}.notice-tag{margin-right:6px;padding:1px 6px;border-radius:6px;background:var(--tint);color:var(--blue-dark);font-size:11px;font-style:normal}.rubric-handed{display:grid;gap:6px;min-width:0}.rubric-handed p{margin:0;overflow-wrap:anywhere}.gallery-icon small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:700}.rubric-page{padding:20px}.rubric-toolbar{display:grid;grid-template-columns:minmax(90px,.7fr) repeat(4,minmax(110px,1fr)) minmax(160px,1.5fr);align-items:end;gap:12px}.rubric-toolbar label{display:grid;gap:5px;min-width:0;font-size:12px}.rubric-toolbar input,.rubric-toolbar select{width:100%;min-width:0;height:44px;min-height:44px;padding:0 12px;border-radius:12px;font-size:14px}.rubric-search-row,.rubric-filters{display:contents}.rubric-toolbar select{padding-right:28px}.rubric-search-row>label{order:1}.rubric-filter-toggle{display:none}@media(max-width:1280px){.rubric-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.rubric-search-row>label{order:0}}@media(max-width:640px){.rubric-page{padding:16px}.rubric-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px}.rubric-toolbar input,.rubric-toolbar select{font-size:16px}.rubric-search-row{display:flex;grid-column:1 / -1;align-items:end;gap:8px}.rubric-search-row>label{flex:1}.rubric-filter-toggle{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--paint-border-d9e3f0, #d9e3f0);border-radius:12px;background:var(--paint-bg-f7faff, #f7faff);color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.rubric-filter-toggle[aria-expanded=true]{border-color:var(--blue);color:var(--blue-dark)}.rubric-filter-toggle span{font-weight:700}.rubric-filter-toggle svg{width:18px;height:18px}.rubric-filters{display:none;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:10px;border-top:1px solid var(--paint-border-e6edf8, #e6edf8)}.rubric-filters.is-open{display:grid}.rubric-filters>label:last-child{grid-column:1 / -1}}.attendance-source{padding:16px 20px;margin-bottom:16px}.attendance-source summary{cursor:pointer;font-size:13px;font-weight:650}.attendance-source[open]>:not(summary){display:block;margin-top:12px}.attendance-source a,.attendance-row .attendance-problem{color:var(--blue-dark)}.attendance-row .attendance-problem{color:var(--paint-fg-a43b13, #a43b13)}.attendance-source svg,.rubric-page>.muted svg{display:inline;vertical-align:middle}.attendance-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-source form{display:grid!important;gap:10px}.attendance-source form>.button{justify-self:start}.attendance-row .attendance-additional{color:var(--blue-dark);font-weight:600}.rubric-fieldset{border:0;margin:0;padding:0;min-width:0}.rubric-incoming{display:grid;gap:8px;padding:12px 0}.deep-group{display:grid;gap:8px}.deep-group h4{margin:8px 0 0}.deep-item{display:grid;gap:3px;padding:10px 12px;border-left:3px solid var(--tint);border-radius:10px;background:var(--paint-bg-f7f9fd, #f7f9fd);overflow-wrap:anywhere}.deep-item.error{border-left-color:#c0271a}.deep-item.warning{border-left-color:var(--paint-border-e0a100, #e0a100)}.deep-fix{color:var(--muted);font-size:13px}.deep-item .button{justify-self:start;margin-top:4px}.deep-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin:0}.deep-facts div{display:grid;gap:2px;padding:10px 12px;background:var(--tint);border-radius:8px}.deep-facts dt{color:var(--muted);font-size:12px}.deep-facts dd{margin:0;font-size:16px;font-weight:700;overflow-wrap:anywhere}.deep-sources{display:grid;gap:6px;font-size:13px}.deep-sources summary{cursor:pointer;font-weight:600}.deep-sources p{display:grid;grid-template-columns:16px minmax(0,1fr);gap:6px;margin:6px 0 0;color:var(--muted);overflow-wrap:anywhere}.deep-sources strong{color:var(--ink)}.deep-sources svg{margin-top:2px}.wait-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;width:100%;min-width:0;font-size:12px;color:var(--muted)}.wait-bar strong{color:var(--ink);font-variant-numeric:tabular-nums}.wait-bar div{grid-column:1 / -1;height:6px;overflow:hidden;background:var(--tint-strong);border-radius:999px}.wait-bar i{display:block;height:100%;background:var(--blue);border-radius:inherit;transition:width .2s linear}.empty-state .wait-bar{width:min(320px,100%)}@media(prefers-reduced-motion:reduce){.wait-bar i{transition:none}}:root[data-theme=dark]{--paint-bg-bcdcfb: var(--field);--paint-bg-bfe0ff: var(--field);--paint-bg-cfe4fb: var(--field);--paint-bg-d6eafd: var(--field);--paint-bg-d8e0eb: var(--field);--paint-bg-d8e7ff: var(--field);--paint-bg-dce4ff: var(--field);--paint-bg-dceaf9: var(--field);--paint-bg-dfe6f0: var(--field);--paint-bg-dfe8f4: var(--field);--paint-bg-e2dcfa: var(--field);--paint-bg-e2efff: var(--field);--paint-bg-e4f5eb: var(--field);--paint-bg-e4f6ec: var(--field);--paint-bg-e5eeff: var(--field);--paint-bg-e5efff: var(--field);--paint-bg-e5f6ec: var(--field);--paint-bg-e6edf7: var(--field);--paint-bg-e6f1ff: var(--field);--paint-bg-e6f4e8: var(--field);--paint-bg-e7d5eb: var(--field);--paint-bg-e7efff: var(--field);--paint-bg-e7f5e9: var(--field);--paint-bg-e8edff: var(--field);--paint-bg-e8f2ff: var(--field);--paint-bg-e8f5e9: var(--field);--paint-bg-e9eaf0: var(--field);--paint-bg-e9edf6: var(--field);--paint-bg-e9efff: var(--field);--paint-bg-e9f3ff: var(--field);--paint-bg-eaf1fb: var(--field);--paint-bg-eaf2ff: var(--field);--paint-bg-eaf3ff: var(--field);--paint-bg-eaf5ed: var(--field);--paint-bg-ece6ff: var(--field);--paint-bg-edf0f6: var(--field);--paint-bg-edf1ff: var(--field);--paint-bg-edf2ff: var(--field);--paint-bg-edf4ff: var(--field);--paint-bg-eeedf7: var(--field);--paint-bg-eef0f5: var(--field);--paint-bg-eef1f6: var(--field);--paint-bg-eef1fa: var(--field);--paint-bg-eef2ff: var(--field);--paint-bg-eef4fb: var(--field);--paint-bg-eef4fc: var(--field);--paint-bg-eef4ff: var(--field);--paint-bg-eef5ff: var(--field);--paint-bg-eff2ff: var(--field);--paint-bg-effaf4: var(--field);--paint-bg-f0eef7: var(--field);--paint-bg-f0f1f5: var(--field);--paint-bg-f0f6ff: var(--field);--paint-bg-f0faf4: var(--field);--paint-bg-f1effb: var(--field);--paint-bg-f1f4fd: var(--field);--paint-bg-f1f6fc: var(--field);--paint-bg-f2f6fc: var(--field);--paint-bg-f2f7ff: var(--field);--paint-bg-f3f0ff: var(--field);--paint-bg-f3f7fd: var(--field);--paint-bg-f4f6fb: var(--field);--paint-bg-f4f7fb: var(--field);--paint-bg-f4f8fc: var(--field);--paint-bg-f4f8fe: var(--field);--paint-bg-f4f9ff: var(--field);--paint-bg-f5f7fb: var(--field);--paint-bg-f5f8fd: var(--field);--paint-bg-f5f9ff: var(--field);--paint-bg-f6f7fb: var(--field);--paint-bg-f7f7fa: var(--field);--paint-bg-f7f7fb: var(--field);--paint-bg-f7f8fc: var(--field);--paint-bg-f7f9fd: var(--field);--paint-bg-f7f9ff: var(--field);--paint-bg-f7faff: var(--field);--paint-bg-f8fafc: var(--field);--paint-bg-f8faff: var(--field);--paint-bg-f8fbff: var(--surface);--paint-bg-f9faff: var(--field);--paint-bg-fafcff: var(--surface);--paint-bg-fbfdff: var(--surface);--paint-bg-fcefeb: var(--field);--paint-bg-fde3e3: var(--field);--paint-bg-ffd27a: var(--warning-bg);--paint-bg-ffe8df: var(--field);--paint-bg-ffe9cf: var(--warning-bg);--paint-bg-ffe9d2: var(--warning-bg);--paint-bg-fff: var(--surface);--paint-bg-fff0d6: var(--warning-bg);--paint-bg-fff0da: var(--field);--paint-bg-fff0e6: var(--field);--paint-bg-fff0ec: var(--field);--paint-bg-fff0ed: var(--field);--paint-bg-fff0ee: var(--field);--paint-bg-fff1d6: var(--warning-bg);--paint-bg-fff1da: var(--field);--paint-bg-fff1ef: var(--field);--paint-bg-fff3d6: var(--warning-bg);--paint-bg-fff3e4: var(--field);--paint-bg-fff3e6: var(--field);--paint-bg-fff4e5: var(--field);--paint-bg-fff4ef: var(--field);--paint-bg-fff4f2: var(--field);--paint-bg-fff5ca: var(--warning-bg);--paint-bg-fff6ef: var(--field);--paint-bg-fff7e9: var(--field);--paint-bg-fff8e8: var(--field);--paint-bg-fff8ee: var(--field);--paint-bg-fff9: var(--field);--paint-bg-fff9eb: var(--field);--paint-bg-ffffff15: var(--surface-glass);--paint-bg-ffffff18: var(--surface-glass);--paint-bg-ffffff21: var(--surface-glass);--paint-bg-ffffff24: var(--surface-glass);--paint-bg-ffffff60: var(--surface-glass);--paint-bg-ffffffa6: var(--surface-glass);--paint-bg-ffffffba: var(--surface-glass);--paint-bg-ffffffc9: var(--surface-glass);--paint-border-82abef: var(--line);--paint-border-84aff5: var(--line);--paint-border-91b6f4: var(--line);--paint-border-9fb2cc: var(--line);--paint-border-b3dbca: var(--line);--paint-border-b6c3f2: var(--line);--paint-border-b6c4d8: var(--line);--paint-border-b6cdf4: var(--line);--paint-border-b8c5eb: var(--line);--paint-border-b9e5ca: var(--line);--paint-border-bcd0ec: var(--line);--paint-border-c2d7f5: var(--line);--paint-border-c3d4ec: var(--line);--paint-border-c3d4f4: var(--line);--paint-border-c4cfdf: var(--line);--paint-border-c9d6e8: var(--line);--paint-border-cfd4df: var(--line);--paint-border-cfdcec: var(--line);--paint-border-d5deea: var(--line);--paint-border-d7e4f6: var(--line);--paint-border-d8b166: var(--line);--paint-border-d9dde6: var(--line);--paint-border-d9e3f0: var(--line);--paint-border-dae5f4: var(--line);--paint-border-db9d57: var(--line);--paint-border-dbe4f3: var(--line);--paint-border-dce0e9: var(--line);--paint-border-dce3ff: var(--line);--paint-border-dce4ff: var(--line);--paint-border-dce6f3: var(--line);--paint-border-dce6f4: var(--line);--paint-border-dde6f1: var(--line);--paint-border-dedeea: var(--line);--paint-border-dfe8f6: var(--line);--paint-border-e0a100: var(--line);--paint-border-e0e8f3: var(--line);--paint-border-e1e8f2: var(--line);--paint-border-e1e9f3: var(--line);--paint-border-e2e7f1: var(--line);--paint-border-e4e9f6: var(--line);--paint-border-e4eef9: var(--line);--paint-border-e6edf8: var(--line);--paint-border-edc291: var(--line);--paint-border-f1d35c: var(--line);--paint-border-f5dfa8: var(--line);--paint-border-f6c9c3: var(--line);--paint-border-f7d5cf: var(--line);--paint-border-ffc53d: var(--line);--paint-border-fff: var(--line);--paint-border-ffffff0d: var(--line);--paint-border-ffffff38: var(--line);--paint-border-ffffff65: var(--line);--paint-border-ffffff66: var(--line);--paint-border-ffffff99: var(--line);--paint-border-ffffffa6: var(--line);--paint-fg-111: var(--ink);--paint-fg-126337: var(--success);--paint-fg-13203a: var(--ink);--paint-fg-1654c7: var(--blue);--paint-fg-172033: var(--ink);--paint-fg-172235: var(--ink);--paint-fg-17233e: var(--ink);--paint-fg-172439: var(--ink);--paint-fg-173b2b: var(--ink);--paint-fg-174b96: var(--blue);--paint-fg-174d9d: var(--blue);--paint-fg-174fa5: var(--blue);--paint-fg-1752af: var(--blue);--paint-fg-175fc7: var(--blue);--paint-fg-1761ef: var(--blue);--paint-fg-17643c: var(--success);--paint-fg-182139: var(--ink);--paint-fg-195ac8: var(--blue);--paint-fg-1a8a4c: var(--success);--paint-fg-1c253e: var(--ink);--paint-fg-1d2539: var(--ink);--paint-fg-1d2d47: var(--blue);--paint-fg-1d416f: var(--blue);--paint-fg-1d5f3b: var(--success);--paint-fg-1d6b40: var(--success);--paint-fg-1d7a46: var(--success);--paint-fg-1e2534: var(--ink);--paint-fg-1e5bbe: var(--blue);--paint-fg-1f4fae: var(--blue);--paint-fg-1f6bff: var(--blue);--paint-fg-202439: var(--ink);--paint-fg-21588c: var(--blue);--paint-fg-216b44: var(--success);--paint-fg-222940: var(--ink);--paint-fg-22a35a: var(--success);--paint-fg-233653: var(--blue);--paint-fg-243047: var(--ink);--paint-fg-243349: var(--ink);--paint-fg-243d61: var(--blue);--paint-fg-243d62: var(--blue);--paint-fg-24467d: var(--blue);--paint-fg-253d7a: var(--blue);--paint-fg-263651: var(--blue);--paint-fg-26518d: var(--blue);--paint-fg-273751: var(--blue);--paint-fg-27673d: var(--success);--paint-fg-276d3d: var(--success);--paint-fg-284497: var(--blue);--paint-fg-28653b: var(--success);--paint-fg-294c7c: var(--blue);--paint-fg-2a8564: var(--success);--paint-fg-2b364c: var(--ink);--paint-fg-2c4cbd: var(--blue);--paint-fg-2c7a46: var(--success);--paint-fg-2d4ebe: var(--blue);--paint-fg-2e3054: var(--ink);--paint-fg-2e3c57: var(--blue);--paint-fg-2e4eb6: var(--blue);--paint-fg-2e6942: var(--success);--paint-fg-2f5a44: var(--success);--paint-fg-2f6744: var(--success);--paint-fg-304564: var(--blue);--paint-fg-304d9e: var(--blue);--paint-fg-304db2: var(--blue);--paint-fg-315398: var(--blue);--paint-fg-3153ba: var(--blue);--paint-fg-344760: var(--blue);--paint-fg-344fa6: var(--blue);--paint-fg-344fb4: var(--blue);--paint-fg-354063: var(--blue);--paint-fg-354f8e: var(--blue);--paint-fg-355ac7: var(--blue);--paint-fg-36557f: var(--blue);--paint-fg-3953ab: var(--blue);--paint-fg-3a2500: var(--danger);--paint-fg-3a465c: var(--muted);--paint-fg-3b55a1: var(--blue);--paint-fg-3c4e69: var(--blue);--paint-fg-3f4d66: var(--muted);--paint-fg-3f5cad: var(--blue);--paint-fg-425578: var(--blue);--paint-fg-43536c: var(--blue);--paint-fg-43546d: var(--blue);--paint-fg-4469a5: var(--blue);--paint-fg-475569: var(--muted);--paint-fg-475a75: var(--blue);--paint-fg-4766be: var(--blue);--paint-fg-482000: var(--danger);--paint-fg-4a2a00: var(--danger);--paint-fg-4b5568: var(--muted);--paint-fg-4b5870: var(--muted);--paint-fg-4b6286: var(--blue);--paint-fg-4d5b75: var(--muted);--paint-fg-4d607c: var(--blue);--paint-fg-4f5c72: var(--muted);--paint-fg-4f5f79: var(--blue);--paint-fg-515b6e: var(--muted);--paint-fg-515d73: var(--muted);--paint-fg-526078: var(--muted);--paint-fg-52617a: var(--muted);--paint-fg-52617b: var(--blue);--paint-fg-52677f: var(--blue);--paint-fg-53647c: var(--blue);--paint-fg-53647e: var(--blue);--paint-fg-55637b: var(--muted);--paint-fg-556682: var(--blue);--paint-fg-566078: var(--muted);--paint-fg-596579: var(--muted);--paint-fg-59667c: var(--muted);--paint-fg-5b3cc4: var(--blue);--paint-fg-5b6780: var(--muted);--paint-fg-5b6b82: var(--muted);--paint-fg-5b6d91: var(--blue);--paint-fg-5c5976: var(--muted);--paint-fg-5e6c83: var(--muted);--paint-fg-5f2a24: var(--danger);--paint-fg-5f6b80: var(--muted);--paint-fg-647086: var(--muted);--paint-fg-647392: var(--blue);--paint-fg-65708a: var(--muted);--paint-fg-65718a: var(--muted);--paint-fg-657390: var(--blue);--paint-fg-667c9a: var(--blue);--paint-fg-677087: var(--muted);--paint-fg-697487: var(--muted);--paint-fg-6b4e09: var(--warning);--paint-fg-6c8fc4: var(--blue);--paint-fg-6d7b90: var(--muted);--paint-fg-70629c: var(--blue);--paint-fg-715210: var(--warning);--paint-fg-754707: var(--danger);--paint-fg-7a5200: var(--danger);--paint-fg-7b5fc2: var(--blue);--paint-fg-7c4a12: var(--danger);--paint-fg-7d8aa0: var(--muted);--paint-fg-8090a8: var(--muted);--paint-fg-873c11: var(--danger);--paint-fg-874000: var(--danger);--paint-fg-8b4300: var(--danger);--paint-fg-8e5500: var(--danger);--paint-fg-92540f: var(--danger);--paint-fg-934122: var(--danger);--paint-fg-962015: var(--danger);--paint-fg-994523: var(--danger);--paint-fg-99e1a7: var(--success);--paint-fg-9aa8bd: var(--muted);--paint-fg-9c362c: var(--danger);--paint-fg-9c531b: var(--danger);--paint-fg-9de3b8: var(--success);--paint-fg-a33d32: var(--danger);--paint-fg-a34a00: var(--danger);--paint-fg-a43b13: var(--danger);--paint-fg-a43c22: var(--danger);--paint-fg-a5322a: var(--danger);--paint-fg-a92320: var(--danger);--paint-fg-ab302a: var(--danger);--paint-fg-ac2f28: var(--danger);--paint-fg-ac3227: var(--danger);--paint-fg-b25a00: var(--danger);--paint-fg-b42318: var(--danger);--paint-fg-b9c5d8: var(--muted);--paint-fg-c0271a: var(--danger);--paint-fg-c2410c: var(--danger);--paint-fg-c62828: var(--danger);--paint-fg-d9452b: var(--danger);--paint-fg-d9611e: var(--danger);--paint-fg-e4754a: var(--danger);--paint-fg-ffc1b5: var(--warning)}:root{--field: #f5f8fd;--surface-glass: rgba(255, 255, 255, .94);--success: #17643c;--success-bg: #e4f6ec;--danger: #b42318;--danger-bg: #fff0ed;--warning: #795000;--warning-bg: #fff5de;--nav-active: #172235;--nav-on-active: #ffffff}:root[data-theme=dark]{--ink: #edf3ff;--muted: #b1c0d5;--blue: #9ec1ff;--blue-dark: #b6ceff;--line: #405673;--surface: #172437;--field: #101d30;--surface-glass: rgba(23, 36, 55, .96);--tint: #223753;--tint-strong: #304a71;--mint: #173c30;--peach: #42301e;--success: #92e2b4;--success-bg: #163e30;--danger: #ffb1aa;--danger-bg: #47282e;--warning: #ffdb94;--warning-bg: #40321e;--nav-active: #b3ceff;--nav-on-active: #101c31;--shadow: 0 18px 44px rgba(0, 0, 0, .24);--shadow-strong: 0 22px 50px rgba(0, 0, 0, .36);background:#0d1523;color:var(--ink)}[data-theme=dark] body:before{background:radial-gradient(900px 700px at 20% 0%,#1a2e4b 0%,transparent 70%),linear-gradient(150deg,#0e1727,#101a2a)}[data-theme=dark] :is(input,select,textarea){background:var(--field);color:var(--ink);border-color:#607895}[data-theme=dark] :is(input,textarea)::placeholder{color:#a9b9d0;opacity:1}[data-theme=dark] :is(input,select,textarea):focus{background:#1a2c44;border-color:#9ec1ff}[data-theme=dark] :is(label,legend){color:var(--muted)}[data-theme=dark] .button{background:#2563eb;border-color:#2563eb;color:#fff}[data-theme=dark] .button:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}[data-theme=dark] .button.secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}[data-theme=dark] .button.secondary:hover:not(:disabled){background:var(--tint)}[data-theme=dark] :is(.icon-button,.segmented,.topbar-course,.user-chip){background:var(--field);color:var(--ink);border-color:var(--line)}[data-theme=dark] .segmented button{color:var(--muted)}[data-theme=dark] .segmented button.selected{background:#304a71;color:#e6efff}[data-theme=dark] .topbar{background:transparent}[data-theme=dark] :is(.bottom-nav,.sheet,.dialog-content,.viewer,.account-card,.profile-panel,.panel){background:var(--surface);color:var(--ink)}[data-theme=dark] .bottom-nav .fab{background:#ff7a2f;color:#142038}[data-theme=dark] .bottom-nav .active:not(.fab){color:#aecbff}[data-theme=dark] .user-avatar{color:#3b2609}[data-theme=dark] :is(.pill,.attendance-tag,.status-pill){border-color:var(--line)}[data-theme=dark] :is(.pill.success,.attendance-tag.hadir){background:var(--success-bg);color:var(--success)}[data-theme=dark] :is(.pill.danger,.pill.error,.attendance-tag.alpa){background:var(--danger-bg);color:var(--danger)}[data-theme=dark] :is(.notice,.setup-warnings){background:var(--warning-bg);color:var(--warning);border-color:#8a6a32}[data-theme=dark] :is(.notice.error,.feedback-flash.error){background:var(--danger-bg);color:var(--danger);border-color:#92515c}[data-theme=dark] :is(.feedback-flash,.toast){background:#263c57;color:#edf3ff;border-color:var(--line)}[data-theme=dark] .home-hero{background:#15263f}[data-theme=dark] .hero-art{opacity:.65}[data-theme=dark] .hero-copy{background:transparent}[data-theme=dark] :is(.hero-copy h1,.hero-copy .eyebrow,.hero-copy .hero-chips,.hero-week-title){color:var(--ink);text-shadow:none}[data-theme=dark] :is(.hero-chip,.hero-chips span,.hero-stat){background:#101d30f2;color:var(--ink)}[data-theme=dark] :is(.hero-week,.quick-caption){background:var(--surface-glass);color:var(--ink)}[data-theme=dark] .home-sheet{background:var(--surface)}[data-theme=dark] .login-page{background:radial-gradient(ellipse at 10% 20%,#2c2954,transparent 70%),#101726;color:var(--ink)}[data-theme=dark] .login-art{background:linear-gradient(140deg,#403b74,#262743)}[data-theme=dark] :is(.login-form,.login-panel){background:#172136;color:var(--ink)}[data-theme=dark] :is(.login-form h1,.login-form h2,.login-art-copy h1,.brand){color:var(--ink)}[data-theme=dark] .login-submit{background:#bac5ff;color:#10192b}[data-theme=dark] .dialog-overlay{background:#000610b8}[data-theme=dark] :is(.viewer-header,.viewer-body,.viewer-text){background:var(--field);color:var(--ink)}[data-theme=dark] :is(.viewer-docx,.docx-wrapper){background:#c7cbd1;color:#172033;color-scheme:light}[data-theme=dark] .viewer-docx :is(p,span,td,h1,h2,h3){color:revert}[data-theme=dark] .pdf-pages canvas{background:#fff}.theme-setting h2{margin-bottom:14px}.theme-options{display:flex;gap:4px;flex-wrap:wrap}.theme-options button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.theme-options svg{width:18px;height:18px}.theme-compact .theme-options{width:100%}.theme-compact .theme-options button{flex:1}.theme-icons .theme-options{width:auto;flex-wrap:nowrap;padding:3px}.theme-icons .theme-options button{width:36px;min-height:36px;padding:8px}.auth-theme{position:absolute;top:18px;right:18px;z-index:5}.auth-theme .segmented{background:var(--surface-glass);border:1px solid var(--line)}.folder-preview div{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid var(--line)}.folder-preview small{color:var(--muted)}.check-issues{font-weight:400;font-size:12px;line-height:1.7}.check-issues summary{cursor:pointer;color:var(--blue-dark)}.check-issues li{padding:6px 0;overflow-wrap:anywhere}.check-issues ul,.invite-flow{margin:8px 0;padding-left:18px}.setup-advanced,.setup-operations{margin-top:16px}.setup-advanced>summary,.setup-operations>summary{cursor:pointer;padding:12px 0;color:var(--muted);font-weight:600}.setup-advanced .panel{padding:16px;margin:10px 0 0;border:1px solid var(--line);box-shadow:none}@media(max-width:767px){.auth-theme{top:12px;right:12px}}[data-theme=dark] .hero-action{background:#2563eb;color:#fff}[data-theme=dark] .tone-todo .hero-action{background:#ff7a2f;color:#302000}[data-theme=dark] .tone-live .hero-action{background:#18713f;color:#fff}[data-theme=dark] .user-avatar{background:linear-gradient(135deg,#ffd27a,#ff9d5c);color:#432900}[data-theme=dark] .bottom-nav button.fab{color:#142038}:root[data-theme=light]{--blue: #1c5fd5;--blue-dark: #174caa}[data-theme=light] :is(.text-button,.segmented button.selected){color:#174caa}[data-theme=light] :is(.schedule-group,.status-badge.done){color:#17643c}[data-theme=light] .schedule-item.is-done .schedule-info>strong{color:#52647f}[data-theme=light] .tone-todo .eyebrow{color:#713008}.bottom-nav button.fab,.bottom-nav button.fab[aria-current=page],.timetable-crew li.me b,.timetable-card .crew-chip.me b{color:#302000}.timetable-card.is-done{opacity:1}.day-tag.day-2{background:#18713f}.day-tag.day-3{color:#302000}[data-theme=dark] .day-tag{background:#2563eb;color:#fff}[data-theme=dark] .day-tag.day-2{background:#18713f}[data-theme=dark] .day-tag.day-3{background:#ff7a2f;color:#302000}[data-theme=dark] .day-tag.day-4{background:#7243d0}[data-theme=dark] .day-tag.day-5{background:#b52c57}[data-theme=dark] .day-tile b{background:#2563eb;color:#fff}[data-theme=dark] .day-tile{opacity:1}[data-theme=dark] .bottom-nav button.fab.active{box-shadow:0 0 0 5px var(--surface),0 12px 24px #0000004d}[data-theme=dark] .home-hero:before{background:linear-gradient(90deg,#0d192ccc,#0d192c1f 75%)}.day-tile.day-2 small{background:#18713f}.day-tile.day-3 small{color:#302000}[data-theme=dark] .day-tile small{background:#2563eb;color:#fff}[data-theme=dark] .day-tile.day-2 small{background:#18713f}[data-theme=dark] .day-tile.day-3 small{background:#ff7a2f;color:#302000}[data-theme=dark] .day-tile.day-4 small{background:#7243d0}[data-theme=dark] .day-tile.day-5 small{background:#b52c57}@media(max-width:767px){.home-hero.hero-wad .hero-art img{object-position:65% 35%}[data-theme=dark] .home-hero:before{background:linear-gradient(100deg,#0d192cdb,#0d192c73 60%,#0d192c0d)}}@media(max-width:380px){.login-art>.brand.auth-brand>.auth-wordmark:last-child:not(.brand-mark){font-size:21px}.auth-brand .brand-mark{width:32px;height:32px}.auth-theme .theme-options button{width:34px;min-height:40px}}[data-theme=dark] .art{--art-paper: #3d5271;--art-line: #718aac;--art-paper-line: #827baf;--art-solid: #142238;--art-outline: #d3e0f2;--art-photo-green: #3d715b;--art-photo-blue: #3d648a;--art-calendar-cell: #79513e}[data-theme=dark] .art-grading{--art-bg-start: #1c304a;--art-bg-end: #243d5b;--art-bg-orbit: #355d88}[data-theme=dark] .art-camera{--art-bg-start: #19392f;--art-bg-end: #23463d;--art-bg-orbit: #3b765d;--art-paper: #496b60}[data-theme=dark] .art-calendar{--art-bg-start: #392b29;--art-bg-end: #4a3630;--art-bg-orbit: #81503a;--art-paper: #4d4648}[data-theme=dark] .art-folder{--art-bg-start: #2c2845;--art-bg-end: #383252;--art-bg-orbit: #655286;--art-paper: #5c527e}[data-theme=dark] .art-class{--art-bg-start: #21364c;--art-bg-end: #293e56;--art-bg-orbit: #41698e}[data-theme=dark] .quick-card{background:#22354d;border:1px solid #405673;box-shadow:0 10px 26px #00000021}[data-theme=dark] .quick-caption{background:#142133f2;border:1px solid rgba(128,159,201,.18)}[data-theme=dark] .hero-art{opacity:.82}[data-theme=dark] .home-hero:before{background:linear-gradient(90deg,#0d192cf0,#0d192c73 48%,#0d192c3d 78%)}@media(max-width:767px){[data-theme=dark] .topbar{background:linear-gradient(180deg,#1a2c42fa,#1a2c42ed 78%,#1a2c4280);border-bottom:0}[data-theme=dark] .home-hero:before{background:linear-gradient(100deg,#0d192ce6,#0d192c99 60%,#0d192c2e)}}[data-theme=light] .docs-filters .segmented button.selected{color:#fff}.art stop{transition:stop-color .22s ease}.art [fill]{transition:fill .22s ease}@media(prefers-reduced-motion:reduce){.art stop,.art [fill]{transition:none}}.sidebar.rail.island-rail{--rail-ink: var(--ink);display:flex;flex-direction:column;width:244px;padding:16px 17px;border-radius:28px;background:var(--surface-glass);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);overflow:visible}.island-head{display:flex;align-items:center;gap:12px;flex:none}.island-head .rail-brand{display:block;min-width:0;color:var(--ink)}.island-head .rail-brand strong{font-size:14px;letter-spacing:-.03em}.island-collapse{position:relative;display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;padding:0;border:1px solid var(--line);border-radius:17px;background:var(--field);color:var(--ink);transition:background .18s,border-color .18s,box-shadow .18s}.island-collapse img{display:block;width:28px;height:28px;object-fit:contain}.island-collapse:hover{background:var(--tint);border-color:var(--blue)}.collapse-hint{position:absolute;right:-6px;bottom:-4px;width:17px;height:17px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);opacity:0;transition:opacity .16s;pointer-events:none}.collapse-hint svg{width:10px;height:10px}.island-collapse[aria-expanded=true] .collapse-hint svg{transform:rotate(180deg)}.island-collapse:hover .collapse-hint,.island-collapse:focus-visible .collapse-hint{opacity:1}.sidebar.rail.island-rail .island-navigation{display:flex;flex-direction:column;justify-content:center;flex:1;gap:8px;min-height:0;padding:24px 0;overflow:visible}.sidebar.rail.island-rail :is(nav button,.sidebar-bottom>button){position:relative;display:flex;align-items:center;flex:none;width:100%;min-height:48px;padding:11px 12px;gap:12px;border:1px solid transparent;border-radius:16px;background:transparent;color:var(--ink);box-shadow:none;white-space:normal;text-align:left;transform:none;transition:background .18s,color .18s,border-color .18s}.sidebar.rail.island-rail :is(nav button,.sidebar-bottom>button)>svg{display:block;flex:0 0 22px;width:22px;height:22px;margin:0}.sidebar.rail.island-rail :is(nav button,.sidebar-bottom>button):hover{background:var(--tint);color:var(--ink);box-shadow:none}.sidebar.rail.island-rail :is(nav button,.sidebar-bottom>button).active{background:var(--nav-active);color:var(--nav-on-active);box-shadow:none}.sidebar.rail.island-rail button.active:before{display:none}.sidebar.rail.island-rail .rail-label{display:block;flex:1;min-width:0;text-align:left;line-height:1.45}.island-group{position:relative;flex:none}.sidebar.rail.island-rail .island-group-toggle .group-caret{width:14px;height:14px;flex:0 0 14px;margin-left:auto;transition:transform .2s}.island-group.expanded .group-caret{transform:rotate(180deg)}.island-group.expanded>.island-group-toggle:not(.active){background:var(--tint)}.island-submenu{display:grid;gap:4px;margin:6px 0 6px 22px;padding-left:10px;border-left:1px solid var(--line);animation:submenu-reveal .16s ease-out}.sidebar.rail.island-rail .island-submenu .island-link{min-height:44px;padding:10px;font-size:12px;border-radius:13px}.sidebar.rail.island-rail .island-submenu .island-link:not(.active){color:var(--muted)}.island-flyout-title{display:none}.sidebar.rail.island-rail .island-bottom{display:grid;flex:none;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.sidebar.rail.island-rail .sidebar-user,.sidebar.rail.island-rail .sidebar-user:hover{background:var(--field);border-radius:18px;min-height:56px;padding:8px 10px;color:var(--ink)}.sidebar.rail.island-rail .sidebar-user strong{color:var(--ink)}.sidebar.rail.island-rail .sidebar-user small{color:var(--muted)}[data-theme=dark] .island-rail{--nav-active: #2b4569;--nav-on-active: #edf3ff}[data-theme=dark] .island-collapse,[data-theme=dark] .topbar .mobile-menu{background:#d6e3f2;border-color:#b2c8e1}[data-theme=dark] .island-collapse:hover{background:#e4edfa;border-color:#d6e3f2}@keyframes submenu-reveal{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(min-width:768px){.app-main{width:calc(100% - 280px);margin-left:280px}.rail-collapsed .app-main{width:calc(100% - 120px);margin-left:120px}.app:not(.rail-collapsed) .island-rail .island-navigation{overflow-y:auto;overflow-x:hidden;justify-content:flex-start;scrollbar-width:none}.app:not(.rail-collapsed) .island-navigation>:first-child{margin-top:auto}.app:not(.rail-collapsed) .island-navigation>:last-child{margin-bottom:auto}.island-navigation::-webkit-scrollbar{display:none}.rail-collapsed .sidebar.rail.island-rail{width:84px;padding-inline:17px}.rail-collapsed .island-head{justify-content:center;gap:0}.rail-collapsed .island-head .rail-brand{display:none}.rail-collapsed .sidebar.rail.island-rail .island-navigation{align-items:flex-start;gap:10px}.rail-collapsed .island-group{width:48px}.rail-collapsed .sidebar.rail.island-rail :is(.island-link,.sidebar-user){display:grid;place-items:center;justify-content:center;width:48px;height:48px;min-height:48px;padding:0;gap:0;margin-inline:0;border-radius:16px}.rail-collapsed .sidebar.rail.island-rail :is(.island-link,.sidebar-user)>.rail-label,.rail-collapsed .sidebar.rail.island-rail .island-group-toggle .group-caret{display:none}.rail-collapsed .sidebar.rail.island-rail .sidebar-user{background:transparent}.rail-collapsed .sidebar.rail.island-rail .sidebar-user:hover{background:var(--tint)}.rail-collapsed .island-submenu{position:fixed;left:var(--submenu-left, 112px);top:var(--submenu-top, 16px);width:238px;max-height:calc(100dvh - 24px);max-height:calc(100vh - 24px);overflow-y:auto;margin:0;padding:10px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-strong);z-index:125}.rail-collapsed .sidebar.rail.island-rail .island-submenu .island-link{display:flex;align-items:center;justify-content:flex-start;width:100%;height:auto;min-height:44px;margin:0;padding:10px 12px;gap:10px;border-radius:13px}.rail-collapsed .sidebar.rail.island-rail .island-submenu .island-link>.rail-label{display:block;width:auto;opacity:1;pointer-events:auto}.rail-collapsed .island-flyout-title{display:block;padding:6px 12px 10px;color:var(--muted);font-size:11px}}@media(max-width:767px){.sidebar.rail.island-rail{width:min(306px,calc(100% - 36px));inset:10px auto 10px 10px;padding:16px 14px}.sidebar.rail.island-rail .island-navigation{justify-content:flex-start;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;margin-top:16px;gap:6px}.sidebar.rail.island-rail .island-navigation::-webkit-scrollbar{display:none}.sidebar.rail.island-rail:not(.open){visibility:hidden}.topbar .mobile-menu img{display:block;width:26px;height:26px;object-fit:contain}}@media(max-height:620px){.sidebar.rail.island-rail .island-navigation{justify-content:flex-start;padding-block:16px}}@media(prefers-reduced-motion:reduce){.island-submenu{animation:none}.island-rail button,.island-rail .group-caret{transition:none}}
