@charset "UTF-8";
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/public-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/public-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Roboto Slab';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/roboto-slab.woff2) format('woff2')}
/* Huisstijl Staalbouw DtB (staalbouwdtb.nl): lichtblauw #009FE3 accent en lijnen, oranje #FF8700 alleen voor de hoofdknop, donkerblauw #0B3A55 voor de zijbalk; Roboto Slab koppen, Public Sans tekst. Kleine tekst nooit wit op lichtblauw (contrast 2,9:1). */
:root{--blauw:#009FE3;--blauw-tekst:#0072A8;--blauw-licht:#EAF6FC;--blauw-lijn:#BFE3F5;--oranje:#FF8700;--oranje-donker:#E87A00;--diep:#0B3A55;--diep-licht:#134E72;--diep-lijn:#2A6A8F;--diep-tekst:#BCD6E4;--diep-gedempt:#9FC2D6;--navy:var(--diep);--navy-light:var(--diep-licht);--navy-muted:var(--diep-gedempt);--paper:#F3F5F7;--white:#fff;--ink:#1C2733;--tekst-zacht:#46525E;--muted:#66717C;--line:#D6DCE1;--line-light:#E9EDF0;--accent:var(--blauw);--accent-dark:var(--blauw-tekst);--amber:var(--blauw);--amber-dark:var(--blauw-tekst);--waarschuwing:#6B5420;--waarschuwing-bg:#FBF7EF;--waarschuwing-lijn:#E6D9BF;--green:#2F6B4F;--green-bg:#EDF4EF;--green-lijn:#CBDDD1;--red:#A13E39;--radius:4px;--shadow:none;--serif:'Public Sans',-apple-system,'Segoe UI',Arial,sans-serif;--sans:'Public Sans',-apple-system,'Segoe UI',Arial,sans-serif;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,label{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--sans);font-weight:600;letter-spacing:0;overflow-wrap:break-word}h1{font-size:22px;line-height:1.25}h2{font-size:15px;line-height:1.35}h3{font-size:13px}input,select,textarea{border:1px solid var(--line);border-radius:4px;color:var(--ink);background:#fff;outline:none;min-width:0}input,select{min-height:40px;padding:9px 11px}textarea{padding:8px 10px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--blauw-tekst);box-shadow:none}input::placeholder{color:#8C979F}button:focus-visible,a:focus-visible,label:focus-visible{outline:2px solid var(--blauw);outline-offset:3px}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:20px;padding:12px 20px;background:var(--diep);color:#fff;z-index:100}.skip-link:focus{top:12px}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:#fff;border-right:1px solid var(--line);color:var(--ink);display:flex;flex-direction:column;padding:30px 20px;z-index:20}.brand{display:block;text-decoration:none;padding:0 4px;color:var(--ink)}.brand-logo{display:block;width:132px;height:auto}.brand-light{display:block;margin-top:6px;font-size:12px;color:var(--muted)}.sidebar-project{margin:43px 0 35px}.eyebrow{font-size:12px;line-height:1.4;font-weight:600;color:var(--muted)}.sidebar .eyebrow{color:var(--muted)}.sidebar-project label{display:block;margin:0 8px 10px}.sidebar select{width:100%;font-size:12px;padding:9px 10px}.sidebar-add{background:none;color:var(--blauw-tekst);display:flex;gap:6px;align-items:center;font-size:12px;border:0;padding:9px 7px}.sidebar-add:hover{text-decoration:underline}.sidebar-add span{font-size:19px;font-weight:300}.nav-label{padding:0 8px;margin-bottom:14px}.step-nav{display:flex;flex-direction:column;gap:7px}.nav-item{width:100%;border:0;background:none;color:var(--ink);text-align:left;padding:9px 10px;display:flex;gap:10px;align-items:center;border-radius:4px}.nav-item:hover{background:var(--paper)}.nav-item.active{color:var(--blauw-tekst);background:var(--blauw-licht)}.step-number{display:none}.nav-item strong{display:block;font-size:13px;font-weight:600}.nav-item small{display:none}.sidebar-bottom{margin-top:auto;padding:45px 8px 0}.storage-dot{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink)}.storage-dot span,.mini-dot{display:none}.sidebar-bottom p{font-size:11px;line-height:1.6;color:var(--muted);margin-top:6px}.version{display:block;color:#7FA6BF;font-size:9px;margin-top:21px}.workspace{margin-left:242px;width:calc(100% - 242px)}.topbar{position:sticky;top:0;z-index:15;min-height:69px;display:flex;justify-content:space-between;align-items:center;background:var(--white);border-bottom:1px solid var(--line);padding:0 40px;font-size:12px;color:var(--muted)}.topbar-label{font-weight:500;color:var(--muted)}.breadcrumb-divider{padding:0 14px;color:#B7C0C8}#breadcrumb-project{color:var(--ink)}.local-label{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}main{max-width:1570px;margin:0 auto;padding:43px 40px 0;outline:none}.page-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:22px}.page-heading .eyebrow{margin-bottom:10px}#page-subtitle{display:none}.subtitle{color:var(--muted);font-size:13px;margin-top:12px;line-height:1.7;max-width:620px}.status-badge{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border:0;color:var(--muted);background:none;padding:0;font-size:12px;font-weight:500;flex-shrink:0;margin-top:6px}.status-badge.complete{color:var(--green)}.status-badge.empty{color:var(--muted)}.source-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:23px}.upload-zone{border:1px solid var(--line);background:#fff;border-radius:var(--radius);text-align:center;padding:30px 20px 25px;position:relative;transition:border-color .15s,background .15s}.upload-zone.dragover{background:var(--waarschuwing-bg);border-color:var(--amber-dark)}.upload-icon{display:none}.upload-icon svg{width:100%;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}.upload-zone h2{font-size:15px}.upload-zone p{color:var(--muted);font-size:12px;margin-top:7px}.upload-zone .button{margin-top:18px;min-width:157px}.upload-zone:focus-within{outline:2px solid var(--amber);outline-offset:3px}.upload-hint{display:block;font-size:10px;color:#8C979F;margin-top:13px}.upload-status:empty{display:none}.upload-zone .upload-status{margin-top:12px;color:var(--amber-dark);font-weight:500}.source-guide{display:none}.source-guide h2{font-size:17px;margin-bottom:10px}.source-guide>p{font-size:12px;color:var(--muted);max-width:410px;line-height:1.7}.source-guide ol{padding-left:20px;color:var(--tekst-zacht);font-size:12px;line-height:1.8;margin:13px 0}.source-guide .guide-foot{font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;max-width:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:17px;min-height:36px;padding:8px 14px;border-radius:4px;border:1px solid transparent;text-decoration:none;font-size:13px;font-weight:600;line-height:1.3;cursor:pointer;transition:background .15s}.button span{font-size:16px;font-weight:400;line-height:1}.button.primary{background:var(--oranje);color:var(--ink);border-color:var(--oranje)}.button.primary:hover{background:var(--oranje-donker);border-color:var(--oranje-donker)}.button.secondary{background:#fff;border-color:var(--line);color:var(--diep)}.button.secondary:hover{background:var(--paper);border-color:#B7C0C8}.button.compact{min-height:36px;padding:8px 12px;font-size:11px;gap:9px}.button.danger{background:#a13e39;color:#fff}.warning-box{display:flex;gap:13px;background:var(--waarschuwing-bg);border:1px solid var(--waarschuwing-lijn);border-left:3px solid #C1A368;border-radius:9px;padding:18px 21px;margin:23px 0}.warning-icon{flex-shrink:0;width:21px;height:21px;display:flex;align-items:center;justify-content:center;border:1.5px solid #9A7A3A;color:#8A6B2F;border-radius:100%;font-size:12px;font-weight:600;margin-top:1px}.warning-box h2{font-size:13px;color:var(--waarschuwing)}.warning-box ul{color:var(--waarschuwing);font-size:11px;line-height:1.8;margin:6px 0 0;padding-left:16px}.warning-box li+li{margin-top:4px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:32px 0 18px}.section-heading h2{font-size:17px}.section-heading p{font-size:11px;color:var(--muted);margin-top:5px}.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px}.document-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.document-preview{height:210px;position:relative;overflow:hidden;border-bottom:1px solid var(--line-light);background:var(--line-light);display:block;text-decoration:none;align-content:center}.document-preview img{display:block;width:100%;height:100%;object-fit:contain;background:var(--paper);padding:13px}.doc-sheet{margin:18px auto;width:160px;height:178px;background:#fff;box-shadow:0 3px 10px #1c2c3310;border:1px solid var(--line-light);padding:19px 16px}.doc-sheet .sheet-label{font-size:9px;font-weight:700;color:var(--tekst-zacht)}.sheet-line{height:4px;background:var(--line-light);margin-top:9px;width:100%}.sheet-line.short{width:60%}.sheet-line.heading{height:7px;background:#B7C0C8;width:72%;margin-top:20px}.sheet-price{display:block;color:var(--tekst-zacht);font-size:16px;font-weight:700;margin-top:15px;padding-top:9px;border-top:1px solid var(--line-light)}.sheet-caption{font-size:8px;color:var(--muted)}.document-body{padding:19px 21px 14px;flex:1}.document-type{font-size:11px;font-weight:600;color:var(--muted);margin-bottom:6px}.document-body h3{font-size:13px;overflow-wrap:anywhere;line-height:1.5}.document-metadata{display:flex;flex-wrap:wrap;gap:5px 14px;color:var(--muted);font-size:10px;margin-top:10px}.reference-total{margin-top:15px;padding-top:12px;border-top:1px solid var(--line-light);display:flex;justify-content:space-between;align-items:center;gap:10px}.reference-total span{font-size:10px;color:var(--muted)}.reference-total strong{font-size:16px;font-weight:650;white-space:nowrap}.reference-note{font-size:10px;color:var(--muted);margin-top:5px}.document-warnings{padding-left:16px;color:var(--waarschuwing);font-size:10px;margin-top:12px;line-height:1.6}.document-actions{border-top:1px solid var(--line-light);margin:0 21px;padding:12px 0;display:flex;justify-content:space-between;gap:9px}.document-actions a,.document-actions button{font-size:11px;text-decoration:none;font-weight:500;color:var(--blauw-tekst);background:none;border:0;padding:0}.document-actions a:hover,.document-actions button:hover{text-decoration:underline}.document-text{margin:0 21px 15px;border:1px solid var(--line-light);border-radius:6px}.document-text summary{padding:9px 11px;font-size:11px;color:var(--tekst-zacht);cursor:pointer}.document-text pre{font-size:10px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;max-height:250px;overflow:auto;padding:0 11px 11px;margin:0;color:var(--tekst-zacht);font-family:inherit}.empty-state{border:1px solid var(--line);border-radius:var(--radius);padding:35px;text-align:center;color:var(--muted);margin-bottom:20px}.empty-state h3{color:var(--tekst-zacht)}.empty-state p{font-size:12px;margin-top:8px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}.calculation-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}.calculation-main{min-width:0}.scope-panel{display:flex;align-items:center;gap:18px;padding:15px 18px}.scope-panel>div{flex-shrink:0}.field-label{display:block;font-size:11px;font-weight:600;margin-bottom:6px;color:var(--tekst-zacht)}.scope-panel select{font-size:12px;min-width:160px}.scope-panel p{font-size:10px;color:var(--muted);line-height:1.7;max-width:280px;flex:1}.scope-panel .button{align-self:end;white-space:nowrap}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:9px;background:#fff}.calculation-table{border-collapse:collapse;width:100%;min-width:780px;text-align:left;font-size:11px}.calculation-table thead{background:var(--paper)}.calculation-table th{padding:13px 10px;font-size:9px;color:var(--muted);font-weight:650;white-space:nowrap}.calculation-table td{padding:17px 8px;vertical-align:top;border-top:1px solid var(--line-light)}.calculation-table th:first-child,.calculation-table td:first-child{padding-left:14px;text-align:center;width:58px}.calculation-table th:last-child,.calculation-table td:last-child{padding-right:12px}.calculation-table tr.excluded{background:#F8F9FA}.calculation-table tr.excluded .row-amount{color:#9AA5AF}.calculation-table input[type=checkbox],.checkbox-label input{min-height:0;padding:0;width:15px;height:15px;accent-color:var(--blauw);cursor:pointer;margin:12px 0}.row-category{display:block;width:100%;font-size:9px;font-weight:600;border:0;border-bottom:1px solid var(--line-light);border-radius:0;background:transparent;min-height:0;padding:2px 0 5px;color:var(--muted);margin-bottom:6px}.row-description{width:100%;min-width:160px;max-width:270px;display:block;font-size:11px;line-height:1.5;min-height:42px}.row-source{display:flex;gap:5px;font-size:9px;color:var(--muted);line-height:1.5;max-width:240px;margin-top:6px}.row-source a{color:var(--blauw-tekst);flex-shrink:0}.row-source span{overflow-wrap:anywhere}.source-excerpt{font-size:9px;line-height:1.6;max-width:240px;color:var(--muted);margin-top:6px}.source-excerpt summary{cursor:pointer;color:var(--blauw-tekst)}.source-excerpt p{margin-top:5px;background:var(--paper);padding:7px}.calculation-table input[type=text]{min-height:34px;padding:7px 6px;width:75px;font-size:11px}.calculation-table .row-category{width:100%;min-height:0;padding:2px 0 5px}.calculation-table select{width:64px;font-size:10px;padding:7px 5px;min-height:34px}.row-price{max-width:85px}.row-confirm{display:flex;align-items:center;flex-direction:column;color:var(--muted);font-size:8px;min-width:43px}.row-confirm input{margin:10px 0 5px!important}.row-amount{display:block;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:9px;font-weight:600;font-size:11px}.row-error{color:var(--red);font-size:9px;margin-top:6px;max-width:95px;line-height:1.5}.row-actions{display:flex;gap:4px;padding-top:2px}.row-save,.row-delete{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:5px;padding:4px;width:26px;min-height:29px;color:var(--blauw-tekst);font-size:14px}.row-save:disabled{cursor:default;opacity:.3}.row-delete{color:#9AA5AF;border-color:transparent;background:transparent}.row-delete:hover{color:var(--red);background:#faf0ed}.row-dirty{background:var(--blauw-licht)!important}.row-dirty .row-save{background:var(--blauw-licht);border-color:var(--blauw-lijn);color:var(--blauw-tekst)}.save-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 0 0;padding:12px 16px;background:var(--paper);border:1px solid var(--line-light);border-radius:8px}.save-bar p{font-size:11px;color:var(--muted)}.save-bar .button{min-height:35px;font-size:11px;gap:9px;padding:8px 11px}.input-help{font-size:10px;color:var(--muted);margin:12px 2px;line-height:1.7}.calculation-side{display:flex;flex-direction:column;gap:16px}.margin-panel .eyebrow{margin-bottom:7px}.margin-panel h2{font-size:17px;margin-bottom:19px}.margin-panel select,.margin-panel input{width:100%;font-size:11px;min-height:38px}.margin-panel label{margin-top:14px}.suffix-input{position:relative}.suffix-input input{padding-right:32px}.suffix-input span{position:absolute;right:12px;top:8px;color:var(--muted);font-size:13px}.field-help{font-size:10px;color:var(--muted);line-height:1.7;margin:11px 0 17px}.margin-panel .button{width:100%;font-size:11px}.margin-panel.dirty{border-color:var(--waarschuwing-lijn)}.totals-card{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.totals-card .eyebrow{color:var(--diep-gedempt);margin-bottom:23px;font-size:9px}.total-line{display:flex;justify-content:space-between;gap:10px;margin:15px 0;font-size:10px;color:var(--diep-tekst)}.total-line strong{color:#E3EEF5;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:500}.selling-total{border-top:1px solid var(--diep-lijn);padding-top:20px;margin-top:20px}.selling-total span{display:block;font-size:11px;color:#CFE1EC}.selling-total strong{display:block;font-size:25px;line-height:1.4;letter-spacing:0;margin-top:7px;color:#fff;font-weight:600;font-family:var(--serif)}.selling-total strong.incomplete{font-size:23px;color:#CFE1EC}.totals-card>p:last-child{font-size:10px;line-height:1.7;color:var(--diep-gedempt);margin-top:12px}.missing-panel h2{font-size:13px;color:var(--tekst-zacht)}.missing-panel ul{font-size:10px;line-height:1.7;color:var(--muted);padding-left:15px;margin:10px 0 0}.missing-panel li+li{margin-top:5px}.overview-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:23px}.origin-panel{padding:24px 28px;margin-bottom:23px}.origin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.origin-head .status-badge{margin-top:2px}.origin-sub{font-size:12px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}.origin-table{width:100%;border-collapse:collapse;margin-top:18px;font-size:12px;font-variant-numeric:tabular-nums}.origin-table th,.origin-table td{padding:9px 0;border-bottom:1px solid var(--paper);text-align:right;white-space:nowrap}.origin-table th:first-child{text-align:left;font-weight:500;color:var(--muted);white-space:normal}.origin-table thead th{font-size:11px;font-weight:600;color:var(--muted)}.origin-table td,.origin-table thead th+th{padding-left:16px}.origin-table td{font-weight:600;color:var(--ink)}.origin-table thead th{white-space:normal;vertical-align:bottom}.origin-table tbody tr:last-child td{font-size:14px}.origin-note{font-size:11px;color:var(--muted);line-height:1.7;margin-top:14px;max-width:760px}.origin-details{margin-top:12px;font-size:11px;color:var(--muted)}.origin-details summary{cursor:pointer;font-weight:600;color:var(--blauw-tekst)}.origin-details ul{padding-left:16px;line-height:1.75;margin:8px 0 0;max-width:820px}.origin-details li+li{margin-top:3px}.overview-price{padding:28px}.overview-price .eyebrow{margin-bottom:12px}.overview-price .status-badge{margin:0 0 22px;font-size:10px}.overview-price h2{color:var(--muted);font-size:13px;letter-spacing:0}.big-price{display:block;font-size:42px;letter-spacing:-1.6px;line-height:1.25;margin-top:8px;font-weight:650}.big-price.incomplete{font-size:34px;color:var(--tekst-zacht)}.overview-price>p:not(.eyebrow){font-size:11px;line-height:1.8;color:var(--muted);margin-top:13px;max-width:400px}.price-breakdown{margin:24px 0 0;border-top:1px solid var(--line);padding-top:12px}.price-breakdown div{display:flex;justify-content:space-between;gap:20px;font-size:11px;line-height:2.4;color:var(--muted)}.price-breakdown dd{font-weight:600;color:var(--ink);margin:0;font-variant-numeric:tabular-nums}.overview-check{padding:28px}.overview-check .eyebrow{margin-bottom:10px}.overview-stats{margin:20px 0;padding:0}.overview-stats div{display:flex;justify-content:space-between;font-size:12px;line-height:2.7;border-bottom:1px solid var(--paper);color:var(--muted)}.overview-stats dd{margin:0;font-weight:600;color:var(--ink)}.overview-check h3{font-size:12px;margin:18px 0 8px}.overview-check ul{font-size:10px;color:var(--muted);padding-left:15px;line-height:1.8;margin:0}.text-button{background:none;border:0;padding:0;font-size:11px;color:var(--blauw-tekst);font-weight:600;margin-top:18px}.text-button span{padding-left:10px}.export-panel{display:flex;justify-content:space-between;gap:30px;align-items:center;background:var(--paper);border:1px solid var(--line-light);border-radius:var(--radius);padding:25px 27px;margin-top:27px}.export-panel .eyebrow{color:var(--muted);margin-bottom:7px}.export-panel h2{font-size:17px}.export-panel p:not(.eyebrow){font-size:11px;color:var(--muted);margin-top:8px;line-height:1.7}.export-actions{display:flex;flex-direction:column;min-width:190px;gap:9px}.export-actions .button{justify-content:space-between;font-size:11px}.export-panel .export-draft-note{color:var(--waarschuwing)!important}.overview-note{font-size:10px;color:var(--muted);line-height:1.8;margin-top:18px}.workspace-footer{display:none}.workspace-footer span:first-child{font-weight:600}.app-alert{display:flex;gap:14px;justify-content:space-between;align-items:center;background:#faeeea;border:1px solid #e7c9c0;color:#97493b;border-radius:8px;font-size:12px;padding:15px 18px;margin-bottom:23px}.app-alert button{font-size:12px;background:none;border:0;color:inherit;font-weight:600;white-space:nowrap}.loading-state{min-height:400px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px}.loading-state h1{font-size:25px}.loading-state p{font-size:12px;color:var(--muted)}.spinner{border:2px solid var(--line);border-top-color:var(--blauw);width:29px;height:29px;border-radius:100%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{max-width:460px;width:calc(100% - 32px);background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:27px;box-shadow:0 20px 70px #172c3744;color:var(--ink)}dialog::backdrop{background:#14252fc0;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:11px}.dialog-heading h2{font-size:23px;letter-spacing:-.7px}.icon-button{width:28px;height:28px;border:0;border-radius:5px;background:var(--line-light);color:var(--muted);font-size:22px;line-height:1}dialog p{color:var(--muted);font-size:12px;line-height:1.7;margin:10px 0 22px}dialog input:not([type=checkbox]),dialog select{width:100%}dialog .field-label{margin-top:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.dialog-fields{display:grid;grid-template-columns:1.3fr 1fr;gap:13px}.checkbox-label{display:flex;gap:10px;align-items:center;font-size:11px;color:var(--muted);margin-top:10px}.checkbox-label input{margin:0;flex-shrink:0}dialog .form-error{font-size:11px;color:var(--red);margin:15px 0 0}.toast{flex:0 1 auto;min-width:0;margin:0 18px;padding:6px 11px;background:var(--green-bg);color:var(--green);border:1px solid var(--green-lijn);border-radius:6px;font-size:12px;line-height:1.45}
.warning-details{margin-top:9px;font-size:10px;color:var(--waarschuwing)}.warning-details summary{cursor:pointer;font-weight:600}.missing-panel ul{max-height:320px;overflow-y:auto}.overview-check #overview-missing{max-height:235px;overflow-y:auto}
@media(min-width:1500px){.calculation-layout{grid-template-columns:minmax(0,1fr) 300px}.calculation-table .row-description{min-width:190px}.calculation-table td{padding:18px 10px}.calculation-table input[type=text]{width:85px}}
@media(max-width:1250px){.sidebar{width:218px;padding:27px 16px}.workspace{margin-left:218px;width:calc(100% - 218px)}main{padding:33px 28px 0}.topbar{padding:0 28px}.calculation-layout{grid-template-columns:minmax(0,1fr)}.calculation-side{display:grid;grid-template-columns:1fr 1fr;gap:18px}.missing-panel{grid-column:1/-1}.missing-panel ul{columns:2;column-gap:30px}.margin-panel,.totals-card{min-height:270px}.scope-panel p{max-width:none}.export-panel{gap:20px}}
@media(max-width:1000px){.source-intro{grid-template-columns:1fr}.source-guide{padding:20px 25px}.source-guide ol{display:flex;flex-wrap:wrap;gap:5px 28px;margin:12px 0}.source-guide>p{max-width:none}.document-preview{height:190px}h1{font-size:30px}.page-heading{align-items:flex-start}.page-heading .status-badge{margin-top:17px}.overview-grid{grid-template-columns:1fr}.overview-check ul{columns:2;column-gap:25px}.export-panel{align-items:flex-start}.big-price{font-size:36px}}
@media(max-width:760px){.app-shell{display:block}.origin-table{width:100%}.origin-table th,.origin-table td{padding:8px 0 8px 8px;font-size:12px}.origin-table th:first-child,.origin-table td:first-child{padding-left:0}.origin-table thead th{white-space:normal;font-size:9px;vertical-align:bottom}.origin-table tr:last-child td,.origin-table tr:last-child th{font-size:13px}.sidebar{position:relative;width:100%;padding:18px 20px 0;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.brand{padding:0;align-self:center}.brand-logo{width:118px;padding:7px 9px}.brand-light{font-size:9px;margin-top:5px}.sidebar-project{margin:0}.sidebar-project .eyebrow{display:none}.sidebar select{font-size:11px;padding:8px;min-height:33px}.sidebar-add{font-size:10px;padding:5px 0;justify-content:flex-end;width:100%}.sidebar-bottom,.nav-label{display:none}.step-nav{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;gap:7px;margin-top:12px}.step-nav .nav-item{flex:1 1 auto;width:auto}.nav-item{padding:12px 9px;border-bottom-left-radius:0;border-bottom-right-radius:0;gap:8px;justify-content:center}.nav-item small{display:none}.nav-item strong{font-size:11px}.step-number{width:22px;height:22px;font-size:9px}.workspace{margin-left:0;width:100%}.topbar{height:49px;padding:0 20px;font-size:10px}.breadcrumb-divider{padding:0 9px}.local-label{font-size:9px}main{padding:28px 20px 0}.page-heading{gap:12px;flex-direction:column;margin-bottom:24px}.page-heading .eyebrow{font-size:9px;margin-bottom:9px}h1{font-size:29px}.subtitle{font-size:12px;margin-top:11px;max-width:none}.page-heading .status-badge{margin-top:0;font-size:10px}.source-intro{gap:18px}.upload-zone{padding:27px 15px}.source-guide{padding:22px}.source-guide ol{display:block;padding-left:18px}.source-guide h2{font-size:16px}.document-grid{grid-template-columns:1fr}.document-preview{height:220px}.document-body h3{font-size:13px}.section-heading{align-items:flex-start;margin:25px 0 15px}.section-heading h2{font-size:16px}.section-heading .button{font-size:10px;white-space:nowrap}.warning-box{padding:16px;gap:10px}.warning-box ul{font-size:10px}.scope-panel{flex-wrap:wrap;gap:10px;padding:16px}.scope-panel>div{flex:1}.scope-panel .button{order:1;align-self:end}.scope-panel p{order:2;width:100%;flex:auto;font-size:10px}.calculation-side{grid-template-columns:1fr}.missing-panel{grid-column:auto}.missing-panel ul{columns:auto}.save-bar{padding:12px;flex-wrap:wrap}.save-bar .button{margin-left:auto}.save-bar p{font-size:10px}.margin-panel,.totals-card{min-height:0}.margin-panel{padding:21px}.margin-panel h2{margin-bottom:14px}.selling-total strong{font-size:29px}.overview-check,.overview-price{padding:23px}.overview-check ul{columns:auto}.big-price{font-size:35px}.big-price.incomplete{font-size:31px}.export-panel{display:block;padding:23px}.export-actions{margin-top:20px;gap:10px}.export-actions .button{min-height:40px}.topbar{flex-wrap:wrap;height:auto;min-height:49px;padding:0 20px}.toast{order:3;flex-basis:100%;margin:0 0 10px;font-size:11px}.app-alert{font-size:11px;padding:12px;flex-wrap:wrap}.workspace-footer{margin-top:25px;font-size:9px}.loading-state{min-height:320px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}dialog::backdrop{backdrop-filter:none}}
@media print{.sidebar,.topbar,.page-heading,.save-bar,.export-panel,.workspace-footer,.toast,.app-alert{display:none!important}.workspace{margin:0;width:100%}main{padding:0}.view-panel{display:block!important}.upload-zone,.source-guide,.document-actions,.margin-panel,.scope-panel,.row-actions{display:none}.panel,.document-card,.table-wrap{box-shadow:none;break-inside:avoid}.calculation-layout{display:block}.totals-card{background:#fff;color:#000;border:1px solid #bbb}.totals-card *{color:#000!important}.overview-grid{display:block}.overview-check{margin-top:20px}}

/* v2 — tarieven, kostensoorten, zekerheid, documentanalyse */
.rows-tools{display:flex;gap:9px;align-items:center}.rows-tools select{font-size:11px;min-height:36px;padding:6px 9px}
.certainty{display:inline-block;font-size:9px;font-weight:650;padding:2px 7px;border-radius:4px;margin-bottom:7px;border:1px solid;line-height:1.5}
.certainty.ok{color:var(--green);background:var(--green-bg);border-color:var(--green-lijn)}.certainty.warn{color:var(--waarschuwing);background:var(--waarschuwing-bg);border-color:var(--waarschuwing-lijn)}.certainty.bad{color:var(--red);background:#faf0ed;border-color:#ecd2cc}.certainty.ai{color:var(--blauw-tekst);background:var(--blauw-licht);border-color:var(--blauw-lijn)}.certainty.plain{color:var(--muted);background:var(--paper);border-color:var(--line)}
.row-origin{font-size:9px;color:var(--muted);margin-top:4px}
.row-notes{margin:6px 0 0;padding-left:14px;font-size:9px;color:var(--waarschuwing);line-height:1.55;max-width:270px}
.row-basis{display:grid;grid-template-columns:1fr;gap:4px 6px;max-width:270px;margin-top:7px}.row-basis-label{grid-column:1/-1;font-size:9px;font-weight:650;color:var(--muted)}
.calculation-table .row-basis select{width:100%;min-width:0}
.calculation-table input.row-category{width:100%}
.calculation-table td.cell-description{min-width:250px}
.calculation-table select:disabled,.calculation-table input[type=text]:disabled,dialog select:disabled,dialog input:disabled{background:var(--paper);color:var(--tekst-zacht);cursor:not-allowed}
.calculation-table tr.needs-review td:first-child{box-shadow:inset 3px 0 0 var(--amber)}
.rate-panel h2{font-size:17px;margin:7px 0 15px}.rate-panel select{width:100%;font-size:11px;min-height:38px}.rate-panel .button{width:100%;font-size:11px;margin-bottom:4px}.rate-panel .text-button{margin-top:8px;display:block}
.breakdown{border-bottom:1px solid var(--diep-lijn);margin-bottom:15px;padding-bottom:3px}.breakdown:empty{display:none}.breakdown .total-line{margin:10px 0}
.totals-card>p:not(.eyebrow){font-size:10px;line-height:1.7;color:var(--diep-gedempt);margin-top:12px}
.rate-version-line{font-weight:500}
.type-breakdown{margin-top:18px}
.document-analysis{margin-top:15px;padding-top:13px;border-top:1px solid var(--line-light);font-size:10.5px;line-height:1.6;color:var(--tekst-zacht)}
.document-analysis h4{margin:0 0 5px;font-size:11px;color:var(--muted)}
.analysis-missing{background:var(--waarschuwing-bg);border:1px solid var(--waarschuwing-lijn);border-radius:6px;padding:9px 11px;margin:9px 0;color:var(--waarschuwing)}
.analysis-missing ul,.analysis-details ul{margin:5px 0 0;padding-left:15px}.analysis-details{margin-top:7px}.analysis-details summary{cursor:pointer;font-weight:600;color:var(--tekst-zacht)}.analysis-details li{overflow-wrap:anywhere;margin:3px 0}
.document-actions{flex-wrap:wrap;justify-content:flex-start;gap:9px 18px}.document-actions button{cursor:pointer}.document-actions button:disabled{opacity:.45;cursor:not-allowed;text-decoration:none!important}
.rates-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
.rates-main{display:flex;flex-direction:column;gap:16px;min-width:0}.rates-main .save-bar{margin:0}
.rates-intro{padding:16px 20px}.rates-intro p{font-size:11.5px;line-height:1.75;color:var(--muted);max-width:78ch}
#rate-groups{display:flex;flex-direction:column;gap:14px}
.rate-group{padding:17px 20px}.rate-group-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.rate-group-heading h2{font-size:15px}.rate-group-heading p{font-size:10px;color:var(--muted);margin-top:2px}
.rate-row{display:grid;grid-template-columns:minmax(130px,2fr) 82px 104px minmax(110px,1.6fr) 28px;gap:10px;align-items:end;padding-top:12px;margin-top:12px;border-top:1px solid var(--line-light)}
.rate-field{display:flex;flex-direction:column;gap:4px;font-size:9px;color:var(--muted);font-weight:600;min-width:0}.rate-field input,.rate-field select{font-size:12px;min-height:36px;padding:7px 9px;width:100%}
.rate-row.rate-empty .rate-price{border-style:dashed;background:#F8F9FA}.rate-delete{margin-bottom:3px}
.rate-source{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:11px;color:var(--muted)}.rate-source .certainty{margin:0}.rate-confirm{display:inline-flex;gap:6px;align-items:center;color:var(--ink);font-weight:500}.rate-confirm input{width:14px;height:14px;margin:0}.rate-row.rate-unconfirmed .rate-price{background:var(--waarschuwing-bg)}
.rates-side{display:flex;flex-direction:column;gap:16px}.rates-side h2{font-size:17px;margin:7px 0 4px}.rates-side input{width:100%;font-size:11px;margin-bottom:12px}.rates-side .button{width:100%;font-size:11px}
.version-card{border-top:1px solid var(--line-light);padding:13px 0 11px}.version-card:first-child{border-top:0}.version-card h3{font-size:13px}.version-card p{font-size:10px;color:var(--muted);margin:3px 0 7px;line-height:1.6}.version-card .text-button{margin:0 0 4px;display:block;cursor:pointer}.version-card .analysis-details{font-size:10px;color:var(--tekst-zacht)}
.nav-rates{margin-top:12px;border-top-color:var(--diep-lijn);border-radius:0 0 8px 8px}
@media(max-width:1250px){.rates-layout{grid-template-columns:minmax(0,1fr)}.rates-side{display:grid;grid-template-columns:1fr 1fr}.rate-panel{min-height:0}}
@media(max-width:760px){
  .nav-rates{margin-top:0;border-top-color:transparent;border-radius:8px 8px 0 0}.nav-item{padding:11px 4px;gap:6px}.nav-item .step-number{display:none}
  .rates-side{grid-template-columns:1fr}.rate-row{grid-template-columns:1fr 1fr 28px}.rate-name-field,.rate-note-field{grid-column:1/-1}
  .rows-heading{flex-wrap:wrap}.rows-tools{width:100%;justify-content:space-between;flex-wrap:wrap}.rows-tools select{flex:1 1 100%}.rows-tools .button{flex:1 1 auto}
  /* Posten als kaarten: geen horizontaal scrollen op een telefoon. */
  .table-wrap{overflow:visible;border:0;background:none}
  .calculation-table{min-width:0;display:block}.calculation-table thead{display:none}.calculation-table tbody{display:flex;flex-direction:column;gap:12px}
  .calculation-table tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:13px}
  .calculation-table tr.excluded{background:#F8F9FA}.calculation-table tr.needs-review{border-left:3px solid var(--amber)}.calculation-table tr.needs-review td:first-child{box-shadow:none}
  .calculation-table td,.calculation-table td:first-child,.calculation-table td:last-child{display:block;padding:0;border:0;width:auto;text-align:left;min-width:0}
  .calculation-table td[data-label]:before{content:attr(data-label);display:block;font-size:9px;font-weight:650;color:var(--muted);margin-bottom:4px}
  .calculation-table .cell-include{display:flex;align-items:center;gap:8px;grid-column:1/-1}.calculation-table .cell-include:before{margin:0!important;order:2}.calculation-table .cell-include input{margin:0}
  .calculation-table td.cell-description{grid-column:1/-1;min-width:0}
  .row-description,.row-notes,.row-source,.row-basis{max-width:none}
  .calculation-table input[type=text],.calculation-table select{width:100%;min-height:40px;font-size:13px}.row-price{max-width:none}
  .calculation-table .cell-confirm .row-confirm{flex-direction:row;gap:8px;font-size:11px;min-height:40px}.calculation-table .cell-confirm .row-confirm input{margin:0!important;width:18px;height:18px}
  .row-amount{text-align:left;padding-top:9px;font-size:14px}.row-error{max-width:none;font-size:10px}
  .calculation-table .cell-actions{grid-column:1/-1}.row-actions{justify-content:flex-end;gap:8px}.row-save,.row-delete{width:40px;min-height:40px;font-size:17px}
  .document-actions{gap:12px 18px}.document-actions a,.document-actions button{font-size:12px;padding:4px 0}
}
@media print{.rates-layout,.rows-tools,.rate-panel{display:none!important}}

/* accounts */
.logout-button{margin:0 0 0 14px;cursor:pointer}.local-label{display:flex;align-items:center;gap:7px;min-width:0}#mode-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46vw}


.signed-out .sidebar-project,.signed-out .step-nav,.signed-out .nav-label{visibility:hidden}
.auth-screen{display:flex;justify-content:center;padding:6vh 0 40px}.auth-panel{width:100%;max-width:420px;padding:30px}.auth-panel h1{font-size:28px;margin:8px 0 6px}.auth-panel .subtitle{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:8px}
.auth-panel input{width:100%}.auth-panel .field-label{margin-top:15px}.auth-panel .button{width:100%;margin-top:20px}.auth-panel .field-help{margin:6px 0 0}.auth-panel .form-error{font-size:11.5px;color:var(--red);margin-top:13px}.auth-panel .text-button{cursor:pointer}
.claim-panel{max-width:520px;margin-bottom:18px}.claim-panel input{width:100%;margin-bottom:14px}.claim-panel code{font-size:11px;background:var(--paper);padding:1px 5px;border-radius:4px}.claim-panel .form-error{font-size:11.5px;color:var(--red);margin-top:12px}
.accounts-panel .section-heading{margin-top:0}
.admin-owner-note{font-size:11px;color:var(--muted)}
.security-panel{max-width:720px;margin-bottom:18px}.security-panel .section-heading{margin-top:0;align-items:flex-start}.security-panel .section-heading .certainty{margin-top:4px}.security-panel .field-help{max-width:62ch;margin:0 0 14px}.security-panel h3{font-size:13px;margin:4px 0 8px}
.totp-steps{padding-left:20px;font-size:12px;line-height:1.7;color:var(--tekst-zacht);margin:0 0 16px;max-width:68ch}.totp-steps li+li{margin-top:6px}.totp-steps strong{color:var(--ink);font-weight:600}.totp-key{display:flex;gap:22px;align-items:flex-start;padding:16px;border:1px solid var(--line-light);border-radius:9px;background:var(--paper);margin-bottom:16px}.totp-key img{flex-shrink:0;width:196px;height:196px;background:#fff;border:1px solid var(--line);border-radius:6px}.totp-key .field-label{margin:4px 0 6px}.totp-key code{display:block;font-size:13px;line-height:1.6;overflow-wrap:anywhere;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-bottom:8px}
.totp-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.totp-row>div{flex:1 1 160px}.totp-row>div input{width:100%}#totp-enable-code{width:140px;font-variant-numeric:tabular-nums}.security-panel .form-error{font-size:11.5px;color:var(--red);margin-top:12px}
.backup-codes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:0 0 16px;max-width:520px}.backup-codes li{font-family:ui-monospace,Menlo,monospace;font-size:13px;text-align:center;padding:9px 6px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}
.totp-disable{margin-top:6px;font-size:12px}.totp-disable summary{cursor:pointer;color:var(--blauw-tekst);font-weight:600;padding:4px 0}.totp-disable form{margin-top:12px}.totp-disable form .button{margin-top:14px}.button.secondary.revoke{color:var(--red)}
@media (max-width:640px){.totp-key{flex-direction:column;align-items:center;text-align:center}.totp-key .field-label{text-align:left}.totp-key>div{width:100%}.backup-codes{grid-template-columns:repeat(2,minmax(0,1fr))}.totp-row .button{width:100%}#totp-enable-code{width:100%}}
.admin-table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}.admin-table thead{background:var(--paper)}.admin-table th{padding:12px;font-size:9px;color:var(--muted);font-weight:650;white-space:nowrap}.admin-table td{padding:13px 12px;border-top:1px solid var(--line-light);vertical-align:middle;overflow-wrap:anywhere}
.admin-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-actions .button{min-height:32px;padding:6px 10px}.admin-actions .revoke{color:var(--red)}

.totp-required .nav-item:not(.nav-admin),.totp-required .sidebar-project .sidebar-add,.totp-required #calculation-badge{display:none}
.totp-required-note{border-color:var(--waarschuwing-lijn);background:var(--waarschuwing-bg)}.totp-required-note .field-help{color:var(--ink)}
.users-panel,.keys-panel{margin-bottom:18px}.users-panel .field-help,.keys-panel .field-help{max-width:72ch;margin:0 0 14px}.users-panel h3{font-size:13px;margin:16px 0 8px}
.inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}.inline-form>div{flex:1 1 240px;max-width:360px}.inline-form>div input{width:100%}.inline-form .form-error{flex-basis:100%;font-size:11.5px;color:var(--red);margin:0}
.once-box{margin:0 0 16px;padding:12px 14px;border:1px solid var(--blauw-lijn);background:var(--blauw-licht);border-radius:8px;font-size:12px}.once-box strong{display:block;margin-bottom:6px}.once-box code{display:block;font-size:13px;word-break:break-all;margin-bottom:6px;user-select:all;-webkit-user-select:all}.once-box .field-help{margin:0}
.invites-list{list-style:none;padding:0;margin:0;font-size:12px}.invites-list li{padding:8px 0;border-top:1px solid var(--line-light)}.invites-list .text-button{display:inline;padding:0;font-size:12px}
@media(max-width:760px){
  .step-nav{overflow-x:auto}.logout-button{margin-left:8px}#mode-label{max-width:38vw}.inline-form .button{width:100%}
  .admin-wrap{overflow:visible;border:0;background:none}.admin-table,.admin-table tbody{display:block}.admin-table thead{display:none}
  .admin-table tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;border:1px solid var(--line);border-radius:10px;padding:13px;margin-bottom:12px;background:#fff}
  .admin-table td{display:block;padding:0;border:0}.admin-table td[data-label]:before{content:attr(data-label);display:block;font-size:9px;font-weight:650;color:var(--muted);margin-bottom:3px}.admin-table td:last-child,.admin-table td:nth-child(2){grid-column:1/-1}
}
.reset-code{margin:8px 0 0;font-size:12px;line-height:1.45;word-break:break-all}.reset-code code{font-size:12px}
.phase-rule-source{font-weight:600;color:var(--ink)}
.phase-main{display:grid;gap:16px;min-width:0}.phase-main>.panel{margin:0}.phase-main>.field-help:empty{display:none}
.phase-facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:24px;align-items:center;padding:16px 22px}
.phase-facts-text{display:grid;gap:2px;font-size:13px;min-width:0}.phase-facts-text strong{font-size:11px;font-weight:600;color:var(--muted)}.phase-facts-text span{overflow-wrap:anywhere}
.phase-overview{display:grid;grid-template-columns:5fr 4fr 4fr;gap:14px}
.phase-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 16px 14px;min-width:0}
.phase-card.current{border-color:#B7C0C8;box-shadow:var(--shadow)}
.phase-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}.phase-card-head h2{font-size:14px}
.phase-card-count{font-size:12px;color:var(--muted);white-space:nowrap}
.phase-pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.phase-pill{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 11px 5px 6px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:13px;white-space:nowrap}
.phase-pill:hover{border-color:#B7C0C8}
.phase-pill-number{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--paper);color:var(--muted);font-size:10px;font-weight:600}
.phase-pill.bezig{background:var(--waarschuwing-bg);border-color:var(--waarschuwing-lijn)}.phase-pill.bezig .phase-pill-number{background:#EBDFC6;color:var(--amber-dark)}
.phase-pill.klaar{background:var(--green-bg);border-color:var(--green-lijn)}.phase-pill.klaar .phase-pill-number{background:var(--green);color:#fff}
.phase-pill.active{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy);font-weight:600}
.phase-legend{grid-column:1/-1;display:flex;gap:16px;justify-content:flex-end;margin:-4px 2px 0;font-size:11px;color:var(--muted)}
.phase-legend-item{display:inline-flex;align-items:center;gap:6px}.phase-legend-item:before{content:"";width:10px;height:10px;border-radius:50%;border:1px solid #B7C0C8;background:#fff}
.phase-legend-item.bezig:before{background:#EBDFC6;border-color:#D9C9A3}.phase-legend-item.klaar:before{background:var(--green);border-color:var(--green)}
.phase-detail{padding:26px 30px}
.phase-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.phase-detail-head h2{font-size:24px;letter-spacing:-.2px;margin-top:2px}
.phase-detail-sub{color:var(--muted);font-size:12px}.phase-detail-info{margin-top:6px;font-size:14px;color:var(--tekst-zacht);max-width:640px}
.status-choice{display:inline-flex;flex:none;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.status-option{border:0;background:none;padding:8px 16px;min-height:38px;font-size:13px;font-weight:600;color:var(--muted)}.status-option+.status-option{border-left:1px solid var(--line)}
.status-option:hover{color:var(--ink)}.status-option.open[aria-pressed=true]{background:var(--paper);color:var(--ink)}.status-option.bezig[aria-pressed=true]{background:var(--waarschuwing-bg);color:var(--amber-dark)}.status-option.klaar[aria-pressed=true]{background:var(--green-bg);color:var(--green)}
.phase-body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:32px;align-items:start}.phase-body.single{grid-template-columns:minmax(0,1fr)}
.phase-body h3{font-size:15px;margin:0 0 10px}
.phase-block-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.phase-count{font-size:12px;color:var(--muted);white-space:nowrap}
.phase-checks{border-top:1px solid var(--line)}
.phase-check{display:grid;grid-template-columns:18px minmax(0,1fr);gap:12px;align-items:center;min-height:46px;padding:8px 4px;border-bottom:1px solid var(--line);font-size:14px;cursor:pointer}
.phase-check:hover{background:#F8F9FA}.phase-check input{margin:0;width:16px;height:16px;accent-color:var(--green)}
.phase-check-label{overflow-wrap:anywhere}.phase-check.done .phase-check-label{color:var(--muted);text-decoration:line-through;text-decoration-color:#B7C0C8}
.phase-body .exec-note{margin-top:14px;overflow-wrap:anywhere}
.phase-link{margin-top:18px}
.phase-body-main>.phase-link:first-child{margin-top:0}
.phase-aside{background:#F8F9FA;border:1px solid var(--line);border-radius:10px;padding:16px 18px;font-size:13px;line-height:1.5}
.phase-deadline{display:grid;gap:2px;padding:10px 0;border-bottom:1px solid var(--line)}.phase-deadline strong{font-size:14px}.phase-deadline span{color:var(--tekst-zacht)}
.phase-deadline.late strong{color:#a1452f}
.phase-aside-empty{color:var(--muted);padding:2px 0 10px;border-bottom:1px solid var(--line)}.phase-aside-empty .text-button{font-size:13px}
.phase-aside-rule{margin-top:12px;color:var(--tekst-zacht);overflow-wrap:anywhere}
.phase-history{margin-top:26px;border-top:1px solid var(--line);padding-top:14px}
.phase-history summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--tekst-zacht);list-style-position:inside}.phase-history[open] summary{margin-bottom:12px}
.phase-note{padding:14px 0;border-top:1px solid var(--line);font-size:13px;line-height:1.55}.phase-history>.phase-note:first-of-type{border-top:0;padding-top:0}
.phase-note.warning .phase-note-text{padding-left:12px;border-left:3px solid #C1A368;color:var(--waarschuwing)}
.phase-note-source{margin-top:6px;font-size:11px;color:var(--muted)}
.phase-figures{margin:10px 0 0;display:grid;max-width:640px}
.phase-figures div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:14px;padding:5px 0;border-bottom:1px solid var(--line-light)}
.phase-figures div.short{grid-template-columns:minmax(0,1fr) 48px}.phase-figures div.short dd{text-align:right}.phase-figures div.plain{grid-template-columns:1fr}
.phase-figures dt{font-weight:600;overflow-wrap:anywhere}.phase-figures div.short dt,.phase-figures div.plain dt{font-weight:400}.phase-figures dd{margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.phase-way{margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}.phase-body-main>.phase-way:first-child{margin-top:0;padding-top:0;border-top:0}.phase-way h3{font-size:13px;margin:0 0 8px}.phase-way-list{margin:0;padding-left:18px;font-size:13px;line-height:1.55;color:var(--ink)}.phase-way-list li+li{margin-top:6px}
.phase-events{list-style:none;margin:0;padding:0}.phase-event{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:13px;line-height:1.55}.phase-event:first-child{border-top:0;padding-top:0}.phase-event-date{font-size:12px;color:var(--tekst-zacht);font-variant-numeric:tabular-nums}.phase-event-body p{margin:0}.phase-event-why{margin-top:4px!important;color:var(--tekst-zacht)}.phase-history+.phase-history{margin-top:0}
@media(max-width:760px){.phase-event{grid-template-columns:minmax(0,1fr);gap:2px}}
.phase-source{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.phase-pager{display:flex;justify-content:space-between;align-items:center;gap:12px}.phase-pager .button.is-end{visibility:hidden}
@media(max-width:1180px){.phase-overview{grid-template-columns:1fr 1fr}.phase-overview>.phase-card:first-child{grid-column:1/-1}.phase-body{grid-template-columns:1fr}.phase-facts{grid-template-columns:1fr 1fr}.phase-facts .button{grid-column:1/-1;justify-self:start}}
@media(max-width:760px){.phase-overview{grid-template-columns:1fr}.phase-legend{justify-content:flex-start}.phase-facts{grid-template-columns:1fr;gap:12px;padding:14px 16px}.phase-detail{padding:18px 16px}.phase-detail-head{display:grid;gap:14px}.phase-detail-head h2{font-size:20px}.status-choice{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.phase-figures div{grid-template-columns:68px minmax(0,1fr)}.phase-pager .button{flex:1}.phase-pill{font-size:12px}}
.sketch-panel{margin-top:22px}
.sketch-head{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:24px;align-items:start;margin-bottom:16px}.sketch-head .eyebrow{margin-bottom:4px}.sketch-head>p{color:var(--muted);font-size:13px;max-width:640px}
.sketch-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;align-items:end}.sketch-grid>.button.primary{grid-column:1/-1;justify-self:start}.sketch-openings,.sketch-model-wrap{grid-column:1/-1;margin-top:8px;padding-top:14px;border-top:1px solid var(--line-light)}.sketch-openings h3,.sketch-model-head h3{font-size:14px}.sketch-openings-head .field-help,.sketch-model-head .field-help{margin:4px 0 12px;max-width:760px}.sketch-opening-rows{display:grid;gap:8px;margin-bottom:10px}.sketch-opening{display:grid;grid-template-columns:1.3fr .7fr .8fr .8fr 1.5fr .9fr .9fr 1.4fr auto;gap:8px;align-items:end}.sketch-opening label{display:grid;gap:4px;font-size:10px;font-weight:600;color:var(--tekst-zacht)}.sketch-opening input,.sketch-opening select{width:100%;min-height:36px;padding:7px 9px;font-size:12px}.sketch-opening .row-delete{min-height:36px;width:30px}.sketch-model-row{display:grid;grid-template-columns:minmax(0,760px) minmax(220px,300px);gap:20px;align-items:start}.sketch-photos h3{font-size:12px;color:var(--tekst-zacht)}.sketch-photos .field-help{margin:4px 0 10px}.sketch-photo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-bottom:10px}.sketch-photo-list:empty{display:none}.sketch-photo-list a{display:block;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}.sketch-photo-list img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.sketch-model{display:block;width:100%;max-width:760px;height:auto;aspect-ratio:5/3;background:var(--paper);border:1px solid var(--line-light);border-radius:9px;touch-action:none;cursor:grab;user-select:none}.sketch-model:active{cursor:grabbing}.sketch-model .face{fill:#fff;stroke:#5B6B76;stroke-width:.06;stroke-linejoin:round}.sketch-model .opening{stroke:#1F3A4D;stroke-width:.05;cursor:move}.sketch-model .opening.dragging{stroke-width:.12}.sketch-model .wall-name{font-size:.55px;fill:#5B6B76;font-family:inherit;pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:.22px;stroke-linejoin:round}.sketch-model .ground{fill:none;stroke:#B7C0C8;stroke-width:.04;stroke-dasharray:.3 .2}
.sketch-grid label{display:grid;gap:6px;font-size:11px;font-weight:600;color:var(--tekst-zacht)}
.sketch-grid input,.sketch-grid select{width:100%}.sketch-grid input.visually-hidden{width:1px;min-height:0}
.sketch-grid .button{min-height:40px;white-space:nowrap}
#sketch-message{margin-top:10px}#sketch-message:empty{display:none}.sketch-estimate{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-light)}.sketch-estimate>summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--ink);list-style:none;display:flex;align-items:center;gap:10px}.sketch-estimate>summary::-webkit-details-marker{display:none}.sketch-estimate>summary::before{content:"";width:7px;height:7px;border-right:1.5px solid var(--blauw-tekst);border-bottom:1.5px solid var(--blauw-tekst);transform:rotate(-45deg);transition:transform .15s;flex:none}.sketch-estimate[open]>summary::before{transform:rotate(45deg)}.sketch-estimate>.field-help{margin:10px 0 0;max-width:760px}.sketch-estimate-table{margin-top:14px;max-width:760px}.sketch-estimate-table tbody th{white-space:normal;font-weight:500;color:var(--ink);text-align:left;padding-left:0}.sketch-estimate-table tbody th small{display:block;font-size:10px;color:var(--muted);font-weight:400}.sketch-estimate-table td:last-child{font-weight:500;color:var(--muted);white-space:nowrap}.sketch-estimate-table tr.sum td,.sketch-estimate-table tr.sum th{border-top:1px solid var(--line);font-weight:600}.sketch-estimate-table tr.sell td{font-size:14px}.sketch-estimate-table tr.sell td:last-child{font-size:12px}.sketch-estimate .origin-details{margin-top:12px}.sketch-estimate .origin-details ul{max-width:760px}
@media(max-width:1250px){.sketch-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sketch-opening{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.sketch-opening label:nth-child(1){grid-column:span 2}}
@media(max-width:760px){.sketch-head{grid-template-columns:1fr;gap:8px}.sketch-estimate-table th,.sketch-estimate-table td{font-size:11px;padding-left:6px}.sketch-model-row{grid-template-columns:1fr}.sketch-opening{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"soort soort del" "aantal breedte hoogte" "gevel gevel gevel" "x sill sill" "place place place";padding-bottom:10px;border-bottom:1px dashed var(--line-light)}.sketch-opening label:nth-child(1){grid-area:soort}.sketch-opening label:nth-child(2){grid-area:aantal}.sketch-opening label:nth-child(3){grid-area:breedte}.sketch-opening label:nth-child(4){grid-area:hoogte}.sketch-opening label:nth-child(5){grid-area:gevel}.sketch-opening label:nth-child(6){grid-area:x}.sketch-opening label:nth-child(7){grid-area:sill}.sketch-opening label:nth-child(8){grid-area:place}.sketch-opening .row-delete{grid-area:del;justify-self:end}.sketch-estimate-table{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;grid-auto-flow:dense}.sketch-estimate-table thead,.sketch-estimate-table tbody,.sketch-estimate-table tr,.sketch-estimate-table tbody th{display:contents}.sketch-estimate-table thead th:nth-child(1){grid-column:1;grid-row:span 2;align-self:end}.sketch-estimate-table thead th:nth-child(2){grid-column:2;padding-bottom:0;border-bottom:0}.sketch-estimate-table thead th:nth-child(3){grid-column:2;padding-top:0;font-size:9px}.sketch-estimate-table tbody th .label{grid-column:1;grid-row:span 2;align-self:start;padding:8px 0;border-bottom:1px solid var(--paper);font-size:11px;font-weight:500;color:var(--ink)}.sketch-estimate-table tbody th:has(small) .label{grid-row:auto;padding-bottom:2px;border-bottom:0}.sketch-estimate-table tbody th small{grid-column:1;padding:0 0 8px;border-bottom:1px solid var(--paper);font-size:10px;color:var(--muted)}.sketch-estimate-table td{grid-column:2;align-self:start}.sketch-estimate-table td:nth-of-type(1){padding:8px 0 0;border-bottom:0}.sketch-estimate-table td:nth-of-type(2){padding:2px 0 8px;border-bottom:1px solid var(--paper)}.sketch-estimate-table tr.sum .label,.sketch-estimate-table tr.sum td:nth-of-type(1){border-top:1px solid var(--line);font-weight:600}.sketch-estimate-table tr.sum td:nth-of-type(2){border-top:0}.sketch-model{aspect-ratio:4/3}.sketch-estimate-table tr.sell td{font-size:12px}.sketch-estimate-table tr.sell td:last-child{font-size:11px}.sketch-grid{grid-template-columns:1fr 1fr}.sketch-head>p{font-size:11px}}
.rules-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start}
.rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.rules-grid label{display:grid;gap:6px;font-size:11px;font-weight:600;color:var(--tekst-zacht)}
.rules-grid input,.rules-grid select{width:100%}
.rules-grid .button{grid-column:1/-1;justify-self:start;min-height:40px}
.rules-result{border-left:1px solid var(--line);padding-left:28px;font-size:13px;line-height:1.5}
.rules-wkb{border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#fff}
.rules-wkb.gk1{background:var(--green-bg);border-color:var(--green-lijn)}.rules-wkb.geen{background:var(--waarschuwing-bg);border-color:var(--waarschuwing-lijn)}
.rules-wkb-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.rules-wkb h3,.rules-subtitle{font-size:14px;margin:0}
.rules-subtitle{margin:18px 0 8px}
.rules-list{margin:8px 0 0;padding-left:18px;display:grid;gap:6px;color:var(--ink)}
.rules-list li,.rules-deadlines li{overflow-wrap:anywhere}
.rules-deadlines{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rules-deadlines li{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:4px 14px;padding:8px 0;border-bottom:1px solid var(--line)}
.rules-date{white-space:nowrap}
.rules-deadlines li.late .rules-date,.rules-late{color:#a1452f}
.rules-late{grid-column:2;font-size:11px;font-weight:600}
@media (max-width:1000px){.rules-layout{grid-template-columns:1fr}.rules-result{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:18px}}
@media (max-width:760px){.rules-deadlines li{grid-template-columns:1fr}.rules-late{grid-column:1}.rules-wide{grid-column:1/-1}}
/* Keuzelijsten: eigen pijl, zodat Safari (WebKit) dezelfde hoogte en opmaak toont als Chrome */
select{-webkit-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2356675d' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
.sidebar select{padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23e5ecef' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
.calculation-table select{padding-right:18px;background-position:right 5px center}
.exec-panel{margin-top:18px}.exec-panel:first-child{margin-top:0}.exec-panel>.eyebrow{margin-bottom:4px}.exec-intro{color:var(--muted);font-size:13px;margin:6px 0 16px;max-width:640px}
.exec-row{display:grid;grid-template-columns:repeat(2,minmax(0,240px)) max-content;justify-content:start;gap:12px;align-items:end;margin-bottom:16px}
.exec-row label,.exec-grid label,.saw-row label{display:grid;gap:6px;font-size:11px;font-weight:600;color:var(--tekst-zacht)}
.exec-row input,.exec-row select,.exec-grid input,.exec-grid select,.saw-row input{width:100%}
.exec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.exec-wide{grid-column:1/-1}
.exec-grid>.button{grid-column:1/-1;justify-self:start}
.exec-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.exec-summary{border-top:1px solid var(--line);padding-top:14px}
.exec-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.exec-totals div{border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.exec-totals dt{font-size:11px;color:var(--muted)}.exec-totals dd{margin:2px 0 0;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.exec-note{font-size:12px;line-height:1.5;margin-top:10px;padding:9px 12px;border-radius:8px;background:var(--green-bg);border:1px solid var(--green-lijn)}.exec-note.warning{background:var(--waarschuwing-bg);border-color:var(--waarschuwing-lijn)}
.exec-list{display:grid;gap:10px;margin:16px 0}
.exec-item{border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#fff}.exec-item.flagged{border-left:3px solid var(--amber)}
.exec-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.exec-item-head h3{font-size:14px;overflow-wrap:anywhere}
.exec-amount{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
.exec-meta{font-size:12px;color:var(--muted);margin-top:4px}
.exec-flags{font-size:12px;margin-top:8px}
.exec-item-actions{display:flex;gap:18px}.exec-item-actions .text-button{margin-top:10px}.exec-remove{color:var(--red)}
.exec-form{border-top:1px solid var(--line);padding-top:16px}.exec-form h3{margin-bottom:12px}
.exec-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px;align-items:start}.exec-columns .exec-panel{margin-top:0}
.exec-checks{display:grid;gap:4px;margin-bottom:14px}.exec-check{align-items:flex-start;font-size:13px;color:var(--ink);margin-top:4px}.exec-check input{margin-top:3px!important}
#ol-form>.button{margin-top:14px}.exec-count{font-weight:600;margin:4px 0 8px}
#vat-result{margin-top:4px}
.idx-table{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.idx-row{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(0,1fr)) 90px;gap:12px;padding:10px 14px;border-top:1px solid var(--line);font-size:13px;align-items:baseline}
.idx-row:first-child{border-top:0}.idx-header{background:var(--paper);font-size:11px;font-weight:600;color:var(--tekst-zacht)}
.idx-label{display:none}.idx-row.warning .idx-change{color:#a1452f}.idx-change{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.saw-rows{display:grid;gap:10px}
.saw-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) 32px;gap:10px;align-items:end}
.saw-remove{min-height:40px;width:32px;font-size:18px}
.saw-result{display:grid;gap:12px;margin-top:16px}.saw-card{border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.saw-facts{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px}
.saw-details{margin-top:10px;font-size:12px}.saw-details summary{cursor:pointer;color:var(--blauw-tekst);font-weight:600}.saw-bars{margin:8px 0 0;padding-left:20px;display:grid;gap:4px;font-variant-numeric:tabular-nums}
@media (max-width:1000px){.exec-columns{grid-template-columns:1fr}}
@media (max-width:760px){.exec-row{grid-template-columns:1fr 1fr}.exec-row .button{grid-column:1/-1;justify-self:start}.exec-grid{grid-template-columns:1fr}.exec-totals{grid-template-columns:1fr 1fr}.exec-totals div:last-child{grid-column:1/-1}.idx-header{display:none}.idx-row{grid-template-columns:1fr 1fr;gap:4px 12px}.idx-row strong{grid-column:1/-1}.idx-change{text-align:left}.idx-label{display:block;font-size:11px;font-weight:600;color:var(--muted)}.saw-row{grid-template-columns:1fr 1fr 32px}.saw-row label:first-child{grid-column:1/-1}.saw-facts{grid-template-columns:1fr}.exec-item-head{flex-direction:column;gap:4px}}
.werkwijze-panel{margin-bottom:18px}
.ww-seen{color:var(--muted);font-size:12px;white-space:nowrap}
.ww-notes{margin:10px 0 0;padding:10px 0 0 18px;border-top:1px solid var(--line);display:grid;gap:8px;font-size:12px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.ww-notes li.warning{color:var(--waarschuwing)}.ww-subitems{margin:4px 0 4px;padding-left:16px;display:grid;gap:2px;color:var(--ink)}.phase-block .exec-note{overflow-wrap:anywhere}
.ink-rows{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:14px}
.ink-row{border-top:1px solid var(--line);background:#fff}.ink-row:first-child{border-top:0}
.ink-row summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:4px 16px;padding:11px 14px;cursor:pointer;font-size:13px;align-items:baseline}
.ink-row summary::-webkit-details-marker{color:#8C979F}
.ink-row[open] summary{background:#F8F9FA}
.ink-label{font-weight:600;overflow-wrap:anywhere}.ink-state{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.ink-state.filled{color:var(--green)}
.ink-body{padding:12px 14px 14px;border-top:1px solid var(--line)}
.ink-flags{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:10px}
.ink-rows+.button{margin-top:0}
.ink-rows>.field-help{margin:0;padding:9px 14px;border-top:1px solid var(--line);background:#F8F9FA}
@media (max-width:760px){.ink-row summary{grid-template-columns:1fr}.ww-seen{white-space:normal}.ww-notes{padding-left:14px}.ww-subitems{padding-left:12px}}
.preview-empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:11px;color:var(--muted)}
.step-number svg,.row-save svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.page-heading .status-badge{margin-top:8px}

/* Kopie van een project: verschil per onderdeel */
.origin-parts{margin-top:22px}.origin-parts h3{font-size:14px}.origin-parts-table{margin-top:10px}.origin-parts-table td.same{color:var(--muted);font-weight:500}.origin-parts-table tr.changed th{color:var(--ink);font-weight:600}.origin-parts-table td.up,.origin-parts-table td.down{color:var(--blauw-tekst)}.origin-actions{margin-top:18px}

.history-panel .section-heading{margin-bottom:12px}.history-panel .section-heading p{font-size:12px;color:var(--tekst-zacht);margin-top:4px;max-width:70ch}
.history-rows{border-top:1px solid var(--line-light)}
.history-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:11px 0;border-bottom:1px solid var(--line-light)}
.history-row strong{font-size:13px}.history-meta{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.5}
.history-price{text-align:right;min-width:92px}.history-price strong{font-size:13px}.history-index{font-size:10px;color:var(--blauw-tekst);margin-top:4px;max-width:180px}
.history-prices{margin-top:6px}.history-prices td{font-size:11px;padding:4px 8px 4px 0}.history-prices td.num{text-align:right}
.history-check{margin-top:16px}.history-check-table{margin-top:8px}.history-check-table td.num{text-align:right}
@media(max-width:760px){.history-row{grid-template-columns:minmax(0,1fr)}.history-price{text-align:left}.history-index{max-width:none}}

.steel-panel,.material-panel{margin-top:24px}.steel-heading{margin:0 0 16px}.steel-heading p{max-width:70ch}
.steel-block{border-top:1px solid var(--line-light);padding:16px 0 6px}.steel-block:first-child{border-top:0;padding-top:4px}
.steel-block-head{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;gap:14px;align-items:start;margin-bottom:10px}
.steel-name{width:100%;max-width:420px;font-weight:600;font-size:13px;min-height:36px;padding:6px 9px}
.steel-link{display:flex;flex-direction:column;gap:5px;font-size:10px;color:var(--muted);font-weight:600}.steel-link select{font-size:11px;min-height:36px;max-width:260px}
.steel-wrap{border-radius:7px;overflow-x:auto;-webkit-overflow-scrolling:touch}.material-wrap{overflow-x:auto}.steel-table{border-collapse:collapse;width:100%;min-width:560px;font-size:11px;text-align:left}.steel-table thead{background:var(--paper)}.steel-table th{padding:9px 8px;font-size:9px;color:var(--muted);font-weight:650;white-space:nowrap}
.steel-table td{padding:5px 8px;border-top:1px solid var(--line-light);vertical-align:middle}.steel-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.steel-table input{min-height:32px;padding:5px 7px;font-size:11px}.steel-code{width:86px}.steel-aantal{width:64px}.steel-lengte_mm{width:84px}
.steel-cell{font-size:9px;color:var(--muted);white-space:nowrap}.steel-changed td{background:var(--blauw-licht)}.steel-unknown td.num{color:var(--waarschuwing)}.steel-warning td{font-size:10px;color:var(--waarschuwing);background:var(--waarschuwing-bg);border-top:0;padding:4px 8px 8px}
.steel-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:10px;flex-wrap:wrap}.steel-totals{font-size:11px;color:var(--tekst-zacht);font-variant-numeric:tabular-nums}
.row-steel{color:var(--blauw-tekst)}.row-steel-link{background:none;border:0;padding:0 0 0 6px;color:var(--blauw-tekst);font-size:9px;font-weight:600;text-decoration:underline}
.material-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:4px}.material-panel h3{font-size:13px;margin-bottom:8px}.material-other-title{margin-top:22px}
.material-table{margin-top:6px;font-size:11px}.material-table th:first-child{font-weight:600;color:var(--ink)}.material-table td,.material-table th{padding:7px 0 7px 10px}.material-table tbody th:first-child,.material-table thead th:first-child{padding-left:0}.material-table thead th{text-transform:none;letter-spacing:0;font-size:10px}
.sheet-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:10px 0;border-bottom:1px solid var(--line-light);align-items:start}.sheet-row strong{font-size:12px}
.sheet-size{display:flex;gap:8px}.sheet-size label{display:flex;flex-direction:column;gap:3px;font-size:9px;color:var(--muted);font-weight:600}.sheet-size input{width:76px;min-height:32px;padding:5px 7px;font-size:11px}
.sheet-result{grid-column:1/-1;font-size:11px;color:var(--blauw-tekst);margin-top:-2px}
@media(max-width:1250px){.material-grid{grid-template-columns:1fr}}
@media(max-width:760px){.steel-block-head{grid-template-columns:minmax(0,1fr) 28px}.steel-link{grid-column:1/-1}.steel-link select{max-width:none}.sheet-row{grid-template-columns:1fr}.steel-heading{align-items:flex-start}}
.material-table tbody tr:last-child td,.material-table tbody tr:last-child th{font-size:11px}
@media(max-width:760px){.material-table tr:last-child td,.material-table tr:last-child th{font-size:11px}.material-table td,.material-table th{font-size:11px}.material-other-table th:nth-child(2),.material-other-table td:nth-child(2){display:none}.steel-block-head{grid-template-columns:minmax(0,1fr) 28px}.steel-block-head .steel-link{order:3}.steel-table{min-width:0}.steel-table input{padding:5px 6px}.steel-table th,.steel-table td{padding:5px 4px}.steel-table td.num{font-size:10px}.steel-cell{display:none}}
@media(max-width:760px){.steel-table th:nth-child(6),.steel-table td:nth-child(6),.steel-table th:nth-child(4),.steel-table td:nth-child(4){display:none}.steel-table th,.steel-table td{padding:5px 3px}.steel-table th:first-child,.steel-table td:first-child{padding-left:6px}.steel-table .steel-code{width:66px}.steel-table .steel-aantal{width:44px}.steel-table .steel-lengte_mm{width:58px}.steel-table td.num{font-size:10px}.steel-table th{font-size:8px}.steel-table .row-delete{width:22px;padding:2px}}
/* Offerte */
.offerte-panel{margin-top:16px}.offerte-state{font-size:11px;color:var(--muted);margin-top:10px}.offerte-state-wacht{color:var(--waarschuwing)}
.export-actions .button.is-disabled{opacity:.5;cursor:not-allowed}
.offerte-dialog{max-width:560px}.offerte-dialog textarea{width:100%;font-size:12px;line-height:1.6}.offerte-dialog .dialog-fields{margin-top:0}
@media(max-width:600px){.offerte-dialog .dialog-fields{grid-template-columns:1fr;gap:0}}
.row-category{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.row-category:focus{text-overflow:clip}
/* v3 — tabbladen, compacte posten met Details, tariefkaart per kostensoort, materiaalschatting uit de schets */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tab{appearance:none;-webkit-appearance:none;border:0;background:none;padding:10px 14px 11px;font-size:12px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;gap:7px;align-items:center;border-radius:0;line-height:1.3}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:var(--blauw-tekst);border-bottom-color:var(--blauw)}
.tab-count{font-size:10px;font-weight:600;color:var(--muted);background:var(--paper);border-radius:9px;padding:1px 7px}
.tab[aria-selected="true"] .tab-count{background:var(--blauw-licht);color:var(--blauw-tekst)}
.page-tabs{margin-bottom:4px}
#calc-pane-lines .rows-heading{margin-top:18px}
#calc-pane-steel .steel-panel{margin-top:18px}
.scope-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;font-size:11px}
.scope-bar .field-label{margin:0;font-size:11px}
.scope-bar select{min-height:34px;padding:5px 26px 5px 9px;font-size:11px;width:auto}
.scope-bar .field-help{margin:0;flex:1 1 220px}
.calculation-table th{padding:10px 10px}
.calculation-table td{padding:9px 8px}
.calculation-table td.cell-description{min-width:330px}
.row-head{display:flex;gap:8px;align-items:flex-start}
.row-badges{display:flex;flex-direction:column;gap:3px;flex-shrink:0;padding-top:4px}
.row-badges .certainty{margin:0;white-space:nowrap}
.calculation-table .row-description{flex:1;min-width:200px;max-width:none;min-height:30px;padding:5px 8px;line-height:1.4;overflow:hidden;resize:none}
.row-meta{display:flex;gap:8px;align-items:center;margin-top:4px;font-size:9px;color:var(--muted);flex-wrap:wrap}
.row-toggle{background:none;border:0;padding:0;color:var(--blauw-tekst);font-size:9px;font-weight:650;display:inline-flex;gap:3px;align-items:center}
.row-toggle-mark{display:inline-block;transition:transform .15s}
.row-open .row-toggle-mark{transform:rotate(180deg)}
.row-meta-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px}
.row-meta-notes{color:var(--muted)}
.row-meta-notes.warn{color:var(--waarschuwing);font-weight:650}
.row-details{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px 20px;margin-top:10px;padding:12px 14px;background:var(--paper);border-radius:8px;font-size:10px}
.row-details-two{grid-template-columns:1.2fr 1fr}
.row-pane{min-width:0}
.row-pane h4{font-size:11px;font-weight:600;color:var(--muted);margin:0 0 7px;font-family:var(--sans)}
.row-field{display:block;margin-bottom:6px}
.row-field>span{display:block;font-size:9px;color:var(--muted);margin-bottom:2px}
.row-basis{display:grid;grid-template-columns:1fr;gap:2px;max-width:none;margin:0}
.calculation-table .row-basis select,.calculation-table .row-basis input{width:100%;min-width:0;font-size:10px;min-height:32px}
.calculation-table input.row-category{border:1px solid var(--line);border-radius:7px;background:#fff;padding:6px 8px;margin:0;color:var(--ink);font-weight:500;white-space:nowrap}
.row-pane .row-source,.row-pane .row-origin,.row-pane .source-excerpt{margin-top:0;max-width:none;font-size:10px}
.row-pane .row-origin{margin-top:5px}
.row-excerpt-label{display:block;font-size:9px;color:var(--muted);margin-top:7px}
.row-pane .source-excerpt p{margin-top:3px;background:#fff;padding:7px;border-radius:5px}
.row-pane .row-notes{margin:0;max-width:none;font-size:10px;padding-left:14px}
.calculation-table .row-confirm{font-size:8px}
@media(max-width:1250px){.row-details,.row-details-two{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.row-details,.row-details-two{grid-template-columns:1fr;padding:10px 12px}.row-toggle{min-height:40px;font-size:11px}.row-meta{font-size:10px}.row-meta-text{white-space:normal;max-width:none}.row-head{flex-direction:column;align-items:stretch}.row-badges{flex-direction:row;flex-wrap:wrap}.calculation-table .row-description{width:100%;font-size:13px;min-height:40px}.tab{padding:12px 10px;font-size:12px;flex:1 1 auto;justify-content:center}.scope-bar select{flex:1 1 100%}.row-field>span{font-size:10px}}
#rate-groups .rate-group{padding:14px 20px 16px}
.rate-group-heading{margin-bottom:2px}
.rate-head,.rate-row{display:grid;grid-template-columns:minmax(150px,2fr) 84px 104px minmax(120px,1.6fr) 28px;gap:10px;align-items:center}
.rate-head{font-size:9px;font-weight:650;color:var(--muted);padding:8px 0 6px;border-bottom:1px solid var(--line-light)}
.rate-row{padding:7px 0 6px;margin:0;border-top:1px solid var(--line-light);align-items:start}
.rate-head+.rate-row{border-top:0}
.rate-field{display:block}
.rate-field>span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.rate-row input,.rate-row select{min-height:34px;padding:6px 9px;font-size:11px;width:100%}
.rate-row select{padding-right:22px}
.rate-row .rate-delete{margin:3px 0 0}
.rate-source{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:9px;color:var(--muted);margin-top:-2px}
.rate-confirm{font-size:10px}
@media(max-width:760px){.rate-head{display:none}.rate-row{grid-template-columns:1fr 1fr 28px;gap:8px;padding:10px 0}.rate-field>span{position:static;width:auto;height:auto;margin:0 0 3px;clip:auto;display:block;font-size:9px;color:var(--muted)}.rate-row .rate-name-field,.rate-row .rate-note-field{grid-column:1/3}.rate-row .rate-delete{grid-column:3;grid-row:1}}
.material-sketch{margin:4px 0 22px;padding-bottom:18px;border-bottom:1px solid var(--line-light)}
.material-sketch h3{margin-bottom:4px}
.material-sketch-table{margin-top:10px}
.material-sketch-table th[scope=row]{white-space:nowrap;vertical-align:top}
.material-sketch-table td{vertical-align:top}
.material-step{color:var(--muted);font-size:10px}
.steel-unknown td{color:var(--muted)}
.material-sketch-group th{background:var(--paper);font-size:10px;padding:7px 8px}
.material-sketch-cost{display:block;font-weight:500;color:var(--muted);margin-top:2px}
.calc-sketch{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-light)}
.calc-sketch .eyebrow{margin-bottom:6px}

/* v4 — rustige postenregel: één regel per post, status in de samenvatting, details over de volle breedte, compacte kaart op de telefoon */
.calculation-table th{padding:8px 8px;font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap}
.calculation-table td{padding:8px 8px;min-width:0}
.calculation-table td.cell-include{width:72px;padding-top:12px}
@media(min-width:761px){.calculation-table{table-layout:fixed}.calculation-table th:nth-child(1){width:72px}.calculation-table th:nth-child(3){width:96px}.calculation-table th:nth-child(4){width:88px}.calculation-table th:nth-child(5){width:96px}.calculation-table th:nth-child(6){width:64px}.calculation-table th:nth-child(7){width:116px}.calculation-table th:nth-child(8){width:64px}}
.calculation-table td.cell-description{min-width:0}
.calculation-table td.cell-quantity{width:96px}.calculation-table td.cell-unit{width:88px}.calculation-table td.cell-price{width:96px}
.calculation-table td.cell-confirm{width:64px;text-align:center}.calculation-table td.cell-amount{width:116px}.calculation-table td.cell-actions{width:64px}
.row-head{display:block;min-width:0}
.calculation-table .row-description{width:100%;min-width:0;font-size:12px;font-weight:500;padding:5px 8px;min-height:30px;line-height:1.4}
.row-meta{margin-top:3px;font-size:10px;gap:0 10px;line-height:1.6}
.row-meta .certainty{border:0;padding:0;margin:0;background:none;font-size:10px;font-weight:500;letter-spacing:0;line-height:inherit}
.row-meta-text{white-space:normal;max-width:none}
.row-meta .certainty.plain{color:var(--muted)}
.row-status{font-weight:650;color:var(--waarschuwing)}
.row-status.missing{color:var(--red)}
.row-error{display:none}
.calculation-table .row-confirm{display:flex;justify-content:center;padding-top:7px;min-height:0}
.calculation-table .row-confirm span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.calculation-table .row-confirm input{width:16px;height:16px;margin:0}
.row-amount{padding-top:8px;font-size:12px}
.row-actions{display:flex;gap:4px;justify-content:flex-end;padding-top:3px}
.calculation-table .row-quantity,.calculation-table .row-price,.calculation-table .row-unit{min-height:31px;padding:5px 8px;font-size:11px}
.calculation-table .row-unit{padding-right:22px}
.row-details{position:relative;box-sizing:border-box;grid-template-columns:minmax(220px,1fr) minmax(240px,1.3fr) minmax(240px,1.3fr);gap:12px 28px;padding:14px 16px;margin-top:10px}
.row-details-two{grid-template-columns:minmax(220px,1fr) 2fr}
.row-pane .source-excerpt p{max-width:none}
@media(max-width:1250px){.row-details,.row-details-two{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
.calculation-table tr{grid-template-columns:22px 1fr 1fr 1fr;gap:8px 10px;padding:12px 12px 10px}
.calculation-table td{padding:0;border:0}
.calculation-table td.cell-include{width:auto;padding:0;min-height:0}
.calculation-table td.cell-include:before{font-size:10px}
.calculation-table tr{grid-template-areas:"inc desc desc desc" "qty qty unit price" "conf conf amount act"}.calculation-table td.cell-include{grid-area:inc;align-self:start;margin-top:12px}.calculation-table td.cell-include:before{display:none}.calculation-table td.cell-description{min-width:0;grid-area:desc}
.calculation-table td.cell-quantity,.calculation-table td.cell-unit,.calculation-table td.cell-price,.calculation-table td.cell-confirm,.calculation-table td.cell-amount,.calculation-table td.cell-actions{width:auto}
.calculation-table td.cell-confirm{text-align:left}.calculation-table td.cell-confirm:before{display:none}
.calculation-table td.cell-quantity{grid-area:qty}.calculation-table td.cell-unit{grid-area:unit}.calculation-table td.cell-price{grid-area:price}.calculation-table td.cell-confirm{grid-area:conf}.calculation-table td.cell-amount{grid-area:amount}.calculation-table td.cell-actions{grid-area:act}
.calculation-table .row-description{font-size:13px;min-height:38px}
.calculation-table .row-confirm{justify-content:flex-start;gap:8px;padding-top:0;min-height:40px;align-items:center}
.calculation-table .row-confirm span{position:static;width:auto;height:auto;margin:0;clip:auto;font-size:11px}
.calculation-table .row-confirm input{width:18px;height:18px}
.row-amount{text-align:left;font-size:14px;padding-top:0}
.row-actions{padding-top:0}
.row-details,.row-details-two{margin-left:0!important;width:auto!important;grid-template-columns:1fr}
.calculation-table .row-quantity,.calculation-table .row-price,.calculation-table .row-unit{min-height:40px;font-size:13px}
}

/* v4 — Fasen: links de stappenlijst per fase, rechts de gekozen stap; geen wolk van knoppen */
.phase-main{grid-template-columns:272px minmax(0,1fr);gap:18px 22px;align-items:start}
.phase-facts{grid-column:1/-1;padding:12px 18px;gap:20px}
.phase-facts-text{font-size:12px}
.phase-overview{grid-column:1;grid-row:2/span 3;grid-template-columns:1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:4px 0 6px;position:sticky;top:16px}
.phase-card{border:0;border-radius:0;padding:10px 10px 6px;background:none}
.phase-card+.phase-card{border-top:1px solid var(--line-light)}
.phase-card-head{margin:0 6px 4px;align-items:baseline}
.phase-card-head h2{font-size:12px;font-weight:650;letter-spacing:0;color:var(--muted);font-family:var(--sans)}
.phase-card-count{font-size:10px;color:var(--muted)}
.phase-pills{display:grid;gap:1px}
.phase-pill{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:9px;align-items:center;width:100%;min-height:34px;padding:5px 8px 5px 6px;border:0;border-radius:7px;background:none;font-size:13px;white-space:normal;text-align:left;box-shadow:none}
.phase-pill:hover{background:var(--paper)}
.phase-pill.bezig,.phase-pill.klaar{background:none;border:0}
.phase-pill.active{background:var(--blauw-licht);box-shadow:none;font-weight:600;color:var(--blauw-tekst)}
.phase-pill-state{font-size:10px;font-weight:600;color:var(--muted)}
.phase-pill.klaar .phase-pill-state{color:var(--green)}
.phase-pill.bezig .phase-pill-state{color:var(--waarschuwing)}
.phase-pill-number{width:22px;height:22px;font-size:10px}
.phase-detail,#rules-panel{grid-column:2;padding:22px 26px 20px}
.phase-detail-head{margin-bottom:16px;padding-bottom:14px;gap:16px}
.phase-detail-head h2{font-size:21px}
.phase-detail-info{font-size:13px;margin-top:4px}
.status-option{padding:7px 14px;min-height:34px;font-size:12px}
.phase-block-head h3{font-size:13px}
.phase-count{font-size:11px;color:var(--muted)}
.phase-check{min-height:38px;padding:5px 4px;font-size:13px;gap:10px}
.phase-body{gap:24px}
.phase-aside{padding:12px 14px;font-size:12px}
.phase-aside h3{font-size:12px;margin-bottom:6px}
.phase-history{margin-top:18px;padding-top:10px}
.phase-history summary{font-size:12px}
.phase-pager{grid-column:2;display:flex;justify-content:space-between;gap:10px;margin-top:-4px}
.phase-pager .button{font-size:12px;min-height:36px;padding:7px 14px}
.phase-pager #phase-next{background:#fff;color:var(--blauw-tekst);border:1px solid var(--line)}
.phase-pager #phase-next:hover{border-color:var(--blauw-lijn);background:var(--blauw-licht)}
#phase-message{grid-column:2}
@media(max-width:1180px){.phase-main{grid-template-columns:236px minmax(0,1fr)}.phase-overview>.phase-card:first-child{grid-column:auto}.phase-facts{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.phase-main{grid-template-columns:1fr}.phase-overview,.phase-detail,#rules-panel,.phase-pager,#phase-message{grid-column:1}.phase-overview{position:static;display:grid;grid-row:auto;grid-template-columns:1fr}.phase-card{padding:8px 8px 4px}.phase-pills{grid-template-columns:1fr 1fr;gap:1px 6px}.phase-pill{min-height:38px;grid-template-columns:22px minmax(0,1fr)}.phase-pill-state{display:none}.phase-detail{padding:18px 16px}.phase-facts{grid-template-columns:1fr;gap:10px}}
.phase-detail-bare .phase-detail-head{border-bottom:0;margin-bottom:0;padding-bottom:0}

/* v4 — tariefkaart: compacte regels */
.rates-intro{padding:0 2px 2px}
.rates-intro p{font-size:12px;color:var(--muted);max-width:720px}
.rate-row{padding:5px 0 5px}
.rate-row input,.rate-row select{min-height:31px;padding:4px 8px;font-size:11px}
.rate-source{margin-top:-1px;font-size:9px}
#rate-groups .rate-group{padding:12px 18px 12px}
.rate-group-heading h2{font-size:14px}

.material-sketch-table{width:100%;table-layout:fixed;min-width:0}
.material-sketch-table th,.material-sketch-table td{white-space:normal;overflow-wrap:anywhere}
.material-sketch-table thead th:nth-child(1){width:34%}.material-sketch-table thead th:nth-child(2){width:20%}
.material-sketch-table td.num{text-align:left;white-space:normal}
.material-sketch-table th[scope=row]{white-space:normal}

/* Materiaalstaat uit de schets op de telefoon: per onderdeel een blok, geen drie smalle kolommen. */
@media(max-width:760px){
.material-sketch-table,.material-sketch-table tbody,.material-sketch-table tr{display:block;width:100%}
.material-sketch-table thead{display:none}
.material-sketch-table tbody tr{padding:8px 0;border-bottom:1px solid var(--line-light)}
.material-sketch-table tbody tr.material-sketch-group{padding:0;border-bottom:0}
.material-sketch-table tbody th[scope=row],.material-sketch-table tbody td{display:block;padding:0;border:0;text-align:left;overflow-wrap:normal}
.material-sketch-table tbody th[scope=row]{font-weight:600}
.material-sketch-table tbody td.num{margin-top:2px}
.material-sketch-table tbody td.material-step{margin-top:2px;font-size:12px;color:var(--muted)}
.material-sketch-table tr.material-sketch-group th{display:block;padding:7px 8px;overflow-wrap:normal}
}

/* v5 — rustiger register: stille velden in tabellen (rand pas bij aanwijzen of invullen), één metaregel per post, lichte totalenkaart, kleinere kop */
h1{font-size:26px}
.page-heading{margin-bottom:24px}
.section-heading{margin:22px 0 14px}
.calculation-table input[type=text],.calculation-table select,.calculation-table textarea,.rate-row input,.rate-row select{border-color:transparent;background:transparent;box-shadow:none;transition:border-color .12s,background-color .12s}
.calculation-table input[type=text]:hover,.calculation-table select:hover,.calculation-table textarea:hover,.rate-row input:hover,.rate-row select:hover{border-color:var(--line);background:#fff}
.calculation-table input[type=text]:focus,.calculation-table select:focus,.calculation-table textarea:focus,.rate-row input:focus,.rate-row select:focus{border-color:var(--blauw);background:#fff;box-shadow:0 0 0 3px var(--blauw-licht)}
.calculation-table input[type=text]:disabled,.calculation-table select:disabled{background:transparent;color:var(--tekst-zacht);border-color:transparent}
.calculation-table input[type=text]::placeholder,.rate-row input::placeholder{color:#AEB7BF}
.calculation-table .row-quantity,.calculation-table .row-price{text-align:right;font-variant-numeric:tabular-nums}
.calculation-table .row-quantity:placeholder-shown,.calculation-table .row-price:placeholder-shown,.rate-row.rate-empty .rate-price{border-style:dashed;border-color:var(--line);background:transparent}
.rate-row.rate-unconfirmed .rate-price{background:var(--waarschuwing-bg);border-color:var(--waarschuwing-lijn)}
.rate-row .rate-price{text-align:right;font-variant-numeric:tabular-nums}
.calculation-table select{background-color:transparent}
@media(min-width:761px){
.calculation-table th:nth-child(1){width:60px}.calculation-table th:nth-child(3){width:88px}.calculation-table th:nth-child(4){width:80px}.calculation-table th:nth-child(5){width:88px}.calculation-table th:nth-child(6){width:56px}.calculation-table th:nth-child(7){width:108px}.calculation-table th:nth-child(8){width:56px}
.calculation-table td.cell-include{width:60px}.calculation-table td.cell-quantity{width:88px}.calculation-table td.cell-unit{width:80px}.calculation-table td.cell-price{width:88px}.calculation-table td.cell-confirm{width:56px}.calculation-table td.cell-amount{width:108px}.calculation-table td.cell-actions{width:56px}
.calculation-table td{padding:6px 6px}
.calculation-table td.cell-include{padding-top:10px}
.calculation-table .row-description{padding:5px 6px}
}
.row-meta{margin-top:1px;font-size:10px;gap:0 8px;line-height:1.5;color:var(--muted)}
.row-meta>*+*:before{content:"·";margin-right:8px;color:#B5BEC6}
.row-meta .row-toggle+*:before,.row-meta-text:before{content:"·"}
.row-status{font-weight:600}
.row-meta-notes{display:none}
.calculation-table .row-amount{font-weight:600}
/* Totalenkaart: licht, zoals de andere kaarten */
.totals-card{background:#fff;color:var(--tekst-zacht);border:1px solid var(--line);box-shadow:var(--shadow);padding:20px 20px 18px}
.totals-card .eyebrow{color:var(--muted);margin-bottom:14px}
.totals-card .breakdown{border-bottom-color:var(--line-light);margin-bottom:10px}
.totals-card .breakdown *{color:var(--tekst-zacht)}
.totals-card .breakdown strong{color:var(--ink)}
.total-line{color:var(--tekst-zacht);margin:9px 0;font-size:11px}
.total-line strong{color:var(--ink)}
.selling-total{border-top-color:var(--line);padding-top:14px;margin-top:14px}
.selling-total span{color:var(--muted)}
.selling-total strong{color:var(--diep);font-size:24px}
.selling-total strong.incomplete{color:var(--muted);font-size:20px}
.totals-card>p:not(.eyebrow),.totals-note{color:var(--muted)}
.calc-sketch{border-top-color:var(--line-light)}
.calc-sketch .eyebrow{color:var(--muted)}
/* Tariefkaart */
.rates-intro{display:none}
.rate-row{padding:3px 0}
.rate-source{font-size:9px;margin-top:0;padding-left:9px}
@media(max-width:760px){
.calculation-table input[type=text],.calculation-table select,.calculation-table textarea,.rate-row input,.rate-row select{border-color:var(--line);background:#fff}
.calculation-table input[type=text]:disabled,.calculation-table select:disabled{background:var(--paper)}
.row-meta>*+*:before{content:none;margin:0}
.row-meta-text:before{content:none}
.row-meta{gap:2px 8px}
}
/* v5 — kopcellen passen; scheidingsteken ná elk metadeel (bij afbreken staat het aan het eind van de regel) */
@media(min-width:761px){
.calculation-table th:nth-child(1),.calculation-table td.cell-include{width:72px}
.calculation-table th:nth-child(6),.calculation-table td.cell-confirm{width:68px}
.calculation-table th:nth-child(7),.calculation-table td.cell-amount{width:104px}
}
.row-meta>*+*:before,.row-meta .row-toggle+*:before,.row-meta-text:before{content:none;margin:0}
.row-meta>*+*:before{content:"·";margin-right:8px;color:#B5BEC6;font-weight:400}
.row-meta>*:empty:before,.row-meta>[hidden]+*:before{content:none;margin:0}

/* v6 — ontwerpronde 4 november: gedeelde maten (koppen 28/18/14, marges 24/16, knoppen 34/44), samenvatting en 3D-model bij Posten,
   vaste kopregel, bewerkbare velden met een rustige onderstreping, status per post, Fasen met volgende actie, tariefregels van 40 px */
h1{font-size:28px}h2{font-size:18px}h3{font-size:14px}
main{padding:24px 24px 0}.topbar{padding:0 24px}
.page-heading{margin-bottom:20px}.section-heading{margin:20px 0 12px}
.button{min-height:34px;padding:7px 14px}.button.compact{min-height:32px;padding:6px 11px}
.panel{box-shadow:none}
@media(max-width:760px){main{padding:16px 16px 0}.topbar{padding:0 16px}.page-heading{margin-bottom:16px}.button.primary,.save-bar .button,.phase-pager .button,.row-save,.row-delete,.rate-add{min-height:44px}}

/* Samenvatting boven de postentabel */
.calc-summary{display:grid;grid-template-columns:1.1fr .8fr 1fr;padding:0;overflow:hidden;margin:0 0 14px}
.calc-summary-cell{min-width:0;display:flex;flex-direction:column;gap:2px;padding:10px 16px;text-align:left;background:none;border:0;border-radius:0;font:inherit;color:var(--ink);line-height:1.3}
.calc-summary-cell+.calc-summary-cell{border-left:1px solid var(--line)}
.calc-summary-cell>span{font-size:11px;color:var(--muted)}
.calc-summary-cell strong{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--diep);overflow-wrap:anywhere}
.calc-summary-review{cursor:pointer;transition:background .12s}.calc-summary-review:hover:not(:disabled){background:var(--paper)}
.calc-summary-review[aria-pressed=true]{background:var(--blauw-licht)}.calc-summary-review:disabled{cursor:default}
.calc-summary-review strong{font-size:13px;display:inline-flex;align-items:center;gap:7px;color:var(--blauw-tekst)}
.calc-summary-review:disabled strong{color:var(--tekst-zacht)}
.calc-summary-dot{width:7px;height:7px;border-radius:50%;background:var(--oranje);flex:none}
.calc-summary-review.clean .calc-summary-dot{background:var(--green)}
.calc-summary-arrow{color:var(--muted)}.calc-summary-review:disabled .calc-summary-arrow{display:none}
.calc-summary-review:focus-visible{outline:2px solid var(--blauw);outline-offset:-2px}
@media(max-width:760px){.calc-summary{grid-template-columns:1fr 1fr;margin-bottom:12px}.calc-summary-cell{padding:8px 12px}.calc-summary-cell strong{font-size:15px}.calc-summary-review{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);flex-direction:row;justify-content:space-between;align-items:center;min-height:44px}}

/* Postentabel: vaste kopregel, regels van ongeveer 44 px, prijsbasis naast het tarief */
@media(min-width:761px){
.table-wrap{overflow:visible}
.calculation-table{min-width:0}
.calculation-table thead th{position:sticky;top:69px;z-index:3;background:var(--paper);box-shadow:inset 0 -1px 0 var(--line)}
.calculation-table thead th:first-child{border-top-left-radius:9px}.calculation-table thead th:last-child{border-top-right-radius:9px}
.calculation-table th:nth-child(1),.calculation-table td.cell-include{width:76px;padding-left:10px}
.calculation-table th:nth-child(3),.calculation-table td.cell-quantity{width:84px}
.calculation-table th:nth-child(4),.calculation-table td.cell-unit{width:72px}
.calculation-table th:nth-child(5),.calculation-table td.cell-price{width:118px}
.calculation-table th:nth-child(6),.calculation-table td.cell-confirm{width:64px}
.calculation-table th:nth-child(7),.calculation-table td.cell-amount{width:98px}
.calculation-table th:nth-child(8),.calculation-table td.cell-actions{width:54px}
.calculation-table td.cell-description{width:auto}
.calculation-table .row-description{max-width:none;min-width:0;width:100%;min-height:24px}
.row-meta{flex-wrap:nowrap;white-space:nowrap;overflow:hidden;min-width:0;gap:0 8px;margin-top:2px;line-height:1.3}
.row-meta-text{flex:0 1 auto;min-width:0;max-width:none;overflow:hidden;text-overflow:ellipsis}
.row-status,.row-meta-notes,.row-unsaved,.row-toggle{flex:none}
.calculation-table th{padding:7px 6px}
.calculation-table td{padding:4px 6px 5px}
.calculation-table td.cell-include{padding-top:9px}
.calculation-table .row-description{padding:3px 6px;line-height:1.35}
.calculation-table .row-quantity,.calculation-table .row-price,.calculation-table .row-unit{min-height:28px;padding:3px 6px;font-size:11px}
.calculation-table .row-unit{padding-right:18px}
.calculation-table .row-amount{padding-top:6px;text-align:right;font-variant-numeric:tabular-nums}
.calculation-table th:nth-child(3),.calculation-table th:nth-child(5),.calculation-table th:nth-child(7){text-align:right}
.calculation-table td.cell-quantity{text-align:right}
.calculation-table td.cell-confirm .row-confirm{justify-content:center;padding-top:5px}
.calculation-table td.cell-actions .row-actions{padding-top:1px}
}
.row-meta{margin-top:0;line-height:1.3}
.row-pane-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row-pane-head h4{margin:0}
.row-rate-note{font-size:10px;color:var(--muted);margin-top:6px;line-height:1.5}
.row-price-wrap{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0}
.row-price-wrap input{flex:1;min-width:0}
.row-price-euro,.row-price-basis{font-size:10px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.row-price-wrap input:disabled+.row-price-basis{color:var(--tekst-zacht)}
.row-status.missing{color:var(--waarschuwing)}.row-status.zero{color:var(--red)}
.row-unsaved{color:var(--blauw-tekst);font-weight:600}
.calculation-table tr.row-dirty td:first-child{box-shadow:inset 3px 0 0 var(--blauw)}
.calculation-table tr.needs-review.row-dirty td:first-child{box-shadow:inset 3px 0 0 var(--blauw)}

/* Bewerkbare velden: rustige onderstreping; aangewezen of actief een duidelijke rand; gekoppeld tarief en bedrag als vaste waarde */
@media(min-width:761px){
.calculation-table input[type=text],.calculation-table textarea,.calculation-table select,.rate-row input:not([type=checkbox]),.rate-row select{border-color:transparent;border-bottom-color:#AEB9C3;border-radius:4px 4px 0 0;background:transparent;box-shadow:none}
.calculation-table input[type=text]:hover:not(:disabled),.calculation-table textarea:hover,.calculation-table select:hover:not(:disabled),.rate-row input:not([type=checkbox]):hover,.rate-row select:hover{border-color:var(--line);border-bottom-color:var(--blauw-tekst);background:#fff;border-radius:6px}
.calculation-table input[type=text]:focus,.calculation-table textarea:focus,.calculation-table select:focus,.rate-row input:not([type=checkbox]):focus,.rate-row select:focus{border-color:var(--blauw);border-bottom-color:var(--blauw);background:#fff;box-shadow:0 0 0 3px var(--blauw-licht);border-radius:6px}
.calculation-table input[type=text]:disabled,.calculation-table select:disabled{border-color:transparent;background:transparent;background-image:none;color:var(--ink);opacity:1;padding-right:6px}
.calculation-table .row-quantity:placeholder-shown,.calculation-table .row-price:placeholder-shown,.rate-row.rate-empty .rate-price{border-style:solid;border-bottom-style:dashed;border-color:transparent;border-bottom-color:#AEB9C3}
}
.calculation-table [aria-invalid=true],.calculation-table [aria-invalid=true]:hover,.calculation-table [aria-invalid=true]:focus{border:1px solid var(--red)!important;background:#FDF4F3!important;border-radius:6px}
.calculation-table .is-empty,.calculation-table .is-empty:hover{border:1px dashed #C9A24B!important;background:#FFFBF2;border-radius:6px}
@media(max-width:760px){.calculation-table .row-amount{font-size:14px}.row-price-wrap{justify-content:flex-start}.row-price-wrap input{flex:1 1 auto;min-width:0;width:auto}}

/* Zijkolom: modelkaart, totalen, schetsraming; de tabel krijgt voorrang bij smallere schermen */
.calculation-layout{gap:18px;grid-template-columns:minmax(0,1fr) 260px}
@media(min-width:1500px){.calculation-layout{grid-template-columns:minmax(0,1fr) 280px}}
.calculation-side{gap:14px}
.model-card{padding:14px 14px 12px}
.side-card{padding:0}.side-summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px}.side-summary::-webkit-details-marker{display:none}.side-title{display:flex;flex-direction:column;gap:2px;min-width:0;padding-left:17px;position:relative;font-family:var(--serif);font-weight:600;font-size:14px;color:var(--ink);line-height:1.35}.side-title::before{content:"";position:absolute;left:1px;top:7px;width:7px;height:7px;border-right:1.5px solid var(--blauw-tekst);border-bottom:1.5px solid var(--blauw-tekst);transform:rotate(-45deg);transition:transform .15s}.side-card[open] .side-title::before{transform:rotate(45deg)}.side-title .model-meta{font-family:var(--sans);font-weight:400;margin:0}.side-body{padding:0 14px 12px}.side-card[open]>.side-summary{border-bottom:1px solid var(--line-light);margin-bottom:10px}.calc-sketch-card .side-body{padding:0 18px 14px}.calc-sketch-card .side-summary{padding:12px 18px}.price-panel{padding:16px 18px 14px}.price-panel h2{font-size:14px;margin-bottom:12px}.price-panel .field-help{margin:8px 0 12px}.price-grid{display:grid;grid-template-columns:1fr;gap:10px}.price-grid .field-label{margin-top:0}.price-panel select,.price-panel input{min-height:36px}.price-actions{display:flex;flex-direction:column;gap:8px}.price-actions .text-button{margin-top:4px;align-self:flex-start}.price-panel #apply-rates-button{margin-bottom:12px}.model-card .model-tools{gap:14px;margin-top:8px}.model-card .model-tools .button{min-height:0;padding:0;border:0;background:none;color:var(--blauw-tekst);font-size:11px;font-weight:600}.model-card .model-tools .button:hover{text-decoration:underline}
.model-card h2{font-size:14px}
.model-meta,.model-help{font-size:11px;color:var(--muted);line-height:1.45;margin-top:3px}
.model-card .sketch-model,.model-dialog .sketch-model{display:block;width:100%;max-width:none;height:auto;aspect-ratio:5/3;margin-top:0;border:1px solid var(--line);border-radius:7px;background:#F7FAFB;touch-action:none}
.model-card .sketch-model .wall-name{font-size:.75px}
.model-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.model-dirty{margin-top:10px;padding:10px 12px;border:1px solid var(--waarschuwing-lijn);background:var(--waarschuwing-bg);border-radius:8px;font-size:12px;color:var(--waarschuwing);display:grid;gap:8px;justify-items:start}
.model-dirty p{margin:0;line-height:1.45}
.model-dialog{width:min(1100px,94vw);max-width:none;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px 16px;background:#fff;color:var(--ink)}
.model-dialog::backdrop{background:rgba(11,58,85,.35)}
.model-dialog-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.model-dialog-head h2{font-size:18px}
.model-dialog .sketch-model{aspect-ratio:16/9;max-height:68vh;border-radius:8px}
.model-dialog .sketch-model .wall-name{font-size:.5px}
.calc-sketch{margin-top:0;padding-top:0;border-top:0}
.calc-sketch-card{padding:16px 18px 14px}
.calc-sketch-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}
.calc-sketch-head h2{font-size:14px}
.calc-sketch-card .total-line{margin:7px 0}.calc-sketch-card .total-line strong{font-size:14px;color:var(--diep)}
.calc-sketch-card .totals-note{font-size:10px;color:var(--muted);line-height:1.6;margin-top:8px}
.calc-sketch-card .totals-note+.totals-note{margin-top:4px}
.totals-card{padding:16px 18px 14px}
/* Op een laptop blijft de zijkolom (prijs, tariefversie) naast de posten; de tabel wordt iets smaller. Pas onder 1240 px gaat de zijkolom eronder. */
@media(min-width:761px) and (max-width:1300px){.calculation-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.calculation-side{display:flex;flex-direction:column;gap:14px}.missing-panel ul{columns:1}.margin-panel,.totals-card{min-height:0}.calculation-table .row-description{min-width:0}.calculation-table th:nth-child(1){width:64px}.calculation-table th:nth-child(3){width:80px}.calculation-table th:nth-child(4){width:66px}.calculation-table th:nth-child(5){width:120px}.calculation-table th:nth-child(6){width:60px}.calculation-table th:nth-child(7){width:92px}.calculation-table th:nth-child(8){width:52px}.calculation-table td.cell-quantity{width:80px}.calculation-table td.cell-unit{width:66px}.calculation-table td.cell-price{width:120px}.calculation-table td.cell-confirm{width:60px}.calculation-table td.cell-amount{width:92px}.calculation-table td.cell-actions{width:52px}.row-meta{flex-wrap:nowrap}.row-meta-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}}
@media(max-width:1240px){.calculation-layout{grid-template-columns:minmax(0,1fr)}.calculation-side{display:grid;grid-template-columns:1fr 1fr;gap:14px}#calc-model-card{grid-column:1/-1}.model-card .sketch-model{aspect-ratio:2/1;max-height:360px}.missing-panel{grid-column:1/-1}.missing-panel ul{columns:2;column-gap:30px}}
@media(max-width:760px){
.calculation-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.calculation-side{display:contents}.missing-panel ul{columns:1}
#calc-model-card{order:-1}.calculation-main{order:0}.calculation-side>.panel,.calculation-side>.totals-card{order:1}
.model-dialog{width:100vw;max-height:100vh;border-radius:0;padding:14px 16px}
}

/* Fasen: gekozen stap links (oranje markering), volgende actie met termijn rechts; stapkeuze op de telefoon boven de stap */
.phase-pill.active{background:var(--blauw-licht);box-shadow:inset 3px 0 0 var(--blauw-tekst);border-radius:0 7px 7px 0;color:var(--diep)}
.phase-check.is-next{grid-template-columns:18px minmax(0,1fr) auto;background:var(--blauw-licht);box-shadow:inset 3px 0 0 var(--blauw-tekst);padding-left:9px}
.phase-next-label{font-size:11px;font-weight:600;color:var(--blauw-tekst);white-space:nowrap}
.phase-next{margin:12px 0 0;font-size:12px;line-height:1.5;color:var(--tekst-zacht)}.phase-next strong{color:var(--ink)}
.phase-aside-empty{color:var(--tekst-zacht)}
.phase-detail-bare .phase-body{grid-template-columns:minmax(0,1fr)}.phase-detail-bare .phase-body-main{display:none}
.phase-picker{display:none}
@media(max-width:760px){
.phase-overview{display:none}
.phase-picker{display:grid;gap:4px;margin:0;font-size:11px;font-weight:600;color:var(--muted)}
.phase-picker select{min-height:44px;font-size:14px;font-weight:600;color:var(--ink)}
.phase-check.is-next{grid-template-columns:18px minmax(0,1fr)}.phase-next-label{grid-column:2}
}

/* Tarieven: regels van ongeveer 40 px met dezelfde velden als de posten, één rustige bronregel */
.rate-row{padding:3px 0;align-items:center}
.rate-row input:not([type=checkbox]),.rate-row select{min-height:30px;padding:3px 8px;font-size:11px}
.rate-row .rate-field>span{display:none}
.rate-row .rate-delete{margin:0}
.rate-row .rate-confirm input{width:15px;height:15px;min-height:0;padding:0;margin:0;flex:none}
.rate-source{font-size:10px;margin-top:0;padding:2px 0 0 8px;color:var(--muted)}
#rate-groups .rate-group{padding:10px 16px 12px}
@media(max-width:760px){.rate-row .rate-field>span{display:block}}

/* v7 — Bronnen: documentkaart als brede regel (voorbeeld links, gegevens rechts), één kaart per rij; documentwaarschuwingen staan alleen op de kaart */
.document-grid{grid-template-columns:minmax(0,1fr);gap:16px}
.document-card{display:grid;grid-template-columns:200px minmax(0,1fr);grid-auto-rows:auto;align-items:start}
.document-preview{grid-row:1/span 4;height:100%;min-height:220px;border-bottom:0;border-right:1px solid var(--line-light);background:var(--paper);display:flex;align-items:flex-start;justify-content:center;padding:16px}
.document-preview img{width:100%;height:auto;max-height:100%;object-fit:contain;object-position:top;padding:0;border:1px solid var(--line-light);background:#fff}
.document-body{padding:16px 20px 12px}
.document-body h3{font-size:14px}
.document-metadata{margin-top:6px;font-size:11px}
.document-warnings{font-size:11px;margin-top:10px}
.document-analysis{font-size:11px}
.document-actions{margin:0 20px;padding:10px 0}
.document-text{margin:0 20px 14px}
@media(max-width:760px){
.document-card{grid-template-columns:minmax(0,1fr)}
.document-preview{grid-row:auto;min-height:0;height:150px;border-right:0;border-bottom:1px solid var(--line-light);padding:12px}
.document-preview img{height:100%;width:auto;max-width:100%}

.document-body{padding:14px 16px 10px}
.document-actions{margin:0 16px}.document-text{margin:0 16px 12px}
}

/* v8 — Locatie en leges: adres zoeken, gekozen locatie, bedragen in dichtgeklapte kaarten (open klikken is de keuze van de gebruiker) */
.location-search{margin-top:4px}.location-search-row{display:flex;gap:10px;align-items:stretch}.location-search-row input{flex:1;min-width:0}
.location-candidates{display:grid;gap:6px;margin-top:10px}.location-candidates:empty{display:none}
.location-candidate{display:flex;justify-content:space-between;gap:12px;align-items:baseline;width:100%;padding:9px 12px;border:1px solid var(--line-light);border-radius:8px;background:var(--white);font:inherit;font-size:12px;color:var(--ink);text-align:left;cursor:pointer}
.location-candidate:hover,.location-candidate:focus-visible{border-color:var(--blauw-lijn);background:var(--blauw-licht)}
.location-candidate span{font-size:11px;color:var(--muted);white-space:nowrap}
.location-chosen{margin-top:16px;padding:12px 14px;background:var(--paper);border-radius:8px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center}
.location-chosen-name{margin:0;font-weight:600;font-size:13px}.location-chosen-meta{margin:0;font-size:11px;color:var(--muted);line-height:1.6}
.location-chosen .button{grid-column:2;grid-row:1/span 2}
.location-grid{margin-top:16px}
.location-toggle{display:flex;align-items:center;gap:8px;margin:20px 0 10px;font-size:11px;color:var(--tekst-zacht)}.location-toggle input{width:auto;margin:0}
.location-card{margin-top:12px;padding:0}.location-card>summary{cursor:pointer;padding:14px 20px;font-size:14px;font-weight:600;color:var(--ink);list-style:none;display:flex;align-items:center;gap:10px}
.location-card>summary::-webkit-details-marker{display:none}.location-card>summary::before{content:"";width:7px;height:7px;border-right:1.5px solid var(--blauw-tekst);border-bottom:1.5px solid var(--blauw-tekst);transform:rotate(-45deg);transition:transform .15s;flex:none}
.location-card[open]>summary::before{transform:rotate(45deg)}.location-card[open]>summary{border-bottom:1px solid var(--line-light)}
.location-body{padding:14px 20px 18px}.location-source,.location-basis,.location-note{margin:0 0 8px;font-size:11px;color:var(--tekst-zacht);line-height:1.7}.location-note{color:var(--waarschuwing)}
.location-table th.left,.location-table td.left{text-align:left;white-space:normal}.location-table tbody th{font-weight:500;color:var(--ink);padding-right:14px;vertical-align:top}
.location-table tbody th small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:2px}.location-table td.muted{color:var(--muted)}
.location-table td{vertical-align:top}.location-table td.left{padding-right:14px;color:var(--tekst-zacht);font-size:11px}
.location-artikel{display:block}
@media(max-width:760px){.location-grid{grid-template-columns:1fr 1fr}.location-chosen{grid-template-columns:1fr}.location-chosen .button{grid-column:1;grid-row:auto;justify-self:start}
.location-search-row{flex-direction:column}.location-table th,.location-table td{white-space:normal;font-size:11px;padding:7px 0}.location-card>summary{padding:12px 16px;font-size:13px}.location-body{padding:12px 16px 16px}}
/* De laatste rij van een locatietabel is geen totaalregel; op de telefoon staan de cellen onder elkaar in plaats van naast elkaar (geen zijwaarts scrollen). */
.location-table tbody tr:last-child td,.location-table tbody tr:last-child th{font-size:inherit}.location-table tbody tr:last-child td.left{font-size:11px}
@media(max-width:760px){.location-table thead{display:none}.location-table,.location-table tbody,.location-table tr,.location-table th,.location-table td{display:block;white-space:normal}
.location-table tr{padding:10px 0;border-bottom:1px solid var(--line-light)}.location-table th,.location-table td{padding:2px 0!important;border:0;text-align:left;font-size:12px}
.location-table td.left{font-size:11px}.location-table td:not(.left)::before{content:attr(data-kop) " ";color:var(--muted);font-weight:400}}

/* v12 — Posten tussen 761 en 1000 px: de zijkolom staat al onder de tabel, maar de werkruimte (schermbreedte min zijbalk) is smaller dan de tabel.
   De tabel houdt zijn minimale breedte en schuift binnen zijn kader; de pagina zelf loopt niet meer over (900 px gaf een pagina van 943 px). */
@media(min-width:761px) and (max-width:1000px){.table-wrap{overflow-x:auto}.calculation-table{min-width:700px}.calculation-table thead th{position:static}}
.model-message{color:var(--red);font-size:12px;font-weight:600;margin:8px 0 0}.model-message:empty{display:none}

/* Aanvragen: één scherm zonder scrollen op laptop; op de telefoon twee tabs */
.req-tabs{display:none}
.req-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;align-items:start}
.req-data{display:grid;gap:10px;padding:16px 18px}
.req-data h2,.req-head h2{font-size:15px}
.req-field{display:grid;gap:3px;min-width:0}
.req-field>span{font-size:11px;font-weight:600;color:var(--muted)}
.req-field input,.req-field select{min-height:34px;padding:5px 9px;font-size:13px;width:100%}
.req-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}
.req-address-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.req-address-line{display:flex;gap:8px;align-items:baseline;justify-content:space-between;font-size:13px;line-height:1.35}
.req-address{position:relative}.req-candidates{position:absolute;left:0;right:0;top:100%;z-index:5;display:grid;gap:0;background:#fff;border:1px solid var(--line);border-radius:4px;box-shadow:0 6px 18px rgba(11,58,85,.12);margin-top:2px}.req-candidates .req-note{padding:8px 10px}
.req-candidates:empty{display:none}
.req-candidate{display:grid;gap:1px;text-align:left;border:0;border-bottom:1px solid var(--line-light);background:#fff;padding:6px 10px;font-size:12px}.req-candidate:last-child{border-bottom:0}
.req-candidate:hover{border-color:var(--blauw-tekst);background:var(--blauw-licht)}
.req-candidate span,.req-note{color:var(--muted);font-size:11px}
.req-adopt{justify-self:start}
.req-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.req-head-text p{font-size:12px;color:var(--muted)}
.req-list{padding:0;overflow:hidden}
.req-row{display:grid;grid-template-columns:minmax(0,1fr) 130px 84px 124px;gap:12px;align-items:center;padding:8px 18px;border-bottom:1px solid var(--line-light)}
.req-row:last-child{border-bottom:0}
.req-main{display:grid;gap:1px;text-align:left;background:none;border:0;padding:0;min-width:0;color:inherit}
.req-main strong{font-size:13.5px;font-weight:600}
.req-main span{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.req-when{font-size:12px;color:var(--tekst-zacht)}
.req-when.late{color:var(--red);font-weight:600}
.req-state{justify-self:start;font-size:11px;font-weight:650;padding:2px 8px;border-radius:4px;border:1px solid var(--line);color:var(--muted)}
.req-state.ok{color:var(--green);background:var(--green-bg);border-color:var(--green-lijn)}
.req-state.warn{color:var(--waarschuwing);background:var(--waarschuwing-bg);border-color:var(--waarschuwing-lijn)}
.req-actions{display:flex;gap:6px;justify-content:flex-end}
.req-row.niet_nodig .req-main strong{color:var(--muted);font-weight:500}
.req-detail{display:none;grid-column:1/-1;padding:8px 0 4px;border-top:1px solid var(--line-light);font-size:12px}
.req-row.open .req-detail{display:grid;gap:4px}.req-detail p{margin:0;line-height:1.35}
.req-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 24px;margin:0}
.req-facts div{display:grid;grid-template-columns:104px minmax(0,1fr);gap:8px}
.req-facts dt{color:var(--muted)}.req-facts dd{margin:0;overflow-wrap:anywhere}
.req-facts .gap dd{color:var(--red)}.req-facts .breed{grid-column:1/-1}
.req-attach{color:var(--tekst-zacht)}
@media (min-width:761px){.req-row{padding-top:5px;padding-bottom:5px}.req-row .button.compact{min-height:28px;padding:4px 10px}}
.req-thumb{width:104px;height:104px;object-fit:cover;border:1px solid var(--line);border-radius:3px;display:block}
.req-detail.met-beeld{grid-template-columns:minmax(0,1fr) 104px;column-gap:16px}.req-detail.met-beeld>*{grid-column:1}.req-detail.met-beeld>.req-thumb{grid-column:2;grid-row:1/4}
@media (max-width:760px){.req-detail.met-beeld{grid-template-columns:1fr}.req-detail.met-beeld>.req-thumb{grid-column:1;grid-row:auto}}
@media (min-width:761px) and (max-width:1100px){.req-grid{grid-template-columns:260px minmax(0,1fr)}.req-row{grid-template-columns:minmax(0,1fr) 84px 110px}.req-when{display:none}.req-fields{grid-template-columns:1fr}.req-facts{grid-template-columns:1fr}}
@media (max-width:760px){
  .req-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
  .req-tab{min-height:38px;border:1px solid var(--line);background:#fff;border-radius:4px;font-weight:600;font-size:13px}
  .req-tab[aria-selected="true"]{background:var(--diep);color:#fff;border-color:var(--diep)}
  .req-grid{grid-template-columns:1fr}
  #aanvragen-view[data-tab="list"] .req-data,#aanvragen-view[data-tab="data"] .req-list{display:none}
  .req-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:8px 14px}
  .req-when{display:none}.req-state{grid-column:2;grid-row:1}
  .req-actions{grid-column:1/-1;justify-content:flex-start}
  .req-row:not(.open) .req-actions{display:none}
  .req-facts{grid-template-columns:1fr}.req-facts div{grid-template-columns:120px minmax(0,1fr)}
  .req-head{padding:12px 14px}
}

.req-main .req-missing{color:var(--waarschuwing)}
/* voorontwerp staalconstructie (5-11-2026) */
#calc-pane-steel .design-panel{margin-top:18px}.design-heading{margin:0 0 14px;align-items:flex-start}.design-heading p{max-width:72ch}.design-status{font-size:12px;font-weight:600;color:var(--waarschuwing);white-space:nowrap}.design-status.ok{color:var(--green)}.design-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 16px;border:1px solid var(--line-light);border-radius:4px}.design-summary div{padding:10px 12px;border-left:1px solid var(--line-light)}.design-summary div:first-child{border-left:0}.design-summary dt{font-size:11px;font-weight:600;color:var(--muted)}.design-summary dd{margin:2px 0 0;font-size:13px;color:var(--ink)}.design-summary dd small{display:block;font-size:11px;color:var(--muted)}.design-warnings{margin:0 0 14px;padding:10px 14px 10px 30px;background:var(--waarschuwing-bg);border:1px solid var(--waarschuwing-lijn);border-radius:4px;font-size:12px;color:var(--ink)}.design-table td.num,.design-table th.num{text-align:right;white-space:nowrap}.design-table .design-step{display:block;font-size:11px;font-weight:400;color:var(--muted)}.design-total{margin:12px 0 2px;font-size:13px;color:var(--ink)}.design-total strong{font-weight:600}.design-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:14px 0 4px}.design-actions .field-help{margin:0}.design-assumptions{margin:14px 0 0;border-top:1px solid var(--line-light);padding-top:10px}.design-assumptions summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--blauw-tekst)}.design-assumptions ul{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--muted)}.design-assumptions li{margin:3px 0}.design-check{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-light)}.design-check h3{margin-bottom:8px}.design-check-grid{display:grid;grid-template-columns:1fr 2fr;gap:12px}.design-check-grid .field-label{margin-top:0}.design-check-grid input{width:100%}.design-check-ok{font-size:12px;color:var(--ink)}.design-check-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}.design-check-foot .field-help{margin:0}
@media(max-width:760px){.design-summary{grid-template-columns:1fr 1fr}.design-summary div:nth-child(3){border-left:0}.design-summary div:nth-child(n+3){border-top:1px solid var(--line-light)}.design-heading{flex-direction:column;gap:4px}.design-check-grid{grid-template-columns:1fr}.design-check-foot{flex-direction:column;align-items:stretch}.design-table thead{display:none}.design-table tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0;border-bottom:1px solid var(--line-light)}.design-table td,.design-table th{border:0;padding:0}.design-table td.design-meta{grid-column:1/-1;font-size:11px;color:var(--muted);text-align:left}}
.sketch-model-main{min-width:0}.look-panel{margin:14px 0 0;padding:12px 0 0;border:0;border-top:1px solid var(--line-light);min-width:0}.look-panel legend{padding:0;font-family:var(--serif);font-weight:600;font-size:13px;color:var(--ink)}.look-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;margin-top:8px}.look-grid label{display:grid;gap:4px;font-size:10px;font-weight:600;color:var(--tekst-zacht);min-width:0}.look-grid select,.look-grid input:not([type=checkbox]){width:100%;min-height:34px;padding:6px 9px;font-size:12px}.look-grid select{padding-right:28px;text-overflow:ellipsis}.look-color{display:flex;align-items:center;gap:6px;min-width:0}.look-color select{flex:1;min-width:0}.swatch{flex:none;width:18px;height:18px;border-radius:4px;border:1px solid rgba(0,0,0,.18)}.look-grid .look-check{display:flex;align-items:center;gap:8px;align-self:end;min-height:34px;font-size:12px;font-weight:500;color:var(--ink)}.look-panel .field-help{margin:8px 0 0}.sketch-model .face.textured{stroke:rgba(20,28,34,.55)}.sketch-model .rib{stroke:rgba(0,0,0,.16);stroke-width:.03;fill:none;pointer-events:none}.sketch-model .rib.light{stroke:rgba(255,255,255,.18)}.sketch-model .plint{stroke:rgba(0,0,0,.25);stroke-width:.03}.sketch-model .gutter{fill:none;stroke-width:.18;stroke-linecap:round;pointer-events:none}.sketch-model .downpipe{fill:none;stroke-width:.12;pointer-events:none}.sketch-model .trim{fill:none;stroke-width:.1;stroke-linejoin:round;pointer-events:none}.sketch-model .skylight{fill:rgba(214,230,238,.82);stroke:rgba(90,110,120,.55);stroke-width:.04;pointer-events:none}.sketch-model .opening.raam{stroke-width:.08}.sketch-model .door-line{stroke:rgba(0,0,0,.22);stroke-width:.03;pointer-events:none}
@media(max-width:760px){.look-grid{grid-template-columns:1fr 1fr}}
.look-grid .look-check input{flex:none;width:16px;height:16px;min-height:0;margin:0;padding:0}
.look-map{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:10px 12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-light)}.look-map label{display:grid;gap:4px;font-size:10px;font-weight:600;color:var(--tekst-zacht);min-width:0}.look-map input:not([type=checkbox]){width:100%;min-height:34px;padding:6px 9px;font-size:12px}.look-map .look-check{display:flex;align-items:center;gap:8px;align-self:end;min-height:34px;font-size:12px;font-weight:500;color:var(--ink)}.look-map .look-check input{flex:none;width:16px;height:16px;min-height:0;margin:0;padding:0}.sketch-model .site-photo{pointer-events:none}
@media(max-width:760px){.look-map{grid-template-columns:repeat(3,minmax(0,1fr))}.look-map .look-check{grid-column:1/-1}}

/* Model: kader met linksboven plus en min; zonder hoofdmaten een korte regel in gewone tekst */
.model-stage{position:relative;max-width:760px}
.model-card .model-stage,.model-dialog .model-stage{max-width:none}
.model-zoom{position:absolute;top:8px;left:8px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}
.model-zoom button{width:30px;height:30px;padding:0;border:0;background:#fff;color:var(--ink);font:500 18px/1 var(--sans,inherit);cursor:pointer}
.model-zoom button+button{border-top:1px solid var(--line-light)}
.model-zoom button:hover:not(:disabled){background:var(--blauw-licht)}
.model-zoom button:disabled{color:var(--muted);cursor:default}
.model-zoom button:focus-visible{outline:2px solid var(--blauw-tekst);outline-offset:-2px}
.model-empty{display:none}
.model-stage.empty .sketch-model{display:none}
.model-stage.empty .model-zoom{display:none}
.model-stage.empty .model-empty{display:block;margin:0;padding:14px 16px;border:1px dashed var(--line);border-radius:8px;background:var(--paper);font-size:13px;color:var(--muted)}
@media(max-width:760px){.model-zoom button{width:34px;height:34px}}

.sketch-grid>.sketch-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:stretch;gap:10px}.sketch-actions>.button{display:inline-flex;align-items:center}.sketch-actions .field-help{flex-basis:100%;margin:0}.button.is-disabled{opacity:.5;cursor:not-allowed}

/* kijkronde 5-11: wat op 1440 en 375 px afweek */
input:not(:focus){text-overflow:ellipsis}
.sidebar-add{text-align:left}
.export-panel{align-items:flex-start}
.material-table td{font-weight:400}
.material-other-table th:nth-child(2),.material-other-table td:nth-child(2){text-align:left;color:var(--tekst-zacht)}
@media(max-width:760px){
.sidebar{border-right:0;border-bottom:1px solid var(--line)}
.sidebar-add{text-align:right}
.step-nav{justify-content:flex-start;gap:4px}
.step-nav .nav-item{flex:0 1 auto}
.look-grid{grid-template-columns:1fr}
.origin-panel{padding:20px}
.origin-table th,.origin-table td{font-size:11px}
.origin-table tbody tr:last-child td{font-size:12px}
.calculation-table tr{grid-template-columns:22px minmax(0,1.2fr) repeat(3,minmax(0,1fr));grid-template-areas:"inc desc desc desc desc" "qty qty unit price price" "conf conf amount amount act"}
.calculation-table td.cell-price,.calculation-table th:nth-child(5){width:auto}
.calculation-table td.cell-actions{justify-self:end}
}
.material-other-table thead th:nth-child(2){padding-left:10px}
