:root{--accent:#E25C20;--accent-dark:#c44c15;--gold:#EEAD39;--ink:#141414;--text:#1d1d1d;--muted:#6d6a66;--line:#e6e2dc;--bg:#f6f4f1;--card:#ffffff;--ok:#2f7d4f;--err:#b3261e;--radius:10px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:inherit}h1,h2,h3{margin:0 0 .6rem;line-height:1.2}h1{font-size:1.6rem;letter-spacing:-.01em}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0 0 .8rem}.muted,small{color:var(--muted)}.topbar{background:var(--ink);color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;flex-wrap:wrap}.logo{font-weight:800;letter-spacing:.06em;text-decoration:none;font-size:1.05rem}.logo .dot{color:var(--accent)}.logo .sub{font-weight:400;opacity:.6;letter-spacing:0;margin-left:.35rem}.nav{display:flex;gap:.25rem;flex-wrap:wrap;flex:1 1}.nav-link{text-decoration:none;padding:.4rem .7rem;border-radius:6px;opacity:.75;font-size:.95rem}.nav-link:hover{opacity:1;background:rgba(255,255,255,.08)}.nav-link.active{opacity:1;background:rgba(255,255,255,.12);box-shadow:inset 0 -2px 0 var(--accent)}.user-chip{font-size:.85rem;opacity:.8;text-decoration:none}.page{max-width:1200px;margin:0 auto;padding:1.75rem 1.25rem 4rem}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.stack>*+*{margin-top:1rem}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.spacer{flex:1 1}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.25rem}.card h2{display:flex;align-items:center;gap:.5rem}.card-link{text-decoration:none;display:block;transition:border-color .15s,transform .15s}.card-link:hover{border-color:var(--accent);transform:translateY(-1px)}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem}.stat .label{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.stat .value{font-size:1.35rem;font-weight:700;margin-top:.2rem}.stat.accent{border-color:var(--accent)}.pos{color:var(--ok)}.neg{color:var(--err)}.tabs{gap:.2rem;border-bottom:1px solid var(--line);margin:0 0 1.25rem;overflow-x:auto}.tab,.tabs{display:flex}.tab{text-decoration:none;padding:.6rem .9rem;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;gap:.35rem;align-items:center}.tab.active,.tab:hover{color:var(--text)}.tab.active{border-bottom-color:var(--accent);font-weight:600}.dot-badge{background:var(--accent);color:#fff;border-radius:999px;font-size:.7rem;padding:0 .4rem;line-height:1.3rem;min-width:1.3rem;text-align:center}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.25rem}.field{margin-bottom:.8rem}input,select,textarea{width:100%;font:inherit;padding:.55rem .65rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}input[type=checkbox]{width:auto;accent-color:var(--accent)}textarea{min-height:90px;resize:vertical}.inline-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-end}.inline-form .field{margin:0;flex:1 1 140px}.inline-form .field.narrow{flex:0 1 110px}.inline-form .field.wide{flex:2 1 240px}.msg{margin:.6rem 0 0;font-size:.88rem}.msg.ok{color:var(--ok)}.msg.err{color:var(--err)}.btn{display:inline-flex;align-items:center;gap:.35rem;font:inherit;font-weight:600;cursor:pointer;background:var(--accent);color:#fff;border:0;border-radius:6px;padding:.55rem 1rem;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--accent-dark)}.btn:disabled{opacity:.6;cursor:default}.btn.secondary{background:#fff;color:var(--text);border:1px solid var(--line)}.btn.secondary:hover{border-color:var(--text)}.btn.ghost{background:transparent;color:var(--muted);padding:.3rem .5rem;font-weight:500}.btn.ghost:hover{color:var(--err);background:transparent}.btn.small{padding:.3rem .6rem;font-size:.85rem}.btn.dark{background:var(--ink)}.linkbtn{background:none;border:0;padding:0;font:inherit;text-decoration:underline}.linkbtn,details>summary{color:var(--muted);cursor:pointer}details>summary{font-weight:600;margin-bottom:.5rem}details[open]>summary{margin-bottom:1rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.92rem}th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;padding:.5rem .6rem;white-space:nowrap}td,th{border-bottom:1px solid var(--line)}td{padding:.55rem .6rem;vertical-align:middle}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}tr.total td{font-weight:700;border-top:2px solid var(--text)}tr.total td,tr:last-child td{border-bottom:0}.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;background:#eee;color:#444;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.badge.lead{background:#f1ede6;color:#7a6a4f}.badge.pre{background:#fdf0d8;color:#8a5a00}.badge.productie{background:#fde3d6;color:var(--accent-dark)}.badge.post{background:#e5e9fb;color:#3446a0}.badge.opgeleverd{background:#dff2e6;color:var(--ok)}.badge.gearchiveerd{background:#eee;color:#888}.badge.warn{background:#fde3d6;color:var(--err)}.badge.role{background:var(--ink);color:#fff}.deadline-list{list-style:none;margin:0;padding:0}.deadline-list li{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.deadline-list li:last-child{border-bottom:0}.deadline-list .when{font-size:.8rem;font-weight:700;min-width:5.5rem}.deadline-list .when.late{color:var(--err)}.deadline-list .when.soon{color:var(--accent)}.deadline-list .done{text-decoration:line-through;color:var(--muted)}.chat{display:flex;flex-direction:column;height:calc(100vh - 260px);min-height:420px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.chat-log{flex:1 1;overflow-y:auto;padding:1rem 1.1rem}.chat-msg{margin-bottom:.9rem;max-width:75%}.chat-msg.me{margin-left:auto;text-align:right}.chat-meta{font-size:.75rem;color:var(--muted);margin-bottom:.2rem}.chat-bubble{display:inline-block;text-align:left;background:#f1eee9;padding:.55rem .8rem;border-radius:12px;white-space:pre-wrap;word-wrap:break-word}.chat-msg.me .chat-bubble{background:var(--accent);color:#fff}.chat-form{display:flex;gap:.5rem;padding:.75rem;border-top:1px solid var(--line)}.chat-form textarea{min-height:44px;height:44px}.chat-day{text-align:center;font-size:.75rem;color:var(--muted);margin:1rem 0}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--ink);padding:1rem}.login-card{background:#fff;border-radius:14px;padding:2rem;width:100%;max-width:400px}.login-card .logo{color:var(--ink);font-size:1.4rem;display:block;margin-bottom:1.25rem}.empty{color:var(--muted);font-style:italic}.welcome{background:#fff6f1;border:1px solid var(--accent);border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:1rem}@media (max-width:640px){.page{padding:1.1rem .9rem 3rem}.chat-msg{max-width:90%}h1{font-size:1.35rem}}