:root{color:#172033;background:#f4f6f8;font-family:Microsoft YaHei,PingFang SC,Segoe UI,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #f4f6f8;--panel: #ffffff;--ink: #172033;--muted: #647184;--line: #dbe2ea;--line-soft: #edf1f5;--accent: #0f766e;--accent-dark: #0b5d58;--blue: #2463eb;--green: #16803a;--amber: #a76207;--red: #b4232f;--cyan: #0e7490;--soft-green: #e8f6ee;--soft-amber: #fff6df;--soft-red: #fdecef;--soft-blue: #eaf2ff;--soft-cyan: #e8f7fb;--shadow: 0 2px 6px rgba(15, 23, 42, .035);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1)}.feature-form{padding:20px;display:grid;gap:14px;min-width:0;margin-bottom:16px}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.feature-form fieldset{border:1px solid var(--line);border-radius:8px;padding:12px;min-width:0}.feature-options{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.feature-options label{display:inline-flex;align-items:center;gap:6px;min-height:36px}.feature-options input[type=checkbox]{width:16px;height:16px}.profile-missing{margin:0;padding:9px 11px;border:1px solid #f1d7a5;border-radius:8px;color:#8a5500;background:#fff8e8;font-size:13px}.profile-tag-options{gap:8px}.tag-option{padding:0 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);cursor:pointer}.tag-option.picked{border-color:var(--brand);background:#e9f8f4;color:var(--brand-deep);font-weight:700}.custom-tag-row{display:flex;align-items:center;gap:8px;margin-top:10px}.custom-tag-row input{flex:1;min-width:0}.dashboard-pagination{margin-top:2px}.prep-editor{display:grid;grid-template-columns:minmax(0,1fr) 156px;gap:12px;width:100%;height:100%;min-height:0}.prep-scroll{min-width:0;min-height:0;overflow:auto;padding:22px;border:1px solid var(--line-soft);border-radius:10px;background:#e8efed}.prep-paper{position:relative;width:min(100%,860px);margin:auto}.prep-paper>img{display:block;width:100%;height:auto}.prep-paper canvas,.prep-paper .prep-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.prep-tool-rail{display:flex;flex-direction:column;gap:10px;min-width:0;padding:10px;overflow-y:auto;border:1px solid #afd8d1;border-radius:11px;background:#f7fcfb;box-shadow:0 8px 24px #0a5b531a}.prep-tool-section{display:grid;gap:6px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}.prep-tool-section:last-of-type{border-bottom:0;padding-bottom:0}.prep-tool-section strong{padding:2px 3px 4px;color:var(--accent-dark);font-size:12px}.prep-tool-rail button{display:flex;align-items:center;justify-content:flex-start;gap:7px;width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:650;cursor:pointer}.prep-tool-rail button:hover:not(:disabled){border-color:#73bdb4;background:#edf9f7}.prep-tool-rail button.active{border-color:var(--accent);background:#dff5f1;color:var(--accent-dark);box-shadow:inset 3px 0 0 var(--accent)}.prep-tool-rail button.danger{border-color:#efb8b8;color:#a52828}.prep-tool-rail button.danger:hover:not(:disabled){border-color:#dc7070;background:#fff1f1}.prep-tool-rail button.save{justify-content:center;border-color:#087f73;background:#087f73;color:#fff;box-shadow:0 6px 14px #087f7333}.prep-tool-rail button.save:hover:not(:disabled){border-color:#056b61;background:#056b61}.prep-tool-rail button.complete{justify-content:center;border-color:#176b8f;background:#176b8f;color:#fff}.prep-tool-rail button.complete:hover:not(:disabled){border-color:#105976;background:#105976}.prep-tool-rail button:disabled{cursor:not-allowed;opacity:.48}.prep-tool-hint{margin:0;padding:8px;border-radius:7px;background:#fff7df;color:#76530b;font-size:11px;line-height:1.5}.prep-tool-message{min-height:18px;color:var(--accent-dark);font-size:11px;line-height:1.45}.center-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:#0f222a94}.center-confirm-dialog{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;width:min(440px,calc(100vw - 32px));padding:22px;border:1px solid #c8ddd9;border-radius:14px;background:#fff;box-shadow:0 24px 70px #0f222a57}.center-confirm-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff4d8;color:#9a6500;font-size:20px}.center-confirm-icon.danger{background:#fff0f0;color:#b52a2a}.center-confirm-copy{display:grid;gap:8px;min-width:0}.center-confirm-copy h2{margin:0;font-size:18px}.center-confirm-copy p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.center-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.center-confirm-actions button{min-height:38px;padding:8px 13px}.danger-confirm-button{border:1px solid #b82e2e;border-radius:8px;background:#b82e2e;color:#fff;font-weight:700;cursor:pointer}.danger-confirm-button:hover{border-color:#962222;background:#962222}@media(max-width:760px){.feature-form{padding:12px}.feature-form button,.prep-editor button{min-height:44px}.feature-grid{grid-template-columns:1fr}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.skip-link{position:fixed;top:-80px;left:16px;z-index:100;padding:12px;background:#fff;color:var(--accent)}.skip-link:focus{top:12px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.nav-group{display:grid;gap:4px}.nav-group-title{padding:16px 12px 6px;color:var(--muted);font-size:12px}.sidebar nav button{width:100%;border-color:transparent;height:42px}.sidebar nav button:hover{background:#f0f6f5}.sidebar nav button.active{border-color:#c4e4df}.page-description{color:var(--muted);font-size:14px;margin-top:8px;line-height:1.6}.settings-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.lesson-empty{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:32px;text-align:center}.lesson-empty>.anticon{font-size:40px;color:var(--accent)}.lesson-empty p{max-width:480px;color:var(--muted);line-height:1.8}.lesson-library-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.lesson-upload-form>.choice-field,.lesson-edit-form>.choice-field{grid-column:1 / -1}.lesson-upload-form>.choice-field{grid-template-columns:72px minmax(0,1fr);align-items:start;column-gap:10px}.lesson-upload-form>.choice-field>span{padding-top:7px;line-height:1.35}.lesson-library-workspace .lesson-filters{grid-template-columns:minmax(0,1fr)}.lesson-library-workspace .filter-choice-field{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:start;gap:10px}.lesson-library-workspace .filter-choice-field>span{padding-top:7px}.term-batch-toggle{display:inline-flex;align-items:center;gap:8px;min-height:34px;cursor:pointer}.term-batch-toggle input[type=checkbox]{width:16px;height:16px;min-height:0;margin:0;flex:0 0 16px;accent-color:var(--accent)}.lesson-upload-panel,.lesson-list-panel{min-width:0}.lesson-list-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr);height:calc(100dvh - 150px);min-height:560px;overflow:hidden}.lesson-upload-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px 20px 20px}.lesson-upload-form .lesson-title-field{grid-column:1 / -1}.lesson-title-control{display:flex;align-items:center;gap:12px;min-width:0}.lesson-title-control input{flex:1 1 320px;min-width:0}.lesson-title-control small{flex:0 0 auto;color:var(--muted);white-space:nowrap}.lesson-upload-form .lesson-file-field{grid-column:1 / -1}.lesson-file-native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.lesson-file-dropzone{display:grid;place-items:center;gap:7px;min-height:150px;padding:20px;border:1.5px dashed #9fb8c2;border-radius:12px;background:#fbfdfd;color:var(--muted);text-align:center;cursor:pointer;transition:border-color .16s var(--ease-out),background-color .16s var(--ease-out),transform .16s var(--ease-out)}.lesson-file-dropzone>.anticon{color:#cf3d3d;font-size:34px}.lesson-file-dropzone strong{color:var(--ink);font-size:15px}.lesson-file-dropzone:hover,.lesson-file-dropzone.drag-active{border-color:var(--accent);background:#ecf8f5;transform:translateY(-1px)}.lesson-file-dropzone:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.lesson-file-field small{color:var(--muted)}.lesson-upload-actions{grid-column:1 / -1;display:flex;align-items:center;gap:12px;min-height:40px}.lesson-upload-actions>span{color:var(--muted);font-size:13px;line-height:1.5}.lesson-upload-files{grid-column:1 / -1;display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:10px;background:#fbfdfd}.lesson-upload-files>div{display:flex;align-items:center;gap:8px;min-width:0;color:var(--accent-dark);font-size:13px}.lesson-upload-files>div>span{flex:1;overflow-wrap:anywhere}.lesson-upload-files .icon-button{padding:4px 8px}.lesson-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:#fbfdfd}.lesson-plan-list{display:grid;align-content:start;gap:10px;min-height:0;margin:14px 0 0;padding:0 8px 14px 0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.lesson-plan-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:#fff}.lesson-plan-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#fff3e7;color:#bd6e24;font-size:20px}.lesson-plan-main{min-width:0}.lesson-plan-main p,.lesson-plan-main small{display:block;margin:5px 0 0;color:var(--muted);overflow-wrap:anywhere}.lesson-plan-main small{font-size:12px}.lesson-plan-files,.lesson-slot-files{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.lesson-plan-files span,.lesson-slot-files span{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 7px;border-radius:999px;background:#f2f7f6;color:var(--accent-dark);font-size:11px;overflow-wrap:anywhere}.lesson-plan-actions{display:grid;gap:8px;min-width:118px}.lesson-edit-modal{width:min(720px,94vw);max-height:90vh;overflow:auto;border:1px solid #b9d9d3;border-radius:14px;background:#fff;box-shadow:0 18px 60px #0f222a47}.lesson-edit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line-soft);background:#f7fbfa}.lesson-edit-head>div{display:grid;gap:6px;min-width:0}.lesson-edit-head h2{font-size:18px}.lesson-edit-head p{max-width:560px;color:var(--muted);font-size:12px;line-height:1.6}.lesson-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px 20px 20px}.lesson-edit-error{grid-column:1 / -1;padding:9px 11px;border:1px solid #efb4b4;border-radius:8px;background:#fff2f2;color:var(--red);font-size:13px}.lesson-edit-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.lesson-slot-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 12px;border-bottom:1px solid var(--line-soft)}.lesson-slot-entry>div{display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:7px;row-gap:3px;align-items:center;min-width:0;color:var(--accent-dark)}.lesson-slot-entry small{grid-column:2;color:var(--muted);overflow-wrap:anywhere}.lesson-slot-files{grid-column:2}.lesson-reader-backdrop,.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;background:#0f222a85;transition:opacity .2s var(--ease-out)}.lesson-reader-backdrop>.lesson-reader,.modal-backdrop>.confirm-modal,.modal-backdrop>.lesson-edit-modal,.modal-backdrop>.panel.feature-form{transform-origin:center;transition:transform .24s var(--ease-out),opacity .2s var(--ease-out)}@starting-style{.lesson-reader-backdrop,.modal-backdrop{opacity:0}.lesson-reader-backdrop>.lesson-reader,.modal-backdrop>.confirm-modal,.modal-backdrop>.lesson-edit-modal,.modal-backdrop>.panel.feature-form{opacity:0;transform:translateY(2%) scale(.97)}}.lesson-reader{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:12px;width:min(1120px,94vw);height:min(880px,92vh);min-width:0;min-height:0;overflow:hidden;padding:16px;border:1px solid #b9d9d3;border-radius:14px;background:#f7fbfa;box-shadow:0 18px 60px #0f222a47}.lesson-reader-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-width:0}.lesson-reader-head>div{display:grid;gap:4px;min-width:0}.lesson-reader-head strong,.lesson-reader-head span{overflow-wrap:anywhere}.lesson-reader-head span{color:var(--muted);font-size:12px}.lesson-reader-files{display:flex;gap:7px;overflow-x:auto;padding:2px 0 3px}.lesson-reader-files button{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;max-width:280px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-reader-files button.active{border-color:var(--accent);background:#e9f7f3;color:var(--accent-dark)}.lesson-reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;min-width:0;padding:8px;border:1px solid var(--line-soft);border-radius:10px;background:#fff}.lesson-reader-view-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lesson-reader-view-tools>span{min-width:52px;color:var(--accent-dark);font-size:13px;font-weight:700;text-align:center}.annotation-entry-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 14px;border:1px solid #087f73;border-radius:8px;background:#087f73;color:#fff;font-weight:750;box-shadow:0 6px 16px #087f7333;cursor:pointer}.annotation-entry-button:hover{border-color:#056b61;background:#056b61}.annotation-entry-button.active{border-color:#7f958f;background:#fff;color:#315d57;box-shadow:none}.lesson-annotation-stage{min-width:0;min-height:0;overflow:hidden}.lesson-page-stage{position:relative;display:flex;justify-content:center;align-items:flex-start;min-width:0;min-height:240px;overflow:auto;padding:28px;border:1px solid var(--line-soft);border-radius:10px;background:#e8efed;-webkit-user-select:none;user-select:none}.lesson-page-stage img{display:block;width:min(100%,860px);height:auto;object-fit:contain;pointer-events:none;transform-origin:center top;transition:transform .16s ease;box-shadow:0 8px 22px #1f364329}.lesson-page-state{display:grid;place-items:center;align-content:center;gap:10px;min-height:240px;color:var(--muted);font-size:13px;text-align:center}.lesson-page-error{color:var(--red)}.lesson-watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-22deg);color:#187e7538;font-size:clamp(16px,3vw,28px);font-weight:700;white-space:nowrap;pointer-events:none}.lesson-reader-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;padding:0 4px}.lesson-reader-controls button{flex:0 0 auto}.lesson-reader-controls small{min-width:0;flex:1 1 280px;color:var(--muted);overflow-wrap:anywhere}.confirm-modal{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;width:min(460px,92vw);padding:22px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 18px 60px #0f222a47}.confirm-modal-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--soft-amber);color:var(--amber);font-size:20px}.confirm-modal-copy{display:grid;gap:7px}.confirm-modal-copy h2{font-size:18px}.confirm-modal-copy p{color:var(--muted);font-size:13px;line-height:1.6}.confirm-modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.request-approval-workspace{display:grid;gap:18px}.request-metrics{grid-column:auto}.request-approval-panel{min-width:0}.request-filter-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;padding:14px 18px;border-bottom:1px solid var(--line-soft);background:#fbfdfd}.request-bulk-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--line-soft);background:#f4faf8;color:var(--muted);font-size:13px}.request-select-all,.request-select{display:inline-flex;align-items:center;gap:6px;min-height:30px;color:var(--ink);font-weight:600}.request-select-all input,.request-select input{width:14px;height:14px;margin:0;accent-color:var(--accent)}.request-bulk-actions{display:flex;gap:8px;margin-left:auto}.request-filter-tabs{display:flex;flex-wrap:wrap;gap:6px}.request-filter-tabs button{min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted)}.request-filter-tabs button.active{border-color:#9bd2cb;background:#e9f7f4;color:var(--accent-dark);font-weight:700}.request-approval-list{display:grid}.request-approval-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line-soft)}.request-select{width:28px;justify-content:center;flex-shrink:0}.request-approval-main{min-width:0}.request-approval-main p{margin-top:6px;color:var(--ink);font-size:13px}.request-approval-main small{display:block;margin-top:5px;color:var(--muted);overflow-wrap:anywhere}.request-approval-actions{display:flex;flex-shrink:0;gap:8px}.request-date-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px}.request-date-row input{width:100%;min-width:0}.request-date-row em{color:var(--muted);font-size:12px;font-style:normal}.request-date-shortcuts{display:flex;flex-wrap:wrap;gap:6px}.request-date-shortcuts button{min-height:26px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--muted);font-size:12px;font-weight:700}.request-date-shortcuts button:hover,.request-date-shortcuts button.active{border-color:#9bd2cb;background:#e9f7f4;color:var(--accent-dark)}.notification-panel .panel-title h2{display:flex;align-items:center;gap:7px}.notification-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px 18px}.notification-body>div{display:grid;gap:5px;min-width:0;padding:12px;border:1px solid var(--line-soft);border-radius:10px;background:#fbfdfd}.notification-body strong{font-size:13px}.notification-body span{color:var(--muted);font-size:12px;line-height:1.55;overflow-wrap:anywhere}.app-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.login-shell{position:relative;isolation:isolate;overflow:hidden;min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,520px);align-items:end;gap:clamp(40px,8vw,144px);padding:clamp(28px,5vw,76px) clamp(28px,7vw,132px);background:radial-gradient(circle at 78% 8%,rgba(150,214,0,.23),transparent 27%),radial-gradient(circle at 18% 90%,rgba(0,181,226,.22),transparent 38%),linear-gradient(122deg,#003f40,#005151 44%,#007a74)}.login-shell:before,.login-shell:after{position:absolute;z-index:-1;content:"";pointer-events:none}.login-shell:before{width:min(62vw,920px);aspect-ratio:1;right:-18vw;top:-35vw;border:1px solid rgba(255,255,255,.15);border-radius:50%;box-shadow:0 0 0 90px #ffffff06,0 0 0 180px #ffffff05}.login-shell:after{width:42vw;height:1px;left:0;bottom:72px;background:#ffffff8a}.login-noise{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.16;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.85'/%3E%3C/svg%3E")}.login-particles{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.login-particles .login-particle{position:absolute;left:var(--particle-x);top:var(--particle-y);display:block;width:4px;height:4px}.login-particles .login-particle>b{display:block;width:4px;height:4px;border-radius:50%;background:#96d600c7;box-shadow:0 0 12px #96d600d1;animation:login-particle-float var(--particle-duration) ease-in-out var(--particle-delay) infinite}.login-particles .login-particle:nth-child(3n)>b{width:2px;height:2px;background:#ffffffc7;box-shadow:0 0 9px #ffffff8c;animation-duration:15s}.login-particles .login-particle:nth-child(4n)>b{background:#00b5e2b8;box-shadow:0 0 12px #00b5e29e;animation-duration:18s}@keyframes login-particle-float{0%,to{transform:translateZ(0) scale(.7);opacity:.16}45%{opacity:.92}50%{transform:translate3d(26px,-42px,0) scale(1.15);opacity:.58}}.login-topbar{position:absolute;top:clamp(24px,4vw,48px);left:clamp(28px,7vw,132px);right:clamp(28px,7vw,132px);display:flex;align-items:flex-start;height:216px}.login-topbar img{display:block;width:228px;height:216px;object-fit:contain;object-position:left top}.login-hero{align-self:end;display:grid;gap:20px;padding-bottom:clamp(0px,1vw,18px);color:#fff;pointer-events:none}.login-hero p{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(48px,7.3vw,128px);font-weight:400;line-height:.86;letter-spacing:-.065em}.login-hero span{color:#ffffffc2;font-size:13px;letter-spacing:.12em}.login-tutorial-entry{position:absolute;left:calc(clamp(28px,7vw,132px) + 160px);bottom:calc(clamp(46px,5vw,72px) + 15px);z-index:2}.login-tutorial-entry button{min-height:40px;padding:0 15px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:#003f405c;color:#fff;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.03em;box-shadow:0 8px 22px #00232329;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .16s ease,border-color .16s ease,transform .16s var(--ease-out)}.tutorial-shell{min-height:100vh;background:linear-gradient(135deg,#eff7f4,#f4f6f8 48%,#e7f1ef);color:var(--ink)}.tutorial-topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px clamp(20px,5vw,72px);border-bottom:1px solid rgba(15,118,110,.14);background:#ffffffbd;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.tutorial-back-button,.tutorial-pagination button,.tutorial-secondary-action{min-height:40px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;white-space:nowrap}.tutorial-back-button:hover,.tutorial-pagination button:hover:not(:disabled),.tutorial-secondary-action:hover{border-color:#9bd2cb;background:#f2faf8;color:var(--accent-dark)}.tutorial-topbar-brand{display:inline-flex;align-items:center;gap:10px;color:var(--accent-dark);font-weight:800}.tutorial-topbar-brand img{width:38px;height:38px;object-fit:contain;object-position:center}.tutorial-page-count{padding:6px 10px;border-radius:999px;background:var(--soft-blue);color:var(--blue);font-size:12px;font-weight:800}.tutorial-main{width:min(100%,1040px);margin:0 auto;padding:clamp(32px,5vw,64px) clamp(20px,4vw,48px) 56px}.tutorial-intro{margin-bottom:24px}.tutorial-intro h1{margin-top:5px;color:var(--accent-dark);font-size:clamp(28px,4vw,40px);letter-spacing:-.04em}.tutorial-intro>p:last-child{margin-top:8px;color:var(--muted);line-height:1.7}.tutorial-card{overflow:hidden;border:1px solid #cfe1dd;border-radius:16px;background:#ffffffeb;box-shadow:0 18px 50px #144b461a}.tutorial-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line-soft)}.tutorial-card-heading>div{min-width:0}.tutorial-kicker{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.08em}.tutorial-card-heading h2{margin-top:5px;color:var(--accent-dark);font-size:24px}.tutorial-card-heading p:last-child{margin-top:7px;color:var(--muted);line-height:1.65}.tutorial-video-block{padding:20px 24px 0}.tutorial-video-block video{display:block;width:100%;max-height:620px;border-radius:12px;background:#0a2f30;box-shadow:0 8px 26px #09373724}.tutorial-video-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:12px;color:var(--muted);font-size:12px}.tutorial-secondary-action{color:var(--accent-dark);font-size:12px;font-weight:700;text-decoration:none}.tutorial-placeholder{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin:20px 24px 0;border:1px dashed #a8cfc8;border-radius:12px;background:#f5fbf9;color:var(--muted);text-align:center}.tutorial-placeholder>.anticon{font-size:32px;color:var(--accent)}.tutorial-placeholder strong{color:var(--accent-dark);font-size:18px}.tutorial-placeholder span{font-size:13px}.tutorial-outline{padding:22px 24px 26px}.tutorial-outline h3{color:var(--accent-dark);font-size:15px}.tutorial-outline ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px;margin:12px 0 0;padding-left:22px;color:var(--muted);font-size:13px;line-height:1.7}.tutorial-outline li::marker{color:var(--accent);font-weight:800}.tutorial-pagination{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:20px}.tutorial-pagination button:disabled{cursor:not-allowed;opacity:.42}.tutorial-pagination-status{display:grid;justify-items:center;gap:4px;color:var(--muted);font-size:12px}.tutorial-pagination-status strong{color:var(--accent-dark);font-size:14px}.tutorial-pagination-dots{display:flex;gap:5px}.tutorial-pagination-dots i{width:7px;height:7px;border-radius:50%;background:#c8d8d5}.tutorial-pagination-dots i.active{width:20px;border-radius:999px;background:var(--accent)}.login-panel{width:min(460px,100%);justify-self:end;padding:clamp(28px,3vw,42px);border:1px solid rgba(255,255,255,.62);border-radius:20px;background:#fffffff0;box-shadow:0 28px 80px #00232347;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-150px,-100px)}.login-brand{display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--line-soft);margin-bottom:18px}.login-brand .brand-icon{height:48px;font-size:21px;background:#005151;color:#96d600}.login-brand h1{color:#003f40;font-size:25px;letter-spacing:-.04em}.login-brand span{display:block;color:var(--muted);font-size:13px;margin-top:6px}.login-form{display:grid;gap:16px}.login-form .field{gap:7px}.login-form .field span{color:#315a5a;font-size:12px;font-weight:700}.login-form input{min-height:48px;border-color:#cfe0dc;background:#ffffffbf}.login-form input:focus{border-color:#005151;box-shadow:0 0 0 3px #0051511f}.login-submit{width:100%;height:48px;margin-top:6px;border-radius:10px;background:#005151;box-shadow:0 10px 22px #00515133}.login-submit:disabled{opacity:.7;cursor:wait}.login-error{border:1px solid #f0abb5;background:var(--soft-red);color:var(--red);border-radius:7px;padding:9px 10px;font-size:13px}.demo-accounts{margin-top:20px;display:flex;align-items:center;min-height:20px}.demo-accounts .badge{background:#e8f5ee;color:#005151}@media(max-width:820px){.login-shell{grid-template-columns:1fr;place-items:center;padding:92px 24px 32px}.login-panel{justify-self:center}.login-hero{display:none}.login-shell:after{bottom:20px;width:58vw}.login-topbar{left:24px;right:24px}.login-panel{transform:none}.login-topbar{height:126px}.login-topbar img{width:133px;height:126px}.login-tutorial-entry{left:24px;bottom:24px}}@media(max-width:640px){.tutorial-topbar{padding-inline:16px}.tutorial-topbar-brand img{width:32px;height:32px}.tutorial-topbar-brand span{font-size:13px}.tutorial-back-button{padding-inline:10px}.tutorial-page-count{display:none}.tutorial-card-heading{padding:18px}.tutorial-video-block{padding:16px 18px 0}.tutorial-outline{padding:18px}.tutorial-outline ol{grid-template-columns:1fr;gap:5px}.tutorial-placeholder{margin:16px 18px 0;min-height:230px;padding:20px}.tutorial-pagination button{min-height:44px;padding-inline:10px}}@media(hover:hover)and (pointer:fine){.login-tutorial-entry button:hover{background:#003f40ad;border-color:#ffffffb8}.login-submit:hover:not(:disabled){background:#003f40}}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.login-tutorial-entry button:hover,.login-submit:hover:not(:disabled){transform:translateY(-1px)}}@media(prefers-reduced-motion:reduce){.login-particles{display:none}.login-submit{transition:background .16s ease}.lesson-reader-backdrop,.modal-backdrop,.lesson-reader-backdrop>.lesson-reader,.modal-backdrop>.confirm-modal,.modal-backdrop>.lesson-edit-modal,.modal-backdrop>.panel.feature-form{transition:opacity .2s ease}.lesson-reader-backdrop>.lesson-reader,.modal-backdrop>.confirm-modal,.modal-backdrop>.lesson-edit-modal,.modal-backdrop>.panel.feature-form{transform:none}@starting-style{.lesson-reader-backdrop>.lesson-reader,.modal-backdrop>.confirm-modal,.modal-backdrop>.lesson-edit-modal,.modal-backdrop>.panel.feature-form{opacity:0;transform:none}}}.sidebar{background:#fff;border-right:1px solid var(--line);padding:20px 16px;position:sticky;top:0;height:100vh}.brand{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line-soft);margin-bottom:16px}.brand-icon{height:42px;border-radius:8px;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:20px}.brand strong,.brand span{display:block}.brand strong{font-size:15px}.brand span{color:var(--muted);font-size:12px;margin-top:3px}nav{display:grid;gap:8px}nav button,.icon-button,.primary-button,.danger-button{height:36px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;white-space:nowrap}nav button{justify-content:flex-start}nav button.active{background:#e9f7f4;border-color:#9bd2cb;color:var(--accent-dark);font-weight:700}.account-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line-soft);border-radius:8px;background:#f8fafc;padding:10px;margin-bottom:14px}.account-card strong,.account-card span{display:block}.account-card strong{font-size:13px}.account-card span{margin-top:3px;color:var(--muted);font-size:12px}.account-card button{width:34px;height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#475569;display:grid;place-items:center}.account-card-actions{display:flex;gap:6px}main{min-width:0;padding:22px 26px 32px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.eyebrow{margin:0 0 5px;color:var(--accent);font-size:12px;font-weight:800;text-transform:uppercase}h1,h2,h3,p{margin:0}h1{font-size:25px;line-height:1.25}h2{font-size:16px;line-height:1.35}h3{font-size:13px;line-height:1.4}.header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.badge{min-height:24px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:700;border:1px solid transparent;white-space:nowrap}.badge.neutral{color:#475569;background:#f3f6fa;border-color:#e2e8f0}.badge.good{color:var(--green);background:var(--soft-green)}.badge.warn{color:var(--amber);background:var(--soft-amber)}.badge.danger{color:var(--red);background:var(--soft-red)}.badge.info{color:var(--blue);background:var(--soft-blue)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line-soft)}.panel-title p{color:var(--muted);font-size:12px;margin-top:4px}.panel-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.content-grid{display:grid;gap:14px}.teacher-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.metric-strip{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.metric{min-height:82px;border-radius:8px;border:1px solid var(--line);background:#fff;display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:13px}.metric-icon{height:42px;border-radius:8px;display:grid;place-items:center;background:#eef2f7;color:#475569;font-size:18px}.metric span,.metric strong{display:block}.metric span{font-size:12px;color:var(--muted)}.metric strong{font-size:25px;line-height:1.1;margin-top:5px}.metric.good{background:var(--soft-green)}.metric.good .metric-icon{background:#d8efe3;color:var(--green)}.metric.warn{background:var(--soft-amber)}.metric.warn .metric-icon{background:#feecc2;color:var(--amber)}.metric.danger{background:var(--soft-red)}.metric.danger .metric-icon{background:#fad5dc;color:var(--red)}.calendar-panel,.request-panel{min-width:0}.weekday-row,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday-row{padding:8px 12px 0;gap:6px}.weekday-row span{text-align:center;color:var(--muted);font-size:12px}.month-grid{gap:8px;padding:14px}.day{min-height:104px;border:2px solid var(--line);border-radius:8px;background:#fff;padding:10px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.day.blank{visibility:hidden}.day strong{font-size:17px}.day span{font-size:12px;color:var(--muted);font-weight:700}.day.has-open{background:#e4f8ec;border-color:#34a853}.day.has-open span{color:#116832}.day.has-pending{background:#fff3c4;border-color:#d99000}.day.has-pending span{color:#855600}.day.has-occupied{background:#e6f0ff;border-color:#2b6fe8}.day.has-occupied span{color:#174ea6}.day.has-risk{background:#ffe8ec;border-color:#d92d43}.day.has-risk span{color:#9f1230}.day.has-closed{background:#f1f4f7;border-color:#cbd5e1}.day.selected{border-color:#0f172a;box-shadow:inset 0 0 0 2px #fff,0 8px 18px #0f172a29;transform:translateY(-1px)}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px 0}.legend-item,.flag{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800}.legend-item.open,.count-open{color:#116832;background:#d9f5e3}.legend-item.occupied,.count-occupied{color:#174ea6;background:#d7e6ff}.count-pending{color:#855600;background:#ffe8a3}.legend-item.locked,.flag.locked{color:#855600;background:#fff0bd}.flag.risk{color:#9f1230;background:#ffd6df}.day-counts{display:grid;gap:4px;width:100%}.day-counts span,.day-flags span{width:fit-content;max-width:100%;border-radius:999px;padding:2px 7px;line-height:1.4}.day .count-open{color:#116832}.day .count-occupied{color:#174ea6}.day .count-pending,.day .flag.locked{color:#855600}.day .flag.risk{color:#9f1230}.day-flags{display:flex;flex-wrap:wrap;gap:4px;min-height:22px}.day-editor{min-width:0}.calendar-panel .day .lunar-date{margin-top:auto;padding-top:4px;font-size:11px;font-weight:400;color:#647184}.calendar-panel .day .lunar-festival{color:#a65a16;font-weight:600}.calendar-panel .month-grid{gap:6px;padding:12px 16px 16px}.calendar-panel .day{min-height:104px;border:1px solid #e8edf1;border-radius:10px;background:#fff;padding:10px;justify-content:flex-start;gap:8px;box-shadow:none;transform:none;text-align:left}.calendar-panel .day:hover{background:#f5faf9;border-color:#b9d9d3}.calendar-panel .day.selected{background:#edf7f5;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.day-heading{display:flex;align-items:center;gap:6px;width:100%;min-height:26px}.day-heading strong{font-size:16px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.calendar-panel .day.selected .day-heading strong{color:var(--accent-dark)}.calendar-panel .day.is-today strong{display:grid;place-items:center;min-width:26px;height:26px;border-radius:8px;background:var(--accent);color:#fff}.calendar-panel .day .today-label{font-size:11px;color:var(--accent)}.calendar-panel .date-status-icons{display:inline-flex;align-items:center;gap:6px;min-height:24px;margin-left:auto}.calendar-panel .day .date-lock{color:#a17832;font-size:13px}.calendar-panel .day .date-lesson{color:var(--accent);font-size:14px}.calendar-panel .day-counts{gap:5px}.calendar-panel .day-counts span{border-radius:0;background:transparent;padding:0;font-size:12px;font-weight:500}.calendar-panel .day-counts .date-empty{color:#7a8794;font-weight:400}.calendar-panel .day-counts .count-open:before,.calendar-panel .day-counts .count-occupied:before,.calendar-panel .day-counts .count-pending:before{content:"";display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:currentColor;vertical-align:middle}.calendar-panel .day-flags{min-height:0;margin-top:auto}.calendar-panel{position:relative}.day-cell-wrap{position:relative;min-width:0}.day-cell-wrap .day{width:100%}.day-floating-copy{position:absolute;z-index:3;right:7px;bottom:7px;display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid #b9d9d3;border-radius:50%;background:#fffffff7;color:var(--accent-dark);box-shadow:0 5px 14px #0f514c29;font-size:13px}.day-floating-copy:hover{background:#edf7f5;transform:translateY(-1px)}.day-floating-copy:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.calendar-panel .day{position:relative;overflow:hidden}.calendar-panel .day:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:#cbd5e1}.calendar-panel .day.has-open:before{background:#28a86b}.calendar-panel .day.has-pending:before{background:#dda329}.calendar-panel .day.has-occupied:before{background:#4e83e8}.calendar-panel .day.has-risk:before{background:#d92d43}.calendar-panel .day.has-open,.calendar-panel .day.has-pending,.calendar-panel .day.has-occupied,.calendar-panel .day.has-risk,.calendar-panel .day.has-closed{background:#fff;border-color:#e0e7ed}.calendar-panel .day.selected{background:#edf7f5;border-color:var(--accent)}.calendar-panel .calendar-legend{padding:12px 16px 4px;gap:12px}.calendar-panel .legend-item{background:transparent;padding:0;gap:5px;font-weight:500}.calendar-panel .legend-item.locked,.calendar-panel .legend-item.pending{color:#855600;font-size:11px}.calendar-panel .legend-item.lesson{color:var(--accent-dark);font-size:11px}@media(max-width:760px){.calendar-panel .month-grid{padding:8px;gap:4px}.calendar-panel .day{padding:6px 4px;min-height:88px}.calendar-panel .day-counts span{font-size:10px}.day-floating-copy{right:5px;bottom:5px;width:25px;height:25px}.day-heading{gap:2px;flex-wrap:wrap}}.day-editor .slot-card{padding:0;border-width:1px;box-shadow:none}.slot-summary{display:grid;grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left}.slot-summary strong{font-size:14px;font-variant-numeric:tabular-nums}.slot-summary-detail{display:grid;gap:4px;font-size:13px}.slot-summary-detail small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.slot-summary-action{color:var(--accent-dark);font-size:13px}.slot-expanded{padding:0 12px 12px}.slot-expanded[hidden]{display:none}.slot-expanded .campus-pills{margin:12px 0}.slot-expanded input{width:100%}@media(min-width:1181px){.teacher-grid>.day-editor{contain:size;align-self:stretch;display:flex;flex-direction:column;min-height:0}.day-editor>.panel-title{flex-shrink:0}.day-editor>.slot-list{overflow-y:auto;min-height:0;align-content:start;scrollbar-gutter:stable}}@media(max-width:760px){.profile-form-header{padding:18px 16px 14px}.profile-section{padding:16px}.profile-form .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-form-actions{padding:14px 16px 18px}}@media(max-width:480px){.profile-form .feature-grid{grid-template-columns:1fr}.profile-form-header{display:block}.profile-readonly-note{display:inline-block;margin-top:10px}}@media(max-width:760px){.dashboard-section-label{padding-left:0}.preparation-overview{padding:14px}.preparation-filters{grid-template-columns:1fr 1fr}.preparation-filters>input{grid-column:1 / -1}}@media(max-width:480px){.preparation-filters{grid-template-columns:1fr}.preparation-filters>input{grid-column:auto}}@media(max-width:760px){.slot-summary{grid-template-columns:100px minmax(0,1fr) auto;gap:8px}}.slot-list{display:grid;gap:10px;padding:12px}.slot-card{border:2px solid var(--line);border-radius:8px;padding:12px;background:#fff;box-shadow:0 8px 18px #0f172a0a}.slot-card.is-open{border-color:#25a244;background:#e9f9ef}.slot-card.is-pending{border-color:#d99000;background:#fff4cc}.slot-card.is-occupied{border-color:#2563eb;background:#eaf2ff}.slot-card.is-risk{border-color:#d92d43;background:#ffe8ec}.slot-card.is-closed{border-color:#b8c2cf;background:#eef2f6}.day-editor .slot-card{position:relative;overflow:hidden;border-color:#e0e7ed;border-left-width:5px;background:#fff}.day-editor .slot-card.is-open{border-left-color:#28a86b}.day-editor .slot-card.is-pending{border-left-color:#dda329}.day-editor .slot-card.is-occupied{border-left-color:#4e83e8}.day-editor .slot-card.is-risk{border-left-color:#d92d43}.day-editor .slot-card.is-closed{border-left-color:#94a3b8}.slot-main{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}.slot-main strong{font-size:15px;padding-top:8px}.status-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.status-choice button{min-height:36px;border:1px solid transparent;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;color:#475569;background:#fff;font-size:12px;font-weight:800}.status-choice button.is-open{color:#116832;background:#d9f5e3;border-color:#6bc985}.status-choice button.is-pending{color:#855600;background:#ffe8a3;border-color:#dda329}.status-choice button.is-occupied{color:#174ea6;background:#d7e6ff;border-color:#6ea0ff}.status-choice button.is-risk{color:#9f1230;background:#ffd6df;border-color:#ef7080}.status-choice button.is-closed{color:#334155;background:#dfe5ec;border-color:#aeb9c7}.status-choice button.active{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px currentColor;transform:translateY(-1px)}select,input,textarea{height:34px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:0 9px;min-width:0}textarea{min-height:84px;resize:vertical;padding:9px;line-height:1.55}.campus-pills{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.campus-pills button{height:26px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#475569;padding:0 9px;font-size:12px}.campus-pills button.picked{background:#e9f7f4;border-color:#96d4ca;color:var(--accent-dark);font-weight:700}.slot-card input{width:100%}.slot-card.is-occupied input{border-color:#2563eb;background:#dbeafe;color:#123f91;font-weight:800}.request-panel{grid-column:1 / -1}.request-panel-actions{align-items:center}.request-collapse-button{white-space:nowrap}.request-collapse-icon{transition:transform .16s ease}.request-collapse-icon.is-open{transform:rotate(90deg)}.request-pagination{justify-content:flex-end;margin-top:0}.batch-panel{grid-column:1 / -1}.batch-form{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;padding:14px 16px 12px}.batch-group{display:grid;grid-column:1 / -1;gap:8px}.batch-group>span{color:var(--muted);font-size:12px;font-weight:800}.toggle-grid{display:flex;flex-wrap:wrap;gap:7px}.toggle-grid button{min-height:32px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#475569;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;font-size:12px;font-weight:800}.toggle-grid button.picked{color:var(--accent-dark);border-color:#7accc2;background:#e7f8f5;box-shadow:inset 0 0 0 1px #fff}.slot-toggle button{min-width:138px}.campus-toggle button{min-width:104px}.batch-note{grid-column:1 / -1}.batch-actions{display:flex;flex-wrap:wrap;gap:8px;grid-column:1 / -1}.batch-result{grid-column:1 / -1;color:var(--accent-dark);background:#e7f8f5;border:1px solid #a7ddd6;border-radius:7px;padding:8px 10px;font-size:12px;font-weight:700}.template-list{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 16px}.template-card{width:min(280px,100%);min-height:82px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;text-align:left;padding:10px;display:grid;gap:5px}.template-card strong,.template-card span,.template-card small{display:block}.template-card span{color:var(--accent-dark);font-size:12px;font-weight:800}.template-card small{color:var(--muted);font-size:12px;line-height:1.45}.empty-inline{color:var(--muted);border:1px dashed var(--line);border-radius:8px;padding:12px;font-size:12px;width:100%}.log-list{display:grid;gap:8px;padding:12px}.log-item{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;border:1px solid var(--line-soft);border-radius:8px;padding:10px 12px}.log-item strong,.log-item span{display:block}.log-item span{color:var(--muted);font-size:12px;margin-top:4px}.admin-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(320px,2fr);gap:16px;align-items:start}.query-panel,.schedule-import-panel,.result-panel{grid-column:1}.detail-panel{grid-column:2;grid-row:1 / span 3;position:sticky;top:24px}.settings-form{display:grid;grid-template-columns:1fr;gap:12px;align-items:stretch;padding:14px 16px 16px}.settings-form p{color:var(--muted);font-size:12px;line-height:1.6}.setting-control-card,.setting-dictionary-card{display:grid;gap:12px;padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:#fbfdfd}.setting-control-card{grid-template-columns:minmax(0,1fr) minmax(130px,180px);align-items:end}.setting-control-card h3,.settings-card-head h3{margin:0;color:var(--ink);font-size:14px}.setting-control-card p,.settings-card-head p{margin:5px 0 0}.settings-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.setting-empty{margin:0;padding:10px 12px;border:1px dashed var(--line);border-radius:8px;background:#fff}.term-settings-panel{margin-bottom:0}.setting-tabs{display:flex;flex-wrap:wrap;gap:7px}.setting-tabs button,.setting-row button,.setting-add-row button,.pagination-bar button{min-height:30px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#475569;padding:0 10px;font-size:12px;font-weight:800}.setting-tabs button.picked{color:var(--accent-dark);border-color:#7accc2;background:#e7f8f5}.setting-list{display:grid;gap:8px}.setting-list strong{font-size:12px}.setting-row,.setting-add-row{display:grid;grid-template-columns:1fr auto;gap:8px}.query-form{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:8px;padding:10px 14px 12px}.query-form .field{gap:4px}.query-form .choice-pills{gap:5px}.query-form .choice-pills button{min-height:28px;padding:0 9px}.month-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.field{display:grid;gap:6px}.field span{color:var(--muted);font-size:12px;font-weight:700}.profile-form{padding:0;overflow:hidden}.profile-form-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 18px;border-bottom:1px solid var(--line-soft)}.profile-form-header h2{margin:0}.profile-form-header p{max-width:720px;margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.profile-readonly-note{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:#f1f4f7;color:#526173;font-size:12px;font-weight:700}.profile-section{padding:18px 24px 20px;border-bottom:1px solid var(--line-soft)}.profile-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.profile-section-heading h3{margin:0;color:var(--ink);font-size:16px}.profile-section-heading span{color:var(--muted);font-size:12px}.profile-form .feature-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.profile-form .feature-grid input[readonly]{background:#f7f9fb;color:#526173;cursor:not-allowed}.profile-form fieldset{margin:0 0 16px;padding:12px 14px 14px;border:1px solid var(--line-soft);border-radius:10px;background:#fbfdfd}.profile-form fieldset:last-child{margin-bottom:0}.profile-form legend{padding:0 6px;color:var(--ink);font-size:13px;font-weight:800}.profile-form .feature-options{gap:8px 14px}.profile-form .feature-options>label{min-height:32px;padding:5px 8px;border:1px solid transparent;border-radius:7px}.profile-form .feature-options>label:hover{background:#f1faf8;border-color:#c9e7e2}.profile-form .profile-tag-options>.tag-option{border-color:var(--line-soft);border-radius:999px}.profile-form .profile-tag-options>.tag-option.picked{border-color:#7accc2;background:#e7f8f5;color:var(--accent-dark)}.profile-form .wide-field{margin-top:4px}.profile-form-actions{display:flex;align-items:center;gap:12px;padding:16px 24px 20px;background:#fbfdfd}.profile-form-actions p{margin:0;color:var(--muted);font-size:13px}.wide-field{grid-column:span 3}.teacher-results{display:grid}.teacher-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;width:100%;border-bottom:1px solid var(--line-soft);background:#fff}.teacher-row.selected{background:#f1faf8}.teacher-row-select{display:grid;grid-template-columns:52px minmax(0,1fr) 116px;gap:12px;align-items:center;min-width:0;width:100%;border:0;background:transparent;color:var(--ink);padding:12px 8px 12px 14px;text-align:left}.teacher-row-select:hover{background:#f7fbfa}.teacher-row-actions{display:flex;align-items:center;padding:12px 14px 12px 0}.teacher-row-actions button{min-width:108px;white-space:nowrap}.score-ring{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:3px solid #9bd2cb;color:var(--accent-dark);font-weight:900;background:#fff}.row-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.teacher-row-main p{color:var(--muted);font-size:12px;margin:5px 0 8px}.match-tags,.tag-cloud{display:flex;flex-wrap:wrap;gap:6px}.updated{color:var(--muted);font-size:12px;text-align:right}.profile-head{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:16px;border-bottom:1px solid var(--line-soft)}.avatar{height:52px;border-radius:8px;display:grid;place-items:center;background:var(--soft-cyan);color:var(--cyan);font-size:22px}.profile-head p{color:var(--muted);font-size:12px;margin-top:4px}.detail-block,.future-card{padding:14px 16px;border-bottom:1px solid var(--line-soft)}.detail-block h3{display:flex;gap:7px;align-items:center;margin-bottom:8px}.detail-block p,.resume{color:#435266;font-size:13px;line-height:1.65}.resume{margin-top:10px}.future-card{display:grid;gap:8px}.lesson-binding-block{display:grid;gap:7px;padding:12px;border:1px solid #cfe4df;border-radius:10px;background:#f3faf8}.lesson-binding-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}.lesson-binding-head>div{min-width:0}.compact-icon-button{display:inline-grid;place-items:center;flex:0 0 30px;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--accent-dark);cursor:pointer}.compact-icon-button:hover,.compact-icon-button[aria-expanded=true]{border-color:#7accc2;background:#e7f8f5}.lesson-plan-search{display:flex;align-items:center;gap:7px;min-width:0;padding:0 9px;border:1px solid #a8d7d0;border-radius:8px;background:#fff;color:var(--accent-dark)}.lesson-plan-search input{width:100%;min-width:0;height:32px;padding:0;border:0;outline:0;background:transparent}.lesson-binding-block h3{display:flex;align-items:center;gap:6px;color:var(--accent-dark);font-size:13px}.lesson-binding-block p,.lesson-binding-block small{color:var(--muted);font-size:12px;line-height:1.5}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 16px 16px}.copy-feedback{grid-column:1 / -1;color:var(--accent-dark);font-size:12px;line-height:1.5}.primary-button{background:var(--accent);color:#fff;border-color:var(--accent)}.danger-button{background:var(--red);color:#fff;border-color:var(--red)}.primary-button .anticon,.primary-button svg,.danger-button .anticon,.danger-button svg,.brand-icon .anticon,.brand-icon svg{color:#fff;fill:currentColor}.repository{overflow:hidden}.repository-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}.import-workspace{display:grid;gap:14px}.import-workspace-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px;align-items:stretch}.import-workspace-grid>.import-panel{display:flex;flex-direction:column;min-width:0;min-height:434px}.import-workspace-grid>.import-panel>.panel-title{min-height:82px}.import-workspace-grid>.import-panel>.import-body{display:flex;flex:1;flex-direction:column}.import-workspace-grid>.import-panel>.import-body>textarea{height:150px;min-height:150px;resize:vertical}.import-workspace-grid>.import-panel>.import-body>.import-actions{margin-top:auto}.import-workspace-grid .field{min-width:0;align-content:start}.api-sync-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:14px 16px 16px}.import-workspace-grid .api-sync-form{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto 1fr;align-items:start}.import-workspace-grid .api-sync-form .field small{color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.import-workspace-grid .api-sync-form>.import-actions{grid-column:1 / -1;align-self:end}@media(max-width:480px){.import-workspace-grid .api-sync-form{grid-template-columns:minmax(0,1fr);grid-template-rows:none}}.sync-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px}.sync-summary-grid div{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:#f8fbfb}.sync-summary-grid span{color:var(--muted);font-size:12px}.sync-summary-grid strong{color:var(--ink);font-size:20px}.dashboard-workspace{display:grid;gap:14px}.dashboard-period-filter{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px}.dashboard-period-filter>div{display:grid;gap:3px}.dashboard-period-filter strong{font-size:14px}.dashboard-period-filter span{color:var(--muted);font-size:12px}.dashboard-period-filter select{min-width:220px}.dashboard-archive-filter{display:grid;gap:12px;padding:14px 16px}.dashboard-archive-filter .dashboard-period-filter{border:0;box-shadow:none;margin:0;padding:0}.dashboard-source-tabs{display:inline-flex;justify-self:start;gap:4px;padding:4px;border-radius:9px;background:var(--page-bg)}.dashboard-source-tabs button{min-height:34px;padding:0 14px;border:0;border-radius:7px;color:var(--muted);background:transparent;cursor:pointer}.dashboard-source-tabs button.active{color:var(--brand-deep);background:#fff;box-shadow:0 1px 4px #1720331a;font-weight:700}.archive-status-row,.archive-picker{display:flex;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--border)}.archive-status-row>div:first-child,.archive-picker>div:first-child{display:grid;gap:3px;margin-right:auto}.archive-status-row span,.archive-picker span,.archive-message,.period-difference span,.period-difference time{color:var(--muted);font-size:12px}.archive-picker select{min-width:280px}.archive-message{margin:0}.period-difference{display:grid;grid-template-columns:minmax(180px,auto) 1fr auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid #f1d7a5;border-radius:8px;background:#fffaf0}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard-kpi{display:grid;gap:5px;padding:16px;border:1px solid var(--line-soft);border-radius:10px;background:var(--surface)}.dashboard-kpi span,.dashboard-kpi small{color:var(--muted);font-size:12px}.dashboard-kpi strong{color:var(--ink);font-size:26px;line-height:1.1}.dashboard-section-label{display:flex;align-items:baseline;gap:12px;padding:4px 4px 0}.dashboard-section-label strong{color:var(--ink);font-size:15px}.dashboard-section-label span{color:var(--muted);font-size:12px}.personal-dashboard .dashboard-period-filter{padding:14px 18px}.personal-dashboard .dashboard-kpi{min-height:92px;padding:18px}.personal-dashboard .dashboard-panel .panel-title,.personal-dashboard .metric-definition{padding-left:18px;padding-right:18px}.personal-dashboard .trend-bars{margin:0 18px}.preparation-overview{padding:20px}.preparation-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:0 2px 16px;border-bottom:1px solid var(--line-soft)}.preparation-heading h2{margin:0}.preparation-heading p{margin:6px 0 0;color:var(--muted);font-size:13px}.preparation-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:16px 2px}.preparation-summary strong{color:var(--ink);font-size:16px}.preparation-summary span{color:var(--muted);font-size:13px}.preparation-filters{display:grid;grid-template-columns:1.3fr repeat(3,minmax(130px,1fr)) repeat(2,minmax(150px,1fr));gap:10px;padding:12px;border:1px solid var(--line-soft);border-radius:9px;background:#fbfdfd}.preparation-records{display:grid;gap:8px;margin-top:14px}.preparation-records details{padding:12px 14px;border:1px solid var(--line-soft);border-radius:9px;background:#fff}.preparation-records details[open]{border-color:#b9d9d3;background:#fbfdfd}.preparation-records summary{cursor:pointer;color:var(--ink);font-size:13px;line-height:1.6}.preparation-records details p{margin:8px 0;color:var(--muted);font-size:12px}.dashboard-panel,.metric-definition,.dashboard-empty{padding-bottom:16px}.metric-definition{display:grid;gap:7px;padding:16px}.metric-definition h2{font-size:15px}.metric-definition p{color:var(--muted);font-size:12px;line-height:1.6}.dashboard-warning{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #efd08e;border-radius:8px;color:#8a5500;background:#fff8e8;font-size:13px}.trend-bars{display:flex;align-items:end;gap:8px;min-height:220px;padding:18px 16px 0;overflow-x:auto}.trend-bars>div{display:grid;grid-template-rows:20px 140px 20px;align-items:end;justify-items:center;gap:4px;min-width:34px;height:190px}.trend-bars span,.trend-bars strong{color:var(--muted);font-size:10px}.trend-bars i{width:18px;max-height:140px;border-radius:5px 5px 2px 2px;background:var(--brand)}.ranking-note,.dashboard-data-note{display:flex;align-items:center;gap:7px;margin:0 16px 12px;color:var(--muted);font-size:12px;line-height:1.55}.ranking-legend-swatch{width:24px;height:8px;flex:0 0 auto;border-radius:99px;background:var(--brand)}.ranking-list{display:grid;gap:4px;padding:0 16px}.ranking-head,.ranking-row{display:grid;grid-template-columns:44px 110px minmax(180px,1fr) 100px minmax(210px,auto);align-items:center;gap:12px}.ranking-head{min-height:34px;padding:0 10px;border-bottom:1px solid var(--line-soft);color:var(--muted);font-size:12px}.ranking-row{min-height:44px;padding:4px 10px;border-radius:7px;font-size:13px}.ranking-row:hover,.ranking-row:focus-visible{background:#f4f9f8;outline:none}.ranking-row b{color:var(--muted);text-align:center}.ranking-track{position:relative;height:12px;overflow:hidden;border-radius:99px;background:#dfe9e7}.ranking-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#159488)}.ranking-track em{position:absolute;right:7px;top:50%;transform:translateY(-50%);color:#25413e;font-size:9px;font-style:normal;font-weight:700}.ranking-row small{color:var(--muted);text-align:right}.dashboard-data-note{margin-top:14px;padding:9px 11px;border-radius:7px;background:#f7f9fb}.guide-content{display:grid;gap:10px;padding:14px 16px 16px}.guide-content p{color:#435266;font-size:13px;line-height:1.7}.repository-main,.repository-side{display:grid;gap:14px}.repository-side{position:sticky;top:18px}.repository-form-panel{overflow:hidden}.teacher-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;padding:14px 16px 16px}.teacher-form .wide-field{grid-column:span 3}.repository-form-panel .teacher-form{grid-template-columns:1fr}.repository-form-panel .teacher-form .wide-field{grid-column:auto}.collapsed-form-hint{color:var(--muted);font-size:12px;line-height:1.6;padding:14px 16px 16px}.repository-filters{display:grid;gap:10px;margin:12px 14px;padding:12px;border:1px solid var(--line-soft);border-radius:8px;border-bottom:1px solid var(--line-soft);background:#fbfcfd}.repository-filters .field>input{width:100%}.pagination-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin:0 14px 14px;padding:10px 0 0;border-top:1px solid var(--line-soft)}.pagination-bar span{color:var(--muted);font-size:12px;font-weight:800}.pagination-bar select{width:116px}.pagination-bar button:disabled{opacity:.45;cursor:not-allowed}.choice-field{align-content:start}.choice-pills{display:flex;flex-wrap:wrap;gap:7px}.choice-pills button{min-height:30px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#475569;padding:0 10px;font-size:12px;font-weight:800}.choice-pills button.picked{color:var(--accent-dark);border-color:#7accc2;background:#e7f8f5;box-shadow:inset 0 0 0 1px #fff}.query-form .filter-choice-field,.date-filter-field{grid-column:1 / -1}.date-filter-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.date-filter-row input{width:180px}.date-input-with-weekday{display:inline-flex;align-items:center;gap:8px}.work-date-picker{position:relative;width:100%;min-width:0}.work-date-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:36px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-align:left}.work-date-trigger:hover{border-color:#8ebeb8;background:#fbfefd}.work-date-trigger .placeholder{color:#8a96a8}.work-date-trigger>.anticon{flex:0 0 auto;color:var(--accent)}.work-date-popover{position:absolute;top:calc(100% + 7px);left:0;z-index:60;width:min(340px,calc(100vw - 36px));padding:12px;border:1px solid #cbd9dd;border-radius:12px;background:#fff;box-shadow:0 18px 44px #0f222a2e}.work-date-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:10px}.work-date-shortcuts button{min-height:30px;padding:0 7px;border:1px solid var(--line);border-radius:7px;background:#f8fbfb;color:#425268;font-size:11px;white-space:nowrap}.work-date-shortcuts button:hover{border-color:#83c8bf;background:#e9f7f3;color:var(--accent-dark)}.work-date-month-head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;margin-bottom:8px;text-align:center}.work-date-month-head button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--ink)}.work-date-month-head button:hover{background:#eef6f4;color:var(--accent)}.work-date-weekdays,.work-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.work-date-weekdays span{padding:5px 0;color:var(--muted);font-size:11px;font-weight:700;text-align:center}.work-date-grid button,.work-date-grid>span{min-width:0;height:34px}.work-date-grid button{padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink);font-size:12px}.work-date-grid button:hover{background:#edf8f5;color:var(--accent-dark)}.work-date-grid button.today{border-color:var(--accent)}.work-date-grid button.selected{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:800}.request-date-row .work-date-picker{min-width:210px}.date-weekday{min-width:34px;color:var(--accent-dark);font-size:13px;white-space:nowrap}.date-filter-row button{height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#475569;padding:0 10px;font-size:12px;font-weight:800}.date-filter-row button:hover{color:var(--accent-dark);border-color:#7accc2;background:#e7f8f5}.import-panel,.schedule-import-panel{overflow:hidden}.import-body,.admin-schedule-body{display:grid;gap:12px;padding:14px 16px 16px}.import-body textarea{min-height:138px;font-family:Microsoft YaHei,PingFang SC,Segoe UI,Arial,sans-serif}.import-actions,.schedule-actions,.template-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.import-actions span{color:var(--muted);font-size:12px;font-weight:800}.operation-progress{flex:1 0 100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;padding:10px 12px;border:1px solid #a9ddd5;border-radius:9px;background:#f1fbf8;color:var(--brand-deep)}.operation-progress>div:first-child{display:grid;gap:2px}.operation-progress strong{font-size:13px}.operation-progress span,.operation-progress small{color:#4e7180;font-size:12px;font-weight:600}.operation-progress small{align-self:center;white-space:nowrap}.operation-progress-track{grid-column:1 / -1;height:5px;overflow:hidden;border-radius:999px;background:#cfe9e4}.operation-progress-track i{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;border-radius:inherit;background:linear-gradient(90deg,#008d83,#96d600);transition:transform .2s var(--ease-out)}.lesson-upload-actions .operation-progress{flex-basis:100%}.import-preview,.sync-log{display:grid;gap:7px}.sync-log div{display:grid;gap:3px;border:1px solid var(--line-soft);border-radius:8px;padding:8px 10px;background:#fbfcfd}.sync-log strong,.sync-log span{font-size:12px}.sync-log span{color:var(--muted)}.sync-log .sync-error-detail{color:var(--red);line-height:1.55}.import-row{display:grid;gap:4px;border:1px solid var(--line-soft);border-radius:8px;padding:9px 10px;background:#fbfcfd}.import-row strong,.import-row span{font-size:12px}.import-row.valid span{color:var(--green)}.import-row.invalid{border-color:#f0abb5;background:var(--soft-red)}.import-row.invalid span{color:var(--red)}.admin-schedule-panel{overflow:hidden}.date-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check-field{display:inline-flex;gap:8px;align-items:center;color:#475569;font-size:12px;font-weight:800}.check-field input{width:16px;height:16px}.managed-template-list{padding-top:0}.template-card.managed{width:100%;padding:0;overflow:hidden}.template-card.managed.favorite{border-color:#7accc2;background:#f0fbf8}.template-card.managed>button{border:0;background:transparent;text-align:left;padding:10px;display:grid;gap:5px}.template-actions{border-top:1px solid var(--line-soft);padding:8px 10px}.template-actions button{min-height:28px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#475569;padding:0 9px;font-size:12px;font-weight:800}.form-actions{grid-column:1 / -1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.form-actions>span{color:var(--accent-dark);background:#e7f8f5;border:1px solid #a7ddd6;border-radius:7px;padding:7px 10px;font-size:12px;font-weight:800}.table-wrap{max-width:100%;overflow-x:auto;margin:0 14px 12px;border:1px solid var(--line-soft);border-radius:8px}.table{min-width:1140px}.table-head,.table-row{display:grid;grid-template-columns:140px 76px 180px 96px 1fr .85fr 1fr 124px 180px;gap:12px;align-items:center}.table-head{padding:10px 14px;background:#f8fafc;border-bottom:1px solid var(--line-soft);color:#475569;font-size:12px;font-weight:800}.table-row{padding:12px 14px;border-bottom:1px solid var(--line-soft);font-size:13px}.table-row:last-child{border-bottom:0}.table-row.editing{background:#f1faf8}.compact-button{height:30px;padding:0 9px;font-size:12px}.repository-row-actions{display:grid;grid-template-columns:108px 36px;width:150px;align-items:center;gap:6px}.repository-row-actions .compact-button{min-width:0;white-space:nowrap}.repository-row-actions .create-account-button{width:108px;padding:0 8px}.create-account-button{border-color:#007b72;background:#007b72;color:#fff}.create-account-button:hover:not(:disabled){border-color:#00675f;background:#00675f}.repository-row-actions .edit-teacher-button{width:36px;padding:0;font-size:0}.repository-row-actions .edit-teacher-button .anticon{font-size:14px}.edit-teacher-button{border-color:#c8d5df;color:#38516a;background:#fff}.edit-teacher-button:hover{border-color:#89a6bd;color:#163c5f;background:#f2f7fb}.repository-row-actions .account-linked{width:108px;justify-content:center;padding:0}.account-linked{display:inline-flex;align-items:center;min-height:30px;border-radius:7px;background:#e8f5ee;color:#177341;font-size:12px;font-weight:800}.table-row small{display:block;color:var(--muted);margin-top:4px}.mono-cell{font-family:Consolas,Courier New,monospace;font-size:12px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{display:grid;min-height:260px;place-items:center;color:var(--muted)}@media(max-width:1180px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}nav{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-grid,.admin-layout{grid-template-columns:1fr}.settings-workspace,.detail-panel,.repository-form-panel,.repository-side,.query-panel,.schedule-import-panel,.result-panel{grid-column:auto;grid-row:auto;position:static}.repository-layout,.import-workspace-grid,.settings-workspace,.lesson-library-workspace{grid-template-columns:1fr}.lesson-list-panel{height:min(720px,calc(100dvh - 120px))}}@media(max-width:760px){main{padding:14px}.page-header,.panel-title{flex-direction:column}.setting-control-card{grid-template-columns:1fr}nav{grid-template-columns:1fr}.sidebar{padding:12px}.sidebar nav{display:flex;overflow-x:auto;gap:12px}.nav-group{display:flex;flex-shrink:0;gap:8px}.nav-group-title{display:none}.sidebar nav button{width:auto;min-height:44px}button,input,select,.work-date-trigger{min-height:44px}.work-date-popover{position:fixed;top:50%;left:50%;width:min(360px,calc(100vw - 24px));transform:translate(-50%,-50%)}.work-date-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.work-date-shortcuts button,.work-date-month-head button,.work-date-grid button{min-height:40px}input,select,textarea{font-size:16px}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}.metric-strip,.dashboard-kpi-grid,.sync-summary-grid,.query-form,.batch-form,.teacher-form,.lesson-upload-form,.lesson-filters,.request-filter-form,.notification-body{grid-template-columns:1fr}.ranking-head{display:none}.ranking-row{grid-template-columns:26px 80px minmax(110px,1fr) 72px}.ranking-row small{grid-column:2 / -1;text-align:left}.dashboard-period-filter{align-items:stretch;flex-direction:column}.dashboard-period-filter select{width:100%}.archive-status-row,.archive-picker{align-items:stretch;flex-direction:column}.archive-picker select{min-width:0;width:100%}.period-difference{grid-template-columns:1fr;gap:4px}.lesson-upload-form .lesson-file-field{grid-column:auto}.lesson-upload-form{padding:16px}.lesson-list-panel{height:min(680px,calc(100dvh - 96px));min-height:480px}.lesson-plan-card{grid-template-columns:36px minmax(0,1fr)}.lesson-plan-actions{grid-column:2;grid-template-columns:repeat(2,max-content);justify-self:start;min-width:0}.lesson-edit-form{grid-template-columns:1fr;padding:16px}.lesson-slot-entry{align-items:flex-start;flex-direction:column}.lesson-reader-head,.lesson-reader-controls{align-items:stretch}.lesson-reader-backdrop{padding:8px}.lesson-reader{width:100%;height:calc(100vh - 16px);padding:10px;gap:8px}.lesson-reader-head{flex-direction:column}.lesson-reader-head>.icon-button{align-self:flex-end}.lesson-reader-toolbar{gap:6px}.lesson-reader-toolbar button,.lesson-reader-controls button{min-height:40px}.lesson-reader-view-tools{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.annotation-entry-button{width:100%;min-height:44px!important}.prep-editor{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.prep-scroll{padding:10px}.prep-tool-rail{position:sticky;bottom:0;z-index:3;display:flex;flex-direction:row;align-items:center;gap:7px;width:100%;padding:8px;overflow-x:auto;overflow-y:hidden}.prep-tool-section{display:flex;flex:0 0 auto;gap:6px;padding:0 8px 0 0;border-right:1px solid var(--line-soft);border-bottom:0}.prep-tool-section strong,.prep-tool-hint,.prep-tool-message{display:none}.prep-tool-rail button{flex:0 0 auto;width:auto;min-width:44px;justify-content:center}.prep-tool-rail button span{white-space:nowrap}.lesson-reader-controls small{flex-basis:100%}.request-approval-item{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start}.request-approval-actions{grid-column:2;width:100%}.request-approval-actions button{flex:1}.request-bulk-actions{width:100%;margin-left:0}.request-bulk-actions button{flex:1}.wide-field,.teacher-form .wide-field{grid-column:auto}.month-grid,.weekday-row{gap:4px}.day{min-height:64px;padding:6px}.slot-main,.teacher-row,.profile-head,.detail-actions{grid-template-columns:1fr}.teacher-row-select{grid-template-columns:44px minmax(0,1fr);padding-right:14px}.teacher-row-select .updated{grid-column:2;text-align:left}.teacher-row-actions{padding:0 14px 12px}.teacher-row-actions button{width:100%}.updated{text-align:left}}.account-management-workspace{display:grid;gap:16px}.account-create-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 18px;border-bottom:1px solid var(--line-soft);background:#fbfdfd}.account-create-form .primary-button{align-self:end;min-height:38px}.account-toolbar{padding:14px 18px 0}.account-toolbar .field{max-width:360px}.account-credential-notice{display:grid;gap:5px;margin:14px 18px 0;padding:12px 14px;border:1px solid #b9d9d3;border-radius:9px;background:#effaf7;color:var(--accent-dark);font-size:13px}.account-credential-notice code{padding:2px 6px;border-radius:5px;background:#d9f2ed;color:#075e57;font-size:14px;letter-spacing:.08em}.account-table .table-row{align-items:center;padding:8px 12px}.account-table .table-head,.account-table .table-row{grid-template-columns:1.2fr 1fr 1.4fr 70px 80px 1.2fr 230px}.account-table .table-row>span{min-width:0;overflow-wrap:anywhere}.account-table .table-row small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.account-table .badge{margin:2px 4px 2px 0}.account-actions{display:flex;flex-wrap:nowrap;gap:8px;white-space:nowrap}.account-actions button{flex-shrink:0}.role-picker{display:flex;flex-wrap:wrap;gap:8px 14px;border:1px solid var(--line-soft);padding:8px;border-radius:8px}.role-picker label{display:flex;align-items:center;gap:6px}.role-picker input{width:auto}.identity-review{padding:12px 18px}.identity-review summary{cursor:pointer;font-weight:600}@media(min-width:1000px){.page-header{margin-bottom:12px}.panel-title{padding-top:12px;padding-bottom:12px}}.account-management-note{margin:14px 18px 18px;color:var(--muted);font-size:12px;line-height:1.6}.password-modal{width:min(520px,92vw)}.password-change-form{display:grid;gap:10px;margin-top:10px}.password-change-form .field{gap:5px}.account-edit-modal{width:min(520px,92vw)}.account-edit-form{display:grid;gap:10px;margin-top:12px}.account-edit-form small{color:var(--muted);font-size:11px}@media(max-width:760px){.account-create-form{grid-template-columns:1fr}.account-create-form .primary-button{width:100%}.account-toolbar{padding-left:14px;padding-right:14px}.account-toolbar .field{max-width:none}.account-actions{align-items:center;flex-direction:row}.account-actions button{width:auto;min-height:44px}}@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s ease,border-color .15s ease}}@media(prefers-reduced-motion:reduce){.operation-progress-track i{transition:none}}
