:root{--bg: #0f1115;--panel: #1a1d24;--panel-2: #232730;--text: #e8eaed;--muted: #9aa0a6;--accent: #d72e2e;--accent-2: #f4a300;--ok: #2e7d32;--warn: #c97a00;--open: #2b6cb0;--border: #2b2f38}:root[data-theme=light]{--bg: #f3f4f6;--panel: #ffffff;--panel-2: #eceef2;--text: #1b1e24;--muted: #5b626d;--accent: #d72e2e;--accent-2: #b35a00;--ok: #2e7d32;--warn: #a8650a;--open: #1f5fa8;--border: #d7dbe2}:root[data-theme=light] body:before{opacity:.04}:root[data-theme=light] .day-header-row{box-shadow:0 2px 6px #00000014}:root[data-theme=light] .day-header:hover,:root[data-theme=light] .vehicle-header:hover{background:#e3e6eb}:root[data-theme=light] .day.today .day-header{background:#dbe9f8}:root[data-theme=light] .day.today .day-header:hover{background:#cadff5}:root[data-theme=light] .interval:nth-child(2n){background:#00000006}:root[data-theme=light] .interval.clickable:hover{background:#0000000d}:root[data-theme=light] .exchange-summary:hover,:root[data-theme=light] .switch-row:hover,:root[data-theme=light] .ha-toggle:hover,:root[data-theme=light] .candidate-list label:hover{background:#0000000a}:root[data-theme=light] .skill-badge.sb-bv{color:#a31515}:root[data-theme=light] .skill-badge.sb-ch{color:#1e7a32}:root[data-theme=light] .skill-badge.sb-ms{color:#1c4f87}:root[data-theme=light] .skill-badge.sb-asp{color:#8a5a00}:root[data-theme=light] .skill-badge.sb-veh{color:#1c4f87}:root[data-theme=light] .open-pill,:root[data-theme=light] .open-skills .skill-badge,:root[data-theme=light] .cand-skills .badge,:root[data-theme=light] .slot.open{color:#1c4f87}:root[data-theme=light] .tag.good{color:#1e7a32}:root[data-theme=light] .tag.warn{color:#8a5a00}:root[data-theme=light] .duty-badge{background:#2e7d3224;color:#15803d}:root[data-theme=light] .skill-chip.ch{background:#3b82f624;color:#1d4ed8}:root[data-theme=light] .skill-chip.trainee{background:#eab30829;color:#92400e}:root[data-theme=light] .skill-chip.duty{background:#0000000d;border-color:#00000026;color:#4b5563}:root[data-theme=light] .skill-chip.oefenploeg{background:#2b6cb024;color:#1e40af}:root[data-theme=light] .skill-chip.oefenploeg.oef-1{background:#7c3aed24;border-color:#7c3aed73;color:#6d28d9}:root[data-theme=light] .skill-chip.oefenploeg.oef-2{background:#0891b229;border-color:#0891b273;color:#0e7490}:root[data-theme=light] .skill-chip.oefenploeg.oef-3{background:#c026d324;border-color:#c026d373;color:#a21caf}:root[data-theme=light] .skill-chip.oefenploeg.oef-empty{background:#0000000a;border-color:#00000026;color:#4b5563}:root[data-theme=light] .skill-chip.dienstploeg{background:#0000000d;border-color:#00000026;color:#4b5563}:root[data-theme=light] .skill-chip.dienstploeg.pl-a{background:#d72e2e1f;border-color:#d72e2e73;color:#a31515}:root[data-theme=light] .skill-chip.dienstploeg.pl-b{background:#2b6cb01f;border-color:#2b6cb073;color:#1c4f87}:root[data-theme=light] .skill-chip.dienstploeg.pl-c{background:#2e7d3224;border-color:#2e7d3273;color:#15803d}:root[data-theme=light] .skill-chip.dienstploeg.pl-d{background:#f4a30029;border-color:#f4a30080;color:#8a5a00}:root[data-theme=light] .incident-vehicle{background:#d72e2e1f;color:#a31515}:root[data-theme=light] .incident-vehicle.vehicle-rv{background:#2b6cb01f;color:#1c4f87}:root[data-theme=light] .incident-vehicle.vehicle-ha{background:#f4a30029;color:#8a5a00}:root[data-theme=light] .incident-youbadge{background:#2ea04324;color:#15803d}:root[data-theme=light] .incident-wijk{color:#4b5563}:root[data-theme=light] .incident-body{border-top-color:#0000001a}:root[data-theme=light] .ploeg-badge.pl-a{background:#d72e2e1f;color:#a31515}:root[data-theme=light] .ploeg-badge.pl-b{background:#2b6cb01f;color:#1c4f87}:root[data-theme=light] .ploeg-badge.pl-c{background:#2e7d3224;color:#15803d}:root[data-theme=light] .ploeg-badge.pl-d{background:#f4a30029;color:#8a5a00}:root[data-theme=light] .ploeg-badge.pl-dagdienst,:root[data-theme=light] .ploeg-badge.pl-aspiranten{background:#0000000d}:root[data-theme=light] .req-badge{background:#eab30829;color:#92600a}:root[data-theme=light] .prio-pill.prio-1{background:#d72e2e1f;color:#a31515}:root[data-theme=light] .prio-pill.prio-2{background:#f4a30029;color:#8a5a00}:root[data-theme=light] .prio-pill.prio-3{background:#2b6cb01f;color:#1c4f87}:root[data-theme=light] .prio-pill.prio-4{background:#0000000d}:root[data-theme=light] .prio-pill.prio-oef{background:#2e7d3224;color:#1e7a32}:root[data-theme=light] .overlap-full{background:#d72e2e1f;color:#a31515}:root[data-theme=light] .pill:hover{background:#0000000d}:root[data-theme=light] .pill.pill-yes:hover{color:#1e7a32}:root[data-theme=light] .pill.pill-no:hover{color:#a31515}:root[data-theme=light] .pill.pill-yes.active{background:#22c55e29;color:#15803d}:root[data-theme=light] .pill.pill-no.active{background:#d72e2e24;color:#a31515}:root[data-theme=light] .pill.pill-open{background:#0000000a}:root[data-theme=light] .incidents-toolbar{background:var(--panel);border-color:var(--border)}:root[data-theme=light] .incidents-count{background:#00000012}:root[data-theme=light] .refresh-btn{background:var(--panel-2);border-color:var(--border)}:root[data-theme=light] .refresh-btn:hover:not(:disabled){background:#0000000f}:root[data-theme=light] .notif-btn{background:var(--panel-2);border-color:var(--border)}:root[data-theme=light] .notif-btn:hover{background:#0000000f}:root[data-theme=light] .notif-btn.on{background:#d72e2e1f;border-color:#d72e2e;color:#a31515}:root[data-theme=light] .incident-card{background:var(--panel);border-color:var(--border);box-shadow:0 1px 2px #0000000f}:root[data-theme=light] .incident-card.expanded{border-color:#00000038}:root[data-theme=light] .incident-head:hover{background:#0000000a}:root[data-theme=light] .toast-action:hover{background:#00000014}:root[data-theme=light] .slot.open.selected{background:var(--open);border-color:var(--open);color:#fff;box-shadow:inset 0 0 0 1px #1f5fa899}:root[data-theme=light] .slot.open.selected:hover{background:#1a4f8c}:root[data-theme=light] .slot.open.optional.selected{background:var(--accent-2);border-color:var(--accent-2);color:#fff}:root[data-theme=light] .slot.open.optional.selected:hover{background:#9c4f00}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:url(/logo-round.png?v=2);background-repeat:no-repeat;background-position:center 42%;background-size:min(62vw,460px);background-attachment:fixed;opacity:.05}header.app{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 22px;background:var(--panel);border-bottom:1px solid var(--border)}header.app h1{margin:0;font-size:18px;letter-spacing:.5px}header.app h1.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:600}header.app h1.brand .brand-logo{filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.patch-badge{display:block;border-radius:50%;object-fit:cover;-webkit-user-select:none;user-select:none}.login-patch{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:18px}.login-patch .patch-badge{filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));opacity:.95}.login-patch-caption{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}header.app h1 .accent{color:var(--accent)}.login-brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:18px}.login-brand h2{margin:0;font-size:22px;letter-spacing:.3px}.user{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px;color:var(--muted)}.user-skills{display:inline-flex;gap:4px;flex-wrap:wrap}header.app .header-patch{flex-shrink:0;width:44px;height:44px;border-radius:50%;filter:drop-shadow(0 2px 6px rgba(0,0,0,.45))}header.app .user{margin-left:auto}button{background:var(--accent);color:#fff;border:0;padding:8px 14px;border-radius:6px;cursor:pointer;font-weight:600}button.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}button:disabled{opacity:.5;cursor:not-allowed}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;padding:7px;line-height:0}.theme-toggle svg{width:18px;height:18px;display:block}main{padding:22px;max-width:1400px;margin:0 auto}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:16px;font-size:13px;color:var(--muted)}.legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}.day{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:14px}.day-header-row{position:sticky;top:0;z-index:5;display:flex;align-items:stretch;border-bottom:1px solid var(--border);border-top-left-radius:8px;border-top-right-radius:8px;box-shadow:0 2px 6px #0006;overflow:hidden}.day.collapsed .day-header-row{border-bottom-color:transparent}.day-header{padding:10px 14px;background:var(--panel-2);border:0;font-weight:600;font-size:14px;color:var(--text);text-align:left;flex:1;cursor:pointer;display:flex;align-items:center;gap:10px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.day-header:hover{background:#2a2f3a}.day-shuffle-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;margin:0 8px 0 0;font-size:12px;font-weight:600;letter-spacing:.02em;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:var(--muted);cursor:pointer;white-space:nowrap;flex-shrink:0;align-self:center;transition:background .14s,color .14s,border-color .14s}.day-shuffle-btn:before{content:"⇄";font-size:13px;line-height:1}.day-shuffle-btn:hover{background:#63a0ff2e;border-color:#63a0ff73;color:#7db8ff}:root[data-theme=light] .day-shuffle-btn{background:#0000000a;border-color:#00000026;color:var(--muted)}:root[data-theme=light] .day-shuffle-btn:hover{background:#2563eb1a;border-color:#2563eb59;color:#2563eb}.schedule-load-more{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 0 26px}.schedule-load-more-hint{font-size:12px;color:var(--muted)}.load-more-btn{background:transparent;color:var(--text);border:1px solid var(--border);padding:8px 18px;border-radius:6px;font-weight:600;cursor:pointer}.load-more-btn:hover:not(:disabled){background:var(--panel-2);border-color:var(--accent, #58a6ff)}.load-more-btn:disabled{opacity:.5;cursor:not-allowed}.day-date{flex-shrink:0}.day-vehicle-chips{margin-left:auto;display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}.vehicle-chip{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.4px;padding:2px 7px;border-radius:4px;border:1px solid var(--border);text-transform:uppercase;border-left-width:4px}.vehicle-chip-ok{border-left-color:var(--ok);color:var(--text);background:#38a1691a}.vehicle-chip-understaffed{border-left-color:var(--warn);color:var(--text);background:#c97a001f}.vehicle-chip-critical{border-left-color:var(--accent);color:var(--text);background:#d72e2e1f}.day.today .day-header{background:#2c4d77;border-bottom-color:var(--open)}.day.today .day-header:hover{background:#355a8a}.today-pill{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:var(--open);color:#fff;padding:2px 8px;border-radius:999px}.blocks{display:grid;grid-template-columns:100px 1fr;gap:0}.vehicle-section{border-top:1px solid var(--border)}.vehicle-section:first-child{border-top:0}.vehicle-header{display:flex;align-items:center;gap:12px;width:100%;background:var(--panel-2);border:0;border-left:4px solid transparent;color:var(--text);text-align:left;padding:10px 14px;font-weight:600;font-size:15px;cursor:pointer;border-radius:0}.vehicle-header:hover{background:#2a2f3a}.vehicle-section.understaffed .vehicle-header{border-left-color:var(--warn)}.vehicle-section.critical .vehicle-header{border-left-color:var(--accent)}.vehicle-section.ok .vehicle-header{border-left-color:var(--ok)}.caret{display:inline-block;width:14px;color:var(--muted);font-size:12px}.vehicle-code{font-weight:700;font-size:16px;letter-spacing:.4px}.vehicle-header-row{display:flex;align-items:stretch}.vehicle-header-row .vehicle-header{flex:1;width:auto}.vehicle-out-btn{display:inline-flex;align-items:center;justify-content:center;padding:0 12px;background:transparent;border:0;border-left:1px solid var(--border);cursor:pointer;font-size:16px;color:var(--muted);flex-shrink:0;transition:background .14s,color .14s}.vehicle-out-btn:hover{background:#ef44441f;color:#ef4444}.vehicle-in-btn{display:inline-flex;align-items:center;justify-content:center;padding:0 12px;background:transparent;border:0;border-left:1px solid var(--border);cursor:pointer;font-size:16px;color:var(--muted);flex-shrink:0;transition:background .14s,color .14s}.vehicle-in-btn:hover{background:#22c55e24;color:#22c55e}.vehicle-summary{margin-left:auto;font-weight:400;color:var(--muted);font-size:13px;display:flex;align-items:center;gap:10px}.open-pill{background:#2b6cb040;color:#c8e1ff;border:1px solid var(--open);padding:1px 8px;border-radius:10px;font-size:12px;font-weight:600}.open-skills{display:inline-flex;flex-wrap:wrap;gap:4px;margin-left:4px}.open-skills .skill-badge{background:#2b6cb02e;border-color:var(--open);color:#c8e1ff}.open-skills .skill-badge.optional{background:#f4a3001f;border-color:var(--accent-2);color:var(--accent-2)}.shift-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.5px;padding:2px 6px;border-radius:4px;border:1px solid currentColor;text-transform:uppercase;line-height:1.2}.shift-badge.shift-dag{background:#38bdf82e;border-color:#38bdf8;color:#bae6fd}.shift-badge.shift-avond{background:#a78bfa2e;border-color:#a78bfa;color:#ddd6fe}:root[data-theme=light] .shift-badge.shift-dag{color:#0c5a86}:root[data-theme=light] .shift-badge.shift-avond{color:#5b3aa6}.interval-list{display:flex;flex-direction:column;padding:6px 0}.interval{display:grid;grid-template-columns:200px 1fr;gap:12px;padding:12px 14px 12px 28px;border-left:3px solid transparent;border-bottom:1px solid var(--border);align-items:start}.interval:last-child{border-bottom:none}.interval:nth-child(2n){background:#ffffff05}.interval.clickable{cursor:pointer}.interval.clickable:hover{background:#ffffff0d}.interval.understaffed{border-left-color:var(--warn);background:#c97a0012}.interval.understaffed:nth-child(2n){background:#c97a001a}.interval.critical{border-left-color:var(--accent);background:#d72e2e14}.interval.critical:nth-child(2n){background:#d72e2e1c}.interval.ok{border-left-color:var(--ok)}.interval-time{font-variant-numeric:tabular-nums;color:var(--muted);display:flex;flex-direction:column;gap:4px;font-size:13px;padding-top:4px}.interval-time .time-text{color:var(--text);font-weight:500}.interval-time .count{display:inline-block;font-size:11px;font-weight:600;color:var(--text);background:var(--panel-2);padding:1px 6px;border-radius:8px;width:fit-content}.interval-lock-note{display:inline-block;width:fit-content;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:999px;border:1px solid rgba(239,68,68,.45);background:#ef444424;color:#fca5a5}:root[data-theme=light] .interval-lock-note{border-color:#dc262659;background:#dc26261f;color:#b91c1c}.link-btn{background:none;border:0;color:var(--muted);padding:0;font-size:12px;text-decoration:underline;cursor:pointer;font-weight:400;width:fit-content}.link-btn:hover{color:var(--text)}.muted-small{color:var(--muted);font-size:12px;font-style:italic}.interval-people{display:flex;flex-direction:column;gap:4px;padding:2px 0;align-items:stretch}.interval-people .slot{width:100%;display:grid;grid-template-columns:18px auto 1fr;gap:10px;align-items:center;white-space:normal;background:#2b6cb01a;border:1px dashed var(--open);color:var(--text);text-align:left;padding:6px 10px;border-radius:6px;font:inherit;cursor:pointer}.interval-people .slot:hover:not(:disabled){background:#2b6cb038}.interval-people .slot.optional{background:#f4a30014;border-color:var(--accent-2)}.interval-people .slot.disabled,.interval-people .slot:disabled{opacity:.45;cursor:not-allowed}.interval-people .slot>.skill-badge{justify-self:start}.slot-open-label{display:flex;align-items:center;gap:8px;min-width:0}.slot-open-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--muted)}.show-filled-toggle{margin-top:2px;background:transparent;border:1px solid var(--border);color:var(--muted);padding:4px 8px;border-radius:6px;font-size:12px;cursor:pointer;align-self:flex-start;display:inline-flex;align-items:center;gap:6px}.show-filled-toggle:hover{color:var(--text);border-color:var(--muted)}.show-filled-toggle .caret{width:auto}.filled-list{margin-top:4px;padding:6px 8px;background:#ffffff08;border-radius:6px;display:flex;flex-direction:column;gap:4px}.filled-row{display:flex;flex-direction:row;align-items:center;gap:8px;padding:2px 0}.filled-row .skill-badge{flex-shrink:0}.filled-row .filled-name{font-size:13px;color:var(--text)}.interval.is-now{outline:2px solid var(--open);outline-offset:-2px;border-radius:4px}.vehicle-ok-pill{font-size:11px;color:var(--ok);background:#38a1691f;border:1px solid var(--ok);padding:1px 8px;border-radius:10px;font-weight:600}.skill-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.4px;background:var(--bg);color:var(--text);padding:2px 6px;border-radius:4px;border:1px solid var(--border);text-transform:uppercase}.skill-badge.optional{border-color:var(--accent-2);color:var(--accent-2);background:#f4a30014}.skill-badge.sb-bv{background:#d72e2e2e;border-color:#d72e2e;color:#ffb1b1}.skill-badge.sb-ch{background:#2ea0432e;border-color:#2ea043;color:#b6f0c2}.skill-badge.sb-ms{background:#2b6cb038;border-color:#2b6cb0;color:#c8e1ff}.skill-badge.sb-asp{background:#f4a3002e;border-color:#f4a300;color:#ffd591}.open-skills .skill-badge.sb-bv{background:#d72e2e2e;border-color:#d72e2e;color:#ffb1b1}.open-skills .skill-badge.sb-ch{background:#2ea0432e;border-color:#2ea043;color:#b6f0c2}.open-skills .skill-badge.sb-ms{background:#2b6cb038;border-color:#2b6cb0;color:#c8e1ff}.open-skills .skill-badge.sb-asp{background:#f4a3002e;border-color:#f4a300;color:#ffd591}.slot{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;font-size:13px;background:var(--panel-2);border:1px solid var(--border);white-space:nowrap}.slot.open{background:#2b6cb026;border-color:var(--open);cursor:pointer;color:#c8e1ff}.slot.open:hover{background:#2b6cb04d}.slot.open.optional{background:#f4a3001a;border-color:var(--accent-2);color:var(--accent-2)}.slot.open.optional:hover{background:#f4a30033}.slot.open.disabled{background:var(--panel-2);border-color:var(--border);color:var(--muted);cursor:not-allowed;opacity:.55}.slot.open.disabled:hover{background:var(--panel-2)}.login{max-width:360px;margin:80px auto;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:24px}.login h2{margin-top:0}.login label{display:block;margin:12px 0 4px;font-size:13px;color:var(--muted)}.login input{width:100%;padding:8px 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px}.login .error{color:#ff7676;margin-top:10px;font-size:13px}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px 24px;background:radial-gradient(ellipse at top,rgba(215,46,46,.18),transparent 60%),radial-gradient(ellipse at bottom,rgba(244,163,0,.08),transparent 60%),var(--bg);gap:24px}.login-hero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}.login-hero-glow{position:absolute;top:-20px;left:50%;transform:translate(-50%);width:240px;height:240px;background:radial-gradient(circle,rgba(244,163,0,.35),transparent 70%);filter:blur(20px);z-index:0;pointer-events:none;animation:hero-pulse 4s ease-in-out infinite}.login-hero-logo{position:relative;z-index:1;filter:drop-shadow(0 8px 24px rgba(0,0,0,.6));animation:hero-rise .6s ease-out both}.login-hero-title{position:relative;z-index:1;margin:0;font-size:28px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--text)}.login-hero-title .accent{color:var(--accent)}.login-hero-subtitle{position:relative;z-index:1;margin:0;font-size:13px;letter-spacing:4px;text-transform:uppercase;color:var(--muted)}.login-card{width:min(380px,100%);background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:10px;padding:24px;box-shadow:0 12px 32px #00000073}.login-card-title{margin:0 0 4px;font-size:18px;font-weight:600}.login-card-help{margin:0 0 16px;color:var(--muted);font-size:13px}.login-form{display:flex;flex-direction:column;gap:4px}.login-form label{font-size:12px;color:var(--muted);margin:10px 0 4px}.login-form input{width:100%;padding:10px 12px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:14px;transition:border-color .15s ease}.login-form input:focus{outline:none;border-color:var(--accent)}.login-form .error{color:#ff7676;margin-top:10px;font-size:13px}.login-submit{margin-top:18px;padding:12px 16px;font-size:15px;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .15s ease,transform .1s ease}.login-submit:hover:not(:disabled){background:#b82323}.login-submit:active:not(:disabled){transform:translateY(1px)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-footer{font-size:12px;color:var(--muted);text-align:center;max-width:380px;margin:0}@keyframes hero-pulse{0%,to{opacity:.5;transform:translate(-50%) scale(1)}50%{opacity:.85;transform:translate(-50%) scale(1.05)}}@keyframes hero-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.login-hero-title{font-size:22px}.login-hero-logo{width:130px;height:130px}}.banner{background:#c97a0026;border:1px solid var(--warn);padding:10px 14px;border-radius:6px;margin-bottom:14px;font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:22px;width:min(440px,92vw)}.modal h3{margin:0 0 8px}.modal .muted{color:var(--muted);font-size:13px;margin:4px 0 14px}.modal label{display:block;margin:10px 0 4px;font-size:12px;color:var(--muted)}.modal input{width:100%;padding:8px 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:14px}.modal .error{color:#ff7676;margin-top:10px;font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.confirm-list{margin:4px 0 0;display:flex;flex-direction:column;gap:8px}.confirm-list>div{display:flex;gap:12px;align-items:baseline}.confirm-list dt{flex:0 0 92px;margin:0;font-size:12px;color:var(--muted)}.confirm-list dd{margin:0;font-size:14px;color:var(--text);font-weight:600}.modal textarea,.modal select{width:100%;padding:8px 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit}.tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tab{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;padding:10px 16px;border-radius:0;font-weight:600;cursor:pointer;font-size:14px;white-space:nowrap;scroll-snap-align:start;flex:0 0 auto}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.exchange-toolbar{display:flex;gap:8px;margin-bottom:14px}.exchange-section{margin-bottom:24px}.exchange-section h2{font-size:16px;margin:0 0 10px;color:var(--text)}.exchange-section h2 .muted{color:var(--muted);font-weight:400;font-size:13px}.exchange-mark-seen{margin-left:10px;font-size:12px;font-weight:400;padding:3px 8px;vertical-align:middle}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-overlay-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:22px 26px;max-width:340px;width:calc(100% - 48px);text-align:center;box-shadow:0 12px 40px #0006}.loading-overlay-icon{font-size:34px;margin-bottom:6px;animation:loading-truck 1.6s ease-in-out infinite}@keyframes loading-truck{0%,to{transform:translate(-6px)}50%{transform:translate(6px)}}.loading-overlay-title{font-weight:600;margin-bottom:12px}.loading-overlay-bar{margin:0 auto 12px}.loading-overlay-line{color:var(--muted);font-size:13px;font-style:italic;min-height:2.6em}.exchange-section .muted{color:var(--muted);font-size:13px}.exchange-card{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;margin-bottom:8px;overflow:hidden}.exchange-card.ex-available{border-left-color:var(--open)}.exchange-card.ex-mine{border-left-color:var(--accent-2)}.exchange-card.ex-withdrawn{border-left-color:var(--muted)}.exchange-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px;width:100%;background:transparent;border:0;color:var(--text);text-align:left;padding:10px 14px;cursor:pointer;font-size:14px}.exchange-summary:hover{background:#ffffff08}.exchange-summary .caret{color:var(--muted);width:14px;font-size:12px}.exchange-date{font-weight:600}.exchange-time{font-variant-numeric:tabular-nums;color:var(--muted)}.exchange-by{margin-left:auto;font-size:13px}.exchange-state-pill{margin-left:auto;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;background:#f4a30026;color:var(--accent-2);border:1px solid var(--accent-2);padding:1px 8px;border-radius:999px}.muted-badge{color:var(--muted);border-color:var(--border);background:var(--panel-2)}.overlap-badge{font-size:11px;font-weight:600;letter-spacing:.3px;padding:2px 8px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.overlap-full{background:#d72e2e2e;color:#ff8a8a;border-color:#d72e2e8c}.overlap-partial{background:#f4a3002e;color:var(--accent-2);border-color:#f4a3008c}.overlap-intervals{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--text)}.overlap-intervals li{margin:2px 0;font-variant-numeric:tabular-nums}.exchange-details{padding:8px 16px 14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.exchange-dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;font-size:13px}.exchange-dl dt{color:var(--muted)}.exchange-dl dd{margin:0;color:var(--text)}.exchange-actions{display:flex;gap:6px;flex-shrink:0}.exchange-actions button{padding:6px 12px;font-size:13px}.partial-takeover-modal{width:min(560px,96vw)}.partial-available{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}.partial-available strong{flex-basis:100%;font-size:13px}.partial-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.partial-warning{margin:14px 0 0;padding:10px 12px;border:1px solid rgba(255,191,71,.35);border-radius:8px;background:#ffbf4714;color:var(--muted);font-size:12px;line-height:1.45}.modal-wide{width:min(640px,96vw);max-height:90vh;overflow-y:auto}.roster-shuffle-modal{width:min(920px,96vw)}.vout-modal{width:min(580px,96vw)}.vout-modal-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.vout-modal-head h3{margin:0;display:flex;align-items:center;gap:8px}.vout-vehicle-badge{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--accent);color:#fff;font-size:13px;font-weight:700;letter-spacing:.5px}.vout-period-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:10px}.vout-period-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);flex:1;min-width:160px}.vout-period-row input{width:100%}.vout-reason-label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);margin-bottom:12px}.vout-reason-label input{width:100%}.vout-preview{display:flex;flex-direction:column;gap:10px;margin-top:8px}.vout-section{border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--panel-2)}.vout-section-head{margin:0 0 4px;font-size:13px}.vout-section-head.vout-ok{color:var(--ok)}.vout-section-head.vout-warn{color:var(--warn)}.vout-section-sub{margin:0 0 8px}.vout-person-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:13px}.vout-person-name{flex:1}.vout-reassign-arrow{color:var(--muted);display:flex;align-items:center;gap:4px}.vout-lock-note{margin-top:6px;padding:8px 12px;border-radius:8px;border:1px solid rgba(239,68,68,.3);background:#ef44440f;font-size:13px;color:var(--text);display:flex;align-items:center;gap:6px}.vout-lock-icon{font-size:15px}.vout-success{background:#22c55e1f;border-color:#22c55e4d;color:var(--ok)}.btn-danger{padding:10px 18px;background:#dc2626;color:#fff;border:0;border-radius:8px;font-weight:600;cursor:pointer;transition:background .14s}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{opacity:.5;cursor:default}.shuffle-summary{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.shuffle-summary>span{padding:4px 8px;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);font-size:12px;color:var(--muted)}.shuffle-preview-list{display:flex;flex-direction:column;gap:10px;margin:10px 0}.shuffle-window{border:1px solid var(--border);border-radius:10px;background:var(--panel-2);padding:10px}.shuffle-window h4{margin:0 0 8px;font-size:13px}.shuffle-block{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shuffle-block-4{grid-template-columns:repeat(4,minmax(0,1fr))}.shuffle-missing-head{color:#e07b40}.shuffle-missing{color:#e07b40;font-size:12px}.shuffle-block strong{font-size:12px;color:var(--muted)}.shuffle-block ul{margin:6px 0 0;padding-left:16px}.shuffle-block li{margin:0 0 4px;font-size:13px}.shuffle-skipped{margin-top:10px}.shuffle-skipped summary{cursor:pointer;color:var(--muted)}.form-row{display:flex;gap:12px}.form-col{flex:1}.candidate-picker{margin:14px 0;border:1px solid var(--border);border-radius:8px;padding:10px 12px 12px}.candidate-picker legend{padding:0 6px;font-size:13px;color:var(--muted);line-height:1.6}.candidate-picker legend .skill-badge{vertical-align:middle}.candidate-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.candidate-toolbar select{width:auto}.candidate-toolbar .ghost{padding:6px 12px;font-size:12px;min-height:36px}label.switch-row{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;padding:10px 12px;margin:0 0 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);cursor:pointer;transition:background .12s ease,border-color .12s ease;font-size:14px;color:var(--text)}.switch-row:hover{background:#ffffff08}.switch-row.on{border-color:#58a6ff8c;background:#58a6ff14}.switch-row.disabled{opacity:.55;cursor:not-allowed}.switch-input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.switch-track{position:relative;display:block;width:44px;height:26px;border-radius:999px;background:#3a3f47;transition:background .16s ease;flex-shrink:0}.switch-thumb{position:absolute;display:block;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0006;transition:transform .16s ease}.switch-row.on .switch-track{background:var(--accent, #58a6ff)}.switch-row.on .switch-thumb{transform:translate(18px)}.switch-input:focus-visible+.switch-track{outline:2px solid var(--accent, #58a6ff);outline-offset:2px}.switch-text{display:flex;flex-direction:column;min-width:0}.switch-title{font-size:14px;font-weight:500;color:var(--text)}.switch-desc{font-size:12px;line-height:1.4;margin-top:2px}label.switch-row.compact{margin:0;padding:6px 10px;width:fit-content}.switch-row.compact .switch-track{width:36px;height:22px}.switch-row.compact .switch-thumb{width:16px;height:16px;top:3px;left:3px}.switch-row.compact.on .switch-thumb{transform:translate(14px)}.switch-row.compact .switch-title{font-size:13px}.rooster-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px}.rooster-toolbar-top{display:flex;width:100%;align-items:center;gap:8px;flex-wrap:wrap}.rooster-toolbar-bottom{width:100%;display:flex;align-items:center}.ha-toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);cursor:pointer;-webkit-user-select:none;user-select:none;flex:0 0 auto;transition:background .12s ease,border-color .12s ease}.ha-toggle:hover{background:#ffffff08}.ha-toggle.on{border-color:#58a6ff8c;background:#58a6ff14}.ha-toggle .switch-track{width:34px;height:20px;flex-shrink:0}.ha-toggle .switch-thumb{width:14px;height:14px;top:3px;left:3px}.ha-toggle.on .switch-track{background:var(--accent, #58a6ff)}.ha-toggle.on .switch-thumb{transform:translate(14px)}.ha-toggle-label{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap}.roster-filter-wrap{display:inline-flex;align-items:center;gap:6px}.roster-filter-select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:999px;font-size:13px;padding:6px 10px}.export-btn{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:0;width:40px;height:40px;padding:0;border-radius:50%;font-size:18px;line-height:1;flex-shrink:0}@media(max-width:560px){.rooster-toolbar{flex-wrap:wrap;gap:8px}.rooster-toolbar-top,.rooster-toolbar-bottom{width:100%}.export-btn{margin-left:auto}}.slot-check{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:12px;font-weight:700;line-height:1;border:1px solid currentColor;flex-shrink:0}.slot.open.selectable{cursor:pointer}.slot.open.selectable:hover{background:#2b6cb04d}.slot.open.optional.selectable:hover{background:#f4a30033}.slot-open-count{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:30px;font-size:14px;font-weight:800;line-height:1;padding:3px 9px;border-radius:999px;background:#58a6ff38;color:var(--text);border:1px solid var(--accent, #58a6ff)}.slot.open.optional .slot-open-count{background:#f4a30038;border-color:var(--accent-2)}.slot.open.selected{background:#58a6ff52;border-color:var(--accent, #58a6ff);color:#fff;box-shadow:inset 0 0 0 1px #58a6ff99}.slot.open.selected:hover{background:#58a6ff6b}.slot.open.selected .slot-check{background:#fff;color:var(--accent, #2b6cb0);border-color:#fff}.slot.open.optional.selected{background:#f4a30052;border-color:var(--accent-2);color:#fff}.slot.open.optional.selected:hover{background:#f4a3006b}.slot.open.optional.selected .slot-check{background:#fff;color:var(--accent-2);border-color:#fff}.multiselect-bar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:60;width:min(560px,calc(100% - 24px));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--panel, #161a22);border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 30px #00000073;animation:msb-rise .16s ease-out}@keyframes msb-rise{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.multiselect-bar .msb-count{font-weight:600;font-size:14px;white-space:nowrap}.multiselect-bar .msb-actions{display:flex;gap:8px}.multiselect-bar .msb-confirm{font-weight:600;white-space:nowrap}@media(max-width:480px){.multiselect-bar{gap:8px;padding:10px 12px}.multiselect-bar .msb-count{font-size:13px}}.multiclaim-list{list-style:none;margin:12px 0;padding:0;max-height:50vh;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.multiclaim-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2)}.multiclaim-item .mc-main{display:flex;flex-direction:column;gap:8px;width:100%}.multiclaim-item .mc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.multiclaim-item .mc-date{font-weight:600;font-size:13px}.multiclaim-item .mc-what{display:flex;align-items:center;gap:8px}.multiclaim-item .mc-vehicle{font-weight:600;font-size:13px}.multiclaim-item .mc-bonus{font-size:11px;color:var(--accent-2);font-weight:600}.mc-time-edit{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mc-stepper{display:inline-flex;align-items:center;gap:6px}.mc-stepper-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.mc-step-btn{width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;line-height:1;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;cursor:pointer}.mc-step-btn:hover:not(:disabled){border-color:var(--accent)}.mc-step-btn:disabled{opacity:.4;cursor:not-allowed}.mc-step-value{min-width:44px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600;font-size:13px}.mc-time-sep{color:var(--muted)}.mc-reset{background:transparent;color:var(--muted);border:1px solid var(--border);padding:4px 10px;font-size:12px;font-weight:600;border-radius:6px;cursor:pointer}.mc-reset:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.multiclaim-progress{margin:4px 0 0}.export-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:6px 0 12px}.export-field{display:flex;flex-direction:column;gap:6px}.export-label{font-size:12px;color:var(--muted)}.export-days{display:flex;gap:6px;flex-wrap:wrap}.day-pill{background:transparent;color:var(--text);border:1px solid var(--border);padding:6px 12px;border-radius:999px;font-weight:600;font-size:13px;cursor:pointer}.day-pill.active{background:#58a6ff2e;border-color:var(--accent, #58a6ff)}.export-preview-label{display:block;font-size:12px;color:var(--muted);margin:8px 0 4px}.export-preview{width:100%;padding:10px 12px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.45;resize:vertical;white-space:pre}.my-duties .day{margin-bottom:14px}.my-duty-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.my-duty-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);font-size:14px}.my-duty-time{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.my-duty-vehicle{font-size:12px}.my-duty-hint{font-size:12px;font-style:italic}.my-duty-row .ruil-btn{margin-left:auto}.stats-view{display:flex;flex-direction:column;gap:22px}.stats-head h2{margin:0 0 4px;font-size:18px}.stats-head .small{font-size:12px}.stats-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.kpi{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:var(--panel-2);display:flex;flex-direction:column;gap:2px}.kpi-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.kpi-value{font-size:24px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.kpi-sub{font-size:12px}.stats-section h3{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 10px}.loading-progress{position:relative;height:6px;width:100%;background:#ffffff0f;border-radius:3px;overflow:hidden;margin:6px 0 4px}.loading-progress:before{content:"";position:absolute;top:0;left:0;height:100%;width:35%;background:linear-gradient(90deg,transparent,var(--accent, #d72e2e),transparent);border-radius:3px;animation:loading-slide 1.4s cubic-bezier(.4,0,.2,1) infinite}@keyframes loading-slide{0%{left:-40%}to{left:100%}}.loading-line{display:flex;flex-direction:column;gap:6px;margin:8px 0}.loading-line .muted{font-size:12px}.loading-step{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px;color:var(--text)}.progress-bar{position:relative;height:10px;width:100%;background:#ffffff1f;border:1px solid var(--border);border-radius:5px;overflow:hidden}.progress-fill{position:relative;height:100%;background:linear-gradient(90deg,var(--open) 0%,#58a6ff 100%);border-radius:5px;transition:width .4s cubic-bezier(.4,0,.2,1);overflow:hidden}.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#fff0,#ffffff59,#fff0);transform:translate(-100%);animation:progress-shimmer 1.2s ease-in-out infinite}.progress-fill.indeterminate{width:40%;animation:progress-indeterminate 1.6s ease-in-out infinite}@keyframes progress-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes progress-indeterminate{0%{transform:translate(-110%)}to{transform:translate(260%)}}.stats-loading{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:18px 20px;display:flex;flex-direction:column;gap:10px;max-width:520px;margin:12px 0}.stats-loading p{margin:0}.stats-subhead{font-size:13px;font-weight:600;color:var(--muted);margin:18px 0 8px;text-transform:uppercase;letter-spacing:.04em}.skill-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.skill-rank-row{display:grid;grid-template-columns:minmax(72px,auto) 1fr 48px 56px;align-items:center;gap:10px;font-size:13px}.skill-rank-bar{height:14px;background:#ffffff0d;border:1px solid var(--border);border-radius:7px;overflow:hidden}.skill-rank-fill{height:100%;border-radius:7px;transition:width .32s cubic-bezier(.4,0,.2,1)}.skill-rank-stacked{display:flex}.skill-rank-seg{height:100%;display:block}.skill-rank-seg-planned{opacity:.45;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.45) 0,rgba(255,255,255,.45) 3px,transparent 3px,transparent 6px)}.skill-rank-count{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.skill-rank-pct{text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.stats-dot-trained{background:#6cb4ee}.stats-dot-planned{background:#6cb4ee;opacity:.45;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0,rgba(255,255,255,.55) 2px,transparent 2px,transparent 4px)}@media(max-width:720px){.skill-rank-row{grid-template-columns:minmax(64px,auto) 1fr 40px 50px;gap:8px}}.month-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.month-bar-row{display:grid;grid-template-columns:36px 1fr 60px;align-items:center;gap:10px;font-size:13px}.month-name{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.04em}.month-bar-track{position:relative;height:18px;background:#ffffff0a;border:1px solid var(--border);border-radius:999px;overflow:hidden}.month-bar-total{position:absolute;inset:0 auto 0 0;background:#58a6ff59;border-radius:999px}.month-bar-past{height:100%;background:var(--accent, #58a6ff);border-radius:999px 0 0 999px}.month-bar-stacked{position:absolute;inset:0 auto 0 0;display:flex;border-radius:999px;overflow:hidden}.month-bar-seg{height:100%;position:relative;display:flex;align-items:center;justify-content:center;min-width:1px;box-shadow:inset -1px 0 #00000073;overflow:hidden}.month-bar-seg:last-child{box-shadow:none}.month-bar-seg-label{font-size:10px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.5);letter-spacing:.02em;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:clip}.month-bar-seg.sb-bv{background:#d72e2e}.month-bar-seg.sb-ch{background:#2ea043}.month-bar-seg.sb-ms{background:#2b6cb0}.month-bar-seg.sb-asp{background:#f4a300}.month-bar-seg.sb-default{background:#6e7681}.month-hours{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.stats-legend{margin-top:8px;gap:14px}.stats-dot-past{background:var(--accent, #58a6ff)}.stats-dot-future{background:#58a6ff59}.stats-dot-skill.sb-bv{background:#d72e2e}.stats-dot-skill.sb-ch{background:#2ea043}.stats-dot-skill.sb-ms{background:#2b6cb0}.stats-dot-skill.sb-asp{background:#f4a300}.stats-dot-skill.sb-default{background:#6e7681}.skill-stats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.skill-stat-row{display:grid;grid-template-columns:minmax(58px,auto) 1fr 60px 36px;align-items:center;gap:10px;font-size:13px}.skill-stat-bar{height:10px;background:#ffffff0a;border-radius:999px;border:1px solid var(--border);overflow:hidden}.skill-stat-fill{height:100%;border-radius:999px;background:var(--accent, #58a6ff)}.skill-stat-fill.sb-bv{background:#d72e2e}.skill-stat-fill.sb-ch{background:#2ea043}.skill-stat-fill.sb-ms{background:#2b6cb0}.skill-stat-fill.sb-asp{background:#f4a300}.skill-stat-hours{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.skill-stat-count{text-align:right;font-size:12px}@media(max-width:720px){.stats-kpis{grid-template-columns:repeat(2,1fr)}.kpi-value{font-size:20px}.skill-stat-row{grid-template-columns:minmax(54px,auto) 1fr 56px 32px}}.link-btn.ruil-btn{color:var(--accent, #58a6ff);text-decoration:none;font-weight:600;border:1px solid rgba(88,166,255,.45);border-radius:999px;padding:2px 10px;background:#58a6ff14}.link-btn.ruil-btn:hover{color:#fff;background:var(--accent, #58a6ff)}.pre-approved-hint{margin:0 0 8px}.toelichting-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:14px}.toelichting-head label{margin:0;font-size:13px;color:var(--text)}.toelichting-actions{display:flex;gap:6px;flex-wrap:wrap}.toelichting-actions .ghost{padding:6px 12px;font-size:12px;min-height:34px}.toelichting-actions .ghost[disabled]{opacity:.4;cursor:not-allowed}label.inline{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--text)}label.inline.pre-approved{display:flex;margin-top:10px}.candidate-list{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.candidate-list li{border-bottom:1px solid var(--border)}.candidate-list li:last-child{border-bottom:0}.candidate-list li.selected{background:#58a6ff1a}.candidate-list label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:12px;row-gap:4px;margin:0;padding:10px 12px;min-height:48px;font-size:14px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.candidate-list label:hover{background:#ffffff08}.candidate-list input[type=checkbox],.candidate-list input[type=radio]{width:20px;height:20px;margin:0;flex-shrink:0;accent-color:var(--accent, #58a6ff)}.cand-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.cand-skills{display:inline-flex;gap:4px}.cand-skills .badge{display:inline-block;padding:1px 6px;font-size:11px;border-radius:4px;background:#58a6ff2e;border:1px solid rgba(88,166,255,.5);color:#c8e1ff}.cand-flags{display:inline-flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.tag{font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap;font-weight:500;line-height:1.4}.tag.good{background:#2ea04333;color:#b6f0c2}.tag.warn{background:#f4a30033;color:#ffd591}@media(max-width:520px){.candidate-list label{grid-template-columns:auto 1fr;column-gap:12px;padding:12px}.cand-name{grid-column:2}.cand-flags{grid-column:2;justify-content:flex-start}.candidate-list input[type=checkbox],.candidate-list input[type=radio]{grid-row:1 / span 2;align-self:center}}.duty-picker{margin:14px 0;border:1px solid var(--border);border-radius:8px;padding:10px 12px 12px}.duty-picker legend{padding:0 6px;font-size:13px;color:var(--muted)}.duty-list{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.duty-item{border:1px solid var(--border);border-left-width:4px;border-radius:6px;background:var(--panel-2);transition:background .12s ease,border-color .12s ease}.duty-item label{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:10px;margin:0;padding:8px 12px;font-size:13px;color:var(--text);cursor:pointer}.duty-item.selected{background:#58a6ff1a}.duty-when{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duty-vehicle{font-size:11px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.duty-item.sb-bv{border-left-color:#d72e2e;background:#d72e2e14}.duty-item.sb-ch{border-left-color:#2ea043;background:#2ea04314}.duty-item.sb-ms{border-left-color:#2b6cb0;background:#2b6cb01a}.duty-item.sb-asp{border-left-color:#f4a300;background:#f4a30014}.duty-item.sb-bv.selected{background:#d72e2e2e}.duty-item.sb-ch.selected{background:#2ea0432e}.duty-item.sb-ms.selected{background:#2b6cb038}.duty-item.sb-asp.selected{background:#f4a3002e}.duty-load-more{display:flex;justify-content:center;margin-top:10px}.adv-selected-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#58a6ff14}.adv-selected-summary>button{margin-left:auto}.time-edit{margin:14px 0;border:1px solid var(--border);border-radius:8px;padding:10px 12px 12px}.time-edit legend{padding:0 6px;font-size:13px;color:var(--muted)}.time-edit .small{font-size:12px;margin:0 0 8px}.duty-now-badge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:2px 6px;border-radius:999px;white-space:nowrap;color:#1c4f87;background:#58a6ff38;border:1px solid rgba(88,166,255,.5)}.offer-editor{margin:14px 0;border:1px solid var(--border);border-radius:8px;padding:10px 12px 12px}.offer-editor legend{padding:0 6px;font-size:13px;color:var(--muted)}.offer-editor .small{font-size:12px;margin:0 0 8px}.offer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:40vh;overflow-y:auto}.offer-item{border:1px solid var(--border);border-radius:8px;background:var(--panel-2);padding:8px 10px 10px;display:flex;flex-direction:column;gap:8px}.offer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.offer-date{font-weight:600;font-size:13px}.offer-what{display:flex;align-items:center;gap:8px}.offer-vehicle{font-size:11px;text-transform:uppercase;letter-spacing:.5px}.offer-remove{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:6px;cursor:pointer}.offer-remove:hover:not(:disabled){color:var(--accent, #d72e2e);border-color:var(--accent, #d72e2e)}.offer-remove:disabled{opacity:.4;cursor:not-allowed}.offer-quick{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.offer-quick-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.quick-btn{padding:5px 12px;font-size:12px;font-weight:600;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:999px;cursor:pointer}.quick-btn:hover:not(:disabled){border-color:var(--accent)}.quick-btn:disabled{opacity:.4;cursor:not-allowed}.offer-time-edit{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.offer-dt{display:flex;flex-direction:column;gap:3px;flex:1 1 220px;min-width:200px;margin:0}.offer-dt-label{font-size:12px;color:var(--muted)}.offer-dt input[type=datetime-local]{width:100%;box-sizing:border-box;padding:8px 10px;min-height:40px;font-size:14px;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:8px}.offer-dt input[type=datetime-local]:focus-visible{outline:2px solid var(--accent, #58a6ff);outline-offset:1px}@media(max-width:560px){.offer-time-edit{flex-direction:column;align-items:stretch}.offer-dt{flex:1 1 auto;min-width:0}}.candidate-picker{margin:14px 0 0;border:1px solid var(--border);border-radius:10px;padding:10px 12px 12px}.candidate-picker legend{padding:0 6px;font-size:13px;color:var(--muted)}.candidate-picker .candidate-list{margin-top:6px}.adv-mode-toggle{display:flex;gap:8px;margin:6px 0 14px}.adv-mode-toggle button{flex:1}.adv-mode-toggle button.active{background:#58a6ff2e;border-color:var(--accent, #58a6ff);color:var(--text)}.adv-chain{margin:14px 0;border:1px solid var(--border);border-radius:8px;padding:10px 12px 12px}.adv-chain legend{padding:0 6px;font-size:13px;color:var(--muted)}.adv-participants{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.adv-participant{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--border);border-left-width:4px;border-radius:6px;background:var(--panel-2)}.adv-participant.adv-head{border-left-color:#58a6ff}.adv-participant.adv-mover{border-left-color:#8957e5}.adv-participant.adv-terminator{border-left-color:#2ea043}.adv-step-no{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--panel);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.adv-part-name{flex:1 1 auto;min-width:0}.adv-seat{display:inline-flex;align-items:center;gap:6px}.adv-seat-vehicle{font-size:11px;text-transform:uppercase;letter-spacing:.5px}.adv-flow{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.adv-flow-arrow{color:var(--muted);font-weight:700}.adv-flow-tag{white-space:nowrap}.adv-pick{margin-top:8px}.adv-group{margin-top:10px}.adv-group h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.adv-cand-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.adv-cand{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2)}.adv-cand button{flex:0 0 auto;margin-left:auto}.adv-cand .adv-part-name{display:flex;flex-direction:column;line-height:1.25}.adv-cand-disabled{opacity:.6}.adv-cand-disabled button{cursor:not-allowed}.adv-trim-btn{background:transparent;border:1px solid var(--accent);color:var(--accent)}.adv-trim-btn:hover{background:#d72e2e1f}.adv-cand-disabled .adv-trim-btn{opacity:1;cursor:pointer}.adv-cand-disabled:has(.adv-trim-btn){opacity:1}.adv-cand-disabled:has(.adv-trim-btn) .adv-part-name .small{opacity:.75}.adv-ready{margin:10px 0 0;font-size:13px;color:#2ea043;font-weight:500}button.small{padding:4px 10px;font-size:12px}.adv-confirm-backdrop{z-index:120;background:#0000008c}.adv-summary{margin:12px 0}.adv-confirm-period{margin:2px 0 12px;font-size:13px;font-weight:600;color:var(--text)}.adv-moves{display:grid;grid-template-columns:minmax(0,1fr) auto 1.2rem auto;align-items:center;gap:8px 12px;margin:0 0 14px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.adv-moves-head,.adv-move-row{display:contents}.adv-moves-head>span{font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding-bottom:2px;border-bottom:1px solid var(--border)}.adv-move-who{display:flex;align-items:center;gap:8px;min-width:0}.adv-move-name{display:flex;flex-direction:column;line-height:1.25;min-width:0}.adv-move-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adv-move-cell{display:inline-flex;align-items:center}.adv-move-arrow{text-align:center;color:var(--muted);font-weight:700}.adv-move-row.adv-head .adv-step-no{border-color:#58a6ff;color:#58a6ff}.adv-move-row.adv-mover .adv-step-no{border-color:#8957e5;color:#8957e5}.adv-move-row.adv-terminator .adv-step-no{border-color:#2ea043;color:#2ea043}.adv-warning{margin:6px 0 12px;padding:10px 12px;border:1px solid rgba(215,46,46,.45);border-left-width:4px;border-radius:6px;background:#d72e2e1a;font-size:13px;line-height:1.45;color:var(--text)}button.danger{background:#d72e2e;border-color:#d72e2e;color:#fff}button.danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}@media(max-width:720px){header.app{padding:10px 12px;gap:8px;flex-wrap:wrap}header.app h1.brand{font-size:16px;gap:8px;min-width:0;flex:1 1 auto}header.app h1.brand .brand-logo{width:28px;height:28px}header.app h1.brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user{gap:8px;font-size:13px;flex-shrink:0;order:3;margin-left:0;flex-basis:100%;padding-right:76px}header.app{position:relative}header.app h1.brand{padding-right:76px}header.app .header-patch{order:2;position:absolute;top:50%;right:12px;transform:translateY(-50%);width:64px;height:64px}.user-skills{display:none}.user button.ghost{padding:6px 10px;font-size:13px}main{padding:12px}.modal-backdrop{align-items:flex-start;padding:0}.modal,.modal-wide{width:100%;max-width:100%;min-height:100vh;max-height:100vh;min-height:100dvh;max-height:100dvh;border-radius:0;border-left:0;border-right:0;padding:calc(16px + env(safe-area-inset-top,0px)) 16px 96px;overflow-y:auto}.partial-time-grid{grid-template-columns:1fr}.modal-actions{position:fixed;left:0;right:0;bottom:0;z-index:110;background:var(--panel);padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));margin-top:0;border-top:1px solid var(--border);box-shadow:0 -2px 12px #0006}.modal-actions button{flex:1;min-height:44px}.shuffle-block{grid-template-columns:1fr}.form-row{flex-direction:column;gap:8px}.adv-moves{grid-template-columns:1fr;gap:10px}.adv-moves-head{display:none}.adv-move-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border:1px solid var(--border);border-left-width:4px;border-radius:6px;background:var(--panel)}.adv-move-row.adv-head{border-left-color:#58a6ff}.adv-move-row.adv-mover{border-left-color:#8957e5}.adv-move-row.adv-terminator{border-left-color:#2ea043}.adv-move-who{flex:1 1 100%}.adv-move-arrow{order:0}.tabs{margin:0 0 14px;padding:0;gap:4px;border-bottom:1px solid var(--border);background:transparent;border-radius:0;box-shadow:none}.tabs .tab{flex:0 0 auto;padding:10px 14px;border-radius:0;border-bottom:2px solid transparent;background:transparent;font-size:14px}.tabs .tab.active{background:transparent;color:var(--text);border-bottom-color:var(--accent)}.exchange-head{flex-direction:column;align-items:stretch}.exchange-actions{justify-content:flex-end}.exchange-summary{gap:6px 10px;font-size:13px}.exchange-by,.exchange-state-pill{margin-left:0}.interval{grid-template-columns:1fr;gap:6px;padding:10px 12px 10px 16px}.interval-time{flex-direction:row;flex-wrap:wrap;align-items:center;padding-top:0;gap:8px}.interval-people{width:100%}.interval-people .slot{max-width:100%;min-width:0}.interval-people .slot>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.vehicle-header{padding:12px}}.back-to-top{position:fixed;right:20px;bottom:20px;width:44px;height:44px;border-radius:50%;border:none;background:#d72e2e8c;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #00000040;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;opacity:.8;transition:opacity .15s ease,transform .15s ease,background .15s ease}.back-to-top:hover{background:#d72e2ef2;opacity:1;transform:translateY(-2px)}.back-to-top:active{transform:translateY(0)}@supports (padding: env(safe-area-inset-bottom)){.back-to-top{bottom:calc(20px + env(safe-area-inset-bottom))}}.duty-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#2e7d322e;color:#7ed18a;border:1px solid rgba(46,125,50,.55);white-space:nowrap}.duty-badge:before{content:"●";font-size:8px;line-height:1}.day-header .duty-badge,.vehicle-header .duty-badge{margin-left:6px}.toast-viewport{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:10px;z-index:2000;pointer-events:none;max-width:min(420px,calc(100vw - 32px))}.toast{pointer-events:auto;display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:start;padding:12px 12px 12px 14px;border-radius:8px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--muted);box-shadow:0 6px 20px #0006;animation:toast-in .18s ease-out}.toast.leaving{animation:toast-out .22s ease-in forwards}.toast-success{border-left-color:var(--ok)}.toast-error{border-left-color:var(--accent)}.toast-warn{border-left-color:var(--accent-2)}.toast-info{border-left-color:var(--open)}.toast-icon{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;background:var(--panel-2);color:var(--text)}.toast-success .toast-icon{background:#2e7d3240;color:#8fd49a}.toast-error .toast-icon{background:#d72e2e40;color:#ff8a8a}.toast-warn .toast-icon{background:#f4a30040;color:var(--accent-2)}.toast-info .toast-icon{background:#2b6cb040;color:#7fb6e8}.toast-body{min-width:0}.toast-title{font-weight:600;font-size:13px;margin-bottom:2px}.toast-message{font-size:13px;line-height:1.35;word-wrap:break-word}.toast-close{background:none;border:0;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;padding:0 4px;align-self:start}.toast-close:hover{color:var(--text)}.toast-action{background:none;border:1px solid currentColor;color:inherit;font-size:12px;font-weight:600;line-height:1;cursor:pointer;padding:6px 10px;border-radius:6px;align-self:center;white-space:nowrap}.toast-action:hover{background:#ffffff1f}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{to{opacity:0;transform:translateY(-6px)}}@media(max-width:600px){.toast-viewport{top:auto;bottom:16px;left:16px;right:16px;max-width:none}}.incidents-view{display:flex;flex-direction:column;gap:12px}.incidents-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px}.incidents-status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px}.incidents-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:10px;font-size:12px;font-weight:700;background:#ffffff14;color:var(--text)}.incidents-toolbar-actions{display:inline-flex;align-items:center;gap:8px}.refresh-btn{display:inline-flex;align-items:center;gap:6px;background:#ffffff0d;color:var(--text);border:1px solid rgba(255,255,255,.12);padding:6px 12px;border-radius:999px;cursor:pointer;font:inherit}.refresh-btn:hover:not(:disabled){background:#ffffff14}.refresh-btn[disabled]{opacity:.6;cursor:progress}.refresh-btn.spinning span[aria-hidden]{display:inline-block;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stream-dot{width:10px;height:10px;border-radius:50%;background:#777;box-shadow:0 0 #0000}.stream-open{background:#2ea043;box-shadow:0 0 0 4px #2ea0432e;animation:pulse 2.4s infinite}.stream-connecting{background:#f4a300}.stream-closed{background:#d72e2e}@keyframes pulse{0%{box-shadow:0 0 #2ea04373}70%{box-shadow:0 0 0 8px #2ea04300}to{box-shadow:0 0 #2ea04300}}.notif-btn{display:inline-flex;align-items:center;gap:8px;background:#ffffff0d;color:var(--text);border:1px solid rgba(255,255,255,.12);padding:6px 12px;border-radius:999px;cursor:pointer;font:inherit}.notif-btn:hover{background:#ffffff14}.notif-btn.on{background:#d72e2e2e;border-color:#d72e2e;color:#ffd1d1}.notif-btn.off{color:var(--muted, #9aa0a6)}.notif-btn[disabled]{opacity:.6;cursor:not-allowed}.incidents-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.incident-day-group{margin-top:14px}.incident-day-group:first-of-type{margin-top:10px}.incident-day-sep{display:flex;align-items:center;gap:8px;margin:0 2px 8px;font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--muted)}.incident-day-sep:after{content:"";flex:1;height:1px;background:#ffffff14}.incident-day-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:#ffffff0f;color:var(--muted);font-size:11px;font-weight:700}.incident-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.09);border-radius:12px;overflow:hidden;transition:border-color .12s}.incident-card.expanded{border-color:#ffffff2e}.incident-head{display:flex;align-items:flex-start;gap:10px;width:100%;padding:12px 14px;background:transparent;color:var(--text);border:0;font:inherit;text-align:left;cursor:pointer}.incident-head:hover{background:#ffffff0a}.incident-vehicles{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.incident-rail{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex-shrink:0;min-width:44px}.incident-rail>*{margin:0}.incident-headline{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.incident-headline .incident-title{white-space:normal}.incident-vehicle{display:inline-block;padding:3px 8px;border-radius:6px;background:#d72e2e33;border:1px solid #d72e2e;color:#ffd1d1;font-weight:600;font-size:12px;letter-spacing:.4px;text-transform:uppercase}.incident-vehicle.vehicle-rv{background:#2b6cb038;border-color:#2b6cb0;color:#c8e1ff}.incident-vehicle.vehicle-ha{background:#f4a3002e;border-color:#f4a300;color:#ffd591}.incident-youbadge{font-size:11px;padding:2px 8px;border-radius:999px;background:#2ea04338;border:1px solid #2ea043;color:#b6f0c2;text-transform:uppercase;letter-spacing:.4px;margin-left:auto}.incident-meta{flex:1;min-width:0}.incident-title{font-weight:600;font-size:15px;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.incident-chev{color:var(--muted);font-size:18px;align-self:center}.incident-sub{display:flex;flex-wrap:nowrap;align-items:baseline;gap:10px;font-size:13px;color:var(--muted);margin-top:2px;min-width:0}.incident-sub>span{flex-shrink:0}.incident-wijk{font-weight:500;color:#d1d5db;min-width:0;flex-shrink:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.incident-body{padding:12px 14px 14px;border-top:1px dashed rgba(255,255,255,.1)}.incident-details{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0 0 12px;font-size:14px}.incident-details>div{display:contents}.incident-details>div.full-row dd{grid-column:2 / 3}.incident-details dt{color:var(--muted);font-weight:500}.incident-details dd{margin:0;color:var(--text)}.incident-details a{color:var(--accent, #ff9a1a)}.incident-crew h4{margin:8px 0;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-weight:600}.crew-group+.crew-group{margin-top:10px}.crew-group-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.crew-count{font-size:12px;color:var(--muted)}.crew-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}.crew-member{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:#ffffff08}.crew-member.is-me{background:#2ea04326}.crew-name{font-size:14px}.crew-opt{font-size:11px;color:var(--muted)}.empty{padding:24px;text-align:center;color:var(--muted);border:1px dashed rgba(255,255,255,.1);border-radius:12px}.banner-error{background:#d72e2e26;border-color:#d72e2e}.banner-warn{background:#f4a30024;border-color:#f4a300;color:#ffe2b1}.discipline-filters{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}.chip-filter{background:transparent;border:1px solid var(--border);color:var(--muted);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.chip-filter:hover{color:var(--text)}.chip-filter.active{background:#ffffff0f;color:var(--text)}.chip-filter.discipline-brandweer.active{border-color:#d72e2e}.chip-filter.discipline-ambulance.active{border-color:#eab308;color:#fef08a}.chip-filter.discipline-politie.active{border-color:#2563eb;color:#bfdbfe}@media(max-width:600px){.discipline-filters{gap:4px;flex-wrap:nowrap}.chip-filter{padding:5px 9px;font-size:12px}}.discipline-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-weight:700;font-size:11px;letter-spacing:.3px;text-transform:uppercase;background:#ffffff0f;border:1px solid var(--border)}.discipline-pill.discipline-brandweer{background:#d72e2e2e;border-color:#d72e2e;color:#ffd1d1}.discipline-pill.discipline-ambulance{background:#eab30833;border-color:#eab308;color:#fef08a}.discipline-pill.discipline-politie{background:#2563eb2e;border-color:#2563eb;color:#bfdbfe}.install-prompt{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:90;width:min(520px,calc(100vw - 24px));background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #00000073;padding:14px 16px;animation:install-slide .25s ease-out}@keyframes install-slide{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.install-prompt-inner{display:flex;gap:12px;align-items:flex-start}.install-prompt-icon{font-size:28px;line-height:1;flex:0 0 auto}.install-prompt-body{flex:1 1 auto;min-width:0}.install-prompt-body h3{margin:0 0 4px;font-size:15px}.install-prompt-body p{margin:0 0 10px;font-size:13px;color:var(--muted);line-height:1.4}.install-prompt-actions{display:flex;flex-wrap:wrap;gap:6px}.install-prompt-actions button.primary{background:var(--accent, #d72e2e);color:#fff;border:none;padding:6px 14px;border-radius:6px;font-weight:600;cursor:pointer}.install-prompt-actions button.ghost{background:transparent;color:var(--text);border:1px solid var(--border);padding:6px 12px;border-radius:6px;cursor:pointer}.install-prompt-actions button.ghost.subtle{color:var(--muted);border-color:transparent}@media(max-width:600px){.install-prompt{bottom:8px;padding:12px}.install-prompt-body h3{font-size:14px}.install-prompt-body p{font-size:12px}}.notif-toggle{display:inline-flex;align-items:center;gap:6px}.notif-toggle .notif-toggle-label{font-size:13px}.notif-toggle.on{color:var(--accent, #d72e2e);border-color:var(--accent, #d72e2e)}.notif-toggle.off{color:var(--muted, #9aa0a6);border-color:var(--border);opacity:.9}.notif-toggle.denied{color:var(--muted, #9aa0a6);border-color:var(--border)}.notif-toggle:disabled{opacity:.55;cursor:not-allowed}@media(max-width:600px){.notif-toggle .notif-toggle-label{display:none}}.notif-menu{position:relative;display:inline-flex}.notif-menu-backdrop{display:none}.notif-menu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:min(340px,calc(100vw - 24px));background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #00000059;padding:10px;display:flex;flex-direction:column;gap:2px}.notif-menu-grip{display:none}.notif-menu-header{display:flex;align-items:center;justify-content:space-between;padding:2px 6px 8px}.notif-menu-title{font-size:12px;font-weight:700;letter-spacing:.2px;text-transform:uppercase;color:var(--muted)}.notif-menu-close{display:none;background:none;border:0;color:var(--muted);font-size:16px;line-height:1;cursor:pointer;padding:4px}.notif-menu-blocked{font-size:12px;color:var(--warn, #a8650a);background:#a8650a1f;border:1px solid rgba(168,101,10,.3);border-radius:8px;padding:8px 10px;margin:0 2px 6px}.notif-menu-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 8px;border-radius:8px;cursor:pointer}.notif-menu-row:hover{background:#7f7f7f1a}.notif-menu-text{display:flex;flex-direction:column;gap:2px;min-width:0}.notif-menu-label{font-size:14px;font-weight:600}.notif-menu-hint{font-size:12px;color:var(--muted)}.notif-switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex-shrink:0;position:relative;cursor:pointer;width:44px;height:26px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);transition:background .12s,border-color .12s}.notif-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .12s,background .12s}.notif-switch:checked{background:var(--accent, #d72e2e);border-color:var(--accent, #d72e2e)}.notif-switch:checked:after{transform:translate(18px);background:#fff}.notif-switch:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.notif-menu{position:static}.notif-menu-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#00000073;animation:notif-fade-in .14s ease-out}.notif-menu-panel{position:fixed;top:auto;right:0;bottom:0;left:0;z-index:71;width:auto;max-height:80vh;overflow-y:auto;border-radius:16px 16px 0 0;border-left:0;border-right:0;border-bottom:0;padding:8px 14px calc(16px + env(safe-area-inset-bottom));gap:2px;animation:notif-slide-up .2s ease-out}.notif-menu-grip{display:block;width:40px;height:4px;border-radius:999px;background:var(--border);margin:4px auto 8px}.notif-menu-header{padding:0 2px 8px}.notif-menu-title{font-size:15px;text-transform:none;color:var(--text)}.notif-menu-close{display:inline-flex;align-items:center}.notif-menu-row{padding:14px 6px}.notif-menu-row:hover{background:none}.notif-menu-row:active{background:#7f7f7f1f}.notif-menu-label{font-size:15px}.notif-menu-hint{font-size:13px}}@keyframes notif-fade-in{0%{opacity:0}to{opacity:1}}@keyframes notif-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.p2000-card.discipline-brandweer{border-left:3px solid #d72e2e}.p2000-card.discipline-ambulance{border-left:3px solid #eab308}.p2000-card.discipline-politie{border-left:3px solid #2563eb}@media(max-width:600px){.incident-details{grid-template-columns:1fr}.incident-details dt{color:var(--muted);font-size:12px}.crew-list{grid-template-columns:1fr}}.incident-vehicle.vehicle-ts{background:#d72e2e33;border-color:#d72e2e;color:#ffd1d1}.incident-vehicle.vehicle-wo{background:#38bdf82e;border-color:#38bdf8;color:#cdebff}.incident-vehicle.vehicle-ovd{background:#ca8a0438;border-color:#ca8a04;color:#fde68a}.incident-vehicle.vehicle-da{background:#a855f733;border-color:#a855f7;color:#e9d5ff}.incidents-subtabs{display:flex;gap:6px;margin-bottom:12px;border-bottom:1px solid var(--border)}.incidents-subtabs .subtab{background:transparent;border:0;color:var(--muted);padding:8px 14px;cursor:pointer;font-weight:600;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px}.incidents-subtabs .subtab:hover{color:var(--text)}.incidents-subtabs .subtab.active{color:var(--text);border-bottom-color:#d72e2e}.loading-row{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:8px 0;background:#ffffff08;border-radius:8px;font-size:13px;color:var(--muted)}.loading-row.subtle{background:transparent;padding:4px 0;font-size:12px}.progress{flex:1;min-width:80px;height:6px;background:#ffffff14;border-radius:999px;overflow:hidden;position:relative}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#d72e2e,#f4a300);border-radius:999px;transition:width .3s ease}.progress.indeterminate>span{position:absolute;left:-40%;width:40%;animation:progress-slide 1.4s ease-in-out infinite}@keyframes progress-slide{0%{left:-40%}to{left:100%}}.loading-pill{font-size:11px;padding:2px 8px;border-radius:999px;background:#ffffff0f;color:var(--muted);border:1px solid var(--border)}.prio-pill{display:inline-block;padding:3px 8px;border-radius:6px;font-weight:700;font-size:12px;letter-spacing:.4px;text-transform:uppercase}.prio-pill.prio-1{background:#d72e2e40;border:1px solid #d72e2e;color:#ffd1d1}.prio-pill.prio-2{background:#f4a30033;border:1px solid #f4a300;color:#ffd591}.prio-pill.prio-3{background:#2b6cb038;border:1px solid #2b6cb0;color:#c8e1ff}.prio-pill.prio-4{background:#ffffff0f;border:1px solid var(--border);color:var(--muted)}.prio-pill.prio-oef{background:#2e7d3233;border:1px solid #2e7d32;color:#b6f0c2}.p2000-time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.capcode-list{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:4px}.capcode-list.muted{opacity:.7}.capcode-row{display:flex;align-items:center;gap:8px;padding:4px 8px;min-width:0;background:#ffffff08;border-radius:6px;font-size:13px}.capcode-regio{flex-shrink:0;font-size:11px;padding:1px 6px;border-radius:4px;background:#2b6cb02e;border:1px solid #2b6cb0;color:#c8e1ff}.capcode-name{color:var(--text);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-view{display:flex;flex-direction:column;gap:12px}.practice-tabs{display:flex;gap:6px;margin:-4px 0 8px;border-bottom:1px solid var(--border)}.practice-tabs .subtab{background:transparent;border:0;color:var(--muted);padding:6px 12px;cursor:pointer;font-weight:600;font-size:13px;border-bottom:2px solid transparent;margin-bottom:-1px}.practice-tabs .subtab:hover{color:var(--text)}.practice-tabs .subtab.active{color:var(--text);border-bottom-color:#d72e2e}.practice-list{list-style:none;padding:0;margin:4px 0 0;display:grid;gap:6px}.practice-list .empty{color:var(--muted);padding:12px;text-align:center}.practice-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#ffffff08;border:1px solid var(--border);border-radius:8px}.practice-row-date{display:flex;flex-direction:column;gap:2px}.practice-row-date .small{font-size:11px}.practice-row-actions{display:flex;gap:6px;flex-wrap:wrap}.practice-row.evening-off{flex-direction:column;align-items:stretch;border-color:#d72e2e8c;background:#d72e2e0f}.practice-row.evening-off .practice-row-date,.practice-row.evening-off .practice-row-actions{width:100%}.practice-row.evening-off .practice-row-actions{justify-content:flex-end}.evening-off-warning{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:8px;background:#d72e2e1f;border:1px solid rgba(215,46,46,.55)}.evening-off-warning.planner{margin:8px 0;align-items:center}.evening-off-icon{font-size:22px;line-height:1;flex:0 0 auto}.evening-off-text{display:flex;flex-direction:column;gap:3px;flex:1 1 auto}.evening-off-text strong{color:#ff6b6b;font-size:14px}.practice-row.evening-off .evening-off-warning{gap:7px;align-items:center;padding:6px 10px;border-radius:7px;font-size:12.5px;line-height:1.35}.practice-row.evening-off .evening-off-icon{font-size:14px}.practice-row.evening-off .evening-off-text{flex-direction:row;flex-wrap:wrap;gap:4px}.practice-row.evening-off .evening-off-text strong{font-size:12.5px}.evening-off-chip{background:#d72e2e38!important;color:#ff8a8a!important;border-color:#d72e2e80!important}.evening-off-control{margin:6px 0 10px}.evening-off-form{display:flex;flex-direction:column;gap:6px}.evening-off-reason{width:100%;box-sizing:border-box;padding:8px 10px;border-radius:7px;background:#ffffff0a;border:1px solid var(--border);color:var(--text)}.evening-off-actions{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:4px;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.pill:hover{background:#ffffff0f;color:var(--text)}.pill.pill-yes:hover{border-color:#22c55e80;color:#bbf7d0}.pill.pill-no:hover{border-color:#d72e2e80;color:#ffd1d1}.pill.pill-yes.active{background:#22c55e38;border-color:#22c55e;color:#dcfce7;box-shadow:inset 0 0 0 1px #22c55e}.pill.pill-no.active{background:#d72e2e38;border-color:#d72e2e;color:#ffe0e0;box-shadow:inset 0 0 0 1px #d72e2e}.pill.pill-open{background:#ffffff0a;color:var(--muted);cursor:default}.practice-prefs{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.practice-prefs h4{margin:0 0 4px}.practice-prefs.required{border:1px solid #eab308;border-radius:8px;padding:12px;background:#eab3080f}.req-badge{display:inline-block;margin-left:8px;padding:1px 6px;border-radius:8px;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;background:#eab3082e;border:1px solid #eab308;color:#fde68a}.voorkeur-select.invalid{border-color:#eab308;box-shadow:0 0 0 1px #eab308}.error{color:#fca5a5}.pref-grid{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}.pref-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#ffffff08;border:1px solid var(--border);border-radius:8px}.pref-veh{font-weight:600;font-family:ui-monospace,SF Mono,Menlo,monospace}.pref-stepper{display:flex;align-items:center;gap:8px}.pref-stepper button{width:28px;height:28px;border-radius:6px;background:#ffffff0f;border:1px solid var(--border);color:var(--text);cursor:pointer;font-size:16px;line-height:1}.pref-stepper button:hover{background:#ffffff1a}.pref-weight{min-width:32px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}.pref-weight.pos{color:#bbf7d0}.pref-weight.neg{color:#ffd1d1}.opkomst-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.opkomst-date,.voorkeur-select{padding:6px 10px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:14px;-moz-appearance:none;appearance:none;-webkit-appearance:none}.opkomst-date option,.voorkeur-select option{background:var(--panel);color:var(--text)}.opkomst-date:focus,.voorkeur-select:focus{outline:2px solid var(--accent);outline-offset:1px}.voorkeur-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}.voorkeur-status{color:var(--muted)}.opkomst-summary{display:flex;gap:6px;flex-wrap:wrap}.opkomst-section{margin-top:8px}.opkomst-section h4{margin:0 0 6px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.opkomst-list{list-style:none;padding:0;margin:0;display:grid;gap:4px}.opkomst-list li{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:#ffffff08;border:1px solid var(--border);border-radius:6px;font-size:14px}.opkomst-list li.muted{color:var(--muted);background:transparent;border-style:dashed}.opkomst-veh{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;padding:2px 8px;border-radius:4px;background:#38bdf82e;border:1px solid #38bdf8;color:#cdebff}.indeling{margin:12px 0}.indeling h4{margin:0 0 8px}.indeling-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.indeling-col{background:#ffffff08;border:1px solid var(--border);border-radius:8px;padding:8px}.indeling-col header{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;font-size:13px}.indeling-col.disabled{opacity:.55;background:repeating-linear-gradient(45deg,rgba(255,255,255,.02) 0 6px,transparent 6px 12px)}.indeling-col.disabled strong{text-decoration:line-through}.indeling-disabled-reason{font-size:12px;color:var(--muted);font-style:italic;padding:4px 6px;background:#ffffff0a;border-radius:4px;margin-bottom:6px}.indeling-col ul{list-style:none;padding:0;margin:0;display:grid;gap:4px}.indeling-col li{display:flex;justify-content:space-between;align-items:center;gap:4px;padding:4px 8px;background:#ffffff0a;border-radius:6px;font-size:13px}.indeling-col li.muted{color:var(--muted);background:transparent;font-style:italic}.indeling-actions{display:flex;gap:2px}.indeling-actions .ghost.subtle{background:transparent;border:0;color:var(--muted);padding:2px 6px;cursor:pointer;font-size:12px;border-radius:4px}.indeling-actions .ghost.subtle:hover{background:#ffffff14;color:var(--text)}.indeling-unassigned{margin-top:12px;padding:10px 12px;background:#f4a3001a;border:1px solid #f4a300;border-radius:8px}.indeling-unassigned ul{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:4px}.indeling-unassigned li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.indeling-unassigned select{padding:4px 8px;background:#0000004d;color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:12px}.assign-select{padding:3px 6px;background:var(--panel-2, #1c2128);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:12px;max-width:9.5em;flex-shrink:0}.assign-select option{background:var(--panel-2, #1c2128);color:var(--text)}.assign-select:disabled{opacity:.5}.pin-badge{margin-left:4px;font-size:11px}.practice-default-card{margin:0 0 14px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);overflow:hidden;transition:border-color .12s ease,background .12s ease}.practice-default-card.on{border-color:#58a6ff8c;background:#58a6ff14}.practice-default-card.disabled{opacity:.7}label.switch-row.flush{border:0;background:transparent;border-radius:0;margin:0}.switch-row.flush:hover{background:transparent}.default-weeks{margin:0;padding:10px 12px 12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.practice-default-card.on .default-weeks{border-top-color:#58a6ff4d}.default-weeks-label{font-size:13px;font-weight:500;color:var(--text)}.default-weeks-opts{display:inline-flex;flex-wrap:wrap;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;width:fit-content}.seg-pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-left:1px solid var(--border);background:transparent;color:var(--text);padding:7px 14px;font-size:13px;cursor:pointer;transition:background .12s ease,color .12s ease}.seg-pill:first-child{border-left:0}.seg-pill:hover{background:#ffffff0f}.seg-pill.active{background:var(--accent, #58a6ff);color:#fff;font-weight:600}.opkomst-list li{flex-wrap:wrap;gap:6px}.opkomst-name{flex:1 1 140px;min-width:0;overflow:hidden;text-overflow:ellipsis}.opkomst-meta{display:inline-flex;align-items:center;gap:6px}.skill-chip{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:8px;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;vertical-align:middle;border:1px solid var(--border);background:#ffffff0f;color:var(--muted)}.skill-chip.ch{background:#3b82f62e;border-color:#3b82f6;color:#bfdbfe}.skill-chip.trainee{background:#eab3082e;border-color:#eab308;color:#fde68a}.skill-chip.duty{background:#ffffff0f;border-color:var(--border);color:var(--muted)}.skill-chip.oefenploeg{background:#2b6cb02e;border-color:#2b6cb0;color:#c8e1ff}.skill-chip.oefenploeg.oef-1{background:#7c3aed38;border-color:#7c3aed;color:#ddd6fe}.skill-chip.oefenploeg.oef-2{background:#0891b23d;border-color:#0891b2;color:#a5f3fc}.skill-chip.oefenploeg.oef-3{background:#c026d338;border-color:#c026d3;color:#f5d0fe}.skill-chip.oefenploeg.oef-empty{background:#ffffff0a;border-color:var(--border);color:var(--muted);border-style:dashed}.skill-chip.dienstploeg{background:#ffffff0f;border-color:var(--border);color:var(--muted)}.skill-chip.dienstploeg.pl-a{background:#d72e2e29;border-color:#d72e2e;color:#ffb1b1}.skill-chip.dienstploeg.pl-b{background:#2b6cb033;border-color:#2b6cb0;color:#c8e1ff}.skill-chip.dienstploeg.pl-c{background:#2e7d3233;border-color:#2e7d32;color:#b6f0c2}.skill-chip.dienstploeg.pl-d{background:#f4a3002e;border-color:#f4a300;color:#ffd591}.skill-chip.dienstploeg.pl-dagdienst,.skill-chip.dienstploeg.pl-aspiranten{background:#ffffff0f;color:var(--text)}.opkomst-veh.my-vehicle{margin-top:4px;display:inline-block}.opkomst-groups{display:flex;flex-direction:column;gap:8px}.opkomst-group{border:1px solid var(--border);border-radius:8px;padding:8px;background:var(--panel-2)}.opkomst-group-head{display:inline-flex;align-items:center;gap:8px;margin:0 0 6px}.status-toggle{display:inline-flex;gap:2px}.mini-pill{display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;background:#ffffff0a;color:var(--muted);border:1px solid var(--border);border-radius:6px;font-size:13px;font-weight:700;cursor:pointer;padding:0}.mini-pill:hover:not(:disabled){background:#ffffff1a;color:var(--text)}.mini-pill:disabled{opacity:.5;cursor:progress}.mini-pill.mini-yes.active{background:#22c55e33;border-color:#22c55e;color:#bbf7d0}.mini-pill.mini-no.active{background:#d72e2e33;border-color:#d72e2e;color:#ffd1d1}.mini-pill.mini-open.active{background:#ffffff1a;color:var(--text)}.audit{margin-top:18px}.audit .audit-list{list-style:none;padding:0;margin:0;display:grid;gap:4px;max-height:280px;overflow-y:auto}.audit .audit-list li{display:grid;grid-template-columns:130px 1fr;gap:10px;padding:6px 10px;background:#ffffff08;border:1px solid var(--border);border-radius:6px;font-size:13px}.audit-when{color:var(--muted);font-variant-numeric:tabular-nums}.audit-text strong{color:var(--text)}.audit-text em{font-style:normal;color:var(--accent)}.personen-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 16px}.personen-search{flex:1 1 220px;min-width:200px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:9px 13px;border-radius:8px;font-size:14px}.personen-search:focus{outline:none;border-color:var(--accent)}.ploeg-filter{display:flex;flex-wrap:wrap;gap:6px}.ploeg-filter .chip{background:transparent;border:1px solid var(--border);color:var(--muted);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.ploeg-filter .chip:hover{color:var(--text)}.ploeg-filter .chip.active{background:#ffffff0f;color:var(--text);border-color:var(--accent)}.ploeg-section{margin-bottom:22px}.ploeg-heading{display:flex;align-items:center;gap:10px;font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.ploeg-count{background:#ffffff12;color:var(--text);border-radius:999px;padding:1px 9px;font-size:12px;font-weight:700}.person-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.person-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.person-card.expanded{border-color:var(--accent);box-shadow:0 2px 14px #00000040}.person-head{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border:0;color:inherit;cursor:pointer;padding:12px 14px;text-align:left}.person-head:hover{background:#ffffff08}.person-avatar{width:46px;height:46px;border-radius:50%;flex-shrink:0;object-fit:cover;background:var(--panel-2);border:1px solid var(--border)}.person-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;letter-spacing:.03em;background:linear-gradient(135deg,#3a3f4b,#2b2f38)}.person-avatar-fallback.pl-a{background:linear-gradient(135deg,#d72e2e,#9b1c1c)}.person-avatar-fallback.pl-b{background:linear-gradient(135deg,#2b6cb0,#1c4a7e)}.person-avatar-fallback.pl-c{background:linear-gradient(135deg,#2e7d32,#1b5e20)}.person-avatar-fallback.pl-d{background:linear-gradient(135deg,#f4a300,#b97b00);color:#1a1d24}.person-head-main{flex:1;min-width:0}.person-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.person-name{font-weight:600;font-size:15px}.person-skills{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.person-chevron{color:var(--muted);flex-shrink:0;font-size:13px}.oefenploeg-label{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.ploeg-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;border:1px solid var(--border);white-space:nowrap}.ploeg-badge.pl-a{background:#d72e2e29;border-color:#d72e2e;color:#ffb1b1}.ploeg-badge.pl-b{background:#2b6cb033;border-color:#2b6cb0;color:#c8e1ff}.ploeg-badge.pl-c{background:#2e7d3233;border-color:#2e7d32;color:#b6f0c2}.ploeg-badge.pl-d{background:#f4a3002e;border-color:#f4a300;color:#ffd591}.ploeg-badge.pl-dagdienst,.ploeg-badge.pl-aspiranten{background:#ffffff0f;color:var(--text)}.ploeg-badge.pl-x{background:transparent;color:var(--muted);border-style:dashed}.person-detail{border-top:1px solid var(--border);padding:12px 14px;background:#00000026}.person-oefen-edit{display:flex;flex-direction:column;gap:5px;margin:0 0 10px}.oefenploeg-select{width:min(320px,100%);background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;font-size:13px}.person-contact{margin:0;display:grid;gap:8px}.person-contact .contact-row{display:grid;grid-template-columns:92px 1fr;gap:8px;align-items:baseline}.person-contact dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.person-contact dd{margin:0;font-size:14px;word-break:break-word}.person-contact a{color:var(--open);text-decoration:none}.person-contact a:hover{text-decoration:underline}@media(max-width:600px){.person-grid{grid-template-columns:1fr}.person-contact .contact-row{grid-template-columns:78px 1fr}}.audit-log{display:flex;flex-direction:column;gap:12px}.audit-subtabs{margin-bottom:2px}.audit-toolbar{display:flex;align-items:center;gap:12px}.audit-filter{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.audit-filter select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font:inherit}.audit-empty{color:var(--muted);padding:16px 0}.audit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.audit-item{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.audit-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.audit-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:#ffffff14;color:var(--text);border-left:3px solid var(--muted)}.audit-badge.audit-claim_planner{border-left-color:var(--open)}.audit-badge.audit-claim{border-left-color:var(--ok)}.audit-badge.audit-claim_revert{border-left-color:var(--warn)}.audit-badge.audit-login{border-left-color:var(--muted)}.audit-time{color:var(--muted);font-size:12px;white-space:nowrap}.audit-item-body{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.audit-user{font-weight:600;font-size:14px}.audit-range{color:var(--muted);font-size:13px}.audit-comment{color:var(--text);font-size:13px;font-style:italic}.audit-exchange-from{color:var(--text);font-size:13px}.audit-exchange-meta{font-size:12px}.audit-practice-text{color:var(--text);font-size:13px}.audit-practice-text em{font-style:normal;font-weight:600}.audit-more{align-self:center}.audit-window-foot{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:8px}.audit-usage-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.audit-usage-search{flex:1 1 260px;min-width:200px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 12px;font-size:14px}.audit-usage-search:focus{outline:none;border-color:var(--accent)}.audit-usage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.audit-usage-item{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.audit-usage-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.audit-usage-head strong{font-size:15px}.audit-usage-badges{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.audit-never-login-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;background:#f4a30029;border:1px solid rgba(244,163,0,.45);color:var(--warn)}.audit-usage-meta{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:6px 10px;font-size:13px}.audit-usage-meta em{font-style:normal;color:var(--muted)}@media(max-width:720px){.audit-usage-meta{grid-template-columns:1fr}}.audit-moves{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.audit-move{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:6px 10px;border:1px solid var(--border);border-left-width:4px;border-radius:6px;background:var(--panel-2);font-size:13px}.audit-move-leave{border-left-color:#58a6ff}.audit-move-move,.audit-move-swap{border-left-color:#8957e5}.audit-move-join{border-left-color:#2ea043}.audit-move-name{font-weight:600;min-width:120px}.audit-move-arrow{color:var(--muted);font-weight:700}.audit-seat{display:inline-flex;align-items:center;gap:6px}.audit-seat-vehicle{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.audit-move-tag{color:var(--muted);font-style:italic}.app-footer{display:flex;justify-content:center;padding:18px 16px 28px}.version-badge{background:none;border:0;color:var(--muted);font:inherit;font-size:12px;letter-spacing:.5px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .12s ease,background .12s ease}.version-badge:hover{color:var(--text);background:#ffffff0d}.version-modal{max-width:520px;width:min(92vw,520px);max-height:80vh;display:flex;flex-direction:column}.version-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.version-modal-head h2{margin:0;font-size:18px}.version-close{font-size:18px;line-height:1;padding:2px 8px}.version-current{color:var(--muted);font-size:13px;margin:4px 0 12px}.version-releases{overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding-right:4px}.version-release{border-top:1px solid var(--border);padding-top:12px}.version-release:first-child{border-top:0;padding-top:0}.version-release-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.version-release-ver{font-weight:700;font-size:14px}.version-release-date{color:var(--muted);font-size:12px}.version-changes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.vc{display:flex;align-items:baseline;gap:8px;font-size:14px;line-height:1.35}.vc-tag{flex:none;display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#ffffff14;color:var(--text);border-left:3px solid var(--muted)}.vc-feat .vc-tag{border-left-color:var(--ok)}.vc-fix .vc-tag{border-left-color:var(--accent)}.vc-perf .vc-tag{border-left-color:var(--open)}.vc-other .vc-tag{border-left-color:var(--muted)}.vc-text{min-width:0}.planner-subtabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.planner-subtabs::-webkit-scrollbar{display:none}.planner-subtabs .subtab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:10px 16px;font-size:15px;font-weight:600;cursor:pointer}.planner-subtabs .subtab:hover{color:var(--text)}.planner-subtabs .subtab.active{color:var(--text);border-bottom-color:var(--accent-2)}.afspraken{display:flex;flex-direction:column;gap:12px}.afspraken-toolbar{display:flex;gap:10px;align-items:center}.afspraken-toolbar .personen-search{flex:1;min-width:0}.afspraken-toolbar .btn-primary{background:var(--accent-2);color:#1a1a1a;border:0;border-radius:7px;padding:9px 16px;font-weight:700;white-space:nowrap}.afspraken-toolbar .btn-primary:disabled{opacity:.5;cursor:not-allowed}.afspraken-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.afspraak-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.afspraak-card.open{border-color:var(--accent-2)}.afspraak-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.afspraak-name{flex:1;min-width:140px;display:flex;align-items:center;gap:8px;background:transparent;border:0;color:var(--text);font-size:15px;font-weight:600;text-align:left;cursor:pointer;padding:0}.afspraak-name .caret{color:var(--muted)}.afspraak-ploeg,.afspraak-flag{font-size:13px;color:var(--muted)}.afspraak-ploeg{padding:6px 8px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px}.afspraak-flag{display:inline-flex;align-items:center;gap:4px}.afspraak-body{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:14px;min-width:0}.afspraak-skills,.afspraak-partial{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:0;background:var(--panel-2);min-width:0}.afspraak-skills legend,.afspraak-partial legend{font-size:12px;color:var(--muted);font-weight:600;padding:0 4px}.afspraak-skills.disabled,.afspraak-partial.disabled{opacity:.45}:root[data-theme=light] .skill-badge.sb-day{color:#1a7f37}.afspraak-skill-grid{display:flex;flex-wrap:wrap;gap:6px}.skill-check{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:3px 6px;border:1px solid var(--border);border-radius:6px;cursor:pointer}.skill-check.on{border-color:var(--accent-2);background:#f4a3001a}.afspraak-chf{grid-column:1 / -1;border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:0;background:var(--panel-2);min-width:0}.afspraak-chf legend{font-size:12px;color:var(--muted);font-weight:600;padding:0 4px}.afspraak-asp{font-weight:600;margin-bottom:6px}.afspraak-chf-vehicles{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.skill-badge.sb-veh{background:#58a6ff29;border-color:#58a6ff;color:#c8e1ff}.afspraak-time-row{display:flex;align-items:center;gap:6px;margin:6px 0;flex-wrap:wrap}.afspraak-time-row input[type=time],.afspraak-day-row input[type=time]{padding:5px 6px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;min-width:0}.afspraak-day-overrides{display:flex;flex-direction:column;gap:4px;margin-top:6px}.afspraak-hint{font-size:11px;color:var(--muted)}.afspraak-day-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.afspraak-day-row input[type=time]:disabled{opacity:.4;cursor:not-allowed;background:#ffffff08}.afspraak-day-row-off{opacity:.7}.afspraak-day-toggle{display:flex;align-items:center;gap:5px;cursor:pointer;width:44px;flex-shrink:0}.afspraak-day-toggle input[type=checkbox]{margin:0;cursor:pointer}.afspraak-day-label{width:28px;font-size:12px;color:var(--muted)}.afspraak-day-row-off .afspraak-day-label{color:var(--muted);opacity:.7}.afspraak-day-row:not(.afspraak-day-row-off) .afspraak-day-label{color:var(--text);font-weight:600}.planning{display:flex;flex-direction:column;gap:14px}.planning-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.planning-year{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.planning-year input{width:100px;padding:8px 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:14px}.planning-rotation{display:flex;flex-direction:column;gap:6px}.planning-rotation-label{font-size:12px;color:var(--muted)}.planning-rotation-grid{display:flex;flex-wrap:wrap;gap:8px}.planning-rotation-cell{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted)}.planning-rotation-cell select{padding:6px 8px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px}.planning-weeks{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.planning-week{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.planning-week.open{border-color:var(--accent-2);grid-column:1 / -1}.planning-week-head{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:transparent;border:0;color:var(--text);padding:12px 14px;cursor:pointer;text-align:left}.planning-week-no{font-weight:700}.planning-week-range{color:var(--muted);font-size:13px;flex:1;min-width:90px}.planning-ploeg-chip{display:inline-block;font-size:12px;font-weight:700;background:#f4a30029;border:1px solid var(--accent-2);color:var(--accent-2);border-radius:5px;padding:1px 7px}.planning-ploeg-chip.sm{font-size:10px;padding:1px 5px;min-width:16px;text-align:center}.planning-lock{font-size:13px}.planning-week-body{padding:0 14px 14px;display:flex;flex-direction:column;gap:16px;border-top:1px solid var(--border);min-width:0}.planning-section{display:flex;flex-direction:column;gap:8px}.planning-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;min-width:0;flex-wrap:wrap}.planning-section-head h4{margin:0;font-size:14px}.planning-block{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--panel-2);min-width:0}.planning-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;flex-wrap:wrap}.planning-block-head strong{font-size:13px}.planning-seats{display:flex;flex-direction:column;gap:4px}.planning-seat{display:flex;align-items:center;gap:8px;font-size:13px;min-width:0}.planning-seat-name{color:var(--text)}.planning-seat-empty{color:var(--muted);font-style:italic}.planning-hint{font-size:12px;color:var(--muted)}.planning-week-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.planning-insert-progress{width:min(520px,100%);display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.planning-insert-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.planning-insert-meta{display:inline-flex;gap:10px;font-size:12px;color:var(--muted)}.planning-insert-last{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-empty{background:var(--panel);border:1px dashed var(--border);border-radius:10px;padding:20px;color:var(--muted)}.planning-seat{gap:8px}.afspraak-flags{display:inline-flex;align-items:center;gap:6px;padding:2px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2)}.planning-seat .skill-badge{flex:0 0 auto;min-width:38px;text-align:center}.afspraak-flags .afspraak-flag{padding:4px 8px;border-radius:999px;font-size:12px;color:var(--text)}.planning-seat-select{flex:1;min-width:0;padding:6px 8px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:13px}.planning-year-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;width:100%}.planning-year-row .planning-year{min-width:180px}.planning-year select,.planning-year input{width:100%;padding:8px 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:14px}.planning-year-actions{display:inline-flex;align-items:center;gap:10px;margin-left:auto}.planning-generate-trigger{min-height:38px;border-radius:8px}.planning-create-year{display:flex;flex-direction:column;gap:12px;width:100%;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.planning-generate-modal{width:min(760px,95vw)}.planning-generate-modal-body{overflow-y:auto;padding:2px 0 8px}.planning-create-year-modal{margin-top:10px}.planning-create-year-modal .planning-year input{width:140px}.planning-rotation-select{padding:6px 8px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px}.planning-rotation-select.pl-a,.afspraak-ploeg.pl-a{border-color:#d72e2e;color:#ffb1b1}.planning-rotation-select.pl-b,.afspraak-ploeg.pl-b{border-color:#2b6cb0;color:#c8e1ff}.planning-rotation-select.pl-c,.afspraak-ploeg.pl-c{border-color:#2e7d32;color:#b6f0c2}.planning-rotation-select.pl-d,.afspraak-ploeg.pl-d{border-color:#f4a300;color:#ffd591}.ploeg-badge.sm{font-size:10px;padding:1px 6px;min-width:18px;text-align:center}.planning-week-chips{display:inline-flex;gap:3px}.planning-section-toggle{display:flex;align-items:center;gap:6px;background:none;border:none;padding:0;cursor:pointer;color:var(--text)}.planning-section-toggle .caret{font-size:11px;color:var(--muted);width:12px}.planning-section-toggle h4{margin:0;font-size:14px}.planning-section.collapsed{gap:0}.ploeg-badge .ploeg-count{opacity:.85;font-weight:600}.planning-seat-row{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.planning-seat-window{font-size:11px;color:var(--muted);margin-left:46px;word-break:break-word}.planning-seat-residual{display:flex;align-items:center;gap:8px;font-size:12px;margin-left:46px;min-width:0}.planning-residual-tag{color:var(--muted);flex:0 0 auto;min-width:78px}.planning-locked-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#f4a3001f;border:1px solid #f4a300;border-radius:8px;padding:8px 10px;font-size:13px;color:#ffd591}.fill-count{font-size:11px;font-weight:600;padding:1px 7px;border-radius:10px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);white-space:nowrap}.fill-count.complete{color:#b6f0c2;border-color:#2e7d32;background:#2e7d321f}.planning-block-meta{display:inline-flex;align-items:center;gap:8px}.planning-section-toggle .fill-count{margin-left:6px}.afspraak-skill-group{margin-bottom:8px}.afspraak-skill-group:last-child{margin-bottom:0}.afspraak-skill-group-label{display:block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.planner-parity{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.parity-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:7px 16px;font-weight:600;font-size:14px;cursor:pointer}.parity-btn.active{background:var(--accent-2);color:#1a1a1a;border-color:var(--accent-2)}.planner-hint{color:var(--muted);font-size:12px;flex:1 1 220px;min-width:0}.dagdienst-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px}.dd-day{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.dd-day-title{margin:0 0 10px;font-size:15px}.dd-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.dd-day-head .dd-day-title{margin:0}.dd-empty{font-size:12px;margin:2px 0 6px}.dd-skill{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:var(--panel-2)}.dd-skill:last-child{margin-bottom:0}.dd-skill-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.dd-skill-name{font-size:12px;color:var(--muted);font-weight:600}.dd-add-block{font-size:12px;padding:3px 8px;white-space:nowrap}.dd-block{display:flex;align-items:center;gap:6px;margin-bottom:6px}.dd-block:last-child{margin-bottom:0}.dd-block-time{padding:5px 6px;background:var(--panel);border:1px solid var(--border);border-radius:6px;color:var(--text);width:88px}.dd-block-dash{color:var(--muted)}.dd-block-select{flex:1;min-width:0;padding:6px 8px;background:var(--panel);border:1px solid var(--border);border-radius:6px;color:var(--text)}.dd-block-remove{font-size:13px;padding:2px 6px;line-height:1}.reg-ploeg-count{font-size:13px;color:var(--muted)}.reg-ploeg-count strong{color:var(--text)}.dd-vehicles{display:flex;flex-direction:column;gap:12px}.dd-vehicle{display:flex;flex-direction:column;gap:6px}.dd-vehicle-name{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--accent-2);text-transform:uppercase}.dd-seat{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:8px}.dd-seat-skill{font-size:12px;color:var(--muted)}.dd-seat-select{width:100%;padding:7px 8px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:13px}.planner-actions{display:flex;gap:8px}.planner button.primary,.planner-modal button.primary{background:var(--accent-2);color:#1a1a1a;border:0;border-radius:7px;padding:9px 18px;font-weight:700;font-size:14px;cursor:pointer}.planner button.primary:disabled{opacity:.5;cursor:default}.planner-apply{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.planner-apply h4{margin:0 0 12px}.apply-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}.apply-controls label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.apply-controls input{padding:8px 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:14px}.apply-controls input[type=number]{width:90px}.planner-warn{color:var(--warn);font-size:12px;margin:8px 0 0}.planner-placeholder{background:var(--panel);border:1px dashed var(--border);border-radius:10px;padding:20px;color:var(--muted)}.planner-placeholder h4{margin:0 0 8px;color:var(--text)}.planner-modal{width:min(720px,94vw);max-height:88vh;display:flex;flex-direction:column}.planner-modal-head{display:flex;align-items:center;justify-content:space-between}.planner-modal-head h3{margin:0}.planner-summary{display:flex;flex-wrap:wrap;gap:14px;padding:12px 0;border-bottom:1px solid var(--border);font-size:13px;color:var(--muted)}.planner-summary strong{color:var(--text)}.planner-summary .warn strong{color:var(--warn)}.planner-preview-body{overflow-y:auto;padding:12px 0;display:flex;flex-direction:column;gap:10px}.preview-skipped{font-size:12px;color:var(--warn)}.preview-day{border-bottom:1px solid var(--border);padding-bottom:8px}.preview-day-date{font-weight:600;font-size:13px;margin-bottom:4px}.preview-parity{color:var(--muted);font-weight:400;font-size:11px}.preview-seats{display:flex;flex-wrap:wrap;gap:6px}.preview-seat{font-size:12px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:3px 8px}.preview-seat.empty{color:var(--warn);border-color:var(--warn);opacity:.8}.planner-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.apply-result{overflow-y:auto;padding:12px 0}.apply-result-line{font-size:14px;margin:0 0 10px}.apply-row{font-size:12px;padding:3px 0;color:var(--muted)}.apply-row.error{color:#ff7676}.reg-weeknav{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.reg-weeklabel{font-weight:600}.reg-slots{display:flex;flex-direction:column;gap:14px}.reg-slot{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px}.reg-slot.reg-weekend{border-left:3px solid var(--accent-2)}.reg-slot.reg-feestdag{border-left:3px solid var(--warn)}.reg-slot-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.reg-slot-title{font-weight:600;display:flex;align-items:center;gap:8px}.reg-tag{font-size:11px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:2px 7px;color:var(--muted)}.reg-slot-ploeg{display:flex;align-items:center;gap:10px}.reg-slot-ploeg label{display:flex;align-items:center;gap:6px;font-size:13px}.reg-slot-ploeg select{padding:5px 8px}.reg-suggest{font-size:12px;color:var(--muted)}.reg-vehicles{display:flex;flex-wrap:wrap;gap:18px}.reg-vehicles .dd-vehicle{min-width:220px;flex:1}.reg-slot-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.reg-showall{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}@media(max-width:600px){.dd-seat{grid-template-columns:80px 1fr}.planner-subtabs .subtab{padding:9px 12px;font-size:14px}.reg-vehicles .dd-vehicle{min-width:100%}.reg-slot-head{flex-direction:column;align-items:flex-start}.afspraken-toolbar{flex-direction:column;align-items:stretch}.afspraak-head{display:grid;grid-template-columns:1fr auto;align-items:start;gap:8px}.afspraak-name{grid-column:1 / -1}.afspraak-ploeg{grid-column:1 / 2;width:100%}.afspraak-flags{grid-column:2 / 3;justify-self:end;white-space:nowrap}.afspraak-body{grid-template-columns:1fr}.afspraak-time-row{display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:center}.afspraak-time-row>span{font-size:11px;color:var(--muted)}.afspraak-time-row input[type=time]{width:100%}.afspraak-day-row{display:grid;grid-template-columns:44px 1fr auto 1fr;align-items:center}.afspraak-day-row input[type=time]{width:100%}.planning-week-head{row-gap:6px}.planning-week-range{flex:1 1 100%;min-width:0}.planning-week-chips,.planning-seat{flex-wrap:wrap}.planning-seat .skill-badge{min-width:34px}.planning-seat-select{flex:1 1 100%}.planning-seat-window,.planning-seat-residual{margin-left:0}.planning-seat-residual{flex-wrap:wrap}.planning-residual-tag{min-width:0}.planning-year-row{align-items:stretch;gap:8px}.planning-year-row .planning-year,.planning-year-row .planning-year-actions,.planning-year-row .planning-generate-trigger{width:100%}.planning-year-actions{margin-left:0;flex-direction:column;align-items:stretch;gap:6px}.planning-generate-trigger{min-height:44px;font-weight:600}.planning-generate-modal{width:min(96vw,560px);max-height:calc(100vh - 24px);margin:0;border-radius:12px}.planning-generate-modal .planner-modal-head{position:sticky;top:0;z-index:1;background:var(--panel);padding-bottom:8px}.planning-generate-modal .planner-modal-foot{position:sticky;bottom:0;z-index:1;background:var(--panel);padding-top:10px}.planning-generate-modal .planner-modal-foot .ghost,.planning-generate-modal .planner-modal-foot .primary{flex:1;min-height:44px}.planning-create-year-modal{padding:10px}.planning-create-year-modal .planning-year input{width:100%}.planning-rotation-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.planning-rotation-cell select{min-height:40px}}
