@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--navy:#0f2a4a;--navy-2:#163a63;--primary:#0f5ea8;--primary-dark:#0b4a86;--primary-soft:#e8f1fb;--teal:#0f8b8d;--green:#18804b;--green-soft:#e6f5ec;--red:#c0352b;--red-soft:#fdecea;--amber:#b26a00;--amber-soft:#fff4e0;--orange:#d25a22;--orange-soft:#fdeee6;--bg:#f3f5f9;--card:#fff;--line:#e2e7ee;--line-2:#eef1f5;--text:#1b2533;--text-2:#4d5b6c;--muted:#7a8797;--radius:10px;--shadow:0 1px 2px #1020380f, 0 1px 8px #1020380a;--font:"Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}h1,h2,h3{color:var(--text);margin:0;font-weight:600}h1{font-size:22px}h2{font-size:15px}h3{font-size:16px}p{margin:0 0 10px}a{color:var(--primary);text-decoration:none}code{background:var(--line-2);border-radius:4px;padding:1px 5px;font-size:12.5px}.muted{color:var(--muted)}.small{font-size:12.5px}.mono{font-family:Consolas,SFMono-Regular,Menlo,monospace;font-size:13px}.strong{font-weight:600}.nowrap{white-space:nowrap}.txt-green{color:var(--green)}.txt-red{color:var(--red)}.txt-blue{color:var(--primary)}.txt-orange{color:var(--orange)}.print-only{display:none}input,select,textarea{font:inherit;color:var(--text);background:#fff;border:1px solid #cfd7e2;border-radius:7px;outline:none;width:100%;padding:8px 10px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0f5ea826}textarea{resize:vertical}input[type=checkbox]{width:auto;accent-color:var(--primary)}.field{flex-direction:column;gap:5px;margin-bottom:12px;display:flex}.field>span{color:var(--text-2);font-size:12.5px;font-weight:600}.inline-field{flex-direction:column;gap:3px;display:flex}.inline-field>span{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:11.5px;font-weight:600}.inline-field input,.inline-field select{min-width:140px;padding:7px 9px}.inline-field.grow{flex:1;min-width:200px}.check{cursor:pointer;align-items:center;gap:7px;margin:6px 0;font-size:13.5px;display:inline-flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;display:grid}.form-grid .span-2{grid-column:span 2}.num-input{text-align:right;padding:6px 8px}.num-input.need{border-color:var(--amber);background:var(--amber-soft)}.btn{font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13.5px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-outline{color:var(--primary);border-color:var(--primary);background:#fff}.btn-outline:hover{background:var(--primary-soft)}.btn-light{color:var(--text);background:#fff;border-color:#cfd7e2}.btn-light:hover:not(:disabled){background:#f4f7fb}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){background:#a32a21}.btn-danger-outline{color:var(--red);background:#fff;border-color:#efb7b2}.btn-danger-outline:hover{background:var(--red-soft)}.btn-sm{padding:5px 10px;font-size:12.5px}.btn-block{width:100%;margin-top:8px}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.icon-btn{cursor:pointer;color:var(--text-2);background:0 0;border:none;border-radius:6px;padding:6px;font-size:15px;line-height:1}.icon-btn:hover{background:var(--line-2)}.icon-btn.danger:hover{background:var(--red-soft);color:var(--red)}.link-btn{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.link-btn:hover{text-decoration:underline}.link{font-size:13px;font-weight:600}.chip{background:var(--primary-soft);color:var(--primary-dark);font:inherit;cursor:pointer;border:1px solid #cddcee;border-radius:20px;padding:4px 11px;font-size:12.5px;font-weight:600}.chip:hover{background:#d6e7f8}.seg{background:#fff;border:1px solid #cfd7e2;border-radius:8px;display:flex;overflow:hidden}.seg-btn{font:inherit;cursor:pointer;color:var(--text-2);background:#fff;border:none;flex-direction:column;flex:1;align-items:center;gap:1px;padding:9px 10px;font-weight:600;display:flex}.seg-btn+.seg-btn{border-left:1px solid #cfd7e2}.seg-btn small{color:var(--muted);font-size:11px;font-weight:400}.seg-btn.active{background:var(--primary);color:#fff}.seg-btn.active small{color:#dbe8f6}.seg.small .seg-btn{padding:7px 12px;font-size:13px}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--navy);color:#c9d6e6;flex-direction:column;flex-shrink:0;width:248px;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{border-bottom:1px solid #ffffff14;align-items:center;gap:11px;padding:18px 18px 16px;display:flex}.brand-logo{width:38px;height:38px;color:var(--red);background:#fff;border-radius:9px;flex-shrink:0;place-items:center;display:grid}.brand-logo.big{border-radius:14px;width:60px;height:60px}.brand-name{color:#fff;font-size:15px;font-weight:700;line-height:1.2}.brand-sub{color:#8fa6c1;font-size:11.5px}nav{flex:1;padding:8px 10px 16px}.nav-section{margin-top:12px}.nav-title{text-transform:uppercase;letter-spacing:.09em;color:#7690ae;padding:0 10px 5px;font-size:10.5px;font-weight:700}.nav-link{color:#c9d6e6;border-radius:7px;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:500;display:flex}.nav-link:hover{color:#fff;background:#ffffff0f}.nav-link.active{background:var(--primary);color:#fff}.sidebar-foot{color:#6d86a3;border-top:1px solid #ffffff14;padding:12px 18px;font-size:11px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);z-index:20;background:#fff;align-items:center;gap:14px;height:60px;padding:0 22px;display:flex;position:sticky;top:0}.menu-btn{display:none}.topbar-date{color:var(--text-2);font-size:13px}.topbar-user{align-items:center;gap:14px;margin-left:auto;display:flex}.user-chip{align-items:center;gap:9px;display:flex}.avatar{background:var(--primary-soft);width:34px;height:34px;color:var(--primary-dark);border-radius:50%;place-items:center;font-weight:700;display:grid}.user-name{font-size:13.5px;font-weight:600;line-height:1.2}.user-role{color:var(--muted);font-size:11.5px}.shift-pill{border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.shift-pill.big{padding:7px 12px;font-size:13px}.shift-pill.morning{color:#8a5a00;background:#fff4d6}.shift-pill.evening{color:#4a3fb5;background:#e7e6fb}.demo-banner{color:#6f5200;background:#fff8e6;border-bottom:1px solid #f1dfae;padding:8px 22px;font-size:13px}.content{width:100%;max-width:1500px;padding:22px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-header p{margin:3px 0 0}.page-actions{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.sidebar-backdrop{display:none}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px}.card-head{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:10px;padding:13px 18px;display:flex}.card-body{padding:16px 18px}.sub-title{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin:16px 0 8px;font-size:13px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.grid-2>.card,.grid-2>div>.card{margin-bottom:18px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}.stat-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);border-top:3px solid var(--primary);background:#fff;padding:15px 17px}.stat-top{justify-content:space-between;align-items:center;display:flex}.stat-label{color:var(--text-2);font-size:12.5px;font-weight:600}.stat-icon{color:var(--muted)}.stat-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin:6px 0 2px;font-size:23px;font-weight:700}.stat-sub{color:var(--muted);font-size:12.5px}.tone-navy{border-top-color:var(--navy)}.tone-blue{border-top-color:#2a78d6}.tone-orange{border-top-color:#eb6834}.tone-teal{border-top-color:var(--teal)}.tone-green{border-top-color:var(--green)}.tone-red{border-top-color:var(--red)}.mini-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mini{border-radius:8px;flex-direction:column;gap:3px;padding:12px 14px;display:flex}.mini span{font-size:12.5px;font-weight:600}.mini strong{font-variant-numeric:tabular-nums;font-size:20px}.mini small{color:var(--text-2);font-size:12px}.mini.ok{background:var(--green-soft)}.mini.ok span,.mini.ok strong{color:var(--green)}.mini.bad{background:var(--red-soft)}.mini.bad span,.mini.bad strong{color:var(--red)}.total-line{border-top:1px dashed var(--line);margin-top:12px;padding-top:10px;font-size:13.5px}.status-strip{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px;font-size:13px;display:flex}.dot{border-radius:50%;width:9px;height:9px;margin-left:8px;display:inline-block}.dot:first-child{margin-left:0}.dot.green{background:var(--green)}.dot.amber{background:#e09a00}.dot.red{background:var(--red)}.summary-strip{border:1px solid var(--line);border-radius:var(--radius);color:var(--text-2);background:#fff;flex-wrap:wrap;gap:8px 22px;margin-bottom:16px;padding:11px 16px;font-size:13.5px;display:flex}.summary-strip b{color:var(--text);font-variant-numeric:tabular-nums}.info-grid{border:1px solid var(--line-2);background:#f7f9fc;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;padding:12px;display:grid}.info-grid div{flex-direction:column;display:flex}.info-grid span{color:var(--muted);font-size:11.5px}.role-cards{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;display:grid}.role-card{border:1px solid var(--line);border-radius:var(--radius);color:var(--text-2);background:#fff;flex-direction:column;gap:4px;padding:12px 14px;font-size:13px;display:flex}.role-card b{color:var(--text)}.filters{border:1px solid var(--line);border-radius:var(--radius);background:#fff;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.filters>.btn{align-self:flex-end}.report-actions{gap:8px;margin-left:auto;display:flex}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin-bottom:14px;display:flex}.tab{font:inherit;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-1px;padding:9px 14px;font-weight:600}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;color:var(--text-2);border-bottom:1px solid var(--line);white-space:nowrap;background:#f6f8fb;padding:9px 10px;font-size:12px;font-weight:700}.table td{border-bottom:1px solid var(--line-2);vertical-align:top;padding:9px 10px}.table td.mono{white-space:nowrap}.table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table tfoot td{border-top:1px solid var(--line);background:#f6f8fb;border-bottom:none;font-weight:700}.table tfoot tr.grand td,.table tr.grand td{background:var(--primary-soft);color:var(--primary-dark);font-size:14px}.table.compact td,.table.compact th{padding:7px 9px}.table.half{max-width:520px}.report-table th.num{white-space:normal;vertical-align:bottom;min-width:84px}.row-cancelled td{color:var(--muted);text-decoration:line-through}.row-cancelled td.keep,.row-cancelled td.no-print{text-decoration:none}.row-dim td{color:var(--muted)}.row-strong td{background:#f6f8fb;font-weight:700}.row-group td{background:#fbfcfe}.row-sub td{color:var(--text-2);padding-left:22px;font-size:13px}.row-sub td:first-child{padding-left:24px}.empty{text-align:center;color:var(--muted);padding:34px 10px}.empty-cell{text-align:center;color:var(--muted);padding:26px!important}.badge{white-space:nowrap;border-radius:20px;padding:2px 9px;font-size:11.5px;font-weight:700;display:inline-block}.badge-blue{color:#1f63b5;background:#e3effc}.badge-orange{background:var(--orange-soft);color:#b44a17}.badge-green{background:var(--green-soft);color:var(--green)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-amber{background:var(--amber-soft);color:var(--amber)}.badge-gray{color:#5f6b78;background:#eef0f3}.alert{border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13.5px}.alert ul{margin:6px 0 0;padding-left:20px}.alert-error{background:var(--red-soft);color:#8e231b;border:1px solid #f3c2bd}.alert-info{background:var(--primary-soft);color:#164a7e;border:1px solid #c9ddf3}.alert-success{background:var(--green-soft);color:#136339;border:1px solid #bfe3cd;margin-top:12px;margin-bottom:0}.bill-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px;display:grid}.bill-right{position:sticky;top:78px}.summary-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:16px 18px}.summary-card h2{margin-bottom:10px}.sum-row{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:10px;padding:7px 0;font-size:13.5px;display:flex}.sum-row .num-input{width:120px}.sum-net{background:var(--navy);color:#fff;border-radius:8px;justify-content:space-between;align-items:center;margin:12px 0;padding:12px 14px;display:flex}.sum-net strong{font-variant-numeric:tabular-nums;font-size:22px}.mode-toggle{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mode-btn{border:2px solid var(--line);text-align:left;cursor:pointer;font:inherit;background:#fff;border-radius:10px;flex-direction:column;gap:2px;padding:14px;display:flex}.mode-btn strong{font-size:15px}.mode-btn small{color:var(--muted)}.mode-btn.cash.active{background:#eef5fd;border-color:#2a78d6}.mode-btn.cash.active strong{color:#1f63b5}.mode-btn.credit.active{background:#fdf1ea;border-color:#eb6834}.mode-btn.credit.active strong{color:#b44a17}.quick-heads{flex-wrap:wrap;align-items:center;gap:7px;margin:10px 0 14px;display:flex}.items-table td{vertical-align:middle}.picker{position:relative}.picker input{padding:10px 12px;font-size:14.5px}.picker-list{z-index:30;background:#fff;border:1px solid #cfd7e2;border-radius:8px;max-height:320px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 30px #10203826}.picker-item{cursor:pointer;grid-template-columns:54px 1fr auto auto;align-items:center;gap:10px;padding:8px 12px;font-size:13.5px;display:grid}.picker-item.active{background:var(--primary-soft)}.pi-code{color:var(--muted);font-family:Consolas,monospace;font-size:12px}.pi-name{font-weight:600}.pi-group{color:var(--muted);font-size:12px}.pi-rate{color:var(--text-2);text-align:right;min-width:80px;font-size:12.5px}.picker-empty{color:var(--muted);padding:12px}.switch{width:38px;height:21px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch span{cursor:pointer;background:#cdd5df;border-radius:21px;transition:all .2s;position:absolute;inset:0}.switch span:before{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:all .2s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:var(--primary)}.switch input:checked+span:before{transform:translate(17px)}.danger-zone .danger-row{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:14px;padding:10px 0;display:flex}.danger-zone .danger-row:last-child{border-bottom:none}.danger-zone p{margin:2px 0 0}.modal-backdrop{z-index:100;background:#0f1b2d73;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:12px;width:100%;box-shadow:0 20px 60px #00000040}.modal-md{max-width:580px}.modal-lg{max-width:820px}.modal-head{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-body{padding:18px}.modal-foot{border-top:1px solid var(--line-2);background:#fafbfd;border-radius:0 0 12px 12px;justify-content:flex-end;gap:10px;padding:12px 18px;display:flex}.toasts{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--navy);color:#fff;border-left:4px solid #3fbf7f;border-radius:8px;max-width:380px;padding:11px 16px;font-size:13.5px;box-shadow:0 8px 24px #0003}.toast-warning{border-left-color:#f0a500}.toast-error{border-left-color:#ff6b5e}.chart-wrap{position:relative}.chart{width:100%;height:auto;display:block}.axis-text{fill:#7a8797;font-size:11px}.chart-legend{color:var(--text-2);gap:16px;margin-bottom:6px;font-size:12.5px;display:flex}.chart-legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.chart-tip{border:1px solid var(--line);pointer-events:none;white-space:nowrap;background:#fff;border-radius:7px;padding:7px 10px;font-size:12.5px;position:absolute;top:20px;transform:translate(-50%);box-shadow:0 6px 18px #0000001f}.doc{color:#111;font-size:13px;position:relative}.doc-head{text-align:center;border-bottom:2px solid #111;margin-bottom:10px;padding-bottom:8px}.doc-hosp{letter-spacing:.02em;font-size:21px;font-weight:800}.doc-addr{color:#333;font-size:12px}.doc-title{letter-spacing:.12em;border:1px solid #111;margin-top:6px;padding:2px 12px;font-size:12.5px;font-weight:700;display:inline-block}.doc-meta{grid-template-columns:1fr 1.3fr;gap:14px;margin-bottom:10px;font-size:12.5px;line-height:1.6;display:grid}.doc-table{border-collapse:collapse;width:100%;margin-bottom:8px}.doc-table th,.doc-table td{border:1px solid #999;padding:5px 8px;font-size:12.5px}.doc-table th{text-align:left;background:#f0f0f0}.doc-table th:first-child{width:34px}.doc-table thead th.num{width:110px}.doc-table .num{text-align:right;font-variant-numeric:tabular-nums}.doc-table tr.grand td{background:#f5f5f5;font-size:14px;font-weight:800}.doc-words{margin-bottom:6px;font-size:12.5px;font-style:italic}.doc-note{margin-bottom:4px;font-size:12.5px}.doc-receipt-body{margin:12px 0;font-size:14px;line-height:1.8}.doc-sign{justify-content:space-between;margin-top:38px;font-size:12.5px;display:flex}.doc-foot{text-align:center;color:#444;border-top:1px dashed #999;margin-top:12px;padding-top:6px;font-size:12px}.doc-watermark{color:#c0352b2e;pointer-events:none;font-size:64px;font-weight:900;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)rotate(-20deg)}.login-page{grid-template-columns:1.05fr 1fr;min-height:100vh;display:grid}.login-side{background:linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 60%, #1d4f86 100%);color:#d9e4f2;flex-direction:column;justify-content:center;padding:60px 56px;display:flex}.login-brand h1{color:#fff;margin:18px 0 4px;font-size:32px}.login-brand p{color:#a9bfd9;font-size:16px}.login-points{flex-direction:column;gap:14px;margin:36px 0 0;padding:0;list-style:none;display:flex}.login-points li{padding-left:28px;font-size:15px;position:relative}.login-points li:before{content:"✓";color:#fff;background:#ffffff24;border-radius:50%;place-items:center;width:19px;height:19px;font-size:11px;display:grid;position:absolute;top:0;left:0}.login-main{justify-content:center;align-items:center;padding:30px;display:flex}.login-card{border:1px solid var(--line);width:100%;max-width:390px;box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:30px}.login-card h2{margin-bottom:4px;font-size:22px}.login-card .muted{margin-bottom:18px}.demo-creds{background:#f7f9fc;border:1px dashed #cfd7e2;border-radius:8px;margin-top:18px;padding:10px 12px;font-size:12.5px}.demo-creds table{width:100%;margin-top:4px}.demo-creds td{padding:2px 0}.demo-creds td:last-child{text-align:right;font-family:Consolas,monospace}.fatal{border:1px solid var(--line);background:#fff;border-radius:12px;max-width:560px;margin:80px auto;padding:28px}.fatal pre{white-space:pre-wrap;background:#f6f8fb;border-radius:6px;padding:10px;font-size:12px}@media (width<=1200px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bill-layout{grid-template-columns:1fr}.bill-right{position:static}}@media (width<=960px){.grid-2{grid-template-columns:1fr}.sidebar{z-index:60;transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.sidebar-backdrop{z-index:50;background:#00000059;display:block;position:fixed;inset:0}.menu-btn{display:inline-flex}.topbar-date{display:none}.login-page{grid-template-columns:1fr}.login-side{display:none}.role-cards{grid-template-columns:1fr}}@media (width<=600px){.content{padding:14px}.stat-grid,.mini-grid,.form-grid,.mode-toggle,.info-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.user-chip>div:last-child{display:none}.report-actions{margin-left:0}}@media print{@page{size:A4;margin:10mm}body{background:#fff;font-size:11.5px}.no-print,.sidebar,.topbar,.demo-banner,.toasts,.filters,.tabs,.page-header{display:none!important}.print-only{display:block!important}.app-shell,.main{display:block}.content{max-width:none;padding:0}.card,.stat-card,.summary-strip{box-shadow:none;break-inside:avoid;border-color:#bbb}.card-body{padding:8px 10px}.card-head{padding:6px 10px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:8px}.stat-value{font-size:16px}.grid-2{grid-template-columns:1fr 1fr;gap:10px}.table-wrap{overflow:visible}.table{font-size:10.5px}.table th,.table td{padding:4px 5px}.report-table th.num{min-width:0}.badge{border:1px solid #999;padding:0 5px;color:#000!important;background:0 0!important}.print-header{text-align:center;border-bottom:2px solid #000;margin-bottom:10px;padding-bottom:6px}.ph-name{font-size:18px;font-weight:800}.ph-addr{font-size:11px}.ph-title{text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:14px;font-weight:700}.ph-period{font-size:11.5px}.ph-meta{color:#555;font-size:10px}.print-sign{justify-content:space-between;margin-top:40px;font-size:11.5px;display:flex!important}.print-sign div{text-align:center;border-top:1px solid #000;min-width:150px;padding-top:4px}a{color:#000}body.print-modal #root,body.print-modal .app-shell{display:none!important}body.print-modal .modal-backdrop{background:0 0;padding:0;display:block;position:static;overflow:visible}body.print-modal .modal-backdrop:not(.modal-printable){display:none!important}body.print-modal .modal{box-shadow:none;border-radius:0;max-width:none}body.print-modal .modal-body{padding:0}body:not(.print-modal) .modal-backdrop{display:none!important}}.col-chips{flex-wrap:wrap;gap:10px;display:flex}.col-chip{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:stretch;display:flex;overflow:hidden}.col-chip.active{border-color:var(--primary);box-shadow:0 0 0 2px #0f5ea826}.col-chip.fixed{background:#f7f9fc}.col-chip-main{font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 11px;display:flex}.col-chip.fixed .col-chip-main{cursor:default}.col-chip-main b{font-size:13.5px}.col-chip-main small{color:var(--muted);font-size:11px}.col-chip-tools{border-left:1px solid var(--line-2);align-items:center;padding:0 2px;display:flex}.col-chip-tools .icon-btn{padding:4px 6px;font-size:13px}.col-chip-tools .icon-btn:disabled{opacity:.3;cursor:default}.col-select{min-width:150px;padding:5px 8px;font-size:13px}.abstract-table th.num{min-width:70px}.abstract-table td,.abstract-table th{padding-left:7px;padding-right:7px}@media print{.abstract-table{font-size:9.5px}.abstract-table th,.abstract-table td{padding:3px 4px}.abstract-table td.mono{font-size:9.5px}}:root{--font:"Inter Variable", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;--navy:#0d2747;--navy-2:#133a68;--primary:#1565c0;--primary-dark:#0d4f9e;--primary-soft:#e9f2fd;--accent:#14b8a6;--bg:#f2f5fa;--line:#e3e8f0;--line-2:#eef2f7;--radius:14px;--shadow:0 1px 2px #0f23460d, 0 4px 16px #0f23460d;--shadow-lg:0 10px 30px #0f23461f}body{letter-spacing:-.003em;background:var(--bg);font-size:14px}h1{letter-spacing:-.02em;font-size:24px;font-weight:700}h2{font-size:15px;font-weight:650}.sidebar{background:linear-gradient(#0d2747 0%,#0b2140 55%,#0a1c36 100%);box-shadow:2px 0 12px #00000014}.brand{padding:20px 18px 18px}.brand-logo{border-radius:11px;box-shadow:0 4px 12px #0003}.nav-link{border-radius:9px;padding:9px 12px;transition:background .15s,color .15s;position:relative}.nav-link .icon{opacity:.75}.nav-link:hover .icon{opacity:1}.nav-link.active{color:#fff;background:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff0f}.nav-link.active:before{content:"";background:linear-gradient(180deg, #4fc3f7, var(--accent));border-radius:0 4px 4px 0;width:4px;position:absolute;top:8px;bottom:8px;left:-10px}.nav-link.active .icon{color:#7dd3fc;opacity:1}.topbar{-webkit-backdrop-filter:saturate(160%)blur(8px);backdrop-filter:saturate(160%)blur(8px);height:62px;box-shadow:0 1px 0 var(--line);background:#ffffffeb;border-bottom:none}.avatar{color:#fff;background:linear-gradient(135deg,#1565c0,#14b8a6)}.shift-pill.any{color:#0f766e;background:#e6f6f4}.card{border-radius:var(--radius);border-color:var(--line);box-shadow:var(--shadow)}.card-head{padding:14px 18px}.stat-card{border-radius:var(--radius);border:1px solid var(--line);border-top:none;padding:16px 18px;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.stat-card:after{content:"";opacity:.06;background:currentColor;border-radius:50%;width:110px;height:110px;position:absolute;top:-30px;right:-30px}.stat-icon{color:#fff;border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.stat-value{letter-spacing:-.02em;font-size:24px}.tone-navy{color:#0d2747}.tone-navy .stat-icon{background:linear-gradient(135deg,#133a68,#0d2747)}.tone-blue{color:#1e6fd9}.tone-blue .stat-icon{background:linear-gradient(135deg,#3b8ff0,#1e6fd9)}.tone-orange{color:#e2621f}.tone-orange .stat-icon{background:linear-gradient(135deg,#f59145,#e2621f)}.tone-teal{color:#0f9488}.tone-teal .stat-icon{background:linear-gradient(135deg,#2dd4bf,#0f9488)}.tone-green{color:#15803d}.tone-green .stat-icon{background:linear-gradient(135deg,#34c672,#15803d)}.tone-red{color:#c0352b}.tone-red .stat-icon{background:linear-gradient(135deg,#f26b5e,#c0352b)}.stat-card .stat-label,.stat-card .stat-sub{color:var(--text-2)}.stat-card .stat-value{color:var(--text)}.mini{border-radius:12px}.btn{border-radius:9px;transition:background .15s,box-shadow .15s,transform 50ms}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:linear-gradient(#1a73d4,#1460b8);box-shadow:0 2px 6px #1565c04d}.btn-primary:hover:not(:disabled){background:linear-gradient(#1667c2,#0f53a3)}.btn-light{box-shadow:0 1px 2px #0f23460d}.table th{text-transform:uppercase;letter-spacing:.04em;color:#5d6b7d;background:#f7f9fc;font-size:11px}.table tbody tr:hover td{background:#f8fbff}.th-sub{text-transform:none;letter-spacing:0;color:var(--muted);font-size:11px;font-weight:500}.cell-sub{color:var(--muted);font-size:11px}.heads-cell{color:var(--text-2);min-width:220px;font-size:12.5px}.filters,.summary-strip{border-radius:var(--radius);box-shadow:var(--shadow)}.list-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:13px;display:flex}.hero{color:#fff;box-shadow:var(--shadow-lg);background:radial-gradient(1200px 300px at 0 0,#14b8a659,#0000 60%),linear-gradient(120deg,#0d2747 0%,#1565c0 70%,#1e88e5 100%);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;padding:24px 26px;display:flex}.hero h1{color:#fff;margin:4px 0;font-size:26px}.hero p{color:#cfe2f7;margin:0}.hero-kicker{text-transform:uppercase;letter-spacing:.08em;color:#9fd3ff;font-size:12px;font-weight:600}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.btn-hero{color:var(--primary-dark);background:#fff;box-shadow:0 4px 14px #00000026}.btn-hero:hover{background:#f0f6ff}.btn-hero-light{color:#fff;background:#ffffff24;border-color:#ffffff40}.btn-hero-light:hover{background:#ffffff38}.hero-side{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.hero-date>span{color:#cfe2f7}.hero-date input{background:#fffffff2;border-color:#0000}.mine-card{border:1px solid #cfe8e4;border-left:5px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:18px;padding:14px 18px;display:flex}.mine-icon{color:#0f766e;background:#e6f6f4;border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.mine-main{flex:1;min-width:180px}.mine-title{font-size:15px;font-weight:700}.mine-sub{color:var(--muted);font-size:12.5px}.mine-num{flex-direction:column;align-items:flex-end;display:flex}.mine-num b{font-size:20px}.mine-num span{color:var(--muted);font-size:12px}.login-side{background:radial-gradient(900px 400px at 0 0,#14b8a659,#0000 60%),linear-gradient(150deg,#0d2747 0%,#133a68 55%,#1565c0 100%)}.login-card{box-shadow:var(--shadow-lg);border:none;border-radius:18px}.assigned-shift{border-radius:9px;padding:10px 12px;font-weight:600}.assigned-shift small{color:var(--text-2);font-weight:400}.assigned-shift.morning{color:#8a5a00;background:#fff4d6}.assigned-shift.evening{color:#4a3fb5;background:#e7e6fb}.visit-count{text-align:center;background:#eef2f7;border-radius:20px;min-width:26px;padding:2px 8px;font-weight:700;display:inline-block}.visit-count.repeat{color:#0f766e;background:#e6f6f4}.chg{margin-left:2px;font-size:10px;font-weight:700}.chg.up{color:var(--red)}.chg.down{color:var(--green)}.chg.new{color:var(--primary);background:var(--primary-soft);border-radius:6px;padding:0 5px}.pct{white-space:nowrap;font-size:12.5px;font-weight:700}.pct.up{color:var(--green)}.pct.down{color:var(--red)}.compare-table .sticky-col{z-index:1;min-width:170px;box-shadow:1px 0 0 var(--line-2);background:#fff;position:sticky;left:0}.compare-table thead .sticky-col,.compare-table tfoot .sticky-col{background:#f7f9fc}.compare-table tr.grand .sticky-col{background:var(--primary-soft)}.rate-note{color:var(--teal);white-space:nowrap;margin-top:3px;font-size:11px;display:block}.period-pair{flex-wrap:wrap;align-items:stretch;gap:12px;margin-bottom:16px;display:flex}.period-box{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex:280px;padding:12px 14px}.period-box.a{border-top:4px solid #94a3b8}.period-box.b{border-top:4px solid var(--primary)}.period-dates{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.period-dates input{flex:140px;width:auto}.period-vs{color:var(--muted);align-self:center;font-weight:800}.compare-bars{flex-direction:column;gap:10px;display:flex}.cb-legend{color:var(--text-2);flex-wrap:wrap;gap:16px;font-size:12.5px;display:flex}.cb-legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}.cb-legend i.a,.cb-bar.a{background:#94a3b8}.cb-legend i.b,.cb-bar.b{background:#1e6fd9}.cb-row{grid-template-columns:110px minmax(0,1fr) 76px;align-items:center;gap:10px;display:grid}.cb-label{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.cb-bars{flex-direction:column;gap:3px;display:flex}.cb-bar{border-radius:0 4px 4px 0;min-width:2px;height:8px}.cb-val{text-align:right}.share-cards{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-bottom:18px;display:grid}.share-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:14px 16px}.share-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.share-val{margin:4px 0 8px;font-size:19px;font-weight:700}.share-bar{background:#eef2f7;border-radius:6px;height:6px;overflow:hidden}.share-bar span{background:linear-gradient(90deg,#1565c0,#14b8a6);border-radius:6px;height:100%;display:block}.share-sub{color:var(--muted);margin-top:6px;font-size:12px}.tabs{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.tab{white-space:nowrap;flex-shrink:0}@media (width<=1024px){.content{padding:18px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.content{padding:12px}h1{font-size:20px}.hero{border-radius:14px;padding:18px}.hero h1{font-size:21px}.topbar{gap:8px;padding:0 12px}.topbar-user{gap:8px}.topbar .shift-pill{padding:4px 8px;font-size:11px}.demo-banner{padding:8px 12px;font-size:12px}.page-header{margin-bottom:12px}.page-actions{width:100%}.filters{gap:10px;padding:10px}.filters .inline-field{flex:calc(50% - 10px);min-width:0}.filters .inline-field.grow{flex-basis:100%}.inline-field input,.inline-field select{width:100%;min-width:0}.report-actions{width:100%;margin-left:0}.report-actions .btn{flex:1}.card-head{flex-wrap:wrap;padding:12px 14px}.card-body{padding:12px 14px}.modal-backdrop{padding:12px 8px}.modal-body{padding:14px}.modal-foot{flex-wrap:wrap}.doc-meta{grid-template-columns:1fr;gap:4px}.mine-num{align-items:flex-start}.cb-row{grid-template-columns:84px minmax(0,1fr) 64px}.col-select{width:100%;min-width:0}.picker-item{grid-template-columns:1fr auto}.picker-item .pi-code,.picker-item .pi-group{display:none}.seg{flex-wrap:wrap}.danger-zone .danger-row{flex-direction:column;align-items:stretch}.table.stack thead{display:none}.table.stack,.table.stack tbody,.table.stack tfoot,.table.stack tr,.table.stack td{width:100%;display:block}.table.stack tr{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:10px;padding:6px 12px;box-shadow:0 1px 3px #0f23460d}.table.stack tbody tr:hover td{background:0 0}.table.stack td{text-align:right;white-space:normal;border:none;border-bottom:1px dashed var(--line-2);padding:6px 0;display:flow-root}.table.stack tr td:last-child{border-bottom:none}.table.stack td:before{content:attr(data-label);float:left;text-align:left;text-transform:uppercase;letter-spacing:.03em;width:40%;color:var(--muted);padding-right:8px;font-size:11px;font-weight:700;line-height:1.35}.table.stack td[data-label=""]{text-align:left;padding-left:0}.table.stack td[data-label=""]:before,.table.stack td:empty{display:none}.table.stack tfoot tr{background:var(--primary-soft)}.table.stack tfoot td{background:0 0!important}.table.stack .num-input{width:100%}.table.stack .heads-cell{min-width:0}.items-table td:first-child{display:none}}@media (width<=480px){.stat-grid{grid-template-columns:1fr}.filters .inline-field{flex-basis:100%}.user-chip{display:none}.topbar .btn-sm{padding:5px 8px}.hero-actions .btn{flex:calc(50% - 10px)}.mode-toggle{grid-template-columns:1fr}}@media print{.hero,.mine-card,.share-cards{display:none!important}.stat-card:after{display:none}.table th{text-transform:none;letter-spacing:0}}@media (width<=960px){.grid-2{grid-template-columns:minmax(0,1fr)}}
