*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:#142033;background:#f4f7fb;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:linear-gradient(#0d1728 0%,#111f35 100%);flex-direction:column;height:100vh;padding:28px 20px;display:flex;position:sticky;top:0;box-shadow:10px 0 30px #0f172a14}.brand{letter-spacing:-.04em;margin:4px 8px 38px;font-size:25px;font-weight:800}.brand span{color:#6ee7b7}.sidebar nav{gap:8px;display:grid}.sidebar nav a{color:#b8c6d9;border-radius:11px;align-items:center;min-height:44px;padding:11px 14px;font-weight:650;transition:background .18s,color .18s,transform .18s;display:flex}.sidebar nav a:hover{color:#fff;background:#ffffff12;transform:translate(2px)}.sidebar nav a.active{color:#fff;background:linear-gradient(135deg,#6ee7b733,#3b82f626);box-shadow:inset 0 0 0 1px #6ee7b72e}.company{color:#a9b7ca;overflow-wrap:anywhere;background:#ffffff0d;border-radius:13px;gap:11px;margin-top:auto;padding:16px;font-size:12px;display:grid}.company button{color:#fff;background:#ffffff0a;border:1px solid #40516a;border-radius:9px;padding:9px}.content{width:100%;min-width:0;max-width:1600px;padding:38px}header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;display:flex}header>div:first-child{flex:280px;min-width:min(100%,240px)}h1,h2,p{margin-top:0}h1{letter-spacing:-.045em;margin-bottom:8px;font-size:clamp(28px,3vw,39px)}h2{letter-spacing:-.025em}.eyebrow{color:#64748b;letter-spacing:.16em;margin-bottom:9px;font-size:11px;font-weight:800}.muted,.panel-heading p{color:#64748b}.primary,.secondary,.table-button{border:0;border-radius:10px;padding:11px 18px;font-weight:750;transition:transform .15s,box-shadow .15s,opacity .15s}.primary{color:#fff;background:linear-gradient(135deg,#16243a,#263c5c);box-shadow:0 8px 18px #1420332e}.primary:hover,.table-button:hover{transform:translateY(-1px)}.primary:disabled{opacity:.6}.secondary{color:#172033;background:#e8edf5}.link-button{align-items:center;display:inline-flex}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px;display:grid}.stats article,.stats a.stats-card,.panel,.auth-card,.project-card{background:#fffffff0;border:1px solid #e2e8f0;border-radius:17px;box-shadow:0 10px 30px #0f172a0e}.stats article,.stats a.stats-card{color:inherit;padding:21px;text-decoration:none;display:block;position:relative;overflow:hidden}.stats article:before,.stats a.stats-card:before{content:"";background:linear-gradient(90deg,#6ee7b7,#60a5fa);height:3px;position:absolute;top:0;left:0;right:0}.stats span,.stats small{color:#64748b;display:block}.stats span{font-weight:650}.stats strong{letter-spacing:-.025em;margin:11px 0 6px;font-size:25px;display:block}.stats .stats-card--clickable,.stats article.stats-card--clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.stats .stats-card--clickable:hover,.stats article.stats-card--clickable:hover{background:#fff;border-color:#94a3b8;box-shadow:0 12px 28px #0f172a17}.stats .stats-card--clickable:focus,.stats .stats-card--clickable:focus-visible,.stats article.stats-card--clickable:focus,.stats article.stats-card--clickable:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}.stats .stats-card--active,.stats article.stats-card--active{background:#f8fbff;border-color:#60a5fa}.panel{margin-bottom:22px;overflow:hidden}.panel-heading{padding:23px 24px 10px}.panel-heading h2{margin-bottom:5px}.split-heading{justify-content:space-between;align-items:center;display:flex}.filters{grid-template-columns:minmax(240px,2fr) repeat(2,minmax(150px,1fr));gap:12px;padding:12px 24px 22px;display:grid}.filters.one-filter{grid-template-columns:minmax(220px,430px)}.table-wrap{max-width:100%;overflow-x:auto}.table-wrap .data-table{min-width:920px}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;border-top:1px solid #edf1f6;padding:15px 18px}td{white-space:normal;overflow-wrap:break-word}th{white-space:nowrap;color:#64748b;letter-spacing:.06em;text-transform:uppercase;background:#fbfcfe;font-size:11px}tbody tr:hover{background:#f8fafc}.status{text-transform:capitalize;white-space:nowrap;background:#f1f5f9;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;display:inline-block}.status.paid{color:#166534;background:#dcfce7}.status.part_paid{color:#92400e;background:#fef3c7}.status.unpaid{color:#991b1b;background:#fee2e2}.table-button{color:#26374f;cursor:pointer;background:#eef2f7;border:0;border-radius:8px;justify-content:center;align-items:center;min-height:36px;padding:7px 10px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.empty{color:#64748b;padding:28px 24px}.form-panel form{padding:14px 24px 26px}.section-title{color:#142033;margin:20px 0 10px;font-size:.95rem;font-weight:700}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-bottom:19px;display:grid}label{color:#334155;gap:7px;font-size:13px;font-weight:750;display:grid}input,select,textarea{color:#142033;background:#fff;border:1px solid #cbd5e1;border-radius:10px;outline:none;width:100%;padding:11px 12px;transition:border .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa29}textarea{resize:vertical}.wide{grid-column:1/-1}.message{color:#244b86;background:#eef4ff;border:1px solid #dbe8ff;border-radius:9px;padding:11px 13px}.page-message{margin:0 24px 18px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:8px 24px 24px;display:grid}.project-card{padding:20px}.project-card-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.project-card-heading h2{margin-bottom:18px}.project-count{color:#52627a;white-space:nowrap;background:#eef2f7;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:750}.project-card dl{margin:0 0 18px}.project-card dl div{border-top:1px solid #edf1f6;justify-content:space-between;gap:15px;padding:9px 0;display:flex}.project-card dt{color:#64748b}.project-card dd{margin:0;font-weight:750}.project-link{display:inline-flex}.auth-shell{background:radial-gradient(circle at 0 0,#eaf2ff,#0000 40%),linear-gradient(135deg,#f6f8fc,#e8eef8);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{width:min(440px,100%);padding:34px}.auth-form{gap:16px;margin-top:24px;display:grid}.auth-actions{gap:10px;display:flex}.auth-forgot-link{color:#1d4ed8;text-underline-offset:3px;margin-top:14px;font-weight:700;text-decoration:underline;display:inline-block}.auth-forgot-link:hover{color:#1e40af}.auth-password-hint{color:#64748b;margin:0;font-size:12px;line-height:1.4}@media (max-width:1150px){.stats,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:780px){.shell{display:block}.sidebar{height:auto;min-height:auto;padding:20px;position:static}.brand{margin-bottom:20px}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.company{margin-top:20px}.content{padding:22px 16px}header,.auth-actions{flex-direction:column}.stats,.form-grid,.filters,.project-grid{grid-template-columns:1fr}.wide{grid-column:auto}}.status.ts-draft{color:#334155;background:#e2e8f0}.status.ts-pending{color:#92400e;background:#fef3c7}.status.ts-approved{color:#166534;background:#dcfce7}.status.ts-rejected{color:#991b1b;background:#fee2e2}.status.ts-exported{color:#1e40af;background:#dbeafe}.doc-field-uncertain{box-shadow:0 0 0 1px #fdba74;background:#fff7ed!important;border-color:#fb923c!important}.doc-review-legend{color:#9a3412;margin:0 0 10px;font-size:13px;font-weight:650}.doc-review-confirm{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;align-items:flex-start;gap:10px;margin:14px 0 4px;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.doc-review-confirm input{flex-shrink:0;width:auto;margin-top:3px}.doc-upload-pad{padding:4px 0 8px}.ts-filters{grid-template-columns:minmax(0,1fr) 220px;gap:10px;margin-bottom:12px;display:grid}.ts-bulk-bar{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;padding:10px 12px;font-size:13px;font-weight:650;display:flex}.doc-source-type{color:#334155;gap:6px;margin:12px 0;font-size:13px;font-weight:650;display:grid}.doc-source-type select{max-width:280px}.ts-doc-modal-backdrop{z-index:80;background:#0f172a8c;justify-content:center;align-items:stretch;padding:16px;display:flex;position:fixed;inset:0}.ts-doc-modal{background:#fff;border-radius:16px;flex-direction:column;width:min(1100px,100%);max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 24px 60px #0f172a47}.ts-doc-modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px;display:flex}.ts-doc-modal-header h2{margin:4px 0 0;font-size:20px}.ts-doc-modal-body{background:#f8fafc;flex:1;min-height:0;padding:12px 14px 18px;overflow:auto}.ts-ot-field{flex-direction:column;gap:2px;min-width:72px;display:inline-flex}.ts-ot-field input{border:1px solid #cbd5e1;border-radius:8px;width:84px;max-width:100%;padding:6px 8px;font-weight:650}.ts-ot-error{color:#b91c1c;font-size:11px;font-weight:650}.ts-inline-edit{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ts-inline-edit input{flex:1;min-width:160px}@media (max-width:780px){.ts-ot-field input{width:100%;min-width:96px}.ts-table{min-width:1100px}}.ts-doc-image{border-radius:8px;max-width:100%;margin:0 auto;display:block;box-shadow:0 8px 24px #0f172a1f}@media (max-width:780px){.ts-doc-modal-backdrop{padding:0}.ts-doc-modal{border-radius:0;width:100%;max-height:100vh}.ts-doc-modal-header{flex-direction:column}}.status.ws-submitted{color:#92400e;background:#fef3c7}.status.ws-approved{color:#166534;background:#dcfce7}.status.ws-rejected{color:#991b1b;background:#fee2e2}.approve-btn{color:#166534;background:#dcfce7}.approve-btn:hover{background:#bbf7d0}.reject-btn{color:#991b1b;background:#fee2e2;margin-left:6px}.reject-btn:hover{background:#fecaca}.action-cell{white-space:nowrap}.invoice-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.invoice-actions .reject-btn{margin-left:0}.invoice-actions .pdf-view-btn{color:#fff;background:#16243a}.invoice-actions .pdf-view-btn:hover{background:#263c5c}.invoice-actions .pdf-download-btn{color:#1e3a5f;background:#e0e7ff}.invoice-actions .table-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.ws-detail{padding:16px 24px 24px}.ws-dl{margin:0 0 20px}.ws-dl div{border-top:1px solid #edf1f6;justify-content:space-between;gap:20px;padding:10px 0;display:flex}.ws-dl dt{color:#64748b;flex-shrink:0}.ws-dl dd{text-align:right;margin:0;font-weight:650}.ws-actions{flex-wrap:wrap;gap:10px;display:flex}.ws-row{cursor:pointer}.ws-row:hover{background:#eef4ff!important}.ws-area{text-overflow:ellipsis;max-width:200px;overflow:hidden}.header-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:10px;max-width:100%;display:flex}.doc-dropzone{text-align:center;cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:14px;outline:none;padding:48px 24px;transition:border-color .18s,background .18s}.doc-dropzone:hover,.doc-dropzone--over{background:#eff6ff;border-color:#60a5fa}.doc-dropzone-icon{margin-bottom:12px;font-size:40px}.doc-dropzone-label{margin:0 0 6px;font-size:15px;font-weight:650}.doc-dropzone-link{color:#2563eb;text-decoration:underline}.doc-dropzone-hint{color:#64748b;margin:0 0 20px;font-size:12px}.doc-cancel-link{color:#64748b;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.doc-status-panel{text-align:center;background:#f8fafc;border-radius:14px;padding:48px 24px}.doc-status-panel--warn{background:#fffbeb}.doc-status-icon{margin-bottom:8px;font-size:32px}.doc-status-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.doc-spinner{border:3px solid #e2e8f0;border-top-color:#60a5fa;border-radius:50%;width:36px;height:36px;margin:0 auto 16px;animation:.8s linear infinite doc-spin}@keyframes doc-spin{to{transform:rotate(360deg)}}.doc-review-panel{padding:4px 0 0}.doc-review-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 12px;display:flex}.doc-confidence{white-space:nowrap;border-radius:999px;align-self:flex-start;padding:6px 12px;font-size:12px;font-weight:700}.doc-confidence--high{color:#166534;background:#dcfce7}.doc-confidence--medium{color:#92400e;background:#fef3c7}.doc-confidence--low{color:#991b1b;background:#fee2e2}.doc-warnings{color:#78350f;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;margin:0 24px 16px;padding:12px 16px 12px 32px;font-size:13px}.doc-warnings--low{color:#881337;background:#fff1f2;border-color:#fecdd3}.doc-warnings li{margin-bottom:4px}.doc-warnings li:last-child{margin-bottom:0}.doc-review-form{padding:0 24px 8px}.doc-review-grid{margin-bottom:0}.doc-review-actions{flex-wrap:wrap;align-items:center;gap:10px;padding:16px 24px 24px;display:flex}.doc-save-primary{min-height:48px;padding:12px 22px;font-size:1.05rem;font-weight:700}.doc-advanced-details{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:8px 24px 0;padding:10px 12px}.doc-advanced-details summary{cursor:pointer;color:#334155;font-weight:600}.field-please-check{color:#92400e;margin-top:4px;font-weight:600;display:inline-block}.doc-required{color:#dc2626;font-weight:800}.doc-ts-table-wrap{margin-bottom:12px;overflow-x:auto}.doc-ts-table{border-collapse:collapse;width:100%;min-width:700px}.doc-ts-table th,.doc-ts-table td{white-space:nowrap;border:1px solid #e2e8f0;padding:8px 10px}.doc-ts-table th{text-transform:uppercase;letter-spacing:.05em;color:#64748b;background:#f8fafc;font-size:11px}.doc-ts-table td input{padding:7px 8px;font-size:13px}.doc-add-row{margin-top:8px;font-size:13px}@media (max-width:780px){.header-actions{flex-direction:column;align-items:stretch}.doc-review-header,.doc-review-actions{flex-direction:column}.doc-review-actions button{width:100%}}.invoice-table tbody tr.invoice-row{cursor:pointer;transition:background .18s,transform .18s,box-shadow .18s}.invoice-table tbody tr.invoice-row:hover{background:#eef5ff}.invoice-table tbody tr.invoice-row.selected{background:linear-gradient(90deg,#16243a14,#60a5fa1a);box-shadow:inset 3px 0 #16243a}.invoice-table tbody tr.invoice-row:focus-visible{outline-offset:-2px;outline:2px solid #60a5fa}.inv-drawer-root{z-index:80;pointer-events:none;position:fixed;inset:0}.inv-drawer-root.open{pointer-events:auto}.inv-drawer-backdrop{opacity:0;background:#0f172a6b;border:0;transition:opacity .28s;position:absolute;inset:0}.inv-drawer-root.open .inv-drawer-backdrop{opacity:1}.inv-drawer{background:#f8fafc;border-left:1px solid #dbe3ee;flex-direction:column;width:min(45vw,760px);min-width:360px;height:100%;transition:transform .34s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:0;right:0;overflow:hidden;transform:translate(104%);box-shadow:-24px 0 60px #0f172a2e}.inv-drawer-root.open .inv-drawer{transform:translate(0)}.inv-drawer-header{color:#fff;background:linear-gradient(#0f172a 0%,#16243a 100%);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;display:flex}.inv-drawer-kicker{letter-spacing:.08em;text-transform:uppercase;color:#93c5fd;margin:0 0 4px;font-size:11px;font-weight:800}.inv-drawer-header h2{letter-spacing:-.03em;margin:0;font-size:22px}.inv-drawer-sub{color:#cbd5e1;margin:6px 0 0;font-size:13px}.inv-drawer-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:340px;display:flex}.inv-action-btn{color:#fff;background:#ffffff1f;border:0;border-radius:9px;align-items:center;padding:8px 11px;font-size:12px;font-weight:750;text-decoration:none;transition:background .15s,transform .15s;display:inline-flex}.inv-action-btn:hover{background:#fff3;transform:translateY(-1px)}.inv-action-btn.danger{background:#f8717138}.inv-action-btn.ghost{background:0 0;border:1px solid #ffffff40}.inv-action-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.inv-drawer-message{margin:12px 16px 0}.inv-pay-modal-root{z-index:120;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.inv-pay-modal-backdrop{cursor:pointer;background:#0f172a80;border:0;position:absolute;inset:0}.inv-pay-modal{background:#fff;border:1px solid #dbe3ee;border-radius:16px;width:min(440px,100%);padding:22px;position:relative;box-shadow:0 28px 70px #0f172a47}.inv-pay-modal header h2{margin:0 0 6px;font-size:18px}.inv-pay-modal header p{color:#64748b;margin:0 0 14px;font-size:13px}.inv-pay-modal-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.inv-drawer-summary{background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;padding:14px 18px;display:grid}.inv-drawer-summary>div{gap:3px;min-width:0;display:grid}.inv-drawer-summary>div.wide{grid-column:1/-1}.inv-drawer-summary span{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:750}.inv-drawer-summary strong{color:#0f172a;overflow-wrap:anywhere;font-size:13px;font-weight:700}.inv-drawer-pdf{background:#eef2f7;padding:12px 14px 0}.inv-pdf-shell{background:#fff;border:1px solid #dbe3ee;border-radius:14px;overflow:hidden;box-shadow:0 10px 28px #0f172a0f}.inv-pdf-toolbar{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.inv-pdf-toolbar-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inv-tool-btn{color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700}.inv-tool-btn:hover{background:#f1f5f9}.inv-tool-btn.active{color:#fff;background:#16243a;border-color:#16243a}.inv-tool-btn:disabled{opacity:.45;cursor:not-allowed}.inv-pdf-page-label{text-align:center;color:#334155;min-width:54px;font-size:12px;font-weight:750}.inv-pdf-stage{background:linear-gradient(#f8fafc,#eef2f7);justify-content:center;min-height:320px;max-height:min(42vh,520px);padding:14px;display:flex;overflow:auto}.inv-pdf-page{border-radius:4px;overflow:hidden;box-shadow:0 12px 30px #0f172a24}.inv-pdf-filename{color:#64748b;border-top:1px solid #edf1f6;margin:0;padding:8px 12px 10px;font-size:12px}.inv-pdf-empty{text-align:center;color:#64748b;place-content:center;gap:6px;min-height:220px;padding:28px;display:grid}.inv-pdf-empty strong{color:#0f172a}.inv-pdf-skeleton{gap:12px;width:min(100%,420px);padding:18px;display:grid}.inv-skel-line,.inv-skel-block,.inv-skeleton-bar{background:linear-gradient(90deg,#e2e8f0 0%,#f8fafc 45%,#e2e8f0 100%) 0 0/200% 100%;border-radius:8px;animation:1.2s linear infinite inv-shimmer}.inv-skel-line{width:70%;height:12px}.inv-skel-line.wide{width:92%}.inv-skel-line.short{width:42%}.inv-skel-block{width:100%;height:180px}.inv-skeleton-bar{border-radius:0;height:44px}@keyframes inv-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.inv-drawer-tabs{background:#f8fafc;border-top:1px solid #e2e8f0;gap:4px;padding:10px 14px 0;display:flex}.inv-tab{color:#64748b;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 12px;font-size:13px;font-weight:750}.inv-tab.active{color:#0f172a;border-bottom-color:#16243a}.inv-drawer-tab-panel{background:#f8fafc;flex:1;min-height:0;padding:14px 16px 24px;overflow:auto}.inv-details-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;display:grid}.inv-details-list>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px}.inv-details-list>div.wide{grid-column:1/-1}.inv-details-list dt{color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:750}.inv-details-list dd{color:#0f172a;margin:0;font-weight:700}.inv-edit-form,.inv-note-form,.inv-attachment-form{background:#fff;border:1px solid #e2e8f0;border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px;padding:14px;display:grid}.inv-edit-form .wide,.inv-note-form label,.inv-attachment-form .wide{grid-column:1/-1}.inv-note-form,.inv-attachment-form{grid-template-columns:1fr}.inv-history ul,.inv-notes ul,.inv-attachments ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.inv-history li,.inv-notes li,.inv-attachments li{background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;gap:16px;padding:12px 14px;animation:.28s both inv-fade-up;display:flex}.inv-history li p,.inv-notes li p,.inv-attachments li p{color:#64748b;margin:4px 0 0;font-size:13px}.inv-meta{color:#64748b;white-space:nowrap;justify-items:end;gap:4px;font-size:12px;display:grid}@keyframes inv-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1100px){.inv-drawer{width:min(56vw,720px)}}@media (max-width:900px){.inv-drawer{width:min(100vw,100%);min-width:0}.inv-drawer-header{flex-direction:column}.inv-drawer-actions{justify-content:flex-start;max-width:none}.inv-drawer-summary,.inv-details-list,.inv-edit-form{grid-template-columns:1fr}.inv-pdf-stage{max-height:38vh}}.proj-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.stats article strong.positive{color:#166534}.stats article strong.negative{color:#991b1b}.status.project-active{color:#1e40af;background:#dbeafe}.status.project-completed{color:#166534;background:#dcfce7}.status.project-archived{color:#475569;background:#e2e8f0}.modern-project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.modern-project-card{cursor:pointer;background:linear-gradient(#fffffffa,#f8fafcf5);border:1px solid #e2e8f0;transition:transform .18s,box-shadow .18s,border-color .18s}.modern-project-card:hover{border-color:#c7d7ef;transform:translateY(-2px);box-shadow:0 16px 34px #0f172a14}.modern-project-card.selected{border-color:#16243a;box-shadow:0 16px 34px #16243a1f}.modern-project-card .muted{margin:0;font-size:13px}.project-card-chips{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.project-card-chips span{color:#334155;background:#eef2f7;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.project-card-actions{flex-wrap:wrap;gap:8px;display:flex}.proj-drawer-root{z-index:80;pointer-events:none;position:fixed;inset:0}.proj-drawer-root.open{pointer-events:auto}.proj-drawer-backdrop{opacity:0;background:#0f172a6b;border:0;transition:opacity .28s;position:absolute;inset:0}.proj-drawer-root.open .proj-drawer-backdrop{opacity:1}.proj-drawer{background:#f8fafc;border-left:1px solid #dbe3ee;flex-direction:column;width:min(52vw,860px);min-width:360px;height:100%;transition:transform .34s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:0;right:0;overflow:hidden;transform:translate(104%);box-shadow:-24px 0 60px #0f172a2e}.proj-drawer-root.open .proj-drawer{transform:translate(0)}.proj-drawer-header{color:#fff;background:linear-gradient(#10233f 0%,#183456 100%);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;display:flex}.proj-kicker{letter-spacing:.08em;text-transform:uppercase;color:#93c5fd;margin:0 0 4px;font-size:11px;font-weight:800}.proj-drawer-header h2{letter-spacing:-.03em;margin:0;font-size:22px}.proj-drawer-header h2 a{color:#fff;text-underline-offset:3px;text-decoration:underline}.proj-sub{color:#cbd5e1;margin:6px 0 0;font-size:13px}.proj-sub .entity-link{color:#fff;min-height:0}.proj-drawer-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.proj-metrics{background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;display:grid}.proj-metrics article{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.proj-metrics span{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:750;display:block}.proj-metrics strong{letter-spacing:-.02em;margin-top:6px;font-size:18px;display:block}.proj-metrics small{color:#64748b;margin-top:4px;font-size:12px;display:block}.proj-metrics strong.positive{color:#166534}.proj-metrics strong.negative{color:#991b1b}.proj-drawer-tabs{background:#f8fafc;border-top:1px solid #e2e8f0;gap:4px;padding:10px 14px 0;display:flex;overflow-x:auto}.proj-drawer-tabs .inv-tab{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.proj-drawer-tabs .inv-tab em{color:#334155;background:#e2e8f0;border-radius:999px;padding:1px 7px;font-size:11px;font-style:normal;font-weight:800}.proj-drawer-panel{flex:1;min-height:0;padding:14px 16px 24px;overflow:auto}.proj-skeleton{gap:12px;padding:12px;display:grid}.proj-labour-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.proj-labour-summary article{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.proj-labour-summary span{color:#64748b;text-transform:uppercase;font-size:11px;font-weight:750;display:block}.proj-labour-summary strong{margin-top:6px;font-size:18px;display:block}.proj-file-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.proj-file-list li{background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.proj-file-list p{color:#64748b;margin:4px 0 0;font-size:13px}@media (max-width:1200px){.proj-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.modern-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.proj-drawer{width:min(100vw,100%);min-width:0}.proj-drawer-header{flex-direction:column}.proj-metrics,.proj-labour-summary{grid-template-columns:1fr 1fr}.proj-stats,.modern-project-grid{grid-template-columns:1fr}}.po-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.status.po-draft{color:#334155;background:#e2e8f0}.status.po-pending_approval{color:#92400e;background:#fef3c7}.status.po-approved{color:#1e40af;background:#dbeafe}.status.po-sent{color:#3730a3;background:#e0e7ff}.status.po-partially_invoiced{color:#9a3412;background:#ffedd5}.status.po-fully_invoiced{color:#166534;background:#dcfce7}.status.po-cancelled{color:#991b1b;background:#fee2e2}.po-table tbody tr.po-row{cursor:pointer;transition:background .15s}.po-table tbody tr.po-row:hover{background:#eef5ff}.po-table tbody tr.po-row.selected{background:linear-gradient(90deg,#16243a14,#60a5fa1a);box-shadow:inset 3px 0 #16243a}.po-items-editor{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin:8px 0 20px;padding:16px}.po-items-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.po-items-heading h3{margin:0}.po-items-table input{min-width:70px}.po-items-table td:first-child input{min-width:180px}.po-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.po-totals div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.po-totals span{color:#64748b;text-transform:uppercase;font-size:11px;font-weight:750;display:block}.po-totals strong{margin-top:6px;font-size:18px;display:block}.po-drawer-root{z-index:80;pointer-events:none;position:fixed;inset:0}.po-drawer-root.open{pointer-events:auto}.po-drawer-backdrop{opacity:0;background:#0f172a6b;border:0;transition:opacity .28s;position:absolute;inset:0}.po-drawer-root.open .po-drawer-backdrop{opacity:1}.po-drawer{background:#f8fafc;border-left:1px solid #dbe3ee;flex-direction:column;width:min(52vw,860px);min-width:360px;height:100%;transition:transform .34s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:0;right:0;overflow:hidden;transform:translate(104%);box-shadow:-24px 0 60px #0f172a2e}.po-drawer-root.open .po-drawer{transform:translate(0)}.po-drawer-header{color:#fff;background:linear-gradient(#1f2937 0%,#111827 100%);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;display:flex}.po-kicker{letter-spacing:.08em;text-transform:uppercase;color:#93c5fd;margin:0 0 4px;font-size:11px;font-weight:800}.po-drawer-header h2{letter-spacing:-.03em;margin:0;font-size:22px}.po-sub{color:#cbd5e1;margin:6px 0 0;font-size:13px}.po-drawer-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.po-metrics{background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;display:grid}.po-metrics article{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.po-metrics span{color:#64748b;text-transform:uppercase;font-size:11px;font-weight:750;display:block}.po-metrics strong{margin-top:6px;font-size:18px;display:block}.po-metrics strong.negative{color:#991b1b}.po-drawer-tabs{background:#f8fafc;border-top:1px solid #e2e8f0;gap:4px;padding:10px 14px 0;display:flex;overflow-x:auto}.po-drawer-panel{flex:1;min-height:0;padding:14px 16px 24px;overflow:auto}.po-link-form,.po-approval-form,.po-doc-form{background:#fff;border:1px solid #e2e8f0;border-radius:14px;gap:12px;margin-bottom:16px;padding:14px;display:grid}.po-approval-form{grid-template-columns:1fr}.po-approval-form .wide{grid-column:1/-1}.po-approval-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.po-approval-list li{background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;gap:16px;padding:12px 14px;display:flex}.po-approval-list p{color:#64748b;margin:4px 0 0;font-size:13px}.po-decision{text-transform:capitalize;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800;display:inline-block}.po-decision.pending{color:#92400e;background:#fef3c7}.po-decision.approved{color:#166534;background:#dcfce7}.po-decision.rejected{color:#991b1b;background:#fee2e2}@media (max-width:1200px){.po-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.po-drawer{width:100%;min-width:0}.po-drawer-header{flex-direction:column}.po-metrics,.po-totals,.po-stats{grid-template-columns:1fr}}.status.supplier-active{color:#166534;background:#dcfce7}.status.supplier-archived{color:#475569;background:#e2e8f0}.sup-table{min-width:1100px}.sup-table tbody tr:hover{background:#eef5ff}.sup-table a{color:#16243a;text-decoration:none}.sup-table a:hover{text-decoration:underline}.sup-supplier-picker{gap:8px;display:grid}.sup-supplier-picker-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sup-supplier-picker-actions .muted{margin:0;font-size:12px}.sup-modal-root{z-index:90;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.sup-modal-root.open{display:flex}.sup-modal-backdrop{background:#0f172a73;border:0;position:absolute;inset:0}.sup-modal{background:#fff;border:1px solid #dbe3ee;border-radius:18px;width:min(560px,100%);max-height:min(90vh,760px);padding:22px;position:relative;overflow:auto;box-shadow:0 28px 70px #0f172a38}.sup-modal header h2{margin:0 0 4px}.sup-modal header p{margin:0 0 16px}.sup-modal .form-grid .wide,.sup-modal-actions.wide{grid-column:1/-1}.sup-modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.client-modal-root{z-index:95;-webkit-overflow-scrolling:touch;justify-content:center;align-items:flex-start;padding:16px;display:none;position:fixed;inset:0;overflow:auto}.client-modal-root.open{display:flex}.client-modal-backdrop{background:#0f172a73;border:0;position:fixed;inset:0}.client-modal{background:#fff;border:1px solid #dbe3ee;border-radius:18px;width:min(720px,100%);max-height:min(92vh,900px);margin:24px auto;padding:22px;position:relative;overflow:auto;box-shadow:0 28px 70px #0f172a38}.client-modal header h2{margin:0 0 6px}.client-modal header .muted{margin:0 0 14px}.client-modal-company{color:#1e3a5f;overflow-wrap:anywhere;background:#eef4ff;border:1px solid #dbe8ff;border-radius:10px;margin:0 0 8px;padding:10px 12px;font-size:14px}.client-modal-form .wide,.client-modal-actions.wide{grid-column:1/-1}.client-modal-actions{background:#fff;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:8px;padding-top:12px;display:flex;position:sticky;bottom:0}.client-type-fieldset{border:1px solid #e2e8f0;border-radius:12px;margin:0;padding:10px 12px 12px}.client-type-fieldset legend{color:#1f4b6e;padding:0 6px;font-size:13px;font-weight:700}.client-type-options{flex-wrap:wrap;gap:16px;display:flex}.client-dup-list{margin:8px 0 0;padding-left:18px}.client-dup-list li{margin-bottom:10px}.client-dup-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.client-dup-actions .primary,.client-dup-actions .secondary,.client-dup-actions a.secondary{justify-content:center;align-items:center;min-height:40px;padding:8px 12px;text-decoration:none;display:inline-flex}.client-dup-hint{margin:8px 0 0;font-size:13px;line-height:1.4}.message.client-dup-blocked{color:#9a3412;background:#fff7ed;border-color:#fdba74}.postcode-lookup{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;gap:10px;padding:12px;display:grid}.postcode-lookup-label{color:#1f4b6e;font-size:13px;font-weight:700}.postcode-lookup-help{margin:0;font-size:12px}.postcode-lookup-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.postcode-lookup-postcode{flex-direction:column;gap:6px;margin:0;font-size:13px;font-weight:600;display:flex}.postcode-find-btn{white-space:nowrap;min-height:44px}.postcode-lookup-results,.postcode-lookup label{flex-direction:column;gap:6px;margin:0;font-size:13px;font-weight:600;display:flex}.postcode-lookup-message{margin:0;font-size:12px}@media (max-width:700px){.postcode-lookup-row{grid-template-columns:1fr}.postcode-find-btn{width:100%}.client-dup-actions{flex-direction:column;align-items:stretch}.client-modal{border-radius:14px;max-height:min(96vh,900px);margin:8px auto;padding:16px}.client-modal-actions{flex-direction:column-reverse}.client-modal-actions .primary,.client-modal-actions .secondary{width:100%;min-height:44px}}.sup-profile-tabs{border-bottom:1px solid #e2e8f0;gap:4px;margin-bottom:16px;padding:0 0 12px;display:flex;overflow-x:auto}.sup-profile-panel{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.sup-inline-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;padding:14px;display:grid}.sup-inline-form .wide{grid-column:1/-1}.sup-check{align-items:center;gap:8px;font-size:14px;display:flex}.sup-check input{width:auto}.sup-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.sup-stats article{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px}.sup-stats span{color:#64748b;text-transform:uppercase;font-size:11px;font-weight:750;display:block}.sup-stats strong{letter-spacing:-.02em;margin-top:6px;font-size:20px;display:block}.sup-bank-locked{text-align:center;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;padding:24px}@media (max-width:1200px){.sup-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.sup-inline-form{grid-template-columns:1fr 1fr}}@media (max-width:900px){.sup-stats,.sup-inline-form{grid-template-columns:1fr}.sup-table{min-width:900px}}.ts-filters .ts-filter-label{color:#475569;gap:4px;font-size:12px;font-weight:650;display:grid}.ts-filters .ts-filter-label input{min-width:140px}.emp-name-link{appearance:none;color:#0f4c81;font:inherit;text-align:left;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;margin:0;padding:0;font-weight:750;text-decoration:underline;text-decoration-thickness:1px}.emp-name-link:hover{color:#0b3a63}.emp-name-link:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #93c5fd}.emp-history-drawer{background:#f1f5f9;width:min(72vw,980px);min-width:360px}.emp-history-body{-webkit-overflow-scrolling:touch;flex:1;padding:0 0 28px;overflow:auto}.emp-history-section{padding:16px 18px 8px}.emp-history-section h3{letter-spacing:.06em;text-transform:uppercase;color:#475569;margin:0 0 10px;font-size:13px}.emp-history-overview,.emp-history-summary-grid{border:1px solid #e2e8f0;border-radius:12px;margin:0}.emp-history-filters{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;gap:10px 12px;display:grid}.emp-history-filters label{color:#475569;gap:4px;font-size:12px;font-weight:650;display:grid}.emp-history-filters input,.emp-history-filters select{width:100%}.emp-history-table{min-width:920px;font-size:12px}.emp-history-table th,.emp-history-table td{white-space:nowrap}@media (max-width:1100px){.emp-history-drawer{width:min(88vw,920px)}}@media (max-width:900px){.emp-history-drawer{width:100vw;min-width:0}.emp-history-filters{grid-template-columns:1fr 1fr}}@media (max-width:640px){.emp-history-filters{grid-template-columns:1fr}}.lp-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.lp-stat{background:#fff;border:1px solid #e2e8f0;border-radius:14px;gap:6px;padding:14px 16px;display:grid}.lp-stat span{color:#64748b;font-size:12px;font-weight:650}.lp-stat strong{letter-spacing:-.03em;font-size:22px}.lp-stat-warn strong{color:#b45309}.lp-stat-danger strong{color:#b91c1c}.lp-stat-ok strong{color:#166534}.lp-alerts ul{gap:8px;margin:0;padding:0 16px 16px;list-style:none;display:grid}.lp-alert{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;flex-wrap:wrap;gap:12px;padding:10px 12px;font-size:13px;display:flex}.lp-alert-block{background:#fef2f2;border-color:#fecaca}.lp-alert strong{text-transform:capitalize}.lp-view-tabs{flex-wrap:wrap;gap:6px;display:flex}.lp-filters{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:12px;display:grid}.lp-filters label{color:#475569;gap:4px;font-size:12px;font-weight:650;display:grid}.lp-toolbar{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:12px;display:flex}.lp-inline{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.lp-inline-warnings{color:#9a3412;margin:0 0 12px;font-size:13px}.lp-mobile-toggle{align-items:center;gap:8px;font-size:13px;display:inline-flex}.lp-board{grid-template-columns:minmax(220px,280px) 1fr;align-items:start;gap:14px;display:grid}.lp-pool{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;max-height:70vh;padding:12px;overflow:auto}.lp-pool h3{margin:0 0 4px;font-size:15px}.lp-pool ul{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.lp-pool-item{cursor:grab;background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px;display:flex}.lp-pool-item small{color:#64748b;margin-top:2px;display:block}.lp-pool-rtw_expired,.lp-pool-cert_expired{opacity:.75;cursor:not-allowed;border-color:#fecaca}.lp-pool-holiday,.lp-pool-sick{border-color:#fde68a}.lp-avail{text-transform:uppercase;letter-spacing:.04em;color:#334155;white-space:nowrap;background:#e2e8f0;border-radius:999px;padding:3px 6px;font-size:10px;font-weight:750}.lp-avail-available{color:#166534;background:#dcfce7}.lp-avail-allocated{color:#1d4ed8;background:#dbeafe}.lp-avail-holiday,.lp-avail-training{color:#92400e;background:#fef3c7}.lp-avail-sick,.lp-avail-absent,.lp-avail-unavailable{color:#991b1b;background:#fee2e2}.lp-avail-rtw_expired,.lp-avail-cert_expired{color:#7f1d1d;background:#fecaca}.lp-staffing-fully_staffed{color:#166534;background:#dcfce7}.lp-staffing-understaffed{color:#991b1b;background:#fee2e2}.lp-staffing-overstaffed{color:#9a3412;background:#ffedd5}.lp-staffing-unplanned{color:#475569;background:#e2e8f0}.lp-today-mobile{grid-column:1/-1;gap:12px;display:grid}.lp-today-layout .lp-columns{grid-template-columns:1fr}.lp-today-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px}.lp-today-card>header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.lp-today-card>header h3{margin:0}.lp-today-card>header p{color:#64748b;margin:2px 0 0;font-size:13px}.lp-today-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px;display:grid}.lp-today-metrics div{background:#f8fafc;border-radius:10px;padding:8px 10px}.lp-today-metrics dt{text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:0;font-size:11px}.lp-today-metrics dd{margin:2px 0 0;font-size:14px;font-weight:600}.lp-today-staff{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lp-today-staff li{border:1px solid #e2e8f0;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px;display:flex}.lp-today-staff small{color:#64748b;margin-top:2px;display:block}.lp-today-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.lp-staffing{border-radius:999px;align-items:center;width:fit-content;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.lp-pool-item.selected{background:#eff6ff;outline:2px solid #2563eb}.lp-shortage-table td,.lp-shortage-table th{font-size:13px}.lp-today-drop-col{min-height:auto}.proj-labour-subhead{color:#475569;margin:16px 0 8px;font-size:14px}.lp-columns{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;min-width:0;display:grid}.lp-project-col{background:#fff;border:1px solid #e2e8f0;border-radius:14px;min-height:180px;padding:12px}.lp-project-col>header h3{margin:0}.lp-project-col>header p{color:#64748b;margin:2px 0 10px;font-size:13px}.lp-day-drop{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;min-height:90px;margin-bottom:10px;padding:10px}.lp-day-meta{color:#475569;gap:2px;margin-bottom:8px;font-size:12px;display:grid}.lp-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:8px;padding:10px}.lp-card p{margin:4px 0;font-size:13px}.lp-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.status.lp-planned{color:#075985;background:#e0f2fe}.status.lp-confirmed{color:#166534;background:#dcfce7}.status.lp-absent{color:#991b1b;background:#fee2e2}.status.lp-cancelled,.status.lp-replaced{color:#475569;background:#f1f5f9}.lp-table{min-width:900px;font-size:12px}.lp-alloc-drawer{width:min(520px,100vw)}.lp-alloc-form{padding:16px}.lp-employee-panel{grid-column:1/-1}.lp-employee-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.lp-employee-grid h4{text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin:0 0 8px;font-size:13px}@media (max-width:1100px){.lp-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.lp-board{grid-template-columns:1fr}.lp-pool{max-height:280px}.lp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-columns{grid-template-columns:1fr}}@media (max-width:640px){.lp-stats{grid-template-columns:1fr}}.sd-form label.full,.sd-form .full{grid-column:1/-1}.sd-filters{gap:12px;display:grid}.sd-filter-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr);gap:10px;display:grid}.sd-row{cursor:pointer}.sd-row:hover{background:#eef4ff!important}.status.sd-draft{color:#334155;background:#e2e8f0}.status.sd-submitted{color:#92400e;background:#fef3c7}.status.sd-signed{color:#166534;background:#dcfce7}.status.sd-rejected{color:#991b1b;background:#fee2e2}.status.sd-reopened,.status.sd-att-planned{color:#075985;background:#e0f2fe}.status.sd-att-confirmed{color:#166534;background:#dcfce7}.status.sd-att-absent{color:#991b1b;background:#fee2e2}.status.sd-att-unplanned{color:#92400e;background:#fef3c7}.sd-actions{flex-wrap:wrap;gap:8px;display:flex}.button-link{background:#fff;border:1px solid #cbd5e1;border-radius:10px;justify-content:center;align-items:center;padding:10px 14px;font-weight:650;display:inline-flex}.sd-area-grid{flex-wrap:wrap;gap:8px;padding:4px 0 8px;display:flex}.sd-area-chip{background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:650}.sd-area-chip.is-active{color:#065f46;background:#ecfdf5;border-color:#6ee7b7}.sd-hours{width:72px;padding:6px 8px}.sd-staff-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sd-unplanned{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.sd-unplanned select{min-width:min(280px,100%)}.sd-photo-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:12px;display:grid}.sd-photo{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin:0;overflow:hidden}.sd-photo img{object-fit:cover;width:100%;height:140px;display:block}.sd-photo-miss{color:#64748b;text-align:center;background:#f8fafc;justify-content:center;align-items:center;height:140px;padding:8px;font-size:12px;display:flex}.sd-photo figcaption{color:#475569;padding:8px 10px;font-size:12px}.sd-variation-list,.sd-history{gap:12px;margin:0;padding:0;list-style:none;display:grid}.sd-variation-list li,.sd-history li{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.sd-check{align-items:center;gap:8px;flex-direction:row!important;display:flex!important}.sig-pad{gap:8px;display:grid}.sig-pad-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.sig-pad-canvas{touch-action:none;cursor:crosshair;background:#fff;border:1px solid #cbd5e1;border-radius:12px;width:100%}.sig-pad-canvas.is-disabled{opacity:.7;cursor:not-allowed}.sig-pad-hint{margin:0;font-size:12px}.sd-share-shell{background:linear-gradient(#eef4ff 0%,#f8fafc 40%,#f4f7fb 100%);min-height:100vh;padding:24px 16px}.sd-share-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;max-width:720px;margin:0 auto;padding:22px;box-shadow:0 18px 40px #0f172a0f}.sd-share-meta{grid-template-columns:1fr 1fr;gap:10px 16px;margin:16px 0;display:grid}.sd-share-meta div{gap:2px;display:grid}.sd-share-meta dt{color:#64748b;font-size:12px}.sd-share-meta dd{margin:0;font-weight:650}.sd-share-sign{gap:12px;margin-top:18px;display:grid}.sd-share-sign label{gap:6px;font-weight:650;display:grid}.sd-share-actions{flex-wrap:wrap;gap:10px;display:flex}.proj-legacy-ws{color:#64748b;margin:18px 0 8px;font-size:14px}.sd-variation-photos{border:1px solid #e2e8f0;border-radius:12px;margin:0;padding:12px}.sd-variation-photos legend{padding:0 6px;font-size:13px;font-weight:650}.sd-variation-photo-picks{gap:8px;display:grid}.sd-mobile-nav{z-index:5;-webkit-overflow-scrolling:touch;background:#fff;gap:8px;padding:8px 0;display:flex;position:sticky;top:0;overflow-x:auto}.sd-mobile-nav button{white-space:nowrap;background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;flex:none;min-height:44px;padding:10px 14px;font-weight:600}.sd-mobile-nav button.active{color:#fff;background:#0f766e;border-color:#0f766e}.sd-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sd-header-actions{margin-top:4px}.sd-autosave{color:#0f766e;font-weight:600}.sd-section{scroll-margin-top:72px}.sd-touch-row{background:#fff;border:1px solid #e2e8f0;border-radius:14px;gap:10px;padding:12px;display:grid}.sd-touch-actions{flex-wrap:wrap;gap:8px;display:flex}.sd-touch-actions button,.sd-touch-actions label.sd-file-btn{min-width:44px;min-height:44px}.sd-file-btn{cursor:pointer;background:#e2e8f0;border-radius:12px;justify-content:center;align-items:center;padding:10px 14px;font-weight:600;display:inline-flex}.sd-file-btn input{display:none}.sd-status-late{color:#9a3412;background:#ffedd5}.sd-status-left_early{color:#92400e;background:#fef3c7}@media (max-width:900px){.sd-filter-row,.sd-share-meta{grid-template-columns:1fr}.sd-detail .table-wrap{overflow-x:auto}.sd-detail header{gap:12px;display:grid}.sd-actions{width:100%}.sd-actions>*{flex:auto}}@media (max-width:640px){.sd-photo-grid{grid-template-columns:1fr 1fr}.sd-actions button,.sd-actions .button-link{min-height:44px}}@media (max-width:720px){.sd-staff-table{display:none}.sd-staff-cards{gap:10px;display:grid}}@media (min-width:721px){.sd-staff-cards{display:none}}.dc-filters{gap:12px;display:grid}.dc-filter-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;gap:10px;display:grid}.dc-row{cursor:pointer}.dc-row:hover{background:#eef4ff!important}.dc-mobile-nav{z-index:5;-webkit-overflow-scrolling:touch;background:#fff;gap:8px;padding:8px 0;display:flex;position:sticky;top:0;overflow-x:auto}.dc-mobile-nav button{white-space:nowrap;background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;flex:none;min-height:44px;padding:10px 14px;font-weight:600}.dc-mobile-nav button.active{color:#fff;background:#0f766e;border-color:#0f766e}.dc-section{scroll-margin-top:72px}.dc-touch-row{background:#fff;border:1px solid #e2e8f0;border-radius:14px;gap:10px;padding:12px;display:grid}.dc-touch-actions{flex-wrap:wrap;gap:8px;display:flex}.dc-touch-actions button,.dc-touch-actions label.dc-file-btn{min-width:44px;min-height:44px}.dc-file-btn{cursor:pointer;background:#e2e8f0;border-radius:12px;justify-content:center;align-items:center;padding:10px 14px;font-weight:600;display:inline-flex}.dc-file-btn input{display:none}.dc-dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.dc-stat-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:14px 16px}.dc-stat-card strong{margin-top:4px;font-size:1.5rem;display:block}.dc-stat-card span{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:12px}.dc-stage-bar{gap:6px;margin:8px 0;display:grid}.dc-stage-bar label{justify-content:space-between;font-size:13px;font-weight:600;display:flex}.dc-stage-bar progress{border-radius:4px;width:100%;height:8px}.dc-tree-row{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.dc-tree-row:last-child{border-bottom:none}.dc-tree-indent{color:#94a3b8;font-family:monospace}.dc-photo-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.dc-photo{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.dc-photo img{object-fit:cover;width:100%;height:120px;display:block}.dc-photo figcaption{padding:8px;font-size:12px}.dc-checklist{gap:10px;display:grid}.dc-checklist label{border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;display:flex}.dc-checklist select{min-width:100px}.dc-quick-bar{z-index:4;background:#fff;border-top:1px solid #e2e8f0;flex-wrap:wrap;gap:8px;padding:10px 0;display:flex;position:sticky;bottom:0}.dc-quick-bar button{flex:auto;min-height:48px;font-weight:700}.dc-breadcrumbs{color:#64748b;margin-bottom:8px;font-size:14px}.dc-breadcrumbs a{color:#0f766e;text-decoration:none}.status.dc-not_started{color:#334155;background:#e2e8f0}.status.dc-planned{color:#075985;background:#e0f2fe}.status.dc-in_progress{color:#92400e;background:#fef3c7}.status.dc-ready_for_inspection{color:#5b21b6;background:#ede9fe}.status.dc-passed{color:#166534;background:#dcfce7}.status.dc-failed{color:#991b1b;background:#fee2e2}.status.dc-re_clean_required{color:#9a3412;background:#ffedd5}.status.dc-completed{color:#115e59;background:#ccfbf1}.status.dc-client_signed{color:#1e40af;background:#dbeafe}.dc-qr-link{word-break:break-all;font-family:monospace;font-size:12px}@media (max-width:720px){.dc-filter-row{grid-template-columns:1fr}.dc-register-table{display:none}.dc-register-cards{gap:10px;display:grid}}@media (min-width:721px){.dc-register-cards{display:none}}.portal-shell{background:#f0f5fa;grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.portal-sidebar{color:#fff;background:linear-gradient(#0a1628 0%,#102038 55%,#0d2840 100%);flex-direction:column;height:100vh;padding:26px 18px;display:flex;position:sticky;top:0;box-shadow:12px 0 36px #0814281f}.portal-brand{letter-spacing:-.04em;margin:4px 8px 10px;font-size:26px;font-weight:800}.portal-brand span{color:#5eead4}.portal-org{color:#94a8c4;overflow-wrap:anywhere;margin:0 8px 22px;font-size:13px;line-height:1.35}.portal-nav{gap:6px;display:grid}.portal-nav a{color:#b8c9de;border-radius:12px;align-items:center;min-height:48px;padding:12px 14px;font-weight:650;transition:background .18s,color .18s,transform .18s;display:flex}.portal-nav a:hover{color:#fff;background:#ffffff14;transform:translate(2px)}.portal-nav a.active{color:#fff;background:linear-gradient(135deg,#5eead438,#38bdf824);box-shadow:inset 0 0 0 1px #5eead433}.portal-user{color:#a8bdd4;overflow-wrap:anywhere;background:#ffffff0f;border-radius:14px;gap:8px;margin-top:auto;padding:14px;font-size:12px;display:grid}.portal-user strong{color:#fff;font-size:13px}.portal-user button{color:#fff;background:#ffffff0f;border:1px solid #3d5573;border-radius:10px;min-height:44px;padding:10px;font-weight:650}.portal-content{width:100%;min-width:0;max-width:1400px;padding:28px 32px 48px}.portal-header{margin-bottom:24px}.portal-header h1{margin-bottom:6px}.portal-stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:20px;display:grid}.portal-stat{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:18px;box-shadow:0 8px 24px #0f172a0a}.portal-stat span{color:#64748b;font-size:12px;font-weight:650;display:block}.portal-stat strong{letter-spacing:-.03em;margin-top:8px;font-size:26px;display:block}.portal-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:14px;padding:18px 20px;box-shadow:0 8px 24px #0f172a0a}.portal-card h3{margin:0 0 8px;font-size:17px}.portal-card-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.portal-progress{background:#e2e8f0;border-radius:999px;height:10px;margin:10px 0 6px;overflow:hidden}.portal-progress>span{background:linear-gradient(90deg,#2dd4bf,#38bdf8);border-radius:999px;height:100%;display:block}.portal-tabs{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.portal-tab{color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:999px;min-height:44px;padding:10px 16px;font-weight:700}.portal-tab.active{color:#fff;background:#0f2744;border-color:#0f2744}.portal-filters{grid-template-columns:minmax(0,2fr) repeat(2,minmax(120px,1fr));gap:10px;margin-bottom:16px;display:grid}.portal-filters input,.portal-filters select{min-height:44px}.portal-gallery{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.portal-gallery figure{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin:0;overflow:hidden}.portal-gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.portal-gallery figcaption{color:#64748b;padding:8px 10px;font-size:11px}.portal-touch-btn{border-radius:12px;min-height:48px;padding:12px 18px;font-weight:750}.portal-list{gap:10px;display:grid}.portal-list-item{background:#fff;border:1px solid #e2e8f0;border-radius:14px;gap:6px;padding:14px 16px;display:grid}.portal-list-item.unread{background:#f0f9ff;border-color:#7dd3fc}.portal-hierarchy{gap:8px;display:grid}.portal-room-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.portal-login-shell{background:radial-gradient(circle at 0 0,#ccfbf1,#0000 42%),linear-gradient(135deg,#f0fdfa,#e0f2fe);place-items:center;min-height:100vh;padding:24px;display:grid}.portal-login-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;width:min(440px,100%);padding:34px;box-shadow:0 16px 40px #0f172a14}.portal-login-card h1{margin-bottom:8px}.portal-login-form{gap:16px;margin-top:22px;display:grid}.portal-denied{text-align:center;color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:14px;padding:24px}@media (max-width:820px){.portal-shell{display:block}.portal-sidebar{height:auto;min-height:auto;padding:18px;position:static}.portal-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-user{margin-top:16px}.portal-content{padding:18px 14px 32px}.portal-filters{grid-template-columns:1fr}}.finance-nav-divider{background:#ffffff1f;height:1px;margin:10px 8px}.finance-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}.finance-cards.balance-trio{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-cards article{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:16px 18px;position:relative;overflow:hidden;box-shadow:0 8px 18px #0f172a0a}.finance-cards article:before{content:"";background:linear-gradient(#1d4ed8,#0ea5e9);width:4px;position:absolute;top:0;bottom:0;left:0}.finance-cards span{color:#64748b;font-size:12px;font-weight:650;display:block}.finance-cards strong{letter-spacing:-.03em;margin-top:8px;font-size:22px;display:block}.finance-cards small{color:#94a3b8;margin-top:4px;font-size:11px;display:block}.finance-rag{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:750;display:inline-flex}.finance-rag-green{color:#166534;background:#dcfce7}.finance-rag-amber{color:#92400e;background:#fef3c7}.finance-rag-red{color:#991b1b;background:#fee2e2}.finance-tabs{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.finance-tabs button{color:#334155;background:#f8fafc;border:1px solid #dbe3ef;border-radius:10px;padding:8px 14px;font-weight:650}.finance-tabs button.active{color:#fff;background:linear-gradient(135deg,#16243a,#263c5c);border-color:#0000}.finance-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.finance-summary-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px}.finance-summary-grid dt{color:#64748b;margin-bottom:4px;font-size:12px;font-weight:650}.finance-summary-grid dd{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:750}.finance-drill{border-left:3px solid #93c5fd;margin-top:10px;padding-left:12px}.finance-rate-missing{color:#991b1b;background:#fee2e2;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.finance-overdue{background:#fef2f2!important}.finance-table-wrap{overflow-x:auto}.finance-link-row{cursor:pointer}.finance-link-row:hover{background:#f0f9ff}.finance-modal-backdrop{z-index:40;background:#0f172a73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.finance-modal{background:#fff;border:1px solid #e2e8f0;border-radius:16px;width:min(640px,100%);max-height:90vh;padding:22px 24px;overflow:auto;box-shadow:0 24px 48px #0f172a2e}@media (max-width:1100px){.finance-cards,.finance-cards.balance-trio,.finance-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.finance-cards,.finance-cards.balance-trio,.finance-summary-grid{grid-template-columns:1fr}.finance-tabs{flex-direction:column}}.contract-upload{flex-direction:column;gap:8px;margin-top:12px;font-weight:650;display:flex}.contract-review{grid-template-columns:minmax(280px,.9fr) minmax(0,1.2fr);align-items:start;gap:16px;display:grid}.contract-preview-panel{position:sticky;top:12px}.contract-preview{min-height:360px;padding:0 16px 16px}.contract-preview iframe,.contract-preview img{object-fit:contain;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;width:100%;min-height:420px}.contract-review-main{gap:16px;display:grid}.contract-fields-table .contract-field-group td{color:#334155;background:#f1f5f9;padding-top:10px;padding-bottom:10px;font-weight:750}.contract-field-input{width:100%;min-width:140px}.contract-conf{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:750;display:inline-block}.contract-conf-high{color:#166534;background:#dcfce7}.contract-conf-med{color:#854d0e;background:#fef9c3}.contract-conf-low{color:#991b1b;background:#fee2e2}.contract-conf-missing{color:#334155;background:#f1f5f9;border:1px dashed #94a3b8}.contract-conf-unknown{color:#475569;background:#e2e8f0}.contract-field-needs-check{background:#fffbeb;outline:1px solid #f59e0b}.contract-warnings{color:#92400e;margin:0;padding:0 24px 20px 44px}.contract-risk-list{gap:10px;margin:0;padding:0 16px 16px;list-style:none;display:grid}.contract-risk-list>li{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:start;gap:12px;padding:12px;display:grid}.contract-risk-list p{margin:4px 0 0}.contract-risk-pill{text-transform:uppercase;letter-spacing:.02em;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800;display:inline-block}.contract-risk-info{color:#075985;background:#e0f2fe}.contract-risk-warn{color:#9a3412;background:#ffedd5}.contract-risk-critical{color:#991b1b;background:#fee2e2}.contract-match-panel{gap:12px;padding:0 24px 24px;display:grid}.contract-radio{align-items:center;gap:8px;font-weight:650;display:flex}.contract-candidate-list{gap:8px;margin-top:4px;display:grid}.contract-candidate{background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.contract-match-score{color:#0369a1;font-size:12px;font-weight:750}.contract-overwrite{background:#fff7ed;border:1px solid #fdba74;border-radius:12px;margin-top:8px;padding:12px 14px}.contract-overwrite ul{margin:8px 0 12px;padding-left:20px}.contract-confirm-bar{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:8px 0 24px;display:flex}.contract-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0 24px 24px;display:grid}.contract-summary-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px}.contract-summary-grid>div.wide{grid-column:1/-1}.contract-summary-grid dt{color:#64748b;margin-bottom:4px;font-size:12px;font-weight:650}.contract-summary-grid dd{color:#0f172a;white-space:pre-wrap;margin:0;font-size:15px;font-weight:700}.contract-addendum-diff{gap:12px;padding:0 24px 24px;display:grid}.contract-finance-summary .panel-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}@media (max-width:960px){.contract-review{grid-template-columns:1fr}.contract-preview-panel{position:static}.contract-risk-list>li,.contract-summary-grid{grid-template-columns:1fr}}.asset-stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:0 24px 24px;display:grid}.asset-stat-card{color:inherit;background:linear-gradient(#f8fafc 0%,#fff 100%);border:1px solid #e2e8f0;border-radius:12px;gap:6px;padding:14px 16px;text-decoration:none;display:grid}.asset-stat-card--clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.asset-stat-card--clickable:hover{border-color:#94a3b8;box-shadow:0 8px 20px #0f172a14}.asset-stat-card--clickable:focus,.asset-stat-card--clickable:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}.asset-stat-card small{color:#64748b;font-size:12px;font-weight:650}.asset-stat-card strong{color:#0f172a;font-size:22px;font-weight:780}.status.asset-alert-overdue{color:#991b1b;background:#fee2e2}.status.asset-alert-soon{color:#9a3412;background:#ffedd5}@media (max-width:720px){.asset-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ux-shell{position:relative}.ux-role-chip{color:#334155;background:#e2e8f0;border-radius:8px;margin:0 16px 10px;padding:6px 10px;font-size:12px;font-weight:650;display:inline-block}.ux-nav-section{margin-bottom:10px}.ux-nav-heading{letter-spacing:.06em;text-transform:uppercase;color:#64748b;margin:12px 16px 6px;font-size:11px;font-weight:750}.ux-nav-secondary{opacity:.92;font-size:.95em}.ux-nav-more{color:#475569;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;width:calc(100% - 24px);margin:4px 12px;padding:8px 10px;font-size:13px;font-weight:600;display:block}.ux-nav-more:hover{background:#94a3b82e}.ux-sidebar-search{padding:0 12px 10px}.ux-topbar{align-items:center;gap:12px;margin-bottom:12px;display:flex}.ux-top-search{flex:1;min-width:0}.ux-menu-toggle{min-height:44px;display:none}.ux-menu-floating{z-index:60;position:fixed;top:12px;right:12px}.ux-nav-backdrop{z-index:40;background:#0f172a59;border:none;display:none;position:fixed;inset:0}.ux-search{width:100%;position:relative}.ux-search-label{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ux-search-input{background:#fff;border:1px solid #cbd5e1;border-radius:12px;width:100%;min-height:44px;padding:10px 14px;font-size:16px}.ux-search-input:focus{outline-offset:1px;border-color:#0f766e;outline:2px solid #0f766e}.ux-search-results{z-index:50;background:#fff;border:1px solid #e2e8f0;border-radius:12px;max-height:360px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 12px 30px #0f172a1f}.ux-search-results button{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;gap:2px;width:100%;min-height:44px;padding:10px 12px;display:grid}.ux-search-results button.active,.ux-search-results button:hover{background:#f1f5f9}.ux-search-kind{text-transform:uppercase;letter-spacing:.04em;color:#0f766e;font-size:11px;font-weight:700}.ux-search-empty{color:#64748b;padding:12px;font-size:14px}.ux-action-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:0 24px 24px;display:grid}.ux-action-card{min-height:108px;color:inherit;background:linear-gradient(#f8fafc 0%,#fff 100%);border:1px solid #dbe3ee;border-radius:14px;gap:6px;padding:18px 16px;text-decoration:none;transition:transform .15s,border-color .15s;display:grid}.ux-action-card:hover{border-color:#0f766e;transform:translateY(-2px)}.ux-action-card strong{color:#0f172a;font-size:18px;font-weight:780}.ux-action-card span{color:#64748b;font-size:13px;line-height:1.35}.ux-attention-list{gap:8px;margin:0;padding:0 24px 24px;list-style:none;display:grid}.ux-attention-list a{color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;min-height:44px;padding:14px 16px;font-weight:650;text-decoration:none;display:block}.ux-attention-list a.ux-attention-warn{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.ux-glance-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:0 24px 8px;display:grid}.ux-glance-card{color:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:12px;gap:6px;min-height:88px;padding:14px 16px;text-decoration:none;display:grid}.ux-glance-card small{color:#64748b;font-size:12px;font-weight:650}.ux-glance-card strong{color:#0f172a;font-size:26px;font-weight:780}.ux-skeleton-list{gap:10px;padding:0 24px 24px;display:grid}.ux-skeleton{background:linear-gradient(90deg,#e2e8f0 0%,#f8fafc 50%,#e2e8f0 100%) 0 0/200% 100%;border-radius:10px;height:48px;animation:1.2s ease-in-out infinite ux-shimmer}@keyframes ux-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.ux-mobile-bar{z-index:45;padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:#0f172a;grid-template-columns:repeat(5,1fr);gap:4px;display:none;position:fixed;bottom:0;left:0;right:0}.ux-mobile-bar a{color:#e2e8f0;text-align:center;border-radius:10px;justify-content:center;align-items:center;min-height:48px;padding:10px 4px;font-size:11px;font-weight:700;text-decoration:none;display:flex}.ux-mobile-bar a.active,.ux-mobile-bar a:hover{color:#fff;background:#1e293b}.ux-onboarding{z-index:60;background:#0f172a73;place-items:center;padding:20px;animation:.2s ux-fade-in;display:grid;position:fixed;inset:0}.ux-onboarding-card{background:#fff;border-radius:16px;gap:10px;width:min(440px,100%);padding:24px;animation:.25s ux-rise;display:grid;box-shadow:0 20px 50px #0f172a40}.ux-onboarding-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.ux-onboarding-actions button{min-width:96px;min-height:44px}.ux-record-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ux-record-actions .primary,.ux-record-actions .secondary,.ux-record-actions a.secondary{justify-content:center;align-items:center;min-width:96px;min-height:44px;text-decoration:none;display:inline-flex}.ux-record-more{position:relative}.ux-record-more>summary{cursor:pointer;justify-content:center;align-items:center;min-width:96px;min-height:44px;list-style:none;display:inline-flex}.ux-record-more>summary::-webkit-details-marker{display:none}.ux-record-more-menu{z-index:20;background:#fff;border:1px solid #e2e8f0;border-radius:12px;gap:6px;min-width:200px;padding:10px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #0f172a1f}.ux-record-more-menu .reject-btn{color:#991b1b;font-weight:700}.ux-file-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.ux-help{color:#64748b;margin:0;font-size:13px}.ux-ask-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:0 24px 8px;display:grid}.ux-ask-card{color:inherit;background:linear-gradient(#f8fafc 0%,#fff 100%);border:1px solid #e2e8f0;border-radius:12px;gap:6px;min-height:88px;padding:16px;text-decoration:none;transition:border-color .15s,transform .15s;display:grid}.ux-ask-card:hover{border-color:#0f766e;transform:translateY(-2px)}.ux-ask-card strong{font-size:16px;font-weight:750}.ux-advanced-toggle{color:#0f766e;cursor:pointer;background:0 0;border:none;min-height:44px;padding:8px 0;font-weight:650}@keyframes ux-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ux-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width:960px){.shell{display:block}.content{padding-top:72px}.ux-menu-toggle{display:inline-flex}.ux-sidebar{z-index:50;width:min(300px,86vw);transition:transform .2s;position:fixed;inset:0 auto 0 0;overflow:auto;transform:translate(-105%)}.ux-sidebar nav{grid-template-columns:1fr}.ux-sidebar-open{transform:translate(0)}.ux-nav-backdrop{display:block}.ux-mobile-bar{display:grid}.ux-content,.shell .content{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.ux-action-grid{grid-template-columns:1fr 1fr}.ux-top-search .ux-search-input{font-size:16px}}@media (prefers-reduced-motion:reduce){.ux-action-card,.ux-onboarding,.ux-onboarding-card,.ux-skeleton,.ux-sidebar{transition:none!important;animation:none!important}}.exec-kpi-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;padding:0 24px 24px;display:grid}.exec-kpi{color:inherit;text-align:left;cursor:pointer;min-height:96px;font:inherit;background:linear-gradient(#fff 0%,#f7fafc 100%);border:1px solid #dbe3ee;border-radius:14px;gap:8px;width:100%;padding:16px 18px;text-decoration:none;transition:border-color .15s,transform .15s;display:grid}.exec-kpi:hover{border-color:#94a3b8;transform:translateY(-1px)}.exec-kpi small{color:#64748b;letter-spacing:.02em;text-transform:uppercase;font-size:12px;font-weight:700}.exec-kpi strong{color:#0f172a;word-break:break-word;font-size:28px;font-weight:780;line-height:1.1}.exec-attention{gap:10px;margin:0;padding:0 24px 24px;list-style:none;display:grid}.exec-att{color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:12px;gap:4px;padding:14px 16px;text-decoration:none;display:grid}.exec-att-flag{letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.exec-att-red{background:#fef2f2;border-color:#fecaca}.exec-att-red .exec-att-flag{color:#b91c1c}.exec-att-amber{background:#fffbeb;border-color:#fde68a}.exec-att-amber .exec-att-flag{color:#b45309}.exec-att-green{background:#f0fdf4;border-color:#bbf7d0}.exec-att-green .exec-att-flag{color:#15803d}.exec-commentary{color:#334155;gap:8px;margin:0;padding:0 24px 24px 44px;font-size:15px;display:grid}.exec-table{border-collapse:collapse;width:100%;font-size:14px}.exec-table th,.exec-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #e2e8f0;padding:10px 12px}.exec-table th{color:#64748b;text-transform:uppercase;font-size:12px;font-weight:700}.exec-table a{color:#0f172a;font-weight:650}.exec-row-red{background:#fef2f2}.exec-row-amber{background:#fffbeb}.exec-mobile-jump{gap:8px;padding:0 16px 12px;display:none;overflow-x:auto}.exec-mobile-jump a{color:#fff;background:#0f172a;border-radius:999px;flex:none;min-height:40px;padding:10px 14px;font-size:13px;font-weight:700;text-decoration:none}.exec-calendar{grid-template-columns:repeat(3,1fr);gap:16px;padding:0 24px 24px;display:grid}.exec-calendar h3{color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:14px}.exec-calendar ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.exec-calendar a{color:#0f172a;font-weight:600;text-decoration:none}.exec-saved{gap:10px;margin:0;padding:0 24px 8px;list-style:none;display:grid}.exec-saved li{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.exec-drill{background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;margin:0 24px 24px;padding:16px 18px}.exec-drill h3{margin:0 0 10px;font-size:16px}.exec-drill ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.exec-drill a{color:#0f172a;font-weight:650}.exec-warnings{gap:8px;margin:0;padding:0 24px 24px;list-style:none;display:grid}.exec-warnings li{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:12px 14px}@media (max-width:900px){.exec-mobile-jump{display:flex}.exec-calendar{grid-template-columns:1fr}.exec-kpi strong{font-size:24px}}.bulk-upload{gap:16px;display:grid}.bulk-dropzone{text-align:center;cursor:pointer;background:linear-gradient(#f8fafc 0%,#eef2ff 100%);border:2px dashed #94a3b8;border-radius:16px;padding:28px 20px;transition:border-color .15s,background .15s}.bulk-dropzone:hover,.bulk-dropzone--over,.doc-dropzone.bulk-dropzone--over{background:#eff6ff;border-color:#2563eb}.bulk-dropzone--disabled{opacity:.55;cursor:not-allowed}.bulk-dropzone-title{letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin:0 0 6px;font-size:13px;font-weight:800}.bulk-dropzone-lead{color:#0f172a;margin:0 0 4px;font-size:20px;font-weight:750}.bulk-dropzone-sub{color:#334155;margin:0 0 8px;font-size:15px}.bulk-dropzone-link{color:#2563eb;font-weight:650;text-decoration:underline}.bulk-dropzone-hint{color:#64748b;margin:0;font-size:13px}.bulk-queue{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden}.bulk-queue-head{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.bulk-queue-actions{flex-wrap:wrap;gap:8px;display:flex}.bulk-attention{color:#b45309;margin:6px 0 0;font-weight:700}.bulk-queue-list{max-height:420px;margin:0;padding:0;list-style:none;overflow:auto}.bulk-queue-item{border-bottom:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 16px;display:flex}.bulk-queue-item--ok{background:#f0fdf4}.bulk-queue-item--warn{background:#fffbeb}.bulk-queue-item--bad{background:#fef2f2}.bulk-queue-item--busy{background:#f8fafc}.bulk-queue-main{flex:1;gap:2px;min-width:0;display:grid}.bulk-queue-main strong{word-break:break-word}.bulk-queue-error{color:#b91c1c;font-size:13px}.bulk-queue-note{color:#166534;font-size:13px}.staff-doc-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.staff-doc-list-item{border-bottom:1px solid var(--border,#e2e8f0);padding-bottom:12px}.staff-doc-list-main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.staff-doc-actions{flex-wrap:wrap;gap:6px;display:inline-flex}.staff-doc-filename{word-break:break-word;margin:4px 0 0;font-size:13px}.bulk-queue-link{color:#1d4ed8;font-size:13px;font-weight:650}.bulk-queue-side{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bulk-status{letter-spacing:.03em;text-transform:uppercase;color:#334155;background:#e2e8f0;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.bulk-status--ok{color:#166534;background:#dcfce7}.bulk-status--warn{color:#92400e;background:#fef3c7}.bulk-status--bad{color:#991b1b;background:#fee2e2}.bulk-status--busy{color:#1e40af;background:#dbeafe}@media (max-width:700px){.bulk-queue-head{flex-direction:column}.bulk-queue-actions{width:100%}.bulk-queue-actions .primary,.bulk-queue-actions .secondary{flex:1;min-height:44px}}.hub-tabs{flex-wrap:wrap;gap:6px;padding:0 0 16px;display:flex;overflow-x:auto}.hub-tab{color:#334155;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #dbe3ee;border-radius:999px;min-height:40px;padding:8px 14px;font-size:13px;font-weight:650}.hub-tab.active,.hub-tab:hover{color:#fff;background:#0f172a;border-color:#0f172a}.hub-glance{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:0 24px 24px;display:grid}.hub-glance-card{color:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:12px;gap:6px;min-height:84px;padding:14px 16px;text-decoration:none;display:grid}.hub-glance-card small{color:#64748b;text-transform:uppercase;font-size:12px;font-weight:700}.hub-glance-card strong{font-size:22px;font-weight:780}.hub-history{gap:10px;margin:0;padding:0 24px 24px;list-style:none;display:grid}.hub-history li{background:#fff;border:1px solid #e2e8f0;border-radius:10px;gap:2px;padding:10px 12px;display:grid}.entity-link{color:#0f172a;text-underline-offset:2px;font-weight:650;text-decoration:underline}a.entity-link,button.entity-link{box-sizing:border-box;align-items:center;min-height:44px;display:inline-flex}button.entity-link{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.entity-link:hover{color:#1d4ed8}.client-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px;display:grid}.client-profile-facts{gap:10px;margin:0;padding:0 24px 20px;display:grid}.client-profile-facts div{gap:2px;display:grid}.client-profile-facts dt{color:#64748b;font-size:12px;font-weight:700}.client-profile-facts dd{margin:0}.client-profile-list{gap:8px;margin:0;padding:0 24px 20px;list-style:none;display:grid}.client-profile-list li{border:1px solid #e2e8f0;border-radius:10px;gap:2px;padding:10px 12px;display:grid}.sup-profile-tabs .inv-tab{min-height:44px}.checklist{gap:12px;padding:0 24px 24px;display:grid}.checklist-item{border:1px solid #e2e8f0;border-radius:10px;gap:8px;padding:12px;display:grid}.checklist-actions{flex-wrap:wrap;gap:8px;display:flex}.checklist-actions button{min-height:44px}@media (max-width:1024px){.client-profile-grid{grid-template-columns:1fr}}.emp-name-link{color:#0f172a;text-underline-offset:2px;font-weight:650;text-decoration:underline}.ux-topbar{align-items:center;gap:10px;display:flex}.notif-bell-wrap{flex-shrink:0;margin-left:auto;position:relative}.notif-bell-btn{cursor:pointer;background:#fff;border:1px solid #dbe3ee;border-radius:12px;align-items:center;gap:8px;min-height:44px;padding:8px 14px;font-weight:700;display:inline-flex;position:relative}.notif-bell-icon{background:#0f766e;border-radius:999px;width:10px;height:10px;display:inline-block}.notif-bell-badge{color:#fff;background:#b45309;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:780;display:inline-flex}.notif-bell-backdrop{z-index:40;background:0 0;border:0;position:fixed;inset:0}.notif-panel{z-index:50;background:#fff;border:1px solid #dbe3ee;border-radius:16px;width:min(380px,100vw - 24px);max-height:min(70vh,520px);position:absolute;top:calc(100% + 8px);right:0;overflow:auto;box-shadow:0 18px 40px #0f172a1f}.notif-panel-head{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex;position:sticky;top:0}.notif-panel-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.notif-panel-actions a{font-size:13px;font-weight:650}.notif-list{gap:6px;margin:0;padding:8px;list-style:none;display:grid}.notif-item{text-align:left;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;gap:4px;width:100%;min-height:64px;padding:12px;display:grid}.notif-list li.unread .notif-item{background:#fff7ed;border-color:#fed7aa}.notif-meta{color:#64748b;font-size:12px}.notif-empty{padding:20px 16px}.notif-priority{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;width:fit-content;margin-bottom:2px;padding:2px 8px;font-size:11px;font-weight:780;display:inline-block}.notif-urgent{color:#991b1b;background:#fee2e2}.notif-needs_attention{color:#9a3412;background:#ffedd5}.notif-reminder{color:#075985;background:#e0f2fe}.ux-attention-urgent{color:#991b1b!important;background:#fef2f2!important;border-color:#fecaca!important}.ux-attention-reminder{color:#0c4a6e!important;background:#f0f9ff!important;border-color:#bae6fd!important}.ux-attention-ok{color:#065f46!important;background:#ecfdf5!important;border-color:#a7f3d0!important}.ux-attention-list a{gap:6px;display:grid}.attention-filters{flex-wrap:wrap;gap:8px;padding:0 24px 12px;display:flex}.attention-filters button{min-height:40px}.home-attention-links{flex-wrap:wrap;gap:8px;display:flex}.approval-group{padding:0 24px 24px}.approval-group h3{margin:0 0 10px;font-size:16px}.approval-actions{flex-wrap:wrap;gap:6px;display:flex}.approval-actions .primary,.approval-actions .secondary,.approval-actions .link-button{min-height:40px}.task-list{gap:10px;margin:0;padding:0 24px 24px;list-style:none;display:grid}.task-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:14px 16px;display:flex}.task-card>div:first-child{flex:1;gap:4px;min-width:200px;display:grid}.task-actions{flex-wrap:wrap;align-items:flex-start;gap:6px;display:flex}.task-actions button{min-height:40px}.checkbox-inline{align-items:center;gap:8px;padding-right:24px;font-weight:650;display:inline-flex}.remind-me{flex-direction:column;gap:6px;display:inline-flex}.remind-me-panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px;gap:8px;min-width:200px;padding:10px;display:grid}@media (max-width:860px){.home-attention-panel{order:-1}.ux-content{flex-direction:column;display:flex}.notif-bell-label{display:none}.ux-attention-list a{min-height:56px;padding:16px;font-size:16px}}.ts-ocr-review{gap:14px;display:grid}.ts-ocr-summary{background:linear-gradient(#f8fafc 0%,#fff 100%);border:1px solid #dbe3ee;border-radius:14px;padding:16px 18px}.ts-ocr-summary-lead{margin:0 0 6px;font-size:17px;font-weight:650}.ts-ocr-summary-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.ts-ocr-table th{white-space:nowrap}.ts-ocr-row-check{background:#fff7ed}.ts-ocr-status{white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:780;display:inline-block}.ts-ocr-status-matched{color:#166534;background:#dcfce7}.ts-ocr-status-please_check,.ts-ocr-status-unmatched{color:#9a3412;background:#ffedd5}.ts-ocr-status-manual{color:#075985;background:#e0f2fe}.ts-ocr-row-actions{flex-direction:column;gap:6px;min-width:140px;display:flex}.ts-ocr-row-actions button{white-space:normal;min-height:40px}.ts-ocr-match-hint{gap:6px;margin-top:6px;font-size:13px;display:grid}.ts-ocr-match-hint button{min-height:36px}.ts-ocr-alt-match{margin-top:6px;font-size:13px}.ts-ocr-alt-match ul{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.ts-ocr-detail{margin-top:8px}.ts-ocr-detail h3{margin:0}@media (max-width:900px){.ts-ocr-table{min-width:720px}}.staff-simple-tabs{flex-wrap:wrap;gap:6px;display:flex}.staff-simple-tabs .inv-tab{min-height:44px;padding:10px 16px;font-weight:650}.staff-details-page{gap:16px;display:grid}.staff-detail-card{background:linear-gradient(#f8fafc 0%,#fff 100%);border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px}.staff-detail-card .section-title{margin-top:0}.staff-doc-row{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.staff-doc-status{white-space:nowrap;font-size:13px;font-weight:650}.staff-doc-status-list .staff-doc-list-item{gap:8px;display:grid}.staff-upload-block{margin-bottom:16px}.staff-profile-header .header-actions{flex-wrap:wrap}.staff-profile-actions{align-items:center;gap:8px}.staff-doc-modal-backdrop{z-index:90;background:#0f172a8c;justify-content:center;align-items:stretch;padding:16px;display:flex;position:fixed;inset:0}.staff-doc-modal{background:#fff;border-radius:16px;flex-direction:column;width:min(1100px,100%);max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 24px 60px #0f172a47}.staff-doc-modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px;display:flex}.staff-doc-modal-header h2{margin:4px 0 0;font-size:20px}.staff-doc-modal-body{background:#f8fafc;flex:1;min-height:0;padding:12px 14px 18px;overflow:auto}.staff-doc-group{margin:18px 0 8px}.staff-onboard-summary{gap:8px;margin:0;padding:0;list-style:none;display:grid}.staff-onboard-summary li{border:1px solid var(--border,#e2e8f0);background:var(--surface,#fff);border-radius:8px;padding:10px 12px;font-weight:600}.staff-onboard-summary li.ok{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.staff-onboard-summary li.check{color:#92400e;background:#fffbeb;border-color:#fde68a}.staff-cert-card{border:1px solid var(--border,#e2e8f0);background:var(--surface,#fff);border-radius:10px;padding:14px 16px}.staff-cert-card--critical{background:#fff7f7;border-color:#fecaca}.staff-cert-card--warn{background:#fffbeb;border-color:#fde68a}.staff-cert-card--muted{opacity:.92;background:#f8fafc}.staff-cert-card-heading{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.staff-cert-card-title{margin:0;font-size:1.05rem}.staff-cert-status{letter-spacing:.02em;white-space:nowrap;border-radius:6px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:700}.staff-cert-status--ok{color:#166534;background:#dcfce7}.staff-cert-status--warn{color:#92400e;background:#fef3c7}.staff-cert-status--critical{color:#991b1b;background:#fee2e2}.staff-cert-status--muted{color:#475569;background:#e2e8f0}.staff-cert-dealt-meta{margin:0 0 10px;font-size:12px;line-height:1.4}.cert-dealt-modal-root{z-index:80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.cert-dealt-modal-backdrop{background:#0f172a73;position:absolute;inset:0}.cert-dealt-modal{z-index:1;background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:12px;gap:12px;width:min(440px,100%);max-height:min(90vh,640px);padding:18px 18px 14px;display:grid;position:relative;overflow:auto;box-shadow:0 18px 48px #0f172a2e}.cert-dealt-modal header h2{margin:0 0 4px;font-size:1.15rem}.cert-dealt-modal header p{margin:0;font-size:13px}.cert-dealt-modal-body{gap:10px;display:grid}.cert-dealt-modal-body label{gap:4px;font-size:13px;font-weight:600;display:grid}.cert-dealt-modal-body input,.cert-dealt-modal-body select,.cert-dealt-modal-body textarea{font:inherit;border:1px solid var(--border,#cbd5e1);background:#fff;border-radius:8px;padding:8px 10px;font-weight:400}.cert-dealt-modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.staff-cert-card-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin:0 0 10px;display:grid}.staff-cert-card-meta dt{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:11px}.staff-cert-card-meta dd{margin:0;font-weight:600}@media (max-width:640px){.staff-cert-card-meta{grid-template-columns:1fr}}.staff-doc-group-title{letter-spacing:.06em;text-transform:uppercase;color:#64748b;margin:0 0 8px;font-size:12px;font-weight:700}.staff-doc-review-badge{margin-left:8px;font-size:12px;font-weight:650;display:inline-block}.staff-doc-review-badge.ok{color:#166534}.staff-doc-review-badge.check{color:#92400e}.staff-batch-summary{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-weight:600}@media (max-width:780px){.staff-doc-modal-backdrop{padding:0}.staff-doc-modal{border-radius:0;width:100%;max-height:100vh}.staff-doc-modal-header{flex-direction:column}}.staff-delete-modal-backdrop{z-index:80;background:#0f172a73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.staff-delete-modal{background:#fff;border:1px solid #e2e8f0;border-radius:12px;width:min(420px,100%);padding:20px 20px 16px;box-shadow:0 18px 40px #0f172a33}.staff-delete-modal h2{margin:0 0 8px;font-size:1.15rem}.staff-delete-modal p{color:#475569;margin:0 0 16px;line-height:1.45}.staff-delete-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.staff-delete-modal-actions .reject-btn{color:#fff;background:#991b1b;border-color:#991b1b}@media (max-width:900px){.staff-simple-tabs{width:100%}.staff-simple-tabs .inv-tab{text-align:center;flex:auto}.staff-doc-row{flex-direction:column;align-items:flex-start}.staff-profile-header .header-actions{width:100%}}@media (max-width:640px){.staff-detail-card .inv-details-list{grid-template-columns:1fr}}.schedule-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.schedule-toolbar .sch-view-btn{cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:8px;padding:8px 12px;font-weight:600}.schedule-toolbar .sch-view-btn.active{color:#fff;background:#1f4b6e;border-color:#1f4b6e}.schedule-layout{grid-template-columns:minmax(0,1fr) minmax(240px,280px);gap:16px;display:grid}.sch-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:12px 16px 16px;display:grid}.sch-month-cell{background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-height:96px;padding:6px}.sch-month-cell.outside{opacity:.55;background:#f8fafc}.sch-month-cell.today{box-shadow:inset 0 0 0 2px #1f4b6e}.sch-block{text-align:left;color:#14202b;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#e8f1f8;border:0;border-left:3px solid #1f4b6e;border-radius:4px;width:100%;margin-top:3px;padding:3px 5px;font-size:11px;line-height:1.25;display:block;overflow:hidden}.sch-block.completed{background:#ecfdf5;border-left-color:#059669}.sch-block.cancelled{opacity:.7;background:#f1f5f9;border-left-color:#94a3b8}.sch-block.in_progress{background:#fffbeb;border-left-color:#d97706}.sch-week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:12px 16px 16px;display:grid}.sch-week-col{min-width:0}.sch-week-col.today .sch-day-head{color:#1f4b6e}.sch-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-left:4px solid #1f4b6e;border-radius:10px;width:100%;margin-bottom:8px;padding:10px 12px;display:block}.sch-card.completed{border-left-color:#059669}.sch-card.cancelled{opacity:.75;border-left-color:#94a3b8}.sch-card.in_progress{border-left-color:#d97706}.sch-card-time{color:#14202b;font-size:14px;font-weight:700}.sch-card-client{margin-top:4px;font-size:13px;font-weight:600}.sch-card-service{color:#475569;margin-top:2px;font-size:13px}.sch-card-highlight,.sch-block.sch-card-highlight{outline:2px solid #1f4b6e;animation:.6s ease-out sch-flash;box-shadow:0 0 0 3px #1f4b6e33}@keyframes sch-flash{0%{box-shadow:0 0 0 8px #1f4b6e59}to{box-shadow:0 0 0 3px #1f4b6e33}}.sch-weekday-picks{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.sch-weekday-picks label{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #d0d7de;border-radius:8px;align-items:center;gap:4px;padding:6px 10px;font-size:13px;font-weight:600;display:inline-flex}.sch-weekday-picks label.on{color:#fff;background:#1f4b6e;border-color:#1f4b6e}.sch-booking-panel .panel-heading{align-items:flex-start}.sch-booking-form{padding:0 24px 24px}.sch-mode-toggle{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;display:grid}.sch-mode-toggle button{cursor:pointer;color:#14202b;background:#fff;border:2px solid #d0d7de;border-radius:12px;padding:16px 14px;font-size:16px;font-weight:700}.sch-mode-toggle button .sch-mode-short{display:none}.sch-mode-toggle button .sch-mode-full{display:inline}.sch-mode-toggle button.active{color:#1f4b6e;background:#e8f1f8;border-color:#1f4b6e}.sch-edit-scope{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:12px;display:flex}.sch-edit-scope .sch-section-label{margin-right:4px;font-size:13px;font-weight:700}.sch-edit-scope label{cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-weight:600;display:inline-flex}.sch-edit-scope label.on{background:#e8f1f8;border-color:#1f4b6e}.sch-form-columns{grid-template-columns:1fr 1fr;gap:20px;display:grid}.sch-form-col{flex-direction:column;gap:16px;min-width:0;display:flex}.sch-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:12px;margin:0;padding:16px;display:flex}.sch-section legend{color:#1f4b6e;padding:0 6px;font-size:14px;font-weight:700}.sch-section label{color:#334155;flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.sch-section label.wide{width:100%}.sch-section input,.sch-section select,.sch-section textarea{font-weight:500}.sch-time-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.sch-ends-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sch-ends-row label{cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:8px;flex-direction:row;align-items:center;padding:6px 10px;font-weight:600}.sch-ends-row label.on{background:#e8f1f8;border-color:#1f4b6e}.sch-form-actions{border-top:1px solid #e2e8f0;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:16px;display:flex}.sch-form-actions button{min-height:44px}.sch-close-backdrop{z-index:40;background:#0f172a73;justify-content:center;align-items:flex-end;padding:12px;display:flex;position:fixed;inset:0}.sch-close-dialog{background:#fff;border-radius:16px;width:min(560px,100%);max-height:min(92vh,760px);padding:20px 20px 16px;overflow:auto}.sch-close-dialog h2{margin:0 0 12px;font-size:22px;line-height:1.3}.sch-close-summary{grid-template-columns:1fr 1fr;gap:10px 16px;margin:0 0 14px;display:grid}.sch-close-summary div{min-width:0}.sch-close-summary dt{color:#64748b;font-size:12px;font-weight:700}.sch-close-summary dd{word-break:break-word;margin:2px 0 0;font-size:16px;font-weight:600}.sch-job-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;margin:0 0 16px;padding:16px}.sch-job-section h3{margin:0 0 12px;font-size:18px}.sch-job-grid{grid-template-columns:1fr;gap:12px;display:grid}.sch-job-grid .wide,.sch-job-section>.wide{grid-column:1/-1}.sch-job-section>label,.sch-extra-visits,.sch-sibling-visits{flex-direction:column;gap:6px;margin-top:12px;display:flex}.sch-check-row,.sch-inline-action{align-items:center;gap:10px;min-height:44px;font-weight:600;display:flex}.sch-extra-visit{background:#fff;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:1fr;gap:8px;margin-bottom:8px;padding:12px;display:grid}.sch-sibling-visits ul{margin:0;padding:0;list-style:none}.sch-close-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin:8px 0 0;padding:10px 12px}.sch-services{margin-top:4px}.sch-services-note,.sch-billing-choice p{margin:0 0 12px;font-size:14px}.sch-billing-choice{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.sch-billing-choice label{align-items:center;gap:10px;min-height:44px;font-weight:600;display:flex}.sch-lines{flex-direction:column;gap:10px;display:flex}.sch-line{background:#fff;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:1fr;gap:8px;padding:12px;display:grid}.sch-line label{color:#334155;flex-direction:column;gap:4px;font-size:13px;font-weight:700;display:flex}.sch-line input,.sch-line select{min-height:44px;font-size:16px}.sch-line-total{justify-content:space-between;align-items:center;min-height:44px;font-size:14px;display:flex}.sch-line-remove{min-height:44px}.sch-services-footer{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:12px;display:flex}.sch-services-footer .secondary{min-height:44px}.sch-services-totals{min-width:220px;margin-left:auto}.sch-services-totals div{justify-content:space-between;gap:16px;padding:4px 0;font-size:15px;display:flex}.sch-close-lines{margin:8px 0;padding:0;list-style:none}.sch-close-lines li,.sch-close-total{border-top:1px solid #e2e8f0;justify-content:space-between;gap:12px;padding:8px 0;display:flex}.sch-close-total{font-size:18px}.sch-close-missing{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:10px 12px}.inv-service-lines .sch-line{background:#f8fafc}.sch-close-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.sch-close-actions button{min-height:48px;padding:12px 16px;font-size:16px}.sch-close-keep{min-height:44px;font-size:15px}.sch-invoice-reminder{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;flex-direction:column;gap:4px;margin-bottom:8px;padding:10px;display:flex}.sch-invoice-reminder .table-button{min-height:44px;margin-top:6px}@media (min-width:800px){.sch-close-backdrop{align-items:center}.sch-job-grid,.sch-extra-visit{grid-template-columns:1fr 1fr}.sch-line{grid-template-columns:1.2fr 1.3fr .9fr .7fr .8fr .8fr auto;align-items:end}}@media (max-width:800px){.sch-close-summary{grid-template-columns:1fr}.sch-close-actions{flex-direction:column}.sch-close-actions button{width:100%}}.sch-unscheduled-link{margin:12px 0 0;font-size:13px}button.linkish{color:#1f4b6e;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.sch-staff-picker{margin-top:4px}.sch-staff-chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.sch-staff-chip{color:#14202b;background:#e8f1f8;border:1px solid #c5d8e8;border-radius:999px;align-items:center;gap:6px;padding:5px 8px 5px 10px;font-size:13px;font-weight:600;display:inline-flex}.sch-staff-chip button{cursor:pointer;color:#64748b;background:0 0;border:0;padding:0 2px;font-size:16px;line-height:1}.sch-staff-search-wrap{position:relative}.sch-staff-search-wrap input{width:100%}.sch-staff-dropdown{z-index:20;background:#fff;border:1px solid #d0d7de;border-radius:10px;max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0f172a1f}.sch-staff-dropdown li button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:8px 10px;font-weight:600}.sch-staff-dropdown li button:hover{background:#e8f1f8}.sch-staff-empty{padding:10px 12px}@media (max-width:1100px){.schedule-layout{grid-template-columns:1fr}.sch-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sch-form-columns{grid-template-columns:1fr}.sch-time-row{grid-template-columns:1fr 1fr}.sch-mode-toggle button .sch-mode-short{display:inline}.sch-mode-toggle button .sch-mode-full{display:none}}@media (max-width:700px){.sch-month-grid{display:none}.sch-week-grid,.sch-mode-toggle,.sch-time-row{grid-template-columns:1fr}}.sch-card[draggable=true],.sch-block[draggable=true]{cursor:grab}.sch-card.sch-dragging,.sch-block.sch-dragging{opacity:.55}.sch-drop-target{outline-offset:-2px;background:#f8fbff;outline:2px dashed #93c5fd}.sch-month-cell-head{justify-content:space-between;align-items:center;gap:4px;margin-bottom:4px;display:flex}.sch-month-add{color:#334155;cursor:pointer;background:#e2e8f0;border:0;border-radius:6px;width:22px;height:22px;padding:0;font-size:14px;line-height:1}.sch-month-add:hover{color:#fff;background:#1f4b6e}.sch-conflict-hint{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:0;padding:8px 10px;font-size:12px}.sch-unscheduled-item[draggable=true]{cursor:grab}@media (max-width:900px){.sch-month-add{width:28px;height:28px;font-size:16px}}.inv-sheet{color:#0f2744;background:#fff;border:1px solid #d5dde6;border-radius:12px;max-width:920px;margin:16px auto 28px;padding:28px 32px 20px;box-shadow:0 10px 30px #0f27440f}.inv-sheet-top,.inv-sheet-parties,.inv-sheet-refs{grid-template-columns:1fr 1fr;gap:24px;display:grid}.inv-sheet-top{align-items:start;margin-bottom:22px}.inv-subject{color:#1f2933;margin:0 0 14px;font-size:18px;font-weight:700}.inv-sheet-dates{gap:4px;margin-bottom:16px;display:grid}.inv-sheet-dates p,.inv-email>p{gap:16px;display:flex}.inv-sheet-dates span,.inv-email>p span{color:#526174;min-width:110px}.inv-number{color:#2e7338;margin:0;font-size:28px;font-weight:700}.inv-sheet-brand img,.inv-logo-preview{object-fit:contain;max-width:180px;max-height:64px}.inv-sheet-brand strong{font-size:20px}.inv-sheet-meta{text-align:right}.inv-sheet-meta h2{letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px}.inv-sheet p{margin:0 0 4px}.inv-sheet-meta p{justify-content:flex-end;gap:16px;margin:0 0 4px;display:flex}.inv-sheet-meta span{color:#526174;text-align:left;min-width:120px}.inv-sheet h3{color:#0f766e;letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;font-size:12px}.inv-sheet-refs{background:#f4f7f8;border-radius:8px;margin:18px 0;padding:12px 14px}.inv-sheet-lines{border-collapse:collapse;width:100%;margin-top:8px}.inv-sheet-lines th{color:#fff;text-align:left;background:#2e7338;padding:8px;font-size:12px}.inv-sheet-lines td{vertical-align:top;border-bottom:1px solid #e2e8f0;padding:8px}.inv-sheet-lines th:nth-child(n+3),.inv-sheet-lines td:nth-child(n+3){text-align:right}.inv-totals{width:min(320px,100%);margin-left:auto}.inv-totals div{justify-content:space-between;gap:16px;padding:4px 0;display:flex}.inv-totals-due{color:#2e7338;background:#e7f6e4;margin-top:6px;padding:8px;font-weight:700}.inv-sheet-note,.inv-sheet-pay{margin-top:16px}.inv-sheet-foot{color:#526174;border-top:1px solid #e2e8f0;justify-content:space-between;gap:12px;margin-top:24px;padding-top:10px;font-size:12px;display:flex}.inv-detail .panel-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}@media (max-width:800px){.inv-sheet{padding:18px 14px}.inv-sheet-top,.inv-sheet-parties,.inv-sheet-refs{grid-template-columns:1fr}.inv-sheet-meta{text-align:left}.inv-sheet-lines{display:block;overflow-x:auto}}.inv-email{gap:12px;display:grid}.jobber-invoice{gap:14px;padding:8px 0 20px;display:grid}.jobber-invoice-top,.jobber-invoice-parties,.jobber-invoice-dates{grid-template-columns:1fr 1fr;gap:18px;display:grid}.jobber-invoice-heading{text-align:right}.jobber-invoice-heading h2{color:#2e7338;letter-spacing:.08em;text-transform:uppercase;margin:0}.jobber-invoice h3{color:#2e7338;letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;font-size:12px}.jobber-lines-head,.jobber-line{grid-template-columns:130px 1.2fr 1.4fr 70px 90px 90px 150px;align-items:center;gap:8px;display:grid}.jobber-lines-head{color:#fff;background:#2e7338;padding:8px;font-size:12px}.jobber-line{border-bottom:1px solid #e6ebe8;padding:8px}.jobber-line-actions{gap:4px;display:flex}.jobber-invoice-pay{padding-top:8px}@media (max-width:900px){.jobber-invoice-top,.jobber-invoice-parties,.jobber-invoice-dates{grid-template-columns:1fr}.jobber-invoice-heading{text-align:left}.jobber-lines-head{display:none}.jobber-line{grid-template-columns:1fr 1fr}}@media print{.inv-page-count:after{content:" of " counter(pages)}.sidebar,.ux-mobile-bar,.no-print{display:none!important}.print-only,.shell{display:block}.content{max-width:none;margin:0}}.print-only{display:none}
