:root{--bg: #0a0c11;--panel: #12151d;--panel-2: #171b26;--panel-3: #1d2231;--line: #232838;--line-soft: #1b1f2b;--ink: #e6eaf3;--ink-2: #b9c1d4;--soft: #7b849b;--dim: #58607a;--accent: #5b8cff;--accent-soft: #1d2a4d;--pos: #2ed47a;--neg: #ff5c5c;--warn: #f5b23b;--purple: #a06bff;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 8px 24px rgba(0, 0, 0, .28);--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,system-ui,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}.num,table td.n,table th.n{font-variant-numeric:tabular-nums;text-align:right}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#262c3d;border-radius:6px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#333b52}.shell{display:flex;flex-direction:column;min-height:100%}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;padding:0 18px;height:56px;background:#0a0c11e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:-.2px}.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}.boards{display:flex;gap:3px;background:var(--panel);padding:3px;border-radius:10px;border:1px solid var(--line)}.boards button{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:0;border-radius:7px;background:transparent;color:var(--soft);font-size:13px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.boards button:hover{color:var(--ink-2);background:var(--panel-2)}.boards button.on{background:var(--accent);color:#fff}.topbar .spacer{flex:1}.main{flex:1;padding:18px;max-width:1720px;width:100%;margin:0 auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.card>h2{margin:0;padding:13px 16px;font-size:13px;font-weight:650;letter-spacing:.01em;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:8px}.card>h2 .sub{font-weight:450;color:var(--soft);font-size:12px}.card .pad{padding:14px 16px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.grid{display:grid;gap:12px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.kpi .lab{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--soft);font-weight:620}.kpi .val{font-size:22px;font-weight:680;margin-top:4px;letter-spacing:-.4px;font-variant-numeric:tabular-nums}.kpi .sub{font-size:11.5px;color:var(--dim);margin-top:2px}.kpi.pos .val{color:var(--pos)}.kpi.neg .val{color:var(--neg)}.kpi.acc .val{color:var(--accent)}.kpi.warn .val{color:var(--warn)}tbody tr.aan{background:var(--accent-soft)}tbody tr.aan td{color:var(--ink)}.kpi.tapbaar{cursor:pointer;transition:border-color .12s,background .12s;-webkit-user-select:none;user-select:none}.kpi.tapbaar:hover{border-color:#37405c;background:var(--panel-2)}.kpi.tapbaar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.kpi.actief{border-color:var(--accent);background:var(--accent-soft)}.kpi.actief .lab{color:#9dbaff}.kpi.actief:after{content:"";display:block;height:2px;margin-top:8px;background:var(--accent);border-radius:2px}.ctrl{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;color:var(--ink-2)}.ctrl label{color:var(--soft);font-size:12px;font-weight:600}.ctrl input,.ctrl select{background:transparent;border:0;outline:0;color:var(--ink);min-width:0}.ctrl input[type=number]{width:62px;text-align:right;font-variant-numeric:tabular-nums}.ctrl input[type=date]{color-scheme:dark}.ctrl select option{background:var(--panel-2)}.seg{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px}.seg button{border:0;background:transparent;color:var(--soft);font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:6px;cursor:pointer}.seg button:hover{color:var(--ink-2)}.seg button.on{background:var(--panel-3);color:var(--ink)}.btn{display:inline-flex;align-items:center;gap:7px;background:var(--panel-2);border:1px solid var(--line);color:var(--ink-2);padding:7px 13px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer}.btn:hover{background:var(--panel-3);color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent}.btn:disabled{opacity:.45;cursor:default}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--panel-2);border:1px solid var(--line);color:var(--ink-2);padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600}.chip.on{background:var(--accent-soft);border-color:#2f4f96;color:#b9cdff}.chip.pos{color:var(--pos);border-color:#1c5136;background:#10281c}.chip.neg{color:var(--neg);border-color:#5a2323;background:#2a1414}.chip.warn{color:var(--warn);border-color:#55411a;background:#241d0f}.chip.dim{color:var(--dim)}.chip button{background:none;border:0;color:inherit;cursor:pointer;padding:0;display:flex;opacity:.7}.chip button:hover{opacity:1}.muted{color:var(--soft)}.tiny{font-size:11.5px}.mono{font-family:var(--mono);font-size:12px}.pos-t{color:var(--pos)}.neg-t{color:var(--neg)}.warn-t{color:var(--warn)}.tbl-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}thead th{position:sticky;top:0;z-index:2;background:var(--panel-2);color:var(--soft);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:650;padding:9px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}thead th.l{text-align:left}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{color:var(--ink-2)}thead th.sorted{color:var(--accent)}tbody td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--line-soft);white-space:nowrap}tbody td.l{text-align:left}tbody tr:hover{background:var(--panel-2)}tbody tr.clickable{cursor:pointer}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:12px}.ccard{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:border-color .12s,transform .12s}.ccard:hover{border-color:#37405c;transform:translateY(-2px)}.ccard .thumb{position:relative;aspect-ratio:4 / 5;background:var(--panel-3);display:flex;align-items:center;justify-content:center;overflow:hidden}.ccard .thumb img{width:100%;height:100%;object-fit:cover;display:block}.ccard .thumb .none{color:var(--dim);font-size:11px}.ccard .rank{position:absolute;top:7px;left:7px;z-index:2;background:#0a0c11d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--line);color:var(--ink);font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px}.ccard .badge{position:absolute;top:7px;right:7px;z-index:2;background:#0a0c11d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--line);font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;font-variant-numeric:tabular-nums}.ccard .badge.pos{color:var(--pos);border-color:#1c5136}.ccard .badge.neg{color:var(--neg);border-color:#5a2323}.ccard .badge.warn{color:var(--warn);border-color:#55411a}.ccard .vtag{position:absolute;bottom:7px;left:7px;z-index:2;background:#0a0c11d1;border:1px solid var(--line);font-size:10px;font-weight:700;letter-spacing:.05em;padding:2px 6px;border-radius:5px;color:var(--purple)}.ccard .meta{padding:9px 10px 10px}.ccard .meta .top{display:flex;justify-content:space-between;gap:6px;align-items:baseline}.ccard .meta .fmt{font-size:11.5px;font-weight:680;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ccard .meta .sp{font-size:11px;color:var(--soft);font-variant-numeric:tabular-nums}.ccard .meta .sub{font-size:11px;color:var(--dim);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ccard .meta .stats{display:flex;gap:9px;margin-top:6px;font-size:11px;color:var(--soft);font-variant-numeric:tabular-nums}.bar{position:relative;height:5px;background:var(--panel-3);border-radius:3px;overflow:hidden;min-width:44px}.bar>i{position:absolute;inset:0 auto 0 0;border-radius:3px;background:var(--accent)}.bar>i.pos{background:var(--pos)}.bar>i.neg{background:var(--neg)}.bar>i.warn{background:var(--warn)}.drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060a9e;z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--panel);border-left:1px solid var(--line);z-index:61;display:flex;flex-direction:column;box-shadow:-18px 0 48px #00000080}.drawer header{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line)}.drawer header h3{margin:0;font-size:14px;font-weight:650;flex:1}.drawer .body{overflow-y:auto;padding:16px;flex:1}.kv{display:grid;grid-template-columns:132px 1fr;gap:6px 12px;font-size:12.5px}.kv .k{color:var(--soft)}.kv .v{color:var(--ink-2);overflow-wrap:anywhere}.login{min-height:100%;display:grid;place-items:center;padding:24px}.login form{width:100%;max-width:340px}.login h1{font-size:19px;margin:0 0 4px;letter-spacing:-.3px}.login p{color:var(--soft);font-size:13px;margin:0 0 18px}.login input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 13px;margin-bottom:10px;outline:0}.login input:focus{border-color:var(--accent)}.login button{width:100%;justify-content:center}.login .err{color:var(--neg);font-size:12.5px;margin-top:10px}.empty{padding:42px 16px;text-align:center;color:var(--soft);font-size:13px}.spin{display:inline-block;width:13px;height:13px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}.sec-title{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--soft);font-weight:650;margin:0 0 8px}@media (max-width: 760px){.main{padding:12px 12px calc(74px + env(safe-area-inset-bottom))}.main.geen-nav{padding-bottom:12px}.row{gap:8px}.topbar{gap:8px;padding:0 10px;height:52px}.brand span{display:none}.board-titel{flex:1;min-width:0;font-size:15px;font-weight:660;letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .spacer{display:none}.topbar .chip{flex-shrink:0}.boards{position:fixed;left:0;right:0;bottom:0;z-index:50;gap:2px;padding:5px 5px calc(5px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);border-radius:0;background:#0a0c11f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.boards button{flex:1 1 0;min-width:0;flex-direction:column;gap:3px;padding:6px 2px;font-size:10px;letter-spacing:0;border-radius:9px}.boards button.on{background:var(--accent-soft);color:#b9cdff}.boards button:hover{background:transparent;color:var(--soft)}.boards button.on:hover{background:var(--accent-soft);color:#b9cdff}.boards button .lang{display:none}.boards button .kort{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bediening{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm)}.bediening.open{border-color:#37405c}.bediening-kop{display:flex;align-items:center;gap:9px;width:100%;min-height:42px;background:transparent;border:0;padding:9px 12px;cursor:pointer;color:var(--ink-2);font-size:13px;text-align:left}.bediening-sam{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:620;color:var(--ink)}.bediening-body{padding:2px 12px 12px;display:grid;gap:10px}.sorteerbalk{display:grid;gap:7px;padding:10px 14px 2px}.sorteerbalk>.btn{justify-self:start;font-weight:500}.sorteerbalk .chip{padding:5px 10px;cursor:pointer}.tbl-wrap.kaarten{overflow-x:visible}.tbl-wrap.kaarten table{display:block}.tbl-wrap.kaarten thead{display:none}.tbl-wrap.kaarten tbody{display:block}.tbl-wrap.kaarten tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;padding:12px 14px;border-bottom:1px solid var(--line)}.tbl-wrap.kaarten tbody tr:last-child{border-bottom:0}.tbl-wrap.kaarten tbody tr:hover{background:transparent}.tbl-wrap.kaarten tbody tr.clickable:active{background:var(--panel-2)}.tbl-wrap.kaarten td{display:block;padding:0;border:0;min-width:0;text-align:left!important;white-space:normal;font-variant-numeric:tabular-nums}.tbl-wrap.kaarten td[data-k]:before{content:attr(data-k);display:block;font-size:10px;line-height:1.35;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);font-weight:650}.tbl-wrap.kaarten td[data-rol=titel]{grid-column:1 / -1;font-size:14px;font-weight:650;color:var(--ink);max-width:none!important;overflow:visible!important}.tbl-wrap.kaarten td[data-rol=breed]{grid-column:1 / -1}.tbl-wrap.kaarten td[data-rol=actie]{grid-column:1 / -1;justify-self:end}.tbl-wrap.kaarten td[data-rol=stil]{display:none}.tbl-wrap.kaarten td[data-rol=beeld]{grid-column:1 / -1}.tbl-wrap.kaarten td[data-rol=beeld] img{width:66px!important;height:82px!important}.tbl-wrap.kaarten tbody tr.totaal{background:var(--panel-3);border-bottom:2px solid var(--accent)}.tbl-wrap.kaarten tbody tr.totaal td,.tbl-wrap.kaarten tbody tr.totaal:hover td{background:transparent;border:0;padding:0}.tbl-wrap.kaarten tbody tr.totaal td.l{font-size:14px;letter-spacing:0;color:var(--ink);text-transform:none}.main,.grid,.grid>*,.card{min-width:0}.tbl-wrap.smal-compact{overflow-x:auto;-webkit-overflow-scrolling:touch}.tbl-wrap.smal-compact table{font-size:11px}.tbl-wrap.smal-compact thead th{padding:7px 4px;font-size:9.5px;letter-spacing:.02em}.tbl-wrap.smal-compact tbody td{padding:5px 4px;line-height:1.3}.tbl-wrap.smal-compact .alleen-breed{display:none}.tbl-wrap.smal-compact thead th:first-child,.tbl-wrap.smal-compact tbody td:first-child{position:sticky;left:0;min-width:120px;border-right:1px solid var(--line)}.tbl-wrap.smal-compact tbody td:first-child{white-space:normal;overflow-wrap:anywhere;line-height:1.2;font-size:11px}.tbl-wrap.smal-compact thead th:first-child{z-index:3;background:var(--panel-2)}.tbl-wrap.smal-compact tbody td:first-child{z-index:1;background:var(--panel)}.tbl-wrap.smal-compact tbody tr:hover td:first-child{background:var(--panel-2)}.tbl-wrap.smal-compact tbody tr.totaal td:first-child{background:var(--panel-3);white-space:normal;overflow:visible}.tbl-wrap.smal-compact tbody td:first-child svg{display:none}.veeg-hint{padding:10px 14px 0;font-size:11px;color:var(--dim)}th .lang{display:none}.kpis{grid-template-columns:1fr 1fr;gap:8px}.kpi{padding:10px 12px}.kpi .lab{font-size:10px}.kpi .val{font-size:19px;margin-top:3px}.kpi .sub{font-size:11px}.card>h2{padding:11px 14px;flex-wrap:wrap;row-gap:4px}.card>h2 .sub{flex-basis:100%}.card .pad{padding:12px 14px}.cards{grid-template-columns:1fr 1fr;gap:10px}.seg{flex-wrap:wrap}.seg button{padding:7px 10px;min-height:32px}.btn{padding:8px 12px;min-height:36px}.ctrl{padding:7px 10px;min-height:38px}.ctrl input,.ctrl select,.login input,input,select,textarea{font-size:16px}.ctrl input[type=number]{width:70px}.ctrl.veld{grid-template-columns:1fr auto!important;gap:4px 8px!important;align-items:center!important}.ctrl.veld>label{grid-column:1 / -1}.drawer{width:100vw;border-left:0}.drawer header{padding:12px 14px}.drawer .body{padding:14px 14px calc(24px + env(safe-area-inset-bottom))}.kv{grid-template-columns:1fr;row-gap:0}.kv .k{padding-top:7px}}@media (max-width: 900px){.naam-kort{display:none}}@media (min-width: 761px){.board-titel,.boards button .kort,th .kort{display:none}}.lnk{color:inherit;text-decoration:none;cursor:pointer}.lnk:hover{color:var(--accent);text-decoration:underline}tbody tr.totaal td{background:var(--panel-3);color:var(--ink);font-weight:700;font-size:13.5px;padding-top:11px;padding-bottom:11px;border-bottom:2px solid var(--accent);border-top:1px solid var(--line)}tbody tr.totaal:hover td{background:var(--panel-3)}tbody tr.totaal td.l{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:650;color:var(--soft)}
