/* 增量覆盖应用框架；保留原有业务组件、表单和打印能力。 */
:root{--ink-950:#302b25;--ink-900:#3a332a;--ink-800:#4c4235;--ink-700:#645744;--ink-600:#776c5c;--ink-500:#94897a;--ink-300:#d2c4ad;--ink-200:#e5dbcb;--ink-100:#f0e9df;--ink-50:#faf7f1;--canvas:#f7f4ef;--teal-700:#916d2e;--teal-600:#a8813f;--teal-500:#b68e48;--teal-100:#f0e3c8;--teal-50:#fbf5e9;--shadow-sm:0 3px 6px #3b2c1305,0 8px 22px #3b2c1306;--shadow-md:0 14px 36px #3b2c1314}
.skip-link{position:fixed;top:-70px;left:20px;z-index:100;background:white;padding:12px;color:#60491e}.skip-link:focus{top:10px}
.school-shell{--header-height:94px;--sidebar-width:218px;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);grid-template-rows:var(--header-height) 1fr;background:#2d2b27;min-height:100vh}
.school-header{grid-column:1/-1;grid-row:1;position:sticky;top:0;z-index:8;display:flex;align-items:center;gap:25px;padding:10px 30px 10px 28px;color:#f8f4e9;background:radial-gradient(ellipse at 40% 0,#47423a66,transparent 65%),linear-gradient(110deg,#302e2a,#252420);border-bottom:2px solid #b49151;box-shadow:0 4px 0 #d7c49b44}
.school-brand{display:flex;align-items:center;gap:16px;flex-shrink:0;color:inherit;background:none;border:0;padding:0;text-align:left}
.school-seal{display:block;width:70px;height:70px;flex-shrink:0;object-fit:contain;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #7e673b55}
.school-name strong{display:block;font:700 25px 'STSong','SimSun',serif;letter-spacing:3px;white-space:nowrap}.school-name small{display:block;font-size:9px;letter-spacing:1.7px;margin-top:6px;opacity:.82}
.header-divider{height:38px;width:1px;background:#c7b58c88}.school-header h1{font:700 27px 'STSong','SimSun',serif;margin:0;letter-spacing:3px;white-space:nowrap}.school-motto{display:flex;align-items:center;justify-content:center;gap:16px;margin-left:auto;color:#d9bd7f;font:500 18px 'STSong','SimSun',serif;letter-spacing:4px;white-space:nowrap}.school-motto:before,.school-motto:after{content:'';width:32px;height:1px;background:#b99a59}
.header-tools{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.header-bell{display:grid;place-items:center;width:38px;height:40px;background:none;color:#f5eee0;border:0;border-radius:8px}.header-bell:hover,.header-account:hover{background:#ffffff12}.header-bell svg{width:26px;height:26px}.tool-divider{height:25px;width:1px;background:#c7b58c55;margin:0 6px}.header-tools .user-avatar{display:grid;width:31px;height:31px;font-size:14px;background:linear-gradient(135deg,#f6e9c5,#b89a5d);color:#67512e}.header-tools #currentUser{max-width:145px}.header-tools #currentUser strong{display:block;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-tools #currentUser small{display:block;color:#c7bda8;font-size:10px}.header-account{border:1px solid #cfb27555;border-radius:6px;background:none;color:#e9d8b3;padding:5px 9px;font-size:11px}
.school-shell .sidebar{grid-column:1;grid-row:2;position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));padding:25px 13px 18px;background:radial-gradient(ellipse at 10% 85%,#51473455,transparent 60%),linear-gradient(100deg,#302d28,#262522);color:#f5ebd7;box-shadow:none;z-index:6;border-right:1px solid #ab8b4b}
.school-shell .sidebar nav{gap:3px;display:flex;flex-direction:column}.school-shell .sidebar nav button{border:1px solid transparent;min-height:45px;border-radius:8px;padding:10px 14px;gap:13px;font-size:14px;font-weight:400;color:#e8e2d6}.school-shell .sidebar nav button>svg{width:23px;height:23px;flex-shrink:0;color:#ddccaa}.school-shell .sidebar nav button:hover{transform:none;background:#b5975420;color:#fff}.school-shell .sidebar nav button.active{background:linear-gradient(120deg,#b49556,#9a7c3d);color:#fffaf0;border-color:#d8b76f;box-shadow:inset 0 1px 1px #ffffff40,0 4px 12px #0002}.school-shell .sidebar nav button.active svg{color:#fff8e6}.nav-chevron{margin-left:auto;font-size:23px;font-weight:200;line-height:1;color:#cabd9e}.school-shell .nav-label{display:block;font-size:10px;letter-spacing:3px;font-weight:400;color:#b4a78e;margin:22px 14px 8px}.nav-separator{height:1px;background:#ccb38133;margin:16px 10px 10px}.sidebar-decoration{margin:auto auto 8px;min-height:90px;max-height:200px;overflow:hidden;text-align:center;opacity:.7}.sidebar-decoration img{width:170px;height:165px;display:block;object-fit:contain;margin:auto}.sidebar-decoration span{font:12px 'SimSun',serif;letter-spacing:2px;color:#c6b07e}.sidebar-environment{font-size:10px;color:#b7aa91;text-align:center;margin-top:18px;letter-spacing:1px}.sidebar-environment i{display:inline-block;width:5px;height:5px;margin-right:3px;background:#c0a56e;border-radius:50%}
.school-shell main{grid-column:2;grid-row:2;min-width:0;border-radius:23px 0 0 0;border-top:4px solid #c5ae7b;background:radial-gradient(ellipse at 100% 100%,#e7d7b933,transparent 55%),#f7f4ef;box-shadow:inset 3px 0 0 #e7ddca;position:relative}.page-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 29px 0;color:#948775;font-size:11px}.page-heading .breadcrumb{margin:0;color:#8f826f;font-size:11px;font-weight:400;display:block}.page-heading .breadcrumb span{color:#8f826f}.page-heading #pageTitle{color:#68583f;margin:0}.school-shell .content{width:100%;max-width:1600px;margin:auto;padding:18px 29px 24px;outline:none}
.welcome-banner{isolation:isolate;position:relative;display:flex;align-items:center;gap:24px;min-height:168px;padding:30px 28px;border:1px solid #e7d7b8;border-radius:15px;background:radial-gradient(ellipse at 10% 10%,white,#f8f3e9 70%);overflow:hidden;box-shadow:inset 0 0 0 2px #fffcf655,0 3px 16px #7e622008}
.welcome-copy{position:relative;z-index:2;flex:1;min-width:280px;border-left:4px solid #c4a25b;padding-left:18px}.welcome-kicker{font-size:10px;letter-spacing:2.5px;color:#9f834d;margin:0 0 5px}.welcome-copy h2{font:700 clamp(22px,2.1vw,32px) 'STSong','SimSun',serif;line-height:1.4;letter-spacing:2px;margin:0 0 8px;overflow-wrap:anywhere}.welcome-copy>p:last-child{font-size:12px;margin:0;color:#6a5b45}.welcome-stats{display:flex;z-index:2;position:relative;flex-shrink:0;margin-right:clamp(35px,9vw,145px)}.welcome-stat{border:0;border-left:1px solid #d8c7a7;padding:0 20px;display:flex;align-items:center;gap:12px;min-height:60px;background:none;color:#ad8841;text-align:left;border-radius:0}.welcome-stat:hover:not(:disabled){background:#b99a5910}.welcome-stat:disabled{cursor:default;opacity:.8}.welcome-stat>svg{width:32px;height:32px;flex-shrink:0}.welcome-stat>span{display:flex;flex-direction:column}.stat-label{font-size:12px;color:#544a3b;white-space:nowrap}.stat-number{font:600 27px Georgia,serif;line-height:1.3;margin-top:4px;white-space:nowrap}.stat-number small{font:12px 'Microsoft YaHei',sans-serif;color:#74634a;margin-left:7px}.campus-art{position:absolute;z-index:0;right:-12px;bottom:2px;width:285px;opacity:.55;pointer-events:none}.banner-waves{position:absolute;bottom:-40px;left:-40px;right:-40px;height:78px;border-radius:50%;background:#c9a96630;transform:rotate(2deg);border-top:7px solid #c9a9661a}.banner-waves:after{content:'';position:absolute;inset:15px 50px auto -20px;height:80px;border-radius:50%;border-top:2px solid #fff9ee;transform:rotate(-5deg)}
.home-section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:26px 0 15px}.home-section-head>div{display:flex;align-items:center;gap:10px;min-width:0}.home-section-head h3{margin:0;font-size:15px;letter-spacing:2px}.home-section-head>div>span:last-child:not(.section-stroke){font-size:11px;color:#9a8c77;margin-left:5px}.section-stroke{display:block;width:3px;height:15px;background:#b18a43;border-radius:2px}.scope-note{font-size:10px;color:#9c8a6d;white-space:nowrap}
.module-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:23px}.module-card{grid-column:span 3;position:relative;isolation:isolate;overflow:hidden;min-height:212px;border:1px solid #c9aa71;border-radius:16px;background:radial-gradient(ellipse at 50% 20%,#fffefb 10%,#fcfaf6 65%,#f4ecdd);box-shadow:inset 0 0 0 3px #fffcf6,0 3px 2px #7e63211a,0 8px 18px #7e632112;padding:24px 14px 19px;color:#30281d;display:flex;flex-direction:column;align-items:center;transition:transform .18s,box-shadow .18s,border-color .18s;text-align:center}.module-card:nth-child(n+5){grid-column:span 4;min-height:215px}.module-card:before,.module-card:after{content:'';position:absolute;z-index:-1;bottom:-49px;left:-35%;width:150%;height:90px;border-radius:50%;background:#dbc39330;transform:rotate(12deg)}.module-card:after{bottom:-57px;left:5%;transform:rotate(-11deg);background:#cfb27a30;border-top:2px solid #fffdf5}.module-card:hover{transform:translateY(-4px);border-color:#a47d34;box-shadow:inset 0 0 0 3px #fffcf6,0 9px 25px #7e632125}.module-card:focus-visible{outline:3px solid #95702f;outline-offset:4px}.module-index{position:absolute;left:17px;top:12px;font:11px Georgia,serif;letter-spacing:1px;color:#c2af8d}.module-icon{display:grid;place-items:center;width:85px;height:85px;flex-shrink:0;border-radius:50%;border:1px solid #b38a3d;box-shadow:inset 0 0 0 3px #fffcf6;background:linear-gradient(145deg,#fffcf9,#f5ecd9);color:#ab8640}.module-icon>svg{width:47px;height:47px}.module-card h3{font:700 clamp(20px,1.85vw,28px) 'STSong','SimSun',serif;line-height:1.3;letter-spacing:3px;margin:13px 0 7px;white-space:nowrap}.module-card p{font-size:10px;letter-spacing:1px;margin:0;color:#9b8b6e}.module-bottom{height:17px;width:100%;display:flex;align-items:center;justify-content:center;position:relative;margin-top:10px}.module-bottom>span{height:3px;width:32px;border-radius:3px;background:#af8740}.module-bottom svg{position:absolute;right:8px;width:18px;height:18px;color:#b09053;opacity:0;transition:opacity .18s}.module-card:hover .module-bottom svg,.module-card:focus-visible .module-bottom svg{opacity:1}
.home-work-panel{margin-top:25px;border:1px solid #e4dac9;border-radius:12px;background:#fffdf9d9;padding:0 20px 5px}.home-work-panel .home-section-head{margin:15px 0 10px}.home-work-panel .link-btn{font-size:11px}.quiet-empty{color:#93836c;font-size:12px;text-align:center;padding:20px 10px;line-height:1.9;margin:0}.reminder-row{display:flex;align-items:center;width:100%;gap:13px;background:none;border:0;border-top:1px solid #eee6d8;padding:11px 0;text-align:left;color:var(--ink-700)}.reminder-row:hover{background:#f8f2e5}.reminder-symbol{display:grid;place-items:center;width:32px;height:32px;background:#f4eddf;border-radius:8px;color:#ad8841}.reminder-symbol svg{width:20px;height:20px}.reminder-title{flex:1}.reminder-title strong{display:block;font-size:12px;font-weight:500}.reminder-title small{display:block;font-size:10px;color:#9a8b73;margin-top:2px}.reminder-date{color:#9a8b73;font-size:11px}.school-footer{display:flex;justify-content:space-between;font-size:10px;color:#aa9d88;margin-top:22px;gap:15px}
.module-page-title{display:flex;align-items:center;gap:16px;margin:0 0 23px}.module-page-title h2{font:700 26px 'SimSun',serif;letter-spacing:3px;margin:0 0 5px}.module-page-title p{font-size:12px;color:#9a896d;margin:0}.module-mini-icon{display:grid;place-items:center;width:58px;height:58px;border:1px solid #d2b783;border-radius:14px;background:#fffaf0;color:#ad8841}.module-mini-icon svg{width:32px;height:32px}.module-overview,.module-scope{padding:24px}.module-overview>.subtle{font-size:13px;line-height:1.9;margin-top:0}.module-overview h4{font-size:14px;font-weight:600}.module-scope{margin-top:22px}.module-scope h3{font-size:15px;margin:0 0 16px}.scope-chips{display:flex;flex-wrap:wrap;gap:10px}.scope-chips span{font-size:12px;background:#f6f0e6;border:1px solid #e7dcc9;border-radius:6px;padding:8px 13px;color:#8b7756}.module-empty-symbol{width:80px;height:80px;padding:20px;margin:30px auto 20px;border-radius:50%;background:#f6f0e4;color:#b89b65}.module-empty-symbol svg{width:100%;height:100%}.centered{text-align:center;font-size:17px}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.settings-link{padding:26px;text-align:left;color:var(--ink-900)}.settings-link>svg{width:38px;height:38px;color:#a98546}.settings-link>h3{font-size:18px}.settings-link>p{font-size:12px;color:#97866b}.settings-link>span{font-size:12px;color:#916d2e}.daily-student-list{display:grid;gap:8px}.student-record-link{display:flex;align-items:center;gap:15px;border:1px solid #e7ddcb;border-radius:8px;padding:12px;background:#fffdfa;text-align:left;font-size:12px;color:#7b6849}.student-record-link>span:first-child svg{width:27px;height:27px}.student-record-link>span:last-child{margin-left:auto}.student-record-link:hover{background:#fbf3e3}
.school-shell th{background:#f9f6ef}.school-shell tbody tr:hover{background:#fcf9f2}.school-shell .tabs button.active{color:#916d2e}.school-shell .primary{background:linear-gradient(120deg,#ad8b49,#947332);box-shadow:0 4px 12px #98712f26}.school-shell .primary:hover{box-shadow:0 6px 15px #98712f33}.school-shell .secondary{border-color:#e4d4b4}.school-shell .card{border-color:#e1d6c4}.school-shell .subtle{line-height:1.8}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#b59049}
@media(min-width:1600px){.school-shell{--sidebar-width:244px;--header-height:102px}.school-header h1{font-size:30px}.school-name strong{font-size:29px}.school-header{gap:30px}.school-shell .sidebar{padding:35px 13px 20px}.school-shell .sidebar nav button{min-height:51px;font-size:16px}.welcome-banner{min-height:184px}.module-card{min-height:240px;padding-top:27px}.module-card:nth-child(n+5){min-height:240px}.module-icon{width:97px;height:97px}.module-icon svg{width:54px;height:54px}.module-card h3{font-size:30px}.module-card p{font-size:11px}.school-shell .content{padding:22px 30px 28px}.welcome-stats{margin-right:150px}.welcome-stat{padding:0 25px}}
@media(max-width:1250px){.school-header{padding-inline:22px;gap:20px}.school-motto{display:none}.school-header h1{font-size:24px}.school-name strong{font-size:23px}.school-shell{--sidebar-width:195px}.welcome-banner{gap:12px;padding:24px 20px}.welcome-copy{min-width:240px}.welcome-stats{margin-right:20px}.welcome-stat{padding-inline:14px;gap:8px}.welcome-stat>svg{width:26px;height:26px}.campus-art{width:225px;opacity:.23}.module-grid{gap:17px}.module-card h3{font-size:22px;letter-spacing:2px}.school-shell .sidebar nav button{font-size:13px;padding-inline:11px;gap:10px}.school-shell .content{padding-inline:23px}}
@media(max-width:1000px){.school-shell{--sidebar-width:174px;--header-height:82px}.school-header{gap:16px}.school-seal{width:56px;height:56px}.school-name strong{font-size:20px}.school-name small{font-size:7px;letter-spacing:1px}.school-header h1{font-size:22px;letter-spacing:2px}.header-tools #currentUser{max-width:95px}.school-brand{gap:12px}.school-shell .sidebar nav button{font-size:12px;gap:8px;padding-inline:8px}.school-shell .sidebar nav button>svg{width:21px;height:21px}.welcome-banner{flex-wrap:wrap;gap:20px}.welcome-copy{width:100%;flex:auto}.welcome-stats{margin-left:0;margin-right:0;flex:1}.welcome-stat:first-child{border-left:0;padding-left:0}.welcome-stat{flex:1}.module-card{grid-column:span 6;min-height:200px}.module-card:nth-child(n+5){grid-column:span 6;min-height:200px}.module-card:last-child{grid-column:span 12}.module-card h3{font-size:25px}.module-card p{font-size:11px}.sidebar-decoration img{width:140px}.sidebar-decoration span{font-size:10px}.school-shell .nav-label{font-size:9px}.settings-grid{grid-template-columns:1fr}.home-section-head>div>span:last-child:not(.section-stroke){display:none}}
@media(max-width:700px){.school-shell{--header-height:72px;display:block}.school-header{height:var(--header-height);gap:10px;padding:8px 14px}.school-name strong{font-size:18px;letter-spacing:2px}.school-name small{font-size:6px;letter-spacing:.6px;margin-top:5px}.school-seal{height:46px;width:46px}.school-brand{gap:10px}.school-header h1,.header-divider,.tool-divider,.header-tools .user-avatar,.header-tools #currentUser{display:none}.header-tools{gap:3px}.header-bell{width:28px;padding:0}.header-bell svg{width:22px}.header-account{font-size:10px;padding:5px 7px}.school-shell .sidebar{position:sticky;top:var(--header-height);height:auto;padding:8px 10px;border:0;border-bottom:1px solid #a58b53}.school-shell .sidebar nav{display:flex;flex-direction:row;gap:5px;overflow-x:auto;scrollbar-width:none;justify-content:flex-start}.school-shell .sidebar nav::-webkit-scrollbar{display:none}.school-shell .sidebar nav button{width:auto;flex-shrink:0;min-height:36px;padding:7px 11px;gap:6px;border-radius:6px;font-size:12px}.school-shell .sidebar nav button>span{display:inline;white-space:nowrap}.school-shell .sidebar nav button>svg{width:17px;height:17px}.school-shell .sidebar nav .nav-chevron,.school-shell .nav-label,.sidebar-decoration,.sidebar-environment,.nav-separator{display:none!important}.school-shell main{min-height:calc(100vh - 125px);border-radius:14px 14px 0 0;border-top-width:2px;box-shadow:none}.page-heading{padding:14px 16px 0;font-size:9px;gap:6px}.page-heading .breadcrumb{font-size:10px}.school-shell .content{padding:14px 14px 22px}.welcome-banner{padding:24px 17px 25px;border-radius:11px;gap:23px}.welcome-copy{padding-left:13px;border-left-width:3px;min-width:0}.welcome-copy h2{font-size:25px;letter-spacing:1px}.welcome-copy>p:last-child{font-size:10px}.welcome-kicker{font-size:9px}.welcome-stats{width:100%;margin:0}.welcome-stat{gap:6px;padding:0 10px;min-height:44px}.welcome-stat>svg{width:23px;height:23px}.stat-label{font-size:9px}.stat-number{font-size:24px}.stat-number small{font-size:10px;margin-left:4px}.campus-art{width:180px;bottom:55px;opacity:.22}.module-grid{gap:13px}.module-card,.module-card:nth-child(n+5){min-height:185px;border-radius:12px;padding:22px 9px 14px}.module-icon{width:70px;height:70px}.module-icon svg{width:41px;height:41px}.module-card h3{font-size:23px;letter-spacing:2px;margin:12px 0 5px}.module-card p{font-size:9px;letter-spacing:0}.module-index{font-size:9px;left:13px;top:8px}.module-bottom{margin-top:8px}.module-bottom svg{display:none}.module-card:last-child{min-height:175px}.home-section-head{margin:22px 0 12px;gap:7px}.home-section-head h3{font-size:14px}.scope-note{font-size:9px}.home-work-panel{padding-inline:12px;margin-top:20px}.school-footer{flex-direction:column;align-items:center;font-size:9px;gap:5px;margin-top:20px}.module-page-title{gap:12px;margin-top:5px}.module-page-title h2{font-size:24px}.module-overview,.module-scope{padding:18px}.student-record-link{gap:10px;font-size:11px}.reminder-row{gap:8px}.reminder-date{font-size:10px}.module-scope .meta{line-height:1.8}.form-grid{grid-template-columns:1fr}}
@media print{.school-header,.page-heading,.sidebar,.school-footer{display:none!important}.school-shell{display:block!important;background:white}.school-shell main{border:0;border-radius:0;box-shadow:none;background:white}.school-shell .content{padding:0}.module-card{box-shadow:none}.welcome-banner{break-inside:avoid}}

@media(max-width:700px){.module-training h3{font-size:clamp(17px,5vw,23px)}}
@media(max-width:360px){.welcome-stat{padding-inline:6px;gap:4px}.welcome-stat>svg{width:20px;height:20px}.stat-label{font-size:8px}.stat-number{font-size:22px}}

@media(max-width:360px){html{min-width:0}.school-name strong{font-size:16px;letter-spacing:1px}.school-name small{font-size:5.5px}.school-header{padding-inline:10px}.school-brand{gap:8px}}
