:root{color:#17211e;font-synthesis:none;--green:#086143;--green-2:#0d7450;--mint:#e7f4ec;--line:#dce3df;--muted:#65716d;--amber:#e47610;--danger:#b84235;background:#f5f7f6;font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Yu Gothic UI,Yu Gothic,Meiryo,Noto Sans Khmer,Leelawadee UI,sans-serif}*{box-sizing:border-box}body{background:#f5f7f6;min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{color:#fff;z-index:30;background:linear-gradient(#075c42 0%,#064f3b 100%);flex-direction:column;width:176px;padding:20px 12px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:10px;height:48px;padding:0 10px;font-size:19px;font-weight:700;display:flex}.brand-mark{border:2px solid #fff;border-radius:7px;place-items:center;width:36px;height:36px;display:grid}.sidebar nav{gap:8px;margin-top:28px;display:grid}.sidebar nav button{color:#fff;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:13px;padding:13px 14px;font-weight:600;display:flex}.sidebar nav button:hover,.sidebar nav button.active{background:#ffffff29}.sidebar-user{border-top:1px solid #fff3;align-items:center;gap:10px;margin-top:auto;padding:18px 10px 0;font-size:14px;display:flex}.sidebar-user small{opacity:.72}.avatar{border:1px solid #fff9;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.app-shell>main{min-height:100vh;margin-left:176px}.topbar{border-bottom:1px solid var(--line);z-index:20;background:#fff;align-items:center;height:78px;padding:0 24px;display:flex;position:sticky;top:0}.month-picker{align-items:center;gap:8px;display:flex}.month-picker button{border:1px solid var(--line);color:#37433f;background:#fff;border-radius:7px;width:42px;height:42px;font-size:26px}.month-picker input{border:1px solid var(--line);color:#26312d;border-radius:7px;height:42px;padding:0 12px}.primary{background:var(--green);color:#fff;border:0;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:11px 18px;font-weight:700;display:inline-flex;box-shadow:0 2px 5px #044c3324}.primary:hover{background:var(--green-2)}.top-action{margin-left:auto}.page-wrap{max-width:1500px;margin:auto;padding:22px 24px 42px}.title-row{justify-content:space-between;align-items:flex-end;margin-bottom:16px;display:flex}.title-row h1{margin:0 0 3px;font-size:22px;line-height:1.35}.title-row p{color:var(--muted);margin:0;font-size:13px}.metrics{grid-template-columns:repeat(4,minmax(190px,1fr));gap:12px;margin-bottom:16px;display:grid}.metric{border:1px solid var(--line);background:#fff;align-items:center;gap:16px;min-height:100px;padding:20px;display:flex}.metric-icon{color:var(--green);display:grid}.metric-icon svg{width:30px;height:30px}.metric>div{flex-direction:column;gap:7px;display:flex}.metric>div>span{color:var(--muted);font-size:13px}.metric strong{letter-spacing:.02em;font-size:24px}.metric strong small{font-size:12px;font-weight:500}.metric.warning .metric-icon{color:var(--amber)}.panel{border:1px solid var(--line);background:#fff}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:52px;padding:11px 16px;display:flex}.panel-head>div{align-items:center;gap:10px;display:flex}.panel-head h2{margin:0;font-size:15px}.panel-head h2 small{color:var(--muted);font-size:12px;font-weight:500}.panel-head span{color:var(--muted);font-size:12px}.secondary{border:1px solid var(--line);color:#27332f;background:#fff;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:inline-flex}.secondary:hover{background:#f8faf9;border-color:#a9b7b1}.secondary.small{padding:6px 9px}.table-scroll{overflow:auto}table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13px}th{color:#4d5a55;text-align:left;border-bottom:1px solid var(--line);background:#fafbfa;padding:11px 13px;font-weight:600}td{border-bottom:1px solid #e8ecea;padding:11px 13px}tbody tr:hover{background:#f7faf8}.strong{font-weight:600}.mono{font-variant-numeric:tabular-nums}.status{border:0;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:700}.status.ok{color:#08704b;background:#e7f4ec}.status.warn{color:#d55b00;background:#fff0e4}.text-danger{color:var(--danger);background:0 0;border:0;padding:4px;font-size:12px}.empty{text-align:center;color:var(--muted);padding:36px}.dashboard-bottom{grid-template-columns:1.15fr 1fr;gap:14px;margin-top:14px;display:grid}.bars{padding:14px 16px}.bar-row{grid-template-columns:90px minmax(100px,1fr) 54px;align-items:center;gap:10px;margin:9px 0;font-size:11px;display:grid}.bar-row>div{background:#edf1ef;height:9px}.bar-row i{background:var(--green);height:100%;display:block}.bar-row b{text-align:right;font-variant-numeric:tabular-nums}.leave-mini>div{border-bottom:1px solid #e8ecea;grid-template-columns:1fr 80px 65px;align-items:center;padding:11px 16px;font-size:12px;display:grid}.leave-mini strong{font-variant-numeric:tabular-nums}.leave-mini .need{color:#cf5d0b}.leave-mini .done{color:var(--green)}.drawer-layer{z-index:60;position:fixed;inset:0}.drawer-backdrop{background:#0d1b1652;border:0;position:absolute;inset:0}.drawer{background:#fff;width:min(420px,100%);height:100%;position:absolute;top:0;right:0;overflow:auto;box-shadow:-10px 0 30px #1229201f}.drawer-head{border-bottom:1px solid var(--line);z-index:3;background:#fff;justify-content:space-between;align-items:center;height:70px;padding:0 20px;display:flex;position:sticky;top:0}.drawer-head h2{margin:0;font-size:19px}.icon-button{color:#26312d;background:0 0;border:0;padding:7px}.drawer form{gap:16px;padding:20px;display:grid}.drawer label,.drawer legend{font-size:13px;font-weight:600}.drawer label>b{color:#c33}.drawer input,.drawer select,.drawer textarea{background:#fff;border:1px solid #cfd8d3;border-radius:6px;width:100%;min-height:42px;margin-top:7px;padding:10px 11px}.drawer input:focus,.drawer select:focus,.drawer textarea:focus,.inline-form input:focus{border-color:var(--green);outline:3px solid #0861431f}.drawer textarea{resize:vertical;min-height:90px}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.drawer fieldset{border:0;margin:0;padding:0}.check-list{border:1px solid #cfd8d3;border-radius:6px;grid-template-columns:1fr 1fr;max-height:130px;margin-top:7px;padding:7px;display:grid;overflow:auto}.check-list label{align-items:center;gap:7px;padding:6px;font-weight:500;display:flex}.check-list input,.inline-check input{width:auto;min-height:auto;margin:0}.drawer .inline-check{align-items:center;gap:8px;display:flex}.form-warning,.form-error{border-radius:5px;margin:-7px 0 0;padding:10px;font-size:12px}.form-warning{color:#b64a00;background:#fff4e8}.form-error{color:#a82e23;background:#fbeaea}.submit{width:100%;min-height:50px;margin-top:4px}.split-panels{grid-template-columns:1.25fr 1fr;gap:16px;display:grid}.site-list>div{border-bottom:1px solid #e8ecea;grid-template-columns:1fr 65px 78px;align-items:center;gap:10px;padding:15px 16px;font-size:12px;display:grid}.site-list b{color:var(--muted)}.site-list strong{text-align:right}.notice{color:#7e470b;background:#fff6ea;border:1px solid #f0d5b6;align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px 15px;font-size:12px;display:flex}.notice p{margin:0;line-height:1.7}.notice.green{color:#145c42;background:#edf7f1;border-color:#c9e4d4}.amount{color:var(--green);font-size:15px;font-weight:700}tfoot td{background:#f5f8f6;font-weight:700}.settings-panel{margin-top:16px}.setting-grid{grid-template-columns:repeat(3,1fr);gap:16px;padding:18px;display:grid}.setting-grid label{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.setting-grid input{border:1px solid var(--line);border-radius:5px;width:75px;padding:7px}.inline-form{border-bottom:1px solid var(--line);grid-template-columns:1.4fr 90px 135px auto;gap:8px;padding:14px;display:grid}.inline-form.short{grid-template-columns:1fr auto}.inline-form input{border:1px solid #cfd8d3;border-radius:6px;min-width:0;padding:9px 10px}.master-list>div{border-bottom:1px solid #e8ecea;grid-template-columns:1fr 160px 54px;align-items:center;gap:10px;padding:12px 14px;font-size:12px;display:grid}.master-list>div>span{flex-direction:column;display:flex}.master-list small{color:var(--muted);margin-top:3px}.master-list label{align-items:center;gap:4px;display:flex}.master-list input{border:1px solid var(--line);border-radius:4px;width:85px;padding:5px}.worktype-list>div{border-bottom:1px solid #e8ecea;justify-content:space-between;align-items:center;padding:13px 16px;font-size:13px;display:flex}.mobile-tabs,.menu-button,.mobile-close,.mobile-register,.nav-backdrop{display:none}@media (width<=1100px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-bottom,.split-panels,.setting-grid{grid-template-columns:1fr}.metric{min-height:88px}.page-wrap{padding:18px}.sidebar{width:160px}.app-shell>main{margin-left:160px}}@media (width<=760px){body{padding-bottom:66px}.sidebar{width:260px;transition:transform .22s;transform:translate(-100%)}.sidebar.is-open{transform:translate(0)}.sidebar .mobile-close{color:#fff;background:0 0;border:0;display:block;position:absolute;top:12px;right:10px}.nav-backdrop{z-index:25;background:#0d1b1661;border:0;display:block;position:fixed;inset:0}.app-shell>main{margin-left:0}.topbar{gap:8px;height:64px;padding:0 12px}.menu-button{background:0 0;border:0;place-items:center;padding:8px;display:grid}.month-picker{gap:4px}.month-picker button{width:36px;height:36px}.month-picker input{width:145px;height:36px;padding:0 6px}.top-action{display:none}.page-wrap{padding:16px 12px 28px}.title-row h1{font-size:19px}.mobile-register{display:flex}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metric{gap:10px;min-height:82px;padding:13px}.metric-icon svg{width:23px;height:23px}.metric strong{font-size:18px}.dashboard-bottom{grid-template-columns:1fr}.drawer{width:100%}.mobile-tabs{z-index:24;border-top:1px solid var(--line);background:#fff;grid-template-columns:repeat(4,1fr);height:64px;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-tabs button{color:#68736f;background:#fff;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10px;display:flex}.mobile-tabs button.active{color:var(--green);font-weight:700}.inline-form{grid-template-columns:1fr 90px}.inline-form input[type=date]{grid-column:1/2}.master-list>div{grid-template-columns:1fr 130px}.master-list>div>.status{grid-column:2}.check-list{grid-template-columns:1fr}.form-grid{gap:8px}.panel-head{padding:10px 12px}}@media (width<=420px){.metrics{grid-template-columns:1fr}.metric{min-height:76px}.month-picker button{display:none}.month-picker input{width:138px}.bar-row{grid-template-columns:72px 1fr 48px}.setting-grid{padding:14px}.site-list>div{grid-template-columns:1fr auto}.site-list strong{text-align:left;grid-column:1/3}.inline-form,.inline-form.short,.master-list>div{grid-template-columns:1fr}.master-list>div>.status{grid-column:auto;width:max-content}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.split-panels>*{min-width:0}.split-panels .table-scroll{max-width:100%;overflow-x:auto}.field-hint{color:var(--muted);margin-top:5px;font-size:10px;font-weight:500;display:block}.worker-panel{margin-bottom:20px}.worker-add-form{grid-template-columns:1.4fr repeat(7,minmax(100px,1fr)) auto;align-items:end;gap:10px;padding:16px;display:grid}.worker-add-form label,.worker-fields label{color:var(--muted);font-size:11px;font-weight:600}.worker-add-form input,.worker-add-form select,.worker-fields input,.worker-fields select{color:#17211e;background:#fff;border:1px solid #cfd8d3;border-radius:6px;width:100%;height:40px;margin-top:6px;padding:7px 9px}.worker-add-form .primary{white-space:nowrap;height:40px}.section-heading{align-items:center;gap:10px;margin:2px 0 10px;display:flex}.section-heading h2{margin:0;font-size:16px}.section-heading span{color:var(--muted);font-size:12px}.worker-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.worker-settings>.section-heading{grid-column:1/-1}.worker-card{border:1px solid var(--line);background:#fff}.worker-card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:13px 15px;display:flex}.worker-card-head>div{flex-direction:column;gap:3px;display:flex}.worker-card-head small{color:var(--muted);font-size:10px}.worker-fields{grid-template-columns:repeat(3,1fr);gap:12px;padding:14px;display:grid}.worktype-panel{max-width:720px}@media (width<=1100px){.worker-add-form{grid-template-columns:repeat(4,1fr)}.worker-add-form .primary{grid-column:4}.worker-fields{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){body{padding-bottom:72px}.topbar{gap:6px;height:60px;padding:0 10px}.page-wrap{padding:14px 10px 28px}.mobile-register{min-height:42px}.metrics{grid-template-columns:1fr 1fr}.metric{gap:9px;min-height:86px;padding:12px}.metric-icon svg{width:22px;height:22px}.drawer-head{height:60px}.drawer form{padding:16px 14px 96px}.drawer input,.drawer select{min-height:48px;font-size:16px}.drawer .submit{z-index:2;position:sticky;bottom:8px;box-shadow:0 6px 18px #044c334d}.mobile-tabs{height:68px;padding-bottom:max(2px,env(safe-area-inset-bottom));grid-template-columns:repeat(5,1fr)}.mobile-tabs button{gap:2px;font-size:9px}.attendance-scroll{overflow:visible}.attendance-table,.attendance-table tbody{display:block}.attendance-table thead{display:none}.attendance-table tbody{background:#f5f7f6;gap:10px;display:grid}.attendance-table tbody tr{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:1fr 1fr;padding:12px;display:grid;position:relative;box-shadow:0 2px 8px #1d392f0d}.attendance-table tbody td{white-space:normal;border:0;flex-direction:column;gap:3px;padding:6px 5px;font-size:13px;display:flex}.attendance-table tbody td:before{content:attr(data-label);color:var(--muted);font-size:9px;font-weight:600}.attendance-table tbody td:nth-child(3),.attendance-table tbody td:nth-child(6){grid-column:1/-1}.attendance-table .row-actions{width:auto;padding:0;position:absolute;top:5px;right:7px}.attendance-table .row-actions:before{display:none}.attendance-table .empty{text-align:center;display:block}.worker-add-form{grid-template-columns:1fr 1fr;padding:14px}.worker-add-form label:first-child{grid-column:1/-1}.worker-add-form .primary{grid-column:1/-1;min-height:46px}.worker-settings{grid-template-columns:1fr}.worker-fields{grid-template-columns:1fr 1fr}.worktype-panel{max-width:none}}@media (width<=420px){.metrics{grid-template-columns:1fr 1fr}.metric{min-height:80px}.worker-fields{grid-template-columns:1fr 1fr;gap:9px}.worker-card-head{padding:12px}.attendance-table tbody td:nth-child(4),.attendance-table tbody td:nth-child(6){grid-column:1/-1}}.sub-tabs{border-bottom:1px solid var(--line);gap:6px;margin:-2px 0 16px;display:flex}.sub-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:600;display:inline-flex}.sub-tabs button.active{border-color:var(--green);color:var(--green);background:#fff}.payroll-condition-panel{margin-bottom:14px}.payroll-condition-panel .panel-head{align-items:flex-start}.salary-condition-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:10px}.salary-condition-grid label{color:#33413c;flex-direction:column;align-items:stretch;font-weight:600;display:flex}.salary-condition-grid input,.salary-condition-grid select{color:#17211e;background:#fff;border:1px solid #cfd8d3;border-radius:6px;width:100%;height:40px;margin-top:7px;padding:7px 9px}.salary-condition-grid small{color:var(--muted);margin-top:4px;font-size:10px;font-weight:500}.weekday-settings{border:0;border-top:1px solid var(--line);margin:0;padding:14px 18px 16px}.weekday-settings legend{color:#33413c;padding:0 6px 0 0;font-size:12px;font-weight:700}.weekday-checks{flex-wrap:wrap;gap:8px;margin:2px 0 7px;display:flex}.weekday-checks label{border:1px solid var(--line);color:#33413c;background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:4px;min-width:42px;height:36px;font-size:12px;display:flex}.weekday-checks label:has(input:checked){background:var(--mint);color:var(--green);border-color:#a9d5bc;font-weight:700}.weekday-checks input{accent-color:var(--green)}.payroll-calendar{gap:14px;display:grid}.calendar-legend{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.calendar-tag{white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;padding:4px 7px;font-size:10px;font-weight:700;display:inline-flex}.calendar-tag.workday{color:#08704b;background:#e7f4ec}.calendar-tag.scheduled{color:#53615b;background:#eef1f0}.calendar-tag.legal{color:#bd5a0b;background:#fff0e4}.calendar-tag.leave{color:#365ca8;background:#e9f0ff}.calendar-tag.empty{color:#88928d;background:#f5f6f6}.calendar-layout{grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr);align-items:start;gap:14px;display:grid}.calendar-grid{border:1px solid var(--line);background:#fff}.calendar-weekdays,.calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{border-bottom:1px solid var(--line);background:#fafbfa}.calendar-weekdays span{text-align:center;color:var(--muted);padding:10px 6px;font-size:11px;font-weight:700}.calendar-weekdays span:first-child{color:#c15145}.calendar-weekdays span:last-child{color:#4776ac}.calendar-days{gap:5px;padding:6px}.calendar-day{text-align:left;color:#29352f;background:#fff;border:1px solid #e3e8e5;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;min-height:74px;padding:7px;display:flex}.calendar-day:hover,.calendar-day.selected{border-color:var(--green);box-shadow:0 0 0 2px #0861431a}.calendar-blank{pointer-events:none;background:0 0;border-color:#0000}.calendar-day strong{font-size:14px}.calendar-day span{font-size:10px;font-weight:700}.calendar-day small{color:var(--muted);font-size:9px}.calendar-day.scheduled{background:#f4f6f5}.calendar-day.legal{background:#fff6ed;border-color:#efd4b7}.calendar-day.leave{background:#f1f5ff;border-color:#cddaf6}.calendar-day.empty{color:#7f8b85;background:#fbfcfb}.calendar-detail{min-height:250px}.calendar-detail .panel-head{align-items:flex-start}.calendar-detail .panel-head>div{display:block}.calendar-detail h2{margin-bottom:3px;font-size:17px}.calendar-detail-stats{grid-template-columns:repeat(3,1fr);gap:8px;padding:16px;display:grid}.calendar-detail-stats>div{border:1px solid var(--line);background:#f6f8f7;flex-direction:column;gap:5px;padding:10px 8px;display:flex}.calendar-detail-stats span{color:var(--muted);font-size:10px}.calendar-detail-stats strong{font-size:17px}.calendar-help{color:var(--muted);margin:0 0 14px;padding:0 16px;font-size:11px;line-height:1.7}.calendar-toggle{justify-content:center;width:calc(100% - 32px);margin:0 16px 16px}.leave-entry-panel{margin-bottom:14px}.leave-entry-form{grid-template-columns:1fr 1fr 1fr 1.4fr auto;align-items:end;gap:10px;padding:16px;display:grid}.leave-entry-form label{color:var(--muted);font-size:11px;font-weight:600}.leave-entry-form input,.leave-entry-form select{color:#17211e;background:#fff;border:1px solid #cfd8d3;border-radius:6px;width:100%;height:40px;margin-top:6px;padding:7px 9px}.leave-entry-form .primary{white-space:nowrap;height:40px}.leave-history-panel{margin-top:14px}.leave-history>div{border-bottom:1px solid #e8ecea;grid-template-columns:1.2fr 1fr 70px 1.5fr;align-items:center;gap:10px;padding:11px 16px;font-size:12px;display:grid}.leave-history span,.leave-history small{color:var(--muted)}@media (width<=1100px){.calendar-layout{grid-template-columns:1fr}.leave-entry-form{grid-template-columns:repeat(3,1fr)}.leave-entry-form .primary{grid-column:3}}@media (width<=760px){.sub-tabs{margin-top:0;overflow:auto}.sub-tabs button{white-space:nowrap;padding:9px 10px}.salary-condition-grid{grid-template-columns:1fr 1fr}.salary-condition-grid label:last-child{grid-column:1/-1}.weekday-settings{padding:13px 12px}.calendar-days{gap:3px;padding:4px}.calendar-day{gap:3px;min-height:67px;padding:5px}.calendar-day span{font-size:9px}.calendar-day small{font-size:8px}.calendar-detail{min-height:0}.leave-entry-form{grid-template-columns:1fr 1fr;padding:14px}.leave-entry-form label:nth-child(4){grid-column:1/-1}.leave-entry-form .primary{grid-column:1/-1;height:48px}.leave-history>div{grid-template-columns:1fr 1fr 60px}.leave-history small{grid-column:1/-1}.calendar-detail-stats{padding:12px}}@media (width<=420px){.salary-condition-grid{grid-template-columns:1fr}.salary-condition-grid label:last-child{grid-column:auto}.calendar-day{min-height:58px}.calendar-day span{font-size:8px}.calendar-day small{display:none}.weekday-checks{gap:4px}.weekday-checks label{min-width:38px}.leave-entry-form{grid-template-columns:1fr}.leave-entry-form label:nth-child(4),.leave-entry-form .primary{grid-column:auto}}.legal-holiday-fixed{color:#9c4f0e;background:#fff5ed;border:1px solid #efd2b1;border-radius:6px;align-items:center;gap:9px;margin:0 18px 12px;padding:10px 12px;display:flex}.legal-holiday-fixed svg{flex:none}.legal-holiday-fixed div{flex-direction:column;gap:2px;display:flex}.legal-holiday-fixed strong{font-size:12px}.legal-holiday-fixed small{color:#9a6a3d;font-size:10px}.weekday-settings-subtitle{color:#33413c;margin:0 18px 8px;font-size:11px;font-weight:700}.leave-policy-panel{margin-bottom:14px}.leave-policy-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:12px}.leave-policy-grid label{color:#33413c;justify-content:space-between;align-items:center;font-weight:600;display:flex}.leave-policy-grid input{border:1px solid var(--line);border-radius:5px;width:76px;padding:7px}.leave-policy-note{color:var(--muted);border-top:1px solid var(--line);margin:0;padding:12px 18px 14px;font-size:11px;line-height:1.7}.table-input{border:1px solid var(--line);background:#fff;border-radius:4px;min-width:125px;padding:5px 6px;font-size:11px}.table-input.number{width:62px;min-width:62px}.table-input.rate{width:66px;min-width:66px}@media (width<=1100px){.leave-policy-grid{grid-template-columns:1fr}}.mode-toggle{margin-left:auto}.worker-entry-banner{background:#e7f4ec;border:1px solid #c9e4d4;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:12px 15px;display:flex}.worker-entry-banner>div{flex-direction:column;gap:3px;display:flex}.worker-entry-banner strong{color:var(--green);font-size:14px}.worker-entry-banner span{color:#4f6b5e;font-size:11px}.worker-entry-badge{background:#fff;border:1px solid #f0d5b6;border-radius:4px;padding:5px 8px;font-weight:700;color:#bd5a0b!important;font-size:10px!important}.worker-entry-panel{max-width:760px}.worker-entry-form{gap:14px;padding:18px;display:grid}.worker-entry-form label{color:#33413c;font-size:12px;font-weight:600}.worker-entry-form input,.worker-entry-form select,.worker-entry-form textarea{background:#fff;border:1px solid #cfd8d3;border-radius:6px;width:100%;min-height:44px;margin-top:6px;padding:10px 11px}.worker-entry-form textarea{resize:vertical;min-height:76px}.worker-entry-form input:focus,.worker-entry-form select:focus,.worker-entry-form textarea:focus{border-color:var(--green);outline:3px solid #0861431f}.worker-entry-submit{width:100%;min-height:50px;margin-top:2px}.form-success{color:#145c42;background:#edf7f1;border:1px solid #c9e4d4;border-radius:5px;margin:0;padding:10px;font-size:12px}.worker-history-panel{max-width:760px;margin-top:14px}.worker-history-list>div{border-bottom:1px solid #e8ecea;grid-template-columns:94px 1.4fr 1fr 55px 70px;align-items:center;gap:10px;padding:11px 16px;font-size:12px;display:grid}.worker-history-list span{color:var(--muted)}.worker-history-list b{text-align:right}.worker-history-list em{font-size:10px;font-style:normal;font-weight:700}.worker-history-list em.ok{color:var(--green)}.worker-history-list em.pending{color:#bd5a0b}@media (width<=760px){.mode-toggle{margin-left:auto;padding:7px 9px;font-size:11px}.worker-entry-banner{align-items:flex-start;padding:11px 12px}.worker-entry-panel,.worker-history-panel{max-width:none}.worker-entry-form{padding:14px}.worker-entry-form input,.worker-entry-form select,.worker-entry-form textarea{min-height:48px;font-size:16px}.worker-history-list>div{grid-template-columns:78px 1fr 55px;gap:6px;padding:11px 12px}.worker-history-list span:nth-child(3){grid-column:2}.worker-history-list em{text-align:right;grid-area:1/3/3}.worker-history-list b{text-align:left;grid-column:1}}.status.danger{color:#a42f27;background:#fbe5e3}.agreement-panel .field-hint{color:var(--muted);padding:0 18px 16px;font-size:11px;line-height:1.7;display:block}.agreement-panel .setting-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-table th,.attendance-table td{min-width:88px}.attendance-table th:first-child,.attendance-table td:first-child{min-width:96px}.payroll-period-help{color:var(--muted);margin:0;padding:0 18px 14px;font-size:12px;line-height:1.7}.payroll-period-help strong{color:var(--green)}@media (width<=760px){.agreement-panel .setting-grid{grid-template-columns:1fr}}.payroll-adjustments-panel{margin-bottom:14px}.adjustment-form{grid-template-columns:1.15fr .75fr 1.15fr .8fr 1.4fr auto;align-items:end;gap:10px;padding:16px;display:grid}.adjustment-form label{color:#33413c;font-size:11px;font-weight:600}.adjustment-form input,.adjustment-form select{color:#17211e;background:#fff;border:1px solid #cfd8d3;border-radius:6px;width:100%;height:40px;margin-top:6px;padding:7px 9px}.adjustment-form .primary{white-space:nowrap;height:40px}.adjustment-totals{grid-template-columns:repeat(3,1fr);gap:8px;padding:0 16px 14px;display:grid}.adjustment-totals>div{border:1px solid var(--line);background:#f6f8f7;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.adjustment-totals span{color:var(--muted);font-size:11px}.adjustment-totals strong{color:var(--green);font-size:17px}.payroll-reference-box{border-top:1px solid var(--line);gap:6px;padding:13px 16px 15px;display:grid}.payroll-reference-box strong{color:#33413c;font-size:12px}.payroll-reference-box>span{color:var(--muted);font-size:11px;line-height:1.7}.reference-links{flex-wrap:wrap;gap:8px;display:flex}.reference-links a{color:var(--green);background:#edf7f1;border:1px solid #c9e4d4;border-radius:4px;padding:5px 8px;font-size:11px;font-weight:600;text-decoration:none}.reference-links a:hover{background:#dcefe4}@media (width<=1100px){.adjustment-form{grid-template-columns:repeat(3,1fr)}.adjustment-form .primary{grid-column:3}}@media (width<=760px){.adjustment-form{grid-template-columns:1fr 1fr;padding:14px}.adjustment-form label:nth-child(3),.adjustment-form label:nth-child(5){grid-column:1/-1}.adjustment-form .primary{grid-column:1/-1;height:48px}.adjustment-totals{grid-template-columns:1fr;padding:0 14px 14px}.adjustment-totals>div{padding:9px 10px}.payroll-reference-box{padding:12px}.reference-links{grid-template-columns:1fr 1fr;display:grid}}@media (width<=420px){.adjustment-form{grid-template-columns:1fr}.adjustment-form label:nth-child(3),.adjustment-form label:nth-child(5),.adjustment-form .primary{grid-column:auto}.reference-links{grid-template-columns:1fr}}.company-switch{align-items:center;display:flex;position:relative}.company-button{border:1px solid var(--line);color:#27332f;background:#fff;border-radius:7px;align-items:center;gap:7px;max-width:230px;padding:9px 12px;font-size:13px;font-weight:700;display:inline-flex}.company-button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.company-button:hover{background:#f8faf9;border-color:#a9b7b1}.company-menu-backdrop{z-index:40;background:0 0;border:0;position:fixed;inset:0}.company-menu{z-index:41;border:1px solid var(--line);background:#fff;border-radius:9px;flex-direction:column;gap:2px;width:min(280px,80vw);padding:8px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 14px 40px #12292029}.company-menu-title{color:var(--muted);margin:4px 8px 6px;font-size:11px;font-weight:700}.company-menu>[role=option]{text-align:left;color:#27332f;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:10px;font-size:13px;font-weight:600;display:flex}.company-menu>[role=option]:hover{background:#f2f6f4}.company-menu>[role=option].active{background:var(--mint);color:var(--green)}.company-menu-actions{border-top:1px solid var(--line);flex-direction:column;gap:2px;margin-top:6px;padding-top:6px;display:flex}.company-menu-actions button{text-align:left;color:#33413c;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:9px 10px;font-size:12px;font-weight:600;display:flex}.company-menu-actions button:hover{background:#f2f6f4}.company-menu-actions button.danger{color:var(--danger)}.linklike{color:var(--green);font-weight:700;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.empty-workers{margin-top:8px}.empty-workers-inner{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:44px 22px;display:flex}.empty-workers-inner svg{color:var(--green)}.empty-workers-inner h2{color:#1f2b27;margin:0;font-size:17px}.empty-workers-inner p{margin:0;font-size:13px;line-height:1.8}.empty-workers-inner .secondary{margin-top:4px}.drawer-empty{color:var(--muted);padding:28px 20px;font-size:13px}@media (width<=760px){.company-button{max-width:150px;padding:8px 9px;font-size:12px}.company-menu{width:min(260px,86vw)}}.time-select{align-items:center;gap:4px;width:100%;margin-top:7px;display:flex}.worker-entry-form .time-select,.worker-add-form .time-select,.worker-fields .time-select{margin-top:6px}.time-select select{text-align:center;text-align-last:center;font-variant-numeric:tabular-nums;flex:1 1 0;width:auto;min-width:62px;margin-top:0;padding:7px 2px 7px 7px}.time-select-colon{color:var(--muted);flex:none;font-weight:700}.worker-add-form .time-field{grid-column:span 2}@media (width<=760px){.worker-add-form .time-field{grid-column:span 1}.time-select select{min-width:0;padding:7px 0 7px 4px}}.table-input.number,.table-input.rate{border:0;padding:0;display:inline-block}.table-input.number input,.table-input.rate input{border:1px solid var(--line);background:#fff;border-radius:4px;width:100%;padding:5px 6px;font-size:11px}.worker-delete-cell{flex-direction:column;justify-content:flex-end;display:flex}.worker-delete-cell button{background:#fdf4f3;border:1px solid #eccfcb;border-radius:6px;height:40px;margin-top:6px}.master-added{margin:0 16px 16px}.req{color:#c33}label>.time-select+small,label>input+small{display:block}.calendar-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.calendar-summary>div{border:1px solid var(--line);background:#fff;flex-direction:column;gap:5px;padding:11px 13px;display:flex}.calendar-summary span{color:var(--muted);font-size:10px}.calendar-summary strong{font-variant-numeric:tabular-nums;font-size:16px}.calendar-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.calendar-holiday-toggle,.calendar-worker-pick{color:#33413c;align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.calendar-worker-pick select{border:1px solid var(--line);background:#fff;border-radius:6px;height:34px;padding:0 8px}.calendar-holiday-toggle input{accent-color:var(--green)}.calendar-toolbar .secondary{margin-left:auto}.calendar-tag.override{color:#5b3fa8;background:#efe8fb}.calendar-day.is-override{box-shadow:inset 3px 0 #7a5cc4}.calendar-holiday-name{font-weight:700;color:#bd5a0b!important}.calendar-kind-picker{grid-template-columns:repeat(3,1fr);gap:6px;padding:0 16px 12px;display:grid}.calendar-kind-picker button{border:1px solid var(--line);color:#4d5a55;background:#fff;border-radius:6px;padding:9px 4px;font-size:11px;font-weight:700}.calendar-kind-picker button.active{background:var(--mint);color:var(--green);border-color:#a9d5bc}@media (width<=1100px){.calendar-summary{grid-template-columns:repeat(2,1fr)}}@media (width<=420px){.calendar-summary{grid-template-columns:1fr}.calendar-toolbar .secondary{margin-left:0}}.weekday-hours-field{flex-direction:column;grid-column:1/-1;gap:6px;display:flex}.weekday-hours-title{color:var(--muted);font-size:11px;font-weight:600}.weekday-hours{border:1px solid var(--line);background:#fbfcfb;border-radius:7px;padding:9px}.weekday-hours-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.weekday-hours-cell{flex-direction:column;align-items:stretch;gap:3px;min-width:0;display:flex}.weekday-hours-cell input{text-align:center;font-variant-numeric:tabular-nums;background:#fff;border:1px solid #cfd8d3;border-radius:5px;width:100%;height:34px;margin-top:0;padding:4px}.weekday-hours-label{text-align:center;color:#4d5a55;font-size:11px;font-weight:700}.weekday-hours-cell.is-sun .weekday-hours-label{color:#c15145}.weekday-hours-cell.is-sat .weekday-hours-label{color:#4776ac}.weekday-hours-cell.is-holiday input{color:#8b968f;background:#f1f3f2}.weekday-hours-cell small{text-align:center;color:var(--muted);font-size:8px;line-height:1.2}.weekday-hours-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;display:flex}.weekday-hours-foot span{color:var(--muted);font-size:11px}.weekday-hours-foot strong{color:var(--green);font-size:13px}.weekday-hours-foot select{border:1px solid var(--line);background:#fff;border-radius:6px;max-width:190px;height:32px;padding:0 8px;font-size:11px}.sync-week{text-align:left;margin-top:4px;font-size:10px}@media (width<=420px){.weekday-hours-grid{grid-template-columns:repeat(4,1fr);gap:5px}.weekday-hours-foot select{width:100%;max-width:none}}.companion-panel{margin-bottom:14px}.companion-form{border-bottom:1px solid var(--line);grid-template-columns:1.1fr 1.1fr 1.3fr auto;align-items:end;gap:10px;padding:16px;display:grid}.companion-form label{color:#33413c;font-size:11px;font-weight:600}.companion-form input{background:#fff;border:1px solid #cfd8d3;border-radius:6px;width:100%;height:40px;margin-top:6px;padding:7px 9px}.companion-form .primary{white-space:nowrap;height:40px}.companion-picker{gap:6px;margin-top:7px;display:grid}.companion-group{color:var(--muted);margin-top:3px;font-size:10px;font-weight:700}.companion-picker .check-list{max-height:none}.companion-picker .check-list label small{color:var(--muted);font-weight:500}.worker-entry-companions{border:0;margin:0;padding:0}.worker-entry-companions legend{color:#33413c;font-size:12px;font-weight:600}@media (width<=1100px){.companion-form{grid-template-columns:1fr 1fr}.companion-form .primary{grid-column:1/-1}}@media (width<=760px){.companion-form{grid-template-columns:1fr;padding:14px}.companion-form .primary{height:48px}}.restore-points{border-top:1px solid var(--line);margin-top:14px;padding-top:13px}.restore-points>strong{color:#27332f;margin-bottom:5px;font-size:12px;display:block}.restore-list{gap:6px;margin-top:8px;display:grid}.restore-list>div{border:1px solid var(--line);background:#fbfcfb;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;display:flex}.restore-list>div>div{flex-direction:column;gap:2px;min-width:0;display:flex}.restore-list span{color:#27332f;font-size:12px;font-weight:700}.restore-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.restore-list .restore-meta{color:#8b968f}.restore-list button{flex:none}.danger-zone{border-top:1px solid var(--line);margin-top:14px;padding-top:13px}.danger-zone>strong{color:var(--danger);margin-bottom:5px;font-size:12px;display:block}.danger-action{margin-top:6px;color:var(--danger)!important;background:#fdf5f4!important;border-color:#eccfcb!important}.danger-action:hover{background:#fbe9e7!important}@media (width<=760px){.restore-list>div{flex-direction:column;align-items:stretch}.restore-list button{justify-content:center;width:100%}}.data-warnings{gap:8px;margin-bottom:14px;display:grid}.data-warning{border:1px solid;border-radius:8px;align-items:flex-start;gap:11px;padding:13px 15px;display:flex}.data-warning.error{color:#9c332a;background:#fdf2f1;border-color:#eccfcb}.data-warning.warn{color:#7e470b;background:#fff6ea;border-color:#f0d5b6}.data-warning svg{flex:none;margin-top:2px}.data-warning>div{flex:1;min-width:0}.data-warning strong{margin-bottom:4px;font-size:13px;display:block}.data-warning p{color:inherit;opacity:.92;margin:0;font-size:11.5px;line-height:1.8}.data-warning .secondary{white-space:nowrap;flex:none;align-self:center}@media (width<=760px){.data-warning{flex-wrap:wrap}.data-warning .secondary{justify-content:center;width:100%;margin-top:4px}}.detail-panel .panel-head{align-items:flex-start}.detail-head-actions{align-items:center;gap:8px;display:flex}.detail-head-actions select{border:1px solid var(--line);background:#fff;border-radius:6px;height:34px;padding:0 8px;font-size:12px}.detail-table{font-size:12px}.detail-table th,.detail-table td{text-align:right;white-space:nowrap;padding:7px 9px}.detail-table th:nth-child(-n+3),.detail-table td:nth-child(-n+3),.detail-table .detail-note{text-align:left}.detail-table th{z-index:1;position:sticky;top:0}.detail-row.is-holiday{color:#7d8884;background:#fafbfa}.detail-row.is-sun td:nth-child(2){color:#c15145;font-weight:700}.detail-row.is-sat td:nth-child(2){color:#4776ac;font-weight:700}.detail-site{text-overflow:ellipsis;max-width:190px;overflow:hidden}.detail-scheduled{color:var(--muted)}.detail-note{color:#8a5a1b;font-size:11px}.detail-week td{color:#4d5a55;border-bottom:1px solid var(--line);background:#f2f6f4;padding:6px 9px;font-size:11px;font-weight:700}.detail-week td:last-child{text-align:right}.detail-table tfoot td{background:#eef4f0}.detail-help{margin:0;padding:12px 16px;line-height:1.9}@media (width<=760px){.detail-panel .panel-head{flex-direction:column;gap:8px}.detail-head-actions{width:100%}.detail-head-actions select{flex:1}}.holiday-panel{margin-bottom:14px}.holiday-body{padding:16px}.holiday-row{border-bottom:1px solid #eef1ef;flex-wrap:wrap;align-items:center;gap:16px;padding:11px 0;display:flex}.holiday-row:last-of-type{border-bottom:0}.holiday-label{flex-direction:column;gap:3px;min-width:210px;display:flex}.holiday-label strong{color:#27332f;font-size:13px}.holiday-label small{color:var(--muted);font-size:10px}.weekday-pill{border:1px solid var(--line);color:#4d5a55;background:#fff;border-radius:7px;width:40px;height:38px;font-size:12px;font-weight:700}.weekday-pill:hover:not(.disabled){border-color:#a9b7b1}.weekday-pill.legal{color:#bd5a0b;background:#fff0e4;border-color:#efd2b1}.weekday-pill.scheduled{background:var(--mint);color:var(--green);border-color:#a9d5bc}.weekday-pill.disabled{opacity:.4;cursor:not-allowed}.holiday-switch{color:#33413c;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.holiday-switch input{accent-color:var(--green);width:17px;height:17px}.holiday-panel .field-hint{margin-top:12px;font-size:11px;line-height:1.8}@media (width<=760px){.holiday-label{width:100%;min-width:0}.weekday-pill{width:36px;height:36px}}.backup-body{padding:16px}.backup-actions{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.backup-actions .primary,.backup-restore{cursor:pointer;border-radius:7px;align-items:center;gap:8px;height:44px;padding:0 16px;font-size:13px;font-weight:700;display:inline-flex}.backup-restore{border:1px solid var(--line);color:#27332f;background:#fff}.backup-restore:hover{background:#f8faf9;border-color:#a9b7b1}.backup-restore input{display:none}.backup-panel .field-hint{font-size:11px;line-height:1.8}@media (width<=760px){.backup-actions{flex-direction:column}.backup-actions .primary,.backup-restore{justify-content:center;width:100%}}.worker-shell{max-width:560px;margin:0 auto;padding:20px 16px 48px}.worker-shell header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.worker-shell h1{margin:0 0 4px;font-size:1.35rem}.worker-shell h2{margin:0 0 14px;font-size:1.05rem}.worker-card{background:var(--panel,#fff);border:1px solid var(--line,#d9dee7);border-radius:14px;margin:14px 0;padding:16px;box-shadow:0 2px 10px #14233c0f}.worker-shell label{gap:6px;margin:12px 0;font-size:.9rem;font-weight:600;display:grid}.worker-shell input,.worker-shell select,.worker-shell textarea{box-sizing:border-box;width:100%;min-height:44px;font:inherit;background:#fff;border:1px solid #bcc7d6;border-radius:9px;padding:9px 10px}.worker-shell select[multiple]{min-height:96px}.worker-shell textarea{resize:vertical;min-height:72px}.worker-shell button{color:#fff;cursor:pointer;background:#1769aa;border:0;border-radius:9px;width:100%;min-height:46px;margin-top:8px;font-size:1rem;font-weight:700}.worker-shell button.secondary{color:#334155;background:#edf2f7;width:auto;min-height:38px;padding:0 12px;font-size:.8rem}.worker-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.worker-shell .muted{color:#667085;margin:0;font-size:.88rem}.worker-mode-switch{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;display:grid}.worker-mode-switch button{color:#334155;background:#edf2f7}.worker-mode-switch button.active{color:#fff;background:#1769aa}.qr-camera{aspect-ratio:4/3;object-fit:cover;background:#111;border-radius:12px;width:100%;margin:8px 0 12px}.pin-only{max-width:420px;margin:15vh auto}.terminal-code{border:1px solid var(--line,#d9dee7);background:#f8fafc;border-radius:12px;justify-content:space-between;align-items:center;gap:20px;margin-top:16px;padding:16px;display:flex}.terminal-code code{letter-spacing:.2em;color:#1769aa;margin-top:8px;font-size:2rem;display:block}.terminal-code img{background:#fff;border-radius:8px}.table-actions{flex-wrap:wrap;gap:6px;display:flex}.table-actions button{white-space:nowrap}@media (width<=600px){.terminal-code{flex-direction:column;align-items:flex-start}.terminal-code img{width:180px;height:180px}}.worker-shell [role=status]{color:#18466b;background:#eef6ff;border-radius:8px;padding:10px 12px}.outbox-count{color:#b64a00;margin:4px 0 0;font-size:.8rem;font-weight:700}.outbox-card{background:#fffaf5;border-color:#f0d5b6}.outbox-row{border-top:1px solid #f0d5b6;grid-template-columns:100px 90px 1fr;gap:8px;padding:8px 0;font-size:.8rem;display:grid}.outbox-row small{color:#7e470b;overflow-wrap:anywhere}.worker-language-switcher{gap:6px;margin:10px 0 14px;display:flex}.worker-language-switcher button{color:#334155;background:#edf2f7;border:1px solid #d5dee8;border-radius:7px;min-height:36px;margin:0;padding:0 12px;font-size:.78rem}.worker-language-switcher button.active{color:#fff;background:#1769aa;border-color:#1769aa}.translation-review td{vertical-align:top;white-space:normal;min-width:160px}.translation-review td:first-child{min-width:220px;font-family:ui-monospace,monospace}.translation-unreviewed{color:#9c4f0e;background:#fff0e4;border:1px solid #efd2b1;border-radius:4px;padding:3px 6px;font-size:11px;font-weight:700}
