:root{--wine:#7b1018;--wine2:#a71623;--gold:#f4b522;--ink:#161a22;--muted:#6b7280;--line:#e7e8ec;--bg:#f5f6f8;--card:#fff;--green:#167c4d;--red:#c93d48;--amber:#a76409;--shadow:0 14px 34px rgba(20,24,33,.08)}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:linear-gradient(180deg,#1a1315,#241116 55%,#170f11);color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:6px 10px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.brand img{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:50%;padding:2px}.brand strong{display:block;font-size:17px}.brand span{display:block;color:#f2c55c;font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase}.nav-list{display:flex;flex-direction:column;gap:6px;padding:24px 0}.nav-link{padding:12px 13px;border-radius:13px;display:flex;gap:12px;align-items:center;color:#d7d2d4;font-weight:650}.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}.nav-link.active{background:linear-gradient(135deg,var(--wine2),var(--wine));color:#fff;box-shadow:0 10px 24px rgba(139,16,27,.25)}.nav-icon{width:24px;text-align:center}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:18px 8px 0}.user-chip{display:flex;gap:10px;align-items:center}.avatar{width:36px;height:36px;border-radius:50%;background:var(--gold);color:#311b00;display:grid;place-items:center;font-weight:900}.user-chip strong,.user-chip small{display:block}.user-chip small{color:#aaa3a6}.logout{display:block;margin-top:12px;color:#f1c5c8;font-size:13px}.main{margin-left:260px}.topbar{height:94px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;gap:18px;position:sticky;top:0;z-index:20}.topbar h1{margin:0;font-size:24px}.topbar p{margin:4px 0 0;color:var(--muted);font-size:12px}.top-actions{margin-left:auto}.menu-btn{display:none;border:0;background:#eee;border-radius:10px;padding:9px 12px}.content{padding:30px 34px 50px;max-width:1600px;margin:auto}.hero{background:linear-gradient(120deg,#211518 0%,#6f1018 55%,#9c1723 100%);border-radius:24px;color:#fff;padding:30px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(244,181,34,.14);right:-60px;top:-100px}.hero h2{font-size:32px;margin:0 0 8px}.hero p{max-width:720px;color:#f3dfe1;margin:0}.hero-actions{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}.grid{display:grid;gap:18px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:20px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 22px rgba(20,24,33,.04)}.kpi .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.kpi .value{font-size:28px;font-weight:900;margin-top:8px}.kpi .hint{font-size:12px;color:var(--muted);margin-top:5px}.section{margin-top:24px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 25px rgba(20,24,33,.035);overflow:hidden}.section-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.section-head h2{margin:0;font-size:17px}.section-head .spacer{margin-left:auto}.section-body{padding:22px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:11px;padding:10px 14px;font-weight:800;font-size:13px;cursor:pointer}.btn-primary{background:linear-gradient(135deg,var(--wine2),var(--wine));color:#fff}.btn-secondary{background:#fff;border-color:#dcdfe4;color:#323640}.btn-gold{background:var(--gold);color:#2e1d00}.btn-danger{background:#fff2f3;color:#a3202a;border-color:#f4c9cd}.btn-sm{padding:7px 10px;font-size:12px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:820px}.table th{padding:12px 14px;text-align:left;color:#686d76;text-transform:uppercase;letter-spacing:.06em;font-size:11px;border-bottom:1px solid var(--line);background:#fafafa}.table td{padding:13px 14px;border-bottom:1px solid #f0f1f3;font-size:13px;vertical-align:middle}.table tr:hover td{background:#fcfcfd}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.badge-success{background:#e9f7ef;color:#106a40}.badge-warning{background:#fff5df;color:#8a5405}.badge-danger{background:#fdecee;color:#a12732}.badge-neutral{background:#eef0f3;color:#555d69}.form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}.col-3{grid-column:span 3}.field label{display:block;font-size:12px;font-weight:800;margin:0 0 7px;color:#4b5059}.input,.select,.textarea{width:100%;border:1px solid #dcdfe4;border-radius:11px;padding:11px 12px;background:#fff;color:#20232a;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:#ac1e2a;box-shadow:0 0 0 3px rgba(153,24,35,.08)}.textarea{min-height:100px;resize:vertical}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar .search{min-width:280px;flex:1}.ministry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ministry-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;transition:.2s;position:relative;overflow:hidden}.ministry-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#e3c6c9}.ministry-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--wine2)}.ministry-card h3{font-size:15px;margin:0 0 15px;padding-right:10px}.mini-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mini-stat{padding:10px;background:#f8f8fa;border-radius:12px}.mini-stat strong{display:block;font-size:15px}.mini-stat span{font-size:10px;color:var(--muted);text-transform:uppercase}.status-check{display:flex;align-items:flex-start;gap:9px}.status-check input{width:20px;height:20px;accent-color:var(--wine2);cursor:pointer}.status-time{font-size:11px;color:var(--muted);margin-top:2px}.alert{border-radius:12px;padding:12px 14px;margin-bottom:16px;font-weight:650;font-size:13px}.alert-success{background:#eaf7f0;color:#17633f}.alert-danger{background:#fdecef;color:#9b2330}.alert-warning{background:#fff4dc;color:#7f520e}.line-items{border:1px solid var(--line);border-radius:14px;overflow:hidden}.line-row{display:grid;grid-template-columns:minmax(220px,2.5fr) .7fr .8fr 1fr .7fr 1fr 42px;gap:8px;padding:10px;border-bottom:1px solid var(--line);align-items:center}.line-row.header{background:#f7f7f9;font-size:11px;font-weight:800;text-transform:uppercase;color:#666}.line-row:last-child{border-bottom:0}.line-row input{width:100%;border:1px solid #dfe1e5;border-radius:9px;padding:9px}.icon-btn{width:36px;height:36px;border:0;border-radius:9px;cursor:pointer;background:#fff0f1;color:#a4202b;font-weight:900}.doc-total{margin-left:auto;max-width:360px}.doc-total .row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eee}.doc-total .row.total{font-size:20px;font-weight:900;color:var(--wine)}.empty{padding:42px;text-align:center;color:var(--muted)}.pagination{display:flex;gap:6px;justify-content:flex-end;padding:15px 0}.pagination a,.pagination span{padding:7px 10px;border:1px solid var(--line);border-radius:9px;font-size:12px;background:#fff}.pagination .current{background:var(--wine);color:#fff}.progressbar{height:8px;background:#eceef1;border-radius:999px;overflow:hidden}.progressbar span{display:block;height:100%;background:linear-gradient(90deg,var(--wine2),var(--gold))}.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}.activity-list{display:flex;flex-direction:column;gap:12px}.activity{display:flex;gap:12px}.activity .dot{width:9px;height:9px;border-radius:50%;background:var(--wine2);margin-top:7px}.activity strong{font-size:13px}.activity p{margin:3px 0 0;color:var(--muted);font-size:12px}.document-sheet{background:#fff;max-width:960px;margin:0 auto;border:1px solid var(--line);box-shadow:var(--shadow);padding:48px;border-radius:8px}.doc-head{display:flex;justify-content:space-between;gap:30px;border-bottom:3px solid var(--wine);padding-bottom:22px}.doc-head img{width:120px;height:120px;object-fit:contain}.doc-title{text-align:right}.doc-title h1{font-size:34px;color:var(--wine);margin:0;text-transform:uppercase}.doc-title strong{display:block;margin-top:8px}.doc-meta{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:28px 0}.doc-meta h4{margin:0 0 8px;color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.08em}.doc-table{width:100%;border-collapse:collapse}.doc-table th{background:var(--wine);color:#fff;padding:10px;text-align:left;font-size:12px}.doc-table td{padding:11px 10px;border-bottom:1px solid #eee;font-size:12px}.doc-summary{width:360px;margin:22px 0 0 auto}.doc-summary div{display:flex;justify-content:space-between;padding:8px 0}.doc-summary .grand{border-top:2px solid var(--wine);font-weight:900;font-size:18px}.print-actions{max-width:960px;margin:0 auto 14px;display:flex;gap:10px;justify-content:flex-end}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#fff}.login-visual{background:linear-gradient(140deg,#190f12,#721119 60%,#a31925);position:relative;overflow:hidden;padding:60px;color:#fff;display:flex;flex-direction:column;justify-content:center}.login-visual:after{content:"";position:absolute;width:450px;height:450px;border:80px solid rgba(244,181,34,.12);border-radius:50%;right:-220px;top:-100px}.login-visual img{width:170px;position:relative;z-index:1}.login-visual h1{font-size:46px;max-width:600px;margin:25px 0 12px;position:relative;z-index:1}.login-visual p{font-size:17px;max-width:600px;color:#f1d9db;position:relative;z-index:1}.login-panel{display:flex;align-items:center;justify-content:center;padding:50px}.login-card{max-width:430px;width:100%}.login-card h2{font-size:30px;margin:0}.login-card>p{color:var(--muted);margin:8px 0 28px}.login-card .field{margin-bottom:15px}.login-card .btn{width:100%;padding:13px}.install-wrap{max-width:900px;margin:40px auto;padding:25px}.install-card{background:#fff;border-radius:22px;box-shadow:var(--shadow);padding:30px}.install-head{display:flex;align-items:center;gap:18px;margin-bottom:25px}.install-head img{width:90px}.install-head h1{margin:0;color:var(--wine)}.muted{color:var(--muted)}.small{font-size:12px}.right{text-align:right}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.ministry-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.line-row{grid-template-columns:2fr .7fr .8fr 1fr .7fr 1fr 42px}}@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.menu-btn{display:block}.topbar{padding:0 16px}.top-actions{display:none}.content{padding:20px 14px}.kpi-grid,.ministry-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid>[class*=col-]{grid-column:1}.login-page{grid-template-columns:1fr}.login-visual{display:none}.line-items{overflow:auto}.line-row{min-width:850px}}@media print{.sidebar,.topbar,.print-actions,.no-print{display:none!important}.main{margin:0}.content{padding:0;background:#fff}.document-sheet{box-shadow:none;border:0;max-width:none;padding:10mm}.app-shell{display:block}@page{size:A4;margin:12mm}}

/* v1.1.0 additions */
.line-row{grid-template-columns:minmax(220px,2.5fr) .7fr .8fr 1fr .7fr 1fr 1fr 42px}
.internal-only{background:#fff8e6;border:1px dashed #dca52a;border-radius:14px;padding:16px;margin:18px 0}.internal-only .internal-title{display:flex;align-items:center;gap:8px;font-weight:900;color:#6e4a00;margin-bottom:10px}.internal-only .internal-title:before{content:"ADMIN";font-size:9px;letter-spacing:.08em;background:#f4b522;color:#3c2800;border-radius:999px;padding:4px 7px}.admin-ten{font-weight:900;color:#7b1018}.danger-zone{border:1px solid #f0c6ca;background:#fff8f8;border-radius:14px;padding:16px}.payment-box{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.payment-box .mini-stat{border:1px solid var(--line)}.report-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.report-title h2{margin:0}.report-title p{margin:5px 0 0;color:var(--muted)}.report-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.report-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px}.report-card span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800;letter-spacing:.05em}.report-card strong{display:block;font-size:21px;margin-top:6px}.filter-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;margin-top:18px}.inline-form{display:inline}.actions-cell{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.readonly-input{background:#f4f5f7!important;color:#555}.search-highlight{border-color:#d9a42b!important}.receipt-number{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.report-note{font-size:11px;color:var(--muted);margin-top:12px}.print-report-head{display:none}
@media(max-width:1100px){.line-row{grid-template-columns:2fr .7fr .8fr 1fr .7fr 1fr 1fr 42px}.report-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.line-row{min-width:1050px}.payment-box,.report-grid{grid-template-columns:1fr}.report-header{display:block}}
@media print{.filter-panel,.report-actions,.danger-zone{display:none!important}.print-report-head{display:block}.report-card{box-shadow:none}.section{box-shadow:none}.internal-only{display:none!important}}
.line-items.no-admin .line-row{grid-template-columns:minmax(220px,2.5fr) .7fr .8fr 1fr .7fr 1fr 42px}
@media(max-width:1100px){.line-items.no-admin .line-row{grid-template-columns:2fr .7fr .8fr 1fr .7fr 1fr 42px}}
@media(max-width:800px){.line-items.no-admin .line-row{min-width:850px}}


/* v1.2.0 live search + spreadsheet import/export */
.live-search-state{min-width:70px;color:var(--muted);font-size:11px;font-weight:700}
form.is-searching .search{border-color:#d9a42b;box-shadow:0 0 0 3px rgba(244,181,34,.11)}
#liveResults{transition:opacity .15s ease}
.saved-flash td{animation:savedFlash .7s ease}
@keyframes savedFlash{0%{background:#eaf7f0}100%{background:transparent}}
.upload-drop{display:grid;grid-template-columns:50px 1fr;gap:12px;align-items:center;border:1px dashed #d7b150;background:#fffbef;border-radius:16px;padding:18px}
.upload-drop .input{grid-column:1/-1;background:#fff}
.upload-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--gold);font-size:25px;font-weight:900;color:#402800}
.upload-drop p{margin:4px 0 0}
.check-row{display:flex;gap:11px;align-items:flex-start;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fafafa;cursor:pointer}
.check-row input{margin-top:3px;width:18px;height:18px;accent-color:var(--wine2)}
.check-row strong,.check-row small{display:block}.check-row small{margin-top:3px;color:var(--muted)}
.import-rule{margin-top:16px;padding:15px 16px;border-radius:13px;background:#f7f7f9;border:1px solid var(--line)}
.import-rule ol{margin:8px 0 0 19px;padding:0}.import-rule li{margin:5px 0;color:#555d69;font-size:12px}
.column-guide{display:grid;gap:8px}.column-guide>div{padding:11px 12px;border:1px solid var(--line);border-radius:11px;display:flex;justify-content:space-between;gap:14px}.column-guide span{color:var(--muted);font-size:12px;text-align:right}
@media(max-width:800px){.live-search-state{display:none}.column-guide>div{display:block}.column-guide span{display:block;text-align:left;margin-top:3px}}


/* v1.2.1 - eenheid verwijderd uit offerte/factuurregels */
.line-row{grid-template-columns:minmax(240px,2.7fr) .7fr 1fr .7fr 1fr 1fr 42px}
.line-items.no-admin .line-row{grid-template-columns:minmax(240px,2.7fr) .7fr 1fr .7fr 1fr 42px}
@media(max-width:1100px){.line-row{grid-template-columns:2fr .7fr 1fr .7fr 1fr 1fr 42px}.line-items.no-admin .line-row{grid-template-columns:2fr .7fr 1fr .7fr 1fr 42px}}
@media(max-width:800px){.line-row{min-width:920px}.line-items.no-admin .line-row{min-width:760px}}
