:root{color:#dce7f8;font-synthesis:none;--bg:#08111f;--panel:#101c2e;--panel2:#142238;--line:#263955;--muted:#8da0ba;--blue:#4b82e8;--blue2:#2c61c8;--green:#37b27f;--red:#ef6b72;--amber:#f0b85b;background:#08111f;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 25% -10%,#15294a 0,transparent 32%),var(--bg);min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#08111fe0;border-bottom:1px solid #1c2b42;justify-content:space-between;align-items:center;height:78px;padding:0 max(24px,50vw - 720px);display:flex;position:sticky;top:0}.brand{color:#fff;text-align:left;background:0 0;border:0;align-items:center;gap:12px;display:flex}.brand-mark{background:linear-gradient(145deg,#5489ec,#285bc3);border-radius:12px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 8px 30px #1f56bd55}.brand h1{letter-spacing:.03em;margin:0;font-size:20px}.brand small{color:var(--muted);font-size:11px}.topbar nav{gap:8px;display:flex}.topbar nav button,.segmented button,.week-tabs button,.guide-tabs button{border:1px solid var(--line);color:#a8b9ce;background:#0d1829;border-radius:9px;align-items:center;gap:7px;padding:10px 15px;display:flex}.topbar nav button.active,.segmented button.active,.week-tabs button.active,.guide-tabs button.active{color:#fff;background:#315fae;border-color:#4d80db}main{width:min(1440px,100% - 40px);margin:24px auto 52px}.card{border:1px solid var(--line);background:linear-gradient(150deg,#121f33fa,#0d192bfa);border-radius:14px;box-shadow:0 18px 48px #03091435}.toolbar{align-items:end;gap:24px;padding:18px;display:flex}.field{flex-direction:column;gap:7px;display:flex}.field label,.analysis-filter label{color:var(--muted);font-size:12px}.field strong{align-items:center;height:38px;font-size:18px;display:flex}.month-stepper{display:flex}.month-stepper input,.month-stepper button,input,select{color:#e6eef9;background:#0a1424;border:1px solid #30445f;outline:none;height:38px;padding:0 11px}.month-stepper input{border-radius:0}.month-stepper button{place-items:center;width:37px;padding:0;display:grid}.month-stepper button:first-child{border-radius:8px 0 0 8px}.month-stepper button:last-child{border-radius:0 8px 8px 0}.small-input{border-radius:8px;width:76px}.toolbar-actions{gap:9px;margin-left:auto;display:flex}button.primary,button.success,button.secondary,button.icon-text,.people-editor button{color:#fff;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:7px;height:40px;padding:0 15px;display:inline-flex}button.primary{background:#4077dc}button.success{background:#248663}button.secondary,.people-editor button{background:#172944;border-color:#304764}.icon-text{color:#c8d6e8!important;background:#101d31!important;border-color:#30445f!important}button:disabled{opacity:.45;cursor:not-allowed}.status-line{color:#b8c7da;background:#111f34;border-left:3px solid #5b95ff;border-radius:7px;min-height:43px;margin:12px 0;padding:11px 15px;font-size:13px}.status-dot{background:#54ca91;border-radius:50%;width:7px;height:7px;margin-right:10px;display:inline-block}.metrics{grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0;display:grid}.metric{grid-template-columns:1fr auto;padding:17px 19px;display:grid}.metric span{color:var(--muted);font-size:12px}.metric strong{grid-area:1/2/3;font-size:28px}.metric small{color:#70849f;margin-top:8px}.danger{color:var(--red)!important}.good{color:var(--green)!important}.section-card{margin-top:16px;padding:20px}.section-title{justify-content:space-between;align-items:end;margin-bottom:18px;display:flex}.section-title h2,.page-intro h2{margin:4px 0 5px;font-size:20px}.section-title p,.page-intro p{color:var(--muted);margin:0;font-size:13px}.eyebrow{letter-spacing:.18em;color:#5c91ef;font-size:10px;font-weight:800}.month-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.day-card{background:#0c1829;border:1px solid #243650;border-radius:10px;min-height:120px;padding:10px}.day-card-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.day-card-head strong{font-size:20px}.day-card-head span{color:var(--muted);font-size:11px}.people-chips{flex-wrap:wrap;gap:5px;display:flex}.person-chip{color:#bcd5fb;background:#203c64;border:0;border-radius:5px;padding:4px 6px;font-size:10px}.person-chip.rest{color:#ffb0b7;background:#5d2733}.person-chip.non_live_work,.person-chip.unplanned{color:#9cabbc;background:#2b3442}.schedule-heading{align-items:center}.right-controls{align-items:center;gap:8px;display:flex}.segmented,.week-tabs,.guide-tabs{gap:5px;display:flex}.segmented button,.week-tabs button{padding:8px 11px;font-size:12px}.week-tabs{margin:10px 0 15px}.schedule-scroll{overflow:auto}.schedule-table,.analysis-table{border-collapse:collapse;width:100%;min-width:1050px}.schedule-table th,.schedule-table td,.analysis-table th,.analysis-table td{text-align:left;border-bottom:1px solid #22344d;padding:10px}.schedule-table th,.analysis-table th{color:#8fa3be;z-index:3;background:#0c1728;font-size:11px;font-weight:600;position:sticky;top:78px}.schedule-table td:first-child{width:210px}.date-cell{flex-direction:column;gap:4px;display:flex}.date-cell strong{font-size:16px}.date-cell span{color:#7d91aa;max-width:205px;font-size:10px}.date-cell .rest-text{color:#f09098}.room-badge{border-radius:6px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-flex}.room-a{color:#79b8ff;background:#153e6d}.room-b{color:#c4a8ff;background:#3c315b}.assignment{min-width:150px;display:flex}.assignment select{border-radius:7px 0 0 7px;width:100%;height:34px;font-size:12px}.assignment button{color:#71849e;background:#121e31;border:1px solid #30445f;border-left:0;border-radius:0 7px 7px 0;width:34px}.assignment button.locked{color:#ffd174;background:#46391f}.assignment.borrowed select{color:#ffd392;border-color:#c38a37}.vacancy{color:var(--red);font-size:12px}.issues{margin-top:16px;padding:18px}.issues h2{align-items:center;gap:8px;font-size:16px;display:flex}.issue{border-top:1px solid #283a53;grid-template-columns:58px 1fr auto;align-items:center;gap:12px;padding:10px;display:grid}.issue>span{color:#ff9da5;text-align:center;background:#552831;border-radius:5px;padding:4px 7px;font-size:11px}.issue.warning>span{color:#ffd074;background:#55421e}.issue p{margin:0;font-size:13px}.issue button{color:#8196b1;background:0 0;border:0}.people-editor{margin-top:15px;padding:18px}.people-table{overflow:auto}.people-row{grid-template-columns:1.2fr 1fr 1.25fr 1.25fr .7fr .7fr;align-items:center;gap:8px;min-width:930px;padding:6px 0;display:grid}.people-header{color:var(--muted);font-size:11px}.people-row input,.people-row select{border-radius:7px;width:100%}.people-row label{align-items:center;gap:5px;font-size:12px;display:flex}.people-row label input{width:auto;height:auto}.empty{text-align:center;color:#70849e;place-content:center;min-height:180px;display:grid}.page-intro{margin-bottom:18px}.page-intro h2{font-size:26px}.analysis-filter{align-items:end;gap:12px;padding:16px;display:flex}.analysis-filter label{flex-direction:column;gap:6px;display:flex}.analysis-filter input{border-radius:7px}.analysis-table-wrap{padding:12px;overflow:auto}.analysis-table td{font-size:12px}.analysis-table td strong,.analysis-table td small{display:block}.analysis-table td small{color:var(--muted);margin-top:3px}.load-bar{background:#263950;border-radius:10px;width:80px;height:6px;margin-bottom:4px;overflow:hidden}.load-bar i{background:#4c84e8;height:100%;display:block}.equation{color:#8fd6b8;background:#102b26;border-radius:8px;gap:9px;margin:14px 4px 4px;padding:12px;font-size:12px;display:flex}.guide-tabs{margin-bottom:14px}.guide-tabs button{font-size:14px}.guide-grid{grid-template-columns:1.3fr 1fr;gap:14px;display:grid}.guide-grid article{padding:22px}.guide-grid h2{margin:16px 0 8px;font-size:24px}.guide-grid h3{margin-top:0}.guide-grid p,.guide-grid li{color:#a4b4c8;font-size:14px;line-height:1.75}.guide-grid li+li{margin-top:6px}.pattern{grid-template-columns:repeat(4,1fr);gap:5px;margin-top:24px;display:grid}.pattern span,.pattern b{text-align:center;border-radius:6px;padding:10px;font-size:11px}.pattern span{color:#8297b2;background:#0b1727}.pattern b{color:#bcd6fa;background:#1d385d}.guide-hero{grid-row:span 2}footer{color:#657991;border-top:1px solid #1c2b42;justify-content:center;align-items:center;gap:7px;height:54px;font-size:11px;display:flex}@media (width<=900px){.topbar{align-items:flex-start;gap:12px;height:auto;padding:12px 15px}.topbar nav button{padding:10px;font-size:0}.topbar nav button svg{margin:0}main{width:calc(100% - 24px);margin-top:14px}.toolbar{flex-wrap:wrap;align-items:stretch}.toolbar-actions{width:100%;margin-left:0;overflow:auto}.metrics{grid-template-columns:1fr 1fr}.month-grid{grid-template-columns:repeat(4,minmax(130px,1fr));overflow:auto}.section-title,.schedule-heading{flex-direction:column;align-items:flex-start;gap:12px}.right-controls{width:100%;overflow:auto}.guide-grid{grid-template-columns:1fr}.guide-hero{grid-row:auto}.analysis-filter{flex-wrap:wrap}}@media (width<=560px){.brand h1{font-size:16px}.brand small{display:none}.metrics{grid-template-columns:1fr}.month-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.toolbar-actions button{white-space:nowrap}.analysis-filter button,.field{flex:1}.guide-grid article{padding:17px}}.vacancy-select{color:#ff9da5;border-color:#8f4d55;border-radius:7px;max-width:170px;height:34px}.calendar-filter{align-self:center}main{width:min(1900px,100% - 40px)}.topbar{padding-left:max(24px,50vw - 950px);padding-right:max(24px,50vw - 950px)}.person-chip{align-items:center;gap:3px;display:inline-flex}.person-chip.core{color:#ffe4a1;box-shadow:inset 0 0 0 1px #e6b54a}.day-card.golden-day{background:linear-gradient(145deg,#141d2b,#171c27);border-color:#6b5730}.day-card.golden-day .day-card-head span{color:#e9bc62}.duty-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.duty-day{background:#0c1829;border:1px solid #2b405e;border-radius:12px;min-width:0;padding:14px}.duty-day.golden-day{border-color:#745f33;box-shadow:inset 0 2px #d19b34}.duty-day>header{border-bottom:1px solid #2a3d58;justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:10px;display:flex}.duty-day>header strong{color:#e3ecfa;white-space:nowrap;font-size:17px}.duty-day>header span{color:#8fa1b9;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.day-warning{color:#ffbdc3;background:#5b2735;border-radius:5px;margin:8px 0 0;padding:6px 8px;font-size:11px}.duty-matrix{align-items:center;margin-top:7px;display:grid}.duty-matrix.rooms-2{grid-template-columns:104px repeat(2,minmax(0,1fr))}.duty-matrix.rooms-1{grid-template-columns:104px minmax(0,1fr)}.matrix-row{display:contents}.matrix-head,.slot-label,.matrix-assignment{border-bottom:1px solid #22344d;min-width:0;padding:7px 5px}.matrix-head{color:#8fa3be;font-size:11px;font-weight:700}.slot-label{color:#c4cfdf;white-space:nowrap;font-size:11px}.matrix-assignment .assignment{width:100%;min-width:0}.matrix-assignment .assignment select,.matrix-assignment .vacancy-select{width:100%;min-width:0;height:32px;padding:0 6px;font-size:11px}.matrix-assignment .assignment button{flex:0 0 30px;width:30px;height:32px}.people-row{grid-template-columns:1.25fr .9fr 1.15fr 1.15fr .7fr .7fr .7fr}.analysis-table th{top:0}@media (width<=1600px){.duty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.duty-grid{grid-template-columns:1fr}.calendar-filter{max-width:100%;overflow:auto}}
