:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Segoe UI,Tahoma,Arial,Noto Sans,Helvetica Neue,sans-serif}.review-dialog{width:min(1680px,100vw - 28px);max-height:calc(100dvh - 28px)}.dialog-title-line h3{text-overflow:ellipsis;white-space:nowrap;max-width:68vw;margin:0;overflow:hidden}.scan-frame{height:calc(100dvh - 156px);min-height:460px}.compact-project-grid label{gap:3px;font-size:11px}.compact-payroll-table th{text-align:center;white-space:nowrap;font-size:11px}.compact-payroll-table th:nth-child(2){z-index:4;background:#e6f1f4}.reject-note,.reject-editor{color:#7f1d1d;background:#fff7f7;border:1px solid #fecaca;border-radius:10px;gap:8px;margin:8px 0;padding:10px;display:grid}.reject-note strong,.reject-editor label{color:#7f1d1d;font-size:12px;font-weight:900}.reject-note span{color:#991b1b;font-size:13px;line-height:1.45}.reject-editor textarea{resize:vertical;color:#172033;width:100%;min-height:76px;font:inherit;background:#fff;border:1px solid #fca5a5;border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.45}.reject-editor div{flex-wrap:wrap;gap:8px;display:flex}.rejected-inline-status{color:#be123c;white-space:nowrap;background:#fff1f2;border:1px solid #fecaca;border-radius:10px;justify-content:center;align-items:center;min-height:40px;padding:0 14px;font-size:14px;font-weight:900;display:inline-flex}.approved-inline-status{color:#047857;white-space:nowrap;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;justify-content:center;align-items:center;min-height:40px;padding:0 14px;font-size:14px;font-weight:900;display:inline-flex}.approved-inline-status.counting{color:#166534;font-variant-numeric:tabular-nums;background:#dcfce7;border-color:#86efac}.export-inline-status{color:#475569;white-space:nowrap;background:#f8fafc;border:1px solid #dbe7f3;border-radius:10px;justify-content:center;align-items:center;min-height:40px;padding:0 12px;font-size:13px;font-weight:900;display:inline-flex}.export-inline-status.exported{color:#1d4ed8;background:#eff6ff;border-color:#bae6fd}.export-inline-status.counting{color:#0e7490;font-variant-numeric:tabular-nums;background:#ecfeff;border-color:#67e8f9}@media (max-width:1180px){.review-dialog-body{grid-template-columns:minmax(300px,40%) minmax(560px,60%)}.compact-project-grid{grid-template-columns:1fr 1fr}}@media (max-width:980px){.review-dialog-body{grid-template-columns:1fr}.scan-frame{height:46dvh;min-height:320px}.compact-table-wrap{max-height:44dvh}}.app-tabs{background:#fff;border:1px solid #d8e2ef;border-radius:14px;align-items:center;gap:8px;max-width:1120px;margin:0 auto 18px;padding:6px;display:flex;box-shadow:0 12px 32px #0f172a0f}.app-tabs button{color:#475569;cursor:pointer;background:0 0;border:0;border-radius:10px;min-height:44px;padding:0 18px;font-weight:800}.app-tabs button.active{color:#fff;background:#073b4c}.app-tabs button span{color:#111827;background:#f59e0b;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;margin-left:8px;font-size:12px;display:inline-flex}.review-header{align-items:center}.review-workspace{max-width:1180px;margin:0 auto}.review-section-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.review-section-head h2{color:#0f2f54;margin:0 0 4px;font-size:28px}.review-section-head span{color:#64748b;font-weight:700}.review-section-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;display:flex}.review-loading,.dashboard-empty{color:#475569;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;padding:22px;font-weight:700}.review-loading.floating{z-index:40;position:fixed;inset:auto 24px 24px auto;box-shadow:0 18px 40px #0f172a2e}.review-record-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;display:grid}.review-record-card{color:#0f2f54;text-align:left;cursor:pointer;background:#fff;border:1px solid #d9e5f2;border-radius:14px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:102px;padding:14px;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid;box-shadow:0 14px 30px #0f172a0f}.review-record-card:hover,.review-record-card:focus-visible{border-color:#0f766e;outline:none;transform:translateY(-2px);box-shadow:0 18px 44px #0f766e24}.review-record-card.highlight{border-color:#f59e0b;box-shadow:0 18px 44px #f59e0b29}.project-mark{color:#0369a1;background:#e0f2fe;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.project-mark svg{width:22px;height:22px}.project-mark.approved,.review-record-card.approved .project-mark{color:#047857;background:#dcfce7}.project-mark.rejected{color:#be123c;background:#ffe4e6}.record-card-main,.record-card-side{flex-direction:column;gap:4px;display:flex}.record-card-main strong{overflow-wrap:anywhere;font-size:16px}.record-card-main small,.record-card-side i{color:#64748b;font-size:12px;font-style:normal;font-weight:700}.record-card-side{align-items:flex-end}.record-card-side b{color:#0f766e;white-space:nowrap}.review-modal-backdrop{z-index:60;background:#0f172a70;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.review-dialog{background:#f8fafc;border-radius:18px;flex-direction:column;width:min(1500px,100%);max-height:min(92dvh,980px);display:flex;overflow:hidden;box-shadow:0 28px 90px #0f172a4d}.review-dialog-head{background:#fff;border-bottom:1px solid #dbe7f3;justify-content:space-between;gap:14px;padding:18px 20px;display:flex}.review-dialog-head h3{color:#0f2f54;margin:8px 0 4px;font-size:22px}.review-dialog-head p{color:#64748b;margin:0}.status-chip{color:#92400e;background:#fef3c7;border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.status-chip.approved{color:#047857;background:#dcfce7}.status-chip.rejected{color:#be123c;background:#ffe4e6}.icon-button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.icon-button span{background:currentColor;border-radius:2px;width:18px;height:2px;display:block}.review-dialog-body{grid-template-columns:minmax(320px,.9fr) minmax(580px,1.1fr);min-height:0;display:grid;overflow:hidden}.scan-pane,.payroll-review-pane{min-height:0;padding:16px;overflow:auto}.scan-pane{background:#eaf1f8;border-right:1px solid #dbe7f3}.scan-toolbar,.proposal-head,.table-footer-actions{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.scan-frame{background:#111827;border:1px solid #cbd5e1;border-radius:14px;justify-content:center;align-items:flex-start;height:calc(92dvh - 190px);min-height:480px;padding:10px;display:flex;overflow:auto}.scan-frame img{object-fit:contain;background:#fff;border-radius:8px;width:100%;height:100%}.scan-frame.zoom img{width:auto;max-width:none;height:auto;max-height:none}.scan-warning{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;margin-top:10px;padding:10px 12px;font-weight:700}.payroll-review-pane{background:#f8fafc}.compact-project-grid{grid-template-columns:1.2fr .8fr;gap:10px;margin-bottom:12px;display:grid}.compact-project-grid label,.day-label-row label{color:#475569;flex-direction:column;gap:5px;font-size:12px;font-weight:900;display:flex}.compact-project-grid input,.day-label-row input,.compact-payroll-table input,.proposal-row.compact input{color:#0f172a;width:100%;min-height:36px;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:7px 9px}.compact-project-grid input:focus,.day-label-row input:focus,.compact-payroll-table input:focus,.proposal-row.compact input:focus{border-color:#0f766e;outline:3px solid #0f766e24}.review-summary-strip,.dashboard-metrics{gap:10px;margin-bottom:12px;display:grid}.review-summary-strip{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.review-summary-strip div,.dashboard-metrics div{background:#fff;border:1px solid #dbe7f3;border-radius:12px;padding:10px}.review-summary-strip span,.dashboard-metrics span{color:#64748b;margin-bottom:4px;font-size:12px;font-weight:800;display:block}.review-summary-strip strong,.dashboard-metrics strong{color:#0f2f54;font-size:16px}.day-label-row{grid-template-columns:repeat(7,minmax(54px,1fr));gap:8px;margin-bottom:12px;display:grid}.compact-table-wrap{background:#fff;border:1px solid #dbe7f3;border-radius:14px;min-height:220px;max-height:38dvh;overflow:auto}.compact-payroll-table{border-collapse:separate;border-spacing:0;width:100%;min-width:980px}.compact-payroll-table th{z-index:1;color:#0f2f54;text-align:left;background:#e6f1f4;font-size:12px;position:sticky;top:0}.compact-payroll-table th,.compact-payroll-table td{vertical-align:middle;border-bottom:1px solid #e2e8f0;padding:6px}.compact-payroll-table td:nth-child(n+3):nth-child(-n+9) input{text-align:center;min-width:44px}.compact-payroll-table .number-cell,.compact-payroll-table .money-cell{color:#0f766e;white-space:nowrap;font-weight:900}.icon-mini{border-radius:10px;width:36px;min-height:36px;padding:0;font-size:18px;line-height:1}.proposal-editor{background:#fff;border:1px solid #dbe7f3;border-radius:14px;margin-top:12px;padding:12px}.proposal-row.compact{grid-template-columns:minmax(0,1fr) 150px 40px;gap:8px;margin-top:8px;display:grid}.review-action-bar{background:#fff;border-top:1px solid #dbe7f3;justify-content:flex-end;gap:10px;padding:12px 16px;display:flex}.button-link.disabled{pointer-events:none;opacity:.48}.review-dashboard{gap:16px;display:grid}.line-chart-card,.project-total-card{background:#fff;border:1px solid #dbe7f3;border-radius:16px;box-shadow:0 14px 34px #0f172a0f}.line-chart-card{padding:16px}.chart-title{justify-content:space-between;gap:12px;margin-bottom:12px;display:flex}.chart-title div{flex-direction:column;gap:3px;display:flex}.chart-title strong{color:#0f2f54;font-size:18px}.chart-title span{color:#64748b;font-weight:700}.chart-title svg{color:#0f766e;flex:0 0 28px;width:28px;height:28px}.line-chart-card>svg{width:100%;height:auto;display:block}.chart-axis{stroke:#94a3b8;stroke-width:1.5px}.chart-grid{stroke:#e2e8f0;stroke-width:1px}.chart-grid-y{stroke-dasharray:4 5}.line-chart-card text{fill:#64748b;font-size:12px;font-weight:800}.line-chart-card .chart-y-label{fill:#475569;font-size:11px}.chart-dot{stroke:#fff;stroke-width:2px}.chart-line{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.chart-line-0{stroke:#0f766e}.chart-line-1{stroke:#2563eb}.chart-line-2{stroke:#f59e0b}.chart-line-3{stroke:#be123c}.chart-line-4{stroke:#7c3aed}.chart-dot.chart-line-0,.legend-dot.chart-line-0{fill:#0f766e;background:#0f766e}.chart-dot.chart-line-1,.legend-dot.chart-line-1{fill:#2563eb;background:#2563eb}.chart-dot.chart-line-2,.legend-dot.chart-line-2{fill:#f59e0b;background:#f59e0b}.chart-dot.chart-line-3,.legend-dot.chart-line-3{fill:#be123c;background:#be123c}.chart-dot.chart-line-4,.legend-dot.chart-line-4{fill:#7c3aed;background:#7c3aed}.chart-line.chart-line-0,.chart-line.chart-line-1,.chart-line.chart-line-2,.chart-line.chart-line-3,.chart-line.chart-line-4{fill:none}.chart-legend{flex-wrap:wrap;gap:10px;max-width:100%;display:flex}.chart-legend span{color:#475569;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;max-width:min(220px,100%);font-size:13px;font-weight:800;display:inline-flex;overflow:hidden}.chart-project-filter{flex-wrap:wrap;gap:8px;margin:12px 0 10px;display:flex}.chart-project-filter button{color:#0f2f54;cursor:pointer;max-width:min(260px,100%);font:inherit;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #dbe7f3;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:7px 11px;font-size:12px;font-weight:850;display:inline-flex;overflow:hidden}.chart-project-filter button.active,.chart-project-filter button:hover,.chart-project-filter button:focus-visible{color:#0f766e;background:#ecfdf5;border-color:#0f766e;outline:none}.chart-project-filter-select{display:block}.chart-project-filter-select label{color:#64748b;gap:6px;max-width:min(420px,100%);font-size:12px;font-weight:850;display:grid}.chart-project-filter-select select{color:#0f2f54;width:100%;min-height:38px;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:7px 34px 7px 10px;font-size:13px;font-weight:800}.chart-project-filter-select select:focus{border-color:#0f766e;outline:2px solid #0f766e2e}.legend-dot{border-radius:999px;width:10px;height:10px}.line-chart-card-compact{align-self:start}.single-week-chart{gap:10px;display:grid}.single-week-row{min-height:62px;color:inherit;cursor:pointer;font:inherit;text-align:left;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(116px,auto);align-items:center;gap:14px;padding:10px 12px;display:grid}.single-week-row.active,.single-week-row:hover,.single-week-row:focus-visible{background:#ecfdf5;border-color:#0f766e;outline:none}.single-week-main{gap:6px;min-width:0;display:grid}.single-week-main>div:first-child{align-items:center;gap:8px;min-width:0;display:flex}.single-week-main strong{color:#0f2f54;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.single-week-main small{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:750;overflow:hidden}.single-week-bar{background:#e2e8f0;border-radius:99px;height:8px;overflow:hidden}.single-week-bar span{border-radius:inherit;background:linear-gradient(90deg,#0f766e,#2563eb);height:100%;display:block}.single-week-row b{color:#0f766e;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:17px}.project-total-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.project-total-card{grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.project-total-card div:nth-child(2){flex-direction:column;gap:4px;min-width:0;display:flex}.project-total-card strong{color:#0f2f54;overflow-wrap:anywhere}.project-total-card span{color:#64748b;font-size:12px;font-weight:800}.project-total-card b{color:#0f766e;white-space:nowrap}@media (max-width:980px){.app-tabs{justify-content:flex-start;overflow-x:auto}.review-dialog-body{grid-template-columns:1fr}.scan-pane{border-bottom:1px solid #dbe7f3;border-right:0}.scan-frame{height:52dvh;min-height:360px}.compact-project-grid,.review-summary-strip,.dashboard-metrics{grid-template-columns:1fr 1fr}.review-action-bar{flex-wrap:wrap;justify-content:stretch}.review-action-bar>*{flex:140px}}@media (max-width:640px){.app-tabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:visible}.app-tabs button{min-width:0;padding:0 8px;font-size:13px}.app-tabs button:last-child{grid-column:1/-1}.review-modal-backdrop{padding:0}.review-dialog{border-radius:0;width:100%;max-height:100dvh}.review-record-card,.project-total-card{grid-template-columns:44px minmax(0,1fr)}.record-card-side,.project-total-card b{grid-column:2;align-items:flex-start}.compact-project-grid,.review-summary-strip,.dashboard-metrics,.single-week-row{grid-template-columns:1fr}.single-week-row b{text-align:left}.day-label-row{grid-template-columns:repeat(4,minmax(54px,1fr))}}*{box-sizing:border-box}body{color:#172033;background:#f4f7fb;margin:0}a{color:inherit}main{max-width:1120px;margin:0 auto;padding:28px 16px 48px}.page-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px;display:flex}.page-header h1{color:#12315f;margin:0;font-size:38px;line-height:1.12}.page-header p{color:#4a5568;margin:8px 0 0;font-size:15px}.eyebrow{color:#0f766e;text-transform:uppercase;margin:0 0 6px;font-size:13px;font-weight:800}.header-link{color:#12315f;background:#fff;border:1px solid #b8c7d9;border-radius:8px;flex:none;padding:10px 13px;font-weight:700;text-decoration:none}.panel{background:#fff;border:1px solid #d7e0ea;border-radius:8px;padding:18px;box-shadow:0 8px 24px #1720330f}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field.full{grid-column:1/-1;margin-bottom:12px}.field.no-margin{margin-bottom:0}.form-section{border-top:1px solid #e2e8f0;margin-top:16px;padding-top:16px}.form-section.first-section{border-top:0;margin-top:0;padding-top:0}.section-toggle{color:#12315f;text-align:left;background:#fff;border:1px solid #d7e0ea;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.section-toggle span{font-size:16px;font-weight:800;display:block}.section-toggle small{color:#607086;margin-top:3px;font-size:12px;font-weight:650;display:block}.chevron{color:#0f766e;flex:none;width:20px;height:20px;transition:transform .16s}.finance-section.open .chevron,.project-list.open .chevron{transform:rotate(180deg)}.section-help{color:#607086;margin:10px 0 12px;font-size:13px}.section-title{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.section-title-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.section-title h2{color:#12315f;margin:0;font-size:18px;line-height:1.2}.section-title p{color:#607086;margin:4px 0 0;font-size:13px}.summary-pill{color:#0f766e;background:#edfdfa;border:1px solid #b7ded8;border-radius:999px;flex:none;padding:6px 10px;font-size:12px;font-weight:800}.finance-section{background:#fbfdff;border:1px solid #d7e0ea;border-radius:8px;padding:10px}.finance-section:not(.open){background:0 0;border-color:#0000;padding:0}.finance-grid{align-items:start}.finance-summary,.finance-card,.result-money{gap:8px;display:grid}.finance-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.finance-summary>div,.finance-card>div{background:#fff;border:1px solid #d7e0ea;border-radius:8px;padding:10px}.finance-summary span,.finance-card span{color:#607086;font-size:12px;font-weight:700;display:block}.finance-summary strong,.finance-card strong{color:#12315f;margin-top:4px;font-size:15px;display:block}.finance-card{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.finance-card p{color:#475569;grid-column:1/-1;margin:0;font-size:13px}.finance-note{color:#0f5f59;background:#f1fbf8;border:1px solid #cde7e2;border-radius:8px;margin-top:10px;padding:10px;font-size:13px;font-weight:650}label{color:#172033;font-size:14px;font-weight:750}input,select{background:#fff;border:1px solid #b9c6d6;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}input:focus,select:focus{border-color:#0f766e;outline:2px solid #a7d8d1}.hint{color:#607086;margin-top:6px;font-size:13px}.dropzone{text-align:center;background:#f8fbfd;border:2px dashed #98adc4;border-radius:8px;margin-top:12px;padding:18px}.dropzone.active{background:#edfdfa;border-color:#0f766e}.preview-grid,.review-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:12px;display:grid}.preview-item,.review-image{background:#fff;border:1px solid #d7e0ea;border-radius:8px;overflow:hidden}.preview-item img,.review-image img{object-fit:cover;width:100%;height:112px;display:block}.preview-item .meta,.review-image .meta{word-break:break-word;gap:6px;padding:8px;font-size:12px;display:grid}.file-icon{color:#12315f;background:#eef3f8;border:1px solid #cbd7e6;border-radius:6px;place-items:center;width:92px;height:70px;font-size:14px;font-weight:900;display:grid}.failed-list{background:#fff;border:1px solid #d7e0ea;border-radius:8px;padding:10px}.failed-list strong{color:#607086;font-size:12px;font-weight:800;display:block}.failed-list{color:#475569;gap:6px;font-size:13px;display:grid}.actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}button,.button-link{cursor:pointer;border:0;border-radius:8px;padding:10px 14px;font-weight:750;text-decoration:none}button.primary,.button-link.primary{color:#fff;background:#0f766e}button.secondary,.button-link.secondary{color:#172033;background:#e8eef5}button.danger{color:#fff;background:#dc2626}button:disabled{cursor:not-allowed;opacity:.58}button.section-toggle{color:#12315f;background:#fff;border:1px solid #d7e0ea;padding:12px}.compact{padding:7px 9px}.status{margin-top:10px;font-size:14px;font-weight:650}.status.error{color:#b91c1c}.status.ok{color:#166534}.status.notice{color:#92400e}.status-box{background:#f2fff4;border:1px solid #bfe0c5;border-radius:8px;gap:4px;margin-top:12px;padding:12px;font-size:14px;display:grid}.result-list{background:#f2fff4;border:1px solid #bfe0c5;border-radius:8px;gap:10px;margin-top:12px;padding:12px;display:grid}.result-list header,.result-item{justify-content:space-between;align-items:center;gap:12px;display:flex}.result-list header p{color:#607086;margin:4px 0 0;font-size:13px}.result-item{background:#fff;border:1px solid #cfd9e6;border-radius:8px;padding:10px}.result-money{color:#475569;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px;font-size:12px}.result-money span{background:#f3f7fb;border-radius:8px;padding:6px 8px}.result-item.error{background:#fff7f7;border-color:#fecaca}.payroll-tool{background:#fbfdff;border:1px solid #cbd7e6;border-radius:8px;gap:14px;margin-top:14px;padding:14px;display:grid}.payroll-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.payroll-header h2{color:#12315f;margin:0;font-size:20px}.payroll-header p{color:#607086;margin:4px 0 0;font-size:13px}.verify-pill{color:#92400e;background:#fff7d6;border-radius:999px;flex:none;padding:7px 10px;font-size:12px;font-weight:900}.verify-pill.ok{color:#047857;background:#dff7f2}.payroll-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:0}.payroll-table-wrap{background:#fff;border:1px solid #cbd7e6;border-radius:8px;max-height:70vh;overflow:auto}.payroll-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:12px}.payroll-table th{z-index:2;color:#12315f;text-align:center;white-space:nowrap;background:#e8eef6;border:1px solid #cbd7e6;padding:8px;position:sticky;top:0}.payroll-table td{vertical-align:top;border:1px solid #e2e8f0;padding:5px}.payroll-table td:first-child,.payroll-table th:first-child{z-index:3;text-align:center;background:#f1f5f9;position:sticky;left:0}.payroll-table input{border:1px solid #0000;border-radius:6px;min-width:78px;padding:7px 8px;font-size:12px}.payroll-table td:nth-child(2) input{min-width:170px}.payroll-table input:focus{border-color:#0f766e;outline:2px solid #0f766e2e}.payroll-table small{color:#7b8798;margin-top:3px;font-size:10px;display:block}.number-cell,.money-cell{text-align:right;white-space:nowrap;font-weight:800}.proposal-box{background:#fff;border:1px solid #d7e0ea;border-radius:8px;padding:12px}.proposal-row{grid-template-columns:minmax(0,1fr) 180px auto;align-items:center;gap:8px;margin-top:8px;display:grid}.payroll-actions{border-top:1px solid #d7e0ea;padding-top:12px}.project-list{gap:10px;margin-top:18px;display:grid}.saved-toggle{margin:0}.saved-project-list{gap:10px;display:grid}.project-item,.review-item{background:#f9fbfd;border:1px solid #cfd9e6;border-radius:8px;padding:12px}.review-list{gap:14px;display:grid}.review-item header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.review-item h2{color:#12315f;margin:0 0 6px;font-size:20px}.review-meta{color:#475569;gap:4px;font-size:14px;display:grid}.review-pair-list{gap:12px;margin-top:14px;display:grid}.review-pair{background:#fff;border:1px solid #d7e0ea;border-radius:8px;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:12px;padding:10px;display:grid}.review-photo-panel{background:#f8fbfd;border:1px solid #d7e0ea;border-radius:8px;min-width:0;overflow:hidden}.review-photo-link{text-decoration:none}.review-photo-panel img{object-fit:contain;background:#eef3f8;width:100%;max-height:520px;display:block}.review-photo-panel .meta{color:#475569;word-break:break-word;padding:8px;font-size:12px}.empty-preview{color:#607086;place-items:center;min-height:180px;font-size:13px;display:grid}.excel-panel{background:#fbfdff;border:1px solid #d7e0ea;border-radius:8px;min-width:0;padding:10px}.excel-panel-pro{background:linear-gradient(#fbfdff 0%,#f4f7fb 100%);box-shadow:inset 0 1px #fffc}.excel-title-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.compact-actions{flex:none;margin-top:0}.excel-workbench{background:#eef3f8;border:1px solid #cbd7e6;border-radius:8px;margin-top:12px;overflow:hidden}.excel-inspector{background:#d7e0ea;border-bottom:1px solid #cbd7e6;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid}.excel-inspector>div{background:#f8fbfd;min-width:0;padding:10px 12px}.excel-inspector span{color:#5d6f86;text-transform:uppercase;font-size:11px;font-weight:800;display:block}.excel-inspector strong{color:#0b2f63;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:14px;display:block;overflow:hidden}.excel-inspector .pending strong{color:#ad6200}.excel-inspector .verified strong{color:#047857}.formula-bar{background:#fff;border-bottom:1px solid #cbd7e6;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px;padding:10px;display:grid}.formula-bar span{color:#0b2f63;text-align:center;background:#f1f5f9;border:1px solid #cbd7e6;border-radius:6px;padding:8px 10px;font-weight:900}.formula-bar input{color:#172033;background:#fff;border:1px solid #b8c7d8;border-radius:6px;width:100%;min-width:0;padding:9px 10px;font-size:14px}.formula-bar input:focus{border-color:#0f766e;outline:3px solid #0f766e29}.excel-repair-note{color:#7c4a03;background:#fff8df;border-bottom:1px solid #cbd7e6;padding:10px 12px;font-size:13px;line-height:1.45}.excel-repair-note strong{color:#78350f}.excel-preview-table{background:#fff;border:1px solid #cfd9e6;border-radius:8px;max-height:520px;margin-top:10px;overflow:auto}.excel-preview-table.smart{background:#fff;border:0;border-radius:0;max-height:min(68vh,720px);margin:0}.excel-preview-table table{border-collapse:collapse;width:max-content;min-width:100%;font-size:12px}.excel-preview-table th{z-index:3;color:#334155;text-align:center;background:#e8eef6;border:1px solid #cbd7e6;padding:6px 8px;font-size:11px;font-weight:900;position:sticky;top:0}.excel-preview-table .corner{z-index:5;left:0}.excel-preview-table .row-heading{z-index:2;color:#64748b;background:#edf2f7;width:44px;min-width:44px;position:sticky;left:0}.excel-preview-table thead .row-heading{z-index:6}.excel-preview-table td{color:#172033;white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:top;background:#fff;border:1px solid #e2e8f0;padding:0;transition:background-color .15s,box-shadow .15s;position:relative}.excel-preview-table input{color:#172033;background:0 0;border:0;border-radius:0;width:100%;min-width:120px;padding:6px 8px;font-size:12px}.excel-preview-table.smart input{min-width:84px;min-height:31px;color:inherit;font-size:12px;line-height:1.35}.excel-preview-table.smart input[readonly]{cursor:default}.excel-preview-table input:focus{outline-offset:-2px;outline:2px solid #a7d8d1}.excel-preview-table.smart td.active{z-index:1;box-shadow:inset 0 0 0 2px #0f766e}.excel-preview-table.smart td.edited{background:#fff7d6;box-shadow:inset 0 -2px #d97706}.excel-preview-table.smart td.filled,.excel-preview-table.smart td.cell-heading{background:#f0f5fb}.excel-preview-table.smart td.cell-heading input{color:#0b2f63;font-weight:900}.excel-preview-table.smart td.cell-formula{color:#0f4c81;background:#f5fbff}.excel-preview-table.smart td.cell-money,.excel-preview-table.smart td.cell-number{color:#111827}.excel-preview-table.smart td.align-center input{text-align:center}.excel-preview-table.smart td.align-right input,.excel-preview-table.smart td.cell-money input,.excel-preview-table.smart td.cell-number input{text-align:right}.excel-preview-table.smart td.bold input{font-weight:900}.excel-preview-table.smart td.merged input{background:#f1f5f98c}.cell-badge{color:#1d4ed8;pointer-events:none;background:#dbeafe;border-radius:5px;padding:2px 4px;font-size:9px;font-weight:900;line-height:1;position:absolute;top:3px;right:4px}.excel-edit-note,.local-record-note{color:#607086;font-size:13px}.excel-edit-note{background:#f8fbfd;border-top:1px solid #d7e0ea;padding:10px 12px;position:sticky;bottom:0;left:0}.local-record-note{background:#fbfdff;border:1px dashed #b9c6d6;border-radius:8px;padding:10px}.pill{color:#0f766e;white-space:nowrap;background:#dff7f2;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}@media (max-width:768px){main{padding:20px 12px 36px}.page-header,.review-item header{display:grid}.page-header h1{font-size:30px}.grid{grid-template-columns:1fr}.section-title,.result-list header,.result-item{display:grid}.section-title-actions{justify-content:flex-start}.finance-summary,.finance-card,.result-money,.payroll-summary{grid-template-columns:1fr}.payroll-header,.proposal-row,.review-pair,.excel-title-row{grid-template-columns:1fr;display:grid}.excel-inspector{grid-template-columns:repeat(2,minmax(0,1fr))}.formula-bar{grid-template-columns:58px minmax(0,1fr);padding:8px}.excel-preview-table.smart{max-height:58vh}.compact-actions{width:100%}}.result-list header{justify-content:space-between;align-items:center;gap:14px;display:flex}.review-modal-backdrop{padding:14px}.review-dialog{border-radius:14px;width:min(1680px,100vw - 28px);max-height:calc(100dvh - 28px)}.review-dialog-head{align-items:center;padding:12px 16px}.dialog-title-line{align-items:center;gap:10px;min-width:0;display:flex}.dialog-title-line h3{text-overflow:ellipsis;white-space:nowrap;max-width:68vw;margin:0;font-size:19px;overflow:hidden}.review-dialog-head p{text-overflow:ellipsis;white-space:nowrap;max-width:74vw;margin-top:5px;font-size:12px;overflow:hidden}.review-dialog-body{grid-template-columns:minmax(340px,42%) minmax(620px,58%)}.scan-pane,.payroll-review-pane{padding:12px}.scan-toolbar{margin-bottom:8px}.scan-frame{border-radius:10px;height:calc(100dvh - 156px);min-height:460px}.compact-project-grid{grid-template-columns:1.35fr .72fr 1fr .72fr;gap:8px;margin-bottom:8px}.compact-project-grid label{gap:3px;min-width:0;font-size:11px}.compact-project-grid input,.day-label-row input,.compact-payroll-table input,.proposal-row.compact input{border-radius:7px;min-height:30px;padding:4px 7px;font-size:12px}.review-summary-strip{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px;margin-bottom:8px;display:grid}.review-summary-strip div{border-radius:9px;justify-content:space-between;align-items:center;gap:8px;min-height:36px;padding:7px 9px;display:flex}.review-summary-strip span{white-space:nowrap;margin:0;font-size:11px}.review-summary-strip strong{text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.review-mini-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.review-mini-toolbar span{color:#64748b;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:700;overflow:hidden}.day-label-row{background:#fff;border:1px solid #dbe7f3;border-radius:10px;grid-template-columns:repeat(7,minmax(58px,1fr));gap:6px;margin-bottom:8px;padding:8px}.compact-table-wrap{border-radius:10px;min-height:260px;max-height:calc(100dvh - 390px)}.compact-payroll-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;min-width:1048px;font-size:12px}.compact-payroll-table .col-index{width:36px}.compact-payroll-table .col-name{width:178px}.compact-payroll-table .col-salary{width:92px}.compact-payroll-table .col-day{width:46px}.compact-payroll-table .col-total{width:52px}.compact-payroll-table .col-allowance{width:82px}.compact-payroll-table .col-pay{width:104px}.compact-payroll-table .col-note{width:126px}.compact-payroll-table .col-action{width:38px}.compact-payroll-table th,.compact-payroll-table td{vertical-align:middle;height:36px;padding:3px 5px;overflow:hidden}.compact-payroll-table th{z-index:4;text-align:center;white-space:nowrap;font-size:11px;position:sticky;top:0}.compact-payroll-table td:first-child,.compact-payroll-table th:first-child{z-index:5;text-align:center;background:#f1f5f9;position:sticky;left:0}.compact-payroll-table td:nth-child(2),.compact-payroll-table th:nth-child(2){z-index:5;background:#fff;position:sticky;left:36px}.compact-payroll-table th:first-child,.compact-payroll-table th:nth-child(2){z-index:6;background:#e6f1f4}.compact-payroll-table input{text-overflow:ellipsis;white-space:nowrap;min-width:0;height:28px;min-height:28px;overflow:hidden}.compact-payroll-table td:nth-child(n+4):nth-child(-n+10) input{text-align:center;min-width:0;padding-inline:3px}.compact-payroll-table .row-index,.compact-payroll-table .number-cell,.compact-payroll-table .money-cell{font-variant-numeric:tabular-nums}.compact-payroll-table .money-cell{text-overflow:ellipsis;overflow:hidden}.table-footer-actions{margin:8px 0 0}.proposal-editor{border-radius:10px;margin-top:8px;padding:8px 10px}.proposal-head{margin:0}.proposal-toggle{color:#0f2f54;cursor:pointer;text-align:left;background:0 0;border:0;flex:auto;justify-content:space-between;align-items:center;gap:10px;min-height:34px;padding:0;display:flex}.proposal-toggle span{color:#64748b;font-size:12px;font-weight:800}.proposal-row.compact{grid-template-columns:minmax(0,1fr) 128px 36px;gap:6px}.review-action-bar{z-index:2;padding:10px 14px;position:sticky;bottom:0}@media (max-width:1180px){.review-dialog-body{grid-template-columns:minmax(300px,40%) minmax(560px,60%)}.compact-project-grid{grid-template-columns:1fr 1fr}}@media (max-width:980px){.review-modal-backdrop{padding:0}.review-dialog{border-radius:0;width:100%;max-height:100dvh}.review-dialog-head{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 12px;display:grid}.review-dialog-head>div:first-child{min-width:0}.dialog-title-line h3,.review-dialog-head p{max-width:none}.dialog-actions,.icon-button{flex:none}.review-dialog-body{grid-template-columns:1fr}.scan-frame{height:46dvh;min-height:320px}.compact-table-wrap{max-height:44dvh}}.review-project-grid{gap:14px;display:grid}.review-project-group{background:#fff;border:1px solid #d9e5f2;border-radius:14px;padding:14px;box-shadow:0 12px 32px #0f2f5414}.review-project-group.highlight{border-color:#f59e0b;box-shadow:0 16px 36px #f59e0b2e}.project-group-head{grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.project-group-head>div{flex-direction:column;gap:4px;min-width:0;display:flex}.project-group-head strong{overflow-wrap:anywhere;color:#0f2f54;font-size:17px;line-height:1.2}.project-group-head small{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;overflow:hidden}.project-identity-label{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:800;line-height:1.25;display:block;overflow:hidden}.project-group-head .scan-issue-line{color:#b45309}.project-record-list{gap:8px;margin-top:12px;display:grid}.mini-record-button{color:#0f2f54;cursor:pointer;text-align:left;background:#f8fafc;border:1px solid #dbe7f3;border-radius:10px;grid-template-columns:124px minmax(112px,auto) minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:44px;padding:9px 10px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.mini-record-button:hover{border-color:#0f766e;transform:translateY(-1px);box-shadow:0 10px 22px #0f2f5414}.mini-record-button.approved{background:#f0fdf4;border-color:#bbf7d0}.mini-record-button.approved.new-today{background:linear-gradient(90deg,#ecfdf5 0%,#f0fdfa 100%);border-color:#14b8a6;box-shadow:inset 4px 0 #0f766e}.mini-record-button.excel-exported{border-color:#93c5fd}.mini-record-button.rejected{background:#fff1f2;border-color:#fecaca}.mini-record-button.rejected.new-today{background:linear-gradient(90deg,#fff1f2 0%,#fff7f7 100%);border-color:#fb7185;box-shadow:inset 4px 0 #e11d48}.mini-record-button.highlight{background:#fffbeb;border-color:#f59e0b}.mini-record-button.scan-issue{background:#fff7ed;border-color:#fed7aa}.mini-record-button span{white-space:nowrap;font-size:12px;font-weight:900}.mini-record-title{align-items:center;gap:6px;min-width:0;display:inline-flex}.new-approved-pill{color:#0f766e;background:#ccfbf1;border:1px solid #99f6e4;border-radius:999px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;font-style:normal;font-weight:950;line-height:1;display:inline-flex}.new-approved-pill i,.exported-mini-pill i{background:currentColor;border-radius:999px;width:7px;height:7px;display:inline-block}.new-approved-pill.rejected{color:#be123c;background:#ffe4e6;border-color:#fecdd3}.exported-mini-pill{color:#1d4ed8;background:#dbeafe;border:1px solid #bfdbfe;border-radius:999px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;font-style:normal;font-weight:950;line-height:1;display:inline-flex}.new-approved-line{color:#0f766e!important}.mini-record-button strong{color:#0f766e;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.mini-record-button small{color:#64748b;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:800;overflow:hidden}@media (max-width:760px){.project-group-head{grid-template-columns:42px minmax(0,1fr)}.project-group-head .button-link{grid-column:1/-1;justify-content:center;width:100%}.mini-record-button{grid-template-columns:72px minmax(96px,auto)}.mini-record-button small{grid-column:1/-1}}.dashboard-hero{background:#fff;border:1px solid #dbe7f3;border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:stretch;gap:16px;padding:18px;display:grid;box-shadow:0 16px 40px #0f2f5414}.dashboard-hero h3{color:#0f2f54;margin:2px 0 6px;font-size:clamp(22px,3vw,34px);line-height:1.05}.dashboard-hero span{color:#64748b;font-size:14px;font-weight:750;line-height:1.45}.dashboard-hero-total{background:#f0fdfa;border:1px solid #bbe7df;border-radius:14px;flex-direction:column;justify-content:center;gap:6px;padding:16px;display:flex}.dashboard-hero-total span,.dashboard-hero-total small,.dashboard-metrics-polished small,.dashboard-focus-card span,.dashboard-focus-card small,.dashboard-board-head span,.dashboard-project-row small{color:#64748b;font-size:12px;font-weight:850}.dashboard-hero-total strong{color:#0f766e;white-space:nowrap;font-size:clamp(24px,3vw,36px);line-height:1}.dashboard-metrics.dashboard-metrics-polished{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-metrics-polished div{background:#fff;border-radius:14px;min-height:92px}.dashboard-metrics-polished strong{margin-bottom:7px;font-size:23px;display:block}.dashboard-metrics-polished small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dashboard-main-grid{grid-template-columns:minmax(0,1fr) minmax(220px,300px);align-items:stretch;gap:14px;display:grid}.dashboard-alert{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);align-items:start;gap:12px;padding:13px 14px;display:grid}.dashboard-alert strong{color:#92400e;font-size:15px;display:block}.dashboard-alert span{color:#9a3412;font-size:12px;font-weight:750;line-height:1.45}.dashboard-alert-list{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.dashboard-alert-list span{text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #fdba74;border-radius:999px;max-width:100%;padding:6px 9px;overflow:hidden}.dashboard-alert-list span.resolved{color:#047857;background:#f0fdf4;border-color:#bbf7d0}.dashboard-focus-card{background:#fff;border:1px solid #dbe7f3;border-radius:16px;flex-direction:column;justify-content:space-between;gap:12px;padding:16px;display:flex;box-shadow:0 14px 34px #0f172a0f}.dashboard-focus-card strong{color:#0f2f54;overflow-wrap:anywhere;font-size:18px;line-height:1.25}.dashboard-focus-card b{color:#0f766e;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:24px}.dashboard-chart-key-card{justify-content:flex-start}.dashboard-chart-key-card>div:first-child{gap:8px;display:grid}.dashboard-chart-key-list{border-top:1px solid #e2e8f0;gap:7px;padding-top:8px;display:grid}.dashboard-chart-key-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:7px 8px;text-decoration:none;display:grid}.dashboard-chart-key-item:hover,.dashboard-chart-key-item:focus-visible{background:#f0fdfa;border-color:#0f766e;outline:none}.dashboard-chart-key-item i{border-radius:999px;width:10px;height:10px}.dashboard-chart-key-item strong{color:#0f2f54;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.dashboard-chart-key-item small{color:#0f766e;font-size:11px;font-weight:900}.dashboard-project-board,.dashboard-week-board{background:#fff;border:1px solid #dbe7f3;border-radius:16px;overflow:hidden;box-shadow:0 14px 34px #0f172a0f}.dashboard-week-list{gap:8px;padding:12px;display:grid}.dashboard-week-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:minmax(220px,1fr) 86px 116px minmax(220px,.9fr);align-items:center;gap:12px;min-height:54px;padding:10px 12px;display:grid}.dashboard-week-row>div{flex-direction:column;gap:3px;min-width:0;display:flex}.dashboard-week-row strong{color:#0f2f54;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.dashboard-week-row span,.dashboard-week-row small{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:850;overflow:hidden}.dashboard-week-row b{color:#0f766e;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.dashboard-board-head{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.dashboard-board-head div{flex-direction:column;gap:3px;min-width:0;display:flex}.dashboard-board-head strong{color:#0f2f54;font-size:17px}.dashboard-board-head>span{color:#0f766e;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}.dashboard-project-list{display:grid}.dashboard-project-row{border-bottom:1px solid #eef3f8;grid-template-columns:minmax(240px,1fr) minmax(120px,220px) minmax(136px,auto) auto;align-items:center;gap:12px;min-height:68px;padding:12px 16px;display:grid}.dashboard-project-title{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.dashboard-project-title>div{flex-direction:column;gap:4px;min-width:0;display:flex}.dashboard-project-title strong{color:#0f2f54;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.scan-issue-pill{color:#b45309;background:#fff7ed;border:1px solid #fdba74;border-radius:999px;align-self:flex-start;padding:3px 7px;font-size:11px;font-style:normal;font-weight:900}.dashboard-project-progress{background:#e2e8f0;border-radius:99px;height:9px;overflow:hidden}.dashboard-project-progress span{border-radius:inherit;background:linear-gradient(90deg,#0f766e,#2563eb);height:100%;display:block}.dashboard-project-money{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.dashboard-project-money b{color:#0f766e;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.dashboard-blank{min-height:0}@media (max-width:980px){.dashboard-hero,.dashboard-alert,.dashboard-main-grid{grid-template-columns:1fr}.dashboard-alert-list{justify-content:flex-start}.dashboard-metrics.dashboard-metrics-polished{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-project-row{grid-template-columns:minmax(0,1fr)}.dashboard-week-row{grid-template-columns:minmax(0,1fr) 82px 110px}.dashboard-week-row>small{grid-column:1/-1}.dashboard-project-money{align-items:flex-start}}@media (max-width:560px){.dashboard-metrics.dashboard-metrics-polished{grid-template-columns:1fr}.dashboard-board-head{flex-direction:column;align-items:flex-start}.dashboard-week-row{grid-template-columns:minmax(0,1fr)}}.scan-image-fallback{color:#334155;text-align:center;background:#f8fafc;border:1px dashed #94a3b8;border-radius:12px;align-content:center;place-items:center;gap:10px;width:100%;min-height:360px;padding:24px;display:grid}.scan-image-fallback svg{color:#0f766e;width:42px;height:42px}.scan-image-fallback strong{color:#0f2f54;font-size:15px}.scan-image-fallback span{color:#64748b;max-width:360px;font-size:12px;font-weight:700;line-height:1.45}.dashboard-project-list{gap:12px;padding:12px}.dashboard-project-row{background:#fff;border:1px solid #dbe7f3;border-radius:14px;box-shadow:0 10px 26px #0f2f540d}.dashboard-project-row:last-child{border-bottom:1px solid #dbe7f3}.dashboard-project-records{border-top:1px solid #eef3f8;grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;padding-top:8px;display:grid}.dashboard-record-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;gap:3px;min-width:0;padding:9px 10px;display:grid}.dashboard-record-chip span{color:#64748b;text-transform:uppercase;font-size:11px;font-weight:900}.dashboard-record-chip b{color:#0f766e;font-variant-numeric:tabular-nums;font-size:13px}.dashboard-record-chip small{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.dashboard-record-chip.scan-issue{background:#fff7ed;border-color:#fed7aa}.dashboard-record-chip i{color:#b45309;font-size:11px;font-style:normal;font-weight:900}.review-project-grid.pending-only .project-group-head .button-link{display:none}@media (max-width:640px){.dashboard-alert,.dashboard-alert-list,.dashboard-alert-list span{min-width:0}.dashboard-alert-list span{white-space:normal;overflow-wrap:anywhere}.review-summary-strip{grid-template-columns:1fr}.review-summary-strip div{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px}.review-summary-strip span,.review-summary-strip strong{text-align:left;width:100%}.review-summary-strip strong{white-space:normal;overflow-wrap:anywhere}button,.button-link{touch-action:manipulation;min-height:44px}button.compact,.button-link.compact,.secondary.compact,.primary.compact{min-height:44px;padding-block:9px}.review-section-head button.compact,.dashboard-project-row .button-link.compact,.actions button,.icon-mini{min-height:44px}.dialog-title-line h3,.review-dialog-head p{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;overflow:visible}.review-dialog .compact-project-grid input,.review-dialog .day-label-row input,.review-dialog .compact-payroll-table input,.review-dialog .proposal-row.compact input,.review-dialog textarea{height:36px;min-height:36px}.review-dialog .compact-payroll-table th,.review-dialog .compact-payroll-table td{height:40px}}
