:root{font-family:"Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;color:#243c35;background:#eef3f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid #a9c3b7;border-radius:8px;padding:10px 16px;background:#205d49;color:#fff}button:disabled{opacity:.55;cursor:wait}a{color:#205d49}input,textarea,select{width:100%;padding:11px;border:1px solid #bccfc6;border-radius:7px;background:#fff;color:#243c35}textarea{min-height:100px;resize:vertical}label{display:block;margin:12px 0;font-size:14px}label input,label select,label textarea{margin-top:6px}.check{display:flex;align-items:center;gap:10px}.check input{width:auto;margin:0}h1,h2,h3{font-weight:500}.app-header{display:flex;align-items:center;gap:20px;padding:12px max(20px,calc((100vw - 1050px)/2));background:#123e31;color:#fff}.app-header h1{font-size:23px;white-space:nowrap}.app-header span{font-size:12px}.app-header button{margin-left:auto}.management main{max-width:1050px;margin:20px auto;padding:0 18px}.panel{background:#fff;padding:24px;border-radius:12px}.login{max-width:480px;margin:60px auto}.panel p{line-height:1.7}.switcher{display:flex;align-items:center;justify-content:space-between;gap:20px}.switcher label{min-width:260px}nav{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}nav button{background:#fff;color:#205d49}nav .selected{background:#205d49;color:#fff}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:15px}.slot-row{display:grid;grid-template-columns:1.1fr 1fr 1fr auto;gap:10px;align-items:center}.list article{border-top:1px solid #d8e5df;padding:16px 0}.list p{white-space:pre-wrap;overflow-wrap:anywhere}.list button{margin-top:8px}.list small{color:#52675e}#status{position:sticky;bottom:0;background:#e5f2eb;padding:12px;text-align:center;min-height:44px}dialog{width:min(700px,92vw);max-height:85vh;overflow:auto;border:1px solid #91a99d;border-radius:12px;padding:24px;background:#f7faf8;color:#243c35}dialog::backdrop{background:#0009}#detail-body,.full-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}fieldset{border:1px solid #d8e5df;border-radius:8px}
.display-body{background:#0c2925}.screen{--bg:#0c2925;--panel:#153b34;--ink:#f1f6ec;--muted:#aac8bd;--accent:#d8eba8;background:var(--bg);color:var(--ink);height:100dvh;padding:2.1vh 2.5vw;display:flex;flex-direction:column;gap:1.8vh;font-size:clamp(14px,1.4vw,40px)}.screen.blue{--bg:#101f35;--panel:#1b304c;--ink:#eff5ff;--muted:#adc1dc;--accent:#a6cfff}.screen.paper{--bg:#f4f1e8;--panel:#fffdf7;--ink:#243c35;--muted:#586e62;--accent:#2b6652}.screen-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1vw;border-bottom:1px solid color-mix(in srgb,var(--muted) 20%,transparent);padding-bottom:1.4vh}.screen-header h1{font-size:clamp(22px,2.6vw,78px);margin:0}.current{display:flex;gap:.5vw;align-items:center;white-space:nowrap;font-size:clamp(13px,1.3vw,40px)}.current strong,.current b{font-family:inherit;font-size:clamp(24px,2.7vw,80px);font-weight:500;line-height:1.4;color:var(--accent)}.current b{display:inline-block;width:2ch;text-align:center;font-variant-numeric:tabular-nums}.date{text-align:right;font-size:clamp(12px,1.1vw,32px);color:var(--muted)}.clock{font-size:clamp(24px,3vw,90px);font-variant-numeric:tabular-nums;color:var(--ink)}.courses{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:.55vw}.course{background:var(--panel);text-align:center;padding:1vh .25vw;border-radius:8px;overflow:hidden}.course small{display:block;font-size:clamp(10px,.95vw,28px);white-space:nowrap}.course strong{display:block;font-size:clamp(14px,1.5vw,44px);margin:.7vh 0;font-weight:500}.course.active{background:var(--accent);color:var(--bg)}.screen-content{display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:1fr auto;gap:1.5vh 1.3vw;flex:1;min-height:0}.quote,.notice,.duty{background:var(--panel);border-radius:12px;padding:1.8vh 1.6vw;min-height:0;overflow:hidden}.section-title{color:var(--muted);font-size:clamp(12px,1.2vw,36px);display:flex;justify-content:space-between;gap:10px}.quote{grid-row:1/3;border-left:3px solid var(--accent);position:relative;display:flex;flex-direction:column}.quote>p{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;white-space:pre-line;overflow-wrap:anywhere;font-size:clamp(24px,3.3vw,108px);line-height:1.7;margin:2vh 0;z-index:1}.quote.short>p{font-size:clamp(30px,4.2vw,140px)}.quote.short::after{content:"";position:absolute;width:20vw;height:20vw;right:-7vw;bottom:-7vw;border:1px solid color-mix(in srgb,var(--accent) 12%,transparent);border-radius:50%;box-shadow:0 0 0 3vw color-mix(in srgb,var(--accent) 3%,transparent),0 0 0 6vw color-mix(in srgb,var(--accent) 2%,transparent);pointer-events:none}.quote button{background:transparent;border:0;border-top:1px solid color-mix(in srgb,var(--muted) 20%,transparent);border-radius:0;color:var(--muted);text-align:left;padding:1.4vh 0 .5vh;font-size:clamp(12px,1.1vw,32px);z-index:1}.notice-entry{display:block;width:100%;background:transparent;color:var(--ink);border:0;border-bottom:1px solid color-mix(in srgb,var(--muted) 20%,transparent);border-radius:0;text-align:left;padding:1.7vh 0;line-height:1.7}.notice-entry:last-child{border:0}.notice-entry strong{font-size:clamp(15px,1.5vw,44px);font-weight:500}.notice-entry small{font-size:clamp(10px,.9vw,28px);color:var(--muted);display:inline-block}.notice-entry p{font-size:clamp(13px,1.2vw,36px);margin:.6vh 0 0;overflow-wrap:anywhere}.notice-entry em{font-size:.7em;background:var(--accent);color:var(--bg);font-style:normal;padding:.2em .4em;margin-right:.4em}.duty .section-title{justify-content:flex-start;gap:1vw}.duty strong{color:var(--ink);font-weight:500}.names{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2vh .5vw;margin-top:1.3vh;font-size:clamp(14px,1.5vw,44px)}.screen footer{display:flex;justify-content:space-between;color:var(--muted);font-size:clamp(10px,.9vw,28px)}.message-overlay{position:fixed;inset:0;z-index:100;background:#0c2925f5;color:#f1f6ec;display:flex;align-items:center;justify-content:center;padding:4vw}.message-overlay section{width:90%;max-height:90vh;overflow:auto}.message-overlay p{font-size:clamp(26px,4vw,120px);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.message-overlay.banner{bottom:auto;align-items:flex-start;padding:2vh 3vw;box-shadow:0 8px 25px #0005}.message-overlay.banner p{font-size:clamp(22px,2.8vw,80px);margin:1vh 0}.message-overlay small{display:block;margin:1vh 0}.message-overlay button{margin-right:12px}
@media(max-width:700px){.app-header{gap:12px;padding:12px}.app-header span{display:none}.login{margin:25px auto}.panel{padding:18px}.slot-row{grid-template-columns:1fr 1fr}.switcher label{min-width:0;flex:1}.screen{height:auto;min-height:100dvh;padding:16px;gap:14px}.screen-header{grid-template-columns:1fr 1fr}.current{grid-column:1/3;grid-row:2;justify-content:center}.courses{grid-auto-flow:row;grid-template-columns:repeat(4,1fr)}.screen-content{grid-template-columns:1fr;grid-template-rows:auto}.quote{grid-row:auto;min-height:260px}.notice-entry{padding:14px 0}.names{gap:10px}.screen-header h1{font-size:22px}.quote>p{font-size:28px}.screen footer{gap:12px}.display-body{overflow:auto}}
