@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@700&display=swap');
.login[hidden]{display:none!important}
:root{--ink:#20242a;--muted:#787b80;--paper:#fff;--bg:#f8f7f4;--line:#e7e4de;--coral:#e85d4a;--early:#ddf1ea;--middle:#fde9c9;--night:#dce8f7;--rest:#eef0f2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'Noto Sans SC',sans-serif}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(130deg,#20242a,#3f454d)}.login-card{width:min(420px,90vw);padding:42px;background:#fff;border-radius:18px;box-shadow:0 30px 70px #0005}.eyebrow{font-size:11px;letter-spacing:1.5px;color:var(--coral);font-weight:700}.login h1,header h1{font-family:'Noto Serif SC',serif;margin:8px 0}.login p,header p{color:var(--muted);margin:0 0 22px}.login label{display:grid;gap:7px;margin:15px 0;font-weight:600}.login input{padding:12px;border:1px solid var(--line);border-radius:8px;font:inherit}.login button,#editBtn,#saveBtn{border:0;background:var(--coral);color:#fff;border-radius:8px;padding:11px 16px;font:600 14px inherit;cursor:pointer;width:100%;margin-top:10px}.login small{display:block;margin-top:12px;color:#c23d31;min-height:20px}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;padding:20px 14px;background:#20242a;color:#eff0ef;display:flex;flex-direction:column}.logo{color:#fff;text-decoration:none;display:flex;align-items:center;gap:10px;line-height:1.3;font-weight:600;margin:4px 7px 35px}.logo b{background:var(--coral);padding:9px 12px;border-radius:8px;font-size:19px}.nav,.month{border:0;background:transparent;color:#c5c9cc;text-align:left;border-radius:8px;padding:12px;text-decoration:none;cursor:pointer;font:inherit;margin:2px 0}.nav.active,.nav:hover,.month.active{background:#ffffff16;color:white}.months{margin:28px 7px}.months>span{font-size:11px;letter-spacing:1px;color:#91979c}.month{display:block;width:100%;margin-top:6px}.month small{float:right;color:#92999e}.side-foot{margin-top:auto;color:#91979c;font-size:11px;padding:7px}.side-foot button{border:0;background:none;color:#fff;padding:8px 0;cursor:pointer}main{margin-left:224px;padding:34px 38px;min-width:980px}header{display:flex;justify-content:space-between;align-items:start;margin-bottom:25px}header h1{font-size:29px}.head-actions{display:flex;gap:10px;align-items:center}.state{background:#eceae5;color:#555;padding:8px 11px;border-radius:99px;font-size:12px}.state.edit{background:#ffe2dc;color:#ad382c}.ghost{border:1px solid var(--line);background:white;border-radius:8px;padding:9px 13px;cursor:pointer;font:inherit}#editBtn,#saveBtn{width:auto;margin:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:17px}.metric{background:white;border:1px solid var(--line);padding:15px 17px;border-radius:12px}.metric b{font-size:24px;display:block;margin:4px 0}.metric span{color:var(--muted);font-size:12px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:13px 0}.legend{display:flex;gap:8px;align-items:center;color:#666}.legend i{width:15px;height:15px;border-radius:4px;margin-left:10px}.early{background:var(--early)}.middle{background:var(--middle)}.night{background:var(--night)}.rest{background:var(--rest)}#editor{background:#fff1ee;border:1px solid #ffd7d0;border-radius:9px;padding:8px 10px;display:flex;gap:7px;align-items:center}#editor button{border:1px solid #ddd;background:white;border-radius:5px;padding:5px 7px;cursor:pointer}#editor button.selected{border-color:var(--coral);color:var(--coral);font-weight:bold}#editor em{font-size:11px;color:#92625c;font-style:normal}.table-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.table-scroll{overflow:auto;max-height:calc(100vh - 285px)}table{border-collapse:separate;border-spacing:0;min-width:1610px;width:100%;font-size:12px}th,td{border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;padding:9px 5px;white-space:nowrap}thead th{background:#faf9f6;position:sticky;top:0;z-index:3;font-weight:600}th:first-child,td:first-child{position:sticky;left:0;z-index:2;background:#fff;text-align:left;padding-left:16px;min-width:112px}thead th:first-child{z-index:4;background:#faf9f6}.role-row td{background:#f5f3ef!important;color:#74706b;font-weight:bold;text-align:left;padding-left:16px}.shift{cursor:pointer}.shift[data-shift="早班"]{background:var(--early)}.shift[data-shift="中班"]{background:var(--middle)}.shift[data-shift="晚班"]{background:var(--night)}.shift[data-shift="休息"],.shift[data-shift=""]{background:var(--rest);color:#71767b}.shift.changed{outline:2px solid var(--coral);outline-offset:-2px}.note{color:#85817b;font-size:12px}dialog{border:0;border-radius:14px;padding:24px;width:min(720px,90vw);box-shadow:0 30px 90px #0005}.dialog-head{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:12px}.dialog-head h2{margin:3px 0}.audit{padding:15px 0;border-bottom:1px solid var(--line)}.audit b{display:block}.audit small{color:var(--muted);display:block;margin-top:3px}.audit code{display:block;background:#f6f5f2;padding:7px;margin-top:7px;white-space:pre-wrap;color:#555}@media(max-width:1050px){.sidebar{width:72px}.logo span,.nav:not(.active),.months,.side-foot{display:none}.logo{margin:4px 0 30px}.nav{font-size:0;text-align:center}.nav.active:after{content:'客服';font-size:12px}main{margin-left:72px;padding:25px 20px}}
 .code-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.code-row label{margin:0}.code-row button{width:auto;margin:0 0 1px;white-space:nowrap}
.side-brand{display:flex;align-items:start;justify-content:space-between;margin:4px 7px 35px}.side-brand .logo{margin:0}.sidebar-toggle{border:1px solid #ffffff2b;background:transparent;color:#fff;border-radius:6px;width:26px;height:26px;line-height:18px;font-size:22px;cursor:pointer}.sidebar,.sidebar main{transition:width .18s ease}.sidebar-collapsed .sidebar{width:72px;padding-inline:10px}.sidebar-collapsed main{margin-left:72px}.sidebar-collapsed .side-brand{margin-inline:0}.sidebar-collapsed .logo span,.sidebar-collapsed .months,.sidebar-collapsed .side-foot>span{display:none}.sidebar-collapsed .nav{padding-inline:0;text-align:center}.sidebar-collapsed .nav span{font-size:0}.sidebar-collapsed .nav.active span:after{content:'客服';font-size:12px}.sidebar-collapsed .nav:not(.active) span:after{content:'调整';font-size:12px}.sidebar-collapsed .side-foot{padding-inline:0;text-align:center}.sidebar-collapsed .side-foot button{font-size:0}.sidebar-collapsed .side-foot button:after{content:'退出';font-size:12px}.metrics{grid-template-columns:minmax(170px,250px)}
