:root{--bg:#f3f5f7;--panel:#ffffff;--panel-alt:#fafbfc;--border:#d9dee5;--border-strong:#bdc6d1;--text:#1f2733;--text-muted:#5b6675;--text-faint:#8a93a0;--accent:#1f4e79;--accent-hover:#163a5b;--accent-soft:#e8eef5;--danger:#b3261e;--danger-soft:#fbe9e7;--success:#1e7d4f;--warning:#8a5a00;--warning-soft:#fdf3e2;--radius:6px;--sidebar-w:248px;font-synthesis-weight:none}.payroll-workbench{max-width:1500px}.payroll-period-form{align-items:flex-end;flex-wrap:wrap}.payroll-period-form .field{min-width:180px}.payroll-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:26px 0 12px}.payroll-section-heading>div{display:flex;align-items:center;gap:9px}.payroll-section-heading h2{margin:0;font-size:18px}.payroll-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:14px}.payroll-kpis .stat{min-width:0}.payroll-kpis .stat-value.money{font-size:22px;overflow-wrap:anywhere}.payroll-total-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.payroll-total-kpis .stat{position:relative;border-top:3px solid var(--border-strong)}.payroll-total-kpis .stat.total{border-top-color:var(--accent);background:var(--accent-soft)}.payroll-total-kpis .stat-note{margin-top:6px;color:var(--text-muted);font-size:11px;line-height:1.35}.monthly-labour-heading{margin-top:20px}.payroll-actions{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px}.payroll-actions .compact-form{flex:1 1 520px;align-items:flex-end}.payroll-actions .grow{min-width:260px}.payroll-table{min-width:1180px}.payroll-table td{vertical-align:top}.payroll-row-editor{position:relative;min-width:72px}.payroll-row-editor summary{cursor:pointer;color:var(--primary);font-weight:700}.payroll-row-editor[open] .payroll-editor-stack{position:absolute;right:0;z-index:20;width:min(760px,80vw);padding:14px;background:var(--surface);border:1px solid var(--border);box-shadow:0 12px 32px rgba(16,40,64,.18)}.payroll-editor-stack{display:grid;grid-gap:12px;gap:12px}.payroll-editor-stack .compact-form{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));align-items:center;grid-gap:8px;gap:8px}.payroll-cpf-form{padding-top:12px}.payroll-adjustment-list,.payroll-cpf-form{border-top:1px solid var(--border)}.payroll-adjustment-list h3{margin:0 0 10px;font-size:15px}.payroll-adjustment-list>div{display:grid;grid-template-columns:180px 1fr 120px 1fr;grid-gap:12px;gap:12px;padding:8px 0;border-top:1px solid var(--border-soft)}.payroll-empty{min-height:100px;display:grid;place-items:center}.payroll-paid-summary{display:grid;grid-template-columns:auto auto 1fr;grid-gap:8px 12px;gap:8px 12px;align-items:center}.payroll-paid-summary small{grid-column:2/-1}.payroll-lines-head{flex-wrap:wrap}.payroll-slip-actions{display:flex;align-items:center;gap:10px;margin-left:12px}.payroll-slip-actions span{color:var(--muted);font-size:12px}.payroll-select-all{display:flex;align-items:center;gap:6px;color:var(--text);font-size:12px;font-weight:700;white-space:nowrap}.payroll-select-all input{width:17px;height:17px;margin:0;accent-color:var(--primary)}.payroll-slip-actions .payroll-slip-error{color:var(--danger);font-weight:700}.payroll-select-column{width:58px;text-align:center!important}.payroll-select-column input{width:18px;height:18px;margin:0;accent-color:var(--primary)}.external-heading{margin-top:34px}.labour-recon-card+.labour-recon-card{margin-top:14px}.labour-recon-form{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:flex-end}.labour-recon-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) auto;grid-gap:14px;gap:14px;align-items:center;border-top:1px solid var(--border)}.labour-recon-summary>div:not(.row-actions){display:grid;grid-gap:4px;gap:4px}.labour-recon-summary span{color:var(--muted);font-size:12px}.labour-recon-summary .negative{color:var(--danger)}.supplier-payable-overview{margin-bottom:14px}.supplier-payable-overview table{min-width:820px}.supplier-payable-overview td:last-child{min-width:180px}.labour-refresh-notice{padding:9px 14px;color:var(--warning);background:var(--warning-soft);border-bottom:1px solid #efd69d;font-size:13px;font-weight:700}.labour-preview-card{border-left:3px solid var(--accent)}.labour-preview-note{color:var(--text-muted);background:var(--panel-alt);border-top:1px solid var(--border);font-size:13px}.report-document{width:min(1120px,calc(100% - 40px));margin:28px auto;color:#183042;background:#fff;font-family:Arial,sans-serif}.report-document header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:18px;border-bottom:3px solid #17496b}.report-document h1{margin:0;color:#17496b;font-size:24px}.report-document header p{margin:6px 0 0;font-weight:700}.report-meta{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1px;gap:1px;margin:18px 0;background:#dce4ea;border:1px solid #dce4ea}.report-meta>div{display:grid;grid-gap:5px;gap:5px;padding:10px;background:#f7f9fa}.report-meta span{color:#647786;font-size:11px;text-transform:uppercase}.report-document table{width:100%;border-collapse:collapse;font-size:12px}.report-document td,.report-document th{padding:9px 8px;border:1px solid #dce4ea;text-align:left}.report-document thead th{color:#fff;background:#17496b}.report-document tfoot th{background:#edf3f6}.report-document footer{margin-top:22px;padding-top:10px;border-top:1px solid #dce4ea;color:#647786;font-size:11px}.payslip-batch{min-height:100vh;padding:24px;color:#183042;background:#e9eef2;font-family:Arial,sans-serif}.payslip-print-toolbar{display:flex;justify-content:space-between;align-items:center;width:min(794px,100%);margin:0 auto 14px}.payslip-page{box-sizing:border-box;width:min(794px,100%);min-height:1040px;margin:0 auto 24px;padding:44px 50px 36px;background:#fff;box-shadow:0 8px 28px rgba(18,45,64,.14);break-after:page;page-break-after:always}.payslip-page:last-child{page-break-after:auto;break-after:auto}.payslip-letterhead{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:20px;border-bottom:3px solid #17496b}.payslip-letterhead h1{margin:0 0 5px;color:#17496b;font-size:23px;letter-spacing:0}.payslip-letterhead p{margin:2px 0;color:#617485;font-size:10px;line-height:1.45}.payslip-title{display:grid;justify-items:end;grid-gap:7px;gap:7px;color:#17496b}.payslip-title span{font-size:22px;font-weight:800}.payslip-title strong{font-size:15px}.payslip-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:22px 0;border:1px solid #d9e1e7}.payslip-meta>div{display:grid;grid-template-columns:115px 1fr;grid-gap:4px 12px;gap:4px 12px;align-items:baseline;padding:11px 13px;border-right:1px solid #d9e1e7;border-bottom:1px solid #d9e1e7}.payslip-meta>div:nth-child(2n){border-right:0}.payslip-meta>div:nth-last-child(-n+2){border-bottom:0}.payslip-meta span,.payslip-note span{color:#647786;font-size:11px;text-transform:uppercase}.payslip-meta strong{font-size:13px}.payslip-meta small{grid-column:2;color:#647786}.payslip-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px}.payslip-ledger{border:1px solid #d9e1e7}.payslip-ledger h2{margin:0;padding:10px 12px;color:#fff;background:#17496b;font-size:13px;text-transform:uppercase}.payslip-ledger>div{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;min-height:45px;padding:8px 12px;border-top:1px solid #e6ebef;font-size:12px}.payslip-ledger>div:first-of-type{border-top:0}.payslip-ledger span{display:grid;grid-gap:3px;gap:3px}.payslip-ledger small{color:#71818e;font-size:10px;overflow-wrap:anywhere}.payslip-ledger-total{color:#173e59;background:#edf4f7;font-weight:800}.payslip-net{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:1px;gap:1px;margin-top:20px;color:#fff;background:#d5e1e8}.payslip-net>div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;background:#17496b}.payslip-net>div:last-child{color:#173e59;background:#edf4f7}.payslip-net span{font-size:11px;font-weight:700;text-transform:uppercase}.payslip-net strong{font-size:20px;white-space:nowrap}.payslip-note{margin-top:18px;padding:12px 14px;border:1px solid #d9e1e7}.payslip-note p{min-height:28px;margin:6px 0 0;font-size:12px}.payslip-page footer{margin-top:28px;padding-top:10px;border-top:1px solid #d9e1e7;color:#647786;font-size:10px}@media (max-width:760px){.payroll-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-kpis .stat-value.money{font-size:17px}.payroll-section-heading{align-items:flex-start;flex-wrap:wrap}.payroll-actions,.payroll-actions .btn,.payroll-actions form,.payroll-section-heading .btn,.payroll-section-heading form{width:100%}.payroll-editor-stack .compact-form{grid-template-columns:1fr}.payroll-row-editor[open] .payroll-editor-stack{position:fixed;inset:auto 10px 12px;width:auto;max-height:72vh;overflow:auto}.payroll-adjustment-list>div{grid-template-columns:1fr;gap:4px}.payroll-lines-head{align-items:stretch}.payroll-slip-actions{width:100%;margin-left:0;justify-content:space-between}.payroll-slip-actions .btn{width:auto}.labour-recon-form,.labour-recon-summary{grid-template-columns:1fr}.labour-recon-summary .row-actions,.labour-recon-summary .row-actions>*{width:100%}.report-document{width:calc(100% - 20px);margin:10px auto}.report-meta{grid-template-columns:repeat(2,1fr)}.payslip-batch{padding:10px}.payslip-page{min-height:0;padding:24px 18px}.payslip-columns,.payslip-letterhead{grid-template-columns:1fr;flex-direction:column}.payslip-title{justify-items:start}.payslip-meta,.payslip-net{grid-template-columns:1fr}.payslip-meta>div{border-right:0;border-bottom:1px solid #d9e1e7!important}.payslip-meta>div:last-child{border-bottom:0!important}}@media (min-width:761px) and (max-width:1180px){.payroll-total-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media print{.print-hide{display:none!important}.report-document{width:100%;margin:0}.report-document tr{page-break-inside:avoid;break-inside:avoid}@page{size:A4 landscape;margin:12mm}body:has(.payslip-batch),html:has(.payslip-batch){height:auto!important;overflow:visible!important;background:#fff!important}body:has(.payslip-batch) .app-shell{display:block!important;min-height:0!important}body:has(.payslip-batch) .sidebar{display:none!important}body:has(.payslip-batch) .main{display:block!important;width:100%!important;min-height:0!important;overflow:visible!important}.payslip-batch{width:100%!important;padding:0;background:#fff}.payslip-batch,.payslip-page{display:block!important;min-height:0;overflow:visible!important}.payslip-page{width:100%;margin:0;padding:14mm 15mm 12mm;box-shadow:none;break-inside:avoid;page-break-inside:avoid}.payslip-page:last-child{break-after:auto;page-break-after:auto}}.holiday-panel .compact-form,.time-batch-toolbar,.time-context-form,.time-form-actions{display:flex;align-items:flex-end;gap:12px}.holiday-panel .grow,.time-batch-toolbar .grow,.time-context-form .grow{flex:1 1}.time-entry-context{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;margin-bottom:14px;background:var(--surface-soft,#f4f7f9);border-left:3px solid var(--primary,#174c6b)}.time-entry-lines{margin-top:14px}.time-entry-line,.time-line-header{display:grid;grid-template-columns:minmax(280px,1.8fr) minmax(110px,.45fr) minmax(180px,1fr) 38px;grid-gap:10px;gap:10px;align-items:center}.time-line-header{padding:0 8px 7px;color:var(--muted,#667085);font-size:12px;font-weight:700}.time-entry-line{padding:10px 8px;border-top:1px solid var(--border,#dfe4e8)}.time-entry-line .field label{display:none}.time-worker-picker{position:relative;min-width:0}.time-worker-input{display:flex;align-items:center;gap:7px;min-height:40px;padding:0 10px;border:1px solid var(--border,#cfd8df);background:#fff}.time-worker-input:focus-within{border-color:var(--primary,#174c6b);box-shadow:0 0 0 2px rgba(23,76,107,.1)}.time-worker-input input{border:0;padding:0;min-width:0;width:100%;outline:0;box-shadow:none}.time-worker-options{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:300px;overflow-y:auto;background:#fff;border:1px solid var(--border,#d7dee3);box-shadow:0 10px 28px rgba(15,32,45,.14)}.time-worker-options button{display:flex;flex-direction:column;gap:3px;width:100%;padding:10px 12px;text-align:left;border:0;border-bottom:1px solid #edf0f2;background:#fff;cursor:pointer}.time-worker-options button:hover{background:#f0f6f8}.time-history-row>div:first-of-type span,.time-worker-options span{color:var(--muted,#667085);font-size:12px}.empty-option{padding:14px;color:var(--muted,#667085);font-size:13px}.time-form-actions{justify-content:space-between;margin-top:14px}.time-history-list{display:grid;grid-gap:14px;gap:14px}.time-history-batch{border:1px solid var(--border,#dfe4e8);background:#fff}.time-history-batch>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:#f7f9fa;border-bottom:1px solid var(--border,#dfe4e8)}.time-history-batch>header div{display:flex;flex-direction:column;gap:2px}.time-history-row{display:grid;grid-template-columns:minmax(210px,1.5fr) 110px minmax(170px,1fr) 120px auto;align-items:end;grid-gap:10px;gap:10px;padding:10px 12px;border-bottom:1px solid #edf0f2}.time-history-row>div:first-of-type{display:flex;flex-direction:column;align-self:center;gap:3px}.time-history-row.is-void{opacity:.55;background:#fafafa;text-decoration:line-through}.time-cost{display:flex;flex-direction:column;gap:3px;align-self:center}.time-cost span{color:var(--muted,#667085);font-size:11px}.time-void-control{padding:9px 12px}.time-void-control summary{color:#a13c35;cursor:pointer;font-size:13px}.time-void-control form{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(220px,1fr) auto;grid-gap:8px;gap:8px;margin-top:8px;align-items:center}.time-status-pending{background:#fff3cd;color:#795b00}.time-status-approved{background:#e2f4e8;color:#176238}.time-status-returned{background:#fde8e7;color:#9b332d}.time-status-void{background:#eceff1;color:#5e6870}.holiday-layout{display:grid;grid-gap:16px;gap:16px}.holiday-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:7px 14px;gap:7px 14px}.holiday-list form{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border,#dfe4e8)}.holiday-list button{border:0;cursor:pointer}.alert.compact{margin:10px 0 0;padding:8px 10px;display:flex;align-items:center;gap:7px}.time-empty-state{min-height:180px;display:grid;place-items:center}@media (max-width:760px){.holiday-panel .compact-form,.time-batch-toolbar,.time-context-form{display:grid;grid-template-columns:1fr;align-items:stretch}.holiday-panel .compact-form .btn,.time-context-form .btn{width:100%;justify-content:center}.time-entry-context{flex-direction:column}.time-line-header{display:none}.time-entry-line{grid-template-columns:minmax(0,1fr) 92px 38px;grid-template-areas:"worker hours remove" "notes notes notes";gap:9px;padding:12px 0}.time-worker-picker{grid-area:worker}.time-hours-field{grid-area:hours}.time-notes-field{grid-area:notes}.time-entry-line>.icon-btn{grid-area:remove}.time-entry-line .field label{display:block}.time-form-actions{align-items:stretch}.time-form-actions .btn{flex:1 1;justify-content:center}.time-history-row{grid-template-columns:minmax(0,1fr) 92px;align-items:end}.time-history-row .time-cost,.time-history-row .time-notes-field,.time-history-row>div:first-of-type{grid-column:1/-1}.time-history-row>.btn{width:100%;justify-content:center}.holiday-list,.time-void-control form{grid-template-columns:1fr}}.narrow-panel{max-width:820px}.bq-sheet-statusbar{display:flex;align-items:center;gap:18px;min-height:44px;margin-bottom:14px;padding:8px 12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel-alt);font-size:.82rem}.bq-editor-meta{margin-bottom:14px}.bq-standard-table{min-width:1120px;table-layout:fixed}.bq-standard-table th:first-child{width:112px}.bq-standard-table th:nth-child(2){width:92px}.bq-standard-table th:nth-child(3){width:36%}.bq-standard-table th:nth-child(4){width:88px}.bq-standard-table th:nth-child(5),.bq-standard-table th:nth-child(6),.bq-standard-table th:nth-child(7){width:112px}.bq-standard-table th:last-child{width:104px}.bq-standard-table input,.bq-standard-table select,.bq-standard-table textarea{width:100%;min-width:0;border:1px solid transparent;border-radius:3px;background:transparent}.bq-standard-table input:focus,.bq-standard-table select:focus,.bq-standard-table textarea:focus{border-color:var(--accent);background:var(--panel)}.bq-standard-table textarea{min-height:42px;resize:vertical}.bq-standard-table .bq-method{margin-top:5px;color:var(--text-muted);font-size:.7rem}.bq-editor-actions,.bq-row-tools{display:flex;align-items:center;gap:6px}.bq-row-tools .icon-btn{width:27px;height:27px}.bq-editor-actions{margin-top:14px}.bq-total-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:24px;padding:12px 10px;border-top:1px solid var(--border);background:var(--panel-alt);font-size:.78rem}.bq-total-summary span{display:grid;grid-gap:3px;gap:3px;min-width:130px;color:var(--text-muted)}.bq-total-summary strong{color:var(--text);font-size:.92rem}.bq-total-summary .negative strong,.scope-discount td{color:var(--danger)}.bq-source-layout{display:grid;grid-template-columns:minmax(300px,34%) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.bq-source-preview{position:-webkit-sticky;position:sticky;top:16px;min-width:0}.bq-source-preview .subhead{margin-bottom:7px;color:var(--text-muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.bq-source-preview iframe{display:block;width:100%;height:68vh;margin-bottom:8px;border:1px solid var(--border-strong);background:#fff}.bq-canonical-pane{min-width:0}.bq-link-table input[type=checkbox]{width:17px;height:17px}.danger-zone{margin-top:20px;border-top:1px solid var(--danger);color:var(--danger)}.danger-zone>summary{display:flex;align-items:center;gap:7px;padding:12px 2px;cursor:pointer;font-weight:700}.danger-zone form{max-width:640px;padding:12px;border:1px solid var(--danger);background:var(--danger-soft)}@media (max-width:1100px){.bq-source-layout{grid-template-columns:1fr}.bq-source-preview{position:static}.bq-source-preview iframe{height:52vh}}@media (max-width:600px){.bq-editor-actions,.bq-sheet-statusbar{align-items:stretch;flex-direction:column}.bq-editor-actions .spacer,.bq-sheet-statusbar .spacer{display:none}.bq-editor-actions .btn{justify-content:center;width:100%}.bq-source-preview iframe{height:420px}}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body,html{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}button,input,select,textarea{font-family:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0 0 .5rem;font-weight:600;line-height:1.25}h1{font-size:1.35rem}h2{font-size:1.1rem}h3{font-size:.95rem}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:#14233a;color:#cdd6e3;display:flex;flex-direction:column;border-right:1px solid #0e1929}.sidebar-brand{padding:20px 18px 18px;border-bottom:1px solid #22334d}.sidebar-brand .brand-name{font-weight:700;font-size:1rem;color:#ffffff;letter-spacing:0}.sidebar-brand .brand-sub{margin-top:2px;font-size:.71rem;color:#7e8ca3;text-transform:uppercase;letter-spacing:0}.sidebar-nav{flex:1 1;padding:12px 10px;overflow-y:auto}.nav-section{margin:16px 10px 7px;font-size:.67rem;text-transform:uppercase;letter-spacing:0;color:#6c7a92}.nav-link{display:flex;align-items:center;gap:10px;min-height:39px;padding:9px 10px;border-radius:var(--radius);color:#cdd6e3;font-size:.88rem;font-weight:500;transition:background-color .14s ease,color .14s ease}.nav-link:hover{background:#1d3050;text-decoration:none;color:#ffffff}.nav-link.active{background:#285a87;color:#ffffff;box-shadow:inset 3px 0 0 #77acd8}.nav-link .nav-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;opacity:.9;flex:0 0 auto}.nav-link .nav-label{min-width:0}.nav-badge{margin-left:auto;background:#e7a13a;color:#2a1d00;font-size:.7rem;font-weight:700;border-radius:10px;padding:0 7px;line-height:18px}.sidebar-footer{padding:14px 16px 16px;border-top:1px solid #22334d;font-size:.78rem}.sidebar-footer .who{color:#ffffff;font-weight:600}.sidebar-footer .role{color:#7e8ca3;margin-top:2px;overflow-wrap:anywhere}.sidebar-utilities{display:flex;align-items:center;gap:8px;margin-top:11px;color:#8fa0b7}.language-switch{display:inline-flex;align-items:center;gap:0;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden;background:#fff}.language-switch button{border:0;border-right:1px solid var(--border-strong);background:transparent;color:var(--text-muted);cursor:pointer;font:inherit;font-size:.76rem;font-weight:700;min-width:38px;padding:4px 8px}.language-switch button:last-child{border-right:0}.language-switch button.active{background:var(--accent);color:#fff}.sidebar .language-switch{width:100%;margin-top:0;border-color:#31445f;background:#0f1c2f}.sidebar .language-switch button{flex:1 1;border-color:#31445f;color:#aebbd0}.sidebar .language-switch button.active{background:#2b5f90;color:#fff}.language-switch.compact{margin-bottom:14px}.main{display:flex;flex-direction:column;min-width:0}.topbar{background:var(--panel);border-bottom:1px solid var(--border);min-height:58px;padding:13px 26px;display:flex;align-items:center;gap:12px}.topbar .page-title{font-size:1.22rem;font-weight:700}.topbar .spacer{flex:1 1}.content{padding:24px clamp(22px,2.2vw,34px) 36px;max-width:none;width:100%;min-width:0}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;box-shadow:0 1px 2px rgba(20,35,58,.035)}.panel-head{min-height:49px;padding:13px 17px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.panel-head h2,.panel-head h3{margin:0;letter-spacing:0}.panel-head .spacer{flex:1 1}.panel-body{padding:18px}.panel-body.tight{padding:0}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));grid-gap:12px;gap:12px}.module-card{display:block;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-height:132px;padding:15px 16px;color:var(--text);transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.module-card:hover{border-color:var(--accent);text-decoration:none;box-shadow:0 5px 14px rgba(20,35,58,.08);transform:translateY(-1px)}.module-card.is-disabled{background:var(--panel-alt);color:var(--text-muted)}.module-card.is-disabled:hover{border-color:var(--border);box-shadow:none;cursor:not-allowed}.module-card .mc-title{font-weight:700;margin-bottom:5px}.module-card .mc-desc{color:var(--text-muted);font-size:.82rem;line-height:1.45}.module-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.module-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent)}.module-arrow{color:var(--text-faint);transition:color .14s ease,transform .14s ease}.module-card:hover .module-arrow{color:var(--accent);transform:translate(1px,-1px)}.document-generation-intro{margin-bottom:18px}.document-generation-intro h2{margin-bottom:5px;font-size:1.05rem}.document-generation-intro p{max-width:760px;margin:0;color:var(--text-muted)}.document-generation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px}.document-generator-card{display:flex;min-height:250px;flex-direction:column;gap:16px;padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:0 1px 2px rgba(20,35,58,.035)}.document-generator-icon{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent)}.document-generator-copy{flex:1 1}.document-generator-copy h2{margin-bottom:7px;font-size:1.05rem}.document-generator-copy p{margin:0;color:var(--text-muted);line-height:1.55}.document-generator-card .row-actions{padding-top:15px;border-top:1px solid var(--border)}@media (max-width:980px){.document-generation-grid{grid-template-columns:1fr}.document-generator-card{min-height:0}}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:12px;gap:12px}.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(190px,280px))}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;min-width:0;box-shadow:0 1px 2px rgba(20,35,58,.03)}.stat .stat-value{font-size:1.55rem;font-weight:700;letter-spacing:0}.stat .stat-label{color:var(--text-muted);font-size:.8rem}table.data{width:100%;border-collapse:collapse;font-size:.87rem}table.data td,table.data th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}table.data thead th{background:#f7f9fb;color:var(--text-muted);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:0}table.data tbody tr:hover{background:var(--panel-alt)}table.data input,table.data select,table.data textarea{font:inherit;padding:6px 8px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;color:var(--text);max-width:100%}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}.table-scroll>table.data{min-width:760px}.finance-form-grid{max-width:960px}.finance-claim-table{min-width:1120px}.finance-claim-table textarea{width:220px}.inline-warning{margin-top:4px;color:var(--warning);font-size:.72rem;line-height:1.25}.warning-text{color:var(--warning);font-weight:700}.row-actions{gap:6px}.check-row,.row-actions{display:flex;flex-wrap:wrap}.check-row{gap:10px 16px}.check-row label{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;color:var(--text)}.wopo-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:8px;gap:8px}.wopo-option{display:flex;align-items:flex-start;gap:8px;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface,#fff);font-size:.84rem;line-height:1.35;color:var(--text);cursor:pointer}.wopo-option input[type=checkbox]{width:auto;flex:none;margin-top:2px}.wopo-option span{min-width:0;overflow-wrap:anywhere}@media (max-width:600px){.wopo-option-grid{grid-template-columns:1fr}}.form-grid{display:grid;grid-gap:14px;gap:14px;max-width:620px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:.8rem;font-weight:600;color:var(--text-muted)}.field input,.field select,.field textarea{font:inherit;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;color:var(--text);width:100%;min-height:40px;transition:border-color .14s ease,box-shadow .14s ease}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.field .hint{font-size:.75rem;color:var(--text-faint)}.two-column-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;align-items:start}.compact-form{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}.compact-form .span-2{grid-column:1/-1}.check-field{display:flex;align-items:center;gap:8px;min-height:40px;color:var(--text-muted);font-size:.82rem;font-weight:600}.check-field input{width:auto}.allocation-list{display:grid;grid-gap:7px;gap:7px;max-height:320px;overflow-y:auto;padding:2px}.allocation-row{display:grid;grid-template-columns:20px minmax(0,1fr) 120px;align-items:center;grid-gap:9px;gap:9px;padding:9px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-alt)}.allocation-row>input[type=checkbox]{width:auto}.allocation-row span{min-width:0}.allocation-row small,.allocation-row strong{display:block}.allocation-row small{margin-top:2px;color:var(--text-muted);font-weight:400;line-height:1.35}.allocation-row>input[type=number]{min-width:0}.is-void{color:var(--text-faint);text-decoration:line-through}.is-void .badge,.is-void form{text-decoration:none}.status-VOID{background:#f1f3f5;color:#667085;border-color:#d0d5dd}.status-CONFIRMED{background:#e9f7ef;color:#17613b;border-color:#a9ddbf}.inline-edit{display:flex;align-items:center;gap:6px;min-width:540px}.inline-edit input{width:96px}.inline-edit input[name=notes],.inline-edit input[name=remark]{width:150px}.inline-edit label{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:.78rem}.inline-edit label input{width:auto}.period-form,.report-filter{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.report-filter{padding:14px}.period-form .grow{flex:1 1;min-width:220px}.period-links{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.payroll-sheet{border-top:1px solid var(--border);padding-top:16px}.confirm-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 0 0;color:var(--text-muted);font-size:.82rem}.segmented{display:inline-flex;padding:3px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--panel-alt)}.segmented label{cursor:pointer}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented span{display:block;min-width:72px;padding:7px 12px;text-align:center;border-radius:3px;color:var(--text-muted);font-size:.82rem;font-weight:600}.segmented input:checked+span{background:var(--panel);color:var(--text);box-shadow:0 1px 3px rgba(20,35,58,.12)}.report-table{min-width:980px!important}.reconciliation-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.reconciliation-grid>div{display:flex;flex-direction:column;gap:5px;padding:12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel)}.reconciliation-grid span{color:var(--text-muted);font-size:.74rem}.reconciliation-grid strong{font-size:1rem}.reconciliation-grid .reconciliation-total{background:var(--panel-alt)}.negative{color:var(--danger)!important}.budget-stats .stat{flex:1 1 170px}.budget-annual-editor>summary{cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.budget-annual-editor>summary::-webkit-details-marker{display:none}.budget-annual-editor>summary span{margin-left:auto;color:var(--text-muted);font-size:.78rem}.budget-annual-editor[open]>summary{border-bottom:1px solid var(--border)}.budget-annual-meta{margin-bottom:14px}.budget-month-grid{min-width:1120px}.budget-month-grid input{min-width:80px}.gst-adjustment-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.inline-payment{display:flex;align-items:center;gap:6px;min-width:430px}.inline-payment input{width:132px;min-height:34px}.inline-payment input[name=paymentReference]{width:150px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:.83rem;font-weight:600;line-height:1.2;min-height:36px;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:linear-gradient(180deg,#ffffff,#f7f9fb);color:var(--text);cursor:pointer;white-space:nowrap;box-shadow:0 1px 1px rgba(20,35,58,.04),inset 0 1px 0 rgba(255,255,255,.7);transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,color .14s ease,transform 80ms ease}.btn,.btn:hover{text-decoration:none}.btn:hover{border-color:#9eabb9;background:linear-gradient(180deg,#ffffff,#eef3f8);box-shadow:0 2px 5px rgba(20,35,58,.1),inset 0 1px 0 rgba(255,255,255,.8)}.btn:active{transform:translateY(1px);box-shadow:0 1px 2px rgba(20,35,58,.08),inset 0 1px 2px rgba(20,35,58,.08)}.btn:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(31,78,121,.18),0 1px 2px rgba(20,35,58,.08)}.btn.primary{background:linear-gradient(180deg,#2b628f 0,var(--accent) 100%);border-color:#1b466d;color:#fff;box-shadow:0 2px 5px rgba(31,78,121,.22),inset 0 1px 0 rgba(255,255,255,.14)}.btn.primary:hover{background:linear-gradient(180deg,#2f6d9d 0,var(--accent-hover) 100%);border-color:#143657;box-shadow:0 3px 8px rgba(31,78,121,.28),inset 0 1px 0 rgba(255,255,255,.16)}.btn.primary:focus-visible{border-color:#123350;box-shadow:0 0 0 3px rgba(31,78,121,.24),0 2px 6px rgba(31,78,121,.22)}.btn.danger{color:var(--danger);border-color:#d9aaa6;background:linear-gradient(180deg,#ffffff,#fff7f6)}.btn.danger:hover{color:#8f1d17;border-color:#c98984;background:var(--danger-soft);box-shadow:0 2px 5px rgba(179,38,30,.1),inset 0 1px 0 rgba(255,255,255,.72)}.btn.danger:focus-visible{border-color:var(--danger);box-shadow:0 0 0 3px rgba(179,38,30,.16),0 1px 2px rgba(20,35,58,.08)}.btn.small{min-height:32px;padding:5px 10px;font-size:.78rem}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn:disabled:hover{border-color:var(--border-strong);background:#fff;box-shadow:none}.btn.primary:disabled,.btn.primary:disabled:hover{color:#fff;border-color:#426b89;background:#426b89;opacity:.78}.badge{display:inline-block;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:11px;border:1px solid transparent}.badge.role-ADMIN{background:#ede7f6;color:#4527a0}.badge.role-CEO,.badge.role-LEADERSHIP{background:#e3f2fd;color:#0d47a1}.badge.role-CFO,.badge.role-PROJECT_DIRECTOR,.badge.role-PROJECT_MANAGER{background:#e8eef5;color:#1f4e79}.badge.role-QS{background:#e7f3ee;color:#196744}.badge.role-EMPLOYEE,.badge.role-STAFF{background:#eceff1;color:#37474f}.badge.warning{border-color:#ead09d;background:var(--warning-soft);color:var(--warning)}.badge.success{border-color:#b9dec9;background:#edf8f2;color:var(--success)}.badge.status-DRAFT{background:#eceff1;color:#455a64}.badge.status-PENDING,.badge.status-PENDING_CERTIFICATION,.badge.status-SUBMITTED{background:var(--warning-soft);color:var(--warning)}.badge.status-APPROVED,.badge.status-CERTIFIED{background:#e6f4ea;color:var(--success)}.badge.status-PARTIALLY_CERTIFIED{background:#e8eef5;color:var(--accent)}.badge.status-REJECTED{background:var(--danger-soft);color:var(--danger)}.badge.status-PAID,.badge.status-REIMBURSED{background:#e6f4ea;color:var(--success)}.badge.status-VOID{background:#eceff1;color:#68737f}.alert{padding:10px 14px;border-radius:var(--radius);font-size:.85rem;margin-bottom:14px;border:1px solid transparent}.alert.error{background:var(--danger-soft);color:var(--danger);border-color:#e3b6b3}.alert.success{background:#e6f4ea;color:var(--success);border-color:#b6dcc2}.alert.info{background:var(--accent-soft);color:var(--accent);border-color:#c3d4e6}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.empty{padding:28px;text-align:center;color:var(--text-faint)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#16243a,#1f4e79);padding:24px}.login-card{background:#fff;border-radius:10px;width:100%;max-width:380px;padding:28px 26px;box-shadow:0 12px 40px rgba(0,0,0,.22)}.login-card .login-brand{font-weight:700;font-size:1.15rem}.login-card .login-sub{color:var(--text-muted);font-size:.82rem;margin-bottom:18px}.login-card .seed-hint{margin-top:16px;padding-top:14px;border-top:1px dashed var(--border);font-size:.76rem;color:var(--text-faint)}.login-card .seed-hint code{color:var(--text-muted)}.forced-password-shell{display:grid;min-height:100vh;padding:32px 18px;place-items:center;background:#eef2f6}.forced-password-card{width:min(100%,560px);padding:30px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 14px 36px rgba(20,35,58,.12)}.forced-password-icon{display:grid;width:48px;height:48px;margin-bottom:18px;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.forced-password-eyebrow{margin:0 0 6px;color:var(--text-muted);font-size:.72rem;font-weight:700}.forced-password-card>.muted{margin:0 0 22px}.forced-password-card .form-grid{max-width:none!important}.forced-password-note{margin:0}.forced-password-logout{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}@media (max-width:600px){.forced-password-shell{align-items:start;padding:18px 12px}.forced-password-card{padding:22px 18px}.forced-password-card .btn{min-height:44px}}@media (max-width:760px){.app-shell{display:block;min-height:100vh}.sidebar{display:grid;grid-template-columns:minmax(118px,1fr) auto;border-right:0;border-bottom:1px solid #0e1929;position:-webkit-sticky;position:sticky;top:0;z-index:30}.sidebar-brand{grid-column:1;grid-row:1;padding:10px 12px;border-bottom:0}.sidebar-brand .brand-name{font-size:.86rem}.sidebar-brand .brand-sub{font-size:.66rem}.sidebar-nav{grid-column:1/-1;grid-row:2;display:flex;gap:7px;padding:7px 8px 8px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.sidebar-nav::-webkit-scrollbar{display:none}.nav-section{display:none}.nav-link{flex:0 0 auto;white-space:nowrap;min-height:38px;padding:8px 10px;scroll-snap-align:start;background:rgba(255,255,255,.03)}.nav-link .nav-icon{width:16px}.sidebar-footer{grid-column:2;grid-row:1;display:flex;align-items:center;gap:8px;padding:7px 8px 7px 0;border-top:0;overflow-x:auto;scrollbar-width:none}.sidebar-footer::-webkit-scrollbar{display:none}.sidebar-footer .role,.sidebar-footer .who{display:none}.sidebar-footer .logout-form{margin-top:0!important;margin-left:auto;flex:0 0 auto}.sidebar-footer .btn{width:auto!important;min-height:32px}.sidebar .language-switch{width:auto;margin-top:0;flex:0 0 auto}.sidebar .language-switch button{min-width:34px;padding:4px 7px}.sidebar-utilities{margin-top:0;gap:0}.sidebar-utilities>svg{display:none}.topbar{min-height:52px;padding:11px 14px;flex-wrap:wrap;align-items:flex-start;gap:8px}.topbar>.row-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));flex:1 1 100%;width:100%}.topbar>.row-actions .btn{width:100%;min-height:40px}.topbar .page-title{overflow-wrap:anywhere;font-size:1rem;line-height:1.35}.topbar .spacer{display:none}.topbar .btn{min-height:36px;justify-content:center}.content{padding:12px 10px 24px;max-width:100%}.panel{overflow:hidden;margin-bottom:14px}.panel-head{align-items:flex-start;flex-wrap:wrap;min-height:46px;padding:11px 13px;gap:8px}.panel-head .spacer{display:none}.panel-head .faint{flex-basis:100%;font-size:.76rem}.panel-body{padding:14px 13px}.panel-body.tight{overflow-x:auto;-webkit-overflow-scrolling:touch}table.data{min-width:720px;font-size:.82rem}form .panel-body.tight table.data{min-width:760px}table.data td,table.data th{padding:8px 10px}table.data thead th{font-size:.68rem}table.data input,table.data select,table.data textarea{min-height:38px;font-size:16px}.form-grid{max-width:100%!important;gap:12px}.form-grid>div[style*=grid-template-columns]{grid-template-columns:1fr!important}.finance-form-grid{grid-template-columns:1fr}.field input,.field select,.field textarea{min-height:42px;font-size:16px}.field textarea{min-height:92px}label.field[style*=row]{align-items:flex-start!important;gap:8px;line-height:1.35}label.field[style*=row] input{width:auto;min-height:auto;margin-top:2px}.row-actions{gap:8px}.row-actions>.btn,.row-actions>a,.row-actions>button{min-height:38px;justify-content:center}.content>form>.row-actions>.btn,.content>form>.row-actions>a,.content>form>.row-actions>button,.panel-body>.row-actions>.btn,.panel-body>.row-actions>a,.panel-body>.row-actions>button{flex:1 1 150px}table.data .row-actions{flex-wrap:nowrap}table.data .row-actions .btn{flex:0 0 auto;min-height:32px}.stat-row{gap:8px}.dashboard-stats,.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{min-width:0;padding:13px 14px}.stat .stat-value{font-size:1.25rem;overflow-wrap:anywhere}.stat .stat-label{font-size:.75rem}.grid-cards{grid-template-columns:1fr;gap:10px}.module-card{min-height:0;padding:14px}.module-card-head{margin-bottom:12px}.alert{padding:9px 11px;font-size:.82rem}.empty{padding:22px 14px}.login-wrap{align-items:flex-start;padding:18px 14px}.login-card{margin-top:8vh;padding:22px 18px}}.module-tabs{gap:4px;margin-bottom:16px;background:#fff}.module-tabs a{flex:0 0 auto;padding:7px 12px;font-size:.82rem}.approval-stats,.employee-purchase-stats{margin-bottom:16px}.employee-purchase-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-form-grid{max-width:900px;grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:1/-1}.attachment-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}.attachment-links a{display:inline-flex;min-height:30px;align-items:center;padding:5px 9px;border:1px solid #b9cadb;border-radius:4px;background:var(--accent-soft);font-size:.76rem;font-weight:600}.attachment-links.compact{min-width:110px;margin:0}.purchase-request-form{max-width:940px}.purchase-meta-grid{grid-column:1/-1;display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-lines{display:grid;grid-gap:8px;gap:8px}.purchase-line{display:grid;grid-template-columns:minmax(220px,1fr) 130px 130px 54px;grid-gap:8px;gap:8px;align-items:center}.purchase-line-head{padding:0 2px;color:var(--text-muted);font-size:.76rem;font-weight:700}.inline-payment-form input,.purchase-line input,.reject-form input{width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;font:inherit}.material-summary{display:grid;grid-gap:3px;gap:3px;min-width:210px;font-size:.8rem}.decision-note{max-width:180px;margin-top:5px;color:var(--danger);overflow-wrap:anywhere}.reimbursement-create-form{display:grid;grid-gap:14px;gap:14px}.reimbursement-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;max-width:680px}.reimbursement-picker{padding:0}.approval-card-list,.reimbursement-list{display:grid;grid-gap:10px;gap:10px}.approval-card,.reimbursement-record{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-alt)}.reimbursement-record{padding:14px}.approval-card-meta,.approval-card-title,.reimbursement-record-head,.reimbursement-record-total{display:flex;align-items:center;gap:12px}.reimbursement-record-head{justify-content:space-between}.reimbursement-record-total{justify-content:flex-end}.approval-line-items,.reimbursement-lines{display:grid;grid-gap:5px;gap:5px;margin:12px 0}.approval-line-items>div,.reimbursement-lines>div{display:flex;justify-content:space-between;gap:18px;padding:6px 8px;border-bottom:1px solid var(--border);font-size:.8rem}.inline-payment-form{display:grid;grid-template-columns:140px minmax(160px,1fr) auto;grid-gap:7px;gap:7px;width:min(100%,520px)}.approval-payment-form{display:grid;grid-template-columns:1fr;grid-gap:7px;gap:7px}.approval-payment-form input{width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;font:inherit}.approval-history-panel{margin-top:22px}.approval-history-table{min-width:1120px}.approval-history-table td{vertical-align:top}.approval-history-table td:nth-child(4){min-width:240px}.approval-history-table tr:target{background:var(--accent-soft)}.reimbursement-approval-note{margin-top:9px}.compact-alert{margin:8px 0}.approval-card{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:16px;gap:16px;padding:14px}.approval-card-title{flex-wrap:wrap}.approval-card-title strong:last-child{margin-left:auto}.approval-card-meta{flex-wrap:wrap;margin-top:7px;color:var(--text-muted);font-size:.78rem}.approval-card-main>p{margin:9px 0 0}.approval-actions{display:grid;grid-gap:8px;gap:8px;align-content:start}.reject-form{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:7px;gap:7px}.machinery-rental-record{background:#fff}.rental-facts{grid-gap:0;gap:0}.rental-maintenance{position:relative}.project-workspace{padding-top:18px}.project-summary-band{display:grid;grid-template-columns:1.1fr 1.7fr 1fr 1fr;border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);background:var(--panel);margin-bottom:14px}.project-summary-band>div{min-width:0;padding:13px 16px;border-right:1px solid var(--border)}.project-summary-band>div:last-child{border-right:0}.project-summary-band span,.project-summary-band strong{display:block;overflow-wrap:anywhere}.project-summary-band span{margin-bottom:3px;color:var(--text-muted);font-size:.72rem;font-weight:600;text-transform:uppercase}.project-summary-band strong{font-size:.88rem}.project-tabs{display:flex;align-items:stretch;min-height:48px;margin-bottom:18px;border-bottom:1px solid var(--border-strong);overflow-x:auto}.project-tabs a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:150px;padding:12px 18px;border-bottom:3px solid transparent;color:var(--text-muted);font-weight:650;white-space:nowrap}.project-tabs a:hover{color:var(--text);text-decoration:none;background:#f8fafc}.project-tabs a.active{border-bottom-color:#26839b;color:#145f72}.project-kpis{grid-template-columns:repeat(4,minmax(180px,1fr));margin-bottom:18px}.project-kpis .stat-value{font-size:1.28rem}.ai-office-panel{border-left:4px solid #d59b2d}.ai-office-panel .panel-head>svg,.bq-review-panel .panel-head>svg{color:#a66c00}.bq-upload-form{display:grid;grid-template-columns:minmax(280px,1.4fr) minmax(280px,1fr) auto;align-items:end;grid-gap:14px;gap:14px}.bq-upload-form .btn{min-height:40px}.bq-analysis-progress{display:none;grid-column:1/-1;padding:14px 16px;border:1px solid #b9d5df;border-radius:6px;background:#f1f8fa}.bq-upload-form.is-processing .bq-analysis-progress{display:block}.bq-submit-active,.bq-submit-idle{align-items:center;gap:7px}.bq-submit-idle{display:inline-flex}.bq-submit-active,.bq-upload-form.is-processing .bq-submit-idle{display:none}.bq-upload-form.is-processing .bq-submit-active{display:inline-flex}.bq-analysis-progress-head{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#145f72}.bq-analysis-progress-head span{display:inline-flex;align-items:center;gap:8px;font-weight:700}.bq-analysis-progress-track{position:relative;height:8px;margin-top:10px;overflow:hidden;border-radius:4px;background:#dbe9ee}.bq-analysis-progress-track span{position:absolute;inset:0 auto 0 -35%;width:35%;border-radius:inherit;background:#26839b;animation:bq-analysis-progress 1.5s ease-in-out infinite}.bq-analysis-progress p{margin:9px 0 0;color:var(--text-muted);font-size:.78rem;line-height:1.45}@keyframes bq-analysis-progress{0%{left:-35%}to{left:100%}}.spin{animation:control-spin .9s linear infinite}@keyframes control-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.bq-analysis-progress-track span{left:0;width:100%;animation:none}.spin{animation:none}}.bq-confirm{align-self:center;font-weight:500;line-height:1.35}.ai-config-warning{margin:14px 0 0}.status-PROCESSING{background:#e8f2f7;color:#1c6076;border-color:#b9d5df}.status-DRAFT{background:var(--warning-soft);color:var(--warning);border-color:#ead19c}.status-FAILED{background:var(--danger-soft);color:var(--danger);border-color:#e7b5b1}.status-PUBLISHED{background:#e9f7ef;color:var(--success);border-color:#a9ddbf}.status-DELETED{background:var(--panel-alt);color:var(--text-muted);border-color:var(--border)}.analysis-row-actions{display:flex;align-items:flex-start;gap:7px;min-width:132px}.analysis-delete-control{position:relative}.analysis-delete-control>summary{list-style:none;cursor:pointer}.analysis-delete-control>summary::-webkit-details-marker{display:none}.analysis-delete-confirm{position:absolute;z-index:12;top:calc(100% + 6px);right:0;display:grid;grid-gap:7px;gap:7px;width:230px;padding:12px;border:1px solid #d9aaa6;border-radius:6px;background:var(--panel);box-shadow:0 8px 22px rgba(20,35,58,.16)}.analysis-delete-confirm span{color:var(--text-muted);font-size:.75rem;line-height:1.4}.file-row-actions{display:flex;align-items:center;gap:7px;min-width:150px}.file-delete-control{position:relative}.file-delete-control>summary{list-style:none;cursor:pointer}.file-delete-control>summary::-webkit-details-marker{display:none}.file-delete-confirm{position:absolute;z-index:12;top:calc(100% + 6px);right:0;display:grid;grid-gap:7px;gap:7px;width:250px;padding:12px;border:1px solid #d9aaa6;border-radius:6px;background:var(--panel);box-shadow:0 8px 22px rgba(20,35,58,.16)}.file-delete-confirm span{color:var(--text-muted);font-size:.75rem;line-height:1.4}.analysis-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.analysis-meta span{padding:5px 8px;border:1px solid var(--border);border-radius:4px;background:var(--panel-alt);color:var(--text-muted);font-size:.75rem}.bq-review-table{min-width:1050px!important;table-layout:fixed}.bq-review-table td:first-child,.bq-review-table th:first-child{width:115px}.bq-review-table td:nth-child(2),.bq-review-table th:nth-child(2){width:42%}.bq-review-table td:nth-child(3),.bq-review-table th:nth-child(3){width:80px}.bq-review-table td:nth-child(4),.bq-review-table th:nth-child(4){width:95px}.bq-review-table td:nth-child(5),.bq-review-table td:nth-child(6),.bq-review-table th:nth-child(5),.bq-review-table th:nth-child(6){width:145px}.bq-review-table input,.bq-review-table select,.bq-review-table textarea{width:100%;min-width:84px}.bq-review-table textarea{resize:vertical}.bq-row-source{margin-top:5px;color:var(--text-muted);font-size:.72rem}.bq-review-table tr.needs-review td:first-child{box-shadow:inset 3px 0 0 #d59b2d}.publish-bar,.review-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:14px}.publish-bar{padding-top:14px;border-top:1px solid var(--border)}.project-progress-table{min-width:1180px!important}.project-progress-table th:nth-child(2){width:34%}.ai-billing-panel{border-left:4px solid #26839b}.ai-billing-panel .panel-head>svg{color:#197187}.ai-billing-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);background:var(--panel)}.ai-billing-kpis>div{min-width:0;padding:15px 18px;border-right:1px solid var(--border)}.ai-billing-kpis>div:last-child{border-right:0}.ai-billing-kpis small,.ai-billing-kpis span,.ai-billing-kpis strong{display:block}.ai-billing-kpis span{color:var(--text-muted);font-size:.74rem;font-weight:650}.ai-billing-kpis strong{margin-top:5px;color:#145f72;font-size:1.3rem}.ai-billing-kpis small{margin-top:4px;color:var(--text-muted)}.ai-billing-history{margin-top:16px}.ai-billing-history table{min-width:840px}.ai-billing-empty{margin-top:16px;border:1px dashed var(--border-strong)}.ai-billing-note{margin:12px 0 0;color:var(--text-muted);font-size:.76rem;line-height:1.55}.scope-discount td,.scope-header td,.scope-note td,.scope-subtotal td,.scope-tax td{background:#f7f9fb}.scope-header td{border-top:1px solid var(--border-strong);color:#194d61}.scope-discount td,.scope-subtotal td,.scope-tax td{text-align:right}.progress-readout{min-width:136px}.progress-track{width:100%;height:5px;margin-top:5px;overflow:hidden;background:#e6ebef;border-radius:3px}.progress-track span{display:block;height:100%;background:#26839b}.progress-editor{display:grid;grid-template-columns:90px 32px;grid-gap:5px;gap:5px;margin-top:7px}.progress-editor input{width:90px;min-height:32px}.progress-save-status{min-height:18px;margin-top:3px;color:#32735d;font-size:.7rem;line-height:18px}.progress-save-status.error{max-width:180px;color:var(--danger);line-height:1.3}.icon-btn{display:inline-flex;align-items:center;width:32px;height:32px;border:1px solid var(--border-strong);border-radius:4px;background:#fff;color:var(--accent);cursor:pointer}.icon-btn:hover{border-color:var(--accent);background:var(--accent-soft)}.icon-btn:disabled{cursor:default;opacity:.62}.claim-record-header,.contract-record-form,.project-file-form{max-width:920px}.claim-record-form{display:grid;grid-gap:14px;gap:14px}.claim-entry-table{min-width:1120px!important}.claim-entry-table input[type=checkbox]{width:18px;height:18px}.claim-entry-table input[type=number]{width:120px}.claim-entry-table input[type=text]{min-width:210px}.cost-breakdown-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.project-files-table td:nth-child(2)>svg{margin-right:5px;vertical-align:-2px;color:var(--text-muted)}.file-category{background:#edf4f6;color:#2b6475;border-color:#c7dce3}@media (max-width:980px){.two-column-workspace{grid-template-columns:1fr}.reconciliation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.approval-card,.employee-purchase-cards{grid-template-columns:1fr}.rental-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.rental-facts>div:nth-child(2n){border-right:0}.project-summary-band{grid-template-columns:repeat(2,minmax(0,1fr))}.project-summary-band>div:nth-child(2n){border-right:0}.project-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.bq-upload-form{align-items:stretch}.ai-billing-kpis,.bq-upload-form{grid-template-columns:1fr}.ai-billing-kpis>div{border-right:0;border-bottom:1px solid var(--border)}.ai-billing-kpis>div:last-child{border-bottom:0}}@media (max-width:600px){.compact-form{grid-template-columns:1fr}.compact-form .span-2{grid-column:auto}.finance-form-grid,.purchase-meta-grid,.reimbursement-meta{grid-template-columns:1fr}.finance-form-grid .span-2,.purchase-request-form .span-2{grid-column:auto}.purchase-line,.purchase-line-head{grid-template-columns:minmax(0,1fr) 84px 80px 42px}.purchase-line-head{display:none}.inline-payment-form{grid-template-columns:1fr}.reimbursement-record-head,.reimbursement-record-total{align-items:flex-start;flex-direction:column}.reimbursement-record-total{gap:6px}.approval-line-items>div,.reimbursement-lines>div{align-items:flex-start;flex-direction:column;gap:3px}.reject-form{grid-template-columns:1fr}.allocation-row{grid-template-columns:20px minmax(0,1fr)}.allocation-row>input[type=number]{grid-column:2}.period-form,.report-filter{align-items:stretch;flex-direction:column}.period-form>*,.report-filter>*{width:100%}.segmented label{flex:1 1}.confirm-bar{align-items:stretch;flex-direction:column}.reconciliation-grid{grid-template-columns:1fr}.budget-stats .stat{flex-basis:calc(50% - 8px)}.machinery-rental-form,.maintenance-form,.rental-facts{grid-template-columns:1fr}.machinery-rental-form .span-2{grid-column:auto}.machinery-rental-head{flex-direction:column}.rental-head-status{grid-template-columns:auto auto;align-items:center;justify-items:start}.rental-head-status .faint{grid-column:1/-1}.rental-facts>div,.rental-facts>div:nth-child(2n){border-right:0;border-bottom:1px solid var(--border)}.rental-facts>div:last-child{border-bottom:0}.maintenance-form{width:min(100%,calc(100vw - 48px))}.cost-breakdown-grid,.project-kpis,.project-summary-band{grid-template-columns:1fr}.project-summary-band>div,.project-summary-band>div:nth-child(2n){border-right:0;border-bottom:1px solid var(--border)}.project-summary-band>div:last-child{border-bottom:0}.project-tabs a{min-width:132px;padding:11px 12px}.publish-bar,.review-actions{align-items:stretch;flex-direction:column}}@media (max-width:420px){body{font-size:13px}.nav-link{gap:6px}.content,.nav-link{padding:8px}.topbar{padding:10px}.panel-head h2,.panel-head h3{font-size:.98rem}.dashboard-stats,.stat-row{grid-template-columns:1fr}}.notification-center{position:relative;margin-top:11px}.notification-trigger{width:100%;min-height:36px;display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid #31445f;border-radius:var(--radius);background:#0f1c2f;color:#cdd6e3;font:inherit;font-weight:600;cursor:pointer}.notification-trigger.active,.notification-trigger:hover{background:#1d3050;color:#fff}.notification-count{min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;margin-left:auto;padding:0 6px;border-radius:10px;background:#e7a13a;color:#2a1d00;font-size:.7rem;font-weight:800}.notification-popover{position:absolute;z-index:80;left:0;bottom:calc(100% + 8px);width:360px;overflow:hidden;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel);color:var(--text);box-shadow:0 14px 34px rgba(15,28,47,.24)}.notification-head{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border)}.notification-head>div:first-child{display:flex;flex-direction:column;gap:1px}.notification-head strong{font-size:.9rem}.notification-head span{color:var(--text-muted);font-size:.73rem}.notification-head-actions{display:flex;gap:6px}.notification-head .icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--text-muted);cursor:pointer}.notification-head .icon-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.notification-head .icon-btn.active{border-color:#85a987;background:#edf6ee;color:var(--success)}.notification-head .icon-btn:disabled{opacity:.4;cursor:default}.notification-sound-callout{width:calc(100% - 20px);border:1px solid #bed0e1;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent);font:inherit;font-weight:700;cursor:pointer}.notification-install-note,.notification-permission-note,.notification-sound-callout{min-height:36px;display:flex;align-items:center;justify-content:center;gap:7px;margin:10px}.notification-install-note,.notification-permission-note{padding:8px 10px;border:1px solid #e4c9c5;border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);font-size:.78rem;font-weight:600;text-align:center}.notification-install-note{border-color:#d8c590;background:#fff8e8;color:#6c4b00}.notification-list{max-height:360px;overflow-y:auto}.notification-item{width:100%;display:grid;grid-gap:3px;gap:3px;position:relative;padding:11px 14px 11px 17px;border:0;border-bottom:1px solid var(--border);background:#fff;color:var(--text);font:inherit;text-align:left;cursor:pointer}.notification-item:last-child{border-bottom:0}.notification-item:hover{background:var(--panel-alt);text-decoration:none}.notification-item.unread{background:#f4f8fc}.notification-item.unread:before{content:"";position:absolute;left:7px;top:17px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.notification-item-title{font-size:.82rem;font-weight:700}.notification-item-message{overflow-wrap:anywhere;color:var(--text-muted);font-size:.76rem}.notification-item time{color:var(--text-faint);font-size:.69rem}.notification-empty{padding:28px 16px;color:var(--text-faint);text-align:center}@media (max-width:760px){.notification-center{margin-top:0;flex:0 0 auto}.notification-trigger{width:36px;min-height:36px;justify-content:center;padding:0}.notification-trigger-label{display:none}.notification-count{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;margin:0;padding:0 5px}.notification-popover{position:fixed;top:112px;right:8px;bottom:auto;left:8px;width:auto;max-height:calc(100vh - 124px)}.notification-list{max-height:calc(100vh - 230px)}}.employee-secondary-tabs{margin-top:-6px;border-bottom-color:var(--border)}.external-worker-filter{grid-template-columns:minmax(260px,1fr) minmax(190px,.55fr) 150px auto}.external-number-note{min-height:68px;align-self:end}.external-supplier-layout{display:grid;grid-template-columns:minmax(300px,.38fr) minmax(520px,1fr);align-items:start;grid-gap:14px;gap:14px}.external-supplier-layout>.panel{min-width:0}.external-worker-profile .employee-profile-kpis{min-width:min(64%,780px)}@media (max-width:1100px){.external-supplier-layout{grid-template-columns:1fr}}@media (max-width:760px){.employee-secondary-tabs{overflow-x:auto;flex-wrap:nowrap}.employee-secondary-tabs a{flex:0 0 auto}.external-worker-filter{grid-template-columns:1fr}.external-number-note{min-height:0}.external-worker-profile .employee-profile-kpis{min-width:0}}.field-label-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:28px}.field-label-actions>label{flex:1 1;min-width:0}.field-label-actions>.btn{flex:0 0 auto;width:auto;min-height:32px;padding:5px 9px}.project-mobile-list{display:none}.project-mobile-card{min-width:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.project-mobile-actions,.project-mobile-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-mobile-head .mono{min-width:0;color:var(--text-muted);font-size:.73rem;overflow-wrap:anywhere}.project-mobile-title{display:block;margin-top:11px;color:var(--text);font-size:1rem;font-weight:700}.project-mobile-address{margin-top:3px;color:var(--text-muted);font-size:.78rem;overflow-wrap:anywhere}.project-mobile-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;margin:14px 0 10px}.project-mobile-facts div{min-width:0}.project-mobile-facts dt{color:var(--text-faint);font-size:.7rem;font-weight:600}.project-mobile-facts dd{margin:2px 0 0;font-weight:650;overflow-wrap:anywhere}.project-mobile-records{margin:11px 0;padding:8px 9px;border-radius:4px;background:var(--panel-alt);color:var(--text-muted);font-size:.74rem;line-height:1.5}.line-description-control{display:grid;grid-template-columns:minmax(140px,1fr) auto;align-items:center;grid-gap:6px;gap:6px;min-width:250px}.quotation-lines-panel-head{flex-wrap:wrap;gap:10px}.quotation-lines-scroll{overflow-x:auto}.quotation-lines-table{min-width:920px}.quotation-line-action{width:54px;text-align:center!important}.quotation-line-action .icon-btn:disabled{cursor:default;opacity:.35}.catalog-modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgb(15 23 42/48%);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.catalog-modal{width:min(680px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 24px 70px rgb(15 23 42/22%)}.catalog-modal-actions,.catalog-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px}.catalog-modal-head{position:-webkit-sticky;position:sticky;top:0;z-index:2;border-bottom:1px solid var(--border);background:var(--panel)}.catalog-modal-head h2{margin:0 0 3px;font-size:1.05rem}.catalog-tabs{margin:14px 18px 0}.catalog-search{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:8px;gap:8px;margin:14px 18px 10px;padding:0 12px;border:1px solid var(--border);border-radius:6px;background:var(--panel)}.catalog-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgb(25 91 135/10%)}.catalog-search input{border:0;box-shadow:none;padding-inline:0}.catalog-results{display:grid;grid-gap:5px;gap:5px;max-height:390px;overflow:auto;padding:0 18px}.catalog-result{display:grid;grid-gap:4px;gap:4px;width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:inherit;text-align:left;cursor:pointer}.catalog-result:focus-visible,.catalog-result:hover{border-color:var(--accent);background:var(--panel-alt)}.catalog-result span{color:var(--text-muted);font-size:.82rem;overflow-wrap:anywhere}.catalog-create-form{padding:16px 18px 0}.catalog-create-form .catalog-modal-actions{padding-inline:0}.master-data-nav{margin-bottom:14px}.master-data-form{align-items:end}.catalog-checkbox-field{min-width:0}.catalog-checkbox-field>label{display:block;margin-bottom:8px;font-weight:600}.catalog-checkbox-field .check-row{display:flex;flex-wrap:wrap;gap:8px 14px}.catalog-row-editor{min-width:520px}.catalog-row-editor>summary{cursor:pointer;color:var(--accent);font-weight:600}.catalog-row-editor[open]>summary{margin-bottom:10px}.catalog-merge-form{display:flex;align-items:center;gap:7px;margin-top:9px}.catalog-merge-form select{min-width:190px}@media (max-width:760px){.catalog-modal-backdrop{align-items:end;padding:0}.catalog-modal{width:100%;max-height:90vh;border-radius:8px 8px 0 0}.line-description-control{min-width:210px}.catalog-row-editor{min-width:360px}}.machinery-rental-form{grid-template-columns:repeat(2,minmax(0,1fr))}.machinery-rental-list{display:grid;grid-gap:12px;gap:12px}.machinery-rental-record{min-width:0;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.machinery-rental-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:12px;border-bottom:1px solid var(--border)}.machinery-rental-head h3{margin:5px 0 2px;font-size:1rem;line-height:1.35}.rental-head-status{display:grid;justify-items:end;grid-gap:3px;gap:3px;flex:0 0 auto}.rental-head-status strong{font-size:1rem}.rental-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0;border-width:1px;border-left:0 solid var(--border);border-bottom:1px solid var(--border);border-right:0 solid var(--border);border-top:1px solid var(--border)}.rental-facts>div{display:grid;align-content:start;grid-gap:4px;gap:4px;min-width:0;padding:10px 12px;border-right:1px solid var(--border)}.rental-facts>div:last-child{border-right:0}.rental-facts small,.rental-facts span{color:var(--text-muted);font-size:.74rem}.rental-facts small,.rental-facts strong{overflow-wrap:anywhere}.rental-charge-details{margin-top:10px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.rental-charge-details>summary{padding:10px 2px;color:var(--text);cursor:pointer;font-weight:650}.compact-data td,.compact-data th{padding-top:8px;padding-bottom:8px}.rental-actions{align-items:flex-start;margin-top:12px}.rental-maintenance>summary{list-style:none;cursor:pointer}.rental-maintenance>summary::-webkit-details-marker{display:none}.maintenance-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;width:min(620px,calc(100vw - 80px));margin-top:8px;padding:12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--panel-alt)}@media (max-width:980px){.rental-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.rental-facts>div:nth-child(2n){border-right:0}}@media (max-width:600px){.machinery-rental-form,.maintenance-form,.rental-facts{grid-template-columns:1fr}.machinery-rental-form .span-2{grid-column:auto}.machinery-rental-head{flex-direction:column}.rental-head-status{grid-template-columns:auto auto;align-items:center;justify-items:start}.rental-head-status .faint{grid-column:1/-1}.rental-facts>div,.rental-facts>div:nth-child(2n){border-right:0;border-bottom:1px solid var(--border)}.rental-facts>div:last-child{border-bottom:0}.maintenance-form{width:min(100%,calc(100vw - 48px))}}.construction-workspace{max-width:1560px}.module-tabs{display:flex;align-items:center;gap:2px;margin:-4px 0 18px;padding:4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow-x:auto}.module-tabs a{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 13px;border-radius:4px;color:var(--text-muted);font-weight:600;white-space:nowrap}.module-tabs a:hover{color:var(--text);background:var(--panel-alt);text-decoration:none}.module-tabs a.active{color:#fff;background:var(--accent)}.construction-stats{margin-bottom:14px}.construction-board-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));grid-gap:14px;gap:14px}.site-status-card{padding:17px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:0 1px 2px rgba(20,35,58,.04)}.site-status-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.site-status-head h2{margin:3px 0 0}.site-project-number{color:var(--accent);font-size:.75rem;font-weight:700}.status-chip{display:inline-flex;align-items:center;gap:5px;width:max-content;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--panel-alt);color:var(--text-muted);font-size:.72rem;font-weight:700;white-space:nowrap}.status-chip.success{color:var(--success);background:#edf8f2;border-color:#b9dec9}.status-chip.warning{color:var(--warning);background:var(--warning-soft);border-color:#ead09d}.status-chip.danger{color:var(--danger);background:var(--danger-soft);border-color:#edbbb7}.status-chip.gray{color:var(--text-muted)}.site-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px 18px;gap:10px 18px;margin:14px 0}.site-summary div{min-width:0}.site-summary dt,.site-summary-block span{color:var(--text-faint);font-size:.72rem;font-weight:600}.site-summary dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}.site-summary dd svg{vertical-align:-2px}.site-summary-block{margin:11px 0}.site-summary-block p{margin:3px 0;min-height:40px;color:var(--text-muted)}.calendar-filter{display:flex;align-items:flex-end;gap:9px;margin-bottom:12px}.calendar-filter label{display:grid;grid-gap:4px;gap:4px;color:var(--text-muted);font-size:.76rem;font-weight:600}.calendar-filter select{min-width:290px;min-height:39px;padding:7px 9px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff}.calendar-shell{margin-bottom:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}.calendar-toolbar{display:flex;justify-content:center;align-items:center;gap:14px;min-height:51px;border-bottom:1px solid var(--border)}.icon-btn{width:34px;min-width:34px;padding:0;justify-content:center;font-size:1.25rem}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekday{padding:8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#f7f9fb;color:var(--text-muted);font-size:.72rem;font-weight:700;text-align:center}.calendar-weekday:nth-child(7){border-right:0}.calendar-day{min-height:128px;padding:7px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#fafbfc;color:var(--text-faint)}.calendar-date{margin-bottom:6px;font-size:.76rem;font-weight:700}.calendar-date-link{display:inline-grid;min-width:26px;min-height:26px;place-items:center;border-radius:50%;color:inherit}.calendar-date-link:hover{background:var(--accent-soft);text-decoration:none}.calendar-day.selected{background:#f3f7fb;box-shadow:inset 0 0 0 2px var(--accent)}.calendar-day.selected .calendar-date-link{background:var(--accent);color:#fff}.calendar-items{display:grid;grid-gap:4px;gap:4px}.calendar-item-entry{display:contents}.calendar-dot{display:none}.calendar-item{display:block;min-width:0;padding:4px 6px;border-left:3px solid var(--accent);border-radius:3px;background:var(--accent-soft);color:var(--text);font-size:.7rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-item:hover{text-decoration:none;filter:brightness(.98)}.calendar-item.green{border-color:var(--success);background:#edf8f2}.calendar-item.amber{border-color:#c07d00;background:var(--warning-soft)}.calendar-item.red{border-color:var(--danger);background:var(--danger-soft)}.calendar-item.gray{border-color:var(--text-faint);background:#f0f2f4}.calendar-more{color:var(--text-faint);font-size:.68rem}.construction-form-grid{max-width:900px;grid-template-columns:repeat(2,minmax(0,1fr))}.construction-form-grid .span-2{grid-column:1/-1}.construction-form-grid label svg{vertical-align:-3px;margin-right:4px}.sticky-form-actions{position:-webkit-sticky;position:sticky;bottom:12px;z-index:15;justify-content:flex-end;gap:8px;width:max-content;margin:0 0 0 auto;padding:8px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(20,35,58,.14)}.log-detail-hero,.sticky-form-actions{display:flex;border:1px solid var(--border);border-radius:var(--radius)}.log-detail-hero{align-items:center;justify-content:space-between;gap:24px;margin-bottom:14px;padding:20px;background:var(--panel)}.log-detail-hero h1{margin:8px 0 3px}.log-detail-hero p{margin:0;color:var(--text-muted)}.log-metrics{display:flex;gap:12px}.log-metrics>div{display:grid;grid-template-columns:auto auto;grid-gap:2px 7px;gap:2px 7px;min-width:150px;padding:10px 12px;border-left:3px solid var(--accent);background:var(--panel-alt)}.log-metrics span{grid-column:1/-1;color:var(--text-faint);font-size:.7rem}.log-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.record-list{margin:0}.record-list>div{display:grid;grid-template-columns:minmax(120px,.35fr) 1fr;grid-gap:12px;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.record-list>div:last-child{border-bottom:0}.record-list dt{color:var(--text-muted);font-weight:600}.record-list dd{margin:0;white-space:pre-wrap}.record-items{margin:0;padding-left:22px}.record-items li{padding:4px 0}.progress-list{display:grid;grid-gap:7px;gap:7px;margin:0;padding:0;list-style:none}.progress-list li{display:flex;justify-content:space-between;gap:12px;padding:7px 9px;background:var(--panel-alt)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.photo-grid figure{margin:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.photo-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--panel-alt)}.photo-grid figcaption{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px;color:var(--text-muted);font-size:.7rem;overflow-wrap:anywhere}.icon-link{border:0;background:transparent;cursor:pointer;color:var(--text-muted)}.icon-link.danger{color:var(--danger)}.source-log{padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-alt);white-space:pre-wrap;font:inherit}.danger-zone{display:flex;justify-content:flex-end;gap:8px}.danger-zone input{min-height:38px;padding:7px 9px;border:1px solid var(--border-strong);border-radius:var(--radius)}.cost-calendar-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px;padding:14px 16px;border-left:4px solid var(--danger);background:var(--panel)}.cost-calendar-summary span{display:block;color:var(--text-muted);font-size:.75rem}.cost-calendar-summary strong{font-size:1.4rem}.cost-calendar-summary p{margin:0;color:var(--text-muted);font-size:.78rem}.personal-calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:14px;gap:14px;align-items:start}.calendar-main{min-width:0}.calendar-mobile-agenda{display:none}.calendar-editor{position:-webkit-sticky;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto}.calendar-editor .form-grid{max-width:none}.calendar-editor select[multiple]{min-height:86px}.weekday-picker{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.weekday-picker label{cursor:pointer}.weekday-picker input{position:absolute;width:1px!important;height:1px;min-height:0!important;margin:0;opacity:0;pointer-events:none}.weekday-picker span{display:grid;place-items:center;min-height:40px;border:1px solid var(--border);border-radius:4px}.weekday-picker input:checked+span{color:#fff;border-color:var(--accent);background:var(--accent)}.calendar-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:7px;gap:7px;margin:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius)}.calendar-options legend{color:var(--text-muted);font-size:.78rem;font-weight:600}.calendar-options label{display:flex;align-items:center;gap:5px;font-size:.76rem}.calendar-delete{padding-top:0}.calendar-reminder{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;border:1px solid #ead09d;border-radius:var(--radius);background:var(--warning-soft)}.calendar-reminder>div{display:grid;flex:1 1}.calendar-reminder span{color:var(--text-muted);font-size:.74rem}.settings-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:24px;gap:24px}.employee-module-tabs a{display:inline-flex;align-items:center;gap:6px}.employee-stats{margin-bottom:14px}.employee-hub-grid{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));grid-gap:12px;gap:12px}.employee-hub-card{min-height:154px}.employee-hub-value{margin-bottom:3px;color:var(--accent);font-size:1.45rem;font-weight:750;line-height:1.15}.employee-prerequisite .panel-body{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:14px;gap:14px}.employee-prerequisite h2,.employee-prerequisite p{margin:0}.employee-prerequisite p{margin-top:3px;color:var(--text-muted);font-size:.82rem}.employee-filter{display:grid;grid-template-columns:minmax(260px,1fr) 180px 160px auto;grid-gap:8px;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.employee-filter label{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:7px;gap:7px}.employee-filter input,.employee-filter select{width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff}.employee-form-grid{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}.employee-rule-summary{display:grid;grid-template-columns:auto 1fr;align-content:center;grid-gap:4px 12px;gap:4px 12px;padding:8px 12px;border-left:3px solid var(--accent);background:var(--panel-alt)}.employee-rule-summary span{color:var(--text-muted);font-size:.75rem}.employee-core-costs{margin-bottom:18px}.employee-allowance-grid{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border)}.allowance-card{display:grid;grid-gap:8px;gap:8px;min-width:0;margin:0;padding:12px;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.allowance-card legend{padding:0 4px;font-weight:700}.allowance-card>label{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:.76rem}.employee-form-actions{margin-bottom:20px}.employee-profile-hero{display:flex;align-items:stretch;justify-content:space-between;gap:24px;margin-bottom:16px;padding:18px 20px;border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--panel)}.employee-profile-hero h1{margin:8px 0 2px;font-size:1.45rem}.employee-profile-hero p{margin:0;color:var(--text-muted)}.employee-profile-kpis{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));min-width:min(58%,720px);border-left:1px solid var(--border)}.employee-profile-kpis>div{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:8px 16px;border-right:1px solid var(--border)}.employee-profile-kpis small,.employee-profile-kpis span{color:var(--text-muted);font-size:.72rem}.employee-profile-kpis strong{margin:3px 0;font-size:1rem;overflow-wrap:anywhere}.employee-detail-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.employee-version-form{border-top:1px solid var(--border)}.employee-version-form>button{align-self:end;justify-self:start}.employee-document-form{display:grid;grid-template-columns:160px 150px minmax(220px,1fr) minmax(180px,1fr) auto;align-items:end;grid-gap:10px;gap:10px;border-bottom:1px solid var(--border)}.employee-delete-zone{margin-bottom:24px}.employee-delete-zone>div{padding-bottom:12px}.external-worker-danger-zone{margin-top:20px;border-color:#e6b8b4}.external-worker-status-actions{display:flex;align-items:flex-start;gap:14px}.external-worker-status-actions>form{flex:0 0 auto}.external-worker-status-actions .employee-delete-zone{flex:1 1;margin:0;border:1px solid #e6b8b4;border-radius:var(--radius);color:var(--danger)}.external-worker-status-actions .employee-delete-zone>summary{display:flex;align-items:center;gap:7px;padding:10px 12px;cursor:pointer;font-weight:700}.external-worker-status-actions .employee-delete-zone>div{padding:0 12px 12px}.external-worker-status-actions .employee-delete-zone p{margin:0 0 12px;color:var(--text-muted);line-height:1.5}.external-worker-delete-form{display:flex;align-items:flex-end;gap:10px}.external-worker-delete-form .field{flex:1 1}.employee-mobile-list{display:none}.employee-status-active{border-color:#b8dcc9;background:#edf8f2;color:var(--success)}.employee-status-suspended{border-color:#ead09d;background:var(--warning-soft);color:var(--warning)}.employee-status-left{background:#eef0f2;color:var(--text-muted)}@media (max-width:1100px){.employee-allowance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-profile-hero{flex-direction:column}.employee-profile-kpis{width:100%;min-width:0;border-top:1px solid var(--border);border-left:0}.employee-document-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.employee-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-prerequisite .panel-body{grid-template-columns:auto minmax(0,1fr)}.employee-prerequisite .btn{grid-column:1/-1;justify-content:center}.employee-module-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.employee-module-tabs::-webkit-scrollbar{display:none}.employee-module-tabs a{flex:0 0 auto}.employee-detail-columns,.employee-document-form,.employee-filter,.employee-form-grid{grid-template-columns:1fr}.employee-filter{padding:12px}.employee-allowance-grid{grid-template-columns:1fr}.employee-profile-hero{padding:15px}.employee-profile-kpis{grid-template-columns:1fr}.employee-profile-kpis>div{border-right:0;border-bottom:1px solid var(--border)}.employee-profile-kpis>div:last-child{border-bottom:0}.employee-desktop-table{display:none}.employee-mobile-list{display:grid;grid-gap:10px;gap:10px;padding:12px}.employee-mobile-card{padding:13px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.employee-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.employee-card-head>div{display:grid}.employee-card-head strong{font-size:1rem}.employee-mobile-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:14px 0}.employee-mobile-card dt{color:var(--text-muted);font-size:.7rem}.employee-mobile-card dd{margin:2px 0 0;overflow-wrap:anywhere}.employee-mobile-card>.btn{width:100%}.external-worker-delete-form,.external-worker-status-actions{align-items:stretch;flex-direction:column}.external-worker-delete-form .btn,.external-worker-status-actions .btn,.external-worker-status-actions>form{width:100%}}@media (max-width:1100px){.personal-calendar-layout{grid-template-columns:1fr}.calendar-editor{position:static;max-height:none}}@media (max-width:760px){.construction-workspace{padding-left:8px;padding-right:8px}.module-tabs{margin-bottom:12px;scrollbar-width:none}.module-tabs::-webkit-scrollbar{display:none}.construction-board-grid,.construction-form-grid,.log-detail-grid{grid-template-columns:1fr}.construction-form-grid .span-2{grid-column:auto}.calendar-filter{align-items:stretch;flex-direction:column}.calendar-filter select{width:100%;min-width:0;min-height:44px;font-size:16px}.calendar-page-actions{grid-template-columns:1fr 1fr}.calendar-page-actions .btn:first-child{grid-column:1/-1}.month-calendar{min-width:0}.calendar-shell{overflow:hidden}.calendar-toolbar{position:static;width:auto}.calendar-weekday{padding:8px 2px;font-size:.68rem}.calendar-day{min-height:58px;padding:3px 2px 5px}.calendar-date{display:flex;justify-content:center;margin-bottom:2px}.calendar-date-link{min-width:32px;min-height:32px;font-size:.78rem}.calendar-items{display:flex;min-height:8px;align-items:center;justify-content:center;gap:3px}.calendar-item-entry{display:block}.calendar-item{display:none}.calendar-dot{display:block;width:6px;min-width:6px;height:6px;border-radius:50%;background:var(--accent)}.calendar-dot.green{background:var(--success)}.calendar-dot.amber{background:#c07d00}.calendar-dot.red{background:var(--danger)}.calendar-dot.gray{background:var(--text-faint)}.calendar-more{font-size:0}.calendar-more:after{content:"+";color:var(--text-faint);font-size:.66rem}.calendar-mobile-agenda{display:block;margin:-6px 0 14px;padding:13px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.calendar-agenda-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-agenda-head>div{display:grid;grid-gap:2px;gap:2px;min-width:0}.calendar-agenda-head span{color:var(--text-faint);font-size:.7rem;font-weight:700}.calendar-agenda-head strong{overflow-wrap:anywhere}.calendar-agenda-head .btn{width:auto;min-height:36px}.calendar-agenda-list{display:grid;grid-gap:7px;gap:7px;margin-top:11px}.calendar-agenda-item{display:flex;align-items:flex-start;gap:9px;min-height:48px;padding:9px 10px;border-left:3px solid var(--accent);border-radius:4px;background:var(--accent-soft);color:var(--text)}.calendar-agenda-item:hover{text-decoration:none}.calendar-agenda-item>svg{flex:0 0 auto;margin-top:2px;color:var(--accent)}.calendar-agenda-item>div{display:grid;grid-gap:3px;gap:3px;min-width:0}.calendar-agenda-item strong{overflow-wrap:anywhere}.calendar-agenda-item span{display:flex;align-items:center;gap:4px;color:var(--text-muted);font-size:.72rem;overflow-wrap:anywhere}.calendar-agenda-item.green{border-color:var(--success);background:#edf8f2}.calendar-agenda-item.amber{border-color:#c07d00;background:var(--warning-soft)}.calendar-agenda-item.red{border-color:var(--danger);background:var(--danger-soft)}.calendar-agenda-item.gray{border-color:var(--text-faint);background:#f0f2f4}.calendar-agenda-empty{margin-top:10px;padding:13px;border:1px dashed var(--border);color:var(--text-muted);text-align:center}.calendar-editor:not(.mobile-open){display:none}.calendar-editor.mobile-open{scroll-margin-top:126px}.sticky-form-actions{bottom:6px;width:100%}.sticky-form-actions .btn{flex:1 1;min-height:46px;justify-content:center}.log-detail-hero{align-items:flex-start;flex-direction:column;padding:15px}.log-metrics{width:100%}.log-metrics>div{flex:1 1;min-width:0}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.danger-zone{align-items:stretch;flex-direction:column}.cost-calendar-summary{align-items:flex-start;flex-direction:column;gap:7px}.settings-pair{grid-template-columns:1fr}.calendar-reminder{align-items:flex-start;flex-wrap:wrap}.project-desktop-table{display:none}.project-mobile-list{display:grid;grid-gap:10px;gap:10px;padding:10px}.project-mobile-actions .btn{flex:1 1;min-height:40px}}@media (max-width:420px){.construction-board-grid{grid-template-columns:1fr}.site-status-card{padding:13px}.site-status-head{flex-direction:column}.site-summary{grid-template-columns:1fr 1fr;gap:8px}.log-metrics{flex-direction:column}.photo-grid{grid-template-columns:1fr 1fr}.record-list>div{grid-template-columns:1fr;gap:2px}}.tab-count,.task-module-tabs{align-items:center}.tab-count{display:inline-flex;min-width:19px;height:19px;justify-content:center;margin-left:6px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:.68rem}.task-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));grid-gap:12px;gap:12px;align-items:end}.task-filter-grid .filter-search{grid-column:span 2}.task-filter-grid .check-field{min-height:36px}.filter-actions{align-self:end;min-height:36px}.task-board-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.task-card{position:relative;display:flex;min-width:0;min-height:310px;flex-direction:column;padding:16px;border:1px solid var(--border);border-top:3px solid #7d8997;border-radius:var(--radius);background:#fff}.task-card.priority-IMPORTANT{border-top-color:#c27a00}.task-card.priority-URGENT{border-top-color:var(--danger)}.task-card.is-cancelled{border-top-color:var(--border-strong);background:#eef0f2;color:var(--text-faint);filter:grayscale(1)}.task-card-top,.task-heading-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.task-card-top{justify-content:space-between;margin-bottom:12px}.task-priority{display:inline-flex;align-items:center;min-height:23px;padding:2px 7px;border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-size:.7rem;font-weight:700;text-transform:uppercase}.task-priority.priority-IMPORTANT{border-color:#e6bd77;background:#fff8e9;color:#775000}.task-overdue,.task-priority.priority-URGENT{border-color:#e5aaa6;background:var(--danger-soft);color:var(--danger)}.task-card h3{margin-bottom:4px;font-size:1rem;overflow-wrap:anywhere}.task-number{color:var(--text-faint);font-size:.72rem}.task-card>p{display:-webkit-box;margin:13px 0;overflow:hidden;color:var(--text-muted);-webkit-box-orient:vertical;-webkit-line-clamp:3}.task-card-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:9px 12px;gap:9px 12px;margin:0}.task-card-meta div{min-width:0}.task-card-meta dt{color:var(--text-faint);font-size:.68rem;font-weight:600;text-transform:uppercase}.task-card-meta dd{margin:2px 0 0;overflow-wrap:anywhere;font-size:.79rem}.task-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:14px;color:var(--text-muted);font-size:.75rem}.task-form{max-width:900px;grid-template-columns:repeat(2,minmax(0,1fr))}.task-detail-head{align-items:flex-start;padding-top:15px;padding-bottom:15px}.task-detail-head h2{margin:8px 0 0;overflow-wrap:anywhere;font-size:1.2rem}.task-detail-panel.is-cancelled{filter:grayscale(1);opacity:.78}.task-day-count{display:grid;min-width:105px;justify-items:end}.task-day-count strong{color:var(--accent);font-size:1.5rem}.task-day-count span{color:var(--text-muted);font-size:.72rem}.task-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);grid-gap:22px;gap:22px}.task-description-block{min-width:0}.task-description-block h3:not(:first-child){margin-top:20px}.task-description-block p{margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.task-facts{align-content:start}.completion-confirmation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.completion-confirmation-grid>div{display:grid;grid-gap:4px;gap:4px;padding:13px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-alt)}.completion-confirmation-grid>div.is-confirmed{border-color:#9bcbb5;background:#eff8f3}.completion-confirmation-grid small,.completion-confirmation-grid span{color:var(--text-muted)}.task-decision-note{margin-top:12px}.task-attachment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.task-attachment{display:flex;min-width:0;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-alt)}.task-attachment:hover{border-color:var(--accent);text-decoration:none}.task-attachment>span:last-child{display:grid;min-width:0}.task-attachment strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-attachment small{color:var(--text-faint)}.attachment-kind{flex:0 0 auto;padding:4px 6px;border-radius:3px;background:var(--accent-soft);font-size:.66rem;font-weight:700}.attachment-kind.kind-PDF{background:var(--danger-soft);color:var(--danger)}.task-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.task-action-grid .panel{margin-bottom:0}.compact-action-form{display:grid;grid-gap:10px;gap:10px;margin-top:14px}.action-divider{padding-top:15px;border-top:1px solid var(--border)}.takeover-request-list,.task-notification-list,.task-timeline{display:grid}.takeover-request{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.8fr);grid-gap:16px;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.takeover-request:last-child{border-bottom:0}.takeover-request>div:first-child{display:grid;align-content:start;grid-gap:4px;gap:4px}.takeover-request span{color:var(--text-faint);font-size:.73rem}.takeover-decision{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:7px;gap:7px;align-items:end}.task-cancel-panel{border-color:#e5aaa6}.task-cancelled-note{margin-bottom:16px;border-color:var(--border-strong);background:#e7e9ec;color:var(--text-muted)}.task-event{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);grid-gap:10px;gap:10px;padding:0 0 17px}.task-event:before{position:absolute;top:13px;bottom:0;left:5px;width:1px;background:var(--border);content:""}.task-event:last-child:before{display:none}.event-dot{z-index:1;width:11px;height:11px;margin-top:4px;border:2px solid var(--accent);border-radius:50%;background:#fff}.task-event>div{display:grid;grid-gap:2px;gap:2px}.task-event p,.task-event span{margin:0;color:var(--text-muted);font-size:.76rem}.task-notification{display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-gap:11px;gap:11px;align-items:center;padding:13px 14px;border-bottom:1px solid var(--border)}.task-notification.is-unread{background:#f0f6fb;box-shadow:inset 3px 0 var(--accent)}.notification-icon{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.notification-copy{display:grid;min-width:0;grid-gap:2px;gap:2px}.notification-copy small,.notification-copy span{overflow-wrap:anywhere;color:var(--text-muted)}.notification-actions{display:flex;gap:6px}@media (max-width:1100px){.task-filter-grid{grid-template-columns:repeat(3,minmax(140px,1fr))}.task-attachment-grid,.task-board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.completion-confirmation-grid,.takeover-request,.task-action-grid,.task-detail-grid,.task-filter-grid,.task-form{grid-template-columns:1fr}.task-filter-grid .filter-search,.task-form .span-2{grid-column:auto}.task-attachment-grid,.task-board-grid{grid-template-columns:1fr}.task-card{min-height:0}.task-detail-head{align-items:flex-start;flex-direction:column}.task-day-count{justify-items:start}.takeover-decision{grid-template-columns:1fr 1fr}.takeover-decision .field{grid-column:1/-1}.task-notification{grid-template-columns:34px minmax(0,1fr)}.notification-actions{grid-column:2;flex-wrap:wrap}}@media (max-width:420px){.task-card-meta{grid-template-columns:1fr}.notification-actions,.task-card-footer{align-items:stretch;flex-direction:column}.notification-actions .btn,.task-card-footer .btn{width:100%}}