/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:host,:root{--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;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-webkit-text-size-adjust:100%;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,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.hidden{display:none}.table{display:table}.blur{--tw-blur:blur(8px)}.blur,.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,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}.campus-workspace label.checkbox-label{flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;margin-bottom:16px;display:flex}.campus-workspace label.checkbox-label input[type=checkbox]{flex:0 0 17px;width:17px;min-width:17px;height:17px;margin:0;padding:0}.campus-workspace{gap:22px;min-width:0;display:grid}.button-row,.campus-tabs,.campus-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.campus-toolbar{justify-content:space-between}.campus-toolbar label{color:var(--muted);align-items:center;gap:12px;display:flex}.campus-tabs{border-bottom:1px solid var(--line);gap:24px}.campus-tabs button{color:var(--muted);border-bottom:3px solid #0000;padding:12px 0}.campus-tabs button.active{border-color:var(--primary);color:var(--primary);font-weight:600}.campus-stats{border-bottom:1px solid var(--line);gap:40px;padding:4px 0 20px;display:flex}.campus-stat{align-items:baseline;gap:8px;display:flex}.campus-stat svg{color:var(--muted);align-self:center;width:16px}.campus-stat strong{letter-spacing:-.04em;font-size:1.75rem;font-weight:650}.campus-stat span{color:var(--muted)}.campus-panel{background:var(--paper);border:1px solid var(--line);border-radius:10px;min-width:0;padding:24px}.campus-panel h2{font-size:1.25rem}.campus-panel h3{margin:20px 0 12px;font-size:1rem}.campus-panel p{color:var(--muted);margin:8px 0 18px;font-size:.875rem}.campus-panel .section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.campus-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;min-width:0;display:grid}.campus-columns>div{overflow-wrap:anywhere;min-width:0}.campus-columns .btn{white-space:normal;max-width:100%}.campus-panel form{gap:12px;margin:14px 0 24px;display:grid}.campus-panel label{gap:6px;font-size:.875rem;display:grid}.campus-workspace input:not([type=checkbox]),.campus-workspace select{border:1px solid var(--line);background:var(--bg);border-radius:9px;width:100%;min-width:0;max-width:100%;padding:10px 12px}.campus-toolbar select{width:auto;min-width:180px}.campus-workspace table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.campus-workspace th{color:var(--muted);white-space:nowrap;background:#fafbfc;font-weight:500}.campus-workspace td,.campus-workspace th{border-bottom:1px solid var(--line);padding:14px 12px}.source-catalog-table td:first-child,.source-catalog-table th:first-child{min-width:180px}.campus-workspace small{color:var(--muted);margin-top:4px;font-size:.8125rem;display:block}.campus-person{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 0;display:flex}.campus-empty{text-align:center;color:var(--muted);padding:48px 12px}.source-status{background:var(--soft);border-radius:10px;margin:16px 0;padding:16px}.campus-panel .checkbox-label{align-items:flex-start;gap:10px;margin-bottom:16px;display:flex}.campus-secret-modal{padding:26px}.one-time-secret{overflow-wrap:anywhere;background:var(--soft);border-radius:10px;margin:20px 0;padding:18px;font-family:monospace}@media (max-width:900px){.campus-columns{grid-template-columns:minmax(0,1fr)}.campus-panel{padding:18px}.campus-stat{gap:8px;padding:14px}}@media (max-width:600px){.campus-stats{gap:8px}.campus-stat{flex-direction:column;gap:2px;padding:12px 6px}.campus-stat strong{font-size:1.4375rem}.campus-tabs{gap:14px;font-size:.875rem}.campus-panel .section-heading input{width:100%}}:root{--bg:#f7f8fa;--paper:#fff;--ink:#222635;--muted:#646b7b;--primary:#505bd8;--primary-dark:#424bbb;--line:#e1e4ea;--soft:#eef0fc;--focus:#424bbb;--radius:12px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:1rem;line-height:1.6}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button{color:inherit;background:0 0;border:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9ba6ff}h1,h2,h3,p{margin:0}img{max-width:100%;display:block}a{color:var(--primary)}svg{flex-shrink:0}select{appearance:none}button svg{vertical-align:middle}strong{font-weight:650}.helper,.muted{color:var(--muted)}.helper{align-items:flex-start;gap:6px;font-size:.875rem;line-height:1.7;display:flex}.helper svg{margin-top:4px}.visually-hidden{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.full{width:100%}.success-icon{color:var(--green)}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--paper);border-right:1px solid var(--line);z-index:10;flex-direction:column;flex-shrink:0;width:232px;padding:30px 20px 20px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand{align-items:center;gap:11px;display:flex}.brand-mark{background:var(--primary);color:#fff;border-radius:11px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.brand strong{letter-spacing:-.02em;font-size:1.1875rem}.brand span{color:var(--muted);margin-top:1px;font-size:.75rem;display:block}.campus-label{border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center;gap:8px;margin:22px 0 14px;padding:16px 8px;font-size:.8125rem;display:flex}.campus-label,.campus-symbol,.tiny-label{color:var(--muted)}.tiny-label{border:1px solid var(--line);border-radius:5px;margin-left:auto;padding:0 5px;font-size:.75rem}.sidebar nav{flex-direction:column;gap:4px;display:flex}.nav-item{min-height:46px;color:var(--muted);text-align:left;border-radius:8px;align-items:center;gap:11px;padding:10px 12px;font-size:.875rem;display:flex}.nav-item svg{width:20px;height:20px}.nav-item:hover{background:#f5f6fb}.nav-item.active{background:var(--soft);color:var(--primary-dark);font-weight:650}.nav-dot{background:var(--primary);border-radius:50%;width:5px;height:5px;margin-left:auto}.sidebar-note{margin-top:40px;padding:8px 12px}.sidebar-note>svg{color:var(--primary);margin-bottom:9px}.sidebar-note strong{font-size:.875rem;display:block}.sidebar-note p{color:var(--muted);margin-top:6px;font-size:.75rem;line-height:1.8}.note-shape{background:#dce2ff;border:12px solid #e8eaff;border-radius:50%;width:68px;height:68px;position:absolute;bottom:-23px;right:-25px}.sidebar-bottom{margin-top:auto;padding-top:24px}.user-row{border-top:1px solid var(--line);text-align:left;align-items:center;gap:10px;width:100%;padding:15px 0;display:flex}.user-row>span:nth-child(2){flex:1;min-width:0}.user-row strong{font-size:.875rem;display:block}.user-row small{font-size:.75rem;display:block}.logout,.user-row small,.user-row>svg{color:var(--muted)}.logout{align-items:center;gap:8px;min-height:40px;padding:10px 2px;font-size:.8125rem;display:flex}.avatar{color:#6874cc;background:#eceeff;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:.9375rem;font-weight:650;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.small{color:#b6865c;background:#fff0e4;width:24px;height:24px;font-size:.6875rem}.main{flex:1;min-width:0;margin-left:232px}.topbar{background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:68px;padding:0 40px;display:flex}.breadcrumb{color:var(--muted);font-size:.8125rem}.breadcrumb span{color:#858b99;padding:0 10px}.topbar-right{align-items:center;gap:20px;display:flex}.date-label{color:var(--muted);font-size:.8125rem}.topbar .avatar{width:33px;height:33px}.workspace{max-width:1440px;margin:auto;padding:36px 40px 24px}.page-heading{justify-content:space-between;align-items:center;gap:24px;display:flex}.eyebrow{color:var(--muted);letter-spacing:.03em;margin-bottom:8px;font-size:.8125rem;font-weight:500}h1{letter-spacing:-.03em;font-size:2rem;font-weight:700;line-height:1.3}.heading-spark{color:#f5ba55;padding-left:12px;font-size:1.375rem}.page-heading p{color:var(--muted);margin-top:10px;font-size:.875rem}.btn{white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 16px;font-size:.875rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.btn:not(:disabled):hover{transform:none}.btn.primary{background:var(--primary);color:#fff;box-shadow:none}.btn.primary:hover:not(:disabled){background:var(--primary-dark)}.btn.secondary{background:var(--paper);color:#42495a;border:1px solid #c4cad6}.text-button{color:var(--primary);align-items:center;gap:6px;padding:5px 0;font-size:.875rem;display:inline-flex}.text-button:disabled{color:var(--muted)}.intro-strip{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;margin-bottom:24px;padding:0 0 24px;display:flex}.intro-icon{color:var(--primary);padding-top:2px}.intro-strip strong{font-size:.9375rem;font-weight:600}.intro-strip p{color:var(--muted);margin-top:4px;font-size:.875rem}.strip-art{opacity:.8;width:134px;height:84px;position:absolute;top:14px;right:33px}.strip-art span:first-child{background:#d9dfff;border-radius:15px;width:65px;height:65px;position:absolute;top:7px;right:27px;transform:rotate(-18deg)}.strip-art span:nth-child(2){background:#ffdc88;border-radius:50%;width:37px;height:37px;position:absolute;top:4px;right:0}.strip-art span:last-child{clip-path:polygon(50% 0,100% 100%,0 100%);background:#bfc9fb;width:34px;height:34px;position:absolute;bottom:2px;right:7px;transform:rotate(10deg)}.gallery-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;margin:4px 0 24px;padding-bottom:14px}.filter-tabs,.gallery-toolbar{align-items:center;display:flex}.filter-tabs{gap:8px;min-width:0;overflow:auto}.filter-tabs>button{white-space:nowrap;color:var(--muted);border-radius:7px;min-height:40px;padding:9px 12px;font-size:.875rem}.filter-tabs>button.active{color:var(--primary-dark);background:var(--soft);font-weight:600}.filter-tabs span{background:#fff9;border-radius:5px;margin-left:5px;padding:0 5px;font-size:.75rem}.select-wrap{background:var(--paper);color:var(--muted);border:1px solid #c4cad6;border-radius:8px;flex-shrink:0;align-items:center;gap:8px;padding:9px 12px;font-size:.875rem;display:flex}.select-wrap select{max-width:230px;color:var(--ink);background:0 0;border:none;padding-right:4px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.work-card{background:0 0;border:0;min-width:0;overflow:visible}.work-card:hover{box-shadow:none;transform:none}.artwork{aspect-ratio:1.25;background:#e7eaf1;border-radius:12px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.artwork>img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.work-card:hover .artwork>img{transform:scale(1.025)}.kind-label{color:#42495a;background:#ffffffed;border-radius:5px;align-items:center;gap:5px;padding:4px 8px;display:flex;top:12px}.kind-label,.visibility-label{font-size:.75rem;position:absolute;left:12px}.visibility-label{color:#727b92;background:#fff;border-radius:6px;padding:3px 7px;bottom:12px}.work-info{padding:14px 0 8px}.work-title{text-align:left;overflow-wrap:anywhere;width:100%;margin-bottom:8px;padding:0;font-size:1rem;font-weight:600;line-height:1.6;display:block}.work-meta{color:var(--muted);justify-content:space-between;gap:8px;font-size:.8125rem}.work-meta,.work-meta>span{align-items:center;display:flex}.work-meta>span{gap:7px}.like{color:var(--muted);justify-content:center;align-items:center;gap:6px;min-width:44px;min-height:36px;font-size:.8125rem;display:flex}.like.liked{color:#bd3c65}.new-work-card{color:var(--muted);background:0 0;border:1px dashed #b8bfce;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:240px;display:flex}.new-work-card:hover{background:#f1f3ff;border-color:#acb5f0}.new-plus{color:#8e9ad8;background:#edf0fc;border-radius:17px;place-items:center;width:57px;height:57px;margin-bottom:3px;display:grid}.new-work-card strong{color:#42495a;font-size:.9375rem}.new-work-card>span:last-child{font-size:.75rem}.game-cover{color:#f0e8d4;background:linear-gradient(150deg,#152964,#304d9a 70%,#7365b2);flex-direction:column;justify-content:center;align-items:center;gap:9px;width:100%;height:100%;min-height:200px;display:flex;position:relative;overflow:hidden}.game-cover>svg{color:#c3ceff;z-index:1}.game-cover strong{z-index:1;font-size:1.1875rem}.game-cover>span{color:#acb7d7;z-index:1;font-size:.6875rem}.game-planets i{background:#ffffff13;border-radius:50%;width:75px;height:75px;position:absolute;bottom:-30px;right:-10px}.game-planets i:nth-child(2){background:#fbd68f;width:37px;height:37px;top:17%;left:14%;box-shadow:0 0 22px #fbd68f44}.game-planets i:last-child{background:#fff;width:8px;height:8px;top:24%;left:75%}.workspace-footer{color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:32px;padding:24px 0 5px;font-size:.75rem;display:flex}.workspace-footer>span:last-child{align-items:center;gap:5px;display:flex}.site-registration{max-width:100%;min-height:44px;color:inherit;letter-spacing:normal;overflow-wrap:anywhere;text-underline-offset:4px;align-items:center;font-size:.75rem;line-height:1.5;text-decoration:underline;display:inline-flex}.site-registration:hover{text-decoration-thickness:2px}.site-registration:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:3px}.login-bottom:has(.site-registration){flex-wrap:wrap;align-items:center}.initial-registration{text-align:center;position:absolute;bottom:20px;left:20px;right:20px}.class-caption{color:var(--muted);justify-content:space-between;margin:-7px 0 18px;font-size:.8125rem;display:flex}.open-label{color:var(--green)}.closed-label{color:var(--muted)}.alert,.form-error{color:#b34e59;overflow-wrap:anywhere;background:#fff1f1;border:1px solid #f8e0e3;border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:18px;padding:13px 15px;font-size:.875rem;display:flex}.alert svg{margin-top:2px}.alert>span{flex:1}.alert button{color:#bd727a;padding:0}.toast{border:1px solid var(--line);z-index:100;background:#fff;border-radius:12px;align-items:center;gap:10px;padding:14px 21px;font-size:.875rem;display:flex;position:fixed;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 7px 35px #27355722}.toast svg{color:var(--green)}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;padding:70px 15px;display:flex}.empty-icon{color:#8e9ae2;background:#eceffd;border-radius:23px;place-items:center;width:75px;height:75px;margin-bottom:18px;display:grid}.empty-icon svg{width:29px;height:29px}.empty h3{color:#5d6783;margin-bottom:8px;font-size:1.125rem}.empty p{max-width:440px;font-size:.875rem}.empty .btn{margin-top:22px}.initial-loading{min-height:100vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:18px;font-size:.875rem;display:flex}.skeleton-card{background:#fff;border-radius:16px;padding-bottom:20px;overflow:hidden}.skeleton-card div{aspect-ratio:1.35;background:#ebedf5}.skeleton-card span{background:#eff1f6;border-radius:4px;width:55%;height:12px;margin:18px 20px 0;display:block}.skeleton-card span:last-child{width:30%;height:9px}.skeleton-card{animation:pulse 1.4s infinite alternate}@keyframes pulse{50%{opacity:.5}}.teacher-class-row{border-bottom:1px solid var(--line);flex-wrap:wrap;margin-bottom:24px;padding-bottom:20px;display:flex}.class-card{text-align:left;color:var(--muted);border:1px solid #0000;border-radius:8px;grid-template-columns:auto 1fr;gap:2px 10px;padding:10px 14px;display:grid}.class-card.selected{background:var(--soft);color:var(--primary-dark);border-color:#c7cdf1}.class-icon{color:inherit;grid-row:1/3;place-items:center;display:grid}.class-card strong{overflow-wrap:anywhere;font-size:.875rem}.class-card span{color:var(--muted);font-size:.75rem}.class-control{justify-content:space-between;align-items:center;gap:24px;padding:4px 0 20px;display:flex}.class-control strong{overflow-wrap:anywhere;margin-top:8px;font-size:1.375rem;display:block}.class-control p{color:var(--muted);margin-top:6px;font-size:.875rem}.section-row{justify-content:space-between;align-items:center;gap:16px;margin:32px 0 14px;display:flex}.section-row h2{font-size:1.0625rem;font-weight:650}.section-row h2 span{color:var(--muted);margin-left:8px;font-size:.8125rem}.folders-row{flex-wrap:wrap;gap:10px;display:flex}.folder-tile{background:var(--paper);border:1px solid var(--line);text-align:left;border-radius:8px;align-items:center;gap:10px;min-width:160px;padding:12px 16px;display:flex}.folder-tile svg{color:var(--muted);width:20px}.folder-tile strong{font-size:.875rem}.folder-tile span{color:var(--muted);margin-left:12px;font-size:.75rem}.table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:auto}table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.875rem}th{text-align:left;color:var(--muted);background:#fafbfc;padding:13px 20px;font-size:.8125rem;font-weight:500}td{border-top:1px solid var(--line);color:#42495a;padding:15px 20px}.student-name{color:#414a66;align-items:center;gap:10px;font-weight:600;display:flex}.publication-status{margin-top:4px;display:block}.student-name .avatar{width:32px;height:32px;font-size:.8125rem}.notes-tools{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.notes-tools input{background:#fff;width:340px}.notes-tools>span{color:var(--muted);align-items:center;gap:5px;font-size:.8125rem;display:flex}.notes-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.note-card{border:1px solid var(--line);background:var(--paper);border-radius:10px;flex-direction:column;padding:24px;display:flex}.note-card-top{color:var(--muted);align-items:center;gap:8px;margin-bottom:16px;font-size:.8125rem;display:flex}.note-card h3{margin-bottom:13px;font-size:1.0625rem}.note-card>p{color:var(--muted);-webkit-line-clamp:6;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:.875rem;line-height:1.8;display:-webkit-box;overflow:hidden}.note-card-actions{border-top:1px solid var(--line);color:var(--primary);justify-content:space-between;margin-top:22px;padding-top:15px;font-size:.8125rem;display:flex}.note-card-actions button{align-items:center;gap:5px;display:flex}.notebook-card .note-card-top{flex-wrap:wrap}.notebook-card .note-card-top time{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.75rem}.notebook-context{border:1px solid var(--line);color:var(--muted);background:#f8f9fc;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;font-size:.875rem;display:flex}.notebook-context strong{color:var(--ink);font-weight:600}.notebook-form textarea{min-height:220px;line-height:1.75}.modal-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:50;background:#17213e66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:20px;outline:none;width:560px;max-width:100%;max-height:92vh;overflow:auto;box-shadow:0 20px 100px #16295226}.modal.wide{width:1040px}.modal-header{z-index:3;background:#fff;justify-content:space-between;align-items:center;padding:22px 26px;display:flex;position:sticky;top:0}.modal-header h2{font-size:1.125rem}.icon-button{color:#9098ac;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.icon-button:hover{background:var(--bg)}.icon-button svg{width:21px;height:21px}.modal-form{flex-direction:column;gap:18px;padding:25px 28px;display:flex}.modal-form label,form label{color:#5e6781;flex-direction:column;gap:7px;font-size:.875rem;display:flex}.modal-form label>span{color:#a0a7b8;font-size:.75rem}.modal-form .form-error{margin:0}form select,input,textarea{color:#37415a;background:#fff;border:1px solid #dfe3ee;border-radius:9px;width:100%;min-height:44px;padding:11px 13px;font-size:.875rem}input::placeholder,textarea::placeholder{color:#b1b7c9}textarea{resize:vertical;line-height:1.7}.upload-options{gap:14px;display:flex}.upload-options>label{flex:1;min-width:0}.kind-choice{background:#f5f6fa;border-radius:10px;padding:4px;display:flex}.kind-choice button{color:#8c94aa;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:7px;padding:8px;font-size:.875rem;display:flex}.kind-choice button.selected{color:var(--primary);background:#fff;box-shadow:0 2px 6px #29345b09}.dropzone{background:#f8f9ff;border:1.5px dashed #c5ceed;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:164px;padding:20px;display:flex}.dropzone>span{color:#98a4e9}.dropzone strong{color:#7985b1;font-size:.875rem}.dropzone small{color:#a2aac1;font-size:.6875rem}.dropzone.dragging{background:#e9edff}.notice{color:#8f794f;background:#fff8e9;border-radius:9px;align-items:flex-start;gap:8px;padding:12px;font-size:.8125rem;display:flex}.notice svg{margin-top:2px}.file-list{flex-direction:column}.file-list,.file-row{gap:10px;display:flex}.file-row{color:#96a2bd;background:#f7f8fc;border-radius:10px;align-items:center;padding:13px}.file-row>div{flex:1;min-width:0}.file-row strong{color:#6b7690;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;display:block;overflow:hidden}.file-row span{color:#a1aabc;overflow-wrap:anywhere;font-size:.6875rem;display:block}.file-row progress{width:100%;height:5px;accent-color:var(--primary);margin-top:5px;display:block}.check-label{align-items:center;flex-direction:row!important;display:flex!important}.check-label input{width:18px;min-height:18px;accent-color:var(--primary)}.code-display{border:1px solid var(--line);word-break:break-all;color:#5d69ad;background:#f4f6fd;border-radius:10px;padding:20px;font-family:monospace;font-size:.9375rem}.detail-content{grid-template-columns:1.6fr 1fr;min-height:520px;display:grid}.detail-main{background:#f4f6fb;padding:24px}.detail-images{flex-direction:column;gap:18px;display:flex}.detail-images img{object-fit:contain;background:#e7ebf6;border-radius:12px;width:100%;max-height:68vh}.detail-side{min-width:0;padding:25px}.detail-kind{color:#8f98b6;align-items:center;gap:6px;font-size:.75rem;display:flex}.detail-side>h2{margin:12px 0 17px;font-size:1.4375rem;line-height:1.5}.detail-author{color:#717a96;align-items:center;gap:9px;font-size:.875rem;display:flex}.detail-author small{color:#a5acbd;font-size:.6875rem;display:block}.detail-description{color:#8a94aa;white-space:pre-wrap;overflow-wrap:anywhere;margin:20px 0 25px;font-size:.875rem;line-height:1.9}.liked-button{color:#d57496;background:#fff1f5;border:1px solid #f6d9e4}.detail-tabs{border-bottom:1px solid var(--line);color:#929ab0;gap:22px;margin-top:24px;font-size:.8125rem;display:flex}.detail-tabs button{padding:10px 0}.detail-tabs button.active{color:var(--primary);border-bottom:2px solid var(--primary)}.detail-own-actions{flex-direction:column;gap:13px;margin-top:17px;display:flex}.private-prompt{background:#f8f9fd;border-radius:10px;padding:14px;font-size:.75rem}.private-prompt strong{color:#7c87a3;align-items:center;gap:5px;display:flex}.private-prompt p{white-space:pre-wrap;color:#97a0b5;overflow-wrap:anywhere;margin:10px 0;font-size:.8125rem}.private-prompt .text-button{font-size:.75rem}.history-list>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:15px 0;font-size:.8125rem;display:flex}.history-list>div>button:first-child{text-align:left}.history-list small{color:var(--muted);font-size:.6875rem;display:block}.danger-text{color:#c17a87;margin-top:18px}.player-toolbar{color:#8a94af;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px;font-size:.8125rem;display:flex}.player-toolbar>span{align-items:center;gap:5px;display:flex}.player-toolbar .btn{min-height:36px;padding:8px 12px;font-size:.75rem}.player iframe{background:#fff;border:0;border-radius:12px;width:100%;height:420px}.player-cover{background:#fff;border-radius:14px;overflow:hidden}.player-cover .game-cover{height:325px}.player-cover>p{color:#8a94aa;text-align:center;padding:17px;font-size:.75rem}.player .form-error{margin-top:14px}.spin{animation:rotate 1s linear infinite}@keyframes rotate{to{transform:rotate(1turn)}}.login-page{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-visual{background:linear-gradient(150deg,#edf0ff,#e9edff 55%,#e4e8fe);flex-direction:column;justify-content:center;padding:42px 60px;display:flex;position:relative;overflow:hidden}.login-visual>.brand{position:absolute;top:42px;left:52px}.login-art{width:430px;max-width:100%;height:315px;margin:10px auto 45px;position:relative}.sun{background:#ffd58b;border-radius:50%;width:105px;height:105px;top:27px;left:45px;box-shadow:0 0 0 22px #ffd58b19}.art-orbit,.sun{position:absolute}.art-orbit{border:1px solid #bcc7fb85;border-radius:50%;width:320px;height:270px;top:6px;left:20px;transform:rotate(-35deg)}.art-window{background:#fff;border:7px solid #fff;border-radius:17px;place-items:center;width:193px;height:163px;display:grid;position:absolute;box-shadow:0 15px 35px #5261aa16}.art-window-one{color:#fff;background:linear-gradient(#bad6fd,#e0e7ff);top:95px;left:60px;transform:rotate(-12deg)}.art-window-one>span{background:#ffe8a8;border-radius:50%;width:47px;height:47px;position:absolute;top:18px;right:20px}.art-window-two{color:#dae2ff;background:#6175df;top:122px;right:8px;transform:rotate(13deg)}.art-dot{background:#bcc8ff;border-radius:50%;width:20px;height:20px;position:absolute}.dot-one{bottom:7px;left:40px}.dot-two{background:#9cb0ed;width:13px;height:13px;top:46px;right:30px}.art-spark{color:#9bacee;position:absolute;top:8px;right:88px}.login-visual h1{letter-spacing:-.04em;z-index:1;text-align:center;color:#414d82;font-size:2.1875rem;font-weight:650;line-height:1.65}.login-visual>p{color:#8a98c7;text-align:center;margin-top:15px;font-size:.875rem}.login-side{background:#fff;justify-content:center;align-items:center;padding:45px;display:flex}.login-form{width:370px;max-width:100%}.login-form>h2{margin-bottom:8px;font-size:1.6875rem;font-weight:650}.login-form>p{color:#9aa3b8;margin-bottom:27px;font-size:.8125rem;line-height:1.8}.login-form form{flex-direction:column;gap:18px;display:flex}.login-form form .btn{margin-top:5px}.login-form .form-error{margin:0}.login-tabs{border-bottom:1px solid var(--line);color:#9aa2b5;gap:28px;margin-bottom:24px;font-size:.875rem;display:flex}.login-tabs button{padding:9px 0 12px}.login-tabs .active{color:var(--primary);border-bottom:2px solid var(--primary);font-weight:600}.forgot{color:#96a0b8;text-align:center;margin:19px auto 0;font-size:.75rem;display:block}.login-foot{color:#a7afc0;justify-content:center;align-items:center;gap:5px;margin-top:28px;font-size:.6875rem;display:flex}.demo-panel{background:#f8f9fe;border:1px solid #ebedf7;border-radius:10px;margin-top:25px;padding:16px}.demo-panel>span{color:#a0a9c2;margin-bottom:11px;font-size:.6875rem;display:block}.demo-panel>div{gap:10px;display:flex}.demo-panel button{color:#7d8cc1;background:#fff;border:1px solid #dfe4f4;border-radius:6px;flex:1;padding:8px 10px;font-size:.75rem}@media (min-width:1650px){.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1190px){.sidebar{width:215px;padding-left:16px;padding-right:16px}.main{margin-left:215px}.workspace{padding:30px}.topbar{padding:0 30px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.notes-grid{grid-template-columns:repeat(2,1fr)}.strip-art{opacity:.5;right:14px}.intro-strip{padding-right:85px}.teacher-class-row{grid-template-columns:repeat(2,1fr)}.detail-content{grid-template-columns:1.3fr 1fr}.login-visual{padding:35px}.login-visual h1{font-size:1.875rem}}@media (max-width:760px){.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);width:100%;height:auto;padding:18px 20px 12px;position:relative}.campus-label,.sidebar .brand span,.sidebar-note{display:none}.sidebar .brand strong{font-size:1.125rem}.brand-mark{border-radius:10px;width:35px;height:35px}.sidebar nav{flex-direction:row;gap:6px;margin-top:20px;overflow:auto}.nav-item{white-space:nowrap;flex:1;gap:7px;min-height:40px;padding:9px 12px;font-size:.8125rem}.nav-item svg{width:17px}.nav-dot{display:none}.sidebar-bottom{align-items:center;gap:5px;padding:0;display:flex;position:absolute;top:15px;right:20px}.user-row{border:0;width:auto;padding:0}.user-row>span:nth-child(2),.user-row>svg{display:none}.user-row .avatar{width:33px;height:33px}.logout{padding:5px;font-size:.6875rem}.logout svg{width:14px}.main{margin:0}.topbar{display:none}.workspace{padding:26px 20px}.page-heading{align-items:flex-start;gap:12px;margin-bottom:23px}.page-heading h1{font-size:1.5625rem}.page-heading p{max-width:230px;font-size:.75rem}.eyebrow{font-size:.5625rem}.page-heading .btn{min-height:39px;margin-top:17px;padding:9px 12px;font-size:.75rem}.page-heading .btn svg{width:16px}.intro-strip{gap:12px;padding:18px}.intro-strip strong{font-size:.8125rem}.intro-strip p{font-size:.6875rem}.intro-icon{border-radius:12px;width:38px;height:38px}.strip-art{display:none}.gallery-toolbar{flex-wrap:wrap;gap:12px;margin-bottom:20px}.filter-tabs{order:2;gap:5px;width:100%;max-width:100%}.filter-tabs button{padding:7px 10px;font-size:.75rem}.select-wrap{padding:7px 11px;font-size:.75rem}.gallery-grid{gap:14px}.work-info{padding:13px 12px}.work-title{margin-bottom:10px;font-size:.875rem}.work-meta{font-size:.6875rem}.kind-label{padding:3px 6px;font-size:.5625rem;top:9px;left:9px}.kind-label svg{width:11px}.like{gap:4px;font-size:.6875rem}.like svg{width:14px}.avatar.small{width:19px;height:19px;font-size:.5625rem}.new-work-card{min-height:210px;aspect-ratio:auto;gap:6px}.new-plus{border-radius:12px;width:42px;height:42px}.new-work-card strong{font-size:.8125rem}.new-work-card>span:last-child{font-size:.625rem}.game-cover{min-height:140px}.game-cover>svg{width:42px;height:42px}.game-cover strong{font-size:.8125rem}.game-cover>span{font-size:.5625rem}.game-planets i:nth-child(2){width:23px;height:23px}.workspace-footer{flex-direction:column;align-items:center;font-size:.625rem}.class-caption{gap:5px;font-size:.6875rem}.notes-tools{gap:10px}.notes-tools input{width:100%;min-width:0;font-size:.8125rem}.notes-tools>span{white-space:nowrap;font-size:.6875rem}.notes-grid{grid-template-columns:1fr}.teacher-class-row{gap:12px}.class-card{padding:15px}.class-card strong{font-size:.875rem}.class-card span{font-size:.6875rem}.class-control{flex-direction:column;align-items:flex-start;padding:18px}.class-control>button{width:100%}.class-control strong{font-size:1rem}.class-control p{font-size:.75rem}.folder-tile{min-width:160px;padding:13px}.folder-tile span{display:none}.section-row h2{font-size:1rem}.section-row .btn,.section-row .text-button{font-size:.75rem}td,th{padding:13px 15px}table{font-size:.75rem}.modal-backdrop{padding:12px}.modal{border-radius:16px;max-height:94vh}.modal-header{padding:18px 20px}.modal-header h2{font-size:1rem}.modal-form{gap:17px;padding:20px}.detail-content{flex-direction:column;display:flex}.detail-main{padding:17px}.detail-images img{max-height:46vh}.detail-side{padding:22px}.detail-side>h2{font-size:1.3125rem}.player iframe{height:340px}.player-cover .game-cover{height:240px}.login-page{display:block}.login-visual{justify-content:flex-end;height:270px;padding:22px 24px}.login-visual>.brand{top:22px;left:24px}.login-art{opacity:.75;width:220px;height:130px;margin:0;position:absolute;bottom:-3px;right:8px}.sun{width:55px;height:55px;top:3px;left:17px;box-shadow:0 0 0 9px #ffd58b22}.art-window{border-width:4px;border-radius:10px;width:99px;height:88px}.art-window svg{width:34px}.art-window-one{top:36px;left:20px}.art-window-two{top:55px;right:10px}.art-window-one>span{width:21px;height:21px;top:9px;right:11px}.art-orbit{width:160px;height:130px;top:0;left:15px}.art-dot,.art-spark{display:none}.login-visual h1{text-align:left;max-width:255px;font-size:1.5625rem;line-height:1.7}.login-visual>p{display:none}.login-side{padding:35px 25px}.login-form{width:100%;max-width:400px}.login-form>h2{font-size:1.5rem}.login-form>.eyebrow{font-size:.625rem}}@media (max-width:390px){.gallery-grid{grid-template-columns:1fr}.artwork{aspect-ratio:1.6}.work-title{font-size:1rem}.kind-label{font-size:.6875rem}.game-cover{min-height:190px}.page-heading{gap:6px}.page-heading .btn{padding:8px 10px}.nav-item{padding:8px;font-size:.75rem}.upload-options{flex-direction:column;gap:15px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.upload-form>.btn{z-index:4;position:sticky;bottom:0;box-shadow:0 0 0 10px #fff}.upload-form>.form-error{z-index:4;background:#fff0ee;position:sticky;bottom:62px}.trash-switch{color:var(--muted);justify-content:flex-end;gap:14px;margin-bottom:14px;font-size:.75rem}.trash-cover,.trash-switch{align-items:center;display:flex}.trash-cover{color:#949cc0;background:#f0f1fa;flex-direction:column;justify-content:center;gap:18px;height:100%}.classroom-option,.trash-cover span{font-size:.8125rem}.classroom-option{color:var(--muted);padding:10px 2px}.pending-uploads{color:#827154;background:#fff9ed;border:1px solid #f0e5ca;border-radius:12px;margin-bottom:24px;padding:16px 20px;font-size:.8125rem}.pending-uploads>div{align-items:center;gap:16px;margin-top:8px;display:flex}.pending-uploads>div>span{flex:1}.pending-uploads button{white-space:nowrap;font-size:.75rem}.campus-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:8px;padding:12px 18px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:16px}.sidebar-note-label{color:var(--muted);font-size:.75rem;font-weight:600}.classroom-state{color:var(--muted);align-items:center;gap:7px;font-size:.8125rem;display:inline-flex}.classroom-state:before{content:"";background:#818898;border-radius:50%;width:6px;height:6px}.classroom-state.is-open{color:var(--green)}.classroom-state.is-open:before{background:var(--green)}.class-summary{color:var(--muted);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:28px;padding:14px 0 18px;font-size:.875rem;display:flex}.class-summary strong{color:var(--ink);margin-right:4px;font-size:1.25rem;font-weight:650}.class-summary .text-button{margin-left:auto}.table-loading{color:var(--muted);padding:32px 20px;font-size:.875rem}.table-wrap:has(.table-loading) tbody{display:none}.class-control-copy{min-width:0}.app-shell .work-title{white-space:normal;text-overflow:clip;overflow:visible}.table-wrap .helper{padding:16px 20px}.table-wrap select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23646b7b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 9px center no-repeat;border:1px solid #c4cad6;border-radius:6px;max-width:180px;padding:8px 30px 8px 10px;font-size:.8125rem}.table-wrap .helper+table{margin-top:0}.btn.secondary:not(:disabled):hover{background:#f3f4f7;border-color:#9ca5b8}.class-card:not(.selected):hover,.nav-item:not(.active):hover{background:#f3f4f7}.folder-tile:hover{background:#fafbff;border-color:#a9b2cb}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.main:focus{outline:none}.campus-workspace input:not([type=checkbox]),.campus-workspace select{background:#fff;border-color:#c4cad6;font-size:.875rem}.campus-panel .section-heading input{width:min(280px,100%)}.campus-workspace table{white-space:normal}.campus-workspace td{overflow-wrap:anywhere;min-width:90px}.campus-workspace .text-button{white-space:nowrap}.campus-tabs button{border-bottom-width:2px;min-height:44px}.campus-toolbar select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23646b7b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.campus-stats,.class-summary{font-variant-numeric:tabular-nums}.campus-stats .campus-stat{background:0 0;border:0;border-radius:0;flex-direction:row;padding:0}.login-visual{background:#eef0fc}.login-art{opacity:.9}.login-visual>h1{letter-spacing:-.03em;font-size:2.25rem;line-height:1.5}.detail-author,.detail-description,.forgot,.login-foot,.login-form>p,.login-visual>p,.player-cover>p{color:var(--muted)}.login-form>h2{font-size:1.75rem;line-height:1.4}.login-form .eyebrow{letter-spacing:.03em}.login-tabs button{min-height:44px;font-size:.875rem}.login-tabs button:not(.active){color:var(--muted)}.login-form input,.modal-form input:not([type=checkbox]),.modal-form select,.modal-form textarea{color:var(--ink);border-color:#c4cad6}input::placeholder,textarea::placeholder{color:#747c8d;opacity:1}.modal{border-radius:14px}.modal-header{border-bottom:1px solid var(--line)}.icon-button{min-width:40px;min-height:40px}.detail-side>h2{overflow-wrap:anywhere}.notes-tools input{border-color:#c4cad6}.note-card-actions button{min-height:36px}.source-status{background:#f3f4f8}.status-pill{background:var(--soft);color:var(--primary-dark)}.pending-uploads button,.trash-switch .text-button{min-height:36px}.artwork .visibility-label{color:#42495a}.avatar.small{color:#765032}.game-cover>span{color:#d8def2}@media (min-width:761px) and (max-width:1190px){.sidebar{width:208px;padding-left:16px;padding-right:16px}.main{margin-left:208px}.workspace{padding:28px}.topbar{padding:0 28px}}@media (max-width:760px){.sidebar{padding:20px 20px 0;overflow:visible}.sidebar nav{gap:4px;margin-top:18px;padding-bottom:12px}.nav-item{flex:none;min-height:44px;padding:10px 12px;font-size:.875rem}.sidebar-bottom{top:19px;right:16px}.logout{min-height:36px;font-size:.75rem}.workspace{padding:28px 20px}.page-heading{flex-wrap:wrap;gap:16px;margin-bottom:24px}.page-heading h1{font-size:1.75rem}.eyebrow{font-size:.75rem}.page-heading p{max-width:none;font-size:.875rem}.page-heading .btn{min-height:42px;margin-top:0;padding:10px 14px;font-size:.875rem}.teacher-class-row{gap:6px;margin-bottom:20px;padding-bottom:16px}.class-card{padding:10px}.class-card strong{font-size:.875rem}.class-card span{font-size:.75rem}.class-control{gap:16px;padding:0 0 16px}.class-control strong{font-size:1.375rem}.class-control p{font-size:.875rem}.class-summary{gap:16px;padding-bottom:16px}.class-summary .text-button{width:100%;margin-left:0}.folder-tile{flex:0 auto;min-width:0;padding:10px 12px}.section-row{margin-top:28px}.section-row h2{font-size:1.0625rem}.section-row .btn,.section-row .text-button{font-size:.875rem}.gallery-toolbar{gap:12px;padding-bottom:14px}.filter-tabs{margin-left:-4px;padding:4px}.filter-tabs button{min-height:40px;padding:9px 12px;font-size:.875rem}.select-wrap{min-height:42px;font-size:.875rem}.gallery-grid{grid-template-columns:1fr;gap:28px}.artwork{aspect-ratio:1.25}.work-info{padding:14px 0 0}.work-title{margin-bottom:8px;font-size:1.0625rem}.like,.work-meta{font-size:.875rem}.like{gap:6px;min-height:40px}.like svg{width:17px}.avatar.small{width:24px;height:24px;font-size:.75rem}.kind-label{padding:4px 8px;font-size:.75rem}.kind-label svg{width:14px}.intro-strip{padding:0 0 20px}.intro-icon{width:auto;height:auto}.intro-strip strong{font-size:.9375rem}.intro-strip p{font-size:.875rem}.class-caption{flex-wrap:wrap;gap:8px;font-size:.8125rem}.campus-stats{flex-wrap:wrap;gap:22px}.campus-stat strong{font-size:1.5rem}.campus-stat span{font-size:.875rem}.campus-tabs{gap:18px}.campus-tabs button{font-size:.875rem}.campus-panel{padding:18px}.campus-toolbar label{flex-wrap:wrap;gap:8px}.campus-toolbar select{min-width:0;max-width:100%}.table-wrap table{min-width:580px;font-size:.875rem}.table-wrap td,.table-wrap th{padding:13px 16px}.campus-workspace table{min-width:650px}.table-scroll{max-width:100%;overflow-x:auto}.workspace-footer{align-items:flex-start;font-size:.75rem}.notes-tools{flex-wrap:wrap}.notes-tools input{font-size:.875rem}.notes-tools>span{font-size:.8125rem}.modal-form{padding:20px}.modal-header h2{font-size:1.125rem}.detail-side>h2{font-size:1.5rem}.login-visual{height:auto;min-height:210px;padding:90px 24px 28px}.login-art{display:none}.login-visual>h1{max-width:none;font-size:1.625rem;line-height:1.5}.login-form>h2{font-size:1.5625rem}.login-side{padding:32px 24px}.pending-uploads>div{flex-wrap:wrap;gap:8px 16px}.pending-uploads>div>span{flex:1 0 100%}.trash-switch{flex-wrap:wrap;justify-content:flex-start;font-size:.8125rem}}.demo-panel button,.demo-panel>span,.detail-author,.dropzone small,.dropzone strong,.file-row small,.icon-button,.kind-choice button:not(.selected),.modal-form label>span,.new-work-card>span:last-child,.notes-tools>span,.player-toolbar,input::placeholder,textarea::placeholder{color:var(--muted)}.btn.secondary,.campus-workspace input:not([type=checkbox]),.campus-workspace select,.modal-form input:not([type=checkbox]),.modal-form select,.modal-form textarea,.select-wrap,.table-wrap select,form select,input:not([type=checkbox]),textarea{border-color:#8790a2}.campus-workspace select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23646b7b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.campus-loading{color:var(--muted);font-size:.875rem}.table-scroll,.table-wrap{overscroll-behavior-x:contain}@media (max-width:760px){.table-scroll:has(table):before,.table-wrap:has(table):before{content:"左右滑动，查看完整信息";width:fit-content;max-width:100%;color:var(--muted);padding:10px 16px;font-size:.8125rem;display:block;position:sticky;left:0}}.missing-image{width:100%;height:100%;color:var(--muted);background:#eef0f4;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.875rem;display:flex}.artwork:has(.missing-image) .kind-label{display:none}.avatar-preset{background-repeat:no-repeat;width:100%;height:100%;display:block}.profile-shortcut{border-radius:50%;width:42px;height:42px}.profile-settings{gap:16px}.profile-picture{border-bottom:1px solid var(--line);align-items:center;gap:18px;padding-bottom:20px;display:flex}.profile-picture>.avatar{width:88px;height:88px}.profile-picture-actions{flex:1;min-width:0}.profile-picture-actions p{margin:5px 0 10px;font-size:.8125rem}.profile-buttons{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.profile-settings .profile-file{display:none}.profile-hint,.registration-avatar-hint{color:var(--muted);overflow-wrap:anywhere;margin:-8px 0 0;font-size:.75rem;line-height:1.65}.profile-picture-actions .profile-hint{margin:8px 0 0;font-size:.6875rem}.profile-login{flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:12px 0;display:flex}.profile-login>span:first-child{color:var(--muted);font-size:.8125rem}.profile-login strong{overflow-wrap:anywhere}.profile-login .profile-hint{flex:1 0 100%;margin:0}.profile-status{min-height:20px;color:var(--muted);margin:0;font-size:.8125rem}.profile-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.profile-presets{border:0;min-width:0;margin:0;padding:0}.profile-presets legend{margin-bottom:10px;font-size:.8125rem;font-weight:600}.profile-preset-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;display:grid}.profile-preset-button{color:var(--muted);font:inherit;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:5px;min-width:0;padding:8px 2px;font-size:.6875rem;display:flex}.profile-preset-button:hover{background:var(--bg)}.profile-preset-button[aria-pressed=true]{background:var(--soft);border-color:var(--primary);color:var(--primary)}.profile-preset-button .avatar{width:44px;height:44px}.profile-settings .text-button{align-items:center;gap:5px;display:inline-flex}.registration-avatar-hint{margin:0 0 14px}@media (max-width:480px){.profile-picture{align-items:flex-start;gap:12px}.profile-picture>.avatar{width:64px;height:64px}.profile-preset-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.profile-buttons .btn{padding:8px 10px}}.learning-table-hint{display:none}.learning-workspace{min-width:0;max-width:1320px;margin:0 auto}.learning-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin:6px 0 28px;display:flex}.learning-heading h1{letter-spacing:-.04em;overflow-wrap:anywhere;margin:7px 0 9px;font-size:clamp(26px,2.5vw,34px);font-weight:650;line-height:1.3}.learning-heading p,.learning-muted{color:var(--muted);font-size:14px;line-height:1.7}.learning-heading .eyebrow{color:var(--primary);letter-spacing:.13em;font-size:11px}.learning-summary{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:28px 42px;margin-bottom:28px;padding:0 0 28px;display:flex}.learning-summary>div{align-items:center;gap:11px;display:flex}.learning-summary svg{color:var(--muted)}.learning-summary strong{letter-spacing:-.05em;font-size:28px;font-weight:650;line-height:1}.learning-summary span{color:var(--muted);font-size:13px}.learning-section-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.learning-section-title h2{font-size:19px;font-weight:600}.learning-section-title p,.learning-section-title>span{color:var(--muted);font-size:13px}.learning-next{background:var(--paper);border:1px solid var(--line);border-radius:16px;margin-bottom:28px;padding:22px 26px 8px}.learning-queue-row{text-align:left;border-top:1px solid var(--line);align-items:center;gap:15px;width:100%;padding:16px 0;display:flex}.learning-lesson-list button:hover strong,.learning-queue-row:hover strong{color:var(--primary)}.learning-queue-row>span:nth-child(2){flex:1;gap:4px;min-width:0;display:grid}.learning-queue-row small{color:var(--muted);font-size:12px}.learning-queue-row strong{overflow-wrap:anywhere;font-size:15px;font-weight:550}.learning-queue-meta{color:var(--muted);align-items:center;gap:14px;font-size:12px;display:flex}.learning-subjects{flex-wrap:wrap;gap:8px;margin:0 0 24px;display:flex}.learning-subjects button{color:var(--muted);border:1px solid #0000;border-radius:9px;align-items:center;gap:8px;padding:10px 17px;font-size:14px;display:flex}.learning-subjects button[aria-pressed=true]{color:var(--primary-dark);background:var(--paper);border-color:var(--line);font-weight:600}.learning-subjects button:hover{background:var(--paper)}.learning-courses{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;display:grid}.learning-course{background:var(--paper);border:1px solid var(--line);border-radius:16px;min-width:0;padding:26px}.learning-course-top{color:var(--muted);align-items:center;gap:10px;margin-bottom:18px;font-size:12px;display:flex}.learning-course-top .text-button{margin-left:auto}.learning-subject-mark{color:#5a51ab;background:#f0f0fb;border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.learning-subject-mark.ai{color:#7455a0;background:#f1edfa}.learning-subject-mark.physics{color:#28716b;background:#e9f3f2}.learning-subject-mark.cpp{color:#466aab;background:#edf1fa}.learning-subject-mark.math{color:#99602c;background:#fcf1e8}.learning-course h2{letter-spacing:-.025em;overflow-wrap:anywhere;font-size:21px;font-weight:600;line-height:1.4}.learning-course-description{color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;margin:8px 0 18px;font-size:13px;line-height:1.7}.learning-course-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px;font-size:12px;display:flex}.learning-course-meta .text-button{margin-left:auto;font-size:12px}.learning-lesson-list button{text-align:left;border-top:1px solid var(--line);align-items:center;gap:14px;width:100%;padding:17px 0;display:flex}.learning-lesson-number{color:#969bab;font-variant-numeric:tabular-nums;font-size:12px}.learning-lesson-list button>span:nth-child(2){flex:1;gap:5px;min-width:0;display:grid}.learning-lesson-list strong{overflow-wrap:anywhere;font-size:14px;font-weight:550}.learning-lesson-list small{color:var(--muted);font-size:12px}.learning-lesson-list svg{color:var(--muted);flex-shrink:0}.learning-add-lesson{color:var(--primary);align-items:center;gap:7px;padding-top:12px;font-size:13px;display:flex}.learning-empty{text-align:center;border:1px dashed var(--line);background:var(--paper);border-radius:16px;justify-items:center;gap:12px;margin-bottom:24px;padding:65px 24px;display:grid}.learning-empty>svg{color:var(--primary);margin-bottom:6px}.learning-empty h2{font-size:20px;font-weight:600}.learning-empty p{color:var(--muted);max-width:420px;font-size:14px;line-height:1.8}.learning-empty .btn{margin-top:8px}.learning-loading{color:var(--muted);padding:20px 0}.learning-notice{color:#28705b;align-items:center;gap:8px;padding-bottom:18px;font-size:14px;display:flex}.learning-back{margin:0 0 22px}.learning-lesson-layout{grid-template-columns:minmax(0,1fr) 240px;align-items:start;gap:28px;display:grid}.learning-lesson-body{min-width:0}.learning-intro{white-space:pre-wrap;overflow-wrap:anywhere;max-width:75ch;margin:0 0 26px;font-size:15px;line-height:1.9}.learning-materials{background:var(--paper);border:1px solid var(--line);border-radius:14px;margin-bottom:28px;padding:24px}.learning-file-row{border-top:1px solid var(--line);align-items:center;gap:13px;min-width:0;padding:16px 0;display:flex}.learning-file-row>svg{color:var(--primary);flex-shrink:0}.learning-file-row>span{overflow-wrap:anywhere;flex:1;min-width:0}.learning-file-row strong{font-size:14px;font-weight:500;display:block}.learning-file-row small{color:var(--muted);margin-top:5px;font-size:12px;display:block}.learning-file-row .btn{padding:8px 12px;font-size:12px}.learning-tasks{margin-bottom:24px}.learning-task{background:var(--paper);border:1px solid var(--line);border-radius:14px;margin:0 0 20px;padding:24px}.learning-task h3{overflow-wrap:anywhere;gap:12px;font-size:16px;font-weight:600;line-height:1.6;display:flex}.learning-task h3>span{color:var(--muted);padding-top:3px;font-size:12px}.learning-task-instructions{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:18px;font-size:14px;line-height:1.85}.learning-answer{color:var(--muted);background:#f6f7fb;border-radius:8px;margin:16px 0;padding:13px 16px;font-size:13px}.learning-answer p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);margin:12px 0 0;line-height:1.8}.learning-answer summary{cursor:pointer}.learning-answer-closed{margin-bottom:18px;font-size:12px}.learning-submit{border-top:1px solid var(--line);padding-top:20px}.learning-form label,.learning-lesson-aside label,.learning-submit label{gap:9px;font-size:13px;font-weight:500;display:grid}.learning-submit textarea{font-size:14px}.learning-submit-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.learning-submit-tools>.btn{margin-left:auto}.learning-submit-tools .learning-muted{font-size:12px}.learning-submit label.learning-file-picker{color:var(--primary);cursor:pointer;align-items:center;gap:7px;padding:10px 0;display:flex;position:relative;overflow:hidden}.learning-file-picker input{opacity:0;cursor:pointer;position:absolute;inset:0}.learning-file-picker:focus-within{outline:2px solid var(--primary);outline-offset:3px}.learning-upload-name{color:var(--muted);overflow-wrap:anywhere;margin:8px 0;font-size:12px}.learning-submitted-files{flex-wrap:wrap;gap:10px;padding:6px 0 12px;display:flex}.learning-submitted-files a{color:var(--primary);overflow-wrap:anywhere;align-items:center;gap:5px;font-size:12px;display:flex}.learning-feedback{background:#f4f5f9;border-radius:8px;margin-top:16px;padding:14px 16px;font-size:13px}.learning-feedback.is-complete{color:#28634a;background:#eef6f2}.learning-feedback strong{font-weight:500}.learning-feedback p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;line-height:1.8}.learning-lesson-aside{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px}.learning-lesson-aside h2{margin-bottom:20px;font-size:14px;font-weight:600}.learning-lesson-aside p{align-items:center;gap:10px;margin:14px 0;font-size:13px;line-height:1.75;display:flex}.learning-lesson-aside p svg{color:var(--muted)}.learning-lesson-aside .btn{width:100%;margin-top:10px;font-size:12px}.learning-lesson-aside hr{border:0;border-top:1px solid var(--line);margin:20px 0}.learning-class-progress{border-top:1px solid var(--line);margin-top:36px;padding-top:26px}.learning-progress-summary{color:var(--muted);flex-wrap:wrap;gap:26px;margin:20px 0;font-size:13px;display:flex}.learning-progress-summary strong{color:var(--ink);margin-right:7px;font-size:23px;font-weight:600}.learning-progress-table{border:1px solid var(--line);background:var(--paper);border-radius:12px;overflow-x:auto}.learning-progress-table table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.learning-progress-table td,.learning-progress-table th{border-bottom:1px solid var(--line);overflow-wrap:anywhere;min-width:120px;max-width:260px;padding:17px 20px}.learning-progress-table thead{color:var(--muted);background:#f6f7fa}.learning-progress-table th{font-weight:500}.learning-progress-table th small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.learning-progress-table tr:last-child td,.learning-progress-table tr:last-child th{border-bottom:0}.learning-status{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.learning-status.submitted{color:#8a5d1e;background:#fbf3e7;border-radius:5px;padding:5px 9px}.learning-status.done{color:#2c7056;background:#eaf5ef;border-radius:5px;padding:5px 9px}.learning-form{gap:20px;padding:24px 28px 28px;display:grid}.learning-form .learning-checkbox{align-items:center;gap:12px;font-weight:400;display:flex}.learning-checkbox input[type=checkbox]{flex-shrink:0;width:17px;height:17px;margin:0;padding:0}.learning-form-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:12px;padding-top:20px;display:flex}.learning-review-meta{align-items:baseline;gap:14px;font-size:14px;display:flex}.learning-review-meta span{color:var(--muted)}.learning-preview{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;height:min(70dvh,780px)}.learning-workspace a:focus-visible,.learning-workspace button:focus-visible,.learning-workspace summary:focus-visible{outline:2px solid var(--primary);outline-offset:4px}@media (max-width:1100px){.learning-lesson-layout{grid-template-columns:minmax(0,1fr)}.learning-lesson-aside{flex-wrap:wrap;grid-row:1;align-items:center;gap:14px;display:flex}.learning-lesson-aside h2,.learning-lesson-aside hr,.learning-lesson-aside>p{display:none}.learning-lesson-aside .btn{width:auto;margin:0}.learning-lesson-aside label{min-width:150px}}@media (max-width:760px){.learning-courses{grid-template-columns:minmax(0,1fr);gap:18px}.learning-course,.learning-materials,.learning-next,.learning-task{padding:20px}.learning-summary{gap:20px}.learning-summary>div{gap:7px}.learning-summary strong{font-size:24px}.learning-summary span{font-size:11px}.learning-subjects{gap:3px}.learning-subjects button{padding:9px 11px;font-size:12px}.learning-file-row{flex-wrap:wrap}.learning-file-row>span{min-width:calc(100% - 40px)}.learning-file-row>.button-row{flex:0 0 calc(100% - 33px);gap:8px;margin-left:33px}.learning-table-hint{color:var(--muted);margin-bottom:12px;font-size:12px;display:block}.learning-queue-row .learning-subject-mark{display:none}.learning-queue-meta{max-width:85px;font-size:11px}.learning-queue-meta svg{display:none}.learning-heading h1{font-size:26px}.learning-progress-table td,.learning-progress-table th{padding:14px}}@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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}:root{--bg:#eef5f8;--paper:#ffffff;--ink:#1d394b;--muted:#536977;--primary:#0c7281;--primary-dark:#095b68;--soft:#deeff1;--line:#d6e3e8;--focus:#0c7281;--green:#14785f;--ocean:#173c52;--on-ocean:#eef7fb;--control-line:#738b99;--radius:10px}.app-shell{display:block}.sidebar{position:relative;inset:auto;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:28px;overflow:visible;padding:18px max(28px,calc((100vw - 1344px) / 2));background:var(--ocean);color:var(--on-ocean);border:0}.sidebar .brand{min-width:0}.sidebar .brand-mark{background:#306077;color:white;border-radius:10px}.sidebar .brand span,.sidebar .logout,.sidebar .user-row small,.sidebar .user-row>svg{color:#cce0e9}.sidebar .brand span{max-width:220px;overflow-wrap:anywhere}.sidebar .campus-label,.sidebar .sidebar-note{display:none}.sidebar nav{flex-direction:row;justify-content:center;gap:8px;min-width:0;flex-wrap:wrap;margin:0;padding:0}.sidebar .nav-item{color:#cce0e9;border:1px solid transparent;min-height:44px;padding:10px 14px;border-radius:8px;flex:0 1 auto}.sidebar .nav-item.active{color:var(--ocean);background:var(--on-ocean)}.sidebar .nav-item:not(.active):hover{background:#234e65;color:white}.sidebar .nav-dot{background:var(--primary)}.sidebar-bottom{display:flex;align-items:center;gap:20px;margin:0;padding:0;position:static}.sidebar .user-row{width:auto;padding:0;border:0;min-height:44px;color:var(--on-ocean)}.sidebar .user-row strong{max-width:180px;overflow-wrap:anywhere}.sidebar .avatar{background:#d9edf3;color:var(--ocean)}.sidebar :focus-visible{outline-color:#9ce0e6}.main{margin-left:0}.topbar{height:auto;min-height:52px;padding:14px max(32px,calc((100vw - 1280px) / 2));background:transparent;gap:16px}.breadcrumb span{color:var(--muted)}.topbar-right>.avatar{display:none}.workspace{max-width:1344px;padding:32px}.page-heading{margin-bottom:32px}.page-heading h1{font-size:2.25rem;font-weight:650}.page-heading p{font-size:.9375rem}.btn{border-radius:8px;min-height:44px}.btn.secondary,.campus-workspace input:not([type=checkbox]),.campus-workspace select,.modal-form input:not([type=checkbox]),.modal-form select,.modal-form textarea,.notes-tools input,.select-wrap,.table-wrap select,form select,input:not([type=checkbox]),textarea{border-color:var(--control-line)}.btn.secondary{color:var(--ink)}.btn.secondary:not(:disabled):hover,.folder-tile:hover,.new-work-card:hover{background:#f0f8fa;border-color:var(--primary)}.avatar{color:var(--primary-dark);background:var(--soft)}.avatar.small{color:var(--ocean);background:#deeff1}.teacher-layout{display:grid;grid-template-columns:236px minmax(0,1fr);align-items:start;gap:32px}.teacher-content,.teacher-navigator{min-width:0}.teacher-nav-heading{margin:0 0 16px}.teacher-nav-heading h2{font-size:.875rem}.teacher-nav-heading>span{font-size:.8125rem}.teacher-class-row{display:grid;gap:8px;margin:0;padding:0;border:0}.teacher-navigator .class-card{width:100%;padding:16px 14px;background:white;border:1px solid var(--line);color:var(--ink);border-radius:10px}.teacher-navigator .class-card.selected{border-color:var(--primary);background:var(--soft);color:var(--primary-dark)}.teacher-navigator .class-card:not(.selected):hover{background:#f6fbfc;border-color:#9cbec9}.teacher-navigator .class-card strong{font-size:.9375rem}.teacher-navigator .class-card span{font-size:.8125rem}.teacher-folders{margin-top:28px;border-top:1px solid var(--line);padding-top:24px}.teacher-folders .section-row{margin:0 0 14px;gap:8px;flex-wrap:wrap}.teacher-folders .text-button,.teacher-folders h2{font-size:.8125rem}.teacher-folders .folders-row{display:grid;gap:4px}.teacher-folders .folder-tile{min-width:0;width:100%;background:transparent;border-color:transparent;padding:12px 6px}.teacher-folders .folder-tile>span{display:none}.teacher-folders .folder-tile svg{color:var(--primary)}.teacher-folders .helper{font-size:.8125rem}.teacher-content .class-control{padding:24px 24px 18px;background:white;border:1px solid var(--line);border-top:4px solid var(--primary);border-bottom:0;border-radius:10px 10px 0 0}.teacher-content .class-control strong{font-size:1.5rem}.teacher-content .class-summary{background:white;padding:0 24px 24px;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;gap:20px}.teacher-content .class-summary .text-button{margin-left:0}.campus-panel,.modal,.source-status,.table-wrap{border-radius:10px}.campus-workspace th,th{background:#f5fafc}.artwork .visibility-label,.kind-label,.new-work-card strong,.student-name,td{color:var(--ink)}.table-wrap tr:last-child td{border-bottom:0}.campus-stats{gap:32px}.campus-stat strong{color:var(--ocean)}.source-status{background:#f0f7f9}.success-note{background:#eaf6f2;color:#145d4c;border:1px solid #b9dfd2;border-radius:10px;padding:12px 16px;margin:0 0 18px;overflow-wrap:anywhere}.work-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}.artwork{border-radius:0;background:#dfeaf0}.work-info{padding:16px}.work-title{font-weight:650}.new-work-card{border-color:#8faebb;background:#f6fbfc;border-radius:10px}.new-plus{background:var(--soft);color:var(--primary);border-radius:12px}.game-cover{background:linear-gradient(145deg,#173c52,#246579);color:#eef7fb}.game-cover>span,.game-cover>svg{color:#d0edf3}.game-planets i:nth-child(2){background:#71bdce;box-shadow:none}.folder-tile,.note-card{border-color:var(--line)}.missing-image,.trash-cover{background:#e4edf1;color:var(--muted)}.dropzone,.kind-choice button.selected{border-color:var(--primary);background:#f0f8fa}.dropzone.dragging{background:var(--soft);border-color:var(--primary)}.dropzone>span{color:var(--primary)}.kind-choice{background:#e7f1f4}.demo-panel,.file-row{background:#f4f9fb}.demo-panel,.demo-panel button,.file-row{border-color:var(--line)}.login-form label,.modal-form label{color:var(--muted)}.skeleton-card div{background:#e0ebf0}.skeleton-card span{background:#edf4f7}.login-visual{background:var(--ocean)}.login-visual,.login-visual h1{color:var(--on-ocean)}.login-visual>p{color:#cce0e9}.login-visual .brand-mark{background:#306077}.art-window-one{background:linear-gradient(#88c4d4,#d7edf2)}.art-window-two{background:#0c7281;color:#deeff1}.art-orbit{border-color:#71bdce80}.art-dot,.dot-two{background:#71bdce}.art-spark{color:#a8d8e2}.art-window-one>span,.sun{background:#c0e7ee;box-shadow:none}.login-tabs{gap:24px}.detail-images img{border-radius:8px}@media (max-width:1100px){.sidebar{gap:16px;padding:18px 24px;grid-template-columns:1fr auto}.sidebar nav{grid-column:1/-1;grid-row:2;justify-content:flex-start}.sidebar-bottom{grid-column:2;grid-row:1}.workspace{padding:28px 24px}.topbar{padding:14px 24px}.teacher-layout{grid-template-columns:216px minmax(0,1fr);gap:24px}.teacher-content .class-control{flex-wrap:wrap}}@media (max-width:760px){.sidebar{padding:18px 20px;gap:16px 12px}.sidebar .brand strong{font-size:1.125rem}.sidebar .brand span{max-width:180px}.sidebar .brand-mark{width:34px;height:34px}.sidebar .user-row>span:nth-child(2),.sidebar .user-row>svg{display:none}.sidebar-bottom{gap:10px}.sidebar .logout{font-size:0;min-width:40px;min-height:44px;padding:0;justify-content:center}.sidebar .logout svg{width:20px;height:20px}.sidebar .nav-item{font-size:.875rem;padding:10px;gap:8px}.sidebar .nav-item svg{width:18px;height:18px}.workspace{padding:24px 20px}.topbar{padding:12px 20px;flex-wrap:wrap}.page-heading h1{font-size:1.75rem}.teacher-layout{grid-template-columns:1fr;gap:24px}.teacher-class-row{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-navigator .class-card{padding:12px;grid-template-columns:1fr;gap:6px}.teacher-navigator .class-icon{display:none}.teacher-folders{margin-top:20px;padding-top:18px}.teacher-folders .folders-row{display:flex;flex-wrap:wrap;gap:8px}.teacher-folders .folder-tile{width:auto;background:white;border-color:var(--line);padding:10px 12px}.teacher-folders .text-button,.teacher-folders h2{font-size:.875rem}.teacher-content .class-control{padding:20px 18px;flex-direction:column;align-items:stretch;gap:16px}.teacher-content .class-summary{padding:0 18px 20px;gap:14px}.teacher-content .class-summary strong{font-size:1.125rem}.teacher-content .class-summary .text-button{width:100%}.work-info{padding:16px}.campus-stats{gap:20px}}@media (max-width:360px){.sidebar{padding:16px}.sidebar .brand span{max-width:128px}.sidebar-bottom{gap:4px}.topbar,.workspace{padding-left:16px;padding-right:16px}.teacher-class-row{grid-template-columns:1fr}}.login-page.login-constellation{--glass-light-x:18%;--glass-light-y:0%;--glass-edge-angle:135deg;--entry-text:#f2f8fc;--entry-muted:#aec3d3;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100svh;overflow:clip;color:var(--entry-text);background:radial-gradient(ellipse at 76% 35%,#205779 0,transparent 48%),radial-gradient(ellipse at 8% 88%,#163b40 0,transparent 42%),#081420}.login-constellation:before{content:"";opacity:.2;background-image:linear-gradient(#91c3dc0a 1px,transparent 0),linear-gradient(90deg,#91c3dc0a 1px,transparent 0);background-size:80px 80px;mask-image:linear-gradient(transparent,#000 25%,#000 80%,transparent)}.login-aurora,.login-constellation:before{position:absolute;inset:0;z-index:-1;pointer-events:none}.login-aurora{background:radial-gradient(ellipse at 54% 56%,#88d6e311 0,transparent 38%),conic-gradient(from 210deg at 74% 58%,transparent 0 55%,#8cc7ef0c 62%,transparent 72%)}.login-stars{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.login-bottom,.login-header,.login-scene{width:min(1240px,calc(100% - 112px));margin-inline:auto}.login-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:38px 28px}.login-constellation .entry-brand{display:flex;align-items:center;gap:12px;color:var(--entry-text);text-decoration:none}.entry-brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:#b1eee8;background:linear-gradient(140deg,#ffffff22,#ffffff05);border:1px solid #c4edf52e;box-shadow:inset 0 1px #ffffff36,0 6px 20px #0003}.entry-brand strong{display:block;font-size:1.125rem;font-weight:650;letter-spacing:.06em}.entry-brand small{display:block;color:#9db9cc;font-size:.6rem;letter-spacing:.22em;margin-top:3px}.login-header-note{font-size:.8125rem;color:var(--entry-muted);letter-spacing:.12em}.login-scene{flex:1;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,6vw,100px);align-items:center;padding-block:34px 52px}.login-story{padding-bottom:12px}.login-kicker{display:flex;align-items:center;gap:12px;color:#b6d1dc;font-size:.6875rem;letter-spacing:.24em}.login-kicker:before{content:"";width:30px;height:1px;background:#a1dbdf}.login-story h1{margin:25px 0 24px;font-size:clamp(3rem,5.2vw,5.1rem);line-height:1.23;font-weight:600;letter-spacing:-.055em;color:var(--entry-text)}.login-story h1 span{color:#a5e7df;background:linear-gradient(100deg,#c5eaf6,#92dfd2);background-clip:text;-webkit-text-fill-color:transparent}.login-story>p{color:#b5c9d6;max-width:350px;font-size:1rem;line-height:1.9}.login-features{display:flex;flex-wrap:wrap;gap:20px;margin-top:28px;color:#c9dce7;font-size:.8125rem}.login-features>span{display:inline-flex;align-items:center;gap:7px}.login-features svg{color:#a4ddd8}.login-memento{position:relative;display:flex;align-items:center;gap:16px;width:fit-content;margin-top:54px;padding:17px 26px 17px 18px;border-radius:19px;background:linear-gradient(125deg,#8ac6ec18,#b6f5e907);border:1px solid #d1edff29;box-shadow:inset 0 1px #ffffff29,0 16px 40px #0003;backdrop-filter:blur(14px) saturate(140%);transform:translate(calc(var(--drift-x) * -1.9),calc(var(--drift-y) * -1.6)) rotate(calc(var(--tilt-y) * -.4))}.login-memento>svg{width:54px;height:46px;color:#b1e4ec;flex-shrink:0}.login-memento strong{display:block;font-size:.875rem;font-weight:500;color:#e2f3f9}.login-memento span{display:block;font-size:.7rem;color:#afc9d6;margin-top:4px}.login-constellation .login-side{display:block;padding:0;min-width:0;background:transparent}.login-constellation .login-form{position:relative;width:100%;max-width:440px;margin-left:auto;padding:34px 34px 28px;border-radius:28px;color:var(--entry-text);background:linear-gradient(145deg,#ffffff14,#ccecff04 46%,#b5f3e90a),#07172512;border:1px solid #d5eeff6b;box-shadow:inset 0 2px 3px #ffffff38,inset 1px 0 3px #ffffff17,inset 0 -2px 4px #b1e5f22b,0 24px 60px #020e2238,0 4px 14px #020e2224;backdrop-filter:blur(5px) saturate(135%);transform:none}.login-constellation .login-form:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse at var(--glass-light-x) var(--glass-light-y),#e0f9ff16,transparent 52%),linear-gradient(125deg,#ffffff0b,transparent 32% 72%,#b8e6ff09)}.login-constellation .login-form:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;pointer-events:none;background:linear-gradient(var(--glass-edge-angle),#ffffffa3 0,#dcf6ff1a 24%,#ffffff05 45%,#d6f4ff70 72%,#a9e7ed20 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.login-motion-toggle{position:absolute;top:38px;right:max(56px,calc((100% - 1240px) / 2));min-height:44px;padding:10px 12px;color:#c5dbe7;font-size:.75rem;background:transparent;border:1px solid #c7e5f638;border-radius:22px}.login-lens-defs{position:absolute;pointer-events:none;overflow:hidden}@media (max-width:960px){.login-motion-toggle{right:28px}}@media (max-width:740px){.login-motion-toggle{top:23px;right:20px}}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.login-motion-toggle{display:none}}.login-form-top{display:flex;align-items:center;gap:10px;padding-bottom:24px;color:#c6dfeb;font-size:.6875rem;letter-spacing:.1em}.login-form-top svg{color:#a7e5de}.login-form-top:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#c4e6ff26,transparent);margin-left:10px}.login-constellation .login-form>h2{font-size:1.65rem;font-weight:600;letter-spacing:-.035em;color:#f2f8fc;margin:0 0 10px}.login-constellation .login-form>p{color:var(--entry-muted);font-size:.8125rem;line-height:1.65;margin-bottom:24px}.login-constellation .login-tabs{display:flex;gap:3px;padding:4px;border-radius:12px;border:1px solid #cfebff1b;background:#06121f4d;margin-bottom:24px}.login-constellation .login-tabs button{flex:1;min-height:40px;padding:7px 4px;border:1px solid transparent;border-radius:9px;color:#b7cbda;font-size:.8125rem;white-space:normal}.login-constellation .login-tabs button.active{background:linear-gradient(#d5eaff26,#d5eaff12);border-color:#d9f0ff38;box-shadow:inset 0 1px #ffffff24,0 3px 10px #0002;color:#f1faff}.login-constellation .login-form form{gap:17px}.login-constellation .login-form label{color:#d6e6ee;font-size:.8125rem;gap:8px}.login-constellation .login-form input{width:100%;min-height:48px;border-radius:11px;border:1px solid #cae6fa5c;color:#f0f8fc;background:#071728b8;box-shadow:inset 0 1px 4px #0002;padding:12px 14px;font-size:.9375rem}.login-constellation .login-form input::placeholder{color:#9fb9cb}.login-constellation .login-form input:focus{border-color:#a7e7e0;box-shadow:0 0 0 3px #92ddd51c}.login-constellation .login-form input:-webkit-autofill{-webkit-text-fill-color:#effaff;box-shadow:inset 0 0 0 100px #142c40;caret-color:#effaff}.login-constellation .login-form .btn.primary{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;margin-top:5px;border-radius:11px;color:#082c35;background:linear-gradient(115deg,#c5eef4,#9ce2d4);border:1px solid #d8f8f5;box-shadow:inset 0 1px #fff9,0 7px 22px #60cdbb1c;font-weight:650}.login-constellation .login-form .btn.primary:not(:disabled):hover{background:linear-gradient(115deg,#d9f7fc,#b4f0e3);box-shadow:inset 0 1px #fff9,0 10px 25px #60cdbb30}.login-constellation .forgot{color:#b6cedd;font-size:.75rem;min-height:44px;margin-top:10px}.login-constellation .login-foot{color:#b3ccd9;padding-top:18px;margin-top:8px;border-top:1px solid #c6e3f21c;font-size:.7rem}.login-constellation .form-error{color:#ffe4e1;background:#4e252dcc;border:1px solid #efaea45e;font-size:.8125rem}.login-constellation .demo-panel{background:#ffffff0a;border-color:#c7e5f626;color:#bed4e0}.login-constellation .demo-panel>span{color:#bed4e0}.login-constellation .demo-panel button{min-height:40px;color:#d9eff4;border-color:#c8e3f84d;border-radius:8px;background:#ffffff08}.login-constellation a:focus-visible,.login-constellation button:focus-visible,.login-constellation input:focus-visible{outline:2px solid #b3f2e8;outline-offset:4px}.login-bottom{display:flex;justify-content:space-between;padding-block:16px 24px;gap:18px;color:#9bb5c7;font-size:.6875rem;letter-spacing:.08em}[data-theme=sea-salt].app-shell{background:radial-gradient(ellipse at 84% 0,#daedf3,transparent 48%),#f0f5f7}.app-shell[data-theme=sea-salt] .sidebar{background:linear-gradient(120deg,#153a50ed,#163e53e8);border-bottom:1px solid #c9eef328;box-shadow:inset 0 1px #ffffff1a,0 8px 26px #0d344c0a;backdrop-filter:blur(20px) saturate(140%)}.app-shell[data-theme=sea-salt] .topbar{background:#f4f9fbba;border-bottom:1px solid #ffffffdc;backdrop-filter:blur(18px) saturate(130%)}.modal-backdrop{background:#0c263b70;backdrop-filter:blur(9px)}.modal{border:1px solid #ffffffed;background:linear-gradient(140deg,#fffffff5,#f3f9fafa),#fff;box-shadow:inset 0 1px #fff,0 28px 80px #0c314c38}@media (max-width:960px){.login-bottom,.login-header,.login-scene{width:calc(100% - 56px)}.login-scene{gap:32px;grid-template-columns:1fr 1fr}.login-story h1{font-size:3rem}.login-constellation .login-form{padding:28px 24px}.login-features{gap:10px 16px}}@media (max-width:740px){.login-bottom,.login-header,.login-scene{width:calc(100% - 40px)}.login-header{padding-block:24px}.login-header-note{display:none}.login-scene{grid-template-columns:minmax(0,1fr);padding-block:14px 28px;gap:30px}.login-story{padding-bottom:0}.login-story h1{font-size:clamp(2.35rem,8vw,3rem);margin-block:16px 13px}.login-story>p{font-size:.875rem;max-width:100%}.login-features{margin-top:16px;font-size:.75rem}.login-memento{display:none}.login-constellation .login-form{max-width:none;padding:26px 24px;border-radius:22px}.login-bottom{flex-wrap:wrap;padding-block:12px 20px}}@media (max-width:360px){.login-bottom,.login-header,.login-scene{width:calc(100% - 32px)}.login-constellation .login-form{padding:24px 18px}.login-features{gap:10px}}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.login-aurora,.login-constellation .login-form,.login-memento{transform:none}}@media (prefers-reduced-transparency:reduce){.login-constellation .login-form{background:#152b3d;backdrop-filter:none!important}.app-shell[data-theme=sea-salt] .sidebar{background:#173c52}.app-shell[data-theme=sea-salt] .topbar{background:#f4f9fb}.modal-backdrop{backdrop-filter:none}}@supports not (backdrop-filter:blur(1px)){.login-constellation .login-form{background:#152b3df5}.login-memento{background:#193242}}@media (forced-colors:active){.login-aurora,.login-memento,.login-stars{display:none}.login-constellation .login-form,.login-constellation .login-form input,.login-constellation .login-tabs{background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none}.login-story h1 span{-webkit-text-fill-color:CanvasText}}