:root{--ui-radius:12px;--ui-control-radius:8px;--ui-control-height:38px;--ui-gap:16px;--ui-title:18px;--ui-label:11px;--ui-body:13px;--ui-border:#e3e7ee;--ui-muted:#667085;--ui-accent:#2457a6}body,button,input,select,textarea{font-family:var(--font-sans),Arial,sans-serif}.app-shell :is(h1,h2,h3,h4){font-family:var(--font-sans),Arial,sans-serif;letter-spacing:-.015em;line-height:1.3}.app-shell :is(.center-section,.procurement-panel,.intercompany-register,.timesheet-card) :is(h3,h4){font-size:var(--ui-title);font-weight:700}.app-shell :is(.center-section,.procurement-panel,.intercompany-register)>header{gap:var(--ui-gap);flex-wrap:wrap}.app-shell :is(.primary-button,.secondary-button,.row-actions button,.modal-actions button,.view-switch button,.document-actions button){min-height:var(--ui-control-height);padding:9px 14px;border:1px solid var(--ui-border);border-radius:var(--ui-control-radius);font-size:12px;font-weight:650;line-height:1.35;cursor:pointer}.app-shell .primary-button{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}.app-shell :is(.secondary-button,.modal-actions button:not(.primary-button),.view-switch button,.document-actions button){background:#fff;color:var(--ink)}.app-shell button:disabled{opacity:.55;cursor:not-allowed}.app-shell :is(button,a,input,select,textarea):focus-visible{outline:3px solid #8bb3ef;outline-offset:3px}.app-shell :is(.primary-button,.secondary-button,.summary-card,.view-switch button):hover:not(:disabled){filter:brightness(.97)}.app-shell :is(.resource-toolbar,.procurement-filters,.timesheet-controls,.center-period-toolbar,.center-period-controls,.report-controls){gap:12px;flex-wrap:wrap}.app-shell :is(.resource-toolbar,.procurement-filters,.timesheet-controls,.center-period-toolbar,.center-period-controls,.report-controls) label{display:grid;gap:6px;font-size:var(--ui-label);font-weight:700;text-transform:uppercase;color:var(--ui-muted);min-width:0}.app-shell :is(.resource-toolbar,.procurement-filters,.timesheet-controls,.center-period-toolbar,.center-period-controls,.report-controls) :is(input,select){min-height:var(--ui-control-height);height:auto;padding:8px 10px;border:1px solid var(--ui-border);border-radius:var(--ui-control-radius);background:#fff;color:var(--ink);font-size:12px;max-width:100%}.app-shell .center-summary-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}.app-shell .center-summary-grid>:is(article,button){display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0;padding:16px;border:1px solid var(--ui-border);border-radius:14px;background:#fafbfc;text-align:left;min-width:0;container-type:inline-size}.app-shell .center-summary-grid>:is(article,button)>span{margin:0;font-size:12px;font-weight:500;line-height:1.4;color:#7c8c88;letter-spacing:normal}.app-shell .center-summary-grid>:is(article,button)>strong{margin:0;max-width:100%;font-size:20px;font-size:clamp(14px,8cqi,22px);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#111827;line-height:1.25;white-space:nowrap;word-break:normal;overflow-wrap:normal;overflow-x:auto}.app-shell .center-summary-grid>:is(article,button)>small{margin:0;font-size:11px;font-weight:400;line-height:1.4;color:#7c8c88;white-space:normal;word-break:normal;overflow-wrap:normal}.app-shell .summary-card{cursor:pointer}.app-shell .view-switch{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.app-shell .view-switch button.active{background:#eaf1fb;border-color:#a8c3ed;color:var(--ui-accent)}.app-shell .modal-backdrop{padding:24px;overflow:auto;align-items:center}.app-shell .modal{width:min(760px,calc(100vw - 48px));max-width:100%;max-height:calc(100dvh - 48px);overflow:auto;padding:0;border:1px solid var(--ui-border);border-radius:16px;background:#fff;box-shadow:0 24px 80px #11182733;font-size:var(--ui-body)}.app-shell .modal:is(.daily-report-modal,.equipment-day-modal,.person-day-modal,.project-merge-modal,.wide,.contract-reader){width:min(1120px,calc(100vw - 48px))}.app-shell .modal-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;margin:0;border-bottom:1px solid var(--ui-border);background:#fff}.app-shell .modal-head h2{font-size:20px;font-weight:750;margin:0}.app-shell .modal-head>button{flex:0 0 36px;height:36px;border:1px solid var(--ui-border);border-radius:8px;background:#f8fafc}.app-shell .modal :is(.modal-body,.form-grid,.procurement-form){padding:24px;gap:18px;margin:0}.app-shell .modal :is(.form-grid,.procurement-form){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:0}.app-shell .modal .form-grid .form-grid{padding:0}.app-shell .modal label{font-size:12px;line-height:1.5;color:#475467;min-width:0}.app-shell .modal label:not(.choice-row):not(.compact-check){gap:7px}.app-shell .modal :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font:inherit;font-size:13px;width:100%;min-width:0;min-height:var(--ui-control-height);padding:9px 11px;border:1px solid #d5dce6;border-radius:var(--ui-control-radius);background:#fff;color:var(--ink);box-sizing:border-box}.app-shell .modal input:is([type=checkbox],[type=radio]){width:17px;height:17px;flex:0 0 17px;accent-color:var(--ui-accent)}.app-shell .modal-actions{position:sticky;bottom:0;z-index:4;display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:16px 24px;margin:0;border-top:1px solid var(--ui-border);background:#fff}.app-shell .supplier-type-options{margin:20px 24px 0;padding:16px;border:1px solid var(--ui-border);border-radius:10px;display:flex;gap:20px;flex-wrap:wrap}.app-shell .choice-row,.app-shell .supplier-type-options label{display:flex;align-items:center;gap:10px;padding:8px 0}.choice-row small{display:block;color:var(--ui-muted)}.contract-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.contract-field{padding:16px;border:1px solid var(--ui-border);border-radius:12px;min-width:0}.contract-field>label:not(.choice-row){display:grid;margin:10px 0}.contract-field small,.contract-field summary{font-size:12px;color:var(--ui-muted);overflow-wrap:anywhere}.contract-field blockquote{margin:10px 0;padding:12px;background:#f8fafc;white-space:pre-wrap;overflow-wrap:anywhere}.contract-field.has-error{border-color:#b42318;background:#fffaf9}.contract-field-error{color:#b42318;font-size:12px;line-height:1.5;margin:8px 0}.contract-error-summary{margin:16px 0;padding:14px;border:1px solid #b42318;border-radius:8px;background:#fff4f2;color:#912018;scroll-margin-block:90px}.contract-error-summary ul{margin:10px 0 0;padding-left:20px}.contract-error-summary button{border:0;padding:4px 0;background:transparent;color:inherit;text-align:left;text-decoration:underline;cursor:pointer;font:inherit;overflow-wrap:anywhere}.app-shell .contract-reader [aria-invalid=true]{border-color:#b42318}.contract-reader :is(input,select,textarea){scroll-margin-block:100px}.app-shell .document-actions{display:flex;gap:6px;flex-wrap:wrap;grid-column:1/-1}.app-shell .document-actions button{position:static;grid-row:auto;grid-column:auto;font-size:11px}.supplier-services{padding:16px 0;margin-bottom:20px}.app-shell .table-wrap td small{display:block}@media(max-width:700px){.app-shell .modal-backdrop{padding:10px}.app-shell .modal,.app-shell .modal:is(.daily-report-modal,.equipment-day-modal,.person-day-modal,.project-merge-modal,.wide,.contract-reader){width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.app-shell .modal :is(.modal-body,.form-grid,.procurement-form),.app-shell .modal-actions,.app-shell .modal-head{padding:16px}.app-shell .modal :is(.form-grid,.procurement-form),.contract-fields{grid-template-columns:1fr}.app-shell .modal .span-2{grid-column:1/-1}.app-shell .modal :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px}.app-shell .center-summary-grid{grid-template-columns:1fr}.app-shell .modal-actions button{flex:1 1 auto}.app-shell .modal :is(.daily-entry-row,.person-day-allocation,.equipment-day-list>div){grid-template-columns:minmax(0,1fr)}}dialog.confirmation-dialog{margin:auto;max-width:520px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding:0;border:1px solid var(--ui-border);border-radius:16px;color:var(--ink);background:white;box-shadow:0 24px 80px #11182733}dialog.confirmation-dialog:not([open]){display:none}dialog.confirmation-dialog::backdrop{background:rgb(13 20 34/45%)}.confirmation-dialog .modal-head{padding:20px 24px;border-bottom:1px solid var(--ui-border)}.confirmation-dialog .modal-head h2{margin:0;font-size:20px;font-weight:750;line-height:1.3}.confirmation-dialog p{margin:0;padding:24px;font-size:var(--ui-body);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.confirmation-dialog .modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--ui-border)}.confirmation-dialog .modal-actions button{min-height:var(--ui-control-height);padding:9px 14px;border:1px solid var(--ui-border);border-radius:var(--ui-control-radius);background:white;color:var(--ink);font-size:12px;font-weight:650;cursor:pointer}.confirmation-dialog .modal-actions button.primary-button{background:var(--ui-accent);border-color:var(--ui-accent);color:white}.confirmation-dialog button:focus-visible{outline:3px solid #8bb3ef;outline-offset:3px}.intercompany-filters .project-filter>div>label{display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;text-align:left;gap:10px;padding:9px 12px;margin:0;font-size:14px;font-weight:500;text-transform:none;letter-spacing:normal}.intercompany-filters .project-filter>div>label input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;margin:2px 0 0;padding:0}.intercompany-filters .project-filter>div>label span{min-width:0;overflow-wrap:anywhere}.intercompany-warning .table-wrap{width:100%;flex-basis:100%}.usual-material-picker{padding:16px;border:1px solid #d9e1de;border-radius:12px;margin:16px 0}.supplier-detail-link{text-align:left;text-transform:none;letter-spacing:normal}.app-shell button:not(.nav-item):not(.person-cell-button):not(.equipment-cell-button){border-width:1px;border-style:solid;border-color:var(--ui-border);border-radius:var(--ui-control-radius)}.app-shell :where(button:not(.nav-item):not(.person-cell-button):not(.equipment-cell-button):not(.primary-button):not(.summary-card)){padding:9px 14px;min-height:var(--ui-control-height);background:#fff;color:var(--ink);font-size:12px;font-weight:650;line-height:1.35}.app-shell .secondary-button,.app-shell .supplier-detail-link,.app-shell .text-button,.app-shell :is(.row-actions,.modal-actions,.document-actions) button{padding:9px 14px;min-height:var(--ui-control-height);background:#fff;color:var(--ink);font-size:12px;font-weight:650;line-height:1.35}.app-shell :is(.row-actions,.modal-actions,.document-actions) .primary-button{background:var(--ui-accent);color:white;border-color:var(--ui-accent)}.app-shell button.danger-inline{color:#a3564a;border-color:#e4c6c1;background:#fff}.app-shell button.danger-inline:hover:not(:disabled){border-color:#c9958d;background:#fff7f5}.app-shell button:where(:hover:not(:disabled)){filter:brightness(.97)}.app-shell .sidebar button{background:transparent;color:inherit}.app-shell .sidebar .nav-item{border:0}.app-shell .sidebar .nav-item:hover{background:#151f31}.app-shell .sidebar .nav-item.active{background:#18345f;color:#fff;box-shadow:inset 3px 0 #5e91e4}.app-shell .timesheet-table button{padding:2px 4px;min-height:24px;font-size:inherit}.app-shell .center-summary-grid>button{padding:16px;border-radius:14px}.app-shell .modal-head>button{padding:0;font-size:20px;min-height:36px}.app-shell .resource-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timesheet-right-actions{display:flex;gap:8px;margin-left:auto;align-items:center}.app-shell .timesheet-right-actions .observations-toggle{margin-left:0}.personnel-summary{min-width:0}.personnel-summary>p{font-size:12px;color:var(--ui-muted);line-height:1.5}.personnel-summary .negative-balance{color:#a3564a}.app-shell .delivery-invoice{grid-column:1/-1;display:grid;gap:6px}.app-shell .delivery-note{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:16px}.app-shell .delivery-note>strong{grid-column:1/-1}.app-shell .modal .procurement-allocations{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:16px;align-items:center}.app-shell .modal>h3,.app-shell .modal>p{margin:16px 24px}.app-shell .modal>.table-wrap{margin:0 24px;width:auto}.app-shell .modal form>h3{margin:20px 24px 0}.app-shell .row-actions{display:flex;gap:8px;flex-wrap:wrap}.app-shell .supplier-action-buttons{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.app-shell .supplier-action-buttons button{margin:0}.app-shell td>button+button{margin-left:8px}@media(max-width:700px){.app-shell .delivery-note{grid-template-columns:1fr}.timesheet-right-actions{flex-wrap:wrap}.app-shell .modal>.table-wrap{margin:0 16px}.app-shell .modal>h3,.app-shell .modal>p{margin:16px}}.app-shell :is(.center-detail-tabs,.resource-tabs,.materials-subtabs,.settings-subnav,.cost-center-status-tabs,.report-type-tabs,.intercompany-tabs,.equipment-view-tabs)>button:not(.observations-toggle):not(.secondary-button):not(.primary-button){border:0!important;box-shadow:none;border-radius:8px}.app-shell :is(.center-detail-tabs,.resource-tabs,.materials-subtabs,.settings-subnav,.cost-center-status-tabs,.report-type-tabs,.intercompany-tabs,.equipment-view-tabs)>button:where(:not(.active):not(.secondary-button):not(.primary-button):not(.observations-toggle)){background:transparent}.app-shell :is(.center-detail-tabs,.resource-tabs,.materials-subtabs,.settings-subnav,.cost-center-status-tabs,.report-type-tabs,.intercompany-tabs,.equipment-view-tabs)>button.active{background:#eaf3ef;color:#2e6756}.app-shell .center-detail-tabs{gap:4px;padding-block:8px}.app-shell .center-detail-tabs>button.active{background:#eaf3ef;box-shadow:inset 0 -3px #2f6b59;font-weight:750}.app-shell .resource-tabs,.app-shell .timesheet-page>.resource-tabs{padding-block:8px;align-items:center}.app-shell .resource-tabs>button:not(.observations-toggle){padding:9px 14px;min-height:var(--ui-control-height);line-height:1.35}.app-shell .resource-tabs>button.active:after{content:none}@media(min-width:1181px){.app-shell .cost-center-list>div:last-child{max-height:850px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}}.app-shell :is(.clients-panel,.client-dossier){padding:24px;border:1px solid var(--ui-border);border-radius:14px;background:#fff;display:grid;gap:20px;min-width:0}.app-shell :is(.clients-panel,.client-dossier)>header{display:flex;align-items:center;justify-content:space-between;gap:16px}.app-shell :is(.clients-panel,.client-dossier) h3{margin:0}.app-shell :is(.clients-panel,.client-dossier) p{margin:6px 0;line-height:1.5}.app-shell .client-filters{display:flex;gap:16px;flex-wrap:wrap;align-items:end}.app-shell .client-filters label{min-width:190px}.app-shell :is(.clients-panel,.client-dossier) :is(td,th){padding:14px 16px;vertical-align:top}.app-shell .client-dossier td small{display:block;color:var(--ui-muted);margin-top:6px}.app-shell .client-name{text-align:left}.app-shell .contract-value-summary{padding:16px;background:#f7faf8;border:1px solid var(--ui-border);border-radius:12px;line-height:1.8}@media(max-width:700px){.app-shell :is(.clients-panel,.client-dossier){padding:16px}.app-shell .client-filters label{min-width:0;flex:1 1 150px}}.invoice-month-detail,.invoice-page{background:#fff;border:1px solid #e0e6e4;border-radius:18px;padding:24px;min-width:0}.invoice-modal .modal-head,.invoice-page>header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.invoice-modal h2,.invoice-page h2{font-size:var(--ui-title);margin:0 0 8px}.invoice-modal p,.invoice-page p{color:#647570;line-height:1.5}.invoice-modal .row-actions,.invoice-page .row-actions{display:flex;gap:10px;flex-wrap:wrap}.invoice-modal button,.invoice-month-detail button,.invoice-page button{border:1px solid #dce3e8;border-radius:12px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;background:#fff;color:#476258}.invoice-modal button.primary-button,.invoice-month-detail button.primary-button,.invoice-page button.primary-button{background:var(--ui-accent);color:#fff;border-color:var(--ui-accent)}.invoice-modal button:disabled,.invoice-page button:disabled{opacity:.55;cursor:default}.invoice-page .materials-subtabs{margin:18px 0;display:flex;gap:8px;flex-wrap:wrap}.invoice-page .materials-subtabs button{border:0!important;padding:9px 15px;background:transparent}.invoice-page .materials-subtabs button.active{background:#e4f1ea;color:#28604e}.invoice-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:14px;margin:20px 0}.invoice-totals article{padding:18px;border:1px solid #e0e6eb;border-radius:16px;background:#f8faf9;min-width:0}.invoice-totals span,.invoice-totals strong{display:block}.invoice-totals span{color:#74847e;font-size:13px;margin-bottom:8px}.invoice-totals strong{font-size:21px;line-height:1.25;white-space:nowrap;color:#18232e}.invoice-filters,.invoice-list-filters{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:18px 0}.invoice-filters label,.invoice-list-filters label,.invoice-modal .form-grid label{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:13px;color:#65746f}.invoice-filters input,.invoice-filters select,.invoice-list-filters input,.invoice-modal input,.invoice-modal select{width:100%;border:1px solid #d6e0dc;border-radius:10px;padding:10px 12px;background:#fff;color:#1b2924;font:inherit;min-height:42px}.invoice-filters label:first-child{flex:1 1;min-width:230px}.invoice-filters input[type=number]{max-width:110px}.invoice-check,.invoice-modal .invoice-check,.invoice-page .invoice-check{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;margin:14px 0;font-size:14px;text-transform:none;letter-spacing:normal;font-weight:400;line-height:1.5}.invoice-check input[type=checkbox]{width:18px;height:18px;min-height:18px;flex:none;margin:0;accent-color:#2f6b59}.center-section td small,.invoice-modal td small,.invoice-page td small{display:block;margin-top:5px;color:#728078;font-size:12px}.invoice-modal td,.invoice-modal th,.invoice-page td,.invoice-page th{padding:13px 12px;text-align:left;vertical-align:top}.invoice-badge{display:inline-block;padding:6px 10px;border-radius:8px;font-size:12px;white-space:nowrap}.invoice-badge.complete{background:#e3f2e9;color:#266149}.invoice-badge.pending{background:#fff2d9;color:#876621}.invoice-badge.future{background:#f0f2f4;color:#899198}.closure-table .closure-closed{background:#f5faf7}.closure-table .closure-future{color:#929b9a;background:#fafbfc}.invoice-month-detail{margin-top:22px}.invoice-modal{width:min(1100px,calc(100vw - 40px));max-width:1100px;max-height:90dvh;overflow:auto;padding:28px;background:#fff;border-radius:20px}.invoice-modal .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.invoice-modal .span-2{grid-column:1/-1}.invoice-allocation{padding:22px;margin:18px 0;border:1px solid #dce6df;border-radius:14px;background:#fafcfb}.invoice-allocation .danger-inline{margin-top:16px;color:#a85547}.invoice-modal .modal-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}.invoice-preview{max-height:340px;overflow:auto;margin:16px 0}.invoice-remaining{padding:14px;background:#f0f6f3;border-radius:10px}@media(max-width:760px){.invoice-page{padding:16px}.invoice-page>header{flex-direction:column}.invoice-modal{padding:18px;width:calc(100vw - 20px)}.invoice-modal .form-grid{grid-template-columns:1fr}.invoice-modal .span-2{grid-column:auto}.invoice-totals{grid-template-columns:1fr 1fr}.invoice-totals strong{font-size:17px}.invoice-totals article{padding:12px}.invoice-allocation{padding:14px}}.app-shell .modal.invoice-modal{width:min(1100px,calc(100vw - 40px));max-width:1100px;max-height:90dvh;overflow:auto;padding:0}.app-shell .invoice-modal .modal-head{margin:0;align-items:flex-start}.app-shell .invoice-modal .invoice-allocation{margin:18px 24px}.app-shell .invoice-modal .invoice-allocation .form-grid{padding:0}.app-shell .invoice-modal .invoice-check{display:flex;align-items:center;gap:10px;margin:14px 24px;text-transform:none;letter-spacing:normal;font-size:var(--ui-body);font-weight:400}.app-shell .invoice-modal .invoice-check input{width:18px;height:18px;min-height:18px;flex:none;margin:0}.app-shell .invoice-modal .data-status{margin:16px 24px}.app-shell .invoice-filters label{font-size:var(--ui-label);font-weight:700;text-transform:uppercase;color:var(--ui-muted)}.app-shell .invoice-filters :is(input,select){font-size:12px;font-weight:500;text-transform:none}@media(max-width:700px){.app-shell .modal.invoice-modal{width:calc(100vw - 20px)}.app-shell .invoice-modal .invoice-allocation{margin:16px}.app-shell .invoice-modal .invoice-check{margin:14px 16px}}.invoice-import-consent{margin:18px 24px;padding:14px 16px;border:2px solid #c08a26;border-radius:10px;background:#fff8e8;color:#593d10;min-width:0}.invoice-import-consent legend{padding:0 6px;font-weight:800;font-size:14px}.app-shell .invoice-modal .invoice-import-consent .invoice-check{display:flex;align-items:flex-start;gap:12px;margin:10px 0;font-size:14px;line-height:1.5;cursor:pointer}.app-shell .invoice-modal .invoice-import-consent input[type=checkbox]{flex:0 0 22px;width:22px;height:22px;margin:2px 0;accent-color:#476e5f}.invoice-import-consent input:focus-visible{outline:3px solid #326651;outline-offset:4px}.invoice-import-consent p{margin:10px 0 0;font-size:13px}.invoice-import-footer{position:sticky;bottom:0;z-index:4;background:#fff;border-top:1px solid #dce2dd}.invoice-import-footer .modal-actions{position:static;border-top:0}.invoice-import-footer [role=alert]{padding:0 12px}@media(max-width:600px){.invoice-import-consent{margin:14px 12px;padding:10px 12px}.invoice-import-footer .modal-actions{padding:12px;gap:8px}}