:root{
    --bg:#f4f6f9;--panel:#ffffff;--panel-2:#f8fafc;--text:#152033;--muted:#64748b;
    --line:#d9e0e8;--line-strong:#b9c4d1;--accent:#9b5d73;--accent-dark:#7d465a;
    --nav:#111827;--nav-2:#1f2937;--success:#15803d;--danger:#b91c1c;--warning:#b45309;
    --info:#075985;--shadow:0 10px 28px rgba(15,23,42,.08);--radius:14px;--radius-sm:9px;
}
*{box-sizing:border-box}html{font-size:15px}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.text-right{text-align:right}.nowrap{white-space:nowrap}.hidden{display:none!important}
.app-header{position:sticky;top:0;z-index:60;display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;background:var(--nav);color:#fff;box-shadow:0 4px 16px rgba(15,23,42,.22)}.brand-wrap{display:flex;align-items:center;padding:0 16px;border-right:1px solid rgba(255,255,255,.09)}.brand{display:flex;align-items:center;gap:10px;min-width:210px}.brand-mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--accent);color:#fff;font-weight:900;letter-spacing:-1px}.brand strong{display:block;font-size:17px;line-height:1.1}.brand small{display:block;color:#aeb8c7;font-size:10px;margin-top:3px}.top-nav{display:flex;align-items:stretch;overflow:visible;flex-wrap:wrap}.top-nav a{display:flex;align-items:center;gap:7px;padding:0 13px;color:#cbd5e1;border-bottom:3px solid transparent;white-space:nowrap;font-size:13px}.top-nav a:hover{background:rgba(255,255,255,.06);color:#fff}.top-nav a.active{color:#fff;border-bottom-color:var(--accent);background:rgba(255,255,255,.06)}.top-nav a span{color:var(--accent);font-weight:700}.header-actions{display:flex;align-items:center;gap:8px;padding:9px 14px;border-left:1px solid rgba(255,255,255,.09);white-space:nowrap}.license-chip{font-size:11px;color:#e5e7eb;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);padding:5px 8px;border-radius:999px}.lang-link{font-size:11px;color:#94a3b8;padding:3px}.lang-link.active{color:var(--accent);font-weight:800}.user-name{font-size:12px;color:#d7dee8}.mobile-nav-toggle{display:none;background:none;border:0;color:#fff;font-size:22px}
.page-shell{max-width:1720px;margin:0 auto;padding:22px 22px 44px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-heading h1{font-size:24px;margin:0;letter-spacing:-.4px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.app-footer{padding:16px 22px;text-align:center;color:var(--muted);font-size:12px;border-top:1px solid var(--line);background:#fff}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 6px rgba(15,23,42,.035);overflow:hidden}.card+.card{margin-top:16px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--line);background:linear-gradient(#fff,#fbfcfd)}.card-header h2,.card-header h3{margin:0;font-size:16px}.card-body{padding:17px}.card-footer{padding:13px 17px;border-top:1px solid var(--line);background:var(--panel-2)}.card-accent{border-top:4px solid var(--accent)}
.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:13px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}.kpi small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.65px}.kpi strong{display:block;font-size:25px;margin-top:5px;letter-spacing:-.7px}.kpi .trend{font-size:11px;color:var(--muted);margin-top:5px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.stack{display:flex;flex-direction:column;gap:16px}.split{display:flex;justify-content:space-between;align-items:center;gap:12px}.gap{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:9px;padding:8px 12px;font-weight:650;font-size:13px;cursor:pointer;transition:.15s;background:#fff;color:var(--text)}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(15,23,42,.09)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent-dark)}.btn-primary:hover{background:var(--accent-dark)}.btn-dark{background:var(--nav-2);color:#fff;border-color:var(--nav-2)}.btn-ghost{background:transparent;border-color:var(--line);color:inherit}.app-header .btn-ghost{border-color:rgba(255,255,255,.2);color:#fff}.btn-danger{background:#fff1f2;border-color:#fecdd3;color:var(--danger)}.btn-success{background:#ecfdf3;border-color:#bbf7d0;color:var(--success)}.btn-info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.btn-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.btn-sm{padding:5px 8px;font-size:11px;border-radius:7px}.btn-lg{padding:11px 16px;font-size:14px}.btn-block{width:100%}.icon-btn{width:32px;height:32px;padding:0}
.alert{padding:11px 14px;border-radius:10px;border:1px solid;margin:0 0 14px}.alert-success{background:#ecfdf3;border-color:#bbf7d0;color:#166534}.alert-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.alert-danger{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.alert-info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:750;letter-spacing:.2px}.badge-success{background:#dcfce7;color:#166534}.badge-danger{background:#fee2e2;color:#991b1b}.badge-warning{background:#fef3c7;color:#92400e}.badge-info{background:#dbeafe;color:#1e40af}.badge-muted{background:#e2e8f0;color:#475569}.badge-dark{background:#1e293b;color:#fff}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.data-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:12px}.data-table th{position:sticky;top:0;z-index:2;background:#eef2f6;color:#334155;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.45px;padding:9px 10px;border-bottom:1px solid var(--line-strong);white-space:nowrap}.data-table td{padding:9px 10px;border-bottom:1px solid #e9edf2;vertical-align:top}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfdff}.data-table .actions{white-space:nowrap}.data-table .money{text-align:right;font-variant-numeric:tabular-nums}.data-table .drag-cell{width:34px;text-align:center;color:#94a3b8;cursor:grab}.compact td,.compact th{padding:6px 8px}.empty-state{text-align:center;padding:36px;color:var(--muted)}
label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:650;color:#334155}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:9px 10px;background:#fff;color:var(--text);outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#9b5d73;box-shadow:0 0 0 3px rgba(155,93,115,.14)}textarea{min-height:88px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.form-grid>label,.form-grid>.field{grid-column:span 4}.form-grid.two>label,.form-grid.two>.field{grid-column:span 6}.form-grid.three>label,.form-grid.three>.field{grid-column:span 4}.form-grid .span-12{grid-column:span 12}.form-grid .span-8{grid-column:span 8}.form-grid .span-6{grid-column:span 6}.form-grid .span-4{grid-column:span 4}.form-grid .span-3{grid-column:span 3}.form-grid .span-2{grid-column:span 2}.check-row{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:500;margin:10px 0}.check-row input{width:auto}.field-help{font-size:10px;color:var(--muted);font-weight:400}.input-group{display:flex}.input-group input{border-radius:8px 0 0 8px}.input-group .btn{border-radius:0 8px 8px 0}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;margin-bottom:12px}.filter-grid{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:8px;align-items:end}.filter-grid label{font-size:10px}
.progress{height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);border-radius:999px}.meter-row{display:grid;grid-template-columns:130px 1fr auto;gap:10px;align-items:center;margin:9px 0;font-size:12px}.bar-chart{display:flex;align-items:flex-end;gap:10px;height:160px;padding-top:16px}.bar-item{flex:1;min-width:36px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:4px}.bar-item .bar{width:72%;background:linear-gradient(180deg,#bd7891,#9b5d73);border-radius:6px 6px 2px 2px;min-height:3px}.bar-item small{font-size:9px;color:var(--muted);text-align:center}.bar-item strong{font-size:10px}
.timeline{position:relative;padding-left:20px}.timeline:before{content:"";position:absolute;left:6px;top:7px;bottom:7px;width:2px;background:#dbe2ea}.timeline-item{position:relative;padding:0 0 14px 12px}.timeline-item:before{content:"";position:absolute;left:-18px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 0 0 1px var(--accent-dark)}.timeline-item strong{font-size:12px}.timeline-item p{margin:2px 0 0;font-size:11px;color:var(--muted)}
.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,rgba(155,93,115,.16),transparent 35%),linear-gradient(145deg,#eef2f6,#f8fafc)}.auth-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.install-card{width:min(760px,100%)}.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:22px}.auth-brand strong{display:block;font-size:18px}.auth-brand small{display:block;font-size:10px;color:var(--muted)}.auth-card h1{font-size:24px;margin:0 0 16px}.auth-card form{display:flex;flex-direction:column;gap:12px}.auth-foot{text-align:center;color:var(--muted);font-size:10px;margin:20px 0 0}
.doc-editor{background:#e9edf2;padding:18px;border-radius:14px}.document-sheet{background:#fff;max-width:1500px;margin:0 auto;border:1px solid #cbd5e1;box-shadow:0 10px 35px rgba(15,23,42,.12);padding:20px}.doc-title{display:grid;grid-template-columns:1fr auto;gap:14px;border-bottom:3px solid #111827;padding-bottom:12px;margin-bottom:12px}.doc-title h2{margin:0;font-size:22px}.doc-meta{font-size:11px;text-align:right}.doc-fields{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;margin-bottom:14px}.doc-field{grid-column:span var(--field-width,6)}.doc-field label{font-size:10px}.doc-section{border:1px solid #94a3b8;margin:14px 0;background:#fff}.doc-section-header{display:flex;justify-content:space-between;align-items:center;background:#1f2937;color:#fff;padding:8px 10px}.doc-section-header h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.4px}.editor-table-wrap{overflow:auto}.editor-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:11px}.editor-table th{background:#e5e7eb;padding:6px;border:1px solid #aeb8c4;min-width:var(--col-width,120px);text-align:left}.editor-table td{border:1px solid #c8d0da;padding:3px;vertical-align:top}.editor-table td input,.editor-table td textarea,.editor-table td select{border:0;border-radius:0;padding:6px;min-width:var(--col-width,120px);box-shadow:none;background:transparent}.editor-table td textarea{min-height:36px;resize:vertical}.editor-table td.row-actions{position:sticky;right:0;background:#f8fafc;min-width:82px;white-space:nowrap}.editor-table th.row-actions{position:sticky;right:0;z-index:3}.row-handle{cursor:grab;color:#64748b;padding:4px}.section-total{display:flex;justify-content:flex-end;gap:18px;padding:8px 10px;background:#f8fafc;border-top:1px solid #cbd5e1;font-size:12px}.section-total strong{font-variant-numeric:tabular-nums}.notes-box{margin-top:14px}.schema-panel{border:1px dashed #94a3b8;background:#f8fafc;border-radius:10px;margin:12px 0}.schema-panel summary{cursor:pointer;padding:11px 13px;font-weight:700}.schema-panel .schema-body{padding:0 13px 13px}.schema-section-card{border:1px solid var(--line);background:#fff;border-radius:10px;margin:10px 0;padding:10px}.schema-column-row{display:grid;grid-template-columns:28px 1fr 1fr 120px 90px 120px 34px;gap:6px;align-items:center;margin:6px 0}.schema-field-row{display:grid;grid-template-columns:28px 1fr 1fr 120px 70px 70px 34px;gap:6px;align-items:center;margin:6px 0}.schema-sign-row{display:grid;grid-template-columns:28px 1fr 1fr 80px 34px;gap:6px;align-items:center;margin:6px 0}.dragging{opacity:.45}.drop-target{outline:2px dashed var(--accent-dark)}
.signature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px}.signature-box{border:1px solid #94a3b8;min-height:120px;padding:10px;display:flex;flex-direction:column;justify-content:space-between}.signature-line{border-top:1px solid #111827;margin-top:55px;padding-top:5px;font-size:10px}.signature-image{max-width:220px;max-height:80px;object-fit:contain}.signature-canvas{width:100%;height:180px;border:1px solid #94a3b8;background:#fff;touch-action:none}.portal-page{max-width:1050px;margin:22px auto;padding:0 18px}.portal-header{background:var(--nav);color:#fff;border-radius:14px 14px 0 0;padding:18px;display:flex;justify-content:space-between;align-items:center}.portal-body{background:#fff;border:1px solid var(--line);border-top:0;padding:20px;border-radius:0 0 14px 14px}.portal-decision{display:grid;grid-template-columns:1fr 1fr;gap:12px}.decision-card{border:1px solid var(--line);padding:15px;border-radius:10px}.decision-card.approve{border-left:5px solid var(--success)}.decision-card.reject{border-left:5px solid var(--danger)}
.template-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.template-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px;display:flex;flex-direction:column;gap:9px}.template-card h3{margin:0;font-size:15px}.template-card p{font-size:11px;color:var(--muted);margin:0;min-height:33px}.template-card .template-meta{display:flex;gap:6px;flex-wrap:wrap}.template-card .actions{margin-top:auto;display:flex;gap:7px}
.rate-breakdown{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.rate-part{background:#f8fafc;border:1px solid var(--line);padding:9px;border-radius:8px}.rate-part small{display:block;color:var(--muted);font-size:9px}.rate-part strong{font-size:13px}.rate-result{background:#111827;color:#fff;border-radius:12px;padding:16px}.rate-result .value{font-size:28px;color:var(--accent);font-weight:900}.rate-result small{color:#cbd5e1}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;padding:20px;z-index:200}.modal-backdrop.open{display:flex}.modal{width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.modal-header,.modal-footer{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line)}.modal-footer{border-top:1px solid var(--line);border-bottom:0}.modal-body{padding:16px}.modal-header h3{margin:0}
.template-preview{border:1px solid var(--line);border-radius:12px;padding:10px;background:linear-gradient(180deg,#ffffff,#fafcfc)}.template-preview .preview-shell{transform:scale(.56);transform-origin:top left;width:178.57%;pointer-events:none;min-height:270px}.template-preview .preview-caption{margin-top:8px;font-size:10px;color:var(--muted)}
.settings-preview{background:linear-gradient(180deg,#fbfdfd,#f4f8f8);border:1px solid var(--line);border-radius:12px;padding:16px}.settings-preview h4{margin:0 0 8px;font-size:15px}.settings-preview .preview-company{font-size:20px;font-weight:800;line-height:1.2}.settings-preview .preview-meta{margin-top:10px;color:var(--muted);font-size:12px}.settings-preview .preview-footer-box{margin-top:14px;padding:12px;border:1px dashed var(--line-strong);border-radius:10px;background:#fff}.settings-preview .preview-footer-box strong{display:block;margin-bottom:6px}
.rate-breakdown{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px}.rate-part{min-width:0;overflow:hidden}.rate-part small{display:block;font-size:10px;line-height:1.25}.rate-part strong{display:block;font-size:14px;line-height:1.2;word-break:break-word}
.template-card{gap:12px}.template-card p{min-height:auto}.template-card .actions{flex-wrap:wrap}.app-footer small.powered-by{display:block;font-size:10px;margin-top:3px}.document-powered-by{margin-top:14px;text-align:right;font-size:10px;color:var(--muted);letter-spacing:.1px}

/* V18 – integrated site calculation and resource deployment planning */
.calc-warning-list{display:grid;gap:8px;margin-top:10px}.calc-warning-list .alert{margin:0;padding:9px 11px;font-size:11px}.scenario-table{min-width:1050px}.scenario-table td,.scenario-table th{vertical-align:middle}.scenario-result{font-variant-numeric:tabular-nums;white-space:nowrap}.site-scenario-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.site-scenario-card{border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff}.site-scenario-card strong{display:block;font-size:14px}.site-scenario-card small{display:block;color:var(--muted);margin-top:3px}.site-scenario-card .value{font-size:18px;font-weight:850;margin-top:8px;font-variant-numeric:tabular-nums}
.resource-planner-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}.resource-palette{position:sticky;top:80px;max-height:calc(100vh - 96px);overflow:hidden;display:flex;flex-direction:column}.resource-palette .card-body{display:flex;flex-direction:column;min-height:0}.resource-palette-list{display:flex;flex-direction:column;gap:7px;overflow:auto;padding-right:4px;max-height:calc(100vh - 260px)}.resource-palette-item{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:grab;user-select:none}.resource-palette-item:hover{border-color:var(--accent);box-shadow:0 4px 12px rgba(15,23,42,.08)}.resource-palette-item:active{cursor:grabbing}.resource-palette-item .resource-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:rgba(155,93,115,.11);color:var(--accent);font-weight:850}.resource-palette-item strong{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-palette-item small{display:block;color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-palette-item .resource-capacity{font-size:9px;color:var(--muted);white-space:nowrap}.resource-palette-empty{padding:22px 10px;text-align:center;color:var(--muted);font-size:11px}
.resource-calendar-card{min-width:0}.compact-toolbar{display:flex;align-items:end;justify-content:space-between;gap:10px;flex-wrap:wrap}.compact-toolbar .gap{align-items:end}.resource-timeline-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px;background:#fff}.resource-timeline{--resource-month-width:118px;min-width:max-content}.resource-timeline-header,.resource-timeline-row{display:grid;grid-template-columns:220px repeat(var(--resource-month-count),var(--resource-month-width));min-height:44px}.resource-timeline-header{position:sticky;top:0;z-index:7;background:#eef2f6;border-bottom:1px solid var(--line-strong)}.resource-timeline-label{position:sticky;left:0;z-index:5;display:flex;align-items:center;padding:8px 10px;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line);background:#fff;min-width:0}.resource-timeline-header .resource-timeline-label{z-index:9;background:#eef2f6;font-size:10px;font-weight:800;text-transform:uppercase}.resource-timeline-row:nth-child(even) .resource-timeline-label{background:#fbfcfd}.resource-timeline-label strong{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-timeline-label small{display:block;color:var(--muted);font-size:9px}.resource-month-head{display:flex;align-items:center;justify-content:center;padding:7px;border-right:1px solid var(--line);font-size:10px;font-weight:750;white-space:nowrap}.resource-timeline-row>.resource-timeline-label,.resource-timeline-row>.resource-month-cell,.resource-timeline-row>.resource-allocation-bar{grid-row:1}.resource-month-cell{position:relative;min-height:48px;border-right:1px solid #e7ebf0;border-bottom:1px solid #e7ebf0;padding:4px;background:linear-gradient(180deg,#fff,#fcfdfe)}.resource-month-cell.drag-over{background:rgba(155,93,115,.12);outline:2px dashed var(--accent);outline-offset:-3px}.resource-allocation-bar{display:flex;align-self:center;z-index:3;margin:4px;align-items:center;justify-content:space-between;gap:5px;min-height:31px;padding:5px 7px;border:1px solid rgba(155,93,115,.5);border-radius:7px;background:rgba(155,93,115,.13);color:#522c3b;font-size:9px;cursor:grab;box-shadow:0 2px 6px rgba(15,23,42,.06)}.resource-allocation-bar[data-resource-type="employee"],.resource-allocation-bar.type-employee{background:rgba(155,93,115,.15)}.resource-allocation-bar[data-resource-type="equipment"],.resource-allocation-bar.type-equipment{background:rgba(15,118,110,.12);border-color:rgba(15,118,110,.38);color:#0b5b55}.resource-allocation-bar[data-resource-type="material"],.resource-allocation-bar.type-material{background:rgba(180,83,9,.11);border-color:rgba(180,83,9,.32);color:#7c3f08}.resource-allocation-bar[data-resource-type="service"],.resource-allocation-bar[data-resource-type="subcontractor"],.resource-allocation-bar.type-service,.resource-allocation-bar.type-subcontractor{background:rgba(7,89,133,.1);border-color:rgba(7,89,133,.3);color:#075985}.resource-allocation-bar.overbooked{background:#fff1f2;border-color:#ef4444;color:#991b1b}.resource-allocation-bar.long-lead:after{content:"LLI";font-size:8px;font-weight:850;padding:1px 4px;border-radius:999px;background:#fff;color:#92400e}.resource-allocation-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-calendar-empty{padding:38px;text-align:center;color:var(--muted)}
.resource-allocation-table{min-width:1650px}.resource-allocation-table input,.resource-allocation-table select{min-width:92px;padding:6px 7px;font-size:10px}.resource-allocation-table td:first-child{position:sticky;left:0;background:#fff;z-index:2}.resource-allocation-table .resource-name-cell{min-width:210px}.resource-allocation-table tr.row-overbooked{background:#fff1f2}.resource-allocation-table tr.row-overbooked td:first-child{background:#fff1f2}.resource-allocation-table tr.row-delivery-risk{box-shadow:inset 4px 0 #b45309}.utilization-bar{height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-top:4px;min-width:95px}.utilization-bar span{display:block;height:100%;border-radius:999px;background:var(--accent)}.utilization-bar.overbooked span{background:#b91c1c}.resource-warning-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}.resource-warning-card{border:1px solid var(--line);border-left:4px solid var(--warning);border-radius:9px;padding:10px;background:#fff}.resource-warning-card.danger{border-left-color:var(--danger);background:#fffafb}.resource-warning-card strong{font-size:11px}.resource-warning-card small{display:block;color:var(--muted);margin-top:3px}.resource-plan-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.resource-plan-summary-grid .kpi{padding:12px}.resource-plan-summary-grid .kpi strong{font-size:20px}
@media(max-width:1250px){.resource-planner-layout{grid-template-columns:1fr}.resource-palette{position:static;max-height:none}.resource-palette-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:320px}.resource-timeline-header,.resource-timeline-row{grid-template-columns:190px repeat(var(--resource-month-count),var(--resource-month-width))}}
@media(max-width:760px){.resource-palette-list{grid-template-columns:1fr 1fr}.resource-timeline{--resource-month-width:104px}.resource-timeline-header,.resource-timeline-row{grid-template-columns:155px repeat(var(--resource-month-count),var(--resource-month-width))}.resource-warning-grid{grid-template-columns:1fr}}


.sensitive-mask{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:4px 8px;border-radius:7px;background:repeating-linear-gradient(135deg,#e2e8f0,#e2e8f0 4px,#f8fafc 4px,#f8fafc 8px);color:#64748b;letter-spacing:2px;font-weight:800}.site-calc-summary .card{overflow:visible}.site-calc-summary .card-body{overflow:hidden}.site-calc-summary .meter-row{grid-template-columns:minmax(0,1fr) 8px minmax(105px,auto);align-items:start}.site-calc-summary .meter-row span{min-width:0;line-height:1.25;overflow-wrap:anywhere}.site-calc-summary .meter-row strong{min-width:0;max-width:150px;text-align:right;white-space:normal;overflow-wrap:anywhere;line-height:1.25}.site-calc-summary .rate-result{overflow:hidden}.site-calc-summary .rate-result .value{max-width:100%;font-size:clamp(18px,2vw,25px);line-height:1.12;overflow-wrap:anywhere}.project-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;padding:0;color:inherit;cursor:pointer;text-align:left}.project-section-toggle:after{content:"⌄";font-size:18px;transition:transform .15s}.project-section-toggle[aria-expanded="false"]:after{transform:rotate(-90deg)}.project-section-body[hidden]{display:none}.health-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}.health-green{background:#15803d}.health-yellow{background:#d97706}.health-red{background:#b91c1c}.project-cockpit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.project-cockpit-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;min-width:0}.project-cockpit-card small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.45px}.project-cockpit-card strong{display:block;font-size:21px;margin-top:5px;overflow-wrap:anywhere}.project-cockpit-card .trend{margin-top:7px;color:var(--muted);font-size:12px;line-height:1.4}.project-cockpit-card .trend-lines{display:grid;gap:2px}.project-cockpit-card .trend-lines span{display:block;overflow-wrap:anywhere}.mini-calendar{position:relative;min-width:760px;padding:28px 12px 12px;background:linear-gradient(to right,rgba(148,163,184,.25) 1px,transparent 1px);background-size:calc(100% / 12) 100%;border:1px solid var(--line);border-radius:10px;overflow:hidden}.mini-calendar-head{position:absolute;left:12px;right:12px;top:6px;display:grid;grid-template-columns:repeat(12,1fr);font-size:9px;color:var(--muted);text-align:center}.mini-calendar-row{position:relative;height:34px;border-top:1px solid #edf1f5}.mini-calendar-label{position:absolute;left:6px;top:7px;z-index:2;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}.mini-calendar-bar{position:absolute;top:8px;height:18px;border-radius:5px;background:var(--accent);opacity:.82;min-width:3px}.collapse-default .project-section-body{display:none}.report-toolbar{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.report-filter-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(5,minmax(140px,1fr)) auto;gap:10px;align-items:end}@media(max-width:1200px){.report-filter-grid{grid-template-columns:repeat(3,1fr)}.site-calc-summary .meter-row strong{max-width:none}}
@media print{.app-header,.app-footer,.page-heading,.page-actions,.toolbar,.no-print,.btn{display:none!important}.page-shell{padding:0;max-width:none}.card{border:0;box-shadow:none}.doc-editor{padding:0;background:#fff}.document-sheet{box-shadow:none;border:0;max-width:none}.editor-table td.row-actions,.editor-table th.row-actions{display:none}.document-sheet input,.document-sheet textarea,.document-sheet select{border:0!important;appearance:none;padding:0}.schema-panel{display:none}}
@media(max-width:1320px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.template-list{grid-template-columns:repeat(2,1fr)}.top-nav a{padding:0 9px;font-size:12px}.license-chip{display:none}}
@media(max-width:980px){.app-header{grid-template-columns:1fr auto;flex-wrap:wrap}.brand-wrap{grid-column:1/2}.mobile-nav-toggle{display:block;margin-left:auto}.top-nav{display:none;grid-column:1/3;flex-direction:column;border-top:1px solid rgba(255,255,255,.1)}.top-nav.open{display:flex}.top-nav a{padding:11px 16px;border-bottom:0;border-left:3px solid transparent}.top-nav a.active{border-left-color:var(--accent)}.header-actions{grid-column:2/3;grid-row:1}.user-name{display:none}.grid-2,.grid-3,.grid-sidebar{grid-template-columns:1fr}.filter-grid{grid-template-columns:1fr 1fr}.template-list{grid-template-columns:1fr}.rate-breakdown{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.page-shell{padding:14px 10px 34px}.page-heading{align-items:flex-start;flex-direction:column}.kpi-grid{grid-template-columns:1fr 1fr}.form-grid,.form-grid.two,.form-grid.three{grid-template-columns:1fr}.form-grid>label,.form-grid>.field,.form-grid.two>label,.form-grid.two>.field,.form-grid.three>label,.form-grid.three>.field,.form-grid .span-12,.form-grid .span-8,.form-grid .span-6,.form-grid .span-4,.form-grid .span-3,.form-grid .span-2{grid-column:span 1}.filter-grid{grid-template-columns:1fr}.doc-fields{grid-template-columns:1fr}.doc-field{grid-column:span 1!important}.signature-grid,.portal-decision{grid-template-columns:1fr}.document-sheet{padding:10px}.schema-column-row,.schema-field-row,.schema-sign-row{grid-template-columns:22px 1fr}.schema-column-row>*:nth-child(n+3),.schema-field-row>*:nth-child(n+3),.schema-sign-row>*:nth-child(n+3){grid-column:2}.header-actions .lang-link{display:none}.auth-card{padding:20px}}
.template-live-stage{max-height:640px;overflow:auto;padding:16px;background:#e9edf2;border:1px solid var(--line);border-radius:12px}.template-live-stage .ska-document{max-width:1200px;margin:0 auto;padding:18px;box-shadow:0 8px 24px rgba(15,23,42,.12);border:1px solid #cbd5e1}.template-live-stage .ska-table{table-layout:fixed}.template-live-stage .ska-table th,.template-live-stage .ska-table td{overflow-wrap:anywhere}

/* SK-Aufmaß V3 – Anmeldung, Registrierung und Abrechnung */
.auth-product-page{padding:0;display:block;background:#eef1f5}.auth-product-shell{min-height:100vh;display:grid;grid-template-columns:minmax(460px,1.08fr) minmax(440px,.92fr)}.auth-product-hero{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;padding:44px 56px;color:#fff;background:linear-gradient(145deg,#111827 0%,#293241 62%,#4a3440 100%);overflow:hidden}.auth-product-hero:after{content:"";position:absolute;width:460px;height:460px;border-radius:50%;right:-150px;bottom:-180px;background:rgba(155,93,115,.24)}.auth-hero-brand,.registration-head .auth-hero-brand{position:relative;z-index:1;display:flex;align-items:center;gap:12px}.auth-hero-brand strong{display:block;font-size:21px}.auth-hero-brand small{display:block;color:#cbd5e1;font-size:11px;margin-top:2px}.auth-hero-copy{position:relative;z-index:1;max-width:720px;margin:56px 0}.auth-kicker{display:block;color:#d5aebe;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800}.auth-hero-copy h1{font-size:clamp(38px,5vw,68px);line-height:1.02;letter-spacing:-.045em;margin:18px 0 22px}.auth-hero-copy p{font-size:18px;line-height:1.65;color:#d5dbe5;max-width:680px}.auth-feature-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-feature-grid>div{padding:16px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.055);border-radius:12px}.auth-feature-grid strong,.auth-feature-grid span{display:block}.auth-feature-grid strong{font-size:13px}.auth-feature-grid span{font-size:11px;color:#cbd5e1;margin-top:4px}.auth-hero-foot{position:relative;z-index:1;margin-top:26px;color:#aeb8c7;font-size:10px}.auth-product-panel{display:flex;flex-direction:column;justify-content:center;max-width:620px;width:100%;margin:auto;padding:48px 64px;background:#fff;min-height:100vh}.auth-panel-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}.auth-panel-top h2{font-size:36px;margin:6px 0}.auth-panel-top p{color:var(--muted);margin:0}.auth-lang{display:flex;gap:5px}.auth-lang a{padding:5px 7px;border-radius:6px;color:var(--muted);font-size:11px}.auth-lang a.active{background:#f3e9ed;color:var(--accent-dark);font-weight:800}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form-options{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.auth-form-options .check-row{margin:0}.auth-form-options a{color:var(--accent-dark);font-weight:700}.auth-register-box{display:flex;flex-direction:column;gap:8px;margin-top:28px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.auth-register-box span{font-size:12px;color:var(--muted)}.auth-legal{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:24px;color:var(--muted);font-size:10px}.password-field{position:relative}.password-field input{padding-right:84px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--accent-dark);font-size:11px;font-weight:750;cursor:pointer}.registration-page{background:#eef1f5}.registration-shell{min-height:100vh}.registration-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 34px;background:#111827;color:#fff}.registration-steps{display:flex;gap:8px;flex-wrap:wrap}.registration-steps span{font-size:10px;color:#9aa6b5;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:6px 9px}.registration-steps span.active{background:var(--accent);border-color:var(--accent);color:#fff}.registration-main{max-width:1480px;margin:24px auto;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;padding:0 20px}.registration-card{overflow:visible}.registration-card h1{margin:0;font-size:28px}.registration-card h3{margin:24px 0 10px}.registration-aside{display:flex;flex-direction:column;gap:14px}.registration-summary,.registration-security{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.registration-summary h2{margin:8px 0 18px}.registration-summary ol{padding-left:20px;margin:0}.registration-summary li{margin:0 0 16px}.registration-summary li strong,.registration-summary li span{display:block}.registration-summary li span{font-size:11px;color:var(--muted);margin-top:3px}.registration-security strong,.registration-security span{display:block}.registration-security span{font-size:11px;color:var(--muted);margin-top:4px}.license-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.license-choice{position:relative;display:flex;flex-direction:column;gap:5px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:pointer}.license-choice:hover,.license-choice.selected{border-color:var(--accent);box-shadow:0 0 0 3px rgba(155,93,115,.11)}.license-choice input[type=radio]{position:absolute;top:12px;right:12px;width:auto}.license-choice-name{font-size:15px;font-weight:800}.license-choice>strong{font-size:24px;color:var(--accent-dark)}.license-choice>small,.license-choice>span:last-child{font-size:10px;color:var(--muted)}.billing-period-switch{display:flex;gap:8px;margin-top:12px}.billing-period-switch label{flex-direction:row;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:9px}.billing-period-switch input{width:auto}.registration-consent{margin-top:18px;padding:13px;border-radius:10px;background:#f8fafc}.registration-consent a{color:var(--accent-dark);text-decoration:underline}.registration-submit{margin-top:20px}.checkout-shell{max-width:1480px;margin:24px auto;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;padding:0 20px}.checkout-summary h1{margin:0;font-size:28px}.checkout-summary .card-header p{margin:5px 0 0;color:var(--muted)}.checkout-company{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.checkout-company>div{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.checkout-company small,.checkout-company strong,.checkout-company span{display:block}.checkout-company small{color:var(--muted);font-size:9px;text-transform:uppercase}.checkout-company strong{margin-top:4px}.checkout-company span{font-size:11px;color:var(--muted);margin-top:3px}.checkout-plan-grid .license-choice{cursor:default}.checkout-buttons{display:grid;gap:7px;margin-top:12px}.checkout-security{margin-top:18px;padding:14px;border-left:4px solid var(--accent);background:#faf7f8}.checkout-security strong,.checkout-security span{display:block}.checkout-security span{font-size:11px;color:var(--muted);margin-top:3px}.checkout-aside{display:flex;flex-direction:column;gap:12px}.billing-facts{display:grid;gap:8px}.billing-facts>div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:7px;font-size:11px}.billing-kpis{grid-template-columns:repeat(6,minmax(135px,1fr))}.billing-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.billing-plan{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fff}.billing-plan.current{border-color:var(--accent);box-shadow:0 0 0 3px rgba(155,93,115,.1)}.billing-plan h3{margin:0;font-size:18px}.billing-plan-price{margin:18px 0}.billing-plan-price strong,.billing-plan-price span{display:block}.billing-plan-price strong{font-size:27px;color:var(--accent-dark)}.billing-plan-price span{font-size:10px;color:var(--muted)}.billing-plan ul{margin:0;padding-left:18px;color:#475569;font-size:12px;line-height:1.9}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
@media(max-width:1100px){.auth-product-shell{grid-template-columns:1fr}.auth-product-hero{min-height:auto;padding:34px}.auth-product-panel{max-width:none;min-height:auto;padding:40px}.registration-main,.checkout-shell{grid-template-columns:1fr}.registration-aside,.checkout-aside{display:grid;grid-template-columns:1fr 1fr}.billing-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.auth-product-panel{padding:28px 18px}.auth-product-hero{padding:26px 18px}.auth-feature-grid,.license-choice-grid,.billing-plan-grid,.checkout-company{grid-template-columns:1fr}.registration-head{align-items:flex-start;flex-direction:column;padding:16px 18px}.registration-main,.checkout-shell{padding:0 10px;margin:12px auto}.registration-aside,.checkout-aside{grid-template-columns:1fr}.billing-kpis{grid-template-columns:1fr 1fr}.auth-panel-top h2{font-size:30px}}
.registration-form-card{background:#fff;border-radius:14px;overflow:hidden}.registration-form-card .card-header p{margin:5px 0 0;color:var(--muted)}.auth-code-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-code-card{width:min(520px,100%)}.verification-code{text-align:center;font-size:30px;letter-spacing:.35em;font-weight:850;font-variant-numeric:tabular-nums}.auth-card .btn-block+.btn-block{margin-top:8px}
.unsaved-indicator{position:fixed;right:18px;bottom:18px;z-index:100;background:#111827;color:#fff;border-radius:999px;padding:7px 11px;font-size:10px;box-shadow:0 8px 24px rgba(15,23,42,.2)}

/* Public login/registration layout aligned with the SK product family */
.public-page{min-height:100vh;margin:0;background:#f2f5fa;color:#0f213c;display:flex;flex-direction:column;font-family:Inter,Segoe UI,Arial,sans-serif}.public-header{height:54px;background:#0b1f37;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #1f3a58;box-shadow:0 3px 14px rgba(15,33,60,.18)}.public-brand{display:flex;align-items:center;gap:8px}.public-brand .brand-mark{width:30px;height:30px;border-radius:6px}.public-brand strong{display:block;font-size:13px}.public-brand small{display:block;font-size:8px;color:#c4cfdd}.public-actions{display:flex;align-items:center;gap:5px}.public-pill{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:9px;background:#172d47;border:1px solid #2a425d;color:#fff;font-size:11px;font-weight:750}.public-pill:hover,.public-pill.active{background:#263e59}.public-main{flex:1;padding:24px 36px 50px}.public-title-card,.public-form-card{background:#fff;border:1px solid #e0e6ee;border-radius:20px;box-shadow:0 8px 24px rgba(15,33,60,.06)}.public-title-card{padding:24px 22px;margin-bottom:16px}.public-title-card h1{margin:0;font-size:29px;letter-spacing:-.5px}.public-title-card p{margin:12px 0 0;color:#65778d}.public-form-card{padding:16px}.public-login-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;align-items:end}.public-login-options{grid-column:1/3;display:flex;align-items:center;gap:18px;font-size:12px}.public-login-options .check-row{margin:0}.public-submit-row{margin-top:16px}.public-footer{min-height:37px;background:#0b1f37;color:#d3dce7;display:flex;align-items:center;justify-content:center;gap:22px;font-size:10px;border-top:1px solid #1f3a58;padding:10px 14px}.public-footer a:hover{color:#fff}.public-form-card .form-grid{gap:10px 12px}.public-form-card label{font-size:11px}.public-form-card input,.public-form-card select{background:#f8fafc;border-radius:10px;padding:8px 10px}.public-form-card .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent-dark)}.public-form-card h3{margin:18px 0 10px}.registration-form .license-choice-grid{margin-top:8px}
@media(max-width:800px){.public-main{padding:14px 10px 35px}.public-header{height:auto;min-height:54px;gap:10px;flex-wrap:wrap;padding:8px 10px}.public-actions{flex-wrap:wrap}.public-login-grid{grid-template-columns:1fr}.public-login-options{grid-column:1}.public-title-card{padding:20px 16px}.public-title-card h1{font-size:25px}}

/* SK-Aufmaß V6 – öffentlicher Zugang und Abrechnung im SK-Plattformbild */
.public-shell{min-height:100vh;display:flex;flex-direction:column}
.public-header{height:54px;min-height:54px;padding:0 12px;background:#0b1f37;border-bottom:1px solid #203954;box-shadow:0 3px 16px rgba(15,33,60,.18)}
.public-brand{display:flex;align-items:center;gap:8px;color:#fff}
.public-brand img{display:block;width:32px;height:32px;object-fit:contain;border-radius:5px;background:#fff}
.public-brand strong{display:block;font-size:13px;line-height:1.12}
.public-brand small{display:block;margin-top:1px;font-size:8px;line-height:1.15;color:#c5d0dc}
.public-main{width:100%;max-width:none;flex:1;padding:24px 36px 50px}
.public-title-card{padding:24px 22px;margin:0 0 16px;border-radius:20px}
.public-title-card h1{font-size:29px;line-height:1.2}
.public-title-card p{font-size:13px}
.public-form-card{padding:16px;border-radius:20px}
.public-form-card .form-grid{gap:10px 12px}
.public-form-card label{font-size:11px;font-weight:750}
.public-form-card input,.public-form-card select,.public-form-card textarea{min-height:34px;padding:7px 10px;border-radius:10px;background:#f8fafc}
.public-login-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;align-items:end}
.public-login-options{grid-column:1/3;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.public-login-options .check-row{margin:0}
.public-submit-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}
.public-button-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}
.public-error-card{margin-bottom:16px}
.public-narrow-card{max-width:760px}
.public-verify-form{display:flex;flex-direction:column;gap:14px}
.public-verify-form .verification-code{max-width:280px;font-size:22px;font-weight:800;letter-spacing:.18em;text-align:center}
.public-registration-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
.public-legal-note{margin:16px 0 0;color:var(--muted);font-size:11px;line-height:1.6}
.public-legal-note a{color:var(--accent-dark);font-weight:700;text-decoration:underline}
.public-footer{margin-top:auto}
.public-pill{border-radius:8px;padding:5px 8px;font-size:10px}
.public-form-card .password-field input{padding-right:78px}
.public-form-card .password-toggle{font-size:10px}

.billing-order-layout{grid-template-columns:minmax(0,1fr) 350px}
.billing-order-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}
.billing-order-price strong{font-size:30px;color:var(--accent-dark)}
.billing-order-price span{font-size:11px;color:var(--muted)}
.billing-legal-form{display:flex;flex-direction:column;gap:8px}
.billing-legal-form .check-row{align-items:flex-start;margin:2px 0;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:500;line-height:1.45}
.billing-legal-form .check-row input{margin-top:2px;flex:0 0 auto}
.billing-legal-form a{color:var(--accent-dark);font-weight:700;text-decoration:underline}
.billing-legal-note{margin-top:12px;padding:14px;border-left:4px solid var(--accent);background:#faf7f8}
.billing-legal-note strong{display:block}
.billing-legal-note p{margin:4px 0 0;color:var(--muted);font-size:11px}
.billing-review-grid{align-items:start}
.kv-table{width:100%;border-collapse:collapse;font-size:12px}
.kv-table th,.kv-table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.kv-table th{width:42%;color:#475569;font-weight:700;background:#fafbfc}
.kv-table tr:last-child th,.kv-table tr:last-child td{border-bottom:0}
.checkout-buttons a,.checkout-buttons button{min-height:38px}

@media(max-width:980px){
  .billing-order-layout{grid-template-columns:1fr}
}
@media(max-width:800px){
  .public-main{padding:14px 10px 35px}
  .public-login-grid{grid-template-columns:1fr}
  .public-login-options{grid-column:1}
  .public-registration-grid{grid-template-columns:1fr}
  .public-registration-grid>label,.public-registration-grid>.field{grid-column:1!important}
  .public-title-card{padding:20px 16px}
  .public-title-card h1{font-size:25px}
  .billing-review-grid{grid-template-columns:1fr}
}

.template-editor-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);gap:18px;align-items:start}.template-editor-controls{min-width:0}.template-editor-preview{position:sticky;top:82px;max-height:calc(100vh - 100px);overflow:auto}.template-live-stage{background:#e9edf2;border-radius:12px;padding:14px;min-height:720px}.template-live-stage .document-sheet{transform:none!important;width:100%!important;max-width:none!important;box-shadow:0 8px 24px rgba(15,23,42,.12)}
@media(max-width:1180px){.template-editor-split{grid-template-columns:1fr}.template-editor-preview{position:static;max-height:none}.template-live-stage{min-height:480px}}
/* V14 template editor precision controls */
.schema-row-tools{display:flex;align-items:center;justify-content:flex-end;gap:3px;min-width:112px}.mini-move,.mini-copy,.mini-remove{width:25px;height:25px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);cursor:pointer;font-weight:700;line-height:1}.mini-move:hover,.mini-copy:hover{border-color:var(--accent);color:var(--accent-dark)}.mini-remove{color:var(--danger);background:#fff5f5}.schema-field-row{grid-template-columns:28px minmax(120px,1fr) minmax(120px,1fr) 120px 72px 86px 116px}.schema-sign-row{grid-template-columns:28px minmax(140px,1fr) minmax(140px,1fr) 90px 116px}.schema-column-row{grid-template-columns:28px minmax(120px,1fr) minmax(120px,1fr) 120px 78px 130px 116px}.schema-section-card{position:relative}.section-toolbar{position:sticky;top:0;z-index:2;background:#fff;padding:4px 0 8px}.preview-paper{margin:0 auto;transition:width .18s ease,aspect-ratio .18s ease;transform-origin:top center}.preview-paper.portrait{width:min(100%,620px);aspect-ratio:210/297}.preview-paper.landscape{width:min(100%,900px);aspect-ratio:297/210}.preview-paper.format-a3.portrait{aspect-ratio:297/420}.preview-paper.format-a3.landscape{aspect-ratio:420/297}.preview-paper .ska-document{min-height:100%;box-shadow:0 8px 25px rgba(15,23,42,.12);border:1px solid #cbd5e1;padding:18px}.template-live-stage{overflow:auto;background:#eef2f6;padding:16px;border-radius:12px;min-height:520px}.template-editor-preview{min-width:0}.template-editor-split{grid-template-columns:minmax(650px,1.12fr) minmax(520px,.88fr)}
@media(max-width:1450px){.template-editor-split{grid-template-columns:1fr}.template-editor-preview{position:static}.schema-field-row,.schema-sign-row,.schema-column-row{overflow-x:auto}}
/* V15 header sizing and access controls */
.app-header{min-height:58px}.brand-wrap{padding:6px 18px}.brand-mark{width:42px;height:42px}.brand strong{font-size:18px}.brand small{font-size:10.5px}.top-nav a{padding:0 14px;min-height:58px}.header-actions{padding:10px 15px}.access-check{width:18px;height:18px}.date-alert{border-left:4px solid var(--warning);background:#fffbeb;padding:10px 12px;border-radius:8px}.date-ok{border-left:4px solid var(--success);background:#ecfdf3;padding:10px 12px;border-radius:8px}

/* V17 – commercial calculation modules */
.rate-result .rate-subvalue{font-size:20px;font-weight:850;color:#fff;margin:3px 0 12px}.text-success{color:var(--success)}.text-danger{color:var(--danger)}
.site-calc-layout{grid-template-columns:minmax(0,1fr) 360px}.site-calc-summary{position:sticky;top:78px;align-self:start;max-height:calc(100vh - 92px);overflow:auto;padding-right:2px}.site-entry-table{min-width:1250px}.site-entry-table input,.site-entry-table select{min-width:86px;padding:6px 7px;font-size:11px}.site-entry-table td:nth-child(1) input{min-width:150px}.site-entry-table td:nth-child(2) input,.site-entry-table td:nth-child(2) select{min-width:180px}.site-calc-summary .meter-row{grid-template-columns:minmax(135px,1fr) 0 auto}.site-calc-summary .meter-row strong{white-space:nowrap}.site-calc-summary .rate-result .value{font-size:23px;overflow-wrap:anywhere}
@media(max-width:1180px){.site-calc-layout{grid-template-columns:1fr}.site-calc-summary{position:static;max-height:none}}

/* SK-Aufmaß V19 · Erweiterte Einsatzplanung */
.resource-commandbar{position:sticky;top:58px;z-index:44;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 6px 20px rgba(15,23,42,.08);backdrop-filter:blur(8px)}
.shortcut-hint{font-size:9px;opacity:.7;border:1px solid currentColor;border-radius:5px;padding:1px 4px}.resource-save-state{min-width:88px;justify-content:center}.resource-draft-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;padding:12px 14px;border:1px solid #fde68a;border-left:5px solid #b45309;border-radius:11px;background:#fffbeb;color:#78350f}.resource-draft-banner[hidden]{display:none!important}.resource-draft-banner span{font-size:11px}
.resource-project-dates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-self:end}.resource-project-dates>span{display:flex;flex-direction:column;min-height:54px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2)}.resource-project-dates small{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.resource-project-dates strong{margin-top:3px;font-size:11px}.resource-auto-horizon{align-self:end;min-height:54px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fbfcfd}
.resource-palette-filters{display:flex;flex-direction:column;gap:9px}.resource-palette-list{scrollbar-gutter:stable}.resource-palette-item[hidden]{display:none!important}.resource-palette-item:focus{outline:2px solid var(--accent);outline-offset:2px}.resource-palette-item.dragging{opacity:.45}.resource-palette-item .resource-capacity{text-align:right}
.resource-calendar-header{align-items:flex-start}.resource-calendar-actions{justify-content:flex-end}.resource-calendar-body{padding:12px}.resource-calendar-controls{display:grid;grid-template-columns:minmax(220px,1fr) 150px 170px 170px auto;gap:10px;align-items:end;margin-bottom:10px}.resource-calendar-controls label{font-size:10px}.resource-calendar-controls input[type=range]{padding:0;border:0;box-shadow:none}.resource-calendar-zoom{display:flex;align-items:center;justify-content:center;min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;font-size:11px;font-weight:800}
.resource-timeline-wrap{position:relative;max-height:650px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:11px;background:#fff;scrollbar-gutter:stable both-edges}.resource-timeline{position:relative;min-width:100%;width:max-content;background:#fff}.resource-calendar-header-row{position:sticky;top:0;z-index:18;display:flex;height:42px;background:#eef2f6;border-bottom:1px solid var(--line-strong)}.resource-header-label{z-index:24!important;background:#eef2f6!important;text-transform:uppercase;font-size:10px;font-weight:850}.resource-period-header-track{position:relative;display:flex;height:42px;overflow:hidden;background:#eef2f6}.resource-period-head{flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line);font-size:9px;font-weight:750;white-space:nowrap}.resource-calendar-lane{position:relative;display:flex;min-height:var(--resource-row-height,48px);border-bottom:1px solid #e7ebf0}.resource-calendar-lane:nth-child(even){background:#fbfcfd}.resource-timeline-label{position:sticky;left:0;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:6px;flex:0 0 auto;min-width:0;height:100%;padding:6px 8px;border-right:1px solid var(--line-strong);background:#fff}.resource-calendar-lane:nth-child(even)>.resource-timeline-label{background:#fbfcfd}.resource-timeline-label>span{min-width:0}.resource-timeline-label strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.resource-timeline-label small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;color:var(--muted)}.resource-lane-edit{flex:0 0 auto;width:26px;height:26px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted);cursor:pointer}.resource-lane-edit:hover{border-color:var(--accent);color:var(--accent)}.resource-calendar-track{position:absolute;top:0;bottom:0;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--resource-period-width,112px) - 1px),#e7ebf0 calc(var(--resource-period-width,112px) - 1px),#e7ebf0 var(--resource-period-width,112px));background-color:rgba(255,255,255,.55)}.resource-calendar-track.drag-over,.resource-period-header-track.drag-over{background-color:rgba(155,93,115,.12);outline:2px dashed var(--accent);outline-offset:-3px}.resource-date-marker{position:absolute;top:0;bottom:0;width:2px;z-index:7;pointer-events:none}.today-marker{background:#dc2626}.today-marker:before{content:"";position:absolute;top:0;left:-3px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #dc2626}.project-end-marker{background:#334155;border-left:1px dashed #fff}.resource-allocation-bar{position:absolute;top:50%;transform:translateY(-50%);z-index:9;display:flex;align-items:center;gap:6px;height:calc(var(--resource-row-height,48px) - 12px);min-height:28px;max-height:52px;padding:4px 10px;border:1px solid color-mix(in srgb,var(--allocation-color,#9b5d73) 65%,#fff);border-radius:8px;background:color-mix(in srgb,var(--allocation-color,#9b5d73) 17%,#fff);color:color-mix(in srgb,var(--allocation-color,#9b5d73) 72%,#111827);box-shadow:0 2px 8px rgba(15,23,42,.08);cursor:grab;overflow:hidden;user-select:none}.resource-allocation-bar.dragging{opacity:.5}.resource-allocation-bar strong{position:relative;z-index:2;max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.resource-bar-meta{position:relative;z-index:2;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:8px}.resource-progress-fill{position:absolute;z-index:0;left:0;top:0;bottom:0;background:color-mix(in srgb,var(--allocation-color,#9b5d73) 15%,transparent);pointer-events:none}.resource-allocation-bar.overbooked{border-color:#dc2626;background:#fff1f2;color:#991b1b}.resource-allocation-bar.long-lead{box-shadow:inset 0 -3px #d97706,0 2px 8px rgba(15,23,42,.08)}.resource-allocation-bar.locked{cursor:not-allowed;filter:saturate(.7)}.resource-lock-indicator{position:relative;z-index:2;font-size:10px}.resource-resize-handle{position:absolute;z-index:5;top:0;bottom:0;width:9px;cursor:ew-resize}.resource-resize-handle.start{left:0}.resource-resize-handle.end{right:0}.resource-resize-handle:hover{background:rgba(255,255,255,.5)}.resource-calendar-empty{padding:46px;text-align:center;color:var(--muted);font-size:12px}.resource-render-limit{margin:8px}.resource-calendar-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;font-size:9px;color:var(--muted)}.resource-calendar-legend span{display:inline-flex;align-items:center;gap:5px}.resource-calendar-legend span:before{content:"";width:11px;height:7px;border-radius:3px;background:#9b5d73}.resource-calendar-legend .legend-equipment:before{background:#0f766e}.resource-calendar-legend .legend-material:before{background:#b45309}.resource-calendar-legend .legend-service:before{background:#075985}.resource-calendar-legend .legend-overbooked:before{background:#dc2626}.resource-calendar-legend .legend-longlead:before{background:#d97706}
.resource-allocation-card>.card-body{padding:12px}.resource-table-filters{display:grid;grid-template-columns:minmax(210px,1.6fr) repeat(4,minmax(120px,1fr)) repeat(2,145px) auto;gap:8px;align-items:end;margin-bottom:10px}.resource-table-filters label{font-size:9px}.resource-column-panel{margin-bottom:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.resource-column-panel[hidden]{display:none!important}.resource-column-options{display:flex;gap:6px 16px;flex-wrap:wrap;margin:7px 0}.resource-column-options .check-row{margin:0;font-size:10px}.resource-bulkbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:9px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#fbfcfd}.resource-bulkbar .check-row{margin:0}.resource-allocation-table-wrap{max-height:680px;overflow:auto;scrollbar-gutter:stable both-edges}.resource-allocation-table{table-layout:fixed;width:max-content;min-width:100%;font-size:10px}.resource-allocation-table col{min-width:54px}.resource-allocation-table th{position:sticky;top:0;z-index:12;height:36px;padding:0;background:#eef2f6}.resource-allocation-table th[data-col=select]{left:0;z-index:16}.resource-allocation-table th[data-col=resource]{left:54px;z-index:15}.resource-allocation-table td[data-col=select]{position:sticky;left:0;z-index:7;background:#fff}.resource-allocation-table td[data-col=resource]{position:sticky;left:54px;z-index:6;background:#fff}.resource-allocation-table tbody tr:nth-child(even) td[data-col=select],.resource-allocation-table tbody tr:nth-child(even) td[data-col=resource]{background:#fbfcfd}.resource-allocation-table tr.row-overbooked td[data-col=select],.resource-allocation-table tr.row-overbooked td[data-col=resource],.resource-allocation-table tr.row-cross-overbooked td[data-col=select],.resource-allocation-table tr.row-cross-overbooked td[data-col=resource]{background:#fff1f2}.resource-allocation-table tr.row-delivery-risk{box-shadow:inset 4px 0 #b45309}.resource-allocation-table tr.row-locked{opacity:.78}.resource-allocation-table tr.dragging{opacity:.45}.resource-allocation-table td{overflow:hidden;padding:5px;vertical-align:top}.resource-allocation-table input,.resource-allocation-table select,.resource-allocation-table textarea{min-width:0;width:100%;padding:5px 6px;font-size:9px}.resource-allocation-table textarea{min-height:56px}.resource-allocation-table td[data-col=delivery]{display:grid;gap:4px}.resource-allocation-table td[data-col=delivery] label{gap:2px;font-size:8px}.resource-allocation-table .resource-name-cell strong,.resource-allocation-table .resource-name-cell small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-allocation-table .resource-name-cell strong{font-size:10px}.resource-allocation-table .resource-name-cell small{font-size:8px;color:var(--muted);margin-bottom:4px}.compact-input-group{margin-top:4px}.compact-input-group input[type=color]{flex:0 0 36px;padding:2px}.resource-allocation-table .mini-progress{height:5px;margin-top:4px}.resource-allocation-table .actions{white-space:normal;display:flex;gap:3px;flex-wrap:wrap}.resource-allocation-table .actions .btn{padding:4px 6px}.resource-allocation-table.comfortable td{padding:9px}.resource-allocation-table.comfortable input,.resource-allocation-table.comfortable select,.resource-allocation-table.comfortable textarea{padding:8px;font-size:10px}.resource-sort-button{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:5px 15px 5px 7px;border:0;background:transparent;color:#334155;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.35px;cursor:pointer}.resource-sort-button:disabled{cursor:default}.resource-column-resizer{position:absolute;right:-2px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:5}.resource-column-resizer:hover{background:var(--accent)}body.resizing-column{cursor:col-resize!important;user-select:none}.column-hidden{display:none!important}.resource-table-footer{display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:var(--muted);font-size:9px}.resource-check-scroll{max-height:460px;overflow:auto;scrollbar-gutter:stable}.text-danger{color:var(--danger)}
.resource-edit-modal .modal{width:min(980px,96vw)}.resource-edit-dialog .modal-body{max-height:72vh;overflow:auto}.resource-edit-dialog .check-row{align-self:end;min-height:42px;padding:7px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}
.resource-calendar-card:fullscreen{padding:0;background:var(--bg);overflow:hidden}.resource-calendar-card:fullscreen .card-body{height:calc(100vh - 82px);display:flex;flex-direction:column}.resource-calendar-card:fullscreen .resource-timeline-wrap{max-height:none;flex:1}.resource-calendar-card:fullscreen .resource-calendar-header{background:#fff}
@media(max-width:1500px){.resource-table-filters{grid-template-columns:repeat(4,minmax(140px,1fr))}.resource-table-filters label:first-child{grid-column:span 2}.resource-calendar-controls{grid-template-columns:minmax(200px,1fr) 140px 160px 160px auto}}
@media(max-width:1180px){.resource-commandbar{top:56px}.resource-project-dates{grid-template-columns:repeat(2,1fr)}.resource-calendar-controls{grid-template-columns:1fr 1fr 1fr}.resource-calendar-zoom{min-height:34px}.resource-table-filters{grid-template-columns:repeat(3,1fr)}.resource-palette{position:static;max-height:none}.resource-palette-list{max-height:360px}}
@media(max-width:760px){.resource-commandbar{position:static}.resource-commandbar,.resource-draft-banner{align-items:stretch;flex-direction:column}.resource-project-dates{grid-template-columns:1fr 1fr}.resource-calendar-controls,.resource-table-filters{grid-template-columns:1fr 1fr}.resource-table-filters label:first-child{grid-column:span 2}.resource-timeline-wrap{max-height:560px}.resource-table-footer{flex-direction:column}.resource-allocation-table-wrap{max-height:560px}}

/* V20 – document branding, editor comfort and structured deployment calendar */
.brand-logo-preview{display:flex;align-items:center;justify-content:flex-start;min-height:74px;margin:6px 0 8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}.brand-logo-preview img{display:block;max-width:260px;max-height:82px;object-fit:contain}.doc-brand-preview{display:flex;align-items:center;min-height:42px;margin-bottom:7px}.doc-brand-preview img{display:block;max-width:220px;max-height:64px;object-fit:contain}.doc-brand-preview span{display:grid;place-items:center;width:38px;height:38px;border-radius:7px;color:#fff;font-weight:900}.document-editor-qol{position:sticky;top:64px;z-index:35;margin-bottom:12px;box-shadow:0 7px 20px rgba(15,23,42,.08)}.document-editor-qol .toolbar{border:0;background:#fff}.document-editor-compact .document-sheet{padding:12px}.document-editor-compact .doc-section{margin:8px 0}.document-editor-compact .editor-table td,.document-editor-compact .editor-table th{padding:2px 4px}.document-editor-compact .editor-table input,.document-editor-compact .editor-table select,.document-editor-compact .editor-table textarea{padding:4px}.document-workflow-status{display:flex;align-items:center;gap:6px}.schema-sign-row{grid-template-columns:28px minmax(130px,1fr) minmax(130px,1fr) 125px 95px 120px 116px}.schema-sign-row .check-row{margin:0;white-space:normal}.template-editor-preview{position:sticky;top:72px;align-self:start;max-height:calc(100vh - 88px);overflow:auto}.preview-paper .ska-logo img{max-width:180px;max-height:54px;object-fit:contain}
.resource-calendar-header-row{height:58px}.resource-period-header-track{height:58px}.resource-period-head{height:58px;flex-direction:column;align-items:stretch;justify-content:stretch;padding:0;background:#f4f7fa}.resource-period-head-main{display:flex;align-items:center;justify-content:center;min-height:29px;padding:4px 5px;border-bottom:1px solid #cfd8e3;font-size:9px;font-weight:850;background:#e9eef4}.resource-period-subhead{display:grid;flex:1;min-height:28px}.resource-period-subhead.week{grid-template-columns:repeat(7,minmax(0,1fr))}.resource-period-subhead.month{grid-template-columns:repeat(5,minmax(0,1fr))}.resource-period-subhead>span,.resource-day-head{display:flex;align-items:center;justify-content:center;min-width:0;border-right:1px solid #dfe5ec;font-size:7.5px;font-weight:700;color:#556579;overflow:hidden;white-space:nowrap}.resource-period-subhead>span:last-child,.resource-day-head:last-child{border-right:0}.resource-day-head.weekend{background:#f3e9ed;color:#7f4259}.resource-calendar-track{background-color:rgba(255,255,255,.75);background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--subperiod-width,24px) - 1px),rgba(203,213,225,.55) calc(var(--subperiod-width,24px) - 1px),rgba(203,213,225,.55) var(--subperiod-width,24px)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--period-width,112px) - 1px),#94a3b8 calc(var(--period-width,112px) - 1px),#94a3b8 var(--period-width,112px))}.granularity-week .resource-calendar-track{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--subperiod-width,12px) * 5),rgba(155,93,115,.07) calc(var(--subperiod-width,12px) * 5),rgba(155,93,115,.07) var(--period-width,86px)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--subperiod-width,12px) - 1px),rgba(203,213,225,.66) calc(var(--subperiod-width,12px) - 1px),rgba(203,213,225,.66) var(--subperiod-width,12px)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--period-width,86px) - 1px),#7f8da0 calc(var(--period-width,86px) - 1px),#7f8da0 var(--period-width,86px))}.resource-calendar-lane:hover .resource-calendar-track{background-color:rgba(244,247,250,.9)}.resource-header-label{height:58px}.resource-allocation-bar{transition:left .08s ease,width .08s ease,box-shadow .12s ease}.resource-allocation-bar:hover{z-index:15;box-shadow:0 5px 16px rgba(15,23,42,.17)}
@media(max-width:980px){.document-editor-qol{position:static}.template-editor-preview{position:static;max-height:none}.schema-sign-row{grid-template-columns:24px 1fr}.schema-sign-row>*:nth-child(n+3){grid-column:2}.resource-calendar-header-row,.resource-period-header-track,.resource-period-head{height:54px}.resource-header-label{height:54px}}
/* V21: stable calculation summary sizing */
.site-calc-summary .card{min-width:0;overflow:hidden}
.site-calc-summary .card-header{align-items:flex-start;min-width:0}
.site-calc-summary .card-header h3{min-width:0;line-height:1.25;overflow-wrap:anywhere}
.site-calc-summary .card-body{min-width:0;overflow:hidden}
.site-calc-summary .meter-row{grid-template-columns:minmax(0,1fr) 0 minmax(92px,42%);gap:8px;align-items:start}
.site-calc-summary .meter-row>span,.site-calc-summary .meter-row>strong{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.3}
.site-calc-summary .meter-row>strong{text-align:right;font-variant-numeric:tabular-nums}
.site-calc-summary .rate-result{min-width:0;overflow:hidden}
.site-calc-summary .rate-result .value{max-width:100%;font-size:clamp(18px,2vw,25px);white-space:normal;overflow-wrap:anywhere}
@media(max-width:1180px){.site-calc-summary .meter-row{grid-template-columns:minmax(0,1fr) 0 minmax(120px,35%)}}

/* V22 – grouped navigation, received demands and adaptive calculation cards */
.nav-dropdown{position:relative;display:flex;align-items:stretch}.nav-dropdown-toggle{display:flex;align-items:center;gap:7px;padding:0 13px;border:0;border-bottom:3px solid transparent;background:transparent;color:#cbd5e1;white-space:nowrap;font-size:13px;cursor:pointer}.nav-dropdown-toggle span{color:var(--accent);font-weight:700}.nav-dropdown-toggle b{font-size:11px;color:#94a3b8;transition:transform .15s}.nav-dropdown:hover .nav-dropdown-toggle,.nav-dropdown.open .nav-dropdown-toggle,.nav-dropdown.active .nav-dropdown-toggle{background:rgba(255,255,255,.06);color:#fff}.nav-dropdown.active .nav-dropdown-toggle{border-bottom-color:var(--accent)}.nav-dropdown.open .nav-dropdown-toggle b{transform:rotate(180deg)}.nav-dropdown-menu{position:absolute;top:100%;left:0;z-index:90;display:none;min-width:245px;padding:7px;background:#172033;border:1px solid rgba(255,255,255,.11);border-radius:0 0 11px 11px;box-shadow:0 18px 35px rgba(15,23,42,.28)}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu{display:grid}.nav-dropdown-menu a{display:flex!important;align-items:center;gap:8px;padding:10px 11px!important;border:0!important;border-radius:7px;font-size:12px}.nav-dropdown-menu a.active{background:rgba(255,255,255,.10)!important;box-shadow:inset 3px 0 0 var(--accent)}
.incoming-demand-layout{grid-template-columns:minmax(0,1fr) 350px}.incoming-demand-summary{position:sticky;top:86px;align-self:start;max-height:calc(100vh - 100px);overflow:auto;padding-right:2px}.incoming-resource-table{min-width:1180px}.incoming-resource-table input,.incoming-resource-table select{min-width:100px;padding:6px 7px;font-size:11px}.incoming-risk-gauge{height:12px;background:#e2e8f0;border-radius:999px;overflow:hidden}.incoming-risk-gauge span{display:block;height:100%;background:linear-gradient(90deg,#15803d,#d97706,#b91c1c);border-radius:inherit}.incoming-exposure-strip{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) auto;gap:12px;align-items:center;margin:12px 0 16px;padding:12px 14px;border:1px solid #e7c9d5;border-left:4px solid var(--accent);border-radius:10px;background:#fff8fb}.incoming-exposure-strip small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.35px}.incoming-exposure-strip strong{display:block;margin-top:3px;font-size:13px;overflow-wrap:anywhere}.change-register-table{max-height:calc(100vh - 390px);overflow:auto}.change-register-table .data-table{min-width:1500px}.register-row.direction-incoming{background:#fffafb}.register-row.direction-incoming:hover{background:#fff4f8}.register-direction-tabs{display:flex;gap:6px;flex-wrap:wrap}.change-kpis .kpi strong{font-size:clamp(18px,1.8vw,25px)}
.site-calc-summary{max-height:none!important;overflow:visible!important}.site-calc-summary>.card,.site-calc-summary>.rate-result{height:auto!important;min-height:min-content}.site-calc-summary .card-body{height:auto!important;min-height:0!important;overflow:visible!important}.site-calc-summary .calc-warning-list{max-height:none!important;overflow:visible!important}.site-calc-summary .meter-row{min-height:30px;padding:2px 0}.site-calc-summary .meter-row>span{align-self:start}.site-calc-summary .meter-row>strong{align-self:start}.site-calc-summary .card-header{min-height:51px}.site-calc-summary .card-header h3{font-size:15px}.site-calc-layout{align-items:start}
.resource-drag-date-guide{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);pointer-events:none;z-index:9;box-shadow:0 0 0 1px rgba(255,255,255,.75)}.resource-drag-date-label{position:absolute;top:4px;transform:translateX(-50%);z-index:12;padding:4px 7px;border-radius:6px;background:#111827;color:#fff;font-size:10px;white-space:nowrap;pointer-events:none}.resource-allocation-bar.drag-precise{opacity:.82;box-shadow:0 8px 18px rgba(15,23,42,.28);cursor:grabbing!important;z-index:11}.resource-timeline.pointer-dragging,.resource-timeline.pointer-dragging *{user-select:none}.resource-calendar-track{position:absolute}.resource-calendar-track:has(.resource-allocation-bar.drag-precise){cursor:crosshair}
@media(max-width:1180px){.incoming-demand-layout{grid-template-columns:1fr}.incoming-demand-summary{position:static;max-height:none}.incoming-exposure-strip{grid-template-columns:1fr 1fr}.incoming-exposure-strip .btn{grid-column:1/-1}.nav-dropdown-menu{position:static;box-shadow:none;border:0;border-radius:0;padding:0 0 0 18px;background:transparent}.nav-dropdown{display:block}.nav-dropdown-toggle{width:100%;justify-content:flex-start;padding:11px 16px;border-left:3px solid transparent;border-bottom:0}.nav-dropdown-menu a{padding:9px 16px!important}.nav-dropdown:hover .nav-dropdown-menu{display:none}.nav-dropdown.open .nav-dropdown-menu{display:grid}}
@media(max-width:720px){.incoming-exposure-strip{grid-template-columns:1fr}.change-register-table{max-height:none}.incoming-demand-summary{overflow:visible}}
/* V22 – flexible calculation sidebar and received-demand reporting */
.site-calc-layout{grid-template-columns:minmax(0,1fr) minmax(360px,430px)!important;align-items:start}
.site-calc-summary{display:grid!important;grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;min-width:0}
.site-calc-summary>.card,.site-calc-summary>.rate-result{width:100%;min-width:0;overflow:visible}
.site-calc-summary .meter-row{grid-template-columns:minmax(128px,1.3fr) minmax(8px,.35fr) minmax(118px,auto);align-items:start;gap:8px;min-height:34px}
.site-calc-summary .meter-row>span{white-space:normal;overflow-wrap:anywhere;line-height:1.3}
.site-calc-summary .meter-row>strong{text-align:right;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;line-height:1.3}
.site-calc-summary .rate-result .value{font-size:clamp(20px,2.1vw,28px);line-height:1.12;overflow-wrap:anywhere}
.site-calc-summary .calc-warning-list .alert{white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.report-received-kpis .kpi strong{font-size:clamp(18px,1.55vw,25px);overflow-wrap:anywhere}
.incoming-demand-register-table{min-width:1280px}
@media(max-width:1220px){.site-calc-layout{grid-template-columns:1fr!important}.site-calc-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.site-calc-summary>.rate-result{grid-column:1/-1}}
@media(max-width:760px){.site-calc-summary{grid-template-columns:1fr}.site-calc-summary .meter-row{grid-template-columns:minmax(0,1fr) auto}.site-calc-summary .meter-row>div{display:none}}
/* V22 received-demand simulation corridor */
.incoming-simulation-result{overflow:hidden}.incoming-percentile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:13px}.incoming-percentile-grid>div{min-width:0;padding:8px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(255,255,255,.07)}.incoming-percentile-grid small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.incoming-percentile-grid strong{display:block;margin-top:3px;font-size:12px;line-height:1.25;overflow-wrap:anywhere}.incoming-simulation-note{display:block;margin-top:10px;line-height:1.35}.incoming-corridor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.incoming-corridor>div{min-width:0;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.incoming-corridor small{display:block;color:var(--muted);font-size:9px}.incoming-corridor strong{display:block;margin-top:4px;font-size:12px;overflow-wrap:anywhere}.incoming-time-corridor{display:flex;justify-content:space-between;gap:10px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line);font-size:10px}.incoming-time-corridor strong{text-align:right;overflow-wrap:anywhere}
@media(max-width:540px){.incoming-percentile-grid,.incoming-corridor{grid-template-columns:1fr}.incoming-time-corridor{display:block}.incoming-time-corridor strong{display:block;text-align:left;margin-top:3px}}

/* V23 – header without horizontal scrollbar; dropdowns stay fully visible */
.app-header{grid-template-columns:auto minmax(0,1fr) auto;overflow:visible}
.brand-wrap,.header-actions,.top-nav,.nav-dropdown{min-width:0}
.top-nav{display:flex;align-items:stretch;align-content:stretch;flex-wrap:wrap;overflow:visible!important;scrollbar-width:none}
.top-nav::-webkit-scrollbar{display:none}
.nav-dropdown{position:relative;overflow:visible}
.nav-dropdown-menu{z-index:220;max-height:min(70vh,620px);overflow-y:auto;overflow-x:hidden}
.header-actions{align-self:stretch}
@media (max-width:1550px) and (min-width:981px){
    .app-header{grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto}
    .brand-wrap{grid-column:1/2;grid-row:1}
    .header-actions{grid-column:3/4;grid-row:1}
    .top-nav{grid-column:1/-1;grid-row:2;width:100%;border-top:1px solid rgba(255,255,255,.09);background:#172033}
    .top-nav>a,.nav-dropdown-toggle{min-height:48px;padding-top:9px;padding-bottom:9px}
    .nav-dropdown-menu{top:100%}
}
@media(max-width:980px){
    .app-header{overflow:visible}
    .top-nav{overflow:visible!important;flex-wrap:nowrap}
    .top-nav.open{overflow:visible!important}
    .nav-dropdown-menu{max-height:none;overflow:visible}
}
@media (min-width:981px) and (max-width:1180px){
    .nav-dropdown{display:flex;align-items:stretch;position:relative}
    .nav-dropdown-toggle{width:auto;justify-content:flex-start;padding:9px 13px;border-left:0;border-bottom:3px solid transparent}
    .nav-dropdown-menu{position:absolute;top:100%;left:0;min-width:245px;padding:7px;background:#172033;border:1px solid rgba(255,255,255,.11);border-radius:0 0 11px 11px;box-shadow:0 18px 35px rgba(15,23,42,.28)}
    .nav-dropdown-menu a{padding:10px 11px!important}
    .nav-dropdown.open .nav-dropdown-menu{display:grid}
}


/* =========================================================
   SK-AUFMASS AUTH – CORPORATE SPLIT-SCREEN
   Corporate palette: #A45E78 / #F8EDF1 / #E3C4CF
   ========================================================= */
:root{
  --ska-auth:#A45E78;
  --ska-auth-dark:#84465E;
  --ska-auth-soft:#F8EDF1;
  --ska-auth-border:#E3C4CF;
  --ska-auth-ink:#172235;
  --ska-auth-muted:#6E7C91;
}
.public-auth-page{
  background:#fff!important;
  color:var(--ska-auth-ink)!important;
}
.public-auth-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(420px,50%) minmax(520px,50%);
  background:#fff;
}
.public-auth-visual{
  position:sticky;
  top:0;
  height:100vh;
  padding:44px 52px;
  box-sizing:border-box;
  color:#fff;
  background:
    radial-gradient(circle at 82% 84%,rgba(164,94,120,.35),transparent 34%),
    linear-gradient(145deg,#21131A 0%,#3D2430 58%,#704357 100%);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.public-auth-brand{
  display:flex;
  align-items:center;
  gap:13px;
}
.public-auth-mark{
  width:42px;
  height:42px;
  border-radius:11px;
  background:var(--ska-auth);
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:900;
  font-size:13px;
  box-shadow:0 10px 26px rgba(164,94,120,.34);
}
.public-auth-brand strong{
  display:block;
  color:#fff;
  font-size:21px;
  letter-spacing:-.02em;
}
.public-auth-brand small{
  display:block;
  margin-top:2px;
  color:#E4CED6;
  font-size:11px;
}
.public-auth-copy{
  margin:auto 0 36px;
  max-width:710px;
}
.public-auth-kicker{
  display:block;
  color:#F2B8CD;
  font-size:11px;
  font-weight:850;
  letter-spacing:.16em;
  margin-bottom:22px;
}
.public-auth-copy h1{
  margin:0 0 20px;
  color:#fff;
  font-size:clamp(42px,4.5vw,68px);
  line-height:1.02;
  letter-spacing:-.045em;
  font-weight:900;
}
.public-auth-copy p{
  margin:0;
  color:#F0DFE5;
  font-size:18px;
  line-height:1.65;
}
.public-auth-benefits{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.public-auth-benefit{
  padding:15px 16px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:12px;
  background:rgba(255,255,255,.065);
}
.public-auth-benefit strong{
  display:block;
  color:#fff;
  font-size:13px;
  margin-bottom:5px;
}
.public-auth-benefit span{
  display:block;
  color:#E5D3DA;
  font-size:11px;
  line-height:1.45;
}
.public-auth-powered{
  margin-top:auto;
  padding-top:26px;
  color:#C8AAB6;
  font-size:10px;
}
.public-auth-main{
  min-width:0;
  min-height:100vh;
  background:#fff;
  display:flex;
  flex-direction:column;
}
.public-auth-toolbar{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:20px 42px;
  border-bottom:1px solid #EDF0F4;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
}
.public-auth-toolbar small{
  display:block;
  color:var(--ska-auth);
  font-size:11px;
  font-weight:850;
  letter-spacing:.14em;
}
.public-auth-toolbar strong{
  display:block;
  margin-top:3px;
  color:var(--ska-auth-ink);
  font-size:15px;
}
.public-auth-language{
  display:flex;
  gap:4px;
  padding:4px;
  background:#F3F4F7;
  border-radius:9px;
}
.public-auth-language a{
  padding:7px 10px;
  border-radius:6px;
  color:#758294;
  font-size:11px;
  font-weight:850;
  text-decoration:none;
}
.public-auth-language a.active{
  background:var(--ska-auth-soft);
  color:var(--ska-auth);
}
.public-auth-page .public-main{
  width:100%;
  max-width:820px;
  margin:auto;
  padding:46px 42px 54px;
  box-sizing:border-box;
}
.public-auth-page .public-title-card{
  margin:0 0 26px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.public-form-kicker{
  display:block;
  color:var(--ska-auth);
  font-size:11px;
  font-weight:850;
  letter-spacing:.14em;
  margin-bottom:10px;
}
.public-auth-page .public-title-card h1{
  margin:0 0 8px;
  color:var(--ska-auth-ink);
  font-size:36px;
  line-height:1.08;
  letter-spacing:-.04em;
}
.public-auth-page .public-title-card p{
  margin:0;
  color:var(--ska-auth-muted);
  font-size:14px;
  line-height:1.6;
}
.public-auth-page .public-form-card{
  padding:28px;
  border:1px solid #E6E0E3;
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 34px rgba(73,39,52,.065);
}
.public-auth-page .public-form-card label{
  color:#3F2D35;
  font-size:12px;
  font-weight:750;
}
.public-auth-page .public-form-card input,
.public-auth-page .public-form-card select,
.public-auth-page .public-form-card textarea{
  min-height:47px;
  padding:11px 13px;
  border:1px solid #E2D8DC;
  border-radius:9px;
  background:#FCF9FA;
  color:#34242B;
  box-shadow:none;
}
.public-auth-page .public-form-card input:focus,
.public-auth-page .public-form-card select:focus,
.public-auth-page .public-form-card textarea:focus{
  border-color:var(--ska-auth);
  background:#fff;
  box-shadow:0 0 0 3px rgba(164,94,120,.14);
  outline:none;
}
.public-auth-page .btn-primary{
  background:var(--ska-auth)!important;
  border-color:var(--ska-auth)!important;
  color:#fff!important;
  box-shadow:0 9px 22px rgba(164,94,120,.22);
}
.public-auth-page .btn-primary:hover{
  background:var(--ska-auth-dark)!important;
  border-color:var(--ska-auth-dark)!important;
}
.public-auth-submit-stack{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:16px;
}
.public-auth-submit-stack .btn{
  width:100%;
  min-height:48px;
}
.public-auth-secondary{
  display:flex!important;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ska-auth-border)!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--ska-auth)!important;
  font-weight:800!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
.public-auth-secondary:hover{
  border-color:var(--ska-auth)!important;
  background:var(--ska-auth-soft)!important;
  color:var(--ska-auth-dark)!important;
}
.public-auth-page .password-toggle{
  color:var(--ska-auth)!important;
}
.public-auth-page .public-login-options a,
.public-auth-page .public-legal-note a{
  color:var(--ska-auth-dark)!important;
}
.public-auth-page .public-footer{
  margin-top:auto;
  background:#fff;
  color:#7D7380;
  border-top:1px solid #EEE8EB;
}
.public-auth-page .public-footer a{
  color:#7D7380;
}
.public-auth-page .public-footer a:hover{
  color:var(--ska-auth);
}
@media(max-width:1050px){
  .public-auth-shell{grid-template-columns:42% 58%}
  .public-auth-visual{padding:36px 32px}
  .public-auth-copy h1{font-size:44px}
  .public-auth-benefits{grid-template-columns:1fr}
  .public-auth-page .public-main{padding:38px 30px 50px}
  .public-auth-toolbar{padding:18px 30px}
}
@media(max-width:820px){
  .public-auth-shell{display:block}
  .public-auth-visual{
    position:relative;
    height:auto;
    min-height:570px;
    padding:30px 24px;
  }
  .public-auth-copy{margin:70px 0 34px}
  .public-auth-copy h1{font-size:41px}
  .public-auth-benefits{grid-template-columns:1fr 1fr}
  .public-auth-page .public-main{padding:34px 20px 48px}
  .public-auth-toolbar{padding:16px 20px}
}
@media(max-width:580px){
  .public-auth-visual{min-height:690px}
  .public-auth-benefits{grid-template-columns:1fr}
  .public-auth-copy h1{font-size:36px}
  .public-auth-page .public-main{padding:28px 14px 42px}
  .public-auth-page .public-form-card{padding:20px 16px}
  .public-auth-page .public-title-card h1{font-size:31px}
}

.color-preset-select,[data-color-select]{min-width:150px;background:#fff}.invoice-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.invoice-total-box{background:#111827;color:#fff;border-radius:12px;padding:16px;min-width:240px}.invoice-total-box strong{display:block;font-size:26px}.invoice-line-table input,.invoice-line-table select,.invoice-line-table textarea{min-width:90px}.invoice-line-table textarea{min-width:280px;min-height:54px}.invoice-layout-preview{background:#fff;border:1px solid var(--line);padding:22px;box-shadow:0 8px 24px rgba(15,23,42,.08);min-height:460px}.invoice-source-row.ineligible{opacity:.72;background:#fff7ed}.invoice-source-row.eligible{background:#f8fffb}.invoice-status-timeline{display:grid;gap:8px}.invoice-status-timeline>div{border-left:3px solid var(--accent);padding:7px 10px;background:#f8fafc}.invoice-amount-positive{color:var(--success);font-weight:800}.invoice-amount-open{color:var(--warning);font-weight:800}@media(max-width:980px){.invoice-kpis{grid-template-columns:1fr 1fr}.invoice-layout-grid{grid-template-columns:1fr!important}}

/* V26 project control center */
.project-control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.project-control-tile{display:flex;flex-direction:column;gap:5px;min-height:78px;padding:14px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#fff,#f8fafc);color:var(--text);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.project-control-tile:hover{border-color:var(--accent);box-shadow:0 8px 24px rgba(15,23,42,.08);transform:translateY(-1px)}.project-control-tile strong{font-size:14px}.project-control-tile small{color:var(--muted);line-height:1.35}.project-control-tile.is-disabled{border-style:dashed;background:#f8fafc}.project-control-tile.is-disabled strong{color:var(--muted)}

/* V28 compact invoice positions */
.invoice-position-table th{font-size:11px;white-space:nowrap}.invoice-position-table td{font-size:12px;padding-top:7px;padding-bottom:7px;vertical-align:top}.invoice-position-table td:nth-child(3),.invoice-position-table td:nth-child(4),.invoice-position-table td:nth-child(5),.invoice-position-table td:nth-child(6),.invoice-position-table td:nth-child(7),.invoice-position-table td:nth-child(8){white-space:nowrap}

/* V30 final invoice line-table refinement */
.invoice-position-table thead th,
.invoice-line-table thead th{
    background:#fbfcfe;
    color:var(--muted);
    font-size:10px;
    font-weight:600;
    letter-spacing:.01em;
    border-bottom:1px solid var(--line-strong);
}
.invoice-position-table td:nth-child(2),
.invoice-line-table td:nth-child(3){
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
    line-height:1.42;
}
.invoice-position-table tbody tr:last-child td{
    padding-bottom:12px;
}
.invoice-position-table{
    margin-bottom:10px;
}

/* V38 partial-invoice workflow and source-document quality-of-life */
.invoice-source-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:#fbfcfe}.invoice-source-toolbar .badge{margin-left:3px}.invoice-source-table th{font-size:10.5px;white-space:nowrap}.invoice-source-table td{vertical-align:top}.invoice-source-table .money{white-space:nowrap}.invoice-source-reason{display:block;margin-top:4px;color:#9a3412;line-height:1.3}.invoice-source-row.ineligible input:disabled,.invoice-source-row.ineligible button:disabled{cursor:not-allowed}.invoice-source-row.ineligible{opacity:.78}.invoice-source-row.eligible{background:#fbfffd}[data-partial-reference][hidden]{display:none!important}@media(max-width:1100px){.invoice-source-toolbar{align-items:stretch}.invoice-source-toolbar .btn{flex:1 1 auto}.invoice-source-table{min-width:1080px}}
.invoice-source-references{min-width:165px;max-width:245px}.invoice-source-references small{display:block;line-height:1.35;color:var(--muted);white-space:normal}.invoice-source-references small+small{margin-top:3px}.invoice-source-table th,.invoice-source-table td{vertical-align:top}

/* V41 smart commercial project control */
.commercial-integration-card,.commercial-overview-card{border-color:#d7b4c1;box-shadow:0 8px 24px rgba(92,44,64,.06)}
.commercial-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px}
.commercial-kpi-grid>.kpi{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:11px;background:#fff;padding:13px}
.commercial-kpi-grid>.kpi small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.035em;margin-bottom:5px}
.commercial-kpi-grid>.kpi strong{font-size:19px;line-height:1.2}
.commercial-bridge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.commercial-bridge-grid>div{border:1px solid var(--line);border-radius:10px;background:#f8fafc;padding:11px 12px}
.commercial-bridge-grid small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;margin-bottom:4px}
.commercial-bridge-grid strong{font-size:16px}
.smart-scenario-details{border:1px solid var(--line);border-radius:11px;background:#fbfcfe;padding:0 12px 12px}
.smart-scenario-details>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;cursor:pointer;padding:12px 0}
.cost-comparison-panel{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.cost-comparison-panel h3{margin:0 0 4px}.cost-comparison-panel p{margin:0;max-width:850px}
.cost-comparison-panel tfoot th{background:#f1f5f9;border-top:2px solid var(--line-strong)}
.comparison-unassigned td{background:#fff7ed}
.commercial-result-kpi{border-color:#d7b4c1;background:linear-gradient(180deg,#fff,#fff8fa)}
.smart-result-card .meter-row strong{white-space:nowrap}
@media(max-width:760px){.commercial-kpi-grid,.commercial-bridge-grid{grid-template-columns:1fr 1fr}.smart-scenario-details>summary{display:block}.smart-scenario-details>summary span{display:block;margin-top:4px}}
@media(max-width:480px){.commercial-kpi-grid,.commercial-bridge-grid{grid-template-columns:1fr}}

/* Labor-hours assistant */
.is-hidden{display:none!important}
body.modal-open{overflow:hidden}
.hours-helper-modal{width:min(920px,100%)}
.hours-helper-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.hours-helper-preview article{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface,#fff);min-width:0}
.hours-helper-preview small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}
.hours-helper-preview strong{display:block;font-size:20px;overflow-wrap:anywhere}
@media (max-width:720px){.hours-helper-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.hours-helper-modal .form-grid>[class*="span-"]{grid-column:1/-1}}
@media (max-width:460px){.hours-helper-preview{grid-template-columns:1fr}}

/* V43 connected plan/actual project control */
.monthly-control-card{border-color:#cbd5e1}
.monthly-control-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.monthly-control-legend span{display:inline-flex;align-items:center;min-height:27px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:700}
.legend-revenue,.group-revenue{background:#eef8f2!important}
.legend-hours,.group-hours{background:#eef4fb!important}
.legend-internal,.group-internal{background:#f7f1fb!important}
.legend-external,.group-external{background:#fff7e8!important}
.legend-result,.group-result{background:#fceff3!important}
.group-commercial{background:#f4f6f8!important}
.monthly-control-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.monthly-control-table{min-width:2550px;margin:0}
.monthly-control-table thead th{vertical-align:middle;text-align:center;white-space:normal;line-height:1.25}
.monthly-control-table .monthly-group-head th{font-size:11px;font-weight:800;border-bottom:1px solid var(--line-strong)}
.monthly-control-table td{vertical-align:middle}
.monthly-control-table input{min-width:108px;background:rgba(255,255,255,.88)}
.monthly-control-table input[type="month"]{min-width:140px}
.monthly-auto-value{font-weight:700;white-space:nowrap}
.monthly-total-value{font-weight:800;white-space:nowrap}
.monthly-result-value{font-size:13px;font-weight:900;white-space:nowrap}
.monthly-control-table tfoot th{border-top:2px solid var(--line-strong);font-size:11px;white-space:nowrap}
.direct-cost-summary{margin-bottom:4px}
.direct-cost-summary>div:nth-child(1){border-left:3px solid #64748b}
.direct-cost-summary>div:nth-child(2){border-left:3px solid #7c3aed}
.direct-cost-summary>div:nth-child(3){border-left:3px solid #d97706}
.direct-cost-summary>div:nth-child(4){border-left:3px solid #ea580c}
.direct-cost-summary>div:nth-child(5){border-left:3px solid var(--accent)}
/* Controlling colour system: revenue green, plan neutral, actual cost red, open/pending blue, forecast teal. */
.commercial-kpi-groups>.kpi.kpi-revenue{border-left-color:#15803d;background:#f0fdf4}
.commercial-kpi-groups>.kpi.kpi-plan{border-left-color:#64748b;background:#f8fafc}
.commercial-kpi-groups>.kpi.kpi-actual-cost,.commercial-kpi-groups>.kpi.kpi-internal,.commercial-kpi-groups>.kpi.kpi-external{border-left-color:#dc2626;background:#fff7f7}
.commercial-kpi-groups>.kpi.kpi-pending{border-left-color:#2563eb;background:#eff6ff}
.commercial-kpi-groups>.kpi.kpi-result{border-left-color:#7c3aed;background:#faf5ff}
.commercial-kpi-groups>.kpi.kpi-forecast{border-left-color:#0f766e;background:#f0fdfa}
.commercial-bridge-grid.controlling-bridge>div{position:relative;padding-top:16px}
.commercial-bridge-grid.controlling-bridge>div::before{content:attr(data-phase);position:absolute;top:6px;right:10px;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.commercial-bridge-grid.controlling-bridge>.phase-plan{border-top:3px solid #64748b;background:#f8fafc}
.commercial-bridge-grid.controlling-bridge>.phase-actual{border-top:3px solid #dc2626;background:#fff7f7}
.commercial-bridge-grid.controlling-bridge>.phase-pending{border-top:3px solid #2563eb;background:#eff6ff}
.commercial-bridge-grid.controlling-bridge>.phase-forecast{border-top:3px solid #0f766e;background:#f0fdfa}
.commercial-bridge-grid.controlling-bridge>.phase-variance{border-top:3px solid #7c3aed;background:#faf5ff}
.formula-note{margin-top:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:#fbfdff;color:var(--muted);font-size:12px}
.meter-row.plan-row{background:#f8fafc;border-radius:8px;padding:6px 8px}
.meter-row.actual-row{background:#fbf8fd;border-radius:8px;padding:6px 8px}
.meter-row.total-row{background:#fff7fa;border:1px solid #ead0da;border-radius:8px;padding:8px;font-weight:800}
.cost-total-highlight{border:1px solid var(--line-strong);border-radius:12px;padding:12px;background:#fbfcfe}
.expense-correction-actions{display:block;border-top:1px solid var(--line);padding-top:14px}
.expense-correction-actions>h3{margin:0 0 5px}
.expense-correction-actions>p{margin:0 0 12px;max-width:850px}
.expense-correction-actions>.gap{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.expense-correction-actions>.gap form.gap{display:flex;gap:8px;flex:1 1 440px;align-items:flex-end}
.expense-correction-actions>.gap form.gap input{min-width:260px;flex:1 1 300px}
@media(max-width:780px){.monthly-control-legend{display:grid;grid-template-columns:1fr 1fr}.expense-correction-actions>.gap,.expense-correction-actions>.gap form.gap{align-items:stretch}.expense-correction-actions>.gap form.gap input{min-width:100%}}


/* V44 stable offer decision and transparent commercial reconciliation */
.commercial-formula-note{display:grid;gap:4px;margin-top:14px;padding:12px 14px;border:1px solid #cbd5e1;border-left:4px solid #64748b;border-radius:10px;background:#f8fafc;font-size:12px;line-height:1.45}.commercial-formula-note strong{color:#172033}.commercial-formula-note span{color:#475569}
.pricing-zone-grid{display:grid;grid-template-columns:1fr;gap:9px}.pricing-zone{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-left:4px solid #64748b;border-radius:10px;background:#fff}.pricing-zone small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.pricing-zone strong{font-size:18px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.pricing-zone span{color:var(--muted);font-size:10px;line-height:1.35}.pricing-zone-minimum{border-left-color:#d97706;background:#fffbeb}.pricing-zone-required{border-left-color:#0369a1;background:#f0f9ff}.pricing-zone-comfort{border-left-color:#15803d;background:#f0fdf4}.pricing-current-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.pricing-current-row small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.pricing-current-row strong{display:block;margin-top:3px;font-size:17px;font-variant-numeric:tabular-nums}.pricing-position{display:grid;gap:4px;margin:10px 0;padding:11px 12px;border-radius:10px;border:1px solid #cbd5e1;background:#f8fafc}.pricing-position>strong{font-size:13px}.pricing-position>span{color:#475569;font-size:11px;line-height:1.4}.pricing-position>small{font-weight:800}.pricing-position[data-pricing-status="below_minimum"],.pricing-position[data-pricing-status="not_feasible"]{border-color:#fecaca;background:#fef2f2;color:#991b1b}.pricing-position[data-pricing-status="below_target"]{border-color:#fde68a;background:#fffbeb;color:#92400e}.pricing-position[data-pricing-status="target_reached"]{border-color:#bae6fd;background:#f0f9ff;color:#075985}.pricing-position[data-pricing-status="comfort_reached"]{border-color:#bbf7d0;background:#f0fdf4;color:#166534}
@media(min-width:1221px){.pricing-decision-card .pricing-zone strong{font-size:16px}.pricing-decision-card .btn{white-space:normal}}
@media(max-width:760px){.pricing-current-row{align-items:flex-start;flex-direction:column}.pricing-current-row .btn{width:100%}}

/* V47 revenue and actual-cost cockpit: neutral hierarchy without decorative left bars */
.commercial-integration-card,.commercial-overview-card{border-color:var(--line);box-shadow:0 8px 24px rgba(15,23,42,.045)}
.commercial-integration-card .kpi:before,.commercial-overview-card .kpi:before,.finance-metric:before,.finance-bridge-card:before{display:none!important}
.finance-control-body{display:grid;gap:18px}
.finance-metric-section{display:grid;gap:11px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}
.finance-section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.finance-section-heading>div{display:flex;align-items:center;gap:8px}.finance-section-heading strong{font-size:14px}.finance-section-heading small{color:var(--muted);font-weight:700;text-align:right}
.finance-section-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#64748b}
.finance-metric-section-revenue .finance-section-dot{background:#15803d}.finance-metric-section-cost .finance-section-dot{background:#334155}.finance-metric-section-result .finance-section-dot{background:#0f766e}
.finance-metric-grid,.finance-bridge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.finance-metric,.finance-bridge-card{display:grid;align-content:start;gap:5px;min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.finance-metric small,.finance-bridge-card small{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.finance-metric strong,.finance-bridge-card strong{font-size:18px;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.finance-metric span,.finance-bridge-card span{color:var(--muted);font-size:10px;line-height:1.35}
.finance-metric-section-revenue .finance-metric{background:#fbfefc}.finance-bridge-total{background:#f4f8fb;border-color:#cbd5e1}.finance-result-grid .finance-metric{background:#fbfdfd}
.finance-formula-line{display:grid;gap:4px;padding:11px 12px;border:1px dashed #a8b4c4;border-radius:10px;background:#f8fafc}.finance-formula-line strong{font-size:13px}.finance-formula-line span{color:var(--muted);font-size:11px;line-height:1.45}
.direct-cost-forecast{display:grid;gap:12px}.neutral-finance-table th{background:#f1f5f9!important}.neutral-finance-table td{background:#fff!important}
.monthly-control-note{line-height:1.5}
.monthly-control-table{min-width:2730px}
.monthly-control-table .group-revenue,.monthly-control-table .group-hours,.monthly-control-table .group-internal,.monthly-control-table .group-external,.monthly-control-table .group-result,.monthly-control-table .group-commercial{background:#fff!important}
.monthly-control-table .monthly-group-head th{background:#eef2f6!important;color:#243044}
.monthly-control-table tbody tr:nth-child(even) td{background:#fafbfd!important}
.monthly-control-table tfoot th{background:#f1f5f9!important}
.monthly-control-table td:nth-child(2),.monthly-control-table th:nth-child(2){position:sticky;left:0;z-index:2;background:#fff!important;box-shadow:1px 0 0 var(--line)}
.monthly-control-table thead th:nth-child(2){z-index:4}.monthly-control-table tfoot th:nth-child(2){background:#f1f5f9!important}
.project-forecast-summary .meter-row{padding:4px 0}.project-forecast-summary .meter-row:nth-last-of-type(1){font-weight:800}
@media(max-width:760px){.finance-section-heading{display:grid}.finance-section-heading small{text-align:left}.finance-metric-grid,.finance-bridge-grid{grid-template-columns:1fr}}

/* V47.1 final finance alignment: no decorative KPI side strips, only grouped headings */
.kpi:before{display:none!important}
.commercial-kpi-grid>.kpi{border-left-width:1px!important}
.finance-bridge-step{display:grid;align-content:start;gap:5px;min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.finance-bridge-step small{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.finance-bridge-step strong{font-size:18px;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.finance-bridge-step span{color:var(--muted);font-size:10px;line-height:1.35}
.finance-explanation{margin:0;padding:10px 12px;border:1px dashed #a8b4c4;border-radius:10px;background:#f8fafc;color:var(--muted);font-size:11px;line-height:1.45}
.revenue-control-table{min-width:1750px}
.revenue-control-table th,.revenue-control-table td{white-space:nowrap}


/* V49 net-first project controlling and budget/result thresholds */
.kpi-subvalue{margin-top:5px;color:var(--muted);font-size:11px;font-weight:700;line-height:1.3}
.invoice-net-cell{min-width:150px}.invoice-net-cell strong{display:block;font-size:15px;font-variant-numeric:tabular-nums}.invoice-net-cell small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}
.threshold-lines{display:grid;gap:3px;margin-top:7px}.threshold-lines span,.threshold-note{display:block;color:var(--muted);font-size:10px;font-weight:750;line-height:1.35}.threshold-note.is-achieved{color:#166534}.threshold-note.is-open{color:#92400e}
.finance-budget-status{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:8px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#f8fafc}.finance-budget-status>div{display:grid;gap:3px;min-width:0}.finance-budget-status small{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.finance-budget-status strong{font-size:16px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.finance-budget-status.is-overrun{border-color:#fecaca;background:#fef2f2}.finance-budget-status.is-overrun>div:last-of-type strong,.budget-warning-label{color:#b91c1c}.finance-budget-status.is-within-budget{border-color:#bbf7d0;background:#f0fdf4}.finance-budget-status.compact{margin-bottom:10px}.budget-warning-label{grid-column:1/-1;font-size:11px;font-weight:800;line-height:1.35}
.result-threshold-row>span{display:grid;gap:2px}.result-threshold-row>span small{color:var(--muted);font-size:10px;font-weight:750}.forecast-result-cell strong{display:block}.forecast-result-cell small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:700;white-space:normal}
@media(max-width:760px){.finance-budget-status{grid-template-columns:1fr}.budget-warning-label{grid-column:auto}.invoice-net-cell{min-width:125px}}

/* V50 workflow-oriented project card, setup guide and monthly planning assistant */
.project-control-matrix{display:grid;grid-template-columns:repeat(var(--project-control-count,1),minmax(190px,1fr));gap:10px;width:100%;min-width:0;overflow-x:auto;padding-bottom:4px;scrollbar-gutter:stable}.project-control-matrix .project-control-tile{min-width:190px;min-height:112px}.project-control-matrix .project-control-overview{border-top:4px solid var(--accent);background:#fff}.project-control-matrix .project-control-add{min-height:100px;border-style:dashed;background:#f8fafc}.project-control-kind{display:block;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.055em;text-transform:uppercase}.project-control-add .project-control-kind{color:var(--accent)}.project-control-tile[aria-disabled="true"]{cursor:default}.project-control-tile[aria-disabled="true"]:hover{border-color:var(--line);box-shadow:none;transform:none}
.project-setup-guide{border-left:4px solid var(--accent)}.project-setup-form{display:grid;gap:12px}.project-setup-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.project-setup-step{position:relative;display:grid;grid-template-columns:30px 20px minmax(0,1fr);gap:8px;align-items:start;min-width:0;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}.project-setup-step.is-complete{border-color:#86efac;background:#f0fdf4}.project-setup-step.is-open{border-color:#fde68a;background:#fffbeb}.project-setup-number{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:11px;font-weight:850}.project-setup-step.is-complete .project-setup-number{background:#15803d;color:#fff}.project-setup-step.is-open .project-setup-number{background:#d97706;color:#fff}.project-setup-step>input{margin-top:6px}.project-setup-content{display:grid;gap:3px;min-width:0}.project-setup-content strong,.project-setup-content small,.project-setup-content em{min-width:0;overflow-wrap:anywhere}.project-setup-content strong{font-size:12px}.project-setup-content small{color:var(--muted);font-size:10px;line-height:1.35}.project-setup-content em{font-size:9px;font-style:normal;font-weight:800;color:#92400e}.project-setup-step.is-complete .project-setup-content em{color:#166534}.project-setup-actions{padding-top:2px}
.project-static-timeline-wrap{max-height:620px}.project-static-resource-calendar .resource-timeline{--resource-row-height:48px}.project-static-resource-calendar .resource-timeline-label{flex:0 0 var(--resource-label-width,220px);width:var(--resource-label-width,220px)}.project-static-resource-calendar .resource-period-header-track{flex:0 0 auto}.project-static-resource-calendar .resource-calendar-track{cursor:default}.project-static-resource-calendar .resource-allocation-bar{cursor:default;pointer-events:none}.project-static-resource-calendar .resource-allocation-bar:hover{z-index:9;box-shadow:0 2px 8px rgba(15,23,42,.08)}.project-delivery-marker{position:absolute;top:50%;z-index:13;width:11px;height:11px;transform:translate(-50%,-50%) rotate(45deg);border:2px solid #fff;background:#2563eb;box-shadow:0 0 0 1px #1d4ed8;pointer-events:none}.resource-calendar-legend .legend-delivery:before{width:8px;height:8px;border-radius:1px;transform:rotate(45deg);background:#2563eb}
.monthly-planning-assistant{display:grid;gap:11px;margin-bottom:12px;padding:13px;border:1px solid #cbd5e1;border-radius:12px;background:linear-gradient(180deg,#f8fafc,#fff)}.monthly-planning-assistant-head{display:flex;align-items:end;justify-content:space-between;gap:14px;flex-wrap:wrap}.monthly-planning-assistant-head>div{display:grid;gap:3px;min-width:240px;flex:1}.monthly-planning-assistant-head strong{font-size:13px}.monthly-planning-assistant-head small{color:var(--muted);font-size:10px;line-height:1.35}.monthly-planning-assistant-head label{min-width:210px;font-size:10px;font-weight:800}.monthly-planning-assistant-head select{margin-top:4px}.monthly-planning-actions{display:flex;gap:7px;flex-wrap:wrap}.monthly-planning-actions .btn{white-space:normal;line-height:1.25}.monthly-planning-status{min-height:18px;padding-top:2px;font-size:10px;font-weight:750;line-height:1.35}.text-warning{color:#92400e!important}
.finance-budget-status{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-budget-status small{min-width:0;white-space:normal;overflow-wrap:anywhere;hyphens:auto;line-height:1.25}.finance-budget-status strong{min-width:0;max-width:100%;font-size:clamp(13px,1.35vw,16px);white-space:normal;overflow-wrap:anywhere;line-height:1.25}.site-calc-summary .finance-budget-status{width:100%;min-width:0}
@media(max-width:1180px){.project-setup-steps{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.project-control-matrix{grid-template-columns:repeat(var(--project-control-count,1),minmax(170px,78vw))}.project-control-matrix .project-control-tile{min-width:170px}.project-setup-steps{grid-template-columns:1fr}.monthly-planning-assistant-head{align-items:stretch}.monthly-planning-assistant-head label{width:100%;min-width:0}.monthly-planning-actions{display:grid;grid-template-columns:1fr}.finance-budget-status{grid-template-columns:1fr}}


/* V51 commercial-control quality-of-life */
.invoice-mail-preview-card{margin-top:18px}.mail-preview-envelope{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin-bottom:14px}.mail-preview-envelope>div{border:1px solid var(--border);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}.mail-preview-window{max-width:820px;margin:auto;border:1px solid var(--border);border-radius:16px;background:#fff;padding:24px;box-shadow:0 12px 28px rgba(15,23,42,.08)}.mail-preview-brand{display:flex;justify-content:space-between;border-bottom:3px solid var(--primary);padding-bottom:12px;margin-bottom:18px}.mail-preview-invoice{display:grid;gap:4px;background:var(--surface-soft);border-radius:12px;padding:14px;margin:18px 0}.mail-preview-invoice b{font-size:1.35rem;text-align:right}.mail-preview-attachment{display:inline-flex;border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-weight:700}.neutral-finance-table .monthly-group-head th,.neutral-finance-table th.group-revenue,.neutral-finance-table td.group-revenue{background:rgba(16,185,129,.09)}.neutral-finance-table th.group-hours,.neutral-finance-table td.group-hours{background:rgba(59,130,246,.09)}.neutral-finance-table th.group-internal,.neutral-finance-table td.group-internal{background:rgba(139,92,246,.08)}.neutral-finance-table th.group-external,.neutral-finance-table td.group-external{background:rgba(239,68,68,.07)}.neutral-finance-table th.group-commercial,.neutral-finance-table td.group-commercial{background:rgba(245,158,11,.09)}.neutral-finance-table .monthly-total-row td{font-weight:800;text-align:right;border-top:3px solid var(--border-strong);background:var(--surface-soft)}.neutral-finance-table .monthly-total-row td:nth-child(2){text-align:left}.neutral-finance-table input[type=number]{text-align:right;min-width:112px}.commitment-board{display:grid;gap:10px;margin-top:18px}.commitment-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(320px,2fr) auto;gap:18px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:13px 15px;background:var(--surface)}.commitment-row>div:first-child{display:flex;flex-direction:column;gap:4px}.commitment-values{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:10px}.commitment-values small{display:flex;flex-direction:column;gap:3px}.commitment-values b{font-size:1rem}.text-warning{color:#a16207}@media(max-width:900px){.commitment-row{grid-template-columns:1fr}.commitment-values{grid-template-columns:1fr 1fr 1fr}.mail-preview-envelope{grid-template-columns:1fr}}

/* V52 project workflow, dashboard, help and monthly-control refinements */
.project-section-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.project-section-toolbar .muted{margin-right:auto;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}.project-section-filter{margin-bottom:14px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#f8fafc;grid-template-columns:minmax(180px,1.5fr) repeat(4,minmax(135px,1fr)) auto}.project-section-filter label{min-width:0}.project-section-filter .filter-actions{display:flex;gap:7px;align-items:end;flex-wrap:wrap}.period-finance-summary{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:9px;margin:0 0 14px;padding:10px;border:1px solid #bae6fd;border-radius:11px;background:#f0f9ff}.period-finance-summary>div{min-width:0;padding:9px 10px;border-radius:9px;background:#fff}.period-finance-summary small{display:block;color:var(--muted);font-size:10px;line-height:1.25}.period-finance-summary strong{display:block;margin-top:5px;font-size:15px;text-align:right;overflow-wrap:anywhere}
.project-setup-step{grid-template-columns:30px minmax(0,1fr);cursor:default}.project-setup-state-options{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.project-setup-state{display:inline-flex;align-items:center;gap:4px;min-height:26px;padding:3px 7px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#475569;font-size:9px;font-weight:800;cursor:pointer}.project-setup-state input{position:absolute;opacity:0;pointer-events:none}.project-setup-state>span{display:grid;place-items:center;width:16px;height:16px;border-radius:999px;background:#e2e8f0;font-size:9px}.project-setup-state.is-selected{border-color:#64748b;box-shadow:0 0 0 1px #64748b inset}.project-setup-state.is-selected>span{background:#334155;color:#fff}.project-setup-step.is-complete .project-setup-state.is-selected{border-color:#15803d}.project-setup-step.is-complete .project-setup-state.is-selected>span{background:#15803d}.project-setup-step.is-open .project-setup-state.is-selected{border-color:#d97706}.project-setup-step.is-open .project-setup-state.is-selected>span{background:#d97706}
.dashboard-project-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:16px;margin-top:16px}.dashboard-project-table tbody tr{cursor:pointer}.dashboard-project-table tbody tr:hover td{background:#f8fafc}.favorite-cell{width:42px;text-align:center}.favorite-button{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:999px;background:transparent;color:#94a3b8;font-size:19px;cursor:pointer}.favorite-button:hover,.favorite-button.is-active{background:#fff7ed;color:#d97706}.dashboard-status-list{display:grid;gap:7px}.dashboard-favorite-list{display:grid;gap:7px;margin-top:9px;max-height:360px;overflow:auto}.dashboard-favorite-list>a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:inherit;text-decoration:none}.dashboard-favorite-list>a:hover{border-color:var(--accent)}.dashboard-favorite-list span{display:grid;min-width:0}.dashboard-favorite-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.dashboard-favorite-list em{font-size:10px;font-style:normal;font-weight:800;color:#92400e;white-space:nowrap}.dashboard-tasks-card .task-overdue td{background:#fff7ed}.dashboard-tasks-card td{vertical-align:middle}
.help-search-label{display:grid;gap:6px;font-weight:800}.help-search-label input{font-size:15px}.help-category-filter{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.help-category-filter .active{box-shadow:0 0 0 2px rgba(15,23,42,.12)}.help-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.help-topic{margin:0}.help-topic[hidden]{display:none}.help-topic summary{cursor:pointer}.help-topic-category{display:inline-flex;margin-bottom:5px;padding:3px 7px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.4px}.help-topic h3{margin:0}.help-open-symbol{font-size:18px}.help-topic[open] .help-open-symbol{transform:rotate(45deg)}.help-steps{display:grid;gap:9px;margin:0;padding-left:22px}.help-steps li{padding-left:4px;line-height:1.5}
.monthly-control-legend{position:sticky;left:0;z-index:5;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff}.monthly-control-legend span:before{content:"";width:9px;height:9px;border-radius:3px;margin-right:6px;background:currentColor;opacity:.55}.legend-revenue{color:#166534;background:#f0fdf4!important}.legend-hours{color:#1d4ed8;background:#eff6ff!important}.legend-internal{color:#6d28d9;background:#f5f3ff!important}.legend-external{color:#b91c1c;background:#fef2f2!important}.legend-result{color:#0f766e;background:#f0fdfa!important}.legend-commercial{color:#a16207;background:#fffbeb!important}
.monthly-control-wrap{position:relative;max-height:68vh;overflow:auto}.monthly-control-table{border-collapse:separate;border-spacing:0;min-width:2800px}.monthly-control-table th,.monthly-control-table td{border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.monthly-control-table thead{position:sticky;top:0;z-index:8}.monthly-control-table thead th{background:#f8fafc!important;color:#1e293b;font-weight:800}.monthly-control-table .monthly-group-head th{font-size:11px;letter-spacing:.15px;border-bottom:2px solid #cbd5e1}.monthly-control-table .monthly-group-head .group-revenue{background:#dcfce7!important;color:#166534}.monthly-control-table .monthly-group-head .group-hours{background:#dbeafe!important;color:#1d4ed8}.monthly-control-table .monthly-group-head .group-internal{background:#ede9fe!important;color:#6d28d9}.monthly-control-table .monthly-group-head .group-external{background:#fee2e2!important;color:#991b1b}.monthly-control-table .monthly-group-head .group-result{background:#ccfbf1!important;color:#0f766e}.monthly-control-table .monthly-group-head .group-commercial{background:#fef3c7!important;color:#92400e}.monthly-control-table thead tr:nth-child(2) .group-revenue,.monthly-control-table tbody .group-revenue,.monthly-control-table tfoot .group-revenue{background:#f0fdf4!important}.monthly-control-table thead tr:nth-child(2) .group-hours,.monthly-control-table tbody .group-hours,.monthly-control-table tfoot .group-hours{background:#eff6ff!important}.monthly-control-table thead tr:nth-child(2) .group-internal,.monthly-control-table tbody .group-internal,.monthly-control-table tfoot .group-internal{background:#f5f3ff!important}.monthly-control-table thead tr:nth-child(2) .group-external,.monthly-control-table tbody .group-external,.monthly-control-table tfoot .group-external{background:#fef2f2!important}.monthly-control-table thead tr:nth-child(2) .group-result,.monthly-control-table tbody .group-result,.monthly-control-table tfoot .group-result{background:#f0fdfa!important}.monthly-control-table thead tr:nth-child(2) .group-commercial,.monthly-control-table tbody .group-commercial,.monthly-control-table tfoot .group-commercial{background:#fffbeb!important}.monthly-control-table tbody tr:hover td{filter:brightness(.985)}.monthly-control-table .group-revenue+.group-hours,.monthly-control-table .group-hours+.group-internal,.monthly-control-table .group-internal+.group-external,.monthly-control-table .group-external+.group-result,.monthly-control-table .group-result+.group-commercial{border-left:3px solid #94a3b8}.monthly-control-table tbody td:nth-child(3),.monthly-control-table thead tr:nth-child(2) th:first-child{border-left:3px solid #86efac}.monthly-control-table input[type=number]{width:118px;min-width:118px;text-align:right;font-variant-numeric:tabular-nums}.monthly-control-table input[type=month]{width:142px;min-width:142px}.monthly-control-table .monthly-auto-value,.monthly-control-table .monthly-total-value,.monthly-control-table .monthly-result-value,.monthly-control-table tfoot th{min-width:118px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.monthly-control-table .monthly-total-value{font-weight:800}.monthly-control-table tfoot{position:sticky;bottom:0;z-index:7}.monthly-control-table tfoot th{padding-top:11px;padding-bottom:11px;border-top:3px solid #64748b!important;font-size:11px;font-weight:900}.monthly-control-table tfoot th:first-child{text-align:left}.monthly-control-table tr>:first-child{position:sticky;left:0;z-index:6;width:42px;min-width:42px;max-width:42px;background:#fff!important}.monthly-control-table tr>:nth-child(2){position:sticky;left:42px;z-index:6;background:#fff!important;box-shadow:2px 0 0 #cbd5e1}.monthly-control-table thead tr>:first-child,.monthly-control-table thead tr>:nth-child(2){z-index:10;background:#f8fafc!important}.monthly-control-table tfoot tr>:first-child{z-index:9;background:#e2e8f0!important}.monthly-control-table tfoot th[colspan="2"]{position:sticky;left:0;z-index:9;min-width:184px;background:#e2e8f0!important;text-align:left!important}.monthly-control-table td:last-child,.monthly-control-table th:last-child{background:#fff!important}
@media(max-width:1180px){.project-section-filter{grid-template-columns:repeat(3,minmax(140px,1fr))}.period-finance-summary{grid-template-columns:repeat(3,minmax(140px,1fr))}.dashboard-project-grid{grid-template-columns:1fr}.help-topic-grid{grid-template-columns:1fr}}
@media(max-width:760px){.project-section-toolbar{justify-content:stretch}.project-section-toolbar .muted{width:100%}.project-section-toolbar .btn{flex:1}.project-section-filter{grid-template-columns:1fr}.period-finance-summary{grid-template-columns:1fr}.help-category-filter{display:grid;grid-template-columns:1fr 1fr}}

/* V53 commitment control, filters and graphical cost schedule */
.commitment-create-panel{border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,#fff),#fff);overflow:hidden}
.commitment-create-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;cursor:pointer;list-style:none}.commitment-create-panel>summary::-webkit-details-marker{display:none}.commitment-create-panel>summary small{color:var(--muted);font-weight:500;text-align:right}.commitment-create-panel[open]>summary{border-bottom:1px solid var(--border)}.commitment-create-panel>form{padding:0 16px 16px}.commitment-create-cta{display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-size:15px;font-weight:800}
.commitment-filter-grid,.expense-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;align-items:end}.commitment-filter-grid .filter-actions,.expense-filter-grid .filter-actions{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.commitment-filter-grid label,.expense-filter-grid label{min-width:0}
.commitment-board{display:grid;gap:8px;margin-top:14px}.commitment-row{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,.8fr) auto;gap:14px;align-items:center;border:1px solid var(--border);border-radius:12px;padding:12px;background:#fff}.commitment-main{display:flex;flex-direction:column;gap:3px;min-width:0}.commitment-main>span,.commitment-main>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commitment-main>small{color:var(--muted)}.commitment-progress{height:5px;background:#edf1f5;border-radius:999px;overflow:hidden;margin-top:5px}.commitment-progress i{display:block;height:100%;background:var(--accent);border-radius:inherit}.commitment-values{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:8px}.commitment-values small{display:flex;flex-direction:column;gap:2px;padding:7px 8px;background:#f8fafc;border-radius:8px}.commitment-values b{font-size:12px}.commitment-actions{justify-content:flex-end;flex-wrap:wrap}.commitment-actions form{margin:0}
.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px}.pagination .gap{display:flex;gap:6px}
.commitment-timeline-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.commitment-timeline-section h3{margin:0 0 4px}.commitment-timeline-section p{margin:0}.commitment-timeline{margin:14px 0;border:1px solid var(--border);border-radius:12px;overflow:auto;background:#fff}.commitment-timeline-months{display:grid;min-width:max(100%,calc(var(--timeline-months,1)*92px));margin-left:270px;position:sticky;top:0;z-index:4;background:#f1f5f9;border-bottom:1px solid var(--border)}.commitment-timeline-months>div{padding:8px 6px;border-left:1px solid #dbe3ec;text-align:center;font-size:11px;font-weight:750;color:#475569}.commitment-timeline-body{min-width:max(100%,calc(270px + var(--timeline-months)*92px));background:repeating-linear-gradient(to right,transparent 0,transparent calc((100% - 270px)/var(--timeline-months) - 1px),#e4e9ef calc((100% - 270px)/var(--timeline-months) - 1px),#e4e9ef calc((100% - 270px)/var(--timeline-months)))}.commitment-timeline-row{display:grid;grid-template-columns:270px minmax(calc(var(--timeline-months)*92px),1fr);min-height:48px;border-bottom:1px solid #edf1f5}.commitment-timeline-row:last-child{border-bottom:0}.commitment-timeline-label{position:sticky;left:0;z-index:3;background:#fff;padding:8px 10px;border-right:1px solid var(--border);display:flex;flex-direction:column;min-width:0}.commitment-timeline-label span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commitment-timeline-track{position:relative;min-height:48px}.commitment-timeline-bar{position:absolute;top:9px;height:30px;min-width:12px;border-radius:8px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 72%,#000));color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgb(15 23 42/.18);touch-action:none;user-select:none}.commitment-timeline-bar.is-editable{cursor:grab}.commitment-timeline-bar.is-dragging{cursor:grabbing;z-index:8;box-shadow:0 4px 14px rgb(15 23 42/.28)}.commitment-timeline-bar.is-readonly{opacity:.6;background:#64748b}.commitment-timeline-bar>span{font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 10px}.timeline-resize{position:absolute;top:0;bottom:0;width:9px;border:0;background:transparent;cursor:ew-resize;padding:0}.timeline-resize-left{left:0}.timeline-resize-right{right:0}.timeline-resize:disabled{cursor:default}.commitment-schedule-table{max-height:420px;margin-bottom:12px}.commitment-schedule-table thead{position:sticky;top:0;z-index:2}.commitment-schedule-table input[type=date]{min-width:140px}
@media(max-width:1250px){.commitment-filter-grid,.expense-filter-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.commitment-row{grid-template-columns:1fr}.commitment-actions{justify-content:flex-start}}
@media(max-width:720px){.commitment-filter-grid,.expense-filter-grid{grid-template-columns:1fr}.commitment-create-panel>summary{align-items:flex-start;flex-direction:column}.commitment-create-panel>summary small{text-align:left}.commitment-values{grid-template-columns:1fr}.commitment-timeline-months{margin-left:210px}.commitment-timeline-row{grid-template-columns:210px minmax(calc(var(--timeline-months)*92px),1fr)}.commitment-timeline-body{min-width:max(100%,calc(210px + var(--timeline-months)*92px))}}

/* V53 document template, invoice-layout and DATEV configuration */
.schema-config-list{display:grid;gap:12px}.schema-config-card,.schema-section-config{border:1px solid var(--line,var(--border));border-radius:12px;background:#fff;padding:12px}.schema-config-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.schema-config-card-head strong{font-size:14px}.schema-actions{display:flex;flex-wrap:wrap;gap:8px}.schema-subhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 8px;padding-top:10px;border-top:1px solid var(--line,var(--border))}.schema-column-config{display:grid;gap:8px;padding:9px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc}.schema-columns-list{display:grid;gap:8px}.free-area-explanation{padding:10px 12px;border-radius:9px;background:#eff6ff;color:#1e3a8a;font-size:12px;line-height:1.45}
.template-document-preview{min-height:100%;font-family:Arial,sans-serif}.template-document-preview .preview-paper{background:#fff;color:#111827;padding:22px;border:1px solid #cbd5e1;box-shadow:0 10px 28px rgba(15,23,42,.14);min-height:680px;display:flex;flex-direction:column;gap:13px}.template-document-preview .preview-paper.landscape{min-height:480px}.preview-brand{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;border-top:var(--preview-topline,7px) solid var(--preview-accent,#111827);padding-top:12px}.preview-brand h2{margin:0;font-size:22px}.preview-brand p{margin:3px 0 0;color:#64748b}.preview-meta{display:grid;gap:3px;text-align:right;font-size:11px}.preview-header-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.preview-header-field{border:1px solid #dbe3ec;border-radius:7px;padding:7px 9px;min-height:var(--preview-field-height,38px);font-size:var(--preview-field-size,10px);color:var(--preview-field-color,#111827);overflow:hidden}.preview-header-field small{display:block;color:#64748b;margin-bottom:3px}.preview-section{border:1px solid #cbd5e1;border-radius:8px;overflow:hidden}.preview-section>h3{margin:0;padding:8px 10px;min-height:var(--preview-section-header-height,30px);display:flex;align-items:center;background:var(--preview-section-header,#111827);color:var(--preview-section-header-text,#fff);font-size:var(--preview-section-font-size,11px)}.preview-section table{width:100%;border-collapse:collapse;table-layout:fixed}.preview-section th{height:var(--preview-column-height,30px);background:var(--preview-table-header,#111827);color:var(--preview-table-header-text,#fff);font-size:var(--preview-column-font-size,9px);padding:6px;border-right:1px solid rgba(255,255,255,.2)}.preview-section td{height:28px;border-top:1px solid #e2e8f0;border-right:1px solid #e2e8f0}.preview-free-area{min-height:var(--preview-free-height,120px);padding:11px;background:repeating-linear-gradient(0deg,#fff 0,#fff 23px,#eef2f7 24px);color:#64748b;font-size:10px}.preview-signatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:auto}.preview-signature{min-height:62px;padding-top:28px;border-bottom:1px solid #475569;font-size:10px}.template-document-preview .preview-footer{display:flex;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid #cbd5e1;color:#64748b;font-size:9px}.template-document-preview .header-compact .preview-brand{padding-top:7px}.template-document-preview .header-compact .preview-brand h2{font-size:17px}.template-document-preview .header-minimal .preview-brand{border-top-width:2px}.template-document-preview .header-minimal .preview-meta{display:none}
.document-free-area{min-height:var(--free-area-height,120px);border:1px dashed #94a3b8;border-radius:8px;padding:12px;background:repeating-linear-gradient(0deg,#fff 0,#fff 25px,#eef2f7 26px);color:#64748b}.doc-free-area .doc-section-header{margin-bottom:8px}.rate-input-cell{position:relative;display:flex;align-items:center;gap:5px}.rate-input-cell input{min-width:105px}.rate-picker-trigger{flex:0 0 auto;padding:5px 7px}.rate-picker-modal{width:min(860px,94vw);max-height:86vh}.rate-picker-list{display:grid;gap:8px;max-height:58vh;overflow:auto}.rate-picker-row{display:grid;grid-template-columns:minmax(210px,1fr) minmax(180px,.7fr) auto;gap:12px;align-items:center;padding:10px;border:1px solid var(--line,var(--border));border-radius:9px;background:#fff}.rate-picker-row:hover{border-color:var(--accent)}.rate-picker-row strong,.rate-picker-row small{display:block}.rate-picker-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.internal-comment-list{display:grid;gap:10px}.internal-comment-card{border:1px solid var(--line,var(--border));border-left:4px solid var(--accent);border-radius:10px;padding:11px 13px;background:#fff}.internal-comment-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.internal-comment-card p{white-space:pre-wrap;margin:0;line-height:1.5}.comment-edit-form,.internal-comment-create{display:grid;gap:9px}.comment-edit-form textarea,.internal-comment-create textarea{min-height:88px}
.invoice-layout-editor-grid{display:grid;grid-template-columns:minmax(560px,1fr) minmax(520px,.9fr);gap:18px;align-items:start}.invoice-layout-preview-panel{position:sticky;top:78px}.invoice-preview-stage{padding:18px;border-radius:12px;background:#e9edf2;overflow:auto}.invoice-pdf-preview{--invoice-accent:#111827;--layout-font-header:21pt;--layout-font-body:9pt;--layout-font-table-header:6.5pt;--layout-font-table-body:7.2pt;--layout-font-totals:10.8pt;--layout-font-legal:6.8pt;--layout-font-footer:6.7pt;width:min(100%,720px);min-height:840px;margin:auto;background:#fff;color:#111827;padding:28px;box-shadow:0 10px 30px rgba(15,23,42,.17);font-family:Arial,sans-serif;font-size:11px}.invoice-pdf-preview.landscape{width:940px;min-height:620px}.invoice-preview-topline{height:8px;background:var(--invoice-accent);margin:-28px -28px 20px}.invoice-preview-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:28px}.invoice-preview-logo{display:flex;align-items:center;justify-content:center;min-width:130px;min-height:58px;border:1px dashed #94a3b8;color:#64748b;font-weight:800}.invoice-preview-titlebox{text-align:right}.invoice-preview-titlebox h2{font-size:24px;margin:0;color:var(--invoice-accent)}.invoice-preview-titlebox strong{font-size:13px}.invoice-preview-senderline{font-size:8px;color:#64748b;border-bottom:1px solid #94a3b8;margin-bottom:8px}.invoice-preview-address-info{display:grid;grid-template-columns:1fr .7fr;gap:30px;margin-bottom:22px}.invoice-preview-info-grid{display:grid;grid-template-columns:auto auto;gap:4px 14px}.invoice-preview-intro{margin:15px 0;line-height:1.5}.invoice-preview-items{width:100%;border-collapse:collapse;margin:15px 0}.invoice-preview-items th{background:var(--invoice-accent);color:#fff;padding:8px;text-align:left}.invoice-preview-items td{padding:8px;border-bottom:1px solid #dbe3ec}.invoice-preview-items th:last-child,.invoice-preview-items td:last-child{text-align:right}.invoice-preview-summary{width:48%;margin-left:auto;display:grid;grid-template-columns:1fr auto;gap:6px 18px;padding:12px 0;border-top:2px solid var(--invoice-accent)}.invoice-preview-summary strong{font-size:13px}.invoice-preview-payment,.invoice-preview-sources,.invoice-preview-note{margin-top:17px;padding:10px 12px;border-left:3px solid var(--invoice-accent);background:#f8fafc}.invoice-pdf-preview.header-classic .invoice-preview-topline{height:3px}.invoice-pdf-preview.header-classic .invoice-preview-header{border-bottom:2px solid var(--invoice-accent);padding-bottom:12px}.invoice-pdf-preview.header-classic .invoice-preview-titlebox h2{color:#111827}.invoice-pdf-preview.header-compact{padding:22px;font-size:10px;min-height:760px}.invoice-pdf-preview.header-compact .invoice-preview-topline{margin:-22px -22px 13px;height:5px}.invoice-pdf-preview.header-compact .invoice-preview-header{margin-bottom:16px}.invoice-pdf-preview.header-compact .invoice-preview-titlebox h2{font-size:19px}.invoice-pdf-preview.header-minimal .invoice-preview-topline{height:1px}.invoice-pdf-preview.header-minimal .invoice-preview-logo{border:0;justify-content:flex-start}.invoice-pdf-preview.header-minimal .invoice-preview-titlebox h2{font-size:20px;color:#111827}.layout-colour-swatch{display:inline-block;width:18px;height:18px;border-radius:5px;vertical-align:middle;border:1px solid rgba(15,23,42,.2)}
.datev-mapping-tools{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:12px 0}.datev-mapping-tools .inline-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.datev-mapping-search{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:15px 0 9px}.datev-mapping-search label{min-width:min(420px,100%)}.datev-mapping-table-wrap{max-height:640px}.datev-mapping-table-wrap thead{position:sticky;top:0;z-index:2}.datev-mapping-table-wrap input{min-width:105px}.datev-mapping-table-wrap code{white-space:nowrap}
@media(max-width:1250px){.invoice-layout-editor-grid{grid-template-columns:1fr}.invoice-layout-preview-panel{position:static}.rate-picker-row{grid-template-columns:1fr}.rate-picker-actions{justify-content:flex-start}}
@media(max-width:760px){.preview-header-grid,.preview-signatures,.invoice-preview-address-info{grid-template-columns:1fr}.invoice-pdf-preview{min-width:620px}.datev-mapping-search{align-items:stretch;flex-direction:column}.schema-actions{display:grid;grid-template-columns:1fr}.internal-comment-card header{align-items:flex-start;flex-direction:column}}

/* V54 template previews and invoice title boxes */
.template-editor-controls [data-color-select],.invoice-layout-editor-grid [data-color-select]{background-color:#fff;font-weight:700;min-height:38px}
.template-live-stage .preview-paper,.template-preview .preview-paper{position:relative;background:#fff;box-sizing:border-box;overflow:hidden}
.template-live-stage .preview-paper .ska-document,.template-preview .preview-paper .ska-document{width:100%;height:100%;min-height:100%;box-sizing:border-box;background:#fff}
.template-live-stage .ska-header-grid,.template-preview .ska-header-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;align-items:stretch}
.template-live-stage .ska-header-field,.template-preview .ska-header-field{min-width:0;overflow:hidden;box-sizing:border-box}
.template-live-stage .ska-section,.template-preview .ska-section{overflow:hidden}
.template-live-stage .ska-table,.template-preview .ska-table{table-layout:fixed;width:100%}
.template-live-stage .ska-table th,.template-live-stage .ska-table td,.template-preview .ska-table th,.template-preview .ska-table td{overflow-wrap:anywhere}
.template-live-stage .preview-paper.portrait{min-height:877px}.template-live-stage .preview-paper.landscape{min-height:438px}
.template-live-stage .preview-paper.format-a3.portrait{min-height:878px}.template-live-stage .preview-paper.format-a3.landscape{min-height:424px}
.template-preview .preview-paper{min-height:760px}
.invoice-preview-seller{display:flex;flex-direction:column;gap:3px;color:#475569;line-height:1.35}.invoice-preview-seller strong{color:#1f2937;font-size:12px}.invoice-preview-titlebox{box-sizing:border-box;min-width:245px;padding:8px 10px;text-align:left;border:0.3px solid var(--invoice-accent);background:var(--invoice-accent);color:#fff}.invoice-preview-titlebox h1,.invoice-preview-titlebox h2{margin:0 0 4px;font-size:24px;line-height:1.1;color:inherit}.invoice-preview-titlebox small,.invoice-preview-titlebox strong,.invoice-preview-titlebox span{display:block;color:inherit}.invoice-preview-titlebox small{font-size:9px;opacity:.86}.invoice-preview-titlebox strong{font-size:13px;margin-top:2px}.invoice-preview-titlebox span{font-size:9px;margin-top:2px;opacity:.86}.invoice-preview-info-grid span{display:flex;flex-direction:column;gap:2px}.invoice-preview-info-grid small{color:#64748b;font-size:8px}.invoice-preview-info-grid b{font-size:10px}.invoice-preview-items td small{display:block;margin-top:3px;color:#64748b}.invoice-pdf-preview footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px;padding-top:10px;border-top:.5px solid #cbd5e1;color:#475569}.invoice-pdf-preview footer div{display:flex;flex-direction:column;gap:2px}.invoice-pdf-preview footer small{grid-column:1/-1;text-align:center;color:#64748b}.invoice-pdf-preview.header-modern .invoice-preview-titlebox{border:0}.invoice-pdf-preview.header-classic .invoice-preview-header{border-bottom:.6px solid var(--invoice-accent);padding-bottom:12px}.invoice-pdf-preview.header-classic .invoice-preview-titlebox{border:0;background:#fff;color:#111827;padding:4px 2px 6px}.invoice-pdf-preview.header-compact .invoice-preview-titlebox{border:0;background:#f8fafc;color:#111827;padding:3px 5px}.invoice-pdf-preview.header-compact .invoice-preview-titlebox h1,.invoice-pdf-preview.header-compact .invoice-preview-titlebox h2{font-size:19px;color:var(--invoice-accent)}.invoice-pdf-preview.header-minimal .invoice-preview-titlebox{border:0;background:#fff;color:#111827;padding:2px 0}.invoice-pdf-preview.header-minimal .invoice-preview-titlebox h1,.invoice-pdf-preview.header-minimal .invoice-preview-titlebox h2{font-size:20px;color:#111827}
@media(max-width:760px){.invoice-pdf-preview footer{grid-template-columns:1fr}}
/* V54 full-page live template preview: the page itself is not clipped. */
.template-live-stage{max-height:none;overflow:visible;min-height:0}
.template-editor-preview .card-body{overflow:visible}

/* V55: stable template cards and resource-plan style commitment schedule */
.template-list{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.template-card{min-width:0;max-width:100%;overflow:hidden}
.template-card .split,.template-card .actions,.template-card .template-meta{min-width:0}
.template-preview{position:relative;display:block;height:390px;min-width:0;overflow:hidden;padding:10px;background:linear-gradient(180deg,#fff,#fafcfc)}
.template-preview .preview-shell{position:absolute;inset:10px 10px 34px;display:block;width:222.222%;min-height:0;transform:scale(.45);transform-origin:top left;pointer-events:none}
.template-preview .preview-paper{width:100%!important;max-width:none!important;min-height:760px;margin:0!important;box-sizing:border-box}
.template-preview .preview-caption{position:absolute;left:10px;right:10px;bottom:8px;z-index:3;margin:0;padding-top:5px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 35%);font-size:10px;color:var(--muted)}

.expense-resource-calendar{min-width:0}
.expense-resource-calendar .resource-calendar-header{gap:18px;align-items:flex-start}
.expense-resource-calendar .resource-calendar-actions{flex-wrap:wrap}
.expense-resource-calendar .resource-calendar-controls{grid-template-columns:minmax(150px,.8fr) minmax(170px,1fr) minmax(170px,1fr) auto auto}
.expense-timeline-wrap{max-height:640px;scrollbar-gutter:stable both-edges}
.expense-timeline{--resource-row-height:48px;--resource-label-width:260px}
.expense-timeline .resource-header-label{height:58px;flex:0 0 var(--resource-label-width);width:var(--resource-label-width)}
.expense-timeline .resource-period-header-track{height:58px}
.expense-timeline .resource-period-head{height:58px;padding:0 8px;background:#e9eef4;font-size:9px;font-weight:850;border-right:1px solid #cbd5e1}
.expense-timeline .resource-calendar-lane{min-height:var(--resource-row-height);height:var(--resource-row-height)}
.expense-timeline .resource-timeline-label{flex:0 0 var(--resource-label-width);width:var(--resource-label-width)}
.expense-timeline .resource-calendar-track{height:var(--resource-row-height);background-color:rgba(255,255,255,.75);background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--resource-period-width,112px) - 1px),#94a3b8 calc(var(--resource-period-width,112px) - 1px),#94a3b8 var(--resource-period-width,112px))}
.expense-timeline.granularity-week .resource-calendar-track{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--subperiod-width,12px) * 5),rgba(155,93,115,.07) calc(var(--subperiod-width,12px) * 5),rgba(155,93,115,.07) var(--resource-period-width,86px)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--subperiod-width,12px) - 1px),rgba(203,213,225,.66) calc(var(--subperiod-width,12px) - 1px),rgba(203,213,225,.66) var(--subperiod-width,12px)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--resource-period-width,86px) - 1px),#7f8da0 calc(var(--resource-period-width,86px) - 1px),#7f8da0 var(--resource-period-width,86px))}
.expense-timeline.granularity-month .resource-calendar-track{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--subperiod-width,22px) - 1px),rgba(203,213,225,.48) calc(var(--subperiod-width,22px) - 1px),rgba(203,213,225,.48) var(--subperiod-width,22px)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--resource-period-width,112px) - 1px),#94a3b8 calc(var(--resource-period-width,112px) - 1px),#94a3b8 var(--resource-period-width,112px))}
.expense-calendar-lane:hover .resource-calendar-track{background-color:rgba(244,247,250,.92)}
.expense-commitment-bar{transition:left .08s ease,width .08s ease,box-shadow .12s ease;touch-action:none}
.expense-commitment-bar.is-editable{cursor:grab}
.expense-commitment-bar.is-editable:active,.expense-commitment-bar.drag-precise{cursor:grabbing}
.expense-commitment-bar strong{max-width:44%}
.expense-commitment-bar .resource-bar-meta{max-width:56%}
.expense-commitment-bar.locked{cursor:not-allowed;filter:saturate(.65)}
.commitment-schedule-table tr.is-schedule-changed td{background:#fff8e7}
.commitment-schedule-table tr.is-schedule-changed td:first-child{box-shadow:inset 3px 0 #d97706}
.expense-calendar-legend .legend-personnel:before{background:#9b5d73}

@media(max-width:1320px){.template-list{grid-template-columns:repeat(2,minmax(0,1fr))}.template-preview{height:370px}}
@media(max-width:980px){.template-list{grid-template-columns:minmax(0,1fr)}.template-preview{height:440px}.template-preview .preview-shell{width:200%;transform:scale(.5)}.expense-resource-calendar .resource-calendar-controls{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.template-preview{height:340px}.template-preview .preview-shell{width:250%;transform:scale(.4)}.expense-resource-calendar .resource-calendar-controls{grid-template-columns:1fr}.expense-resource-calendar .resource-calendar-actions{justify-content:flex-start}}
.expense-timeline-limit{margin:0 0 10px}

/* V56: complete template preview and automatic commitment schedule feedback */
.template-live-stage .preview-paper{
    height:auto!important;
    aspect-ratio:auto!important;
    overflow:visible!important;
    min-height:877px;
}
.template-live-stage .preview-paper.landscape{min-height:620px}
.template-live-stage .preview-paper.format-a3.portrait{min-height:1120px}
.template-live-stage .preview-paper.format-a3.landscape{min-height:790px}
.template-live-stage .preview-paper .ska-document{
    height:auto!important;
    min-height:inherit!important;
    overflow:visible!important;
}
.template-live-stage #templateLivePreview{overflow:visible}
.expense-autosave-status{white-space:nowrap}
.commitment-schedule-table tr.is-schedule-changed{background:#fff7ed}
.commitment-schedule-table tr.is-schedule-saved{background:#ecfdf5;transition:background .25s ease}

/* V56 final: show the complete live page in the normal document flow. */
.template-editor-preview{max-height:none!important;overflow:visible!important}
.template-editor-preview .template-live-stage{max-height:none!important;overflow:visible!important}


/* V57: compact template dimensions and physical A-series preview parity. */
.template-live-stage .preview-paper .ska-document{
    padding:31px 35px 47px!important;
}
.template-live-stage .ska-header-field small,.template-preview .ska-header-field small{padding:1px 4px!important;line-height:1.05}
.template-live-stage .ska-header-field>div,.template-preview .ska-header-field>div{padding:2px 4px!important;line-height:1.08}
.template-live-stage .ska-table th,.template-preview .ska-table th{padding:2px 3px!important;line-height:1.05}
.template-live-stage .ska-table td,.template-preview .ska-table td{padding:1px 3px!important;line-height:1.08}
.template-live-stage .ska-section,.template-preview .ska-section{margin-top:6px!important;margin-bottom:6px!important}

/* V60: alternative zentrierte Erfassung für seitliche Eingabekarten */
.card-header>.card-popout-trigger{margin-left:auto;flex:0 0 auto;min-width:32px;padding-inline:8px;font-size:15px;line-height:1}.card-form-modal{z-index:230}.card-form-modal .modal{width:min(1080px,96vw);max-height:94vh}.card-form-modal .modal-body{padding:14px;max-height:calc(94vh - 58px);overflow:auto}.card-form-modal .card-in-form-modal{width:100%;margin:0;border:0;box-shadow:none}.card-form-modal .card-in-form-modal>.card-header{display:none}.card-form-placeholder{min-height:96px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--panel-2)}

/* V60: skalierbare Stammdatenpflege */
.masterdata-tabs{margin-bottom:14px}.masterdata-workspace .card-body{gap:14px}.masterdata-import-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.inline-import-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.file-picker{min-width:230px}.file-picker input[type=file]{padding:6px;background:#fff}.bulk-toolbar{display:grid;grid-template-columns:auto minmax(180px,240px) minmax(180px,1fr) auto;align-items:center;gap:8px;margin-bottom:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}.bulk-toolbar .check-row{margin:0}.select-col{width:42px}.masterdata-lower-grid{align-items:start}.masterdata-edit-card{position:sticky;top:76px}.compact-filter{grid-template-columns:minmax(220px,1fr) minmax(160px,240px) auto}.data-table .badge+small{display:inline-block;margin-top:3px}
@media(max-width:900px){.bulk-toolbar{grid-template-columns:1fr 1fr}.masterdata-edit-card{position:static}.compact-filter{grid-template-columns:1fr}}
@media(max-width:600px){.bulk-toolbar{grid-template-columns:1fr}.inline-import-form,.file-picker{width:100%}}

/* V61.1 project closeout */
.project-closeout-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.project-closeout-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;padding:11px 12px;background:#fff}
.project-closeout-item>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:800;flex:0 0 auto}
.project-closeout-item>div{display:grid;gap:2px;min-width:0;flex:1}.project-closeout-item small{color:var(--muted)}
.project-closeout-item.is-complete{border-color:#bbdfca;background:#f4fbf7}.project-closeout-item.is-complete>span{background:#dff3e6;color:#176b3a}
.project-closeout-item.is-open{border-color:#ecd79e;background:#fffaf0}.project-closeout-item.is-open>span{background:#fff0bd;color:#855b00}
.expense-timeline-page-size label{display:flex;align-items:center;gap:6px;margin:0}.expense-timeline-page-size select{width:auto;min-width:72px}
@media(max-width:980px){.project-closeout-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.project-closeout-grid{grid-template-columns:1fr}.project-closeout-item{align-items:flex-start}}
.project-cockpit-card.result-kpi,.finance-metric.result-kpi{position:relative;overflow:hidden}
.project-cockpit-card.result-kpi:after,.finance-metric.result-kpi:after{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--line)}
.project-cockpit-card.result-kpi.is-positive,.finance-metric.result-kpi.is-positive{background:#f0fdf4;border-color:#bbf7d0}
.project-cockpit-card.result-kpi.is-positive:after,.finance-metric.result-kpi.is-positive:after{background:var(--success)}
.project-cockpit-card.result-kpi.is-positive strong,.finance-metric.result-kpi.is-positive strong{color:var(--success)}
.project-cockpit-card.result-kpi.is-negative,.finance-metric.result-kpi.is-negative{background:#fff1f2;border-color:#fecdd3}
.project-cockpit-card.result-kpi.is-negative:after,.finance-metric.result-kpi.is-negative:after{background:var(--danger)}
.project-cockpit-card.result-kpi.is-negative strong,.finance-metric.result-kpi.is-negative strong{color:var(--danger)}
.inline-editor{position:relative}.inline-editor>summary{list-style:none}.inline-editor>summary::-webkit-details-marker{display:none}.inline-status-form{position:absolute;right:0;z-index:20;width:min(360px,85vw);padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.18);display:grid;gap:9px}.inline-status-form label{display:grid;gap:4px}

/* Offer, quotation and order-confirmation module */
.offer-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}
.offer-reference-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#fff7fa,#f8fafc)}
.offer-reference-bar>div{min-width:0}.offer-reference-bar small,.offer-meta-grid small{display:block;color:var(--muted);margin-bottom:4px}.offer-reference-bar strong{font-size:1.05rem;overflow-wrap:anywhere}
.offer-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.offer-meta-grid>div{padding:11px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;min-width:0}.offer-meta-grid strong{display:block;overflow-wrap:anywhere}
.offer-lines-table input,.offer-lines-table select,.offer-lines-table textarea{min-width:86px}.offer-lines-table textarea{min-width:260px;min-height:58px}.offer-lines-table td{vertical-align:top}.offer-text-line td{background:#f8fafc}
.offer-layout-preview{background:#fff;border:1px solid var(--line);padding:22px;box-shadow:0 8px 24px rgba(15,23,42,.08);min-height:430px}.offer-layout-preview h2{margin-top:10px}
.offer-decision-proof{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.offer-decision-proof>div{padding:10px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}
@media(max-width:980px){.offer-reference-bar,.offer-meta-grid{grid-template-columns:1fr 1fr}.offer-lines-table textarea{min-width:210px}}
@media(max-width:640px){.offer-reference-bar,.offer-meta-grid{grid-template-columns:1fr}.offer-layout-preview{padding:15px}.offer-lines-table textarea{min-width:180px}}

/* V63.1.2 compact project-control matrix: all enabled modules remain visible in two rows. */
.project-control-matrix-compact{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));overflow:visible;gap:8px}.project-control-matrix-compact .project-control-tile{min-width:0;min-height:76px;padding:10px}.project-control-matrix-compact .project-control-add{min-height:70px}.project-control-matrix-compact .project-control-tile strong{font-size:12px;line-height:1.2}.project-control-matrix-compact .project-control-tile small{font-size:10px;line-height:1.25}.project-control-matrix-compact .project-control-kind{font-size:8px}@media(max-width:900px){.project-control-matrix-compact{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.project-control-matrix-compact{grid-template-columns:1fr}}

/* V63.1.3 project-card density and strict module pairing */
.project-setup-guide .card-header{padding:10px 14px}.project-setup-guide .card-body{padding:10px 14px}.project-setup-guide .card-header p{display:none}.project-setup-form{gap:8px}.project-setup-steps{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(176px,1fr);grid-template-columns:none;gap:7px;overflow-x:auto;padding-bottom:3px}.project-setup-step{grid-template-columns:24px minmax(0,1fr);gap:6px;padding:8px;min-height:74px}.project-setup-number{width:22px;height:22px;font-size:9px}.project-setup-content{gap:2px}.project-setup-content strong{font-size:11px;line-height:1.2}.project-setup-content small{display:none}.project-setup-content em{font-size:8px;line-height:1.15}.project-setup-state-options{gap:3px;margin-top:2px}.project-setup-state{font-size:8px;padding:2px 4px}.project-setup-state>span{width:14px;height:14px;font-size:8px}.project-setup-actions{font-size:10px}.project-setup-actions .muted{max-width:80%;line-height:1.25}
.project-control-matrix-compact{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:8px;align-items:stretch}.project-control-module{display:grid;grid-template-rows:1fr 1fr;gap:6px;min-width:0}.project-control-matrix-compact .project-control-tile{height:100%;min-height:68px}.project-control-matrix-compact .project-control-add{min-height:64px}
@media(max-width:900px){.project-control-matrix-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.project-setup-steps{grid-auto-columns:minmax(168px,72vw)}}
@media(max-width:520px){.project-control-matrix-compact{grid-template-columns:1fr 1fr}.project-control-matrix-compact .project-control-tile{padding:8px}.project-control-matrix-compact .project-control-tile small{display:none}.project-setup-actions .muted{display:none}}

.layout-settings-section{display:flex;flex-direction:column;gap:3px;margin-top:6px;padding-top:12px;border-top:1px solid var(--border)}.invoice-pdf-preview{font-size:var(--layout-font-body)}.invoice-preview-titlebox h1,.invoice-preview-titlebox h2{font-size:var(--layout-font-header)!important}.invoice-preview-items th{font-size:var(--layout-font-table-header)}.invoice-preview-items td{font-size:var(--layout-font-table-body)}.invoice-preview-summary table,.invoice-preview-summary .grand{font-size:var(--layout-font-totals)}.invoice-preview-sources,.invoice-preview-payment,.invoice-preview-note{font-size:var(--layout-font-legal)}.invoice-pdf-preview footer{font-size:var(--layout-font-footer)}

/* V63.1.12: preview and TCPDF use the same typographic unit and hierarchy. */
.layout-type-presets{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:-2px;margin-bottom:4px}.invoice-pdf-preview{font-size:var(--layout-font-body)!important;line-height:1.38}.invoice-preview-seller,.invoice-preview-seller strong,.invoice-preview-address-info address,.invoice-preview-intro,.invoice-preview-info-grid b{font-size:var(--layout-font-body)!important}.invoice-preview-titlebox h1,.invoice-preview-titlebox h2{font-size:var(--layout-font-header)!important;line-height:1.1}.invoice-preview-titlebox small,.invoice-preview-titlebox span,.invoice-preview-info-grid small,.invoice-preview-senderline{font-size:calc(var(--layout-font-body) * .78)!important}.invoice-preview-titlebox strong{font-size:calc(var(--layout-font-header) * .62)!important}.invoice-preview-items th{font-size:var(--layout-font-table-header)!important;line-height:1.12;padding:5px 4px}.invoice-preview-items td{font-size:var(--layout-font-table-body)!important;line-height:1.3;padding:5px 4px}.invoice-preview-items td small{font-size:calc(var(--layout-font-table-body) * .88)!important}.invoice-preview-summary,.invoice-preview-summary strong{font-size:var(--layout-font-totals)!important}.invoice-preview-sources,.invoice-preview-payment,.invoice-preview-note{font-size:var(--layout-font-legal)!important;line-height:1.35}.invoice-pdf-preview footer,.invoice-pdf-preview footer strong,.invoice-pdf-preview footer small{font-size:var(--layout-font-footer)!important;line-height:1.3}

/* V63.1.13: differentiated document typography shared by invoice and offer previews. */
.invoice-pdf-preview .invoice-preview-intro,.offer-pdf-preview .offer-preview-intro{font-size:var(--layout-font-intro,var(--layout-font-body,9pt))!important}
.invoice-pdf-preview .invoice-preview-info-grid,.invoice-pdf-preview .invoice-preview-info-grid small,.offer-pdf-preview .offer-preview-info-grid,.offer-pdf-preview .offer-preview-info-grid small{font-size:var(--layout-font-meta,7.2pt)!important}
.invoice-pdf-preview .invoice-preview-sources,.invoice-pdf-preview .invoice-preview-bottom-text,.offer-pdf-preview .offer-preview-bottom-text,.offer-pdf-preview .offer-preview-terms{font-size:var(--layout-font-bottom,7pt)!important}


/* V63.1.14: PDF-nahe Kopfvarianten und funktionsfähige Typografie-Presets */
.layout-type-presets .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.invoice-preview-titlebox{padding:4px 6px;border:0;background:var(--invoice-accent);min-width:210px}
.invoice-preview-titlebox h1,.invoice-preview-titlebox h2,.invoice-preview-titlebox strong{color:#fff!important}
.invoice-preview-titlebox small,.invoice-preview-titlebox span{color:#ede9fe!important}
.invoice-pdf-preview.header-classic .invoice-preview-titlebox{padding:4px 2px 6px;border:0;background:#fff}
.invoice-pdf-preview.header-classic .invoice-preview-titlebox h1,.invoice-pdf-preview.header-classic .invoice-preview-titlebox h2,.invoice-pdf-preview.header-classic .invoice-preview-titlebox strong{color:var(--invoice-accent)!important}
.invoice-pdf-preview.header-classic .invoice-preview-titlebox small,.invoice-pdf-preview.header-classic .invoice-preview-titlebox span{color:#64748b!important}
.invoice-pdf-preview.header-compact .invoice-preview-titlebox{padding:3px 5px;border:0;background:#f8fafc;min-width:185px}
.invoice-pdf-preview.header-compact .invoice-preview-titlebox h1,.invoice-pdf-preview.header-compact .invoice-preview-titlebox h2,.invoice-pdf-preview.header-compact .invoice-preview-titlebox strong{color:var(--invoice-accent)!important}
.invoice-pdf-preview.header-compact .invoice-preview-titlebox small,.invoice-pdf-preview.header-compact .invoice-preview-titlebox span{color:#64748b!important}
.invoice-pdf-preview.header-minimal .invoice-preview-titlebox{padding:2px 0;border:0;background:#fff;min-width:185px}
.invoice-pdf-preview.header-minimal .invoice-preview-titlebox h1,.invoice-pdf-preview.header-minimal .invoice-preview-titlebox h2,.invoice-pdf-preview.header-minimal .invoice-preview-titlebox strong{color:#172033!important}
.invoice-pdf-preview.header-minimal .invoice-preview-titlebox small,.invoice-pdf-preview.header-minimal .invoice-preview-titlebox span{color:#64748b!important}
.invoice-preview-info-grid,.invoice-preview-info-grid small,.invoice-preview-info-grid b{font-size:var(--layout-font-meta)!important}
.invoice-preview-intro{font-size:var(--layout-font-intro)!important}
.invoice-preview-payment,.invoice-preview-sources{font-size:var(--layout-font-bottom)!important}
.invoice-preview-note{font-size:var(--layout-font-legal)!important}

/* V63.1.17: order-status KPI on the project card */
.project-cockpit-card.order-status-kpi{position:relative;overflow:hidden}
.project-cockpit-card.order-status-kpi:after{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:currentColor}
.project-cockpit-card.order-status-green{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}
.project-cockpit-card.order-status-yellow{background:#fefce8;border-color:#fde68a;color:#a16207}
.project-cockpit-card.order-status-orange{background:#fff7ed;border-color:#fed7aa;color:#c2410c}
.project-cockpit-card.order-status-red{background:#fff1f2;border-color:#fecdd3;color:#b91c1c}
.project-cockpit-card.order-status-kpi small,.project-cockpit-card.order-status-kpi .trend{color:color-mix(in srgb,currentColor 72%,#475569)}

/* V63.2.1 user-specific interface density and cleaned project controls. */
html.ui-font-large{font-size:15px}html.ui-font-medium{font-size:14px}html.ui-font-small{font-size:13px}
body.ui-font-large{--ui-base-size:15px;--ui-nav-size:13px;--ui-control-size:13px;--ui-table-size:12px;--ui-heading-size:24px}
body.ui-font-medium{--ui-base-size:14px;--ui-nav-size:12px;--ui-control-size:12px;--ui-table-size:11px;--ui-heading-size:22px}
body.ui-font-small{--ui-base-size:13px;--ui-nav-size:11px;--ui-control-size:11px;--ui-table-size:10px;--ui-heading-size:20px}
body.ui-font-large,body.ui-font-medium,body.ui-font-small{font-size:var(--ui-base-size)}
body.ui-font-large .top-nav a,body.ui-font-large .nav-dropdown-toggle,body.ui-font-medium .top-nav a,body.ui-font-medium .nav-dropdown-toggle,body.ui-font-small .top-nav a,body.ui-font-small .nav-dropdown-toggle{font-size:var(--ui-nav-size)}
body.ui-font-large .page-heading h1,body.ui-font-medium .page-heading h1,body.ui-font-small .page-heading h1{font-size:var(--ui-heading-size);line-height:1.18;overflow-wrap:anywhere}
body.ui-font-large .btn,body.ui-font-medium .btn,body.ui-font-small .btn,
body.ui-font-large input,body.ui-font-large select,body.ui-font-large textarea,
body.ui-font-medium input,body.ui-font-medium select,body.ui-font-medium textarea,
body.ui-font-small input,body.ui-font-small select,body.ui-font-small textarea{font-size:var(--ui-control-size)}
body.ui-font-large .data-table,body.ui-font-medium .data-table,body.ui-font-small .data-table{font-size:var(--ui-table-size)}
body.ui-font-medium .card-header h2{font-size:16px}body.ui-font-small .card-header h2{font-size:15px}
body.ui-font-medium .muted,body.ui-font-medium small{font-size:.92em}body.ui-font-small .muted,body.ui-font-small small{font-size:.88em}
body.ui-font-medium .page-shell{padding-left:28px;padding-right:28px}body.ui-font-small .page-shell{padding-left:22px;padding-right:22px}

.project-control-lines{display:grid;gap:6px;min-width:0}
.project-control-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:4px 0;min-width:0}
.project-control-line+.project-control-line{border-top:1px solid var(--line);padding-top:8px}
.project-control-line .btn{white-space:nowrap}
.project-control-create .btn{min-width:auto}
.project-list-control-cell{min-width:520px}

.project-heading-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.project-heading-actions .btn{white-space:nowrap}
@media(max-width:1200px){.project-heading-actions{justify-content:flex-start;margin-top:0}.project-list-control-cell{min-width:440px}}
@media(max-width:760px){body.ui-font-medium .page-shell,body.ui-font-small .page-shell{padding-left:14px;padding-right:14px}.project-heading-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.project-heading-actions .btn{text-align:center}.project-list-control-cell{min-width:360px}}

.ui-preference-card select{min-height:44px}
/* Project portfolio controls remain exactly two rows; narrower screens scroll each row horizontally. */
.project-list-control-cell .project-control-line{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:5px}
.project-list-control-cell .project-control-line .btn{flex:0 0 auto}
/* Delivery note layout preview: mirrors TCPDF output structure */
.delivery-pdf-preview{--dn-accent:#9b5d73;--dn-font-header:21pt;--dn-font-body:9pt;--dn-font-intro:9pt;--dn-font-meta:7.2pt;--dn-font-bottom:7pt;--dn-font-table-head:6.5pt;--dn-font-table-body:7.2pt;--dn-font-totals:10.8pt;--dn-font-legal:6.8pt;--dn-font-footer:6.7pt;box-sizing:border-box;width:min(100%,720px);min-height:1018px;margin:auto;padding:34px 34px 28px;background:#fff;color:#1f2937;box-shadow:0 10px 30px rgba(15,23,42,.17);font-family:"DejaVu Sans",Arial,sans-serif;font-size:var(--dn-font-body);line-height:1.25}.delivery-pdf-preview.landscape{width:980px;min-height:690px}.delivery-pdf-head{width:100%;border-collapse:collapse;border-bottom:2px solid var(--dn-accent);background:#fff}.delivery-pdf-head td{padding:8px;vertical-align:top}.delivery-pdf-title{display:inline-block;color:var(--dn-accent);font-size:var(--dn-font-header);font-weight:700}.delivery-pdf-project{text-align:right}.delivery-pdf-logo{display:block;width:74px;height:28px;margin-bottom:5px;font-weight:800}.delivery-pdf-muted{color:#64748b;font-size:var(--dn-font-meta)}.delivery-pdf-sender{margin-top:12px}.delivery-pdf-recipient{margin-top:3px;font-size:var(--dn-font-body);line-height:1.35}.delivery-pdf-info{width:100%;margin-top:13px;border-collapse:collapse}.delivery-pdf-info td{border:1px solid #dbe3ec;padding:6px;vertical-align:top}.delivery-pdf-intro{margin:14px 0;font-size:var(--dn-font-intro)}.delivery-pdf-items{width:100%;border-collapse:collapse}.delivery-pdf-items th{padding:5px;background:var(--dn-accent);color:#fff;font-size:var(--dn-font-table-head);text-align:left}.delivery-pdf-items td{padding:5px;border-bottom:1px solid #dbe3ec;font-size:var(--dn-font-table-body);vertical-align:top}.delivery-pdf-items .num{text-align:right}.delivery-pdf-bottom{font-size:var(--dn-font-bottom)}.delivery-pdf-bottom strong{font-size:var(--dn-font-totals)}.delivery-pdf-section{margin-top:14px;border-bottom:1px solid var(--dn-accent);color:var(--dn-accent);font-size:10pt;font-weight:700}.delivery-pdf-legal{margin-top:5px;font-size:var(--dn-font-legal);line-height:1.25}.delivery-pdf-receipt{margin-top:14px;padding:8px;border:1px solid #cbd5e1;background:#f8fafc;font-size:var(--dn-font-legal)}.delivery-pdf-company{margin-top:14px;color:#475569;font-size:var(--dn-font-legal)}.delivery-pdf-page-footer{margin-top:18px;text-align:center;color:#64748b;font-size:var(--dn-font-footer)}.delivery-pdf-preview.header-minimal .delivery-pdf-head{border-bottom:0}.delivery-pdf-preview.header-classic .delivery-pdf-head{border-bottom:1px solid #cbd5e1}.delivery-pdf-preview.header-compact .delivery-pdf-head{border-bottom:1px solid var(--dn-accent);background:#f8fafc}.delivery-pdf-preview.header-compact .delivery-pdf-head td{padding:5px}
.datanorm-dialog{border:0;border-radius:12px;padding:0;width:min(920px,94vw);max-height:88vh;box-shadow:0 24px 80px rgba(15,23,42,.28)}.datanorm-dialog::backdrop{background:rgba(15,23,42,.58)}.datanorm-dialog-card{padding:20px;display:grid;gap:14px}.datanorm-results{display:grid;gap:8px;max-height:58vh;overflow:auto}.datanorm-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 18px;text-align:left;background:#fff;border:1px solid #d7dee8;border-radius:9px;padding:12px;color:#172033;cursor:pointer}.datanorm-result:hover,.datanorm-result:focus{border-color:#9b5d73;box-shadow:0 0 0 2px rgba(155,93,115,.15)}.datanorm-result small{grid-column:1;color:#667085}.datanorm-result-prices{grid-column:2;grid-row:1/3;display:grid;align-content:center;justify-items:end;font-size:12px}.pre-wrap{white-space:pre-wrap;padding:8px 0}.pagination{display:flex;gap:6px;justify-content:center;margin-top:14px;flex-wrap:wrap}

/* V66.8.19: compact system-wide multi-select control. */
.compact-multi-select{position:relative;display:block;width:100%;min-width:0;z-index:1}.compact-multi-select.is-open{z-index:10030}
.compact-multi-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:0!important;padding:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.compact-multi-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:38px;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.compact-multi-trigger:hover{border-color:var(--accent);background:var(--panel-2)}
.compact-multi-trigger:focus-visible{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.compact-multi-trigger-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compact-multi-chevron{flex:0 0 auto;font-size:16px;line-height:1;transition:transform .16s ease}
.compact-multi-select.is-open .compact-multi-chevron{transform:rotate(180deg)}
.compact-multi-panel{position:fixed;z-index:10025;width:max(290px,var(--compact-multi-width,290px));max-width:min(520px,calc(100vw - 24px));max-height:min(72vh,620px);overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 18px 50px rgba(15,23,42,.2)}
.compact-multi-panel[hidden]{display:none!important}
.compact-multi-toolbar{display:grid;gap:8px;padding:10px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.compact-multi-search{width:100%;min-height:34px!important;padding:7px 9px!important;font-size:12px!important}
.compact-multi-actions{display:flex;gap:6px;flex-wrap:wrap}
.compact-multi-action{padding:4px 8px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--text);font-size:11px;font-weight:750;cursor:pointer}
.compact-multi-action:hover{border-color:var(--accent);color:var(--accent)}
.compact-multi-list{max-height:min(52vh,460px);overflow:auto;padding:6px;scrollbar-gutter:stable}
.compact-multi-option{display:flex!important;align-items:center;gap:9px;min-height:34px;margin:0!important;padding:7px 8px!important;border-radius:7px;color:var(--text)!important;font-size:12px!important;font-weight:600!important;cursor:pointer}
.compact-multi-option:hover,.compact-multi-option.is-selected{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.compact-multi-option input{width:16px!important;height:16px!important;min-height:0!important;margin:0!important;accent-color:var(--accent)}
.compact-multi-option span{min-width:0;overflow-wrap:anywhere}
.compact-multi-empty{padding:18px;text-align:center;color:var(--muted);font-size:12px}
.compact-multi-footer{display:flex;justify-content:flex-end;padding:8px 10px;border-top:1px solid var(--line);background:var(--panel-2)}
.filter-reset-button{margin-left:6px}
@media(max-width:640px){.compact-multi-panel{left:12px!important;right:12px!important;top:12vh!important;width:auto!important;max-width:none}.compact-multi-list{max-height:58vh}}
.supplier-portal-option{align-items:flex-start!important;gap:10px!important;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}
.supplier-portal-option>span{display:flex;flex-direction:column;gap:3px}
.supplier-portal-option small{font-weight:400;color:var(--muted)}

/* V65: System dialogs must remain above form popups and nested editor modals. */
.sk-system-dialog{z-index:10000!important}.sk-system-dialog>.modal{position:relative;z-index:10001}.sk-system-dialog .modal-footer{background:#fff}.sk-system-dialog [data-system-dialog-yes]{background:var(--accent);border-color:var(--accent);color:#fff}.sk-system-dialog [data-system-dialog-no]{background:#fff;color:#334155;border:1px solid var(--line-strong)}

/* V65.2 accounting guide */
.accounting-guide-flow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.accounting-guide-flow{display:grid;grid-template-columns:42px minmax(0,1fr);gap:4px 10px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);text-decoration:none}.accounting-guide-flow>span{grid-row:1/3;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#f1f5f9;font-size:20px;font-weight:800}.accounting-guide-flow strong{font-size:13px}.accounting-guide-flow small{color:var(--muted);line-height:1.4}.accounting-guide-flow:hover,.accounting-guide-flow.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent)}.accounting-guide-flow.active>span{background:var(--accent);color:#fff}.accounting-guide-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:18px}.accounting-guide-step{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);text-decoration:none}.accounting-guide-step>span{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;background:#e2e8f0;font-size:10px;font-weight:850}.accounting-guide-step strong{font-size:10px;line-height:1.25}.accounting-guide-step.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,#fff)}.accounting-guide-step.active>span{background:var(--accent);color:#fff}.accounting-guide-step.done>span{background:#15803d;color:#fff}.accounting-guide-current{padding:18px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;background:#fff}.accounting-guide-current-head{display:flex;gap:12px;align-items:center}.accounting-guide-current-head h3{margin:1px 0 0}.accounting-guide-current-head small{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.accounting-guide-current-number{display:grid;place-items:center;width:42px;height:42px;border-radius:999px;background:var(--accent);color:#fff;font-weight:900}.accounting-guide-current>p{max-width:900px;line-height:1.55}.accounting-guide-checks{display:grid;gap:8px;margin:16px 0}.accounting-guide-checks label{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.accounting-guide-checks input{margin-top:2px}.accounting-guide-actions{margin-top:16px}.btn-info{background:#0f7490;border-color:#0f7490;color:#fff}.btn-info:hover{background:#0c6178;border-color:#0c6178;color:#fff}@media(max-width:900px){.accounting-guide-flow-grid{grid-template-columns:1fr}.accounting-guide-steps{grid-template-columns:1fr 1fr}}@media(max-width:620px){.accounting-guide-steps{grid-template-columns:1fr}.accounting-guide-actions{align-items:stretch}.accounting-guide-actions,.accounting-guide-actions>.gap{display:grid;grid-template-columns:1fr}.accounting-guide-actions .btn{width:100%}}

/* V65.4: structured cost workspace and forecast commitments */
.expense-workspace{margin-bottom:16px;background:linear-gradient(135deg,#fff 0%,#f8fafc 100%)}
.expense-section-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.expense-section-nav>a{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 10px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);text-decoration:none}
.expense-section-nav>a:hover{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent)}
.expense-section-nav>a>span{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--accent) 11%,#fff);color:var(--accent);font-weight:850}
.expense-section-nav strong{font-size:13px}.expense-section-nav small{color:var(--muted);line-height:1.3}
.commitment-control-card>.card-header,.expense-workspace>.card-header{border-bottom:1px solid var(--line)}
#expense-list>.card-header{background:#fff}
@media(max-width:900px){.expense-section-nav{grid-template-columns:1fr}}

/* Commercial layout previews: mirror the configured PDF page margins. */
.invoice-pdf-preview.layout-margin-aware{padding:var(--layout-margin-top,28px) var(--layout-margin-right,28px) var(--layout-margin-bottom,28px) var(--layout-margin-left,28px)!important}
.invoice-pdf-preview.layout-margin-aware .invoice-preview-topline{margin:calc(-1 * var(--layout-margin-top,28px)) calc(-1 * var(--layout-margin-right,28px)) 20px calc(-1 * var(--layout-margin-left,28px))!important}
.invoice-pdf-preview.layout-margin-aware.header-compact .invoice-preview-topline{margin-bottom:13px!important}
.invoice-pdf-preview.layout-margin-aware.header-minimal .invoice-preview-topline{margin-bottom:18px!important}

/* V65.5: one visual grammar for all commercial layout previews. */
.invoice-pdf-preview.layout-margin-aware{
  padding:var(--layout-margin-top,28px) var(--layout-margin-right,28px) var(--layout-margin-bottom,32px) var(--layout-margin-left,28px)!important;
}
.invoice-pdf-preview .invoice-preview-header{
  display:grid!important;
  grid-template-columns:minmax(72px,.18fr) minmax(170px,.42fr) minmax(210px,.40fr)!important;
  align-items:start!important;
  gap:14px!important;
  min-height:116px!important;
  margin-bottom:30px!important;
  border:0!important;
  outline:0!important;
}
.invoice-pdf-preview .invoice-preview-logo{min-width:0!important;min-height:52px!important;border:0!important;justify-content:flex-start!important;color:var(--invoice-accent)!important;font-size:24px!important}
.invoice-pdf-preview .invoice-preview-seller{padding-top:4px!important}
.invoice-pdf-preview .invoice-preview-seller>span{display:none!important}
.invoice-pdf-preview .invoice-preview-titlebox{
  box-sizing:border-box!important;
  min-width:0!important;
  min-height:102px!important;
  padding:10px 12px!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:var(--invoice-accent)!important;
}
.invoice-pdf-preview.header-classic .invoice-preview-titlebox,
.invoice-pdf-preview.header-minimal .invoice-preview-titlebox{background:#fff!important}
.invoice-pdf-preview.header-compact .invoice-preview-titlebox{background:#f8fafc!important}
.invoice-pdf-preview .invoice-preview-address-info{clear:both!important;margin-top:0!important;margin-bottom:22px!important;gap:26px!important}
.invoice-pdf-preview .invoice-preview-senderline{margin-top:0!important;margin-bottom:10px!important}
.invoice-pdf-preview .invoice-preview-info-grid{align-self:start!important}
.invoice-pdf-preview.header-compact .invoice-preview-header{min-height:96px!important;margin-bottom:22px!important}
.invoice-pdf-preview.header-minimal .invoice-preview-header{min-height:100px!important;margin-bottom:24px!important}
.invoice-pdf-preview.header-classic .invoice-preview-header{min-height:108px!important;margin-bottom:26px!important;padding-bottom:0!important}
.delivery-pdf-preview .delivery-pdf-company-address{display:none!important}
@media(max-width:900px){.invoice-pdf-preview .invoice-preview-header{grid-template-columns:70px minmax(140px,1fr) minmax(190px,.9fr)!important}}
/* V65.5: keep the schedule-exposure card fully visible in the sticky demand sidebar. */
.incoming-demand-summary{min-width:0;align-self:start;padding-bottom:18px;overflow:visible}
.incoming-demand-summary>.card{overflow:visible}
.incoming-demand-summary>.card .card-body{overflow:visible;padding-bottom:18px}
.incoming-time-corridor{min-height:34px;align-items:flex-start;padding-bottom:2px}
.incoming-time-corridor strong{max-width:72%;white-space:normal;line-height:1.35}


/* Supplier and contract portal action contrast */
.portal-page .btn.supplier-action,
.portal-page .btn.supplier-action:visited,
.portal-page button.supplier-action {
  background:#0052a1!important;
  border-color:#0052a1!important;
  color:#fff!important;
}
.portal-page .btn.supplier-secondary,
.portal-page .btn.supplier-secondary:visited,
.portal-page button.supplier-secondary {
  background:#35475a!important;
  border-color:#35475a!important;
  color:#fff!important;
}
.portal-page .btn.supplier-action:hover,
.portal-page .btn.supplier-action:focus,
.portal-page .btn.supplier-secondary:hover,
.portal-page .btn.supplier-secondary:focus {
  filter:brightness(.9);
  color:#fff!important;
}
.portal-page .btn.btn-ghost,
.portal-page .btn.btn-ghost:visited {
  background:#f8fafc!important;
  border-color:#94a3b8!important;
  color:#172033!important;
}

/* Contract workflow: two-party signatures and immutable final record */
.contract-signature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.contract-signature-card{display:flex;flex-direction:column;gap:8px;min-height:190px;padding:16px;border:1px solid #dbe3ec;border-radius:14px;background:#f8fafc}
.contract-signature-card code{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475569}
.contract-signature-image{display:block;width:100%;height:92px;object-fit:contain;border:1px solid #dbe3ec;border-radius:10px;background:#fff}
.contract-workflow-state{display:grid;gap:10px}
.contract-workflow-state>div{display:flex;align-items:center;gap:9px;font-weight:700;color:#334155}
.contract-workflow-state .badge{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;border-radius:999px}
.contract-countersign-form .signature-canvas{width:100%;height:190px;background:#fff;border:2px solid #94a3b8;border-radius:12px;touch-action:none}
@media(max-width:760px){.contract-signature-grid{grid-template-columns:1fr}.contract-countersign-form .signature-canvas{height:160px}}

/* 66.8.5 compact project workflow */
.project-control-matrix-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.project-control-matrix-compact .project-control-module{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:none;gap:5px}
.project-control-matrix-compact .project-control-tile{min-height:58px;padding:7px 8px}
.project-control-matrix-compact .project-control-add{min-height:58px}
.project-control-matrix-compact .project-control-tile strong{font-size:11px;line-height:1.15}
.project-control-matrix-compact .project-control-tile small{font-size:9px;line-height:1.15}
.project-control-matrix-compact .project-control-kind{font-size:7px;margin-bottom:2px}
.project-setup-steps{grid-auto-columns:minmax(150px,1fr)}
.project-list-control-cell .project-control-lines{gap:3px;padding:6px 7px}
.project-list-control-cell .project-control-line{gap:3px;padding:3px 0;flex-wrap:nowrap;overflow-x:auto}
.project-list-control-cell .btn-sm{padding:4px 7px;font-size:10px;white-space:nowrap}
@media(max-width:1100px){.project-control-matrix-compact{grid-template-columns:1fr}}
@media(max-width:600px){.project-control-matrix-compact .project-control-module{grid-template-columns:1fr}.project-control-matrix-compact .project-control-tile small{display:none}}

/* 66.8.6: grouped, collapsible project-card workflow */
.project-control-legend{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 9px}
.workflow-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:850;letter-spacing:.02em;border:1px solid transparent}
.workflow-badge-procurement{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.workflow-badge-sales{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.workflow-badge-operations{background:#f0fdf4;color:#166534;border-color:#bbf7d0}
.workflow-badge-finance{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
.workflow-badge-risk{background:#fff1f2;color:#be123c;border-color:#fecdd3}
.workflow-badge-governance{background:#f8fafc;color:#334155;border-color:#cbd5e1}
.project-control-module{position:relative;padding-top:4px;border-top:3px solid transparent;border-radius:8px}
.project-control-group-procurement{border-top-color:#f59e0b}.project-control-group-sales{border-top-color:#3b82f6}.project-control-group-operations{border-top-color:#22c55e}.project-control-group-finance{border-top-color:#8b5cf6}.project-control-group-risk{border-top-color:#f43f5e}.project-control-group-governance{border-top-color:#64748b}
.project-workflow-section{overflow:hidden}.project-workflow-section>summary{border-left:4px solid transparent}.project-workflow-section.workflow-group-procurement>summary{border-left-color:#f59e0b}.project-workflow-section.workflow-group-sales>summary{border-left-color:#3b82f6}.project-workflow-section.workflow-group-operations>summary{border-left-color:#22c55e}.project-workflow-section.workflow-group-finance>summary{border-left-color:#8b5cf6}.project-workflow-section.workflow-group-risk>summary{border-left-color:#f43f5e}.project-workflow-section.workflow-group-governance>summary{border-left-color:#64748b}
.project-controls-card>summary,.project-workflow-section>summary{cursor:pointer}
.project-controls-card>summary::-webkit-details-marker,.project-workflow-section>summary::-webkit-details-marker{display:none}
.project-controls-card>summary:after,.project-workflow-section>summary:after{content:'▸';margin-left:auto;color:var(--muted);font-weight:900}.project-controls-card[open]>summary:after,.project-workflow-section[open]>summary:after{content:'▾'}
.project-setup-guide{overflow:hidden}.project-setup-guide .project-setup-steps{grid-auto-columns:minmax(136px,1fr)}.project-setup-guide .project-setup-step{min-height:66px;padding:7px}.project-setup-guide .project-setup-content strong{font-size:10px}.project-setup-guide .project-setup-state{font-size:7px;padding:2px 3px}
@media(max-width:800px){.project-control-legend{overflow-x:auto;flex-wrap:nowrap}.project-workflow-section .filter-grid{grid-template-columns:1fr 1fr}.project-setup-guide .project-setup-steps{grid-auto-columns:minmax(142px,74vw)}}


.dashboard-invoice-intake-card{border-color:#bfdbfe;box-shadow:0 7px 24px rgba(30,64,175,.06)}
.dashboard-invoice-intake-card>.card-header{background:#f7fbff;border-bottom-color:#dbeafe}
.dashboard-invoice-intake-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.dashboard-inline-filter{margin:0}.dashboard-inline-filter label{display:grid;gap:4px;font-size:10px;font-weight:800;color:#475569}.dashboard-inline-filter select{min-width:210px;padding:7px 30px 7px 10px;border:1px solid #bfdbfe;background:#fff;color:#1e3a5f;border-radius:8px;font-size:12px}
.dashboard-invoice-intake-table tbody tr td{background:#fbfdff}.dashboard-invoice-intake-table tbody tr:hover td{background:#f1f7ff}.dashboard-invoice-intake-table .task-overdue td{background:#fff7ed}
@media(max-width:760px){.dashboard-invoice-intake-actions{width:100%;justify-content:space-between}.dashboard-inline-filter,.dashboard-inline-filter label,.dashboard-inline-filter select{width:100%}}


/* V66.8.13: per-user appearance themes. Components continue to use the central CSS variables. */
html.ui-theme-ocean,body.ui-theme-ocean{--bg:#f1f6fb;--panel:#fff;--panel-2:#f6f9fc;--text:#14253a;--muted:#60758c;--line:#d4e0eb;--line-strong:#afc2d4;--accent:#2677a8;--accent-dark:#185b86;--nav:#102c43;--nav-2:#183d59;--info:#075985}
html.ui-theme-forest,body.ui-theme-forest{--bg:#f2f7f4;--panel:#fff;--panel-2:#f6faf7;--text:#183126;--muted:#61766b;--line:#d6e2da;--line-strong:#b5c9bc;--accent:#3f7f5c;--accent-dark:#2d6546;--nav:#173328;--nav-2:#244b3a;--info:#176b52}
html.ui-theme-graphite,body.ui-theme-graphite{--bg:#eef1f4;--panel:#fff;--panel-2:#f5f6f8;--text:#20252c;--muted:#68717c;--line:#d5d9df;--line-strong:#b5bbc4;--accent:#596779;--accent-dark:#414d5c;--nav:#20252c;--nav-2:#303740;--info:#475569}
html.ui-theme-sand,body.ui-theme-sand{--bg:#f7f4ed;--panel:#fff;--panel-2:#fbf8f2;--text:#332b23;--muted:#786f63;--line:#e3dbce;--line-strong:#cbbdab;--accent:#a7783f;--accent-dark:#805a2e;--nav:#392f26;--nav-2:#514336;--info:#8a5b24}
html.ui-theme-violet,body.ui-theme-violet{--bg:#f5f2f8;--panel:#fff;--panel-2:#faf7fc;--text:#2b2035;--muted:#74657e;--line:#e1d7e7;--line-strong:#c8b6d2;--accent:#7d55a2;--accent-dark:#613d82;--nav:#2d2337;--nav-2:#44344f;--info:#6941c6}
body[class*="ui-theme-"] .card-header{background:linear-gradient(var(--panel),var(--panel-2))}
body[class*="ui-theme-"] input:focus,body[class*="ui-theme-"] select:focus,body[class*="ui-theme-"] textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
body[class*="ui-theme-"] .data-table th{background:var(--panel-2)}
body[class*="ui-theme-"] .app-footer{background:var(--panel)}


/* DEMOSKAUFMASSV2: permanent read-only presentation layer */
.demo-mode-banner{position:sticky;top:0;z-index:2147482000;display:flex;align-items:center;justify-content:center;gap:12px;min-height:42px;padding:8px 18px;background:#fff3f7;border-bottom:2px solid #9b5d73;color:#4d2534;font-size:13px;line-height:1.35;text-align:center;box-shadow:0 5px 16px rgba(44,23,31,.12)}
.demo-mode-banner strong{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:999px;background:#9b5d73;color:#fff;letter-spacing:.1em;font-size:11px}
.demo-mode .demo-locked-control,.demo-mode .demo-locked-link,.demo-mode .demo-disabled-link{opacity:.48!important;filter:grayscale(.45);cursor:not-allowed!important;pointer-events:none!important}
.demo-mode .demo-readonly-form{position:relative}
.demo-mode .demo-readonly-form::after{content:'DEMO · SCHREIBGESCHÜTZT';display:block;margin-top:8px;color:#8a5367;font-size:11px;font-weight:800;letter-spacing:.06em}
@media(max-width:720px){.demo-mode-banner{align-items:flex-start;gap:8px;font-size:11px;padding:7px 10px}.demo-mode-banner strong{flex:0 0 auto}}
