:root{color:#e8eef8;font-synthesis:none;background:#101825;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(145deg,#111b2b,#17263b 45%,#101722);min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}main{max-width:1500px;margin:auto;padding:20px}.topbar{border-bottom:1px solid #33465f;justify-content:space-between;align-items:center;gap:20px;padding-bottom:16px;display:flex}.brand{color:#fff;background:0 0;border:0;padding:0;font-size:23px;font-weight:800}.topbar nav,.view-switch{gap:8px;display:flex}.topbar nav button,.view-switch button{color:#c7d4e6;background:#192639;border:1px solid #455b76;border-radius:7px;padding:8px 12px}.topbar nav button.active,.view-switch button.selected{color:#fff;background:#2d74d6;border-color:#4b98ff}.notice{color:#bfceed;background:#18263a;border-left:3px solid #52a0ff;border-radius:7px;margin:16px 0;padding:10px 13px}.panel,.guide article{background:#172335;border:1px solid #30445e;border-radius:10px;margin:16px 0;padding:18px;box-shadow:0 6px 24px #060b1222}.controls{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.controls label,.people-fields label{color:#aabbd1;gap:6px;font-size:13px;display:grid}.controls input{color:#eef5ff;background:#0e1724;border:1px solid #4b607b;border-radius:6px;padding:8px}.people-fields{flex-wrap:wrap;flex:1;gap:10px;display:flex}.person-field{gap:5px;display:grid}.people-fields input{width:125px}.primary-toggle{cursor:pointer;align-items:center;color:#f2c46d!important;gap:5px!important;display:flex!important}.primary-toggle input{accent-color:#e6a93f;width:auto}.primary{color:#fff;background:#2d74d6;border:0;border-radius:7px;padding:10px 15px;font-weight:700}.primary:disabled{opacity:.5;cursor:wait}.summary,.metrics{color:#b9c9df;flex-wrap:wrap;gap:16px;display:flex}.calendar-hint{color:#b9c9df;margin:0 0 12px;line-height:1.7}.leave-legend{color:#fff;background:#743b57;border:1px solid #f182a6;border-radius:5px;margin-right:5px;padding:2px 7px;font-size:12px;display:inline-block}.calendar-scroll{margin-top:12px;overflow-x:auto}.weekdays,.calendar{grid-template-columns:repeat(7,minmax(112px,1fr));min-width:800px;display:grid}.weekdays{color:#c7d5e8;text-align:center;background:#1c2b40;border:1px solid #405571;border-bottom:0;border-radius:8px 8px 0 0}.weekdays b{border-right:1px solid #405571;padding:13px 8px;font-size:15px}.weekdays b:last-child{border-right:0}.weekdays .weekend{color:#8bbcf4;background:#20324a}.calendar{border:1px solid #405571;border-radius:0 0 8px 8px;overflow:hidden}.calendar-day,.blank{background:#111d2e;border-bottom:1px solid #30445e;border-right:1px solid #30445e;min-height:120px;padding:9px}.calendar-day:nth-child(7n),.blank:nth-child(7n){border-right:0}.calendar-day{align-content:start;gap:6px;display:grid}.calendar-day small{color:#86b5ee}.leave-chip{color:#cad8ea;background:#203148;border:1px solid #49617e;border-radius:5px;margin:2px;padding:3px 5px;font-size:12px}.leave-chip.active{color:#fff;background:#743b57;border-color:#f182a6}.view-switch{align-items:center;margin-top:24px}.days{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px;display:grid}.day{background:#111d2e;border:1px solid #30445e;border-radius:8px;padding:10px}.day-head{justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.day-head span{color:#a9b8cc;font-size:12px}.day table,.load{border-collapse:collapse;width:100%;font-size:12px}.day th,.day td,.load th,.load td{text-align:left;vertical-align:middle;border-top:1px solid #2c3e56;padding:6px}.day th{color:#8ca5c6}.day select{color:#e4edf9;background:#19283b;border:1px solid #425874;border-radius:4px;width:calc(100% - 42px);padding:4px}.lock{color:#d7e2f3;background:#3a4b61;border:0;border-radius:4px;margin-left:4px;padding:4px;font-size:11px}.lock.on{color:#1d180b;background:#ce9b3b}.error,.warning{border-radius:3px;margin:3px 0;padding:4px;display:block}.error{color:#ffd3de;background:#57283a}.warning,.warn{color:#ffca72}.scroll{overflow:auto}.load{min-width:980px}.load th{white-space:nowrap;color:#9db5d2}.empty{min-height:220px}.guide{max-width:850px;margin:30px auto}.guide h1{font-size:30px}.guide h2{color:#fff;margin-top:28px}.guide p,.guide li{color:#c5d1e2;line-height:1.8}.guide b{color:#7eb9ff}@media (width<=700px){main{padding:12px}.topbar{flex-direction:column;align-items:flex-start}.topbar nav{width:100%;overflow:auto}.controls{display:grid}.people-fields{grid-template-columns:repeat(2,1fr);display:grid}.weekdays,.calendar{min-width:700px}.panel{overflow:auto}.days{grid-template-columns:1fr}}
