@charset "UTF-8";
:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#202b40;background:#f5f7fb;font-size:16px;--blue:#345ce8;--ink:#202b40;--muted:#738096;--line:#e5e9f1;--green:#14865b;--nav:#111e34}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #7892ff;outline-offset:3px}[hidden]{display:none!important}.layout{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#a7b4ca;padding:31px 18px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-size:27px;font-weight:700;letter-spacing:-1px;color:white;text-decoration:none;display:flex;align-items:center;gap:10px}.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--blue);color:white;display:grid;place-items:center;font-size:26px}.brand-dot{color:#7795ff;margin-left:-9px}.workspace{display:flex;gap:10px;align-items:center;padding:16px 9px;margin:33px 0 31px;background:#1a2942;border:1px solid #2d3c54;border-radius:10px}.workspace-icon{background:#304462;color:#d2dff5;width:30px;height:30px;display:grid;place-items:center;border-radius:8px}.workspace strong{display:block;color:#ebf0f8;font-size:14px}.workspace small{display:block;font-size:12px;margin-top:4px}.nav-caption{font-size:10px;letter-spacing:1.3px;padding-left:12px;margin-bottom:13px}.nav-item{border:0;background:none;color:inherit;width:100%;display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;font-size:14px;text-align:left;margin-bottom:5px}.nav-item span{font-size:20px;width:21px;text-align:center}.nav-item.active{color:white;background:#2d4cae}.nav-item:hover{background:#263751;color:white}.sidebar-bottom{margin-top:auto;padding-top:25px}.memory-label{border-top:1px solid #2b3951;padding:22px 7px 18px;display:flex;gap:10px}.memory-label>span{color:#83a0ff;font-size:23px}.memory-label strong{color:#d1ddf0;font-size:12px}.memory-label p{font-size:12px;line-height:1.6;margin:8px 0}.sidebar-bottom small{font-size:11px;padding:12px;display:block;color:#798ba7}main{min-width:0}.topbar{height:73px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 32px;font-size:14px}.breadcrumb{color:var(--muted);display:flex;gap:13px}.breadcrumb strong{color:#445168;font-weight:500}.save-status{font-size:12px;color:var(--muted)}.save-status.error{color:#bb3a45}.content{padding:29px 32px 36px;max-width:1800px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px}.eyebrow{font-size:11px;letter-spacing:1.7px;color:var(--muted);margin-bottom:9px}h1{font-size:29px;letter-spacing:-.9px;margin:0;font-weight:650}h2{font-size:18px;letter-spacing:-.3px;margin:0}h3{font-size:16px;margin:0}.button{border:1px solid #dce2ed;border-radius:7px;background:white;padding:10px 15px;font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#38465d;white-space:nowrap}.button.primary{background:var(--blue);border-color:var(--blue);color:white;box-shadow:0 3px 6px #345ce820}.button.danger{color:#be3442;border-color:#f0c5cb}.button:hover{filter:brightness(.97)}.button.small{padding:7px 11px;font-size:12px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.metric{background:white;border:1px solid var(--line);border-radius:10px;padding:17px 20px}.metric-label{font-size:12px;color:#6b7890;display:flex;justify-content:space-between;gap:5px}.metric-label span{color:#8ba1c7;font-size:17px}.metric-value{font-size:29px;font-weight:650;margin-top:9px;letter-spacing:-1px}.metric-value small{font-size:14px;letter-spacing:0;color:var(--muted);font-weight:400;margin-left:5px}.metric-note{font-size:12px;color:var(--muted);margin-top:7px}.metric-note.good{color:var(--green)}.metric-note.warn{color:#b26a1e}.panel{background:white;border:1px solid var(--line);border-radius:11px;overflow:hidden}.calendar-toolbar{padding:19px 21px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.month-nav{display:flex;align-items:center;gap:12px}.icon-button{width:28px;height:30px;border:1px solid var(--line);border-radius:6px;background:white;color:#65758d;font-size:19px}.month-input{border:0;color:var(--ink);font-weight:600;font-size:16px;background:transparent;max-width:170px}.status-chip{font-size:11px;border:1px solid #d5dfef;background:#f4f7fd;padding:4px 8px;border-radius:5px;color:#6880a5}.status-chip.approved{background:#edf8f2;color:var(--green);border-color:#d2eadd}.mode-toolbar{border-top:1px solid var(--line);padding:12px 21px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.mode-label{font-size:12px;color:var(--muted)}.segmented{display:flex;background:#f1f4f9;border-radius:7px;padding:3px;gap:2px}.segmented button{border:0;background:transparent;border-radius:5px;padding:6px 12px;color:#758199;font-size:12px}.segmented button.active{color:#345ce8;background:white;box-shadow:0 1px 4px #25375314}.legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:11px;color:#778399}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:9px;height:9px;border-radius:3px;display:inline-block}.legend .work{background:#bfead5}.legend .duty{background:#c9d6ff}.legend .off{background:#e3e8f1}.legend .leave{background:#ffdea8}.table-wrap{overflow:auto;max-height:64vh;position:relative}.schedule-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px;table-layout:fixed}.schedule-table th,.schedule-table td{border-right:1px solid #eef0f5;border-bottom:1px solid #eef0f5;text-align:center;height:57px;padding:0}.schedule-table thead th{background:#fbfcfe;height:64px;font-weight:500;position:sticky;top:0;z-index:3;color:#77849a}.schedule-table .name-col{width:210px;position:sticky;left:0;z-index:4;background:white;text-align:left;padding:0 18px;border-right:1px solid #e2e8f2}.schedule-table thead .name-col{z-index:5;background:#fbfcfe;font-size:12px}.schedule-table .day-col{width:35px}.schedule-table .total-col{width:59px;background:#fbfcfe}.schedule-table .day-number{display:block;color:#46546b;font-size:14px;font-weight:600;margin-bottom:4px}.schedule-table .weekend{background:#f5f7fb}.schedule-table th.today .day-number{background:#345ce8;color:white;border-radius:5px;width:24px;margin:0 auto 4px;padding:3px}.schedule-table .group-row td{height:34px;background:#f8faff;text-align:left;color:#7c8ba1;font-size:10px;font-weight:600;letter-spacing:.8px;padding:0 18px}.person-name{font-size:12px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-note{display:block;font-size:10px;color:#99a5b8;margin-top:4px}.avatar{width:28px;height:28px;border-radius:8px;background:#ecf0fa;color:#627aaf;display:grid;place-items:center;font-size:10px;font-weight:600;flex-shrink:0}.person{display:flex;align-items:center;gap:9px}.shift{display:block;width:27px;height:29px;margin:auto;border:0;border-radius:5px;background:#f0f3f8;color:#7f8b9f;font-size:10px;font-weight:600;position:relative;padding:0}.shift.R{background:#e1f5ea;color:#248359}.shift.D{background:#e5ecff;color:#4267d2}.shift.Z{background:#e6f1f6;color:#378399}.shift.O{background:#fff1d8;color:#b07b25}.shift.B{background:#ffe9eb;color:#c36570}.shift.X{background:#f1eafa;color:#9468b4}.shift.empty{background:none;color:#c4cdda;border:1px dashed #e6eaf1}.shift.selected{outline:2px solid var(--blue);outline-offset:2px}.shift:hover{outline:2px solid #a7b9e5;outline-offset:2px}.schedule-table tfoot td{height:45px;font-weight:600;color:#6d7c94;background:#fafbfd}.schedule-table tfoot td.shortage{color:#c86743;background:#fff3ea}.schedule-table tfoot td.covered{color:#349373}.table-footer{padding:12px 20px;display:flex;justify-content:space-between;font-size:11px;color:#8792a4;gap:10px;border-top:1px solid var(--line)}.lower-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:20px;margin-top:22px}.card-pad{padding:22px}.card-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}.assistant-icon{color:var(--blue);background:#edf1ff;padding:5px 8px;border-radius:7px;font-size:19px}.card-text{font-size:14px;color:#758399;line-height:1.65;margin:0 0 17px}.hint-line{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid #f0f2f7;font-size:12px;line-height:1.6}.hint-line:last-child{border-bottom:0}.hint-line>span{color:#7287b1}.hint-line small{color:#929eb0;display:block}.badge{font-size:11px;background:#eef3ff;color:#5475c1;padding:5px 8px;border-radius:5px}.empty-state,.loading-state{padding:45px 25px;text-align:center;color:var(--muted);font-size:14px}.row-list{display:grid;gap:12px}.employee-card{padding:17px;display:flex;justify-content:space-between;align-items:center;gap:12px}.employee-card strong{font-size:14px}.employee-card small{font-size:12px;color:var(--muted);display:block;margin-top:5px}.section-heading{margin:27px 0 15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#51617a}.field input,.field select,.field textarea{border:1px solid #dce3ef;border-radius:7px;background:#fff;padding:10px 12px;color:var(--ink);width:100%;min-width:0}.field small{color:var(--muted);line-height:1.5;font-size:12px}.field.full{grid-column:1/-1}.checkbox{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.5;color:#5f6d84}.checkbox input{accent-color:var(--blue);margin-top:3px}.rule-day{display:grid;grid-template-columns:70px 1fr 1fr;gap:12px;align-items:center;padding:7px 0}.rule-day input{width:100%;padding:8px;border:1px solid var(--line);border-radius:5px}.chart-row{display:grid;grid-template-columns:170px minmax(60px,1fr) 65px;align-items:center;gap:15px;font-size:13px;margin:19px 0}.bar-track{height:10px;border-radius:6px;background:#edf1f8;overflow:hidden}.bar-fill{height:100%;border-radius:6px;background:#587be9}.summary-table{border-collapse:collapse;width:100%;font-size:13px}.summary-table th,.summary-table td{text-align:left;padding:13px;border-bottom:1px solid var(--line)}.summary-table th{font-weight:500;color:var(--muted)}.notice{background:#f1f5ff;border:1px solid #e0e8fa;border-radius:8px;padding:13px 16px;font-size:13px;color:#627ca7;line-height:1.6;margin:15px 0}.notice.warn{background:#fff6e8;border-color:#f7e5c3;color:#a57a37}.paintbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:13px 20px;background:#edf3ff;font-size:12px;color:#5472a8}.paintbar button{font-size:12px;padding:5px 10px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 22px;background:#182942;color:white;border-radius:9px;box-shadow:0 7px 30px #192a4333;z-index:100;font-size:14px;max-width:90vw}.toast.error{background:#a83445}dialog{border:1px solid #e2e7f0;border-radius:14px;max-width:720px;width:calc(100% - 32px);max-height:88vh;padding:0;box-shadow:0 20px 80px #0c1c3b33;color:var(--ink)}dialog::backdrop{background:#14223870;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:22px 25px;border-bottom:1px solid var(--line)}.modal-body{padding:22px 25px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:18px 25px;border-top:1px solid var(--line)}.close{border:0;background:#f2f5f9;border-radius:6px;padding:3px 9px;font-size:22px;color:#73829a}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:18px 0}.choice{border:1px solid var(--line);background:white;border-radius:9px;padding:15px;text-align:left;font-size:13px;color:#44536c}.choice.active{border:2px solid var(--blue);background:#f2f5ff;padding:14px}.choice strong{display:block;margin-bottom:9px;color:#233550}.choice small{font-size:11px;line-height:1.6;display:block;color:#7c8ba3}.choice-value{font-size:22px;color:var(--blue);font-weight:600;margin-top:10px}.auth{min-height:100vh;display:grid;place-items:center;background:#111e34}.auth-card{width:390px;max-width:calc(100vw - 30px);background:white;border-radius:15px;padding:30px}.auth-card .brand{color:#21314b;margin-bottom:25px}.auth-card h1{font-size:23px;margin-bottom:15px}.auth-card .button{width:100%;margin-top:20px}.error-text{font-size:13px;color:#b33546}.mobile-brand{display:none}.long-text{line-height:1.75;font-size:14px;color:#586983}.long-text p{margin:0 0 14px}.long-text ol{padding-left:20px}.long-text li{margin:10px 0}.filter-input{border:1px solid var(--line);border-radius:7px;padding:9px 12px;font-size:13px;max-width:220px}.critical{color:#bd5345}.no-wrap{white-space:nowrap}
@media(min-width:1600px){.schedule-table .day-col{width:38px}.schedule-table .name-col{width:225px}.shift{width:29px}.schedule-table td{height:62px}.content{padding:34px 40px}}@media(max-width:1050px){.layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:25px 12px}.content{padding:24px 20px}.topbar{padding:0 20px}.metrics{gap:10px}.metric{padding:15px}.lower-grid{grid-template-columns:1fr}.nav-item{font-size:12px;gap:8px}.workspace{padding:12px 6px}.workspace strong{font-size:12px}}@media(max-width:720px){.layout{display:block}.sidebar{height:auto;position:relative;padding:15px 18px}.brand{font-size:24px}.workspace,.nav-caption,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:3px;margin-top:16px}.nav-item{padding:9px 8px;justify-content:center;flex:1;font-size:11px;white-space:nowrap;margin:0}.nav-item span{display:none}.topbar{height:48px;padding:0 16px}.breadcrumb{font-size:12px}.save-status{font-size:10px;max-width:145px;text-align:right}.content{padding:24px 15px}.page-heading{align-items:flex-start;gap:12px}h1{font-size:24px}.page-heading>.button{font-size:12px;padding:9px 10px}.eyebrow{font-size:9px}.metrics{grid-template-columns:1fr 1fr}.metric-value{font-size:25px}.calendar-toolbar,.mode-toolbar{padding:14px}.calendar-toolbar .actions{width:100%}.legend{gap:10px;font-size:10px}.schedule-table .name-col{width:165px;padding:0 10px}.person-name{font-size:11px}.person-note{font-size:9px}.avatar{width:23px;height:25px;font-size:9px}.schedule-table .day-col{width:34px}.table-wrap{max-height:65vh}.form-grid{grid-template-columns:1fr}.choice-grid{grid-template-columns:1fr}.choice small{display:inline}.modal-body{padding:19px}.modal-head,.modal-foot{padding:18px}.employee-card{align-items:flex-start}.chart-row{grid-template-columns:125px 1fr 40px;font-size:11px}.summary-table{font-size:11px}.summary-table th,.summary-table td{padding:9px 5px}.table-footer{font-size:10px}.card-pad{padding:18px}.section-heading{margin-top:24px}}@media print{.sidebar,.topbar,.page-heading>.button,.calendar-toolbar .actions,.mode-toolbar,.lower-grid,.table-footer,.toast{display:none!important}.layout{display:block}.content{padding:0}.metrics{display:none}.panel{border:0}.table-wrap{overflow:visible;max-height:none}.schedule-table{font-size:9px;width:100%;table-layout:fixed}.schedule-table .name-col{width:125px;position:static;padding:0 5px}.schedule-table .day-col{width:auto}.schedule-table .total-col{width:30px}.schedule-table th,.schedule-table td{height:30px}.shift{width:auto;height:24px;font-size:8px}.person-name{font-size:9px}.person-note,.avatar{display:none}.schedule-table thead th{position:static;height:38px}.schedule-table .day-number{font-size:10px}.calendar-toolbar{padding:8px 0}body{background:white;-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4 landscape;margin:8mm}}
