/* 瑞漫博 · 松石与哑金。参考图只用于色彩与质感，不使用学校标志。 */
.grid>*,.reviewgrid>*,.cards>*,.card{min-width:0}
:root{--teal:#245b4c;--line:#dce4d9;--muted:#64776c;--gold:#d8bc72;--ink:#233e33;background:#dfe8dc;color:var(--ink)}
body{background:radial-gradient(ellipse at 90% 8%,#bed9cb99 0,transparent 43%),radial-gradient(ellipse at 35% 55%,#dce5bc70 0,transparent 50%),linear-gradient(135deg,#e4e9dc,#d8e5dc 58%,#c9dfd7);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased}
body:before{content:'';position:fixed;inset:0;background:url('assets/green-texture.png') center/1280px;opacity:.035;pointer-events:none;z-index:0}
.shell{position:relative}.main{padding-top:34px}.sidebar{background:linear-gradient(165deg,#174d40cc,#163e35ed),url('assets/green-texture.png') center/auto 100%;border-right:1px solid #315b4b;color:#f0f1df;box-shadow:10px 0 40px #173d3010;padding-top:31px;overflow-y:auto}
.brand{padding:0 3px 30px;gap:10px}.brand b{font-weight:550;color:#e1c889;letter-spacing:3px;font-size:23px}.brand small{color:#d8c38b;letter-spacing:.3px;font-size:11px;margin-top:6px;white-space:nowrap}.brand .logo{flex-shrink:0}.logo{background:transparent;border:1px solid #d7be7980;border-radius:50%;color:#dfc478;width:40px;height:40px;box-shadow:inset 0 0 0 4px #d7be790d;font-size:29px}
.workspace{border:1px solid #c7d5b326;background:#e7edcf0a;border-radius:14px;color:#e2e9d8;font-size:12px;margin-bottom:19px;padding:14px 11px}.workspace span{color:#e1c582;background:#d7c28715;border:1px solid #d7c2872b;border-radius:9px}.workspace small{color:#a6bcaa;font-size:10px}.navlabel{color:#9eb5a3;font-size:10px;letter-spacing:2px;padding-top:17px;padding-bottom:11px}.nav{color:#c5d5c8;border-radius:11px;padding-top:12px;padding-bottom:12px;margin:4px 0;font-size:13px}.nav:hover{background:#ecf1d811;color:#f4e4b6;border-color:transparent}.nav.active{color:#efdb9e;background:linear-gradient(100deg,#b3c9a92a,#b3c9a913);box-shadow:inset 3px 0 #d8bd78;font-weight:500}.nav.active svg{color:#e1c987}.nav .count{border-radius:5px;background:#d2b76a26;color:#e7d39c}.sidebarfooter{color:#c6d5c3;border-color:#c2d0b425;font-size:11px;line-height:1.8;margin-top:24px}.sidebarfooter small{color:#a6bba7;font-size:10px}.dot{background:#d7bd7d;box-shadow:0 0 0 3px #dac78914}
.topbar{background:#f5f5e959;backdrop-filter:blur(18px);border-color:#d3dece;height:76px}.breadcrumb{color:#6f8374}.breadcrumb b{color:#365a47}.topright{gap:15px}.topright select{background:#f7f8edb3;font-size:12px;border-color:#bfcebc;border-radius:30px;padding:9px 16px;max-width:290px}.topright .small{border-radius:24px;background:#eff2e6;color:#3d614d;border-color:#c3d2bd}.avatar{background:#dbe6d2;border:1px solid #c6d4be;color:#42674f}
h1{color:#264a38;font-weight:600;font-size:28px;letter-spacing:1px}.pagehead{margin-bottom:26px}.pagehead p{color:#637c69;margin-top:9px}.pagehead .actions button{border-radius:24px;padding:11px 19px;font-size:12px}.pagehead .actions{gap:12px}button{border-color:#cfdbca;border-radius:10px;background:#fafaf0;color:#365641;transition:background .2s,box-shadow .2s,transform .2s}button:hover{border-color:#9eb797;background:#e9f0df;box-shadow:0 3px 12px #304d3209}button:active{transform:translateY(1px)}button.primary{background:linear-gradient(135deg,#32654e,#174d40);border-color:#2c5f4b;color:#f5edcf;box-shadow:0 4px 10px #194b3b12}button.primary:hover{background:#286448;box-shadow:0 5px 16px #194b3b25}button.link{color:#37684d}button.ghost{color:#64775f}button:focus-visible,a:focus-visible{outline-color:#bda35d}input,select,textarea{background:#fafbf4;border-color:#ccd8c5;color:#294936;border-radius:10px}input:focus,textarea:focus,select:focus{outline-color:#a5bea1}.field{color:#576e5a}
.hero{border:1px solid #46715c;border-radius:23px;padding:30px 34px;min-height:178px;background:linear-gradient(110deg,#184f40dd,#40765e91),url('assets/green-texture.png') center/cover;box-shadow:0 9px 25px #2b503415;color:#f3edcf;margin-bottom:25px;isolation:isolate}.hero h2{color:#f4edd4;font-weight:500;letter-spacing:1px;font-size:25px;margin:15px 0 12px}.hero p{color:#d1dfc9;font-size:12px}.hero .muted{color:#d8c88f;font-size:9px;letter-spacing:2px;margin-left:8px}.hero .pill{background:#c7d1a91a;border:1px solid #e8d7a24a;color:#e9d49d;border-radius:30px;padding:5px 11px;font-size:10px}.hero:after{width:260px;height:260px;right:132px;top:-104px;border:1px solid #d7cd9745;box-shadow:0 0 0 28px #d7cd9710,0 0 0 58px #d7cd9709;opacity:1;z-index:-1}.hero:before{content:'';position:absolute;width:200px;height:200px;right:285px;bottom:-174px;border:1px solid #dfd6a861;border-radius:50%;box-shadow:0 0 0 25px #d7cd9710,0 0 0 50px #d7cd9707;z-index:-1}.countdown{border-left:1px solid #c3ce9f38;padding:8px 0 8px 30px;min-width:145px}.countdown small{color:#ccd8bd;font-size:11px}.countdown strong{font-size:50px;color:#e0c780;font-weight:350;line-height:1.45}.countdown>div{color:#e0d5af;font-size:11px}
.stats{gap:18px;margin-bottom:27px}.stat{background:linear-gradient(145deg,#fcfcf3e6,#f0f3e5d9);border:1px solid #f8faee;border-radius:20px;padding:21px 24px 20px;box-shadow:0 5px 20px #334d2d06}.stat:nth-child(2){background:linear-gradient(135deg,#e4ecd3,#d9e6ca)}.stat:nth-child(3){background:linear-gradient(135deg,#e8efe2,#d6e7df)}.stat:nth-child(4){background:linear-gradient(135deg,#f3edda,#ede5cd)}.stat .label{color:#536f58;font-size:12px}.stat .label>span{color:#517459}.stat strong{font-size:34px;color:#294e39;font-weight:450;margin-top:17px;letter-spacing:-1px}.stat small{color:#65795e}.stat .bar{background:#cedbc273;height:3px;margin-top:15px}.stat .bar i{background:linear-gradient(90deg,#457657,#a8bd83)}.stat:nth-child(4) .bar i{background:linear-gradient(90deg,#b49a56,#d4c28b)}
.card{background:#fbfcf4eb;border:1px solid #f7faef;border-radius:20px;box-shadow:0 6px 24px #304b3010;margin-bottom:24px}.cardhead{padding:22px 24px;border-color:#e3e9db}.cardhead h2{font-weight:600;color:#38563e;letter-spacing:.4px}.cardhead small{color:#7a8b6f}.cardbody{padding:24px}.tabs{border-color:#e0e7d6;gap:24px}.tab{color:#6e8063;border-radius:0;box-shadow:none}.tab:hover{box-shadow:none;background:transparent;color:#244b34}.tab.active{color:#2a5c3e;border-color:#9baa69}.toolbar{padding:17px 24px}.toolbar.card{border-radius:15px}.search{background:#f1f5e8;border-color:#dae3d0;border-radius:24px}
th{background:#f0f4e7;color:#65795a;border-color:#e0e8d7;font-size:11px;padding-top:14px;padding-bottom:14px}td{border-color:#e8eddf;color:#3a523e;padding-top:18px;padding-bottom:18px}tbody tr:hover{background:#f0f5e7}.fileicon{background:#eaf0dc;border-color:#dce5ca;color:#68845a;border-radius:8px}.filecell b{color:#365239}.filecell small{color:#77876d}.footnote{background:#f4f7ec80;border-color:#e4ebda;color:#77896c}.pill{background:#e2edd6;color:#3e6745;border-radius:20px;padding:5px 9px;font-size:10px}.pill.orange{background:#f2e7cb;color:#876b2e}.pill.blue{background:#dfebe2;color:#4c7360}.pill.gray{background:#e9eddf;color:#647754}.pill.red{background:#f1ded4;color:#9a5948}.insight{background:linear-gradient(130deg,#e3ecd6,#eef3e4);border-color:#dce7cd;border-radius:15px;padding:18px}.insight h3{color:#416d49;font-weight:550}.insight p{color:#627958}.insight.warning{background:linear-gradient(130deg,#f0e8d1,#f6f1e2);border-color:#e8debf}.insight.warning h3{color:#8d7438}.quickgrid{gap:12px}.quick{background:#edf2e3;border-color:#e3ead6;border-radius:14px;padding:20px 9px;color:#526c4c}.quick:nth-child(2),.quick:nth-child(3){background:#e6eee0}.quick:hover{background:#dae6cf;transform:translateY(-2px)}.quick svg{color:#588061;width:24px;height:24px}.timeline .ball{background:#a7b78c;box-shadow:0 0 0 4px #edf2e4}.timeline p{color:#566e50}.timeline small{color:#7e8b72}.footer{color:#5d775c;letter-spacing:1px;margin-top:25px;font-size:10px}
dialog{background:#fafbf2;border:1px solid #eff3e3;border-radius:23px;color:#35523e;box-shadow:0 35px 90px #123a3650}dialog::backdrop{background:#183f3770;backdrop-filter:blur(7px)}.modalhead,.modalfoot{border-color:#e1e7d5}.modalhead{background:#eaf0df}.modalfoot{background:#f3f6e9}.modalfoot button{border-radius:22px;padding-left:23px;padding-right:23px}#toast{background:#244f3f;color:#f0e5bf;border:1px solid #b8ad7159;border-radius:30px;box-shadow:0 8px 26px #25453225}.empty{color:#74866b}.preview{background:linear-gradient(140deg,#dfe7d5,#cfdfd4);padding:22px}.paper{border-color:#d9dfc8;box-shadow:0 14px 35px #3a50351a;background:#fffef8}.paper h2{color:#315f43}.paper .eyebrow{color:#a18d4c}.paper hr{border-color:#c4b073}.paper p{color:#526b4e}.comment{border-color:#e1e8d5}.comment.done{opacity:.7}.diff>div{background:#f4e6dc;border-radius:10px;color:#795c44}.diff>div+div{background:#e3edd8;color:#426440}.badgepreview{background:linear-gradient(130deg,#dce6cc,#ccded0);border-radius:16px}.badge{border-color:#d2ddc3;background:#fffef5;box-shadow:0 8px 20px #29462d15}.badgeheader{background:linear-gradient(120deg,#194d3dde,#2f6953dd),url('assets/green-texture.png') center/cover;color:#e8d496}.badge strong{color:#31513b}.badge .role{color:#9c8444}.stage{background:linear-gradient(105deg,#234f3e,#46735a);color:#e6d39c;border:1px solid #638061;border-radius:12px;padding:20px}.seat{background:#eef3e5;border-color:#d8e2ca;border-radius:12px;color:#4a6649}.seat.vip{background:#eae2c4;color:#79642d;border-color:#d8c794}.seat.selected{outline-color:#b49d59;background:#d9e7c9}.seat small{color:#708062}.map{background:#e9efdf;border-color:#dbe5cf;border-radius:16px}.map rect:first-child{fill:#dce5d2}.route{stroke:#b79d56}.settingsnote{background:#e7eedc;color:#526b4e;border-radius:14px;border:1px solid #dbe5ce}.checkrow{border-color:#e4ead9}.checkrow p{color:#708064}.checkrow strong{color:#38533c}.chatbubble{background:linear-gradient(120deg,#e4edd8,#dfecdf);color:#345239;border:1px solid #d5e1cb;border-radius:18px}.chatbubble .muted{color:#667b5c}
@media(min-width:1450px){.main{padding-top:40px}.hero{min-height:190px}.hero h2{font-size:28px}}
@media(max-width:900px){.sidebar{padding:23px 8px}.sidebar .brand{padding:0 3px 25px}.logo{width:38px;height:38px;font-size:27px}.nav{padding:13px 15px}.nav.active{box-shadow:inset 2px 0 #d8bd78}.topbar{height:70px}.main{padding-top:25px}.hero{padding:24px;border-radius:20px}.hero h2{font-size:22px}.hero p{line-height:1.9}.hero:after{right:-80px;opacity:.6}.stat{padding:19px;border-radius:17px}.card{border-radius:17px}.pagehead .actions button{padding:9px 14px}.topright{gap:8px}.topright select{max-width:230px}}
@media(max-width:560px){.topbar{padding:0 12px}.breadcrumb{display:none}.topright{width:100%;justify-content:space-between}.topright select{min-width:0;max-width:180px;flex:1;font-size:10px;padding:8px}.topright .avatar{display:none}.main{padding:23px 12px}.pagehead h1{font-size:24px}.pagehead p{font-size:11px}.pagehead .actions{flex-wrap:wrap}.hero h2{font-size:20px;line-height:1.6}.hero .muted{display:none}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:30px}.stat small{font-size:10px}.cardhead,.cardbody{padding:18px}.checkrow{padding:16px;align-items:flex-start;flex-wrap:wrap}.diff{grid-template-columns:1fr}.actions{flex-wrap:wrap}.footer{line-height:1.8}}
@media(prefers-reduced-motion:reduce){button,.quick{transition:none}.route{animation:none}}
@media print{body{background:white}body:before{display:none}.card,.stat{box-shadow:none;background:white}.stage{background:#e9efe6;color:#263b2e}.main{padding:0}.paper{box-shadow:none}}
