:root{--ink:#17251f;--muted:#718078;--line:#dfe8e2;--paper:#fff;--soft:#f3f7f2;--green:#1d5c44;--lime:#d8f35b;--shadow:0 18px 60px rgba(34,65,49,.08)}
*{box-sizing:border-box}body{margin:0;background:#f6f8f5;color:var(--ink);font-family:"DM Sans",Arial,sans-serif}button{font:inherit;cursor:pointer}.shell{max-width:1440px;margin:0 auto;padding:28px 34px 42px}.topbar{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;border-radius:12px 12px 12px 4px;background:var(--green);color:var(--lime);display:grid;place-items:center;font-family:Manrope;font-size:22px}.eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}.brand h1{font:800 19px Manrope;margin:2px 0 0;letter-spacing:-.04em}.brand h1 span{color:var(--green)}.privacy-note{font-size:12px;color:var(--muted)}.status-dot{display:inline-block;width:7px;height:7px;background:#78bc68;border-radius:50%;margin-right:7px}.intro{display:grid;grid-template-columns:1fr 125px 125px 125px;gap:20px;align-items:end;padding:76px 0 50px}.accent{color:var(--green)}h2{font:800 38px/1.08 Manrope;letter-spacing:-.055em;margin:12px 0 14px}.intro h2 em{font-style:normal;color:var(--green)}.intro-copy{max-width:510px;color:var(--muted);line-height:1.6;font-size:15px;margin:0}.intro-stat{border-left:1px solid var(--line);padding:0 0 3px 22px}.intro-stat strong{font:800 30px Manrope;color:var(--green);display:block}.intro-stat span{font-size:12px;line-height:1.35;color:var(--muted)}.workspace{display:grid;grid-template-columns:1.45fr 1fr;gap:20px}.upload-card,.how-card{background:var(--paper);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.upload-card{min-height:290px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1.5px dashed #b9cabe;transition:.2s}.upload-card.dragging{border-color:var(--green);background:#f3faee;transform:translateY(-2px)}.upload-icon{width:58px;height:58px;border-radius:17px;background:var(--green);color:white;display:grid;place-items:center;margin-bottom:16px}.upload-icon svg{width:33px;height:33px}.upload-card h3{font:700 18px Manrope;margin:0 0 6px}.upload-card p{font-size:13px;color:var(--muted);margin:0 0 12px}.link-button{background:none;border:0;color:var(--green);font-weight:700;padding:0;text-decoration:underline}.upload-card small{font-size:11px;color:#a0aca4}.upload-state{font-size:12px;color:var(--green);font-weight:600;margin-top:15px}.how-card{padding:27px 28px}.card-kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:23px}.step{display:flex;gap:14px;padding-bottom:21px;margin-bottom:20px;border-bottom:1px solid var(--line)}.step:last-child{border:0;margin:0;padding:0}.step>span{background:#eef5e9;color:var(--green);height:27px;width:27px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;flex:none}.step strong{font-size:13px}.step p{font-size:12px;color:var(--muted);margin:4px 0 0;line-height:1.45}.results-section{margin-top:52px}.results-head{display:flex;align-items:end;justify-content:space-between}.results-head h2{font-size:28px;margin-bottom:0}.results-head h2 span{font:500 12px "DM Sans";color:var(--muted);letter-spacing:0;margin-left:8px}.actions{display:flex;gap:9px}.primary-button,.secondary-button{border-radius:8px;padding:11px 15px;font-size:12px;font-weight:700}.primary-button{border:1px solid var(--green);background:var(--green);color:#fff}.primary-button span{color:var(--lime);font-size:16px;margin-left:6px}.secondary-button{border:1px solid var(--line);background:#fff;color:var(--ink)}.file-pill{display:inline-block;background:#eaf2e6;color:var(--green);font-size:11px;border-radius:20px;padding:7px 11px;margin:22px 0 10px}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;text-align:left}th{background:#f3f7f2;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.09em;padding:14px 17px}td{padding:16px 17px;border-top:1px solid #edf1ed;font-size:13px}td:first-child{color:#a0aca4;width:45px}td:nth-child(2){font-weight:700;color:var(--green)}td:nth-child(3){font-weight:700}.source{color:var(--muted);font-size:12px}.empty-results{padding:45px;text-align:center}.empty-results strong,.empty-results span{display:block}.empty-results span{color:var(--muted);font-size:13px;margin-top:7px}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:26px}.tab{border:0;background:transparent;color:var(--muted);font-weight:700;font-size:12px;padding:12px 16px;margin-bottom:-1px;border-bottom:2px solid transparent}.tab.active{color:var(--green);border-bottom-color:var(--green)}.debug-intro{font-size:13px;color:var(--muted);line-height:1.55;max-width:740px}.debug-table-wrap{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:auto;box-shadow:var(--shadow);margin-top:20px}.debug-table{min-width:1050px}.debug-table td{vertical-align:top;font-size:11px;padding:12px 14px}.debug-table th{white-space:nowrap}.debug-column{display:inline-block;background:#f3f7f2;border:1px solid #e1eae0;border-radius:5px;padding:5px 7px;margin:2px 3px 2px 0;color:var(--muted)}.debug-column b{color:var(--green);font-weight:700}.debug-column q{color:var(--ink);font-style:normal}.debug-full-text{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--ink);min-width:260px}.footer-note{text-align:center;color:#9aa69e;font-size:11px;margin:34px 0 0}.toast{position:fixed;bottom:24px;right:24px;background:var(--ink);color:#fff;padding:13px 17px;border-radius:8px;font-size:12px;opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}@media(max-width:760px){.shell{padding:22px 17px}.privacy-note{display:none}.intro{display:block;padding:54px 0 35px}.intro-stat{display:inline-block;margin:25px 22px 0 0;padding-left:13px}.workspace{grid-template-columns:1fr}.results-head{display:block}.actions{margin-top:18px}.table-wrap{overflow-x:auto}table{min-width:850px}}
.raw-table th{vertical-align:top;min-width:145px}.raw-table th label{display:flex;flex-direction:column;gap:7px;color:var(--ink);font-size:10px;letter-spacing:0;text-transform:none}.raw-table select{width:100%;border:1px solid #cbd8cd;border-radius:6px;background:#fff;color:var(--green);font-size:11px;padding:7px 5px}.column-position{display:block;color:#99a69d;font-size:10px;font-weight:400;letter-spacing:0;text-transform:none;margin-top:7px}.suggestion{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#eef6e8;border:1px solid #d9e9d0;border-radius:9px;padding:11px 14px;margin:12px 0;font-size:12px;color:var(--green)}.suggestion strong{font-size:11px;text-transform:uppercase;letter-spacing:.08em}.suggestion small{color:var(--muted);width:100%;font-size:11px}.raw-table td{vertical-align:top}.raw-table td:first-child{width:45px}.validation-summary{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0 9px}.status-filter{border:2px solid transparent;padding:8px 11px;border-radius:7px;font-size:12px;transition:.15s}.status-filter:hover{filter:brightness(.97)}.status-filter.active{border-color:currentColor;box-shadow:0 0 0 2px rgba(23,37,31,.08);filter:brightness(.92)}.valid-badge{background:#e8f5e6;color:#2d7c3d}.uncertain-badge{background:#fff4d9;color:#966c15}.invalid-badge{background:#fbe8e6;color:#a2463f}.visible-count{font-size:12px;color:var(--muted);margin:0 0 15px}.validation-table td{vertical-align:top}.validation-table tr.invalid{background:#fffaf9}.validation-table tr.uncertain{background:#fffdf6}.validation-table tr.valid{background:#fbfefb}.decision{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.decision input{accent-color:#b44b43;width:16px;height:16px}.keep-label{display:block;color:var(--muted);font-size:10px;margin:4px 0 0 23px}.validation-table td:nth-child(2) strong{color:var(--green)}.footer-note{text-align:center;color:#9aa69e;font-size:11px;margin:34px 0 0}.toast{position:fixed;bottom:24px;right:24px;background:var(--ink);color:#fff;padding:13px 17px;border-radius:8px;font-size:12px;opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}@media(max-width:760px){.shell{padding:22px 17px}.privacy-note{display:none}.intro{display:block;padding:54px 0 35px}.intro-stat{display:inline-block;margin:25px 22px 0 0;padding-left:13px}.workspace{grid-template-columns:1fr}.results-head{display:block}.actions{margin-top:18px}.table-wrap{overflow-x:auto}table{min-width:850px}}
.raw-table-wrap{max-height:560px;overflow-x:auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges}.raw-table{width:max-content;min-width:100%;table-layout:auto}.raw-table th,.raw-table td{white-space:nowrap}.raw-table thead th{position:sticky;top:0;z-index:3;background:#f3f7f2;box-shadow:0 1px 0 var(--line)}.raw-table th:first-child,.raw-table td:first-child{position:sticky;left:0;z-index:4;background:#f3f7f2;box-shadow:1px 0 0 var(--line);min-width:58px;width:58px}.raw-table tbody td:first-child{background:#fff}.raw-table thead th:first-child{z-index:5}
.project-meta{display:flex;align-items:center;gap:18px;margin:17px 0 12px;color:var(--muted);font-size:12px}.project-meta label{display:flex;align-items:center;gap:8px;font-weight:700}.project-meta input,.send-dialog input,.send-dialog textarea{border:1px solid var(--line);border-radius:7px;padding:9px 11px;background:#fff;color:var(--ink);font:inherit;font-size:12px}.project-meta input{width:250px}.send-dialog{border:0;border-radius:16px;padding:0;width:min(560px,calc(100vw - 32px));box-shadow:0 24px 80px rgba(23,37,31,.25);color:var(--ink)}.send-dialog::backdrop{background:rgba(23,37,31,.35)}.send-dialog form{padding:26px}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.dialog-head h2{font-size:26px;margin:8px 0 0}.dialog-close{border:0;background:none;font-size:25px;color:var(--muted);line-height:1}.send-dialog label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;margin-top:12px}.send-dialog textarea{resize:vertical}.attachment-note{background:var(--soft);border-radius:8px;padding:10px;font-size:11px;color:var(--green);line-height:1.5}.attachment-note small{color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.plant-group{border-bottom:1px solid var(--line)}.plant-group summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 18px;cursor:pointer;list-style:none;background:#f3f7f2}.plant-group summary::-webkit-details-marker{display:none}.plant-group summary::before{content:"▸";color:var(--green);font-size:14px;transition:transform .15s}.plant-group[open] summary::before{transform:rotate(90deg)}.group-title{font:700 14px Manrope;color:var(--green);text-transform:uppercase;letter-spacing:.05em;margin-right:auto}.group-stats{font-size:11px;color:var(--muted)}.group-table-wrap{overflow-x:auto}.group-table-wrap table{min-width:720px}.group-table-wrap th{white-space:nowrap}.group-table-wrap td{vertical-align:top}.rubriek-select{border:1px solid #cbd8cd;border-radius:6px;background:#fff;color:var(--green);font:inherit;font-size:11px;padding:6px 8px}
.missing-count-summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 0;color:var(--green)}.missing-actions{display:flex;gap:6px}.missing-actions button{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted);padding:6px 8px;font-size:11px}.missing-actions button.selected{border-color:var(--green);background:var(--green);color:#fff}.remove-missing.selected{background:#a94b43;border-color:#a94b43}
.supplier-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0}.supplier-categories{display:flex;gap:7px;flex-wrap:wrap;flex:1}.supplier-category{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);padding:8px 12px;font-size:11px}.supplier-category.selected{background:var(--green);border-color:var(--green);color:#fff}.supplier-toolbar input,.supplier-toolbar select{border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 11px;color:var(--ink);font:inherit;font-size:12px}.supplier-toolbar input{min-width:210px}.supplier-status{color:var(--muted);font-size:12px;padding:12px 0}.supplier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.supplier-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.supplier-card-head{display:flex;justify-content:space-between;gap:12px}.supplier-card h3{font:700 16px Manrope;margin:0 0 7px;color:var(--green)}.supplier-delivery{font-size:11px;color:var(--muted)}.supplier-check{font-size:11px;color:var(--green);white-space:nowrap}.supplier-check input{accent-color:var(--green)}.supplier-card dl{display:grid;gap:9px;margin:18px 0 0}.supplier-card dl div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #edf1ed;padding-top:9px}.supplier-card dt{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.supplier-card dd{margin:0;text-align:right;font-size:12px;overflow-wrap:anywhere}.supplier-footer{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.supplier-form-field{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;margin-top:12px}.supplier-form-field input,.supplier-form-field select{border:1px solid var(--line);border-radius:7px;padding:9px 10px;font:inherit;font-weight:400;background:#fff}.supplier-form-error{background:#fff0ee;color:#a2463f;border-radius:7px;padding:10px;font-size:12px}.supplier-dialog form{max-height:80vh;overflow:auto}@media(max-width:760px){.supplier-toolbar{align-items:stretch}.supplier-toolbar input,.supplier-toolbar select{width:100%}.supplier-footer{align-items:stretch;flex-direction:column;gap:12px}}
@media(max-width:760px){.project-details-card{padding:22px 19px}.project-details-fields{grid-template-columns:1fr;gap:18px}.project-summary{grid-template-columns:1fr 1fr}.project-summary div:nth-child(3){grid-column:1/-1}}
.offer-summary{display:grid;grid-template-columns:1.5fr 1fr .8fr .8fr 2fr;gap:12px;margin:18px 0;padding:16px 18px;background:#f4f8f3;border:1px solid var(--line);border-radius:12px}.offer-summary span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.offer-summary strong{display:block;color:var(--green-dark);font-size:12px}.offer-summary small{display:block;color:var(--muted);font-size:10px;margin-top:4px;overflow-wrap:anywhere}.offer-notice{margin:14px 0;padding:12px 14px;border-radius:9px;background:#fff6df;border:1px solid #eed79d;color:#805e19;font-size:12px}.offer-cards{display:grid;gap:18px}.offer-card{padding:20px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(24,62,43,.06)}.offer-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}.offer-card-head h3{margin:4px 0 0;color:var(--green-dark);font-size:19px}.offer-status-badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:6px 10px;background:#e7f2e8;color:var(--green);font-size:11px;font-weight:700}.offer-status-badge.warning{background:#fff0df;color:#9b6718}.offer-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}.offer-fields label,.offer-status-field{display:flex;flex-direction:column;gap:6px;color:var(--green-dark);font-size:11px;font-weight:700}.offer-fields input,.offer-fields textarea,.offer-status-field select{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 11px;color:var(--ink);font:inherit;font-size:12px;font-weight:400}.offer-fields textarea{resize:vertical;line-height:1.5}.offer-message-field{grid-column:1/-1}.offer-attachments{display:flex;gap:10px;align-items:flex-start;margin:15px 0;color:var(--muted);font-size:11px}.offer-attachments strong{color:var(--green-dark);white-space:nowrap}.offer-attachments span{overflow-wrap:anywhere}.offer-status-field{max-width:260px}.offer-footer{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:760px){.offer-summary{grid-template-columns:1fr 1fr}.offer-summary div:last-child{grid-column:1/-1}.offer-fields{grid-template-columns:1fr}.offer-message-field{grid-column:auto}.offer-card-head{flex-direction:column}.offer-footer>*{width:100%}}
.offer-status-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0;color:var(--muted);font-size:11px}.offer-status-summary{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;margin:18px 0}.offer-status-card{padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff}.offer-status-card span{display:block;color:var(--muted);font-size:10px;line-height:1.3}.offer-status-card strong{display:block;margin-top:6px;color:var(--green-dark);font-size:22px}.offer-status-card.info{border-top:3px solid #4c86b7}.offer-status-card.processing{border-top:3px solid #8465a6}.offer-status-card.warning{border-top:3px solid #cf8c2b}.offer-status-card.success{border-top:3px solid #368457}.received-offer-list{display:grid;gap:16px}.received-offer-card{padding:20px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(24,62,43,.06)}.received-offer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:13px;border-bottom:1px solid var(--line)}.received-offer-head h3{margin:0;color:var(--green-dark);font-size:18px}.received-offer-head p{margin:5px 0 0;color:var(--muted);font-size:11px}.received-offer-details{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:16px 0}.received-offer-details div{min-width:0}.received-offer-details dt{color:var(--muted);font-size:10px;margin-bottom:4px}.received-offer-details dd{margin:0;color:var(--green-dark);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.received-offer-actions{display:flex;gap:9px;flex-wrap:wrap}.upload-context{margin:0 0 14px;padding:11px 13px;border-radius:8px;background:#f4f8f3;color:var(--green-dark);font-size:12px;font-weight:700}.offer-file-preview{margin:7px 0 0;color:var(--muted);font-size:11px}.received-offer-card .offer-status-badge.processing{background:#eee7f6;color:#694d8e}.received-offer-card .offer-status-badge.info{background:#e7f0f8;color:#3d6e9d}.received-offer-card .offer-status-badge.success{background:#e7f2e8;color:var(--green)}
@media(max-width:1000px){.offer-status-summary{grid-template-columns:repeat(4,1fr)}.received-offer-details{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.offer-status-summary{grid-template-columns:repeat(2,1fr)}.received-offer-details{grid-template-columns:repeat(2,1fr)}.received-offer-head{flex-direction:column}.received-offer-actions>*{width:100%}}
.portal-sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#123c2d;color:#dcebe1;padding:24px 14px;display:flex;flex-direction:column;z-index:10}.portal-brand{display:flex;align-items:center;gap:11px;padding:0 10px 28px;border-bottom:1px solid rgba(255,255,255,.12)}.portal-brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:11px 11px 11px 4px;background:#d8f35b;color:#123c2d;font:800 21px Manrope}.portal-brand strong{display:block;letter-spacing:.11em;color:#fff}.portal-brand small,.portal-sidebar-footer small{display:block;color:#9bb9a6;font-size:10px;margin-top:3px}.portal-nav{display:grid;gap:4px;margin-top:22px}.portal-nav-label{margin:14px 10px 3px;color:#7fa992;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.portal-nav-item{display:flex;align-items:center;gap:11px;border:0;border-radius:9px;background:transparent;color:#bcd0c2;text-align:left;padding:11px 12px;font-size:12px}.portal-nav-item span{width:16px;text-align:center;color:#96bd9f}.portal-nav-item:hover,.portal-nav-item.active{background:#1d5842;color:#fff}.portal-nav-item.active span{color:#d8f35b}.portal-sidebar-footer{display:flex;align-items:center;gap:9px;margin-top:auto;padding:16px 10px 0;border-top:1px solid rgba(255,255,255,.12)}.portal-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#2b7354;color:#fff;font-size:10px;font-weight:700}.portal-sidebar-footer strong{display:block;color:#fff;font-size:11px}.portal-header-tools{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:11px}.portal-header-tools>strong{color:var(--green-dark);font-size:13px}.portal-user{padding-left:14px;border-left:1px solid var(--line)}.portal-icon-button,.portal-logout,.portal-settings-link{border:0;background:none;color:var(--muted);font-size:11px}.portal-settings-link{display:inline-flex;align-items:center;gap:5px;padding:0}.portal-settings-link span{font-size:15px;line-height:1}.portal-settings-link:hover,.portal-settings-link:focus-visible{color:var(--green)}.portal-logout{text-decoration:underline}.portal-sidebar~.shell{margin-left:238px;max-width:none;padding:26px 42px 50px}.portal-view{display:none}.portal-view.active{display:block}.portal-page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin:36px 0 26px}.portal-page-heading h1{margin:4px 0 8px;color:var(--green-dark);font:800 32px Manrope}.portal-page-heading p:not(.eyebrow){margin:0;color:var(--muted);font-size:13px}.portal-heading-actions{display:flex;gap:9px;flex-wrap:wrap}.portal-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.portal-stat-grid article,.portal-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 26px rgba(24,62,43,.05)}.portal-stat-grid article{padding:18px}.portal-stat-grid span{display:block;color:var(--muted);font-size:11px}.portal-stat-grid strong{display:block;color:var(--green-dark);font:800 29px Manrope;margin:8px 0 2px}.portal-stat-grid small{color:#6e8a78;font-size:10px}.portal-dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.portal-card{padding:22px}.portal-card-heading,.portal-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.portal-card h2,.portal-detail h2{margin:3px 0 17px;color:var(--green-dark);font-size:18px}.portal-quick-actions{display:grid;gap:9px}.portal-quick-action{border:1px solid var(--line);background:#f7faf6;border-radius:10px;text-align:left;padding:13px}.portal-quick-action:hover{border-color:#a8c4ae;background:#f0f7ef}.portal-quick-action strong,.portal-quick-action span{display:block}.portal-quick-action strong{color:var(--green-dark);font-size:12px}.portal-quick-action span{color:var(--muted);font-size:11px;margin-top:4px}.portal-list{display:grid;gap:7px}.portal-list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid transparent;border-radius:9px;background:#f7faf6;padding:11px 12px;text-align:left;color:var(--ink)}.portal-list-row:hover{border-color:var(--line);background:#fff}.portal-list-row strong,.portal-list-row small{display:block}.portal-list-row strong{color:var(--green-dark);font-size:12px}.portal-list-row small{color:var(--muted);font-size:10px;margin-top:3px}.portal-list-row b{color:var(--muted);font-size:11px}.portal-master-detail{display:grid;grid-template-columns:330px 1fr;gap:18px}.portal-search,.portal-filter-row select{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 12px;font:inherit;font-size:12px;background:#fff;color:var(--ink)}.portal-filter-row{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.portal-filter-date{border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:inherit;font-size:12px;background:#fff;color:var(--ink);width:150px}.portal-filter-label{display:flex;flex-direction:column;gap:4px;font-size:10px;color:var(--muted)}.portal-development-note{margin-top:14px;padding:8px 12px;border-radius:8px;background:#f4f6f4;color:var(--muted);font-size:11px}.quote-dialog{width:min(1180px,calc(100vw - 32px))}.quote-lines-heading{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.quote-lines-heading h3{margin:0;font-size:14px;color:var(--green)}.quote-line-table-wrap{overflow-x:auto;margin-top:10px}.quote-line-table{width:100%;border-collapse:collapse;font-size:11px}.quote-line-table th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:6px 6px;border-bottom:1px solid var(--line)}.quote-line-table td{padding:5px 6px;border-bottom:1px solid #edf1ed;vertical-align:middle}.quote-line-table input,.quote-line-table select{width:100%;min-width:70px;border:1px solid var(--line);border-radius:6px;padding:6px 7px;font:inherit;font-size:11px;background:#fff;color:var(--ink)}.quote-line-table input[name=lineDescription]{min-width:160px}.quote-line-remove{border:0;background:none;color:#a2463f;font-size:16px;line-height:1;padding:4px}.quote-line-empty{color:var(--muted);font-size:11px;margin:10px 0}.quote-totals{margin-top:14px;display:grid;gap:6px;font-size:12px;background:#f4f8f3;border:1px solid var(--line);border-radius:10px;padding:12px 14px}.quote-totals div{display:flex;justify-content:space-between}.quote-totals strong{color:var(--green-dark)}.admin-hint{font-size:11px;color:var(--muted);margin:6px 0 0;line-height:1.4}.quote-field-with-button{display:flex;gap:8px;align-items:stretch}.quote-field-with-button select{flex:1;min-width:0}.quote-field-with-button button{white-space:nowrap;font-size:11px;padding:0 12px}.quote-custom-variable-field{margin-top:12px}.quote-line-options{display:flex;gap:18px;margin-top:16px}.quote-line-toggle{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--green-dark)}.quote-line-toggle input{accent-color:var(--green)}.quote-category-editor{margin-top:10px;padding:12px;border:1px dashed var(--line);border-radius:10px;background:#f8fbf7}.quote-category-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.quote-category-chip{display:inline-flex;align-items:center;gap:6px;background:#e8f2e4;color:#286137;border-radius:999px;padding:5px 6px 5px 12px;font-size:12px}.quote-category-chip button{border:0;background:none;color:#a2463f;font-size:14px;line-height:1;cursor:pointer;padding:2px 4px}.quote-variable-token{font-family:"SFMono-Regular",Consolas,Menlo,monospace;font-size:11px;background:#eef3ec;color:#3d5041;padding:3px 7px;border-radius:5px}.org-entity-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:14px}.org-entity-block{border:1px solid var(--line);border-radius:12px;padding:16px}.org-entity-block h3{margin:0 0 12px;font-size:14px;color:var(--green)}.org-entity-logo{display:flex;align-items:center;gap:12px;margin-bottom:14px}.org-entity-logo img{max-width:110px;max-height:60px;object-fit:contain;background:#f4f8f3;border:1px solid var(--line);border-radius:8px;padding:6px}.portal-table-wrap{overflow-x:auto}.portal-table{width:100%;border-collapse:collapse;font-size:12px}.portal-table th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}.portal-table td{padding:13px 10px;border-bottom:1px solid #edf2ec;color:var(--ink);white-space:nowrap}.portal-table td strong{color:var(--green-dark)}.portal-status-badge{display:inline-flex;border-radius:999px;padding:5px 9px;background:#edf5ee;color:var(--green);font-size:10px;font-weight:700}.portal-empty{padding:22px;color:var(--muted);font-size:12px;text-align:center}.portal-detail{min-height:360px}.portal-detail-heading p{margin:0;color:var(--muted);font-size:12px}.portal-detail-heading-actions{display:flex;gap:9px;flex-wrap:wrap;flex-shrink:0}.danger-button{border:1px solid #e2b3ae;background:#fdf1f0;color:#a2463f;border-radius:8px;padding:11px 15px;font-size:12px;font-weight:700}.danger-button:hover{background:#fbe8e6;border-color:#d99a94}.portal-detail-tabs{display:flex;gap:5px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px}.portal-detail-tabs button{border:0;background:transparent;color:var(--muted);padding:8px;font-size:11px}.portal-detail-tabs button.active{color:var(--green);border-bottom:2px solid var(--green)}.portal-placeholder{text-align:center;padding:70px 20px}.portal-placeholder-icon{display:grid;place-items:center;width:50px;height:50px;margin:0 auto 16px;border-radius:16px;background:#eff7ed;color:var(--green);font-size:23px}.portal-placeholder h2{margin:0 0 8px}.portal-placeholder p{max-width:480px;margin:auto;color:var(--muted);font-size:12px;line-height:1.6}.portal-module{margin-top:28px}.portal-module[hidden]{display:none}.portal-module .intro{margin-top:0}
@media(max-width:900px){.portal-sidebar{position:relative;width:auto;inset:auto;min-height:auto;padding:12px;}.portal-nav{display:flex;overflow-x:auto;margin-top:12px}.portal-nav-item{white-space:nowrap}.portal-sidebar-footer{display:none}.portal-sidebar~.shell{margin-left:0;padding:18px 18px 35px}.portal-stat-grid{grid-template-columns:repeat(2,1fr)}.portal-dashboard-grid,.portal-master-detail{grid-template-columns:1fr}.topbar{gap:15px}.portal-header-tools{gap:8px}.portal-header-tools>strong{display:none}}@media(max-width:600px){.portal-page-heading{align-items:flex-start;flex-direction:column}.portal-page-heading h1{font-size:27px}.portal-heading-actions{width:100%}.portal-heading-actions>*{flex:1}.portal-stat-grid{gap:9px}.portal-stat-grid article{padding:14px}.portal-filter-row{flex-direction:column}}
.supplier-project{margin:8px 0 0;color:var(--muted);font-size:12px}.supplier-project strong{color:var(--green)}.supplier-retry{margin:0 0 14px}
.project-details-card{margin:10px 0 0;padding:25px 28px;background:rgba(255,255,255,.84);border:1px solid rgba(23,79,59,.14);border-radius:18px;box-shadow:var(--shadow);backdrop-filter:blur(7px)}.project-details-heading h2{font-size:25px;margin:8px 0}.project-details-heading p:last-child{margin:0;color:var(--muted);font-size:12px}.project-details-fields{display:grid;grid-template-columns:2fr 1fr;gap:22px;margin-top:21px}.project-name-field,.bestek-name-field,.customer-picker-field{display:flex;flex-direction:column;gap:7px;color:var(--green-dark);font-size:11px;font-weight:700}.project-name-field input,.bestek-name-field input{border:1px solid var(--line);border-radius:9px;background:#fff;padding:12px 13px;color:var(--ink);font:inherit;font-weight:400}.customer-selection{min-height:43px;display:flex;flex-direction:column;justify-content:center;gap:2px}.customer-selection small,.customer-selection em{font-size:11px;color:var(--muted);font-style:normal;font-weight:400}.customer-selection em{color:#a36d16}.customer-empty{color:var(--muted);font-weight:400}.customer-actions{display:flex;align-items:center;gap:11px}.text-button{border:0;background:none;color:var(--green);font-size:11px;padding:0;text-decoration:underline}.optional-customer-note{font-size:11px;color:var(--muted);margin:18px 0 0}.project-summary{display:grid;grid-template-columns:1.4fr 1.4fr 1.7fr .7fr 1.2fr;gap:12px;margin-bottom:22px;padding:15px 17px;background:#f4f8f3;border:1px solid var(--line);border-radius:12px}.project-summary div{min-width:0}.project-summary span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.project-summary strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--green-dark);font-size:12px}.summary-edit{border:0;padding:0;margin-top:5px;background:none;color:var(--green);font-size:10px;text-decoration:underline}.customer-dialog form{max-height:82vh;overflow:auto}.customer-search{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;font:inherit;font-size:12px}.customer-dialog-actions{display:flex;justify-content:flex-end;margin:13px 0}.customer-list{display:grid;gap:8px;max-height:360px;overflow:auto}.customer-option{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border:1px solid var(--line);border-radius:9px;background:#fff;padding:12px 13px;color:var(--ink)}.customer-option:hover,.customer-option.selected{border-color:var(--green);background:#f1f7ef}.customer-option strong{color:var(--green);font-size:13px}.customer-option span,.customer-option em{font-size:11px;color:var(--muted);font-style:normal}.customer-form-error{color:#a2463f;background:#fff0ee;border-radius:7px;padding:9px;font-size:12px}.contact-picker{position:relative}.contact-picker-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;display:grid;gap:6px;max-height:220px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);padding:6px}.contact-picker-results[hidden]{display:none}.contact-picker-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:0;border-radius:6px;background:none;padding:8px 9px;color:var(--ink);width:100%}.contact-picker-option:hover{background:#f1f7ef}.contact-picker-option strong{color:var(--green);font-size:12px}.contact-picker-option span{font-size:11px;color:var(--muted)}.supplier-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.supplier-card-head{display:flex;justify-content:space-between;gap:12px}.supplier-card h3{font:700 16px Manrope;margin:0 0 7px;color:var(--green)}.supplier-delivery{font-size:11px;color:var(--muted)}.supplier-check{font-size:11px;color:var(--green);white-space:nowrap}.supplier-check input{accent-color:var(--green)}.supplier-card dl{display:grid;gap:9px;margin:18px 0 0}.supplier-card dl div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #edf1ed;padding-top:9px}.supplier-card dt{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.supplier-card dd{margin:0;text-align:right;font-size:12px;overflow-wrap:anywhere}.supplier-footer{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.supplier-form-field{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;margin-top:12px}.supplier-form-field input,.supplier-form-field select{border:1px solid var(--line);border-radius:7px;padding:9px 10px;font:inherit;font-weight:400;background:#fff}.supplier-form-error{background:#fff0ee;color:#a2463f;border-radius:7px;padding:10px;font-size:12px}.supplier-dialog form{max-height:80vh;overflow:auto}@media(max-width:760px){.supplier-toolbar{align-items:stretch}.supplier-toolbar input,.supplier-toolbar select{width:100%}.supplier-footer{align-items:stretch;flex-direction:column;gap:12px}}

/* GAKO platform landing experience */
:root{--ink:#152b21;--muted:#708278;--line:#dce8df;--paper:#fff;--soft:#f0f6f0;--green:#174f3b;--green-dark:#0d3427;--lime:#d9ed83;--shadow:0 20px 70px rgba(18,61,42,.1)}
body{background:#eef4ef;min-height:100vh}
body::before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(115deg,rgba(238,244,239,.97) 0%,rgba(238,244,239,.89) 43%,rgba(238,244,239,.72) 100%),url("https://images.unsplash.com/photo-1585320806297-9794b3e4eeae?auto=format&fit=crop&w=2200&q=85") center/cover no-repeat}
.shell{max-width:1240px;padding:25px 42px 52px}
.topbar{padding:8px 0 17px;border-bottom:1px solid rgba(23,79,59,.12)}
.brand{gap:17px}.logo-lockup{display:flex;align-items:center;gap:10px}.logo-lockup strong{display:block;font:700 13px Manrope;letter-spacing:-.02em;color:var(--green-dark)}.logo-lockup .eyebrow{font-size:9px;letter-spacing:.17em;margin-bottom:2px;color:var(--green)}
.header-logo{display:block;max-width:240px;max-height:60px;width:auto;height:auto;object-fit:contain;border-radius:7px}.primary-logo-image{max-width:245px}.secondary-logo-image{max-width:180px;max-height:54px;background:#fff}
.brand-mark{width:42px;height:42px;border-radius:13px 13px 13px 4px;background:var(--green-dark);color:var(--lime);font:800 23px Manrope;box-shadow:0 7px 18px rgba(13,52,39,.18)}
.product-mark{width:30px;height:30px;border:1px solid rgba(23,79,59,.24);border-radius:9px;display:grid;place-items:center;color:var(--green);font:800 16px Manrope;background:rgba(255,255,255,.65)}
.logo-divider{height:31px;width:1px;background:rgba(23,79,59,.2)}.privacy-note{padding:9px 13px;border:1px solid rgba(23,79,59,.13);border-radius:999px;background:rgba(255,255,255,.48);font-size:11px}
.intro{display:block;padding:98px 0 53px;max-width:760px}.intro .eyebrow{font-size:11px;letter-spacing:.2em}.intro h2{font-size:clamp(42px,5.5vw,70px);line-height:1.01;margin:19px 0 22px;letter-spacing:-.07em}.intro-copy{max-width:590px;font-size:16px;line-height:1.7;color:#62766b}
.workspace{grid-template-columns:minmax(0,1.4fr) minmax(330px,.8fr);gap:24px;align-items:stretch}
.upload-card,.how-card{border-radius:22px;border-color:rgba(23,79,59,.14);box-shadow:0 24px 70px rgba(18,61,42,.12);background:rgba(255,255,255,.92)}
.upload-card{min-height:335px;border:1.5px dashed #a7c5ad;position:relative;overflow:hidden}.upload-card::after{content:"";position:absolute;inset:auto -45px -62px auto;width:180px;height:180px;border-radius:50%;background:rgba(217,237,131,.28);pointer-events:none}.upload-card:hover{border-color:var(--green);box-shadow:0 26px 75px rgba(18,61,42,.18);transform:translateY(-3px)}
.upload-icon{width:72px;height:72px;border-radius:21px;background:var(--green-dark);margin-bottom:22px;box-shadow:0 12px 25px rgba(13,52,39,.2)}.upload-icon svg{width:39px;height:39px}.upload-card h3{font-size:22px;letter-spacing:-.03em}.upload-card p{font-size:14px;margin-bottom:16px}.upload-card small{font-size:11px}
.how-card{padding:31px 30px}.card-kicker{font-size:10px;letter-spacing:.18em;color:var(--green);margin-bottom:23px}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.feature-card{min-height:62px;display:flex;align-items:center;gap:11px;padding:12px 13px;border:1px solid #e1ebe3;border-radius:12px;background:#f7faf6;color:var(--green-dark);font-size:12px}.feature-card span{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#e2f0b5;color:var(--green);font-weight:800}.feature-card-wide{grid-column:1/-1;background:#edf5e7}
.how-card .step{padding-bottom:22px;margin-bottom:21px}.how-card .step>span{background:#e2f0b5;color:var(--green-dark);height:31px;width:31px}.how-card .step strong{font-size:14px}.how-card .step p{font-size:12px}
.results-section{margin-top:72px;background:rgba(255,255,255,.58);border:1px solid rgba(23,79,59,.1);border-radius:24px;padding:25px;backdrop-filter:blur(8px)}.tabs{margin-top:0}.footer-note{color:#789083}
@media(max-width:760px){.shell{padding:18px 16px 35px}.topbar{align-items:flex-start}.product-logo,.logo-divider{display:none}.privacy-note{font-size:0;padding:8px}.privacy-note .status-dot{margin:0}.intro{padding:67px 0 38px}.intro h2{font-size:43px}.intro-copy{font-size:14px}.workspace{grid-template-columns:1fr}.upload-card{min-height:300px}.how-card{padding:25px 20px}.results-section{margin-top:42px;padding:17px 13px;border-radius:17px}}
.admin-open-button{border:1px solid #b9d6a6;background:#edf6e8;color:#245b2c;border-radius:9px;padding:8px 13px;font-weight:700;cursor:pointer}.admin-environment{min-height:calc(100vh - 82px);margin:0 -34px -40px;background:#f4f7f2;display:grid;grid-template-columns:218px 1fr}.admin-sidebar{background:#173d2d;color:#e7f1e5;padding:24px 14px;display:flex;flex-direction:column;gap:26px}.admin-sidebar-heading{display:flex;align-items:center;gap:10px}.admin-sidebar-heading small{display:block;color:#b7cdb9;font-size:11px}.admin-sidebar nav{display:grid;gap:5px}.admin-nav-item,.admin-back-button{border:0;background:transparent;color:#d7e7d8;text-align:left;padding:11px 12px;border-radius:8px;cursor:pointer;font:inherit}.admin-nav-item:hover,.admin-nav-item.active{background:#2e6344;color:#fff}.admin-back-button{margin-top:auto;border-top:1px solid #42674e;border-radius:0;padding-top:18px}.admin-content{padding:35px 42px;min-width:0}.admin-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.admin-heading h1{margin:4px 0 7px}.admin-heading p{margin:0;color:#637366}.admin-role-badge,.admin-status{display:inline-flex;border-radius:99px;padding:5px 10px;font-size:12px;font-weight:700;background:#e0f1d8;color:#286137}.admin-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.admin-stat-grid article,.admin-card{background:#fff;border:1px solid #dce7db;border-radius:14px;padding:20px;box-shadow:0 3px 12px #173d2d0b}.admin-stat-grid article span,.admin-stat-grid article small{display:block;color:#657568}.admin-stat-grid article strong{display:block;font-size:30px;color:#173d2d;margin:8px 0 2px}.admin-card h2{margin:0 0 7px}.admin-card p{color:#657568}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.admin-toolbar h2{margin:0}.admin-toolbar p{margin:5px 0 0}.admin-template-layout{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(390px,1.6fr);gap:16px}.admin-template-list{padding:8px}.admin-template-item{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid #e4ece2;background:#fff;padding:14px 12px;cursor:pointer}.admin-template-item.active{background:#eff7eb;border-left:3px solid #4d9a45}.admin-template-item strong,.admin-template-item small{display:block}.admin-template-item small{color:#728072;margin-top:4px}.admin-template-actions{display:flex;gap:5px}.admin-template-actions button{border:0;background:transparent;color:#3b703f;cursor:pointer;font-weight:700;font-size:12px}.admin-editor h3{margin:0 0 16px}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-field{display:grid;gap:5px;color:#4d5f50;font-size:13px;font-weight:700;margin:12px 0}.admin-field.full{grid-column:1/-1}.admin-field input,.admin-field select,.admin-field textarea{font:inherit;font-weight:400;border:1px solid #cddbcc;border-radius:7px;padding:9px;background:#fff;color:#203a26}.admin-field textarea{resize:vertical;min-height:115px}.admin-editor-actions{display:flex;gap:9px;margin-top:16px;flex-wrap:wrap}.admin-preview{margin-top:18px;border:1px dashed #bed1ba;border-radius:8px;padding:14px;background:#f8fbf7}.admin-preview h4{margin:0 0 8px}.admin-preview-body{white-space:pre-wrap;color:#3d5041}.admin-variable-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.admin-variable{font-size:12px;border-radius:5px;background:#e8f2e4;padding:4px 7px;color:#286137;cursor:pointer}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{text-align:left;padding:12px 10px;border-bottom:1px solid #e2ebe1;font-size:13px}.admin-table th{color:#607264;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.admin-empty{color:#708072;text-align:center;padding:42px 15px}.admin-row-actions{white-space:nowrap}.admin-row-actions button{border:0;background:none;color:#3a7541;cursor:pointer;font-weight:700;margin-right:8px}.admin-field input[type=checkbox]{width:auto}
.portal-row-actions{white-space:normal;display:flex;flex-wrap:wrap;gap:4px 10px;min-width:230px}.portal-row-actions button{border:0;background:none;color:#3a7541;cursor:pointer;font-weight:700;padding:0;font-size:13px}.portal-row-actions .quote-row-delete{color:#a2463f}
.admin-environment[hidden],.admin-access-denied[hidden],.admin-content[hidden]{display:none!important}.admin-access-denied{padding:80px 42px;text-align:center;grid-column:1/-1}.admin-access-denied p{color:#637366}.admin-local-warning{color:#b7cdb9;font-size:11px;line-height:1.4;padding:10px 12px;border-top:1px solid #42674e}
.dataverse-test-card{margin-top:16px}.dataverse-test-results{margin-top:20px;border-top:1px solid #dce7db;padding-top:14px}.dataverse-test-results dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0}.dataverse-test-results dl div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid #edf2eb}.dataverse-test-results dt{color:#657568;font-size:12px}.dataverse-test-results dd{margin:0;color:#173d2d;font-size:12px;font-weight:700;text-align:right;overflow-wrap:anywhere}@media(max-width:700px){.dataverse-test-results dl{grid-template-columns:1fr}}
.admin-mode .portal-view{display:none!important}
.backup-warning{border-color:#e5c97a;background:#fffaf0;color:#725715}.backup-warning p{margin:7px 0 0;color:#806d42;font-size:12px;line-height:1.5}.backup-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.backup-meta-grid div{padding:12px;background:#f7faf6;border:1px solid var(--line);border-radius:9px}.backup-meta-grid span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.backup-meta-grid strong{display:block;margin-top:6px;color:var(--green-dark);font-size:12px}.backup-restore-preview{margin-top:18px;padding:15px;background:#f4f8f3;border:1px solid var(--line);border-radius:9px;font-size:12px}.backup-restore-preview p{color:var(--muted);line-height:1.5}.backup-restore-preview button{margin:5px 8px 0 0}
@media(max-width:900px){.backup-meta-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.admin-environment{margin:0 -18px -35px;grid-template-columns:1fr}.admin-sidebar{padding:13px;gap:12px}.admin-sidebar nav{display:flex;overflow:auto}.admin-nav-item{white-space:nowrap}.admin-back-button{margin-top:0}.admin-content{padding:25px 18px}.admin-template-layout{grid-template-columns:1fr}.admin-stat-grid{grid-template-columns:1fr}}
.project-details-card .input-error{border-color:#b94d42;box-shadow:0 0 0 3px rgba(185,77,66,.12)}
.project-details-card .supplier-form-error{margin:14px 0 0}
.portal-detail-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 24px;margin:16px 0 0;padding:0}
.quote-status-control{display:flex;gap:8px;align-items:center}
.quote-status-control select{flex:1;min-width:0}
.portal-detail-list>div{display:flex;flex-direction:column;gap:2px}
.portal-detail-list dt{font-size:.78rem;color:#5c6b63;text-transform:uppercase;letter-spacing:.02em;margin:0}
.portal-detail-list dd{font-size:.95rem;color:#1f2a24;margin:0;font-weight:600}
.portal-detail-section{margin-top:22px;padding-top:18px;border-top:1px solid #e2ebe1}
.portal-detail-section:first-of-type{margin-top:16px;padding-top:0;border-top:0}
.portal-detail-section h3{margin:0 0 4px;font-size:.95rem;color:#173d2d}
.portal-validation-badge{display:inline-flex;border-radius:99px;padding:5px 12px;font-size:12px;font-weight:700;margin-top:6px}
.portal-validation-badge.success{background:#e0f1d8;color:#286137}
.portal-validation-badge.warning{background:#fdf2d9;color:#8a5a0b}
.portal-technical-details{margin-top:14px}
.portal-technical-details summary{cursor:pointer;font-size:.85rem;color:#5c6b63;font-weight:700}
.portal-route-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px}
.portal-route-unavailable{color:#8a5a0b;font-size:.85rem;margin:8px 0 0}
.portal-distance-cell{color:#657568;font-size:13px}
.portal-mail-icon-button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--green);cursor:pointer;padding:0;vertical-align:middle;font-size:14px;line-height:1}.portal-mail-icon-button:hover{background:#f1f7ef;border-color:var(--green)}.portal-phone-cell{display:flex;align-items:center;gap:8px}
.supplier-card-actions{margin-top:10px;display:flex;gap:8px}
.plantbestek-history-note{margin:12px 0;color:var(--muted);font-size:12px;line-height:1.5}
.plantbestek-row-actions{display:flex;gap:12px;white-space:nowrap}.plantbestek-row-actions button:disabled{opacity:.45;cursor:not-allowed}.plantbestek-detail-row td{background:var(--soft);font-size:12px;line-height:1.6}.plantbestek-detail-row ul{margin:8px 0 0;padding-left:20px}.plantbestek-detail-row p{margin:8px 0 0}.plantbestek-detail-row details{margin-top:12px}.plantbestek-detail-row summary{cursor:pointer;color:var(--green-dark);font-weight:700}
#received-offer-comparison{margin-top:18px}#received-offer-comparison h3{color:var(--green-dark);margin:0 0 8px}#received-offer-comparison p{font-size:12px;color:var(--muted)}.supplier-price-input{width:90px;border:1px solid var(--line);border-radius:7px;padding:7px;color:var(--ink);font:inherit}
.supplier-grid{display:block;overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.supplier-list-header,.supplier-list-row{display:grid;grid-template-columns:85px minmax(150px,1fr) minmax(130px,1fr) minmax(110px,.8fr) minmax(180px,1.2fr) minmax(250px,2fr);gap:12px;align-items:center;min-width:930px;padding:12px 16px}.supplier-list-header{background:var(--soft);color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase}.supplier-list-row{border-top:1px solid var(--line);font-size:12px}.supplier-list-row>strong{color:var(--green-dark)}.supplier-list-row>span{overflow-wrap:anywhere}.supplier-row-select input,.supplier-row-categories input{accent-color:var(--green)}.supplier-row-categories{display:flex;flex-wrap:wrap;gap:6px 12px}.supplier-row-categories label{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;cursor:pointer}.supplier-grid .empty-results{padding:20px}
.admin-warning{color:#8a5a0b;background:#fdf2d9;border:1px solid #f0dba0;border-radius:8px;padding:9px 12px;font-size:12px;margin:4px 0 0}

.quote-pdf-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.quote-notes-list{display:flex;flex-direction:column;gap:10px;margin-top:14px;max-height:220px;overflow-y:auto}
.quote-notes-list>div{border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fafcf9}
.quote-notes-list time{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}
.quote-notes-empty{color:var(--muted);font-size:13px}

.hours-tabs{margin:18px 0 12px}.hours-week-filter{align-items:flex-end;margin-bottom:14px}.hours-week-input{width:90px}.hours-error{background:#fff0ee;color:#a2463f}.hours-status-ok{display:inline-flex;border-radius:999px;padding:5px 9px;background:#edf5ee;color:var(--green);font-size:10px;font-weight:700}.hours-status-tekort{display:inline-flex;border-radius:999px;padding:5px 9px;background:#fff0ee;color:#a2463f;font-size:10px;font-weight:700}.hours-status-neutral{display:inline-flex;border-radius:999px;padding:5px 9px;background:#f3f7f2;color:var(--muted);font-size:10px;font-weight:700}.hours-diff-positive{color:var(--green);font-weight:700}.hours-diff-negative{color:#a2463f;font-weight:700}.hours-bar-list{display:flex;flex-direction:column;gap:10px}.hours-bar-row{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:10px;font-size:12px}.hours-bar-label{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hours-bar-track{background:var(--soft);border-radius:999px;height:8px;overflow:hidden}.hours-bar-fill{background:var(--green);height:100%;border-radius:999px}.hours-bar-value{color:var(--muted);font-weight:600;text-align:right}.hours-row-actions{display:flex;gap:6px}

.hours-lagging-list{display:flex;flex-direction:column;gap:8px}.hours-lagging-item{border:1px solid var(--line);border-radius:10px;overflow:hidden}.hours-lagging-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:0;background:var(--paper);padding:10px 12px;cursor:pointer;font:inherit;text-align:left}.hours-lagging-row:hover{background:var(--soft)}.hours-lagging-name{flex:1;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hours-lagging-detail{padding:10px 12px 12px;background:var(--soft)}.hours-lagging-detail table{width:100%;border-collapse:collapse;font-size:12px}.hours-lagging-detail th,.hours-lagging-detail td{padding:6px 4px;text-align:left;border-bottom:1px solid var(--line)}

.hours-row-toggle{border:0;background:none;font:inherit;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:0;font-weight:700;text-align:left}.hours-row-toggle:hover{color:var(--green)}.hours-caret{display:inline-block;font-size:10px;color:var(--muted)}.hours-employee-detail-row td{background:var(--soft);padding:10px 14px}.hours-subtable{font-size:12px}

.hours-bulk-actions{display:flex;align-items:center;gap:12px;margin:0 0 8px;flex-wrap:wrap}.hours-bulk-count{font-size:12px;color:var(--muted);font-weight:600}.hours-line-checkbox,.hours-select-all{width:15px;height:15px;cursor:pointer}

.hours-status-invoiced{display:inline-flex;border-radius:999px;padding:5px 9px;background:#eaf1fb;color:#2955a3;font-size:10px;font-weight:700}

.hours-bulk-actions[hidden]{display:none}

.hours-invoice-fields{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin:0 0 10px}.hours-invoice-fields[hidden]{display:none}.hours-invoice-fields .supplier-form-field{margin:0;min-width:180px}.hours-entry-form{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;align-items:start}.hours-entry-form .supplier-form-field,.hours-entry-form .quote-line-toggle{margin-top:12px}.hours-entry-form .full{grid-column:1/-1}@media(max-width:760px){.hours-entry-form{grid-template-columns:1fr}}

.hours-invoice-lines-dialog{width:min(900px,calc(100vw - 32px))}.hours-invoice-lines-dialog td input{width:100%;min-width:220px;border:1px solid var(--line);border-radius:6px;padding:6px 7px;font:inherit;font-size:12px;background:#fff;color:var(--ink)}

.portal-detail-dialog{border:0;border-radius:16px;padding:26px 28px;width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow-y:auto;box-shadow:0 24px 80px rgba(23,37,31,.25);color:var(--ink)}.portal-detail-dialog::backdrop{background:rgba(23,37,31,.35)}.portal-detail-dialog .portal-detail-heading{display:flex;justify-content:space-between;align-items:start;gap:16px;flex-wrap:wrap}.portal-detail-dialog .portal-detail-heading-actions{display:flex;gap:9px;flex-wrap:wrap}
.raw-table .raw-cell{width:100%;min-width:115px;border:1px solid var(--line);border-radius:6px;padding:7px 8px;color:var(--ink);background:#fff;font:inherit;font-size:12px}.raw-table .raw-cell:focus-visible,.raw-table .raw-rubriek:focus-visible{outline:2px solid var(--green);outline-offset:1px}.raw-table .raw-rubriek{min-width:145px}
.offer-composer{margin:16px 0;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#fff}.offer-composer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.offer-composer-fields label{display:flex;flex-direction:column;gap:6px;color:var(--green-dark);font-size:11px;font-weight:700}.offer-composer-fields select,.offer-composer-fields input{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 11px;color:var(--ink);font:inherit;font-size:12px;font-weight:400}.offer-composer>p{font-size:11px;color:var(--muted);line-height:1.5;margin:12px 0 0}.offer-composer>.offer-notice{color:#805e19}@media(max-width:760px){.offer-composer-fields{grid-template-columns:1fr}}
.send-dialog.supplier-preview-dialog{width:min(1100px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow-y:auto}.send-dialog #mail-supplier-label[hidden]{display:none}.send-dialog #mail-supplier{border:1px solid var(--line);border-radius:7px;padding:9px 11px;background:#fff;color:var(--ink);font:inherit;font-size:12px}.mail-attachment-preview{margin-top:16px}.mail-attachment-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.mail-attachment-heading>div:first-child{display:flex;flex-direction:column;gap:4px}.mail-attachment-heading span{font-size:11px;color:var(--muted)}.mail-attachment-heading .actions{flex-wrap:wrap}.mail-attachment-preview .table-wrap{max-height:320px;overflow:auto}.mail-attachment-preview table{min-width:100%;font-size:11px}@media(max-width:760px){.mail-attachment-heading .actions{width:100%}.mail-attachment-heading .actions button{flex:1}}
.setup-toggle{margin:0 0 4px}.setup-toggle[hidden],#plantbestek-setup[hidden]{display:none}#plantbestek-setup[hidden]+.results-section{margin-top:12px}

.offer-price-matrix th small,.offer-price-matrix .offer-row-size{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:2px}
.offer-price-matrix .offer-supplier-column{text-align:right;white-space:normal;min-width:110px;max-width:170px}
.offer-price-matrix .offer-price-cell{text-align:right;white-space:nowrap}
.offer-price-matrix td:nth-child(3){font-weight:400}
.offer-price-matrix .supplier-price-input{text-align:right}
.offer-price-matrix .supplier-price-input.from-document{background:#eef7ee;border-color:#9cc79c}
.offer-price-matrix .offer-price-empty{color:var(--muted)}
.offer-price-matrix .offer-column-active{background:#f3f8f1}
.offer-price-matrix tfoot td{border-top:2px solid var(--line);text-align:right}
.offer-price-matrix tfoot td:first-child{text-align:left}
.offer-price-matrix .offer-group-start{border-left:1px solid var(--line)}
.offer-price-matrix .offer-sub-column{text-align:right;font-size:10px;white-space:nowrap}
.offer-price-matrix .supplier-quantity-input{width:64px;text-align:right;border:1px solid var(--line);border-radius:7px;padding:7px;color:var(--ink);font:inherit}
.offer-price-matrix .supplier-quantity-input.from-document{background:#eef7ee;border-color:#9cc79c}
.offer-price-matrix .supplier-quantity-input.quantity-differs{background:#fff4e0;border-color:#e0a84a}
.offer-price-matrix .offer-line-total{font-variant-numeric:tabular-nums}
.rubriek-select.unknown{border-color:#e0a84a;background:#fff4e0}

.plant-library-dialog { width: min(1180px, 96vw); }
.plant-library-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 12px 0; }
.plant-library-summary div { border: 1px solid #dfe7dc; border-radius: 10px; padding: 10px 12px; background: #f7faf6; display: grid; gap: 4px; }
.plant-library-summary span { font-size: 0.8rem; color: #5d6b5a; }
.plant-library-summary strong { font-size: 1.3rem; }
.plant-library-table-wrap { max-height: 55vh; overflow: auto; }
.plant-library-input { width: 100%; min-width: 110px; padding: 4px 6px; }
.plant-library-existing td { color: #6b7568; }
.plant-library-existing .plant-library-input { background: transparent; border-color: transparent; }
/* Gezamenlijke uitvraag */
.bundle-select-cell { width: 3.5rem; text-align: center; }
.bundle-select-cell input { width: 1.1rem; height: 1.1rem; cursor: pointer; }
.bundle-select-cell input:disabled { cursor: not-allowed; opacity: .4; }
.bundle-origin { font-size: .85em; white-space: nowrap; }
.bundle-date { color: #6b7280; font-size: .85em; }
.danger-text { color: #b42318; }

.purchase-advice{margin-top:24px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff}
.purchase-advice-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.purchase-advice-heading h3{margin:0}
.purchase-advice-heading p{margin:6px 0 0;color:var(--muted);font-size:12px}
.purchase-advice-total{display:flex;justify-content:space-between;gap:14px;font-size:16px}
.purchase-advice-suppliers{list-style:none;padding:0;margin:10px 0}
.purchase-advice-suppliers li{display:flex;justify-content:space-between;gap:14px;padding:5px 0;border-bottom:1px solid var(--line)}
.purchase-advice-table td:first-child small{display:block;color:var(--muted)}
.purchase-advice-table td:nth-child(2){white-space:nowrap}
.purchase-advice-unfilled{display:block;color:#9b5b00;margin-top:3px}
.purchase-route-summary{margin-top:14px;padding:14px;border-radius:9px;background:#f4f8f2}
.purchase-route-summary h4{margin:0 0 6px}
.purchase-route-summary p{margin:0 0 8px}
.purchase-route-summary ol{margin:0;padding-left:22px}
.purchase-route-summary li{padding:3px 0}
.bundle-notice { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; justify-content: space-between; margin: 0 0 1rem; }
.results-section.bundle-mode .tab[data-tab="raw-panel"],
.results-section.bundle-mode .tab[data-tab="missing-count-panel"],
.results-section.bundle-mode .tab[data-tab="validation-panel"] { display: none; }
.bundle-dialog input[type="date"] { min-width: 10rem; }
.bundle-preview { margin: 1rem 0; }
.bundle-notice[hidden] { display: none; }
.offer-custom-variables { display: contents; }
.offer-custom-variables[hidden], .offer-composer-fields label[hidden] { display: none; }
.rubriek-source { display: block; margin-top: 2px; font-size: 0.75rem; color: #2f6b3a; }

.offer-price-matrix .offer-cheapest-column{background:#eef7ee;text-align:left}
.offer-price-matrix .offer-cheapest-cell{background:#f6fbf5;white-space:nowrap;font-variant-numeric:tabular-nums}
.offer-price-matrix .offer-cheapest-cell.quantity-differs{background:#fff4e0;color:#8a5a00}
.offer-price-matrix .cheapest-differs{font-weight:600;color:#8a5a00}
