:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#1d2e49;background:#f3f6fb;font-size:14px;line-height:1.55;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--primary: #315fd6;--primary-soft: #eef3ff;--ink: #1d2e49;--muted: #6c7d96;--line: #e2e8f2;--success: #217e6e;--radius: 12px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{min-height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 13px;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover:not(:disabled){border-color:#a9bde9;background:#f6f9ff}button:disabled{cursor:default;opacity:.55}button.primary{color:#fff;border-color:var(--primary);background:var(--primary)}button.primary:hover:not(:disabled){background:#254fbf}button.text{color:var(--primary);background:transparent;border-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9fbcf8;outline-offset:2px}input,select,textarea{width:100%;min-height:40px;border:1px solid #d8e0ee;border-radius:8px;padding:8px 11px;background:#fff;color:var(--ink)}textarea{resize:vertical;min-height:85px}label{display:grid;gap:7px;color:#455a78;font-weight:500}h1,h2,h3,p{margin:0}h1{font-size:25px;letter-spacing:-.5px;line-height:1.4}h2{font-size:17px;line-height:1.4}h3{font-size:14px}.muted{color:var(--muted)}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:20px}.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:20px;background:#edf8f5;color:var(--success);padding:3px 9px;font-size:12px;white-space:nowrap}.badge.neutral{background:#eff2f7;color:#6b7b92}.error{color:#b13f4d;background:#fff3f4;border:1px solid #f3d8dd;border-radius:8px;padding:9px 12px}.empty{padding:34px 20px;color:var(--muted);text-align:center}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field-grid .full{grid-column:1 / -1}@media(max-width:640px){.field-grid{grid-template-columns:minmax(0,1fr)}.panel{padding:15px}}.initializing{display:grid;place-content:center;justify-items:center;min-height:100dvh;gap:16px;color:var(--primary)}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;color:#fff}.brand small{display:block;font-size:9px;letter-spacing:1.4px;margin-top:3px;font-weight:400;color:#a9bfdc}.brand-mark{width:40px;height:40px;display:grid;place-items:center;background:#446ed6;border:1px solid #ffffff20;border-radius:11px}.eyebrow{display:block;color:#879ab8;font-size:12px;letter-spacing:.4px;margin-bottom:8px}.login-page{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,1fr);background:#fff}.student-login-page .login-story{background:radial-gradient(ellipse at 84% 80%,#6051ad 0,transparent 58%),linear-gradient(150deg,#221d44,#373064)}.student-login-page .login-form-wrap{background:#f8f7fd}.student-login-page .login-button{background:#524196;border-color:#524196}.student-login-page .login-button:hover:not(:disabled){background:#42317f}.student-login-code{padding:13px;border-radius:10px;background:#282140;color:#f4eaff;font-size:13px;line-height:1.65}.student-login-code span{color:#dab5ff}.portal-login-links{display:flex;flex-wrap:wrap;gap:8px 20px;border-top:1px solid var(--line, #dce3ec);padding-top:16px}.portal-login-links a{color:#36547a;font-size:14px;text-underline-offset:3px}.login-story{position:relative;overflow:hidden;background:radial-gradient(ellipse at 10% 100%,#315d9c,transparent 60%),linear-gradient(145deg,#142b4a,#1e3e68);padding:38px 10%;display:flex;flex-direction:column}.story-copy{color:#fff;margin-top:clamp(50px,9vh,100px)}.story-copy .eyebrow{color:#aac4ef;letter-spacing:2px;margin-bottom:16px}.story-copy h1{font-size:clamp(30px,3.3vw,47px);font-weight:600;line-height:1.5;letter-spacing:-1px}.story-copy p{color:#afc6e4;margin-top:18px;line-height:1.9}.story-footer{margin-top:auto;color:#97afd0;font-size:12px;letter-spacing:2px}.story-illustration{width:290px;height:230px;margin:24px auto;position:relative}.orbit{position:absolute;width:220px;height:220px;border:1px solid #87afe73a;border-radius:50%;left:35px;top:0}.orbit.two{transform:scale(1.4);border-style:dashed;opacity:.6}.illustration-card{position:absolute;width:236px;top:28px;left:28px;background:#fff;border:6px solid #e4eaf3;box-shadow:0 18px 50px #06192e3b;border-radius:17px;padding:15px;transform:rotate(-5deg)}.mini-logo{background:#edf2ff;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--primary)}.green-dot{width:7px;height:7px;background:#6bba9b;border-radius:50%;margin-left:auto}.skeleton{background:#edf1f7;height:6px;border-radius:8px;margin-top:13px}.skeleton.long{width:75%}.skeleton.short{width:46%;margin-top:8px}.mini-bars{height:65px;display:flex;align-items:end;gap:8px;margin-top:15px}.mini-bars i{flex:1;height:46%;border-radius:4px 4px 0 0;background:#b5c8f3}.mini-bars i:nth-child(2){height:64%}.mini-bars i:nth-child(3){height:49%}.mini-bars i:nth-child(4){height:80%;background:#6d92e5}.mini-bars i:nth-child(5){height:67%}.mini-bars i:nth-child(6){height:100%;background:#416ed6}.floating-icon{position:absolute;right:-3px;bottom:20px;width:59px;height:59px;background:#e0f0eb;border:5px solid #ffffffab;display:grid;place-items:center;border-radius:16px;color:#267e6a;transform:rotate(8deg)}.login-form-wrap{display:grid;place-items:center;padding:40px}.login-form{width:min(100%,365px);display:grid;gap:22px}.login-kicker{font-size:13px;color:var(--primary);margin-bottom:-15px}.login-form h2{font-size:30px;margin-bottom:-14px}.login-form>.muted{margin-bottom:6px}.login-form input{height:46px;background:#fcfdff}.login-button{height:46px;justify-content:space-between;padding-inline:17px;margin-top:3px}.login-help{display:flex;justify-content:center;align-items:center;gap:6px;color:#8b9ab0;font-size:12px}.app-shell{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;background:linear-gradient(165deg,#192f4d,#14253d);display:flex;flex-direction:column;padding:25px 13px 18px}.sidebar .brand{margin:0 5px 31px;font-size:16px}.sidebar .brand-mark{width:35px;height:35px}.sidebar .brand small{font-size:8px}.sidebar-label{font-size:10px;color:#7c94b6;padding:0 15px;letter-spacing:1px;margin:17px 0 9px}.sidebar nav button{width:100%;justify-content:start;border:0;background:transparent;color:#aec1dc;height:43px;padding-inline:15px;margin-top:4px;gap:11px}.sidebar nav button.active{background:#32578a;color:#fff;box-shadow:inset 3px 0 #9bbaf4}.sidebar nav button:hover{background:#294769;color:#fff}.sidebar-bottom{border-top:1px solid #ffffff13;display:flex;align-items:center;gap:10px;margin-top:auto;padding:17px 9px 0;color:#dfebff;font-size:13px}.sidebar-bottom small{display:block;color:#8ba4c8;font-size:11px;margin-top:2px}.sidebar-avatar{display:grid;place-items:center;width:33px;height:33px;background:#39577b;border-radius:10px}.app-main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;flex-wrap:wrap;gap:18px;min-height:65px;padding:12px 26px;background:#fff;border-bottom:1px solid var(--line)}.context-selector{display:flex;align-items:center;gap:9px;font-weight:400;font-size:12px}.context-selector select{width:150px;min-height:35px;padding:5px 8px}.topbar-spacer{flex:1}.account-name{font-size:12px;color:var(--muted)}.mobile-menu{display:none}.breadcrumb{display:flex;align-items:center;gap:8px;padding:11px 28px;color:#8b9ab1;font-size:12px;background:#fbfcff;border-bottom:1px solid #e8edf5}.breadcrumb span{color:#536887}.content{width:100%;max-width:1440px;margin:0 auto;padding:26px 30px 40px}.page-heading{margin-bottom:24px}.page-heading .muted{font-size:12px;margin-top:6px}.page-heading .eyebrow{margin-bottom:5px}.welcome-banner{padding:25px 27px;border:1px solid #dbe5fb;border-radius:13px;background:linear-gradient(110deg,#edf3ff 25%,#e4edff);display:flex;justify-content:space-between;align-items:center;overflow:hidden}.welcome-banner h2{font-size:21px;font-weight:600;color:#284e8f}.welcome-banner .eyebrow{color:#5b7db5}.welcome-banner p{color:#6d85ac;margin-top:8px;font-size:12px}.banner-symbol{border:1px solid #c7d7f4;padding:18px;border-radius:20px;transform:rotate(-9deg);color:#7095d5;margin:-7px 17px -7px 20px;background:#ffffff60;box-shadow:14px -12px #cbdaf440}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.metric-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:start;gap:12px;padding:19px;text-align:left;box-shadow:0 3px 8px #18325303}.metric-card>svg{margin-left:auto;color:#a5b6ce}.metric-icon{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:11px}.metric-icon.blue{color:#3a6ace;background:#edf3ff}.metric-icon.green{color:#368c77;background:#ecf7f1}.metric-icon.violet{color:#8563be;background:#f4effb}.metric-card p{font-size:12px;color:#73839c;margin-bottom:5px}.metric-card strong{font-size:29px;font-weight:600;color:#223d64;font-variant-numeric:tabular-nums;line-height:1.2}.metric-unit{color:#8997ad;margin-left:5px;font-size:12px}.metric-card small{display:block;color:#9aa8bd;font-size:11px;margin-top:8px}.home-columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:18px;align-items:start}.panel-title{margin-bottom:20px}.panel-title .muted{font-size:12px}.notice-item{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:#f7f9fd;border:1px solid #edf0f7;padding:17px 14px}.notice-dot{width:8px;height:8px;background:#5d88e1;border-radius:50%;flex-shrink:0}.notice-item>svg{margin-left:auto;color:#8ea6ca;flex-shrink:0}.notice-item p{font-size:12px;color:#8292aa;margin-top:5px}.campus-summary h3{font-size:20px;margin-bottom:8px;font-weight:600}.campus-summary dl{display:grid;grid-template-columns:65px minmax(0,1fr);gap:12px 14px;font-size:12px;margin:22px 0 12px}.campus-summary dt{color:#8999b1}.campus-summary dd{margin:0;color:#526783;overflow-wrap:anywhere}.campus-summary button{margin-left:-12px}.app-footer{margin-top:auto;padding:14px;text-align:center;font-size:11px;color:#a2afc0}.filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:16px;background:#f7f9fd;border:1px solid #ebeff7;border-radius:9px;margin-bottom:23px}.filters label{font-size:12px;min-width:150px}.filters .search-field{width:260px}.input-icon{position:relative}.input-icon svg{position:absolute;top:12px;left:11px;color:#9aa9be}.input-icon input{padding-left:35px}.filter-actions{display:flex;gap:7px}.list-heading{margin-bottom:16px}.list-heading .muted{font-size:12px}.count-pill{margin-left:8px;color:#6580af;font-size:12px;background:#edf2fa;padding:2px 7px;border-radius:6px}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;width:100%;min-width:640px;text-align:left}th{background:#f5f8fc;font-size:12px;color:#637995;font-weight:500;height:44px}th,td{padding:12px 17px;white-space:nowrap}td{border-top:1px solid #edf0f6;color:#5d718e;font-size:13px}tbody tr:hover{background:#fafcff}.table-name{display:inline-flex;align-items:center;gap:9px;color:#30496d;font-weight:500}.table-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:7px;background:#eef3fc;color:#6c8cbe}.code-cell{color:#8b9bb3;font-variant-numeric:tabular-nums}.pagination{display:flex;justify-content:end;align-items:center;flex-wrap:wrap;gap:10px;padding-top:19px;font-size:12px;color:#8496ae}.pagination>span:first-child{margin-right:auto}.pagination button{font-size:12px;min-height:32px;padding:5px 10px}.page-message{margin-bottom:18px;display:flex;align-items:center;justify-content:space-between}.success-message{display:flex;gap:7px;align-items:center;background:#eaf7f0;color:#2f7a60;border:1px solid #d1eadb;padding:10px 14px;border-radius:8px;margin-bottom:18px}.campus-dialog{width:min(600px,calc(100vw - 28px));max-height:90dvh;overflow:auto;border:1px solid #e3e9f3;border-radius:15px;padding:0;color:var(--ink);box-shadow:0 25px 90px #0f29433b}.campus-dialog::backdrop{background:#132b4c66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog-header{padding:20px 24px;border-bottom:1px solid var(--line)}.dialog-header p{font-size:12px;margin-top:4px}.dialog-body{display:grid;grid-auto-rows:max-content;align-content:start;gap:17px;padding:23px 24px}.dialog-body>.muted{font-size:12px}.dialog-footer{justify-content:end;padding:16px 24px;background:#fafcff;border-top:1px solid var(--line)}.menu-scrim{display:none}@media(max-width:1100px){.metric-card{padding:16px 13px;gap:8px}.metric-icon{width:34px;height:34px}.metric-card>svg{display:none}}@media(max-width:850px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{display:none;position:fixed;z-index:5;width:230px;left:0;top:0}.menu-open .sidebar{display:flex}.menu-scrim{display:block;position:fixed;inset:0;width:100%;height:100%;z-index:4;background:#162e4c70;border:0;border-radius:0}.mobile-menu{display:inline-flex;min-height:33px;padding:6px}.content{padding:20px}.topbar{padding:10px 17px;gap:12px}.account-name{display:none}.context-selector select{width:130px}.home-columns{grid-template-columns:minmax(0,1fr) minmax(230px,1fr)}}@media(max-width:640px){.login-page{display:block}.login-story{padding:22px;min-height:215px}.story-copy{margin-top:28px}.story-copy h1{font-size:24px}.story-copy p,.story-illustration,.story-footer{display:none}.story-copy .eyebrow{font-size:11px;margin-bottom:6px}.login-form-wrap{padding:30px 24px}.login-form h2{font-size:25px}.login-form{gap:20px}.topbar{gap:9px}.context-selector{gap:5px}.context-selector select{width:112px;font-size:12px}.context-selector>span{display:none}.topbar .text{font-size:12px;padding:5px}.topbar-spacer{display:none}.breadcrumb{padding:10px 17px}.content{padding:18px 14px 28px}h1{font-size:23px}.welcome-banner{padding:20px}.welcome-banner h2{font-size:18px}.banner-symbol{margin-right:0;padding:12px}.banner-symbol svg{width:33px;height:33px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:13px 0}.metric-card{display:block;padding:15px}.metric-icon{margin-bottom:10px}.metric-card strong{font-size:26px}.home-columns{grid-template-columns:minmax(0,1fr);gap:13px}.filters{padding:12px;gap:10px}.filters .search-field{flex:1 1 100%;width:auto}.filters>label{flex:1}.page-heading{margin-bottom:18px}.dialog-header,.dialog-body{padding:18px}}.sidebar nav{overflow-y:auto;min-height:0;padding-bottom:16px}.sidebar nav .sidebar-label{margin-top:20px}.master-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;padding:22px 24px;background:linear-gradient(180deg,#fcfdff,#f9fbfe);border-bottom:1px solid var(--line)}.master-filters>label{flex:0 1 180px;min-width:150px;margin:0}.master-filters>.master-query{flex:1 1 240px;max-width:340px}.master-filters .filter-actions{display:flex;gap:8px;padding-bottom:0}.master-filters input,.master-filters select{height:40px}.master-table{min-width:760px}.master-table td{max-width:280px;overflow-wrap:anywhere}.master-table .record-name{font-weight:600;padding-left:0;text-align:left}.master-table .action-column{white-space:nowrap;text-align:right;background:#fff;position:sticky;right:0}.master-table thead .action-column{background:#f8fafc}.master-table td.code-cell,.code-cell{font-variant-numeric:tabular-nums}.master-panel .list-heading{padding-top:20px}.master-dialog{width:min(720px,calc(100vw - 36px))}.master-dialog .dialog-body{max-height:calc(100dvh - 240px);overflow-y:auto;padding-bottom:26px;min-height:180px}.master-dialog .field-grid{align-items:start;gap:20px}.required-mark{color:#dd5864;display:inline;margin-left:3px}.field-hint{font-size:12px;line-height:1.7;font-weight:400}.checkbox-line{display:flex;gap:9px;align-items:center;font-weight:400;font-size:13px}.checkbox-line input{width:16px;height:16px;min-height:0;flex:0 0 16px;accent-color:var(--primary)}.segmented{display:flex;background:#f1f5fa;padding:4px;border-radius:9px;gap:4px;margin-bottom:22px}.segmented button{flex:1;border:0;background:transparent;color:var(--muted)}.segmented button.selected{background:#fff;color:var(--primary);box-shadow:0 2px 6px #16396012}.staff-create,.member-picker{margin-bottom:24px}.permission-editor{border:1px solid var(--line);padding:20px;border-radius:12px;margin-top:24px}.permission-editor h3{display:flex;align-items:center;gap:8px;font-size:14px}.permission-editor fieldset{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:0;padding:14px 0;border-bottom:1px solid var(--line)}.permission-editor fieldset:last-child{border-bottom:0;padding-bottom:0}.permission-editor legend{padding:16px 0 0;color:var(--muted);font-size:12px}.remote-select{position:relative;min-width:0;font-size:13px;font-weight:400}.remote-value{display:flex;border:1px solid var(--line);border-radius:8px;background:#fff;min-height:40px}.remote-trigger{flex:1;min-width:0;text-align:left;justify-content:space-between;background:none;border:0;line-height:1.6;padding:8px 11px;overflow-wrap:anywhere}.remote-value>.text{padding:5px;margin-right:4px}.remote-popover{position:absolute;top:calc(100% + 5px);left:0;width:max(100%,260px);max-width:min(360px,78vw);z-index:30;background:#fff;border:1px solid var(--line);box-shadow:0 8px 28px #18365326;border-radius:10px;overflow:hidden}.remote-search{display:flex;align-items:center;gap:7px;padding:8px;border-bottom:1px solid var(--line)}.remote-search input{min-width:0;width:100%;border:0;min-height:32px;height:32px;padding:5px}.remote-option{display:flex;align-items:center;justify-content:space-between;text-align:left;border:0;border-radius:0;width:100%;background:#fff;padding:9px 13px;font-size:13px}.remote-option.selected,.remote-option:hover{background:#eef4ff;color:var(--primary)}.remote-paging{display:flex;justify-content:space-between;align-items:center;padding:8px;border-top:1px solid var(--line);color:var(--muted)}.remote-paging button{padding:5px 8px;font-size:11px;min-height:28px}.remote-empty{padding:12px;color:var(--muted)}.detail-dialog{width:min(1000px,calc(100vw - 36px));padding:0;border:1px solid #dce5f0;border-radius:16px;box-shadow:0 24px 100px #122b4e35;color:var(--text);max-height:calc(100dvh - 48px)}.detail-dialog::backdrop{background:#172b4d66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.detail-header{display:flex;align-items:center;gap:18px;padding:28px 30px;border-bottom:1px solid var(--line);background:linear-gradient(110deg,#f3f7ff,#fff 72%)}.detail-avatar{width:56px;height:56px;display:grid;place-items:center;color:var(--primary);border:1px solid #d7e4ff;background:#eaf1ff;border-radius:16px}.detail-header h2{font-size:23px;letter-spacing:-.5px;margin:4px 0 8px}.detail-header p{display:flex;align-items:center;gap:10px;margin:0;font-size:12px}.detail-close{margin-left:auto;align-self:flex-start}.detail-body{background:#f6f8fc;padding:24px;display:grid;gap:18px;max-height:calc(100dvh - 260px);overflow:auto}.detail-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:22px 24px}.detail-card h3{font-size:15px;margin:0 0 16px;display:flex;align-items:center;gap:8px}.detail-card .row h3{margin:0}.detail-grid{display:grid;grid-template-columns:110px minmax(0,1fr) 110px minmax(0,1fr);gap:20px 14px;margin:24px 0 8px;font-size:13px}.detail-grid dt{color:var(--muted)}.detail-grid dd{margin:0;line-height:1.6;overflow-wrap:anywhere;color:#253957}.detail-caption{font-size:12px;margin:10px 0 20px}.roster-card .table-scroll{margin:0 -24px}.roster-card .pagination{padding-bottom:0}.permission-detail{margin-top:18px}.permission-detail h4{color:var(--muted);font-size:12px;font-weight:400;margin:0 0 10px}.tag-wrap{display:flex;flex-wrap:wrap;gap:8px}.audit-json{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.8;background:#f7f9fc;border:1px solid var(--line);padding:16px;border-radius:8px;max-height:300px;overflow:auto}.reason-field{margin:22px 0}.enrollment-student{font-size:18px;font-weight:600}.enrollment-student small{font-size:12px;font-weight:400;margin-left:12px}.overbook-note{display:block;color:#b87422;font-size:11px;margin-top:4px}@media(max-width:850px){.master-filters{padding:16px;gap:12px}.detail-grid{grid-template-columns:90px minmax(0,1fr)}.detail-body{padding:16px}.detail-header{padding:22px}.master-dialog .field-grid{grid-template-columns:minmax(0,1fr)}.detail-card{padding:18px}.roster-card .table-scroll{margin:0 -18px}.detail-card .row{gap:10px}.permission-editor fieldset{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.master-filters>label{flex:1 1 130px}.master-filters>.master-query{max-width:none}.master-filters .filter-actions{flex:1 1 100%}.list-heading>small{display:none}.detail-header{gap:12px}.detail-avatar{width:44px;height:44px;border-radius:12px}.detail-header h2{font-size:20px}.detail-body{max-height:calc(100dvh - 240px)}.detail-grid{gap:16px 8px;font-size:12px}.page-heading .primary{white-space:nowrap}}.master-dialog>form{display:flex;flex-direction:column;max-height:min(calc(90dvh - 2px),calc(100dvh - 80px))}.master-dialog .dialog-body{flex:1;min-height:0;max-height:none;overflow-y:auto}.master-dialog .dialog-header,.master-dialog .dialog-footer{flex-shrink:0}.remote-popover{max-height:280px;overflow-y:auto}.remote-search{position:sticky;top:0;background:#fff;z-index:1}.remote-paging{position:sticky;bottom:0;background:#fff}.timeline{margin-top:20px}.timeline article{display:flex;gap:12px;position:relative;padding:0 0 22px}.timeline article>div{flex:1}.timeline-dot{width:9px;height:9px;margin-top:6px;border-radius:50%;background:#5a81dd;box-shadow:0 0 0 4px #edf3ff;flex-shrink:0}.timeline article p{white-space:pre-wrap;line-height:1.8;margin-top:9px;font-size:13px;color:#435878}.timeline article b{font-size:13px}.timeline article small{font-size:11px}.form-note{padding:14px 16px;background:#f1f6ff;color:#5271a2;border:1px solid #dfE9fb;border-radius:8px;font-size:12px;line-height:1.8;margin-bottom:20px}.quote-card{margin-top:24px;border:1px solid #dce7fc;background:linear-gradient(110deg,#f0f5ff,#fafcff);padding:20px;border-radius:10px;display:grid;gap:8px}.quote-card>span{font-size:12px;color:var(--muted)}.quote-card>strong{font-size:24px;color:var(--primary);font-variant-numeric:tabular-nums}.quote-card>small{font-size:12px}.contract-form-dialog{width:min(900px,calc(100vw - 36px))}.contract-lines{margin-top:24px}.contract-line-card{background:#fafcff;border:1px solid var(--line);padding:20px;border-radius:10px;margin-top:16px}.contract-line-card>.row{margin-bottom:18px}.contract-line-card b{font-size:13px}.contract-lines>.row h3{margin:0}.contract-number{font-family:ui-monospace,Consolas,monospace;font-size:11px;letter-spacing:0;white-space:nowrap;font-variant-numeric:tabular-nums}.finance-table td{max-width:300px}.finance-table .numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:#314465}.finance-summary{display:flex;flex-wrap:wrap;gap:22px;padding:20px 24px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.finance-summary b{font-size:16px;color:var(--ink);margin:0 6px;font-weight:600;font-variant-numeric:tabular-nums}.rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.rule-card{padding:22px}.rule-card h2{margin:18px 0 10px}.rule-card p{font-size:12px;line-height:1.9;min-height:24px}.rule-card>.text{margin-top:18px;padding-left:0}.contract-detail .detail-grid .contract-number{white-space:normal;overflow-wrap:anywhere}.contract-detail .detail-grid{grid-template-columns:95px minmax(0,1fr) 95px minmax(0,1fr)}@media(max-width:1100px){.rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.rule-grid{grid-template-columns:minmax(0,1fr)}.contract-detail .detail-grid{grid-template-columns:90px minmax(0,1fr)}.finance-summary{padding:16px;gap:14px}.timeline article .row{align-items:flex-start;flex-direction:column;gap:4px}.detail-card>.row{flex-wrap:wrap}.contract-line-card{padding:16px}}.transfer-summary{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:18px;align-items:center;padding:20px;border:1px solid #dfe8fa;border-radius:12px;background:linear-gradient(100deg,#f3f7ff,#fafcff);margin-bottom:24px}.transfer-summary>div{display:grid;gap:9px}.transfer-summary small,.transfer-summary span{font-size:12px;color:var(--muted)}.transfer-summary b{font-size:15px}.transfer-summary strong{font-size:25px;font-variant-numeric:tabular-nums;color:var(--primary)}.transfer-summary>svg{color:#89a5db}.account-overview{display:grid;gap:8px;background:#f6f9ff;border:1px solid var(--line);padding:18px;border-radius:10px;margin-bottom:20px}.account-overview b{font-size:14px}.account-overview span{font-size:12px;color:var(--muted)}.adjustment-dialog{width:min(780px,calc(100vw - 36px))}.voucher-upload{margin:20px 0;display:grid;gap:8px}.field-caption{font-size:13px;color:#455a78;font-weight:500}.voucher-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;background:#fafcff;border:1px dashed #d8e2f3;border-radius:8px;font-size:12px}.voucher-controls small{font-size:11px}.voucher-controls a{color:var(--primary);overflow-wrap:anywhere}.voucher-upload input[hidden]{display:none}.refund-selection{margin:16px -24px}.refund-selection input[type=number]{width:110px}.refund-selection .checkbox-line{white-space:nowrap}.reconciliation-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.reconciliation-overview article{display:grid;gap:10px;padding:24px;background:#fff}.reconciliation-overview small{color:var(--muted);font-size:12px}.reconciliation-overview strong{font-size:27px;color:#247e6d;font-weight:600;font-variant-numeric:tabular-nums}.reconciliation-overview article.warning strong{color:#c17a26}.contract-number{font-size:12px}.finance-table td:last-child{white-space:nowrap}.rule-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}@media(max-width:640px){.transfer-summary{grid-template-columns:minmax(0,1fr);gap:14px}.transfer-summary>svg{display:none}.reconciliation-overview{grid-template-columns:minmax(0,1fr)}.reconciliation-overview article{padding:18px}.refund-selection{margin:16px -18px}.voucher-controls{align-items:flex-start;gap:8px}.rule-grid{grid-template-columns:minmax(0,1fr)}}.teaching-panel{padding-top:20px}.calendar-toolbar{padding:18px 0 20px}.calendar-toolbar input{width:155px}.calendar-toolbar .muted{font-size:12px}.segmented{display:flex;background:#f0f4fc;border:1px solid #e5ebf6;border-radius:9px;padding:3px;gap:2px}.segmented button{border:0;background:transparent;color:#7185a3;padding:7px 16px;min-height:32px}.segmented button.active{background:#fff;color:var(--primary);box-shadow:0 2px 5px #254d8c12}.calendar-scroll{overflow:auto;max-height:720px;border:1px solid var(--line);border-radius:10px}.weekly-calendar{display:grid;grid-template-columns:64px repeat(var(--day-count),minmax(140px,1fr));min-width:1044px;background:#fff}.weekly-calendar.single-day{min-width:350px}.time-heading,.day-heading{position:sticky;top:0;z-index:2;background:#f8faff;border-bottom:1px solid var(--line);padding:14px 6px;text-align:center;color:#7e90ac;font-size:12px}.time-heading{display:grid;place-items:center;left:0;z-index:4}.day-heading{display:grid;gap:4px;border-left:1px solid #edf1f7}.day-heading strong{font-size:15px;color:#365171;font-weight:600}.day-heading.today{background:#eef3ff}.day-heading.today strong,.day-heading.today span{color:var(--primary)}.time-axis{position:sticky;left:0;background:#fbfcff;z-index:1;border-right:1px solid var(--line)}.time-axis>span{position:absolute;right:12px;padding-top:7px;color:#8c9db3;font-size:11px;font-variant-numeric:tabular-nums}.day-column{position:relative;min-width:0;border-left:1px solid #edf1f7;background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,#edf1f7 59px,#edf1f7 60px)}.lesson-block{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:1px solid #cfddfb;border-left:3px solid #5683ec;border-radius:6px;padding:7px 8px;background:linear-gradient(130deg,#edf3ff,#f6f9ff);text-align:left;color:#4e6c97;overflow:hidden;min-height:0;font-size:11px;line-height:1.5}.lesson-block strong{font-size:12px;color:#315080;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-block span,.lesson-block small{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;flex-shrink:0}.lesson-block:hover{background:#e6efff;border-color:#83a6ef;box-shadow:0 4px 12px #31548812;z-index:1}.lesson-mark{color:#2d8a74}.teaching-summary{padding:18px 0 22px;display:grid;gap:20px}.teaching-summary .row{font-size:12px}.teaching-summary button{min-height:32px;font-size:12px}.summary-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #e4ebf7;border-radius:10px;background:#f9fbff}.summary-metrics>span{display:grid;gap:9px;padding:18px 20px;color:#7b8fae;font-size:12px}.summary-metrics>span+span{border-left:1px solid var(--line)}.summary-metrics b{font-size:22px;color:#345583;font-weight:600;font-variant-numeric:tabular-nums}.schedule-dialog{width:min(820px,calc(100vw - 36px))}.weekday-picker{display:flex;gap:15px;padding:14px;border:1px solid var(--line);border-radius:9px}.weekday-picker legend{font-size:12px;color:var(--muted)}.weekday-picker label{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px}.weekday-picker input{width:15px;height:15px}.lesson-detail{width:min(1050px,calc(100vw - 36px))}.lesson-detail .detail-grid{grid-template-columns:90px minmax(0,1fr) 90px minmax(0,1fr)}.lesson-detail .detail-card>.row:last-child{margin-top:18px}.attendance-dialog{width:min(1040px,calc(100vw - 36px))}.attendance-selection input[type=number]{width:100px}.attendance-selection input[type=checkbox]{width:16px;height:16px}.attendance-selection select{min-width:100px}.charge-preview{border:1px solid #dfe8fa;background:#f7faff;border-radius:10px;padding:20px}.charge-preview>article{padding:16px 0;border-top:1px solid var(--line);margin-top:16px}.charge-preview>article>.row{margin-bottom:12px}.charge-preview p{font-size:12px;margin-top:10px}.charge-preview .table-scroll{background:#fff}.charge-preview .muted{font-size:12px}.revision-metrics{display:flex;flex-wrap:wrap;gap:24px;margin:16px 0;color:var(--muted);font-size:12px}.revision-metrics b{font-size:16px;font-weight:600;color:#456692;margin-left:5px}.teaching-policy{max-width:840px;padding:28px}.teaching-policy>p{font-size:12px;margin:12px 0 26px}.teaching-policy form{display:grid;gap:22px}.teaching-policy input[type=number]{max-width:260px}.teaching-policy label small{line-height:1.8;font-size:12px}.teaching-policy .form-note{margin:0}.teaching-policy button{justify-self:start}.teaching-policy textarea{min-height:85px}@media(max-width:850px){.calendar-toolbar{gap:16px}.calendar-toolbar>.row{gap:6px}.calendar-toolbar .muted{flex-basis:100%}.summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-metrics>span:nth-child(3){border-left:0;border-top:1px solid var(--line)}.summary-metrics>span:nth-child(4){border-top:1px solid var(--line)}.lesson-detail .detail-grid{grid-template-columns:85px minmax(0,1fr)}.weekday-picker{flex-wrap:wrap}.charge-preview{padding:14px}}.calendar-toolbar .segmented{flex:0 0 auto;margin-bottom:0}.calendar-toolbar .segmented button{flex:none;white-space:nowrap}.lesson-block strong{font-size:13px}.lesson-block span,.lesson-block small{font-size:12px}.teaching-filter-bar{padding:0 3px 12px;color:#7a8eac;font-size:12px}.teaching-filter-bar>span{display:flex;align-items:center;gap:7px}.teaching-filter-bar .text{font-size:12px}.teaching-panel .calendar-toolbar{padding-top:15px}.lesson-block.cancelled{background:#f3f5f8;border-color:#d5dde8;border-left-color:#a2afc1;color:#8694a9}.lesson-block.cancelled strong{color:#78879c}.lesson-block.cancelled .lesson-mark{color:#8a97aa}.followup-dialog{width:min(980px,calc(100vw - 36px))}.followup-dialog input[type=number]{min-width:90px}.followup-dialog td input{max-width:120px}.allocation-overview{display:grid;grid-template-columns:1fr 30px 1fr;align-items:center;gap:20px;background:linear-gradient(110deg,#f0f5ff,#fafcff);padding:20px;border:1px solid #dfe8fa;border-radius:10px}.allocation-overview>span{display:grid;gap:9px;font-size:12px;color:var(--muted)}.allocation-overview strong{font-size:24px;font-weight:600;color:var(--primary);font-variant-numeric:tabular-nums}.allocation-overview .warning{color:#b47730}.allocation-overview>svg{color:#91a9cf}.attendance-selection small{display:block;white-space:normal;max-width:150px;line-height:1.7}.attendance-selection td{vertical-align:middle}.report-period{padding:16px 24px;border-top:1px solid var(--border)}.report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:4px 24px 16px}.report-metrics article{display:flex;align-items:center;gap:14px;padding:20px;background:linear-gradient(135deg,#f3f9ff,#fafdfc);border:1px solid #e0ebef;border-radius:12px}.report-metric-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#e4f2ef;color:#198576}.report-metrics article>span{font-size:13px;color:#526579}.report-metrics strong{display:block;margin-top:8px;font-size:27px;font-variant-numeric:tabular-nums;color:#17334d}.report-metrics small{margin-left:7px;font-size:12px;font-weight:400}.report-definition{margin:0;padding:0 24px 20px;font-size:12px;color:#748494;line-height:1.8}.report-progress{display:inline-block;width:58px;height:5px;background:#e6eeed;border-radius:4px;overflow:hidden;margin-right:8px}.report-progress i{display:block;height:100%;background:#1c9685;border-radius:4px}.report-numeric{font-weight:650;color:#168575}.report-lessons-dialog{width:min(1100px,94vw)}@media(max-width:1100px){.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.report-metrics{gap:8px;padding:12px}.report-metrics article{padding:12px;gap:8px}.report-metric-icon{width:30px;height:30px}.report-metrics strong{font-size:22px}.report-period,.report-definition{padding:12px}.report-period{flex-wrap:wrap;gap:8px}}.debt-tabs{padding:20px 24px 0;gap:8px}.debt-summary{padding:20px 24px;background:linear-gradient(100deg,#fff9ef,#f7fbff);border-top:1px solid #edf0f5;border-bottom:1px solid #edf0f5}.debt-summary strong{display:block;font-size:28px;margin-top:8px;color:#ab6727;font-variant-numeric:tabular-nums}.debt-summary small{font-size:12px;margin-left:8px;font-weight:400}.debt-account-card{padding:18px;border:1px solid #e2eaf5;border-radius:10px;background:#f6f9ff;display:grid;gap:10px}.debt-dialog{width:min(760px,94vw)}.debt-reverse-note{display:block;margin-top:6px;min-width:180px}@media(max-width:550px){.debt-summary{align-items:flex-start;gap:10px;flex-direction:column}.debt-tabs{padding:14px}.debt-summary{padding:16px}}.pending-tabs{display:flex;gap:6px;border-bottom:1px solid #dfe7f2;margin-bottom:20px;overflow-x:auto}.pending-tabs button{border:0;background:transparent;border-radius:8px 8px 0 0;color:#6b7f99;white-space:nowrap;padding:14px 20px;border-bottom:3px solid transparent}.pending-tabs button.active{background:#fff;color:#315dd5;border-bottom-color:#315dd5;font-weight:650}.pending-tabs button:hover{background:#f1f6ff}@media(max-width:550px){.pending-tabs button{padding:12px;gap:6px;font-size:13px}}.library-edit,.library-category,.library-detail{width:min(1000px,94vw)}.library-grants{width:min(820px,94vw)}.library-section-heading{margin:18px 0 10px}.library-resource-editor{background:#f8faff;border:1px solid #e1e9f4;border-radius:12px;padding:18px;display:grid;gap:14px}.library-category-query{margin:24px 0 12px}.library-category-query input{flex:1}.library-grant-course{border:1px solid #e1e8f2;border-radius:12px;padding:18px;background:#fafcff}.library-grant-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 0 0 28px}.library-introduction{white-space:pre-wrap;line-height:1.9}.library-version-list{display:grid;gap:8px}.library-version-list button{justify-content:space-between}.resource-link{margin-left:14px;color:#315dd5;text-decoration:none}.danger-text{color:#c6584c}.span-two{grid-column:1/-1}.library-viewer{height:100dvh;background:#eaf0f8;display:grid;grid-template-rows:76px minmax(0,1fr)}.library-viewer-header{display:flex;align-items:center;gap:20px;padding:12px 22px;background:#fff;border-bottom:1px solid #dce5f0}.library-viewer-header>div:nth-child(2){flex:1;min-width:0}.library-viewer-header h1{font-size:18px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-viewer-header small{color:#7f90a7}.library-viewer-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:0}.library-viewer-layout.expanded{grid-template-columns:minmax(0,1fr)}.library-preview-stage{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;padding:22px;background:radial-gradient(ellipse at center,#283951,#152237);overflow:hidden}.library-preview-stage>iframe{width:100%;height:100%;border:0;background:#fff;border-radius:8px}.library-preview-stage>img,.library-preview-stage>video{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}.library-viewer-empty{display:grid;justify-items:center;gap:16px;text-align:center;max-width:580px;color:#d5dfef;padding:24px;line-height:1.9}.library-viewer-empty h2{font-size:20px}.library-viewer-sidebar{overflow:auto;background:#fff;border-left:1px solid #dce5ef;padding:22px;display:flex;flex-direction:column;gap:20px}.library-viewer-intro h2{font-size:17px;line-height:1.6}.library-viewer-intro p{font-size:12px;color:#7c8ba0;line-height:1.9;white-space:pre-wrap}.library-viewer-group{display:grid;gap:8px}.library-viewer-group h3{font-size:12px;color:#6f829a;text-transform:uppercase;letter-spacing:1px}.library-viewer-group button{justify-content:flex-start;text-align:left;padding:12px;border:1px solid #e6ecf5;gap:10px;min-width:0;white-space:normal}.library-viewer-group button.selected{border-color:#7496ed;background:#edf3ff;color:#315dd5}.library-viewer-group button>span{min-width:0;overflow-wrap:anywhere}.library-viewer-group small{display:block;color:#8c9ab0;font-size:11px;margin-top:4px}.library-viewer-group p{font-size:12px}.viewer-download{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#315dd5;color:#fff;border-radius:8px;text-decoration:none}.library-viewer-identity{font-size:12px;color:#8b99ac}.library-watermark{pointer-events:none;position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-around;align-items:center;overflow:hidden}.library-watermark span{transform:rotate(-20deg);font-size:18px;white-space:nowrap;color:#8293ab38;text-shadow:0 0 2px rgba(255,255,255,.25)}@media(max-width:850px){.library-viewer{grid-template-rows:100px minmax(0,1fr)}.library-viewer-header{padding:10px;gap:8px;flex-wrap:wrap}.library-viewer-header>div:nth-child(2){order:-1;flex-basis:100%;display:flex;align-items:center;gap:12px}.library-viewer-header h1{font-size:15px}.library-viewer-header button{font-size:12px;padding:8px}.library-viewer-layout{grid-template-columns:minmax(0,1fr) 250px}.library-preview-stage{padding:8px}.library-viewer-sidebar{padding:14px}.library-grant-categories{grid-template-columns:1fr}}@media(max-width:550px){.library-viewer-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(220px,1fr) 250px}.library-viewer-layout.expanded{grid-template-rows:minmax(0,1fr)}.library-viewer-sidebar{border-left:0;border-top:1px solid #dce5ef}.library-resource-editor{padding:12px}}.library-pdf{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;width:100%;height:100%;min-width:0;min-height:0}.library-pdf-sheet{position:relative;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden}.library-pdf-sheet canvas{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:4px;background:#fff;box-shadow:0 12px 36px #09112170}.library-pdf-controls{display:flex;align-items:center;justify-content:center;gap:14px;color:#d5dfef;font-variant-numeric:tabular-nums}.library-pdf-controls button{min-height:32px;padding:6px 12px}.student-workspace{min-height:100vh;background:#f3f6fb}.student-topbar{gap:16px;padding-inline:clamp(12px,1.65vw,28px)}.student-topbar .topbar-spacer{display:block}.student-brand,.student-course-date{display:inline-flex;align-items:center;gap:9px}.student-brand{font-weight:700;white-space:nowrap}.student-brand .brand-mark{width:34px;height:34px}.student-content{width:100%;max-width:none;margin-inline:auto;padding-inline:clamp(12px,1.65vw,28px)}.student-course-panel{padding:18px}.student-course-panel .master-filters{margin-bottom:14px}.student-course-table td small{display:block;margin-top:4px}.student-course-table td:first-child{min-width:130px}.student-course-table td:nth-child(2){white-space:nowrap}.student-course-table td:last-child{white-space:nowrap}.student-course-panel .pagination label{display:inline-flex;align-items:center;gap:7px}.student-course-panel .pagination select{min-height:32px;width:auto}@media(max-width:600px){.student-topbar{gap:9px}.student-topbar .account-name,.student-topbar .context-selector>span{display:none}.student-topbar .context-selector select{width:min(27vw,130px)}.student-course-panel{padding:12px}.student-course-table th:nth-child(3),.student-course-table td:nth-child(3),.student-course-table th:nth-child(4),.student-course-table td:nth-child(4),.student-course-table th:nth-child(5),.student-course-table td:nth-child(5){display:none}.student-course-table{min-width:0}.student-course-table td:first-child{min-width:70px;white-space:normal;overflow-wrap:anywhere}.student-course-table th,.student-course-table td{padding-inline:8px}.student-course-panel .pagination{flex-wrap:wrap}}@media(max-width:360px){.student-course-table td:last-child svg{display:none}}.ppt-show{width:100%;height:100%;min-height:0;min-width:0;display:flex;flex-direction:column;align-items:stretch;background:#142239;border-radius:8px;overflow:hidden}.ppt-show:fullscreen{border-radius:0;padding:12px;background:#101b2d}.ppt-stage{flex:1;min-height:0;min-width:0;display:grid;place-items:center;container-type:size}.ppt-board{position:relative;width:min(100cqw,calc(100cqh * var(--slide-ratio)));aspect-ratio:var(--slide-ratio);background:#fff;overflow:hidden}.ppt-frame{display:block;position:absolute;inset:0;width:100%;height:100%;padding:0;background:#fff;border:0;border-radius:0}.ppt-frame:disabled{opacity:1}.ppt-frame img{display:block;width:100%;height:100%;object-fit:contain}.ppt-video{position:absolute;object-fit:fill;background:#141b25}.ppt-controls{min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:7px;color:#fff}.ppt-controls button{min-height:34px;padding:5px 8px}.ppt-controls button:disabled{opacity:.55}.ppt-position{min-width:110px;text-align:center;font-variant-numeric:tabular-nums;font-size:13px}.ppt-message{color:#ffd5b3;padding:4px 12px;text-align:center}.ppt-preparation{margin-top:12px;padding:12px;background:#f4f8fd;border:1px solid var(--line);border-radius:8px}.ppt-preparation summary{cursor:pointer;color:#345884;margin:7px 0}.ppt-preparation code{display:block;white-space:normal;overflow-wrap:anywhere;margin:8px 0}@media(max-width:550px){.ppt-controls{gap:5px}.ppt-controls button{min-height:32px;font-size:12px}.ppt-position{min-width:0;padding:0 3px}}.library-inspection{align-self:stretch;width:min(100%,1000px);overflow:auto;background:#fff;color:var(--text,#1c2e48);border-radius:8px;padding:clamp(16px,3vw,32px)}.library-inspection h2{font-size:18px;margin:0 0 16px}.library-inspection pre{margin:0;padding:16px;border-radius:8px;background:#f3f6fb;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.65 Consolas,monospace}.library-inspection ul{list-style:none;margin:0;padding:0}.library-inspection li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid #e6ecf5;overflow-wrap:anywhere}.library-inspection small{flex:none;color:#647792}.question-file-button{display:inline-flex;position:relative;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:7px 12px;border:1px solid var(--line,#dce5f0);border-radius:8px;background:#fff;color:var(--text,#223653);cursor:pointer}.question-file-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.question-file-button:focus-within{outline:2px solid #426fea;outline-offset:2px}.question-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:28rem}.question-tags button.badge{min-height:24px;padding:2px 8px;white-space:normal;text-align:left}.question-row-actions{flex-wrap:nowrap;gap:4px}.question-languages{min-width:0;border:1px solid #dce5f0;border-radius:8px;padding:5px 10px;display:flex;gap:12px}.question-languages label,.question-check{display:flex;flex-direction:row;align-items:center;gap:6px}.question-languages input,.question-check input{width:auto;height:auto}.question-case{border:1px solid #e2eaf4;border-radius:8px;padding:12px;margin:8px 0;background:#f9fbfe}.question-case summary{cursor:pointer;font-weight:600}.question-case[open] summary{margin-bottom:12px}.question-case .field-grid{margin-bottom:8px}.question-code,.question-preview pre{font-family:Consolas,monospace;font-size:13px}.question-option{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:12px;margin-top:10px}.question-option .question-check{padding-bottom:9px}.question-reference{margin-top:16px}.question-preview{display:grid;gap:14px}.question-detail .detail-header>button{margin-left:auto;align-self:flex-start}.question-preview section{border:1px solid #e2eaf4;border-radius:10px;padding:14px 16px}.question-preview h3{margin:0 0 8px;font-size:14px}.question-preview p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.question-preview pre{margin:4px 0 0;padding:10px;background:#f2f6fc;border-radius:6px;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:620px){.question-option{grid-template-columns:minmax(0,1fr) auto;align-items:center}.question-option label:first-child{grid-column:1/-1}.question-case .row{flex-wrap:wrap}}.classroom-entry{display:inline-flex;align-items:center;text-decoration:none;font-weight:700}.classroom-entry.primary{padding:8px 14px;border-radius:8px}.workspace-tabs{display:flex;gap:5px;align-items:center;overflow-x:auto;padding:7px 15px 0;border-bottom:1px solid #dfe7f2;background:#f7f9fd;scrollbar-width:thin}.workspace-tab{display:flex;align-items:center;flex-shrink:0;border:1px solid transparent;border-radius:8px 8px 0 0;color:#547092}.workspace-tab.current{background:#fff;border-color:#dfe7f2;border-bottom-color:#fff;color:#19447c}.workspace-tab button{border:0;background:transparent;min-height:32px;padding:4px 10px;color:inherit;font-size:12px;white-space:nowrap}.workspace-tab .tab-close{padding:4px 6px;min-width:25px}.workspace-tab .tab-close:hover{background:#edf3fc}.workspace-page{min-width:0}.app-shell>.app-main>.content{max-width:none;padding:18px clamp(12px,1.65vw,24px) 32px}.desktop-sidebar-toggle{min-height:33px;padding:6px}.sidebar nav .sidebar-group{height:29px;min-height:29px;justify-content:space-between;margin:13px 0 3px;font-size:11px;font-weight:650;letter-spacing:.035em;color:#a9c0df;padding-inline:12px}.sidebar-group[aria-expanded=false] svg{transform:rotate(-90deg)}.reports-mode{gap:7px;margin:-10px 0 12px}.compact-page .page-heading{margin-bottom:10px}.compact-page .page-heading .eyebrow,.compact-page .page-heading .muted{display:none}.compact-page .teaching-panel{padding:11px 13px}.compact-page .master-filters{gap:8px;margin-bottom:8px}.compact-page .teaching-filter-bar{margin:0 0 7px}.compact-page .teaching-summary{margin:6px 0;gap:8px;padding:7px 0}.compact-page .summary-metrics{gap:8px}.compact-page .summary-metrics span{padding:5px 8px}.compact-page .master-table :is(th,td){padding:8px 9px}.student-home-lesson{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.student-home-heading{margin-bottom:10px}.student-section-tabs{flex-wrap:wrap}.parent-home-status{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 13px}.parent-home-status button{display:flex;justify-content:flex-start;gap:8px;min-width:0;background:#fff;border-color:#dce8f4;padding:10px 12px}.parent-home-status strong{margin-left:auto;font-variant-numeric:tabular-nums}.parent-home-status svg{color:#386a9e}@media(min-width:851px){.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar-collapsed>.sidebar{display:none}}@media(max-width:850px){.desktop-sidebar-toggle{display:none}.workspace-tabs{padding-inline:8px}.student-home-lesson{flex-wrap:wrap}}.student-class-chips{display:flex;align-items:center;flex-wrap:wrap;gap:5px;max-width:250px}.student-class-chips .badge{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-class-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}.student-class-list li{display:flex;gap:12px;align-items:center;padding:7px 9px;border-radius:7px;background:#f3f7fc}.question-table-wrap{container-type:inline-size}.question-table{table-layout:fixed;min-width:0}.question-table :is(th,td){padding:10px clamp(5px,.75vw,13px);white-space:normal}.question-table .question-number{overflow-wrap:anywhere}.question-table .question-title{display:block;width:100%;min-width:0;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-weight:600}.question-table .question-title:hover{text-decoration:underline}.question-table .question-select-col{width:36px}.question-table .question-number-col{width:clamp(78px,8vw,128px)}.question-table .question-type-col{width:clamp(66px,7vw,100px)}.question-table .question-difficulty-col,.question-table .question-version-col{width:58px}.question-table .question-language-col,.question-table .question-time-col,.question-table .question-scope-col{width:clamp(75px,7vw,110px)}.question-table .question-state-col{width:76px}.question-table .question-tags-col{width:16%}.question-table .question-actions-col{width:125px}.question-table .question-admin-actions-col{width:190px}.question-table .question-row-actions{flex-wrap:wrap}.question-table .question-row-actions>*{white-space:nowrap}.question-table .question-tags .badge{overflow-wrap:anywhere}.question-detail .detail-header>div{min-width:0}.question-detail h2{overflow-wrap:anywhere}@container (max-width:1200px){.question-table :is(.question-version-col,.question-time-col){display:none}}@container (max-width:950px){.question-table :is(.question-language-col,.question-difficulty-col,.question-tags-col){display:none}}@container (max-width:680px){.question-table :is(.question-scope-col,.question-state-col){display:none}.question-table .question-type-col{width:60px}.question-table .question-number-col{width:64px}.question-table .question-actions-col,.question-table .question-admin-actions-col{width:88px}.question-table .question-row-actions>*{padding-inline:2px;gap:3px}}.lesson-feedback{width:min(1050px,calc(100vw - 36px))}.lesson-feedback .feedback-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto}.lesson-feedback .feedback-heading h2{margin-top:3px}.lesson-feedback .feedback-heading p{margin:4px 0 0}.feedback-heading>.badge{justify-self:end;white-space:nowrap}.feedback-body{padding-top:18px}.feedback-grid{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.4fr);gap:18px;align-items:start}.feedback-context,.feedback-fields,.feedback-form,.feedback-review{display:grid;align-content:start;gap:12px;min-width:0}.feedback-context .detail-card,.feedback-fields .detail-card{margin:0}.feedback-context h3,.feedback-media h3{display:flex;align-items:center;gap:7px;margin:0 0 7px}.feedback-context .detail-grid{grid-template-columns:max-content minmax(0,1fr);gap:9px 12px}.feedback-context dd{overflow-wrap:anywhere}.feedback-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;margin:5px 0 0}.feedback-form{border:0;padding:0;margin:0}.feedback-form legend{padding:0;margin:0 0 8px;font-weight:700;font-size:15px}.feedback-form label:not(.feedback-chip),.feedback-review label{display:grid;gap:5px;font-weight:600}.feedback-form textarea,.feedback-review textarea{width:100%}.feedback-dimensions{display:flex;gap:8px;flex-wrap:wrap}.feedback-chip{display:flex;align-items:center;gap:6px;border:1px solid #d9e5ef;padding:6px 9px;border-radius:8px;background:#f8fbfd;font-size:13px;white-space:nowrap}.feedback-chip:has(input:checked){color:#0b695f;background:#e9f7f3;border-color:#aedbd0}.feedback-chip input{width:auto;min-height:0;margin:0;accent-color:#08776b}.feedback-upload{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px dashed #a4c2d9;border-radius:8px;color:#1b5277;cursor:pointer;position:relative;width:max-content}.feedback-upload:focus-within{outline:2px solid #315dd5}.feedback-upload input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.feedback-media>p{margin:5px 0 0;font-size:12px}.feedback-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:9px;margin-top:9px}.feedback-media-item{min-width:0;border:1px solid #dce5ef;border-radius:8px;overflow:hidden;background:#f6f9fc}.feedback-media-item img,.feedback-media-item video{display:block;width:100%;height:94px;object-fit:contain;background:#13273b}.feedback-media-item .row{padding:4px 6px;gap:3px;font-size:12px}.feedback-media-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.feedback-media-item button{min-height:25px;padding:2px}.feedback-read h3{margin:0 0 5px}.feedback-read .feedback-text{margin:0 0 9px}.feedback-notice{margin:0;color:#08665a;background:#e5f5f1;border-radius:8px;padding:8px 10px}.feedback-footer>span{margin-right:auto;font-size:12px}@media(max-width:720px){.lesson-feedback{width:calc(100vw - 18px)}.feedback-grid{grid-template-columns:1fr}.feedback-footer{flex-wrap:wrap}.feedback-footer>span{width:100%}}.teacher-entry[data-v-ea0002d7]{margin:0 0 15px}.staff-welcome[data-v-ea0002d7]{margin-bottom:15px;min-height:106px}.staff-metrics[data-v-ea0002d7]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin-bottom:15px}.staff-metrics .metric-card[data-v-ea0002d7]{min-height:98px;height:auto;padding:13px;text-align:left}.staff-metrics .metric-icon[data-v-ea0002d7]{flex-shrink:0}.staff-metrics small[data-v-ea0002d7]{white-space:normal}.teacher-welcome[data-v-15339fa8]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;min-height:106px}.teacher-actions[data-v-15339fa8]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.teacher-metrics[data-v-15339fa8],.teacher-panels[data-v-15339fa8]{display:grid;gap:12px;margin-bottom:16px}.teacher-metrics[data-v-15339fa8]{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-metrics>div[data-v-15339fa8]{padding:14px;color:var(--muted)}.teacher-metrics b[data-v-15339fa8]{display:block;font-size:22px;color:#345583;margin-top:8px}.teacher-metrics small[data-v-15339fa8]{font-size:11px}.teacher-panels[data-v-15339fa8]{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start}.teacher-panels h2[data-v-15339fa8]{display:flex;align-items:center;gap:8px;padding:14px;margin:0;font-size:15px}.teacher-item[data-v-15339fa8]{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;text-align:left;border:0;border-radius:0;border-top:1px solid var(--line);background:transparent;padding:12px 14px}.teacher-item small[data-v-15339fa8]{display:block;color:var(--muted);margin-top:3px}.teacher-item .badge[data-v-15339fa8]{flex:none}.teacher-empty[data-v-15339fa8]{padding:12px 14px;color:var(--muted)}.teacher-mock[data-v-15339fa8]{padding:14px}.teacher-mock summary[data-v-15339fa8]{cursor:pointer;font-weight:600}.teacher-mock p[data-v-15339fa8]{margin-top:10px}.teacher-mock pre[data-v-15339fa8]{white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f8fc;padding:12px;margin:10px 0}.question-text[data-v-3ece87e5]{min-width:0;overflow-wrap:anywhere;white-space:normal}.question-text[data-v-3ece87e5] :first-child{margin-top:0}.question-text[data-v-3ece87e5] :last-child{margin-bottom:0}.question-text[data-v-3ece87e5] pre{max-width:100%;overflow:auto;padding:.85rem 1rem;border:1px solid #dde5f0;border-radius:8px;background:#f2f5fa;line-height:1.55;white-space:pre;overflow-wrap:normal}.question-text[data-v-3ece87e5] code{font-family:ui-monospace,Consolas,monospace;font-size:.92em}.question-text[data-v-3ece87e5] :not(pre)>code{padding:.12em .3em;border-radius:4px;background:#edf2f8}.question-text[data-v-3ece87e5] img{display:block;max-width:100%;height:auto;margin:.5rem 0;object-fit:contain}.question-text[data-v-3ece87e5] table{display:block;max-width:100%;overflow:auto;border-collapse:collapse}.question-text[data-v-3ece87e5] th,.question-text[data-v-3ece87e5] td{padding:.35rem .6rem;border:1px solid #dde5f0}.homework-return{margin-bottom:10px}.homework-detail-grid,.homework-builder-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;align-items:start}.homework-card{min-width:0;padding:18px;border:1px solid #dbe5ee;border-radius:13px;background:#fff}.homework-card>header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.homework-card h2,.homework-card h3,.homework-entry h3{margin:0}.homework-card h2{font-size:17px}.homework-card h3,.homework-entry h3{font-size:15px}.homework-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.68}.homework-image{display:block;max-width:min(100%,600px);max-height:430px;object-fit:contain;margin:12px 0;border-radius:8px;border:1px solid #e1eaf0}.homework-intro{padding:13px 18px}.homework-entry,.homework-item-summary{margin-top:10px;border:1px solid #dfe9ef;border-radius:9px;padding:11px 13px;background:#f8fbfc}.homework-entry summary,.homework-item-summary summary{cursor:pointer;color:#234459}.homework-student-items,.homework-fields{display:grid;gap:12px}.homework-fields{border:0;padding:0;min-width:0}.homework-fields label{display:grid;gap:6px}.homework-fields .homework-choice,.homework-fields label.row{display:flex;align-items:center;gap:8px}.homework-choice input,.homework-fields input[type=checkbox]{width:auto;min-height:auto;margin:0}.homework-feedback{margin:10px 0;padding:10px 12px;border-left:3px solid #4c958b;background:#eff8f5;border-radius:5px}.homework-feedback p{margin:4px 0 8px}.homework-link{display:inline-flex;gap:6px;align-items:center;text-decoration:none;font-weight:650;color:#116e64;padding:7px 0}.homework-link:hover{text-decoration:underline}.homework-code{white-space:pre-wrap;overflow-wrap:anywhere;padding:10px;border-radius:8px;background:#eaf0f6}.homework-builder{width:min(1080px,calc(100vw - 32px))}.homework-builder .detail-header>button,.homework-review .detail-header>button{margin-left:auto}.homework-builder-body{display:grid;gap:16px;max-height:66vh;overflow:auto}.homework-create-fields{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr)}.homework-picker-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(65px,.75fr) auto;gap:8px;align-items:end}.homework-picker-list>div{border-bottom:1px solid #edf1f6;padding:8px 0}.homework-picker-list small{display:block;margin-top:3px;color:#5f7184}.homework-publish-footer{display:flex;justify-content:flex-end;align-items:center;gap:8px}.homework-publish-footer .error{margin-right:auto}.homework-review-body{max-height:66vh;overflow:auto}.homework-answer-form{margin-top:12px}.student-section-tabs{margin-bottom:16px;gap:8px;flex-wrap:wrap}@media(max-width:950px){.homework-detail-grid{grid-template-columns:1fr}.homework-picker-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.homework-builder-grid,.homework-create-fields{grid-template-columns:1fr}}.training-header[data-v-abeb0f2c],.training-edit[data-v-abeb0f2c]{padding:1rem 1.25rem}.training-header h2[data-v-abeb0f2c],.training-columns h3[data-v-abeb0f2c]{margin:0 0 .35rem}.training-description[data-v-abeb0f2c]{white-space:pre-wrap;overflow-wrap:anywhere}.training-edit fieldset[data-v-abeb0f2c]{border:0;margin:0;padding:0;min-width:0}.training-edit legend[data-v-abeb0f2c]{font-weight:700;margin-bottom:.8rem}.training-columns[data-v-abeb0f2c]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.training-columns section[data-v-abeb0f2c]{border:1px solid var(--line,#dce5ec);border-radius:.65rem;padding:1rem;min-width:0}.training-search[data-v-abeb0f2c]{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto}.training-items[data-v-abeb0f2c]{list-style:none;padding:0;margin:.6rem 0}.training-items li[data-v-abeb0f2c]{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem 0;border-bottom:1px solid var(--line,#dce5ec);overflow-wrap:anywhere}.training-items small[data-v-abeb0f2c]{display:block}.training-order[data-v-abeb0f2c]{flex-shrink:0}.training-save[data-v-abeb0f2c]{justify-content:flex-end;margin-top:1rem}@media(max-width:760px){.training-columns[data-v-abeb0f2c]{grid-template-columns:1fr}}.exam-editor{display:grid;gap:16px}.exam-fields{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.7fr);gap:12px}.exam-editor-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;align-items:center}.exam-editor-actions .error{margin-right:auto}.exam-selected{display:grid;grid-template-columns:minmax(0,1fr) 75px auto;align-items:center;gap:10px}.exam-selected label{font-size:12px}.exam-answer-layout{display:grid;grid-template-columns:minmax(185px,230px) minmax(0,1fr);align-items:start;gap:16px;margin-top:14px}.exam-answer-nav{position:sticky;top:12px}.exam-clock{display:flex;align-items:center;gap:9px;padding:10px;margin-bottom:12px;border-radius:8px;background:#edf8f6;color:#0b695f}.exam-clock small,.exam-clock strong{display:block}.exam-clock strong{font-size:21px;font-variant-numeric:tabular-nums;letter-spacing:.025em}.exam-number-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:8px 0}.exam-number-grid a{display:grid;place-items:center;min-height:31px;border:1px solid #dbe6ed;border-radius:6px;text-decoration:none;color:#29465b;font-size:13px}.exam-number-grid a:hover,.exam-number-grid a.complete{border-color:#73b3a7;color:#0a695d;background:#e9f6f2}.exam-question{scroll-margin-top:12px}.exam-program-action{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}.exam-program-action a{padding:8px 12px;border:1px solid #b9ddd6;border-radius:8px;background:#edf8f6}.exam-score{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;background:#f2faf8}.exam-score strong{display:block;font-size:32px;color:#12695d}.exam-score strong small{font-size:14px;color:#486876}.pagination label select{width:auto;min-height:31px;margin-left:5px}@media(max-width:760px){.exam-answer-layout,.exam-fields{grid-template-columns:1fr}.exam-answer-nav{position:static}}.paper-dialog{width:min(860px,calc(100vw - 32px));max-height:85vh;padding:20px;border:1px solid #dce5ef;border-radius:14px;background:#fff}.paper-dialog::backdrop{background:#13264166}.paper-dialog>header{margin-bottom:14px;gap:12px}.paper-dialog h2{margin:0}.paper-dialog .exam-paper-table{box-shadow:none}.paper-selection{padding:14px;border:1px solid #dce5ef;border-radius:10px;gap:12px;flex-wrap:wrap}.paper-selection p{margin:4px 0 0}.paper-meta{display:grid;grid-template-columns:minmax(140px,1fr) 3fr;gap:16px;margin:0}.paper-meta dt{font-size:.85rem;color:#51647d;margin-bottom:6px}.paper-meta dd{margin:0;overflow-wrap:anywhere}.paper-meta .paper-instructions{white-space:pre-wrap}.paper-detail-items{margin-top:14px}.paper-order{display:flex;gap:4px;align-items:center}.paper-order button{min-width:28px}@media(max-width:640px){.paper-meta{grid-template-columns:1fr}.paper-dialog{padding:12px}}.program-question-body[data-v-b84b64db]{display:grid;gap:16px;min-width:0;width:100%;max-width:920px;line-height:1.75;color:#24394b}.program-question-body section[data-v-b84b64db]{min-width:0}h3[data-v-b84b64db],h4[data-v-b84b64db]{margin:0}h3[data-v-b84b64db]{font-size:14px;color:#17334c;line-height:1.4}h4[data-v-b84b64db]{font-size:12px;color:#4b6278;font-weight:600}section>h3[data-v-b84b64db]{margin-bottom:6px}.program-format[data-v-b84b64db],.program-example-values[data-v-b84b64db]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}.program-format section[data-v-b84b64db],.program-note[data-v-b84b64db]{padding:12px 14px;border-left:3px solid #b6d6d1;background:#f5f9fa;border-radius:0 8px 8px 0}.program-example[data-v-b84b64db]{padding:12px 14px;background:#f6f8fb;border:1px solid #dbe5ef;border-radius:10px}.program-example header[data-v-b84b64db]{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.program-example-values>div[data-v-b84b64db]{min-width:0;display:grid;grid-template-rows:auto 1fr;gap:4px}pre[data-v-b84b64db]{margin:0;min-height:36px;max-height:14rem;overflow:auto;padding:8px 10px;border:1px solid #dbe5ef;border-radius:6px;background:#fff;color:#22384c;tab-size:4;font-size:13px;line-height:1.55}code[data-v-b84b64db]{font-family:ui-monospace,Consolas,monospace;white-space:pre}.creation-area{display:grid;gap:14px;margin-top:18px}.creation-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #b9ded9;border-radius:16px;padding:21px 24px;background:radial-gradient(ellipse at 85% 60%,#cdece4,transparent 55%),#f0faf7;color:#163a39}.creation-intro h2,.creation-works h2,.creation-oj h3{margin:0 0 4px}.creation-intro p,.creation-oj p,.creation-works p{margin:0}.creation-intro>svg{color:#278178}.creation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.creation-card{--accent:#5c53aa;--tint:#efedfc;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0;padding:16px;border:1px solid #dce4eb;border-top:3px solid var(--accent);border-radius:12px;background:linear-gradient(150deg,#fff 56%,var(--tint));color:#202e40;text-decoration:none;box-shadow:0 3px 10px #192f4810}.creation-card.peach{--accent:#a34e20;--tint:#fff1e9}.creation-card.mint{--accent:#19796b;--tint:#e8f7f3}.creation-card.blue{--accent:#245ab0;--tint:#edf5ff}.creation-card:hover{border-color:var(--accent);box-shadow:0 5px 14px #192f4826}.creation-card h3,.creation-card p{margin:0}.creation-card p{color:#415368;font-size:.9rem;line-height:1.55}.creation-mark{display:grid;place-items:center;min-width:44px;height:44px;padding:0 6px;border-radius:10px;background:var(--tint);color:var(--accent);font:700 1.15rem ui-monospace,monospace}.creation-link{display:flex;align-items:center;gap:5px;margin-top:auto;padding-top:6px;color:var(--accent);font-weight:650}.creation-oj{display:flex;align-items:center;gap:14px;padding:15px 18px;background:#eff5fe;border:1px solid #cbdcf1;border-radius:12px;color:#204577}.creation-oj button{margin-left:auto}.creation-works{padding:17px}.creation-area+.student-home-lesson{margin-top:14px}.creation-filters{align-items:end;margin:13px 0}.creation-empty{display:grid;justify-items:center;gap:6px;margin-top:12px;border:1px dashed #ccd9e5;border-radius:10px;padding:20px;color:#415368}.creation-work-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}.creation-work-list li{display:flex;align-items:center;gap:8px;border-top:1px solid #e3eaf0;padding:7px 0}.creation-work-list a{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;flex:1;text-decoration:none}.creation-work-list a strong{color:#202e40;overflow-wrap:anywhere}.creation-work-list a:hover strong{color:#245ab0}.creation-work-list a span{color:#245ab0;display:flex;align-items:center;gap:4px}.creation-work-list small{color:#48596d}.personal-studio{min-height:100vh;background:#f0f4f8;padding:14px}.personal-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:10px 12px;background:#fff;border:1px solid #dce4eb;border-radius:12px}.personal-toolbar-space{flex:1}.personal-language{display:flex;align-items:center;gap:5px;font-weight:750;color:#245575}.personal-title{display:flex;align-items:center;gap:6px}.personal-title input{min-width:100px;width:min(28vw,240px)}.personal-layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(250px,1fr);gap:12px;margin-top:12px;min-height:calc(100vh - 105px)}.personal-editor,.personal-console{min-width:0;overflow:hidden;border-radius:12px}.personal-editor{background:#282c34;display:flex;flex-direction:column}.personal-editor header{background:#1e293b;color:#e5eaf2;padding:9px 13px;font:600 .9rem ui-monospace,monospace}.personal-editor header span{margin-left:8px;color:#9dafc7}.personal-editor .practice-code-host{min-height:350px;flex:1;display:grid}.personal-editor .cm-editor{height:100%;font-size:15px}.personal-editor .cm-scroller{overflow:auto}.personal-console{padding:14px;background:#fff;border:1px solid #dce4eb;display:flex;flex-direction:column;gap:12px;align-self:start}.personal-console h2,.personal-console h3{margin:0}.personal-console-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.personal-console textarea,.personal-console pre{width:100%;font:14px/1.5 ui-monospace,Consolas,monospace}.personal-console pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:300px;overflow:auto;background:#f0f4f9;border-radius:8px;padding:10px;margin:5px 0 0}.personal-console .personal-diagnostic{background:#fff1ed;color:#8a331e}.personal-pending,.personal-message{margin-top:12px}.personal-pending{padding:25px}@media(max-width:900px){.creation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.personal-layout{grid-template-columns:minmax(0,1fr)}.personal-title input{width:min(42vw,240px)}}@media(max-width:460px){.creation-grid{grid-template-columns:1fr}.creation-oj{flex-wrap:wrap}.creation-work-list a{grid-template-columns:1fr auto}.creation-work-list a small{grid-row:2}.creation-intro{padding:15px}.personal-title span{display:none}}.graphical-studio{display:flex;flex-direction:column;gap:10px;height:100dvh;min-height:0}.graphical-studio .personal-message{margin:0}.graphical-frame{display:block;width:100%;flex:1;min-height:0;border:1px solid #dce4eb;border-radius:12px;background:#fff}.graphical-frame:fullscreen{border:0;border-radius:0}.personal-side{display:grid;align-content:start;gap:12px;min-width:0}.personal-turtle{min-width:0;border:1px solid #dce4eb;border-radius:12px;background:#fff;overflow:hidden}.personal-turtle header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;background:#eef6f6}.personal-turtle h2{margin:0;display:flex;align-items:center;gap:7px;font-size:1rem;color:#205657}.personal-turtle header select{width:auto;min-width:0;padding:4px 7px;font-size:.86rem}.personal-turtle-stage{position:relative}.personal-turtle-stage iframe{width:100%;height:clamp(220px,38vh,480px);display:block;border:0;background:#fff}.personal-turtle-empty{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:9px;color:#5b7084;font-size:.9rem;pointer-events:none}.personal-turtle-status{margin:0;padding:6px 12px;border-top:1px solid #e5edf1;font-size:.84rem;color:#496073}.personal-toolbar .personal-stop{color:#9e3028;border-color:#edcbc4;background:#fff4f0}.graphical-exercise{flex:0 0 auto;max-height:30vh;overflow:auto;padding:.65rem 1rem;background:#fff;border-bottom:1px solid #dce6ed}.graphical-exercise summary{cursor:pointer;font-weight:600}.graphical-exercise p{margin:.5rem 0 0}.awards-empty[data-v-a182366b]{margin:12px 0 4px}.award-entry[data-v-a182366b]{padding:11px 0;border-top:1px solid #e5edf6}.award-entry p[data-v-a182366b]{margin:4px 0}.award-files[data-v-a182366b]{flex-wrap:wrap;gap:8px}.award-files a[data-v-a182366b]{display:inline-flex;align-items:center;gap:4px;overflow-wrap:anywhere}.parent-invite-qr[data-v-6f5556c9]{display:grid;justify-items:center;gap:5px;margin:12px auto 18px;color:#4a6578;text-align:center}.parent-invite-qr img[data-v-6f5556c9]{display:block;width:min(220px,100%);height:auto;border:1px solid #dce6ed;border-radius:10px;background:#fff}.teacher-shell.app-shell[data-v-eecfbd2b]{display:block}.teacher-shell .app-main[data-v-eecfbd2b]{margin-left:0;min-width:0;width:100%}.teacher-shell .content[data-v-eecfbd2b]{max-width:1100px;margin-inline:auto}.teacher-shell .topbar[data-v-eecfbd2b]{flex-wrap:wrap;height:auto;min-height:56px;padding-block:8px}
