:root{--bg:#f4f5f2;--surface:#fff;--ink:#1b2230;--muted:#5f6876;--line:#d8dbd3;--accent:#2c4b6e;--accent-soft:#e3eaf2;
  --ok:#2e7d4f;--ok-soft:#dff0e5;--warn:#a8542a;--warn-soft:#f8e6dc;--gold:#b98a1e;--gold-soft:#f6ebcf;--grey-soft:#ebece8}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 "Segoe UI",system-ui,sans-serif}
a{color:var(--accent)}
.mono{font-family:Consolas,"IBM Plex Mono",monospace;font-size:.92em}
.muted{color:var(--muted)}.small{font-size:.85em}.error{color:var(--warn);font-weight:600}.ok{color:var(--ok);font-weight:600}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:8px 20px;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px}
.topbar .brand{font-weight:700;text-decoration:none;color:var(--ink)}
.topbar nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.topbar nav a{text-decoration:none}.who{margin-left:8px}
.wrap{max-width:1500px;margin:0 auto;padding:16px 20px 60px}
h1{font-size:1.5rem;margin:0 0 4px}h2{font-size:1.15rem;margin:22px 0 8px}h3{font-size:1rem;margin:0 0 6px}
.pagehead{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}
.pagehead p{margin:0}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack-right{flex-direction:column;align-items:flex-end}
button,.button{display:inline-block;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:6px 12px;border-radius:6px;cursor:pointer;font:inherit;text-decoration:none;line-height:1.3}
button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
button.quiet{background:transparent}button.small,.button.small{padding:3px 8px;font-size:.85em}
button.link{border:0;background:none;color:var(--accent);padding:0;text-decoration:underline;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
form.inline{display:inline}form.stack{display:grid;gap:10px;max-width:420px}
input,select,textarea{font:inherit;padding:5px 8px;border:1px solid var(--line);border-radius:5px;background:#fff}
textarea{width:100%}
label{display:inline-flex;flex-direction:column;gap:3px;font-size:.9em;color:var(--muted)}label.wide{width:100%}
.login{max-width:420px;margin:60px auto;background:var(--surface);padding:28px;border:1px solid var(--line);border-radius:10px}
table.list,table.ops{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);font-size:.92em}
table.list th,table.ops th{text-align:left;padding:6px 8px;background:var(--grey-soft);font-size:.8em;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
table.list td,table.ops td{padding:6px 8px;border-top:1px solid var(--line);vertical-align:top}
table.small{font-size:.85em}
.street{margin-top:26px}
.progresscell{min-width:160px}.bar{height:7px;background:var(--grey-soft);border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--ok);width:0}
.prop{color:var(--gold)}
.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:.8em;background:var(--grey-soft)}
.badge.st-klaar_wvb{background:var(--accent-soft);color:var(--accent)}.badge.st-akkoord_me{background:var(--ok-soft);color:var(--ok)}.badge.st-afgekeurd_me{background:var(--warn-soft);color:var(--warn)}.badge.st-bezig{background:var(--gold-soft);color:#7a5a0e}
.badge.act-accept,.badge.act-edit{background:var(--ok-soft);color:var(--ok)}.badge.act-reject{background:var(--grey-soft)}.badge.act-defer{background:var(--gold-soft);color:#7a5a0e}
.badge.a-NEW{background:var(--ok-soft);color:var(--ok)}.badge.a-CHANGED{background:var(--gold-soft);color:#7a5a0e}.badge.a-REMOVED{background:var(--warn-soft);color:var(--warn)}.badge.a-KEPT{background:var(--grey-soft)}
tr.a-REMOVED td{color:var(--muted);text-decoration:line-through}tr.a-NEW td{background:#f3faf5}tr.a-CHANGED td{background:#fdf9ee}
.c-NEW{color:var(--ok)}.c-REMOVED{color:var(--warn);text-decoration:line-through}
.progressbox{min-width:320px;text-align:right}.progressbox .bar{margin-bottom:3px}
.evidence{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 14px;margin-bottom:16px}
.evidence summary{cursor:pointer;font-weight:600}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}
@media(max-width:1000px){.twocol{grid-template-columns:1fr}}
tr.m-UNCHANGED td{background:#f3faf5}tr.m-CHANGED td{background:#fdf9ee}tr.m-UNCERTAIN_MATCH td{background:#eef3f8}tr.m-WO_ADDED td{background:#fbeee6}tr.m-TL_ONLY td{background:#ecece9}
.legend span{padding:1px 8px;border-radius:4px;margin-right:6px}.legend .m-UNCHANGED{background:#dff0e5}.legend .m-CHANGED{background:#fff2cc}.legend .m-UNCERTAIN_MATCH{background:#e3eaf2}.legend .m-WO_ADDED{background:#f8e6dc}.legend .m-TL_ONLY{background:#ebece8}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid var(--line);margin-bottom:12px}
.tab{border:0;border-bottom:3px solid transparent;border-radius:0;background:none;padding:8px 12px;margin-bottom:-2px}
.tab.active{border-bottom-color:var(--accent);font-weight:600}.tab .count{color:var(--muted);font-size:.85em;margin-left:4px}
.groupbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 12px;color:var(--muted);font-size:.9em}
.group{margin-bottom:14px}
.grouphead{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:6px 10px;background:var(--grey-soft);border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0}
.group .card{border-radius:0}.group .card:last-child{border-radius:0 0 8px 8px}.group>.card:first-child{border-radius:8px 8px 0 0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:8px;border-left:4px solid var(--line)}
.card.open{border-left-color:var(--gold)}.card.decided{border-left-color:var(--ok);background:#fbfcfa}.card.decided.act-reject{border-left-color:#9aa3ae}.card.decided.act-defer{border-left-color:var(--gold)}
.card.compact{padding:6px 12px}.card.compact .card-body{margin:2px 0}
.card.type-OP_FIELD .tag{display:none}
.fieldname{display:inline-block;background:var(--accent);color:#fff;font-weight:600;padding:1px 9px;border-radius:4px;font-size:.95em}
.fieldchange{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;max-width:640px;margin:4px 0 2px}
.fieldchange small{display:block;color:var(--muted);font-size:.75em;text-transform:uppercase;letter-spacing:.04em}
.fieldchange .old b{color:var(--muted);font-weight:500;text-decoration:line-through}
.fieldchange .new b{color:var(--ink);font-size:1.05em}
.fieldchange .arrow{color:var(--muted);font-size:1.2em}
.fieldchange .empty{font-style:italic;text-decoration:none;color:var(--muted);font-weight:400}
.card-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.card-head .title{flex:1}
.tag{font-size:.72em;text-transform:uppercase;letter-spacing:.05em;background:var(--accent-soft);color:var(--accent);padding:1px 7px;border-radius:4px}
.hint{color:var(--warn);font-size:.85em}
.card-body{margin:6px 0}
.pair{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.pair small,.grid4 small{display:block;color:var(--muted);font-size:.75em;text-transform:uppercase;letter-spacing:.04em}
.pair .arrow{color:var(--muted)}.pair.texts{grid-template-columns:1fr 1fr}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 14px}@media(max-width:800px){.grid4{grid-template-columns:repeat(2,1fr)}}
.lt summary{cursor:pointer;color:var(--muted);font-size:.85em}.ltbody{white-space:pre-wrap;background:var(--grey-soft);padding:8px 10px;border-radius:6px;font-size:.92em;margin-top:4px}
.proposal{font-size:.9em;padding:4px 8px;background:var(--gold-soft);border-radius:6px;margin:6px 0}.proposal.none{background:var(--grey-soft)}
.buttons{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px}.buttons .comment{flex:1;min-width:160px}
.editform{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:8px;padding:10px;background:var(--grey-soft);border-radius:6px}
.decision{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px;font-size:.9em}
.issues{list-style:none;padding:0;margin:6px 0}.issues li{padding:3px 8px;border-left:3px solid var(--line);margin-bottom:3px}.issues li.lv-error{border-color:var(--warn);background:var(--warn-soft)}.issues li.lv-warn{border-color:var(--gold);background:var(--gold-soft)}.issues li.lv-info{color:var(--muted)}
.validation{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:14px}
.finish{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:18px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:8px}
.finish label{flex:1;min-width:260px}
.ruleform{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:var(--surface);border:1px solid var(--line);padding:10px 14px;border-radius:8px;margin:8px 0 18px}
tr.inactive td{color:var(--muted);text-decoration:line-through}
.log ul{margin:4px 0;padding-left:18px}
/* statistiek */
:root{--s-seq:#2a78d6;--s-nieuw:#2a78d6;--s-velden:#eb6834;--s-nietuitgevoerd:#1baf7a;--s-materiaal:#eda100;--s-longtext:#e87ba4;--p-accept:#008300;--p-reject:#9aa3ae;--p-defer:#eda100;--p-open:#d8dbd3}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:8px 0 18px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.tile .k{font-size:.78em;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.tile .v{font-size:2rem;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.tile .s{font-size:.85em;color:var(--muted)}
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:14px;align-items:start}
.chart{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px 16px 10px}.chart h2{margin:0 0 10px;font-size:1.05rem}
.hbars{display:grid;gap:5px}.hrow{display:grid;grid-template-columns:minmax(120px,38%) 1fr 70px;gap:10px;align-items:center;font-size:.9em}
.hlabel{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.htrack{height:14px;background:var(--grey-soft);border-radius:0 4px 4px 0;display:flex;gap:2px;overflow:hidden}
.hfill{height:100%;background:var(--s-seq);border-radius:0 4px 4px 0;min-width:2px}.hseg{height:100%}.hval{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.htrack.stack{background:transparent}
.s-nieuw{background:var(--s-nieuw)}.s-velden{background:var(--s-velden)}.s-nietuitgevoerd{background:var(--s-nietuitgevoerd)}.s-materiaal{background:var(--s-materiaal)}.s-longtext{background:var(--s-longtext)}
.p-accept{background:var(--p-accept)}.p-reject{background:var(--p-reject)}.p-defer{background:var(--p-defer)}.p-open{background:var(--p-open)}
.legend2{display:flex;gap:14px;flex-wrap:wrap;font-size:.82em;color:var(--muted);margin-top:8px}.sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
td.barcell{width:40%}td.barcell .hfill{height:10px}
.hrow:hover .htrack{outline:1px solid var(--accent)}
.chart.wide-labels .hrow{grid-template-columns:minmax(220px,55%) 1fr 70px}
