:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;color:#172b4d;background:#f4f7fb;font-synthesis:none;--blue:#245fd5;--blue-dark:#153f90;--blue-light:#edf3ff;--ink:#172b4d;--muted:#7a879d;--line:#e7edf5;--white:#fff;--red:#ce4e55;--green:#22866a;--shadow:0 8px 28px rgba(28,55,99,.045)}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #92b6ff;outline-offset:3px}button{border:0}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}svg{display:block;flex-shrink:0}button svg{pointer-events:none}h1,h2,h3,p{margin:0}img{max-width:100%}[hidden]{display:none!important}.boot-screen{display:grid;place-content:center;justify-items:center;gap:20px;min-height:100vh;color:var(--muted)}.boot-screen img{width:72px;height:72px;object-fit:contain}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dce4f0;background:#fff;color:#4d5e79;min-height:40px;padding:8px 15px;border-radius:8px;white-space:nowrap;font-weight:500;line-height:1.5;transition:background .15s,border-color .15s,box-shadow .15s}.btn:hover{background:#f6f8fc;border-color:#bacbe6}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 3px 7px #245fd51a}.btn.primary:hover{background:#1b50bb}.btn.danger{color:#c74851;border-color:#f0cdd0;background:#fffafa}.btn.soft{background:var(--blue-light);border-color:transparent;color:var(--blue)}.btn.sm{min-height:32px;padding:5px 11px;font-size:12px}.btn.full{width:100%}.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid transparent;background:transparent;color:#8190a8;border-radius:8px}.icon-btn:hover{background:#edf3ff;color:var(--blue)}.btn-link{padding:3px 0;background:transparent;color:var(--blue);font-size:12px}.btn-link:hover{text-decoration:underline}.btn-link.danger{color:#c74851}.text-muted{color:var(--muted)}.small{font-size:12px}.chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #e2eafb;background:#f7faff;color:#6580ac;border-radius:5px;font-size:11px;line-height:1.5;padding:3px 7px}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:5px;font-size:11px;line-height:1.4;white-space:nowrap;background:#edf3ff;color:#386ac1}.badge::before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor}.badge.green{background:#eaf7f2;color:#27866e}.badge.amber{background:#fff5df;color:#b4822a}.badge.red{background:#fff0f1;color:#c35865}.badge.gray{background:#eff2f6;color:#7b879c}.field label{display:block;margin-bottom:7px;font-size:12px;color:#52627c;font-weight:500}.field label em{font-style:normal;color:#d55a65;margin-left:3px}input,select,textarea{width:100%;border:1px solid #dce5f1;border-radius:7px;background:#fff;color:#293d5c;min-height:41px;padding:9px 12px;line-height:1.5;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:#a0aabd}input:hover,select:hover,textarea:hover{border-color:#bccde5}input:focus,select:focus,textarea:focus{border-color:#6f9aee;box-shadow:0 0 0 3px #245fd50b;outline:none}input:disabled,select:disabled{background:#f3f6fa;color:#8b96aa}input[type=file]{padding:8px;background:#f8faff}textarea{min-height:88px;resize:vertical}input[type=checkbox]{width:15px;min-height:15px;margin:0;accent-color:var(--blue)}.help{font-size:11px;color:#8b97aa;margin-top:6px;line-height:1.7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field.span-2{grid-column:1/-1}.form-error{padding:11px 13px;border:1px solid #f0cdd0;background:#fff4f4;border-radius:7px;color:#bd4851;font-size:12px;line-height:1.7}.notice{display:flex;align-items:flex-start;gap:9px;padding:12px 14px;border:1px solid #dfe9fb;background:#f7faff;border-radius:8px;color:#6881a9;font-size:12px;line-height:1.8}.notice svg{margin-top:3px;color:#7d9bc8}.notice.warning{background:#fffaf0;border-color:#f1e5c7;color:#9c7a37}.notice.success{background:#f0faf6;border-color:#d6eee4;color:#3a8b74}.stack{display:grid;gap:18px}.required-tip{color:#8c9ab0;font-size:11px}.divider{border:0;border-top:1px solid var(--line);margin:21px 0}.nowrap{white-space:nowrap}.wrap{white-space:normal;overflow-wrap:anywhere}
/* Entry */
.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(470px,1fr) minmax(470px,1fr);background:#fff}.login-story{position:relative;overflow:hidden;padding:50px 9%;background:#123a7e;color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.login-story::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 95% 70%,#285bd670,transparent 65%),linear-gradient(135deg,#123a7e,#173f86);pointer-events:none}.story-brand,.story-main,.story-bottom{position:relative;z-index:1}.story-brand{display:flex;gap:15px;align-items:center}.story-brand img{width:53px;height:53px;object-fit:contain;background:#fff;border-radius:50%;padding:3px}.story-brand strong{font-size:18px;letter-spacing:2px;font-weight:600}.story-brand small{font-size:9px;letter-spacing:2.5px;display:block;color:#b4c9ee;margin-top:3px}.story-main{padding-bottom:30px}.story-eyebrow{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:3px;font-size:10px;color:#a9c5f4;margin-bottom:28px}.story-eyebrow::before{content:"";width:28px;height:2px;background:#77a5f5}.story-main h1{font-weight:500;font-size:39px;letter-spacing:3px;line-height:1.65;margin-bottom:22px}.story-main p{color:#b6cbed;font-size:13px;line-height:2.1;max-width:350px}.story-art{height:180px;position:relative;margin:40px 0 20px;max-width:390px}.art-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(transparent,#000,transparent)}.art-card{position:absolute;border:1px solid #7ea1dc40;background:#ffffff0b;backdrop-filter:blur(2px);border-radius:10px;padding:17px 20px;display:flex;gap:12px;align-items:center}.art-card svg{color:#a2c4fd}.art-card strong{font-size:12px;font-weight:500;display:block}.art-card small{font-size:9px;color:#a0bde8;display:block;margin-top:3px}.art-card.one{top:14px;left:3px;transform:rotate(-5deg);width:230px}.art-card.two{top:91px;left:112px;transform:rotate(4deg);width:235px}.story-bottom{display:flex;align-items:center;gap:8px;font-size:10px;color:#8caad8;letter-spacing:.5px}.story-bottom i,.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#65c4a9}.login-form-side{display:flex;align-items:center;justify-content:center;padding:45px 55px}.login-panel{width:100%;max-width:360px}.login-top-label{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#6f8dbd;background:#f2f6fd;border:1px solid #e6eefb;border-radius:5px;padding:5px 9px;margin-bottom:25px}.login-panel h2{font-size:28px;font-weight:600;letter-spacing:1px;margin-bottom:9px;color:#1c3254}.login-panel .login-subtitle{color:#8a96a9;font-size:12px;margin-bottom:35px}.login-form{display:grid;gap:20px}.input-with-icon{position:relative}.input-with-icon>svg{position:absolute;left:13px;top:13px;color:#a0aec3;pointer-events:none}.input-with-icon input{padding-left:40px;height:45px}.input-with-icon .password-toggle{position:absolute;right:5px;top:5px}.input-with-icon input[type=password],.input-with-icon input[type=text][name=password]{padding-right:45px}.login-submit{min-height:46px;margin-top:3px}.login-foot{margin-top:28px;border-top:1px solid var(--line);padding-top:20px;display:flex;gap:8px;align-items:flex-start;color:#929fb3;font-size:11px;line-height:1.9}.login-foot svg{margin-top:2px}.login-mobile-brand{display:none}.login-version{margin-top:35px;color:#b1bbca;font-size:10px;letter-spacing:1px}
/* Workspace */
.sidebar{width:234px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);z-index:30;display:flex;flex-direction:column;padding:29px 18px 19px}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 27px}.brand img{width:40px;height:40px;object-fit:contain}.brand strong{font-size:16px;letter-spacing:1.5px;display:block;color:#223e69}.brand small{font-size:9px;letter-spacing:1.4px;color:#9ba9bd;display:block;margin-top:3px}.side-caption{color:#a6b1c3;font-size:10px;letter-spacing:1.7px;padding:16px 15px 12px}.side-nav{display:grid;gap:6px}.nav-btn{position:relative;display:flex;align-items:center;gap:11px;color:#7a8aa3;padding:12px 14px;width:100%;text-align:left;border-radius:8px;background:transparent;font-size:13px}.nav-btn:hover{background:#f6f8fc;color:#4168aa}.nav-btn.active{color:var(--blue);background:#edf3ff;font-weight:600}.nav-btn.active::before{content:"";position:absolute;left:-18px;top:13px;bottom:13px;width:3px;border-radius:0 3px 3px 0;background:var(--blue)}.nav-btn .nav-count{margin-left:auto;background:#fff;padding:0px 6px;border-radius:4px;color:#6080b5;font-size:10px}.side-note{margin:27px 8px;padding:14px;border:1px solid #e9eff8;background:#f9fbfe;border-radius:8px}.side-note>span{color:#7592bd;display:flex;align-items:center;gap:7px;font-size:11px;margin-bottom:6px}.side-note p{font-size:10px;color:#a1adc0;line-height:1.9}.side-bottom{margin-top:auto;padding:17px 8px 0;border-top:1px solid var(--line)}.user-summary{display:flex;gap:10px;align-items:center}.avatar{width:33px;height:33px;border-radius:8px;background:#e9f0ff;color:#5f83be;display:grid;place-items:center;font-size:12px;font-weight:600;flex-shrink:0}.user-summary strong{font-size:12px;font-weight:500;color:#4f6384;display:block}.user-summary small{font-size:10px;color:#9aa8bd;display:block;margin-top:2px}.side-bottom .icon-btn{margin-left:auto}.workspace{margin-left:234px;min-height:100vh}.topbar{height:72px;background:#ffffffed;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 36px;gap:20px}.breadcrumb{display:flex;align-items:center;gap:12px;color:#9ba6b8;font-size:11px}.breadcrumb span:last-child{color:#5c708f}.topbar-right{display:flex;align-items:center;gap:17px;color:#99a6ba;font-size:11px}.env-label{display:flex;align-items:center;gap:7px;color:#7d93b4}.topbar-right .vline{height:16px;width:1px;background:var(--line)}.menu-toggle{display:none}.main{max-width:1500px;margin:auto;padding:31px 36px 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.eyebrow{font-size:9px;letter-spacing:2px;color:#9baac0;margin-bottom:6px}.page-heading h1{font-size:25px;font-weight:600;letter-spacing:1px;color:#233e65}.page-heading p{font-size:11px;color:#9aa7bc;margin-top:7px}.heading-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:20px 21px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.stat-top span{font-size:11px;color:#8898b1}.stat-icon{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;background:#edf3ff;color:#799add}.stat-icon.green{background:#eef8f5;color:#70ae9a}.stat-icon.amber{background:#fff8e9;color:#cfaf69}.stat-icon.violet{background:#f3effc;color:#a495c9}.stat-number{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:30px;font-weight:600;letter-spacing:-.8px;color:#2a436a;line-height:1.3}.stat-number small{font-family:inherit;font-size:10px;font-weight:400;letter-spacing:0;color:#b0b9c8;margin-left:7px}.stat-bottom{color:#a9b4c5;font-size:10px;margin-top:7px}.stat-bottom .green{color:#6da68f}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);overflow:hidden}.panel-titlebar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 22px;border-bottom:1px solid #edf1f7}.panel-title{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:600;color:#3a5276}.panel-title>svg{color:#7695c9}.panel-title .count{font-size:10px;font-weight:400;color:#9cabc1;background:#f2f5f9;border-radius:5px;padding:2px 7px;margin-left:2px}.panel-subtitle{font-size:10px;font-weight:400;color:#a4b0c2;margin-top:4px}.panel-tools{display:flex;gap:13px;align-items:center;color:#9aa8bb;font-size:10px}.filters{padding:18px 22px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:1px solid #f0f3f8;background:#fdfefe}.search-field{position:relative;flex:1;min-width:195px;max-width:310px}.search-field input{padding-left:36px;min-height:36px;height:36px;font-size:11px;background:#fbfcff;border-color:#e5ebf4}.search-field svg{position:absolute;left:12px;top:11px;color:#a8b5c8}.filters select{width:auto;min-width:126px;min-height:36px;height:36px;padding:7px 28px 7px 11px;font-size:11px;border-color:#e5ebf4;background:#fff}.filters .filter-label{font-size:10px;color:#a8b4c6;margin-right:-2px}.filter-spacer{flex:1}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}.data-table th{background:#f9fbfe;color:#96a4ba;font-size:10px;font-weight:500;padding:13px 20px;border-bottom:1px solid var(--line);letter-spacing:.3px}.data-table td{padding:17px 20px;color:#637797;border-bottom:1px solid #f0f3f8;font-size:11px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fcfdff}.data-table .student-id{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#8294af;font-size:11px;letter-spacing:.2px}.person-cell{display:flex;align-items:center;gap:10px}.person-cell .mini-avatar{width:28px;height:28px;border-radius:7px;color:#819bca;background:#eff4ff;display:grid;place-items:center;font-size:10px}.person-cell strong{color:#425b81;font-size:12px;font-weight:500}.row-actions{display:flex;gap:13px;align-items:center}.table-foot{border-top:1px solid var(--line);padding:14px 22px;display:flex;align-items:center;justify-content:space-between;color:#a3aec0;font-size:10px;gap:15px}.pagination{display:flex;align-items:center;gap:5px}.page-btn{display:grid;place-items:center;min-width:27px;height:27px;background:#fff;color:#a6b3c6;border:1px solid #e6ecf4;border-radius:5px;font-size:10px}.page-btn.active{background:#edf3ff;border-color:#dfe9fe;color:#4d77be}.page-size{width:85px;min-height:28px;height:28px;padding:4px 7px;border-color:#e6ecf4;font-size:10px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:68px 24px;color:#a0acc0;min-height:290px}.empty-icon{width:62px;height:62px;background:#f1f5fc;color:#a8bad6;border:1px solid #e8eef8;display:grid;place-items:center;border-radius:18px;margin-bottom:18px}.empty strong{font-size:13px;font-weight:500;color:#7e91af;margin-bottom:6px}.empty p{font-size:11px;max-width:340px;line-height:1.9}.empty .btn{margin-top:18px}.loading-line{height:3px;background:#edf3ff;overflow:hidden}.loading-line::after{content:"";display:block;height:100%;width:28%;background:#7ca2ed;animation:loading 1.4s ease-in-out infinite}@keyframes loading{from{transform:translateX(-100%)}to{transform:translateX(460%)}}.footer-note{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px;color:#aeb8c8;font-size:9px;line-height:1.8}.footer-note span:first-child{display:flex;align-items:flex-start;gap:6px}.footer-note svg{margin-top:2px}.inline-error{margin-bottom:18px}.section-description{padding:18px 22px;font-size:11px;color:#8d9eb7;background:#fcfdff;border-bottom:1px solid var(--line);line-height:1.9}.text-id{font-family:monospace;color:#8a9bb5}.request-detail{white-space:normal;max-width:250px;overflow-wrap:anywhere}.request-detail strong{font-weight:500;color:#4b6489}.request-reason{font-size:10px;color:#98a7bd;margin-top:4px}.audit-summary{max-width:400px;overflow:hidden;text-overflow:ellipsis}.tab-strip{display:flex;gap:21px;align-items:center}.tab-strip button{font-size:11px;color:#99a7bb;background:transparent;padding:3px 0}.tab-strip button.active{color:#4976c1;font-weight:600}.scope-tag{font-size:10px;display:flex;gap:6px;align-items:center;color:#8098bc}
/* Dialogs */
.modal-backdrop{position:fixed;inset:0;z-index:70;background:#1027495c;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:25px;overflow:auto}.modal{background:#fff;border-radius:14px;width:620px;max-width:100%;max-height:calc(100vh - 50px);display:flex;flex-direction:column;box-shadow:0 25px 90px #12294d30;animation:appear .18s ease-out}.modal.wide{width:1050px}.modal.narrow{width:460px}.modal-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:23px 26px 18px;border-bottom:1px solid var(--line);flex-shrink:0}.modal-header h2{font-size:18px;letter-spacing:.5px;font-weight:600;color:#2b456d}.modal-header p{font-size:11px;color:#94a3b9;margin-top:5px;line-height:1.8}.modal-body{padding:23px 26px;overflow:auto}.modal-footer{padding:17px 26px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-shrink:0;background:#fcfdff;border-radius:0 0 14px 14px}.modal-footer .footer-hint{margin-right:auto;color:#a3afc1;font-size:10px}.modal .form-error{margin-bottom:18px}.modal.busy .modal-footer .btn{pointer-events:none;opacity:.5}.modal.busy .modal-footer .btn.primary::before{content:"";width:12px;height:12px;border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.password-intro{display:grid;justify-items:center;text-align:center;gap:9px;margin-bottom:24px}.password-icon{width:56px;height:56px;border-radius:15px;display:grid;place-items:center;background:#edf3ff;color:#7295d6;margin-bottom:4px}.password-intro strong{font-size:14px;font-weight:500;color:#52709d}.password-intro p{font-size:11px;color:#9aa9bf;line-height:1.9}.drop-zone{display:grid;justify-items:center;text-align:center;gap:11px;border:1.5px dashed #bfd1ee;border-radius:10px;background:#f8fbff;padding:32px 24px;cursor:pointer;transition:background .15s,border-color .15s}.drop-zone:hover,.drop-zone.dragover{background:#eff5ff;border-color:#759ee6}.drop-icon{width:45px;height:45px;display:grid;place-items:center;background:#eaf1ff;color:#7d9ed6;border-radius:12px}.drop-zone strong{font-size:12px;font-weight:500;color:#6e88b0}.drop-zone p{font-size:11px;color:#a2b0c4;line-height:1.8}.drop-zone input{margin-top:4px;max-width:360px;font-size:11px}.file-selected{display:flex;align-items:center;gap:13px;background:#f4f8ff;border:1px solid #e0eafb;border-radius:8px;padding:14px 16px;color:#6482b2}.file-selected strong{display:block;font-size:12px;font-weight:500;overflow-wrap:anywhere}.file-selected small{font-size:10px;color:#a1b2cc}.file-selected .icon-btn{margin-left:auto}.import-steps{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:26px}.import-step{display:flex;align-items:center;gap:7px;font-size:10px;color:#a7b4c8}.import-step b{width:21px;height:21px;border-radius:50%;background:#f0f3f8;display:grid;place-items:center;font-weight:500;font-size:10px}.import-step.active{color:#6287c5}.import-step.active b{background:#eaf1ff;color:#4777c7}.step-line{height:1px;width:35px;background:#e6edf7}.preview-summary{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px;font-size:11px;color:#92a3bb}.preview-summary strong{font-size:14px;color:#5876a6;font-weight:500}.preview-table{max-height:290px;overflow:auto;border:1px solid var(--line);border-radius:8px}.preview-table .data-table th{position:sticky;top:0;z-index:1}.preview-table .data-table td{padding:11px 14px;white-space:normal;overflow-wrap:anywhere;max-width:260px}.preview-table .data-table th{padding:10px 14px}.preview-errors{color:#c05c66;font-size:10px}.changes{display:grid;gap:10px}.change-row{display:grid;grid-template-columns:100px 1fr 1fr;gap:12px;font-size:11px;padding:10px 12px;background:#f8faff;border-radius:6px;color:#7e91ae;overflow-wrap:anywhere}.change-row .label{color:#9babc1}.change-row .new{color:#5076b0}.request-context{display:flex;flex-wrap:wrap;gap:7px 20px;font-size:11px;color:#93a2ba;margin-bottom:17px}.request-context strong{color:#657fa5;font-weight:500}.document-list{display:grid;gap:10px}.document-item{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:8px}.document-item>svg{color:#ad8393}.document-name{min-width:0;flex:1}.document-name strong{display:block;color:#6b80a2;font-size:11px;font-weight:500;overflow-wrap:anywhere}.document-name small{font-size:9px;color:#a3b0c4;display:block;margin-top:3px}.document-actions{display:flex;gap:12px;font-size:11px}.pdf-preview{width:100%;height:60vh;border:1px solid var(--line);border-radius:7px;background:#f4f7fb}.toast-root{position:fixed;bottom:26px;left:calc(50% + 117px);transform:translateX(-50%);display:grid;gap:8px;z-index:100;pointer-events:none;max-width:min(90vw,550px)}.toast{display:flex;align-items:center;gap:9px;color:#506989;background:#fff;border:1px solid #dde7f4;padding:12px 18px;border-radius:9px;box-shadow:0 6px 35px #18396c1c;font-size:12px;animation:appear .2s ease-out;pointer-events:auto}.toast.success>svg{color:#5b9d86}.toast.error{border-color:#eecfd3;color:#b9606b}.toast.error>svg{color:#c5757c}.screen-overlay{display:none}
@media(min-width:1600px){.main{padding-top:38px}.page-heading{margin-bottom:30px}.stat-card{padding:24px}.data-table td{padding-top:19px;padding-bottom:19px}}
@media(max-width:1180px){.sidebar{width:210px;padding-left:14px;padding-right:14px}.workspace{margin-left:210px}.brand{padding-left:4px;gap:8px}.brand strong{font-size:14px}.brand small{font-size:8px}.brand img{width:36px;height:36px}.main{padding:27px 24px 20px}.topbar{padding:0 24px}.stats-grid{gap:12px}.stat-card{padding:17px}.heading-actions{gap:6px}.heading-actions .btn{font-size:11px;padding:8px 12px}.data-table td,.data-table th{padding-left:15px;padding-right:15px}.toast-root{left:calc(50% + 105px)}.footer-note{align-items:flex-start}.footer-note span:last-child{display:none}.nav-btn.active::before{left:-14px}.login-story{padding:42px 11%}.story-main h1{font-size:33px}.story-art{transform:scale(.9);transform-origin:left center}}
@media(max-width:960px){.sidebar{width:190px;padding-left:12px;padding-right:12px}.workspace{margin-left:190px}.brand strong{font-size:13px;letter-spacing:.8px}.brand small{font-size:7px;letter-spacing:.7px}.brand img{width:32px;height:32px}.side-note{padding:11px;margin:24px 4px}.side-note p{font-size:9px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat-card{padding:15px 18px}.stat-top{margin-bottom:3px}.stat-number{font-size:27px}.stat-bottom{margin-top:3px}.page-heading{align-items:flex-start;gap:15px}.page-heading h1{font-size:23px}.heading-actions{justify-content:flex-end;max-width:255px}.topbar-right .date-label{display:none}.main{padding:24px 20px}.topbar{padding:0 20px}.toast-root{left:calc(50% + 95px)}.filters{padding:15px}.filter-spacer{display:none}.filters select{min-width:110px}.search-field{max-width:none;flex-basis:100%}.panel-titlebar{padding:17px 18px}.panel-tools .text-muted{display:none}.login-layout{grid-template-columns:minmax(340px,.9fr) minmax(380px,1fr)}.login-story{padding:40px 12%}.story-main h1{font-size:27px;letter-spacing:2px}.story-main p{font-size:11px}.story-brand strong{font-size:15px;letter-spacing:1px}.story-brand small{font-size:7px}.story-brand img{width:44px;height:44px}.login-form-side{padding:40px}.story-art{transform:scale(.75);width:360px;margin-left:-10px}.nav-btn.active::before{left:-12px}}
@media(max-width:720px){.sidebar{transform:translateX(-100%);width:230px;transition:transform .2s;z-index:50;padding:24px 18px}.sidebar.open{transform:translateX(0)}.brand strong{font-size:16px}.brand small{font-size:9px}.brand img{width:40px;height:40px}.screen-overlay.visible{display:block;position:fixed;inset:0;background:#18365d55;z-index:45;backdrop-filter:blur(1px)}.workspace{margin-left:0}.menu-toggle{display:inline-grid}.topbar{height:61px;padding:0 15px;gap:8px}.breadcrumb{gap:7px;font-size:10px}.topbar-right{gap:9px;font-size:9px}.topbar-right .vline{display:none}.main{padding:23px 16px}.page-heading{margin-bottom:20px}.page-heading h1{font-size:22px}.page-heading p{font-size:10px;max-width:240px;line-height:1.8}.eyebrow{font-size:8px}.heading-actions{max-width:180px;gap:6px}.heading-actions .btn{font-size:10px;min-height:33px;padding:6px 9px;gap:5px}.heading-actions .btn svg{width:13px;height:13px}.stats-grid{gap:10px;margin-bottom:18px}.stat-card{padding:14px 15px;border-radius:9px}.stat-top span{font-size:10px}.stat-icon{height:26px;width:26px}.stat-icon svg{width:14px;height:14px}.stat-number{font-size:26px}.stat-bottom{font-size:9px}.panel{border-radius:9px}.panel-titlebar{padding:16px}.panel-title{font-size:12px}.panel-tools{gap:10px;font-size:9px}.scope-tag{max-width:160px;font-size:9px}.filters{padding:13px;gap:8px}.filters select{min-width:100px;flex:1}.filters .filter-label{display:none}.table-foot{padding:12px 14px;gap:9px;flex-wrap:wrap}.pagination{margin-left:auto}.data-table td{font-size:11px;padding:14px}.data-table th{padding:11px 14px}.toast-root{left:50%;bottom:18px;width:max-content;max-width:calc(100vw - 30px)}.footer-note{font-size:8px;margin-top:16px}.modal-backdrop{padding:14px;align-items:center}.modal{max-height:calc(100dvh - 28px);border-radius:11px}.modal-header{padding:20px 19px 16px}.modal-header h2{font-size:17px}.modal-body{padding:20px 19px}.modal-footer{padding:14px 19px}.modal-footer .footer-hint{font-size:9px;max-width:140px}.form-grid{gap:16px}.field label{font-size:11px}.help{font-size:10px}.login-layout{display:block;background:#f6f9ff;min-height:100vh;padding:32px 22px}.login-story{display:none}.login-form-side{min-height:calc(100vh - 64px);padding:25px 24px;background:#fff;border:1px solid #e8eef8;border-radius:15px;max-width:450px;margin:auto;box-shadow:0 12px 55px #21498006}.login-panel{max-width:330px}.login-mobile-brand{display:flex;gap:9px;align-items:center;margin-bottom:40px}.login-mobile-brand img{width:42px;height:42px}.login-mobile-brand strong{font-size:14px;font-weight:500;color:#35537f;letter-spacing:1px}.login-mobile-brand small{display:block;font-size:8px;color:#9babc2;letter-spacing:1.4px;margin-top:3px}.login-panel h2{font-size:25px}.login-top-label{margin-bottom:20px;font-size:10px}.login-version{font-size:9px;margin-top:28px}.change-row{grid-template-columns:75px 1fr 1fr;gap:8px;font-size:10px}.import-steps{gap:8px}.step-line{width:22px}.import-step{font-size:9px;gap:5px}.drop-zone{padding:25px 16px}.preview-summary{align-items:flex-start;flex-direction:column;gap:7px}.request-context{gap:5px 13px}.document-item{flex-wrap:wrap}.document-actions{margin-left:34px}.side-note p{font-size:10px}.side-note{padding:14px;margin:27px 8px}.nav-btn.active::before{left:-18px}}
@media(max-width:420px){.main{padding:20px 12px}.page-heading{flex-direction:column;gap:13px}.heading-actions{max-width:none;width:100%;justify-content:flex-start}.page-heading p{max-width:none}.stats-grid{gap:8px}.stat-card{padding:12px}.stat-top span{font-size:9px}.stat-bottom{font-size:8px}.form-grid{grid-template-columns:1fr}.field.span-2{grid-column:auto}.login-layout{padding:15px}.login-form-side{min-height:calc(100vh - 30px);padding:30px 24px}.topbar-right{font-size:8px}.env-label svg{width:12px;height:12px}.panel-titlebar{gap:10px}.panel-title .count{display:none}.pagination{gap:4px}.table-foot>span{font-size:9px}.page-size{width:72px;font-size:9px}.modal-footer .footer-hint{display:none}.modal-footer .btn{font-size:12px}.footer-note svg{width:10px;height:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Original workbook groups and independent source records. */
.schema-group{border:1px solid var(--line);border-radius:9px;padding:18px;background:#fff;min-width:0}.schema-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.schema-group h3{font-size:13px;color:#526e97;font-weight:600;line-height:1.6}.schema-group-note{font-size:11px;color:#8b9db7;line-height:1.9;margin:0 0 15px;overflow-wrap:anywhere}.schema-fields{border:0;padding:0;margin:0;min-width:0}.sheet-presence-control{display:flex;align-items:flex-start;gap:9px;font-size:12px;color:#6780a6;margin-bottom:16px;cursor:pointer;line-height:1.7}.sheet-presence-control input{flex-shrink:0;margin-top:3px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0}.detail-field{padding:12px 0;border-top:1px solid #edf2f8;min-width:0}.detail-field.span-2{grid-column:1/-1}.detail-field dt{font-size:10px;color:#9baac0;margin-bottom:5px}.detail-field dd{margin:0;font-size:12px;color:#536e96;white-space:pre-wrap;overflow-wrap:anywhere}.source-preview-details{min-width:140px;max-width:520px}.source-preview-details summary{color:var(--blue);cursor:pointer;font-size:11px}.source-preview-details[open]{min-width:410px}.source-preview-details .schema-group{padding:13px;margin-top:10px}.source-preview-details .detail-grid{gap:0 14px}.source-preview-details .detail-field{padding:8px 0}.source-preview-details .detail-field dd{font-size:11px}.source-preview-details h3{margin-bottom:9px}.row-actions{flex-wrap:wrap;min-width:145px}input:disabled,textarea:disabled{opacity:1}
@media(max-width:720px){.schema-group{padding:15px}.schema-group-heading{gap:8px;align-items:flex-start}.schema-group-heading .chip{font-size:9px}.detail-grid{gap:0 16px}.detail-field dd{font-size:11px}.sheet-presence-control{font-size:11px}.source-preview-details[open]{min-width:310px}}
@media(max-width:420px){.detail-grid{grid-template-columns:1fr}.detail-field.span-2{grid-column:auto}.schema-group-heading{flex-wrap:wrap}.schema-group-note{font-size:10px}.schema-group{padding:13px}.source-preview-details[open]{min-width:270px}}

/* Shared exact 华文行楷 lettering outlines from the esports site.
   Masking retains accessible text and uses its light/dark blue brand colors. */
.story-brand strong,.login-mobile-brand strong,.brand strong{display:block;font-size:0;letter-spacing:0;width:180px;height:32px;background:#0866b0;-webkit-mask:url('/static/college-name.svg') center/contain no-repeat;mask:url('/static/college-name.svg') center/contain no-repeat}
.story-brand strong{background:#79bfee}
.brand strong{width:150px;height:28px}
.story-brand img,.login-mobile-brand img,.brand img,.boot-screen img{padding:0!important;border:0!important;background:transparent!important;border-radius:0!important;clip-path:circle(45% at 48.8% 49.7%)}
@media(max-width:600px){.login-mobile-brand strong{width:160px;height:29px}}
/* Larger emblem on login, with separate compact navigation sizing. */
.story-brand{gap:18px}.story-brand img{width:80px;height:80px;flex:0 0 80px}
.login-mobile-brand{align-items:center;gap:14px}.login-mobile-brand img{width:64px;height:64px;flex:0 0 64px}
.brand img{width:48px;height:48px;flex:0 0 48px}

.login-story{justify-content:center;gap:36px}.story-main{padding-bottom:0}.story-main h1{font-size:30px;margin:0;letter-spacing:2px}

/* Centered login card: institutional identity separate from the form. */
.login-centered{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:152px 28px 60px;background:radial-gradient(ellipse at 50% 38%,#f5faff 0%,#eaf4fc 60%,#e3effa 100%)}
.login-brand-header{position:absolute;top:32px;left:40px;display:flex;align-items:center;gap:16px}
.login-crest{display:block;width:82px;height:82px;flex:0 0 82px;object-fit:contain;clip-path:circle(45% at 48.8% 49.7%)}
.login-wordmark strong{display:block;font-size:0;width:206px;height:35px;background:#0866b0;-webkit-mask:url('/static/college-name.svg') center/contain no-repeat;mask:url('/static/college-name.svg') center/contain no-repeat}
.login-wordmark>span{display:block;margin-top:10px;color:#55728e;font-size:13px;letter-spacing:2px}
.login-floating-card{width:440px;max-width:100%;padding:43px 42px 32px;border:1px solid #ffffff;border-radius:20px;background:#fff;box-shadow:0 18px 55px #2c60951a,0 3px 12px #24578108}
.login-floating-card h1{margin:0;color:#193d62;font-size:26px;font-weight:600;letter-spacing:1px}
.login-card-hint{margin:10px 0 32px;font-size:12px;color:#7f91a4}
.login-floating-card .login-form{gap:23px}
.login-floating-card .input-with-icon input{height:48px;border-radius:8px}
.login-floating-card .input-with-icon>svg{top:15px}
.login-floating-card .input-with-icon .password-toggle{top:7px}
.login-floating-card .login-submit{min-height:48px;border-radius:8px;margin-top:5px}
.login-floating-card .login-foot{margin-top:27px;padding-top:21px;font-size:11px;color:#7d8fa1}
@media(max-width:600px){.login-centered{padding:143px 20px 38px;align-items:flex-start}.login-brand-header{top:24px;left:22px;gap:12px}.login-crest{width:66px;height:66px;flex-basis:66px}.login-wordmark strong{width:180px;height:31px}.login-wordmark>span{font-size:12px;letter-spacing:1.4px;margin-top:7px}.login-floating-card{padding:32px 25px 27px;border-radius:17px}.login-floating-card h1{font-size:24px}}

/* Optional remembered login and role-scoped website maintenance controls. */
.login-remember-field{display:grid;gap:6px}.login-remember-label,.maintenance-enabled-label{display:flex;align-items:center;gap:9px;font-size:12px;color:#58718f;cursor:pointer}.login-remember-label input,.maintenance-enabled-label input{width:16px;height:16px;min-height:0;margin:0;accent-color:var(--blue);flex-shrink:0}.login-remember-field .help{margin:0;font-size:10px}
.maintenance-banner{display:flex;align-items:flex-start;gap:13px;border:1px solid #ecd5a1;border-radius:10px;background:#fffaf0;padding:17px 20px;margin-bottom:22px;color:#8a651f}.maintenance-banner>svg{margin-top:3px}.maintenance-banner-text{flex:1;min-width:0}.maintenance-banner strong{font-size:13px;font-weight:600}.maintenance-banner .help{color:#947947}.maintenance-details{min-width:0}.maintenance-message{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.9}.maintenance-banner .maintenance-message{margin-top:4px}.maintenance-page{max-width:720px;margin:38px auto;padding:42px;text-align:center;display:grid;justify-items:center;gap:19px}.maintenance-page-icon{width:68px;height:68px;border-radius:18px;background:#edf3ff;color:#7295d6;display:grid;place-items:center}.maintenance-page h1{font-size:24px;color:#2b456d}.maintenance-page .maintenance-details{width:100%}.maintenance-page>.help{max-width:540px;margin:0}.maintenance-page-actions,.maintenance-settings-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.maintenance-settings{max-width:720px}.maintenance-settings-actions{justify-content:flex-start}.maintenance-updated{margin-top:20px}.maintenance-enabled-label{font-size:13px}
@media(max-width:720px){.maintenance-banner{flex-wrap:wrap;padding:15px}.maintenance-banner .btn{margin-left:33px}.maintenance-page{padding:30px 20px;margin:12px auto;gap:17px}.maintenance-page h1{font-size:22px}.maintenance-page-actions{width:100%}.maintenance-page-actions .btn{font-size:11px;padding:9px 12px}}

/* Wider work navigation and deliberately paced, reduced-motion-aware UI. */
@media(min-width:721px){.sidebar{width:280px}.workspace{margin-left:280px}.toast-root{left:calc(50% + 140px)}}
@media(max-width:720px){.sidebar{width:280px;transition:transform 320ms cubic-bezier(.2,.7,.2,1)}.workspace{margin-left:0}.toast-root{left:50%}.screen-overlay.visible{animation:surface-fade-in 320ms ease both}}
.btn,.icon-btn,.nav-btn,.page-btn,.tab-strip button,.btn-link{transition:background-color 280ms ease,border-color 280ms ease,color 280ms ease,box-shadow 320ms ease,transform 280ms ease}.btn:not(:disabled):active,.icon-btn:not(:disabled):active{transform:translateY(1px)}.nav-btn.active::before{transition:opacity 320ms ease}.panel,.stat-card,.data-table tbody tr{transition:background-color 320ms ease,box-shadow 320ms ease}.main.route-entering{animation:route-enter 320ms cubic-bezier(.2,.7,.2,1) both}.main.route-leaving{animation:route-exit 320ms ease both;pointer-events:none}.data-table tbody tr.list-row-entering{animation:list-row-enter 320ms cubic-bezier(.2,.7,.2,1) both}.data-table tbody tr.list-row-leaving{animation:list-row-exit 320ms ease both;pointer-events:none}.data-table tbody tr.list-row-updated{animation:list-row-update 360ms ease both}
.modal-backdrop{animation:surface-fade-in 320ms ease both}.modal{animation:modal-enter 360ms cubic-bezier(.2,.7,.2,1) both}.modal-backdrop.is-closing{animation:surface-fade-out 320ms ease both;pointer-events:none}.modal-backdrop.is-closing .modal{animation:modal-exit 320ms cubic-bezier(.4,0,.6,1) both}.toast{animation:route-enter 320ms ease both}
.custom-file-picker{transition:border-color 300ms ease,background-color 300ms ease,box-shadow 320ms ease,transform 320ms ease;cursor:pointer}.custom-file-picker:hover,.custom-file-picker.dragover{box-shadow:0 5px 22px #245fd50b}.custom-file-picker.dragover{transform:translateY(-2px)}.custom-file-picker .file-picker-button{margin-top:4px;min-width:124px;background:#eaf1ff;color:#4976bd;border:1px solid #d5e3fb}.custom-file-picker input[type=file]{display:none!important}.custom-file-selected{animation:route-enter 320ms ease both}.custom-file-selected.is-leaving{animation:route-exit 320ms ease both;pointer-events:none}.custom-file-field>.custom-file-selection:empty,.custom-file-field>[role=alert]:empty{display:none}.custom-file-field .form-error{margin-bottom:0}.modal.busy .custom-file-picker,.modal.busy .custom-file-selection{pointer-events:none;opacity:.6}
@keyframes surface-fade-in{from{opacity:0}to{opacity:1}}@keyframes surface-fade-out{from{opacity:1}to{opacity:0}}@keyframes route-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes route-exit{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5px)}}@keyframes modal-enter{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-exit{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(9px) scale(.985)}}@keyframes list-row-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes list-row-exit{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-8px)}}@keyframes list-row-update{from{background:#edf3ff}to{background:transparent}}
@media(prefers-reduced-motion:reduce){.main,.data-table tbody tr,.modal,.modal-backdrop,.toast,.custom-file-selected{animation:none!important}.sidebar,.btn,.icon-btn,.nav-btn,.page-btn,.tab-strip button,.btn-link,.panel,.stat-card,.custom-file-picker{transition:none!important}.custom-file-picker.dragover{transform:none}}
@media(max-width:720px){.sidebar{max-width:calc(100vw - 28px)}}
/* Keep the complete institutional round seal and remove the image's outer corners. */
.login-crest,.brand img,.story-brand img,.login-mobile-brand img,.boot-screen img{clip-path:circle(45% at 48.8% 49.7%);background:transparent!important;border:0!important;padding:0!important}

/* Name-only class creation, preview, and explicit bulk confirmation. */
.class-management-modal .class-mode-tabs{display:grid;grid-template-columns:1fr 1.65fr 1fr;gap:5px;background:#f2f6fc;border:1px solid #e5edf8;border-radius:9px;padding:5px}.class-management-modal .class-mode-tabs button{background:transparent;color:#8094b1;font-size:12px;line-height:1.5;min-height:39px;padding:8px 9px;border:1px solid transparent;border-radius:6px;transition:background-color 280ms ease,color 280ms ease,box-shadow 320ms ease}.class-management-modal .class-mode-tabs button[aria-selected=true]{background:#fff;border-color:#dde8fa;color:#376dca;box-shadow:0 2px 6px #264f8a09}.class-management-modal.busy .class-mode-tabs{pointer-events:none;opacity:.6}.class-management-modal .class-mode-panel{min-width:0}.class-management-modal .class-mode-panel textarea{min-height:190px;white-space:pre-wrap}.class-management-modal .class-template-actions{display:flex;align-items:flex-start;gap:14px}.class-management-modal .class-template-actions .help{margin-top:1px}.class-management-modal .class-steps{margin-bottom:0}.class-management-modal .class-preview-summary{display:grid;gap:12px}.class-management-modal .class-preview-summary>.help{margin:0}.class-management-modal .class-preview-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.class-management-modal .class-count{display:flex;align-items:baseline;gap:9px;border:1px solid #e1eaf7;border-radius:8px;background:#f8faff;padding:13px 15px}.class-management-modal .class-count strong{font-size:24px;font-weight:600;line-height:1.25}.class-management-modal .class-count span{font-size:11px}.class-management-modal .class-count.green{color:#27866e;background:#f2faf7;border-color:#dceee6}.class-management-modal .class-count.red{color:#bd5964;background:#fff7f8;border-color:#f2e0e3}.class-management-modal .class-preview-table{max-height:330px}.class-management-modal .class-preview-table .class-name-original{white-space:pre-wrap;overflow-wrap:anywhere;min-width:150px;color:#4c678e}.class-management-modal .class-confirm-note{font-size:12px;line-height:1.9;color:#7e92af}
@media(max-width:720px){.class-management-modal .class-mode-tabs{grid-template-columns:1fr 1.65fr 1fr;gap:2px;padding:4px}.class-management-modal .class-mode-tabs button{font-size:10px;padding:8px 4px}.class-management-modal .class-template-actions{flex-direction:column;gap:6px}.class-management-modal .class-preview-counts{gap:6px}.class-management-modal .class-count{flex-direction:column;gap:3px;padding:11px}.class-management-modal .class-count strong{font-size:22px}.class-management-modal .class-count span{font-size:10px}.class-management-modal .modal-footer{flex-wrap:wrap}.class-management-modal .modal-footer .btn{font-size:11px;min-height:36px;padding:7px 11px}}
@media(prefers-reduced-motion:reduce){.class-management-modal .class-mode-tabs button{transition:none!important}}

/* Scheduled maintenance controls: server-authoritative state and Beijing time. */
.maintenance-config-panel .maintenance-settings{max-width:760px}.maintenance-settings .maintenance-switch-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:17px;border-bottom:1px solid #edf1f7}.maintenance-settings .maintenance-switch-row>div{min-width:0}.maintenance-settings #maintenance-switch-label{font-size:14px;color:#36577f;font-weight:600}.maintenance-settings .maintenance-switch-row .help{margin:5px 0 0}.maintenance-settings .maintenance-switch{position:relative;flex:0 0 46px;width:46px;height:26px;min-height:26px;padding:0;border:1px solid #c8d5e5;border-radius:20px;background:#d7e0eb;cursor:pointer;transition:background-color 240ms ease,border-color 240ms ease}.maintenance-settings .maintenance-switch[aria-checked=true]{background:#5a8dde;border-color:#5a8dde}.maintenance-settings .maintenance-switch-knob{display:block;position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #25436b28;transition:transform 240ms ease}.maintenance-settings .maintenance-switch[aria-checked=true] .maintenance-switch-knob{transform:translateX(20px)}.maintenance-settings .maintenance-switch:disabled{cursor:wait;opacity:.6}.maintenance-settings .maintenance-switch:focus-visible,.maintenance-settings .maintenance-mode-tabs button:focus-visible,.maintenance-settings .maintenance-calendar button:focus-visible,.maintenance-settings .maintenance-duration-presets button:focus-visible,.maintenance-settings .maintenance-calendar-trigger:focus-visible{outline:3px solid #92b9f4;outline-offset:3px}.maintenance-settings [hidden]{display:none!important}.maintenance-current-summary{display:grid;gap:11px;padding:16px 18px;border-radius:8px;border:1px solid #e3ebf6;background:#f8faff;justify-items:start}.maintenance-current-summary>.help{margin:0}.maintenance-time-range{display:grid;gap:7px;font-size:12px;line-height:1.8;min-width:0}.maintenance-time-range>strong{font-size:11px;font-weight:500;letter-spacing:.02em}.maintenance-time-range>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-variant-numeric:tabular-nums;color:#365b88}.maintenance-range-separator{font-size:10px;color:#8293ab}.maintenance-time-range .help{margin:0}.maintenance-range-unknown{margin:0;max-width:610px}.maintenance-details .maintenance-time-range{margin-top:12px}.maintenance-page .maintenance-time-range{justify-items:center}.maintenance-page .maintenance-time-range>div{justify-content:center}.maintenance-banner-available{border-color:#dbe7f5;background:#f5f9ff;color:#4b729c}.maintenance-banner-available .help{color:#708aa8}.maintenance-banner .maintenance-time-range>div{color:inherit}.maintenance-settings .maintenance-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border-radius:9px;background:#f1f5fb;border:1px solid #e1e9f5}.maintenance-settings .maintenance-mode-tabs .btn{min-height:39px;border:1px solid transparent;background:transparent;color:#7b90ae;box-shadow:none;font-size:12px}.maintenance-settings .maintenance-mode-tabs [aria-selected=true]{background:#fff;border-color:#dce7f7;color:#416fb5;box-shadow:0 2px 5px #264f8a0a}.maintenance-settings .maintenance-mode-description{margin-top:-8px}.maintenance-settings .maintenance-duration-presets{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.maintenance-settings .maintenance-duration-presets .btn{font-size:11px;color:#7790b1;background:#fff;border-color:#dfe7f3}.maintenance-settings .maintenance-duration-presets [aria-pressed=true]{background:#eff5ff;color:#416fb5;border-color:#a9c3ed}.maintenance-settings .maintenance-duration-custom{display:flex;align-items:center;gap:11px;color:#7890ae;font-size:12px}.maintenance-settings .maintenance-duration-custom input{max-width:156px;font-variant-numeric:tabular-nums}.maintenance-settings .maintenance-start-picker{position:relative;max-width:380px}.maintenance-settings .maintenance-start-input{display:flex;align-items:center;position:relative}.maintenance-settings .maintenance-start-input input{padding-right:48px;font-variant-numeric:tabular-nums;letter-spacing:.025em}.maintenance-settings .maintenance-calendar-trigger{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#7595c0;width:30px;height:30px}.maintenance-settings .maintenance-calendar{position:absolute;top:calc(100% + 8px);left:0;z-index:35;width:326px;max-width:calc(100vw - 84px);padding:15px;border:1px solid #dce6f5;border-radius:11px;background:#fff;box-shadow:0 12px 36px #284a791a;display:grid;gap:13px}.maintenance-settings .maintenance-calendar-header{display:flex;align-items:center;justify-content:space-between;color:#44648b}.maintenance-settings .maintenance-calendar-header strong{font-size:12px;font-weight:600}.maintenance-settings .maintenance-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.maintenance-settings .maintenance-calendar-weekday{text-align:center;font-size:10px;color:#93a2b8;padding:5px 0}.maintenance-settings .maintenance-calendar-day{border:0;background:#fff;min-height:33px;border-radius:6px;color:#6a83a5;font-size:12px;font-variant-numeric:tabular-nums;cursor:pointer}.maintenance-settings .maintenance-calendar-day:hover{background:#f0f5fd}.maintenance-settings .maintenance-calendar-day[aria-selected=true]{background:#628fdb;color:#fff}.maintenance-settings .maintenance-calendar-day[tabindex="0"]{box-shadow:inset 0 0 0 1px #bed0ed}.maintenance-settings .maintenance-calendar-time{display:flex;align-items:center;gap:7px;border-top:1px solid #eef2f8;padding-top:12px;font-size:10px;color:#8c9eb6}.maintenance-settings .maintenance-calendar-time select{width:80px;min-height:34px;padding:5px 8px;font-size:11px}.maintenance-settings .maintenance-calendar-time>span:first-child{margin-right:auto;white-space:nowrap}.maintenance-settings #maintenance-draft-status:empty{display:none}.maintenance-settings #maintenance-draft-status .btn{display:block;margin-top:9px}.maintenance-settings .maintenance-current-summary .badge{white-space:normal}.maintenance-settings .maintenance-settings-actions{margin-top:2px}
@media(max-width:720px){.maintenance-settings .maintenance-switch-row{gap:15px}.maintenance-current-summary{padding:13px}.maintenance-time-range>div{gap:5px 10px}.maintenance-settings .maintenance-calendar{max-width:calc(100vw - 76px);width:300px;padding:12px}.maintenance-settings .maintenance-calendar-time select{width:74px}.maintenance-settings .maintenance-duration-presets{gap:6px}.maintenance-settings .maintenance-duration-presets .btn{padding:6px 10px}.maintenance-settings .maintenance-start-picker{max-width:100%}}
@media(prefers-reduced-motion:reduce){.maintenance-settings .maintenance-switch,.maintenance-settings .maintenance-switch-knob{transition:none!important}}
.maintenance-settings .maintenance-calendar-grid{grid-template-columns:minmax(0,1fr)}.maintenance-settings .maintenance-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
