:root{--bg:#F6F6F3;--card:#FFFFFF;--line:#ECECE8;--line-strong:#DCDCD6;--ink:#1A1A1A;--ink-2:#6B6B66;--ink-3:#9A9A93;--accent:#1A1A1A;--accent-ink:#000000;--accent-soft:#EFEFEB;--amber:#B25E00;--amber-bg:#FBF1DF;--green:#2F7D52;--red:#B0341F;--green-ink:#2F7D52;--green-mid:#5DA37F;--green-fill:#BFDDCB;--green-soft:#E8F1EC;--amber-ink:#B25E00;--amber-mid:#D08A2C;--amber-fill:#F0D196;--amber-soft:#FBF1DF;--red-ink:#B0341F;--red-fill:#E5B3A8;--red-soft:#F6E0DA;--c-vdh-ink:#3F5070;--c-vdh-bg:#E9EDF3;--c-tpc-ink:#4E6B4D;--c-tpc-bg:#E8EFE6;--c-brug-ink:#876448;--c-brug-bg:#F1EAE0;--c-meridian-ink:#8E5142;--c-meridian-bg:#F2E2DC;--c-site-ink:#4E6B4D;--c-site-bg:#EEF3EC;--c-brand-ink:#8E5142;--c-brand-bg:#F6E9E4;--c-task-ink:#2A2A28;--c-task-bg:#F0EFEA}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{cursor:pointer}button,input,select,textarea{font-family:inherit}input:focus,select:focus,textarea:focus{outline:none}a{color:inherit}.topbar{height:56px;border-bottom:1px solid var(--line);display:flex;padding:0 32px;background:var(--bg);position:sticky;top:0;z-index:10}.brand,.topbar{align-items:center}.brand{display:inline-flex;line-height:1}.brand.brand-link{text-decoration:none;color:inherit}.brand-logo{height:22px;width:auto;max-width:140px;object-fit:contain;flex-shrink:0;display:block}.brand-wordmark{font-weight:800;font-size:17px;letter-spacing:.06em;color:var(--ink);line-height:1}.signout-form{margin:0 0 0 14px}.signout-btn{background:transparent;border:0;padding:4px 8px;font:inherit;font-size:12.5px;color:var(--ink-3);cursor:pointer;border-radius:6px;transition:color .12s,background .12s}.signout-btn:hover{background:var(--red-soft);color:var(--red-ink)}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:36px 32px 32px;box-shadow:0 12px 32px rgba(0,0,0,.04)}.login-brand{display:flex;justify-content:center;margin-bottom:14px}.login-logo{height:32px;width:auto;max-width:180px;display:block}.login-tagline{text-align:center;font-size:13px;color:var(--ink-3);margin:0 0 24px}.login-form{gap:14px}.login-form,.login-form .field{display:flex;flex-direction:column}.login-form .field{gap:4px}.login-form .field label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:600}.login-form .field input{font:inherit;font-size:15px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--card);outline:none;color:var(--ink)}.login-form .field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-submit{width:100%;margin-top:6px;padding:11px;font-size:14px;font-weight:600}.login-hint{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-3);line-height:1.5;text-align:center}.nav{display:flex;gap:4px;margin-left:40px}.nav a{text-decoration:none;color:var(--ink-2);font-size:13px;padding:6px 10px;border-radius:6px;font-weight:500}.nav a.active{background:rgba(0,0,0,.04)}.nav a.active,.nav a:hover:not(.active){color:var(--ink)}.topbar .spacer{flex:1}.topbar .meta{color:var(--ink-3);font-size:12px}.btn{border:1px solid var(--line-strong);background:var(--card);color:var(--ink);padding:7px 14px;border-radius:8px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s}.btn:hover{background:#FAFAF7;border-color:#C8C8C2}.btn.primary{background:var(--accent);color:white;border-color:var(--accent)}.btn.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.btn.ghost{border-color:transparent;color:var(--ink-3);padding:7px 8px}.btn.ghost:hover{color:var(--ink);background:rgba(0,0,0,.04);border-color:transparent}.btn-ghost{background:transparent;border:1px solid var(--line-strong);border-radius:8px;padding:7px 12px;font-size:13px;font-weight:500;color:var(--ink);transition:all .12s;display:inline-flex;align-items:center;gap:6px}.btn-ghost:hover{background:var(--card);border-color:#C8C8C2}.btn-primary{background:var(--accent);color:white;border:1px solid var(--accent);border-radius:8px;padding:7px 14px;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background .12s}.btn-primary:hover{background:var(--accent-ink)}.kbd{display:inline-flex;align-items:center;height:18px;padding:0 5px;border:1px solid var(--line-strong);border-radius:4px;background:#FAFAF7;font-size:11px;color:var(--ink-2);font-family:Inter,monospace;font-weight:500}.icon-x{width:14px;height:14px;display:inline-block;position:relative}.icon-x:after,.icon-x:before{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:currentColor;transform-origin:center}.icon-x:before{transform:translate(-50%,-50%) rotate(45deg)}.icon-x:after{transform:translate(-50%,-50%) rotate(-45deg)}.page{margin:0 auto}.page--inbox{max-width:880px;padding:48px 32px 120px}.page--prognose,.page--week{max-width:1360px;padding:36px 32px 80px}.page--klanten{max-width:1080px;padding:36px 32px 100px}.page--offers{max-width:1200px;padding:36px 32px 100px}.inbox-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.title-block .eyebrow{font-size:12px;color:var(--ink-3);font-weight:500;letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}h1{margin:0;font-size:32px;font-weight:600;letter-spacing:-.02em;line-height:1}.counters{display:flex;gap:32px;align-items:flex-end}.counter .num{font-size:40px;font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.counter .lbl{font-size:12px;color:var(--ink-2);margin-top:6px;max-width:130px}.counter.warn .lbl,.counter.warn .num{color:var(--amber)}.input-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;transition:border-color .15s,box-shadow .15s}.input-card:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.input-form{margin:0}.input-row{display:flex;align-items:center;gap:14px}.input-submit{flex-shrink:0;width:44px;height:44px;border-radius:10px;background:var(--ink);color:var(--bg);border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,opacity .12s}.input-submit:hover{background:#000}.input-submit:disabled{background:var(--line);color:var(--ink-3);cursor:not-allowed}.input-prefix{color:var(--ink-3);font-size:18px;font-weight:400;user-select:none;line-height:1}.braindump{flex:1;min-width:0;border:0;background:transparent;font-size:17px;color:var(--ink);padding:6px 0}.braindump::placeholder{color:var(--ink-3)}.dump-title-chip{display:inline-block;padding:4px 10px;background:var(--ink);color:var(--bg);border-radius:8px;font-size:14px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dump-client-list{list-style:none;margin:12px 0 0;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--card);max-height:220px;overflow-y:auto}.dump-client-item{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:0;padding:8px 10px;border-radius:6px;font:inherit;font-size:13.5px;color:var(--ink);text-align:left;cursor:pointer}.dump-client-item.active,.dump-client-item:hover{background:#F4F4EF}.input-hint{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3);align-items:center}.input-hint,.list-head{display:flex;justify-content:space-between}.list-head{align-items:baseline;margin:40px 0 14px}.list-head h2{margin:0;font-size:13px;font-weight:600;color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase}.list-head .sort{font-size:12px;color:var(--ink-3)}.list-head .sort select{border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:500;cursor:pointer;margin-left:4px}.tasks{display:flex;flex-direction:column;gap:8px}.task{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px;display:flex;align-items:center;gap:16px;transition:border-color .12s,transform .12s}.task:hover{border-color:var(--line-strong)}.task.new{animation:pop .35s ease}@keyframes pop{0%{transform:translateY(-4px);opacity:0}to{transform:translateY(0);opacity:1}}.task .body{flex:1;min-width:0}.task .text{font-size:15px;color:var(--ink);line-height:1.4}.task .meta{margin-top:4px;font-size:12px;color:var(--ink-3);display:flex;gap:12px;align-items:center}.task.old .meta .age{color:var(--amber);font-weight:500}.task .actions{display:flex;gap:6px;flex-shrink:0}.empty{text-align:center;padding:56px 20px;color:var(--ink-3);font-size:14px;border:1px dashed var(--line-strong);border-radius:12px;background:transparent}.age-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ink-3);margin-right:6px;vertical-align:middle}.age-dot.old{background:var(--amber)}.age-dot.fresh{background:var(--green)}.modal-backdrop{position:fixed;inset:0;background:rgba(26,26,26,.32);display:none;align-items:center;justify-content:center;z-index:100;padding:24px}.modal-backdrop.open{display:flex}.modal{background:var(--card);border-radius:14px;width:100%;max-width:480px;box-shadow:0 12px 40px rgba(20,20,20,.1),0 2px 6px rgba(20,20,20,.06);overflow:hidden;animation:slideUp .18s ease}@keyframes slideUp{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-head{padding:22px 24px 0}.modal-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600;margin-bottom:8px}.modal h3{margin:0;font-size:17px;font-weight:500;color:var(--ink);line-height:1.4}.modal-body{padding:22px 24px 8px;display:flex;flex-direction:column;gap:18px}.field label{display:block;font-size:12px;color:var(--ink-2);font-weight:500;margin-bottom:6px}.field input[type=date],.field input[type=number],.field input[type=text],.field select{width:100%;border:1px solid var(--line-strong);border-radius:8px;padding:9px 12px;font-size:14px;color:var(--ink);background:var(--card);transition:border-color .12s,box-shadow .12s}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.duration-chips{display:flex;gap:6px;margin-top:8px}.chip{border:1px solid var(--line-strong);background:var(--card);color:var(--ink-2);padding:5px 10px;border-radius:6px;font-size:12px;font-weight:500;transition:all .12s}.chip:hover{color:var(--ink);border-color:#C8C8C2}.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.rate-row{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:12px}.rate-row input{max-width:90px}.rate-default{color:var(--ink-3);font-size:12px}.modal-foot{padding:16px 24px 20px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:4px;background:#FAFAF7}.modal-foot .left{font-size:12px;color:var(--ink-3)}.modal-foot .right{display:flex;gap:8px}.modal-foot .kbd{background:white}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.page-head .eyebrow{font-size:12px;color:var(--ink-3);font-weight:500;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}.page-head h1{margin:0;font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1}.page-head .desc{color:var(--ink-2);font-size:13px;margin-top:6px}.week-title{display:flex;align-items:center;gap:16px}.arrows{display:flex;gap:6px;margin-left:16px;align-self:flex-end}.arrow-btn{width:32px;height:32px;border:1px solid var(--line-strong);background:var(--card);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);transition:all .12s}.arrow-btn:hover{color:var(--ink);border-color:#C8C8C2}.arrow-btn svg{display:block}.head-actions{display:flex;gap:8px;align-items:center}.week-picker{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line-strong);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;transition:border-color .12s,background .12s}.week-picker:hover{border-color:#C8C8C2}.week-picker-label{color:var(--ink-3);font-size:12px;font-weight:500}.week-picker input[type=date]{border:0;background:transparent;font:inherit;color:inherit;padding:4px 2px;cursor:pointer;font-variant-numeric:tabular-nums}.week-picker input[type=date]:focus{outline:none}.stats{background:var(--card);border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:1fr 1fr 1fr;margin-bottom:24px;overflow:hidden}.stat{padding:22px 28px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat .num{font-size:40px;font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat .num .u{font-size:24px;color:var(--ink-2);font-weight:500;margin-left:2px}.stat .lbl{margin-top:8px;font-size:13px;color:var(--ink);font-weight:500}.stat .sub{margin-top:2px;font-size:12px;color:var(--ink-3)}.stat.free .num{color:var(--green-ink);font-weight:700}.stat.free .num .u{color:var(--green-ink);opacity:.7}.stat.warn .num{color:var(--amber-ink);font-weight:700}.stat.warn .num .u{color:var(--amber-ink);opacity:.7}.stat.alert .num{color:var(--red-ink);font-weight:700}.stat.alert .num .u{color:var(--red-ink);opacity:.7}.main{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:flex-start}.calendar-card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.day-row{display:grid;grid-template-columns:60px repeat(5,1fr);border-bottom:1px solid var(--line);background:#FAFAF8}.day-head,.day-row .gut{border-right:1px solid var(--line)}.day-head{padding:14px 14px 12px;font-size:12px;color:var(--ink-2)}.day-head:last-child{border-right:0}.day-head .dow{text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--ink-3);font-size:11px}.day-head .dnum{margin-top:2px;font-size:18px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.day-head.today .dnum,.day-head.today .dow{color:var(--accent)}.day-head.off .dow{color:var(--ink-3)}.day-head .freetag,.day-head.off .dnum{color:var(--ink-3);font-weight:500}.day-head .freetag{margin-top:6px;display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.grid-body{display:grid;grid-template-columns:60px repeat(5,1fr);position:relative}.time-axis{border-right:1px solid var(--line)}.time-axis .slot{height:60px;padding:4px 8px 0 0;text-align:right;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.day-col{border-right:1px solid var(--line);position:relative;min-height:600px}.day-col:last-child{border-right:0}.day-col .hour-line{position:relative;border-bottom:1px solid var(--line);height:60px}.day-col .hour-line .qmark{position:absolute;left:0;right:0;height:0;pointer-events:none}.day-col .hour-line .qmark.q15,.day-col .hour-line .qmark.q45{border-bottom:1px dotted rgba(20,20,20,.05)}.day-col .hour-line .qmark.q30{border-bottom:1px dashed rgba(20,20,20,.08)}.day-col .hour-line .qmark.q15{top:15px}.day-col .hour-line .qmark.q30{top:30px}.day-col .hour-line .qmark.q45{top:45px}.time-axis .half-tick{font-size:9.5px;color:var(--ink-3);text-align:right;padding:0 8px 0 0;height:0;line-height:0;position:relative;top:30px;opacity:.7}.drop-ghost{position:absolute;left:6px;right:6px;border-radius:8px;background:var(--accent-soft);border:1.5px dashed var(--accent);pointer-events:none;z-index:3;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}.day-col.drop-target{background-color:rgba(26,26,26,.015)}.unsched[draggable=true]{user-select:none}.unsched.dragging{opacity:.4}.topbar-timer{display:inline-flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line-strong);border-radius:999px;padding:4px 6px 4px 10px;margin-right:14px;font-size:12.5px;max-width:280px}.topbar-timer-pulse{width:8px;height:8px;position:relative;flex-shrink:0}.topbar-timer-pulse span{position:absolute;inset:0;border-radius:50%;animation:timer-pulse 1.6s ease-in-out infinite}@keyframes timer-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.25);opacity:.55}}.topbar-timer-meta{display:flex;flex-direction:column;min-width:0;line-height:1.15}.topbar-timer-title{color:var(--ink);font-weight:500}.topbar-timer-sub,.topbar-timer-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.topbar-timer-sub{color:var(--ink-3);font-size:11px}.topbar-timer-elapsed{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";color:var(--ink);font-weight:600;letter-spacing:-.01em;margin-left:auto;padding-left:4px}.topbar-timer-stop{flex-shrink:0;width:22px;height:22px;border:0;background:var(--red-soft);color:var(--red-ink);border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s}.topbar-timer-stop:hover{background:var(--red-fill)}.topbar-timer-stop:disabled{opacity:.6;cursor:default}.timer-btn{border:1px solid var(--line-strong);background:var(--card);color:var(--ink-2);border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:all .12s}.timer-btn:hover{color:var(--green-ink);border-color:var(--green-mid);background:var(--green-soft)}.timer-btn.active{color:white;background:var(--red-ink);border-color:var(--red-ink);animation:timer-pulse 1.6s ease-in-out infinite}.timer-btn.active:hover{background:var(--red);border-color:var(--red);color:white}.timer-btn:disabled{opacity:.5;cursor:default}.timer-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.entries-panel{border-top:1px solid var(--line);margin-top:4px;padding-top:16px;display:flex;flex-direction:column;gap:10px}.entries-head{justify-content:space-between;gap:12px}.entries-head,.entries-title{display:flex;align-items:center}.entries-title{gap:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.entries-title,.entries-total{font-size:12px;color:var(--ink-2)}.entries-total strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.entries-actions{display:flex;align-items:center;gap:12px}.entries-actions .btn{padding:5px 10px;font-size:12px}.entries-list{list-style:none;margin:0;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:10px;background:#FAFAF8;padding:4px}.entry-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;font-size:13px}.entry-row:hover{background:var(--card)}.entry-row.running .entry-when{color:var(--green-ink);font-weight:500}.entry-when{color:var(--ink)}.entry-duration,.entry-when{font-variant-numeric:tabular-nums}.entry-duration{color:var(--ink-2);white-space:nowrap}.entry-actions{display:inline-flex;align-items:center;gap:4px}.entry-row.editing{display:flex;flex-direction:column;align-items:stretch;gap:10px;background:var(--card);border:1px solid var(--accent-soft);padding:12px}.entry-edit-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.entry-edit-fields label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)}.entry-edit-fields input{border:1px solid var(--line-strong);border-radius:6px;padding:6px 8px;font-size:13px;font-family:inherit;color:var(--ink);background:var(--card)}.entry-edit-fields input:focus{border-color:var(--accent);outline:none}.billing-banner{display:flex;align-items:center;gap:14px;padding:14px 18px;margin-bottom:24px;background:linear-gradient(90deg,var(--amber-soft) 0,var(--amber-soft) 100%);border:1px solid #efdeb8;border-radius:12px;text-decoration:none;color:var(--ink);transition:transform .1s,box-shadow .12s}.billing-banner:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(20,20,20,.05)}.billing-banner-emoji{font-size:22px;line-height:1}.billing-banner-text{flex:1;font-size:13.5px}.billing-banner-cta,.billing-banner-text strong{color:var(--amber-ink)}.billing-banner-cta{font-size:13px;font-weight:500;white-space:nowrap}.invoice-period-toggle{display:inline-flex;border:1px solid var(--line-strong);background:var(--card);border-radius:8px;padding:3px;align-self:flex-end}.invoice-period-toggle button{border:0;background:transparent;padding:6px 12px;font-size:12.5px;font-weight:500;color:var(--ink-2);border-radius:6px;cursor:pointer}.invoice-period-toggle button.active{background:var(--ink);color:white}.invoice-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:14px 16px;margin-bottom:22px;background:#FAFAF8;border:1px solid var(--line);border-radius:10px}.invoice-range{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}.invoice-range input[type=date]{border:1px solid var(--line-strong);border-radius:6px;padding:5px 8px;font-size:13px;font-family:inherit;color:var(--ink);background:var(--card);font-variant-numeric:tabular-nums}.invoice-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer}.invoice-list{display:flex;flex-direction:column;gap:14px}.invoice-client{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.invoice-client-head{display:grid;grid-template-columns:8px 1fr auto auto;gap:16px;align-items:center;padding:14px 18px;background:#FAFAF8;border-bottom:1px solid var(--line)}.invoice-color{width:8px;height:28px;border-radius:3px}.invoice-client-name{font-weight:600;font-size:15px;color:var(--ink)}.invoice-client-subtotal{font-size:17px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.invoice-client-actions{display:flex;gap:8px;align-items:center}.invoice-rows{display:flex;flex-direction:column}.invoice-row{display:grid;grid-template-columns:28px 1fr auto;grid-template-areas:"mark title amount" "mark meta amount";gap:4px 14px;padding:12px 18px;border-bottom:1px solid var(--line)}.invoice-row:last-child{border-bottom:0}.invoice-row.invoiced{opacity:.55}.invoice-row.retainer{background:var(--green-soft)}.invoice-row.retainer.invoiced{background:transparent}.invoice-mark{grid-area:mark;align-self:start;padding-top:2px}.invoice-mark input[type=checkbox]{width:16px;height:16px;accent-color:var(--green-ink);cursor:pointer}.invoice-title{grid-area:title;color:var(--ink);font-weight:500;font-size:13.5px}.invoice-title-btn{background:transparent;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.invoice-title-btn:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.invoice-row.invoiced .invoice-title{text-decoration:line-through}.invoice-meta{grid-area:meta;color:var(--ink-3);font-size:12px;font-variant-numeric:tabular-nums}.invoice-amount{grid-area:amount;align-self:center;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px}.invoice-warn{color:var(--amber-ink);font-weight:500}.invoice-grand-total{margin-top:24px;padding:18px 22px;background:var(--card);border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:space-between}.invoice-grand-total .lbl{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600}.invoice-grand-total .val{font-size:26px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.day-col.off{background:repeating-linear-gradient(135deg,transparent,transparent 7px,rgba(0,0,0,.025) 0,rgba(0,0,0,.025) 8px)}.day-col.off .hour-line{border-bottom-color:rgba(0,0,0,.04)}.off-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-90deg);font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em;font-weight:500;white-space:nowrap;user-select:none}.block{position:absolute;left:6px;right:6px;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.3;overflow:hidden;cursor:pointer;border:1px solid transparent;transition:transform .1s,box-shadow .1s}.block:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.06)}.block .ttl{font-weight:600;font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.block .sub{margin-top:2px;font-size:11px;color:var(--ink-2);font-variant-numeric:tabular-nums}.block.compact{padding:3px 8px}.block.compact .ttl{font-size:11.5px;-webkit-line-clamp:1;line-height:1.2}.block.compact .sub{font-size:10.5px;margin-top:0;line-height:1.2}.block.tiny{padding:2px 8px}.block.tiny .ttl{font-size:11px;line-height:1.1;-webkit-line-clamp:1;white-space:nowrap}.block.tiny .sub{display:none}.block.dragging{opacity:.4}.block.resizing{box-shadow:0 0 0 2px var(--accent-soft),0 2px 8px rgba(0,0,0,.08)}.block .block-quick-done{position:absolute;top:4px;right:4px;width:18px;height:18px;padding:0;border:1px solid var(--line-strong);background:var(--card);color:var(--ink-2);border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s,background .12s,color .12s,border-color .12s;z-index:2}.block:focus-within .block-quick-done,.block:hover .block-quick-done{opacity:1}.block .block-quick-done:hover{background:var(--green-soft);color:var(--green-ink);border-color:var(--green-mid);opacity:1}.block.done{opacity:.55;cursor:pointer}.block.done .ttl{text-decoration:line-through}.block.done .block-quick-done,.block.done .resize-handle{display:none}.block .resize-handle{position:absolute;left:8px;right:8px;bottom:-2px;height:6px;cursor:ns-resize;border-radius:3px;background:transparent;touch-action:none}.block.resizing .resize-handle,.block:hover .resize-handle{background:rgba(0,0,0,.12)}.block .resize-handle:hover{background:rgba(0,0,0,.2)}.b-vdh{background:var(--c-vdh-bg);border-left:3px solid var(--c-vdh-ink)}.b-vdh .sub{color:var(--c-vdh-ink)}.b-tpc{background:var(--c-tpc-bg);border-left:3px solid var(--c-tpc-ink)}.b-tpc .sub{color:var(--c-tpc-ink)}.b-brug{background:var(--c-brug-bg);border-left:3px solid var(--c-brug-ink)}.b-brug .sub{color:var(--c-brug-ink)}.b-meridian{background:var(--c-meridian-bg);border-left:3px solid var(--c-meridian-ink)}.b-meridian .sub{color:var(--c-meridian-ink)}.b-site{background:var(--c-site-bg);border-left:3px dashed var(--c-site-ink)}.b-site .sub{color:var(--c-site-ink)}.b-brand{background:var(--c-brand-bg);border-left:3px dashed var(--c-brand-ink)}.b-brand .sub{color:var(--c-brand-ink)}.b-task{background:var(--c-task-bg);border:1px solid var(--line-strong);border-left:3px solid var(--ink-3)}.b-task .sub{color:var(--ink-2)}.now-line{position:absolute;left:0;right:0;height:0;border-top:1.5px solid var(--accent);z-index:4;pointer-events:none}.now-line:before{content:"";position:absolute;left:-4px;top:-4px;width:7px;height:7px;background:var(--accent);border-radius:50%}.legend{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:18px;flex-wrap:wrap;background:#FAFAF8;font-size:12px;color:var(--ink-2)}.legend-item{display:flex;align-items:center;gap:6px}.legend-swatch{width:10px;height:10px;border-radius:3px}.legend-line{width:14px;height:0;border-top:2px dashed var(--ink-3)}.side{display:flex;flex-direction:column;gap:16px;position:sticky;top:80px}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-head{padding:16px 18px 12px}.panel-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600}.panel h3{margin:4px 0 0;font-size:15px;font-weight:600;color:var(--ink);line-height:1.3}.panel-body{padding:4px 18px 18px}.doorlopend-row{padding:12px 0;border-bottom:1px solid var(--line)}.doorlopend-row:last-child{border-bottom:0;padding-bottom:4px}.dl-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.dl-name{font-size:13.5px;font-weight:500;color:var(--ink)}.dl-budget{font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.dl-bar{margin-top:8px;height:6px;background:#F0F0EB;border-radius:3px;overflow:hidden;position:relative}.dl-bar .fill{height:100%;border-radius:3px}.dl-meta{margin-top:6px;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.unsched{padding:12px;border:1px solid var(--line);border-radius:10px;background:#FAFAF8;margin-top:8px;display:flex;gap:10px;align-items:flex-start;cursor:grab;transition:border-color .12s,background .12s}.unsched:hover{background:var(--card);border-color:var(--line-strong)}.unsched:active{cursor:grabbing}.grip{flex-shrink:0;width:10px;height:16px;margin-top:2px;background-image:radial-gradient(var(--ink-3) 1px,transparent 1.2px);background-size:4px 4px;background-position:0 0;opacity:.55}.unsched-body{flex:1;min-width:0}.unsched-ttl{font-size:13px;font-weight:500;color:var(--ink);line-height:1.35}.unsched-ttl[role=button]{cursor:pointer;border-radius:4px}.unsched-ttl[role=button]:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.unsched-ttl[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.unsched-meta{margin-top:4px;font-size:11.5px;color:var(--ink-2);display:flex;gap:10px;flex-wrap:wrap;font-variant-numeric:tabular-nums}.deadline-today{color:var(--amber);font-weight:500}.pill{display:inline-block;padding:1px 7px;border-radius:999px;border:1px solid var(--line-strong);font-size:11px;color:var(--ink-2);background:var(--card)}.unsched.is-inbox{border-left:3px solid var(--amber);background:var(--amber-soft)}.unsched.is-inbox:hover{background:#FDF4E2}.unsched-proj{color:var(--ink-3);font-size:11px}.unsched-meta{align-items:center}.qcp{position:relative;display:inline-block}.qcp-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink-2);font-size:11px;font-weight:500;cursor:pointer;line-height:1.45;font-family:inherit;font-variant-numeric:tabular-nums;transition:border-color .12s,background .12s,color .12s}.qcp-chip:hover{border-color:var(--ink-3);color:var(--ink)}.qcp-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.qcp-chip-empty{color:var(--ink-3);border-style:dashed}.qcp-chip-empty:hover,.qcp-chip-project{color:var(--ink-2)}.qcp-chip-project{cursor:default;background:transparent;border-style:dashed}.qcp-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.qcp-pop{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:220px;background:var(--card);border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.08);padding:8px}.qcp-search{width:100%;border:1px solid var(--line);background:#FAFAF8;border-radius:6px;padding:6px 8px;font-size:12.5px;font-family:inherit;color:var(--ink);outline:none}.qcp-search:focus{border-color:var(--ink-3);background:var(--card)}.qcp-list{list-style:none;margin:6px 0 0;padding:0;max-height:220px;overflow-y:auto}.qcp-empty{padding:6px 8px;color:var(--ink-3);font-size:12px}.qcp-item{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:0;padding:6px 8px;border-radius:6px;font:inherit;font-size:12.5px;color:var(--ink);text-align:left;cursor:pointer}.qcp-item:hover{background:#F4F4EF}.qcp-item.active{background:#F0F0EB;font-weight:500}.qcp-item-clear{color:var(--ink-3);font-style:italic;border-bottom:1px solid var(--line);margin-bottom:4px;border-radius:0}.doorlopend-row.doorlopend-row-btn{cursor:grab;user-select:none}.doorlopend-row.doorlopend-row-btn:active{cursor:grabbing}.doorlopend-row.doorlopend-row-btn:hover .dl-name{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.doorlopend-row.doorlopend-row-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.doorlopend-row.dragging{opacity:.4}.panel.unschedule-target{outline:2px dashed var(--line-strong);outline-offset:-2px;border-radius:12px}.panel.unschedule-active{outline:2px dashed var(--amber);outline-offset:-2px;background:var(--amber-soft);border-radius:12px}.unschedule-hint{font-size:11px;color:var(--amber-ink);margin-top:4px;font-weight:500}.client-logo{flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:var(--card);overflow:hidden;display:flex;align-items:center;justify-content:center}.client-logo img{max-width:100%;max-height:100%;object-fit:contain}.detail-logo{flex-shrink:0;width:56px;height:56px;border-radius:10px;border:1px solid var(--line);background:var(--card);overflow:hidden;display:flex;align-items:center;justify-content:center}.detail-logo img{max-width:100%;max-height:100%;object-fit:contain}.invoice-logo{flex-shrink:0;width:30px;height:30px;border-radius:6px;border:1px solid var(--line);background:var(--card);overflow:hidden;display:flex;align-items:center;justify-content:center}.invoice-logo img{max-width:100%;max-height:100%;object-fit:contain}.logo-uploader{display:flex;gap:14px;align-items:flex-start}.logo-preview{flex-shrink:0;width:80px;height:80px;border-radius:10px;border:1px dashed var(--line-strong);background:#FAFAF8;overflow:hidden;display:flex;align-items:center;justify-content:center}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.logo-empty{font-size:11px;color:var(--ink-3)}.logo-actions{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.logo-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.logo-actions .btn{cursor:pointer}.logo-hint{font-size:11px;color:var(--ink-3)}.logo-error{font-size:12px;color:var(--red-ink)}.task-drawer-root{position:fixed;inset:0;z-index:60;pointer-events:none}.task-drawer-backdrop{position:absolute;inset:0;background:rgba(20,20,18,0);transition:background .22s ease;pointer-events:auto}.task-drawer-backdrop.open{background:rgba(20,20,18,.32)}.task-drawer{position:absolute;top:0;right:0;bottom:0;width:min(640px,96vw);background:var(--card);border-left:1px solid var(--line-strong);box-shadow:-16px 0 40px rgba(0,0,0,.08);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s cubic-bezier(.2,.7,.2,1);pointer-events:auto}.task-drawer.open{transform:translateX(0)}.task-drawer-head{position:relative;padding:22px 60px 18px 24px;border-bottom:1px solid var(--line)}.task-drawer-head-row{display:flex;gap:14px;align-items:flex-start}.task-drawer-logo{flex-shrink:0;width:44px;height:44px;border-radius:10px;border:1px solid var(--line);background:var(--card);overflow:hidden;display:flex;align-items:center;justify-content:center}.task-drawer-logo img{max-width:100%;max-height:100%;object-fit:contain}.task-drawer-color{flex-shrink:0;width:8px;height:44px;border-radius:4px}.task-drawer-head-text{flex:1;min-width:0}.task-drawer-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-drawer-eyebrow a{color:var(--ink-3);text-decoration:none}.task-drawer-eyebrow a:hover{color:var(--ink-2);text-decoration:underline}.task-drawer-badge{display:inline-block;padding:1px 7px;border-radius:999px;background:var(--green-soft);color:var(--green-ink);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border:1px solid #cfe3d6}.task-drawer-title{font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.25;color:var(--ink);cursor:text;border-radius:4px;padding:2px 4px;margin:6px 0 0 -4px}.task-drawer-title:hover{background:#F4F4EF}.task-drawer-title-input{margin:4px 0 0;font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.25;color:var(--ink);width:100%;border:1px solid var(--ink-3);background:var(--card);border-radius:6px;padding:2px 6px;outline:none}.task-drawer-title-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.task-drawer-close{position:absolute;top:18px;right:18px;width:32px;height:32px;background:transparent;border:1px solid var(--line);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.task-drawer-close:hover{background:#F4F4EF;border-color:var(--line-strong);color:var(--ink)}.task-drawer-body{flex:1;overflow-y:auto;padding:18px 24px 28px;display:flex;flex-direction:column;gap:28px}.task-drawer-section{display:flex;flex-direction:column;gap:10px}.task-drawer-section-head{display:flex;align-items:center;gap:12px}.task-drawer-section-head h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:600;flex:1}.task-drawer-save-state{font-size:11px;color:var(--ink-3);font-style:italic;min-width:60px;text-align:right}.task-drawer-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.task-drawer-row>.task-drawer-field:first-child:last-child{grid-column:1/-1}.task-drawer-row-secondary{opacity:.95}@media (min-width:720px){.task-drawer-row>.task-drawer-field{min-width:0}}.task-drawer-row.three-col{grid-template-columns:1fr 1fr 1fr}.task-drawer-field{display:flex;flex-direction:column;gap:4px;min-width:0}.task-drawer-field>span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:600}.task-drawer-field input,.task-drawer-field select{font:inherit;font-size:13.5px;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--card);outline:none}.task-drawer-field input:focus,.task-drawer-field select:focus{border-color:var(--ink-3)}.task-drawer-hint{font-weight:400;text-transform:none;letter-spacing:0;font-size:10.5px;color:var(--ink-3);margin-left:4px}.task-drawer-actions{display:flex;gap:12px;align-items:center;margin-top:4px}.task-drawer-dropzone{border:1px dashed var(--line-strong);border-radius:10px;padding:14px;background:#FAFAF8;color:var(--ink-3);font-size:12.5px;text-align:center;transition:background .12s,border-color .12s,color .12s}.task-drawer-dropzone.active{border-color:var(--amber);background:var(--amber-soft);color:var(--amber-ink)}.task-drawer-dropzone-big{border:2px dashed var(--line-strong);border-radius:12px;padding:28px 20px;background:#FAFAF8;color:var(--ink-3);font-size:13px;text-align:center;line-height:1.45;transition:background .15s,border-color .15s,color .15s;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:140px;justify-content:center}.task-drawer-dropzone-big strong{color:var(--ink);font-weight:600}.task-drawer-dropzone-big.active{border-color:var(--amber);background:var(--amber-soft);color:var(--amber-ink)}.task-drawer-dropzone-icon{font-size:28px;line-height:1;color:var(--ink-3)}.task-drawer-dropzone-big.active .task-drawer-dropzone-icon{color:var(--amber-ink)}.task-drawer-dropzone-hint{font-size:11px;color:var(--ink-3);margin-top:2px}.task-drawer-foot{padding:14px 24px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--card)}.task-drawer-foot-meta{font-size:11.5px;color:var(--ink-3)}.task-drawer-foot-actions{display:flex;gap:16px;align-items:center}.offers-hero{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin-bottom:24px}@media (max-width:800px){.offers-hero{grid-template-columns:1fr}}.offers-hero-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px 28px;position:relative;overflow:hidden}.offers-hero-card.pipeline{background:linear-gradient(160deg,#E9F2EC,#D6E8DC);border-color:#BFD8C7;color:var(--green-ink)}.offers-hero-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;opacity:.85}.offers-hero-label,.offers-hero-num{font-weight:700;color:var(--green-ink)}.offers-hero-num{margin-top:10px;font-size:44px;letter-spacing:-.025em;line-height:1;font-variant-numeric:tabular-nums}.offers-hero-sub{margin-top:8px;font-size:13px;color:var(--green-ink);opacity:.85}.offers-hero-aside{margin-top:22px;padding-top:16px;border-top:1px dashed #bfd8c7;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:baseline}.offers-hero-aside-num{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--green-ink);opacity:.75;grid-row:1}.offers-hero-aside-lbl{font-size:12px;color:var(--green-ink);opacity:.8;display:flex;align-items:center;gap:6px;grid-row:1}.offers-hero-aside-sub{grid-column:1/-1;margin-top:2px;font-size:11px;color:var(--green-ink);opacity:.65;font-style:italic}.infotip{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;vertical-align:middle;color:currentColor;opacity:.55;position:relative;cursor:help;outline:none;width:14px;height:14px}.infotip:focus,.infotip:hover{opacity:.9}.infotip-pop{z-index:40;bottom:calc(100% + 8px);width:max-content;max-width:240px;background:var(--ink);color:var(--bg);padding:8px 10px;border-radius:6px;font-size:11.5px;line-height:1.4;font-weight:400;text-transform:none;letter-spacing:0;font-style:normal;white-space:normal;text-align:left;opacity:0;pointer-events:none;transition:opacity .15s;box-shadow:0 4px 12px rgba(0,0,0,.18)}.infotip-pop,.infotip-pop:after{position:absolute;left:50%;transform:translateX(-50%)}.infotip-pop:after{content:"";top:100%;border:5px solid transparent;border-top:5px solid var(--ink)}.infotip:focus .infotip-pop,.infotip:hover .infotip-pop{opacity:1}.offers-hero-side{display:grid;grid-template-rows:1fr 1fr;gap:12px}.offers-side-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 22px}.offers-side-card.invoiced{background:var(--amber-soft);border-color:#EFDEB8}.offers-side-card.lost{background:var(--red-soft);border-color:#E7C7BE}.offers-side-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;display:flex;align-items:center;gap:6px}.offers-side-card.invoiced .offers-side-lbl{color:var(--amber-ink)}.offers-side-card.lost .offers-side-lbl{color:var(--red-ink)}.offers-side-num{margin-top:8px;font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1}.offers-side-card.invoiced .offers-side-num{color:var(--amber-ink)}.offers-side-card.lost .offers-side-num{color:var(--red-ink)}.offers-side-sub{margin-top:4px;font-size:11.5px;opacity:.8}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.in_aanvraag{background:#C49445}.status-dot.open{background:var(--green-ink)}.status-dot.invoiced{background:var(--amber-ink)}.status-dot.lost{background:var(--red-ink)}.offers-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.offers-controls-meta{font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.offers-controls-meta strong{color:var(--ink);font-weight:600}.offers-list{display:flex;flex-direction:column;gap:8px}.offer{display:grid;grid-template-columns:28px 1fr auto auto;align-items:center;gap:16px;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:12px;transition:border-color .12s,background .12s,opacity .12s}.offer:hover{border-color:var(--line-strong)}.offer.in_aanvraag{border-left:3px solid #c49445}.offer.open{border-left:3px solid var(--green-ink)}.offer.invoiced{border-left:3px solid var(--amber-ink);opacity:.65}.offer.lost{border-left:3px solid var(--red-ink);opacity:.45}.offer-check{display:flex;align-items:center;justify-content:center}.offer-check input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--green-ink)}.offer-body{min-width:0}.offer-title{font-size:14.5px;color:var(--ink);font-weight:500;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.offer.invoiced .offer-title{text-decoration:line-through}.offer-meta{margin-top:4px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}.offer-client{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-weight:500}.offer-client a{color:var(--ink-2);text-decoration:none}.offer-client a:hover{text-decoration:underline}.offer-prospect-tag{font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:999px;background:var(--amber-soft);color:var(--amber-ink);border:1px solid #efdeb8;font-weight:600}.offer-amount{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:-.01em}.offer-status-pill{font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:1px 7px;border-radius:999px;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--ink-3)}.offer-status-pill.in_aanvraag{background:#F6E9C9;color:#7A5A1F;border-color:#EAD89E}.offer-status-pill.open{background:var(--green-soft);color:var(--green-ink);border-color:#CFE3D6}.offer-status-pill.invoiced{background:var(--amber-soft);color:var(--amber-ink);border-color:#EFDEB8}.offer-status-pill.lost{background:var(--red-soft);color:var(--red-ink);border-color:#E7C7BE}.offer-actions{display:flex;align-items:center;gap:6px}.offer-status-select{font:inherit;font-size:12px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);border-radius:6px;padding:4px 6px;cursor:pointer}.offer-status-select:hover{border-color:var(--line-strong)}.offer-client-field,.offer-client-wrap{position:relative}.offer-resolved{display:flex;align-items:center;gap:8px;margin-top:6px;padding:6px 10px;background:#F4F4EF;border-radius:8px;font-size:12.5px;color:var(--ink)}.offer-resolved-tag{font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:999px;background:var(--card);color:var(--ink-3);border:1px solid var(--line);font-weight:600}.offer-resolved-tag.prospect{background:var(--amber-soft);color:var(--amber-ink);border-color:#EFDEB8}.offer-suggest{list-style:none;margin:0;padding:6px;border:1px solid var(--line-strong);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.08);max-height:240px;overflow-y:auto}.offer-suggest,.offer-suggest-empty{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;background:var(--card)}.offer-suggest-empty{padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:12px;color:var(--ink-3)}.offer-suggest-empty strong{color:var(--ink)}@media (max-width:720px){.topbar{padding:10px 14px;gap:12px;flex-wrap:wrap}.brand-logo{height:20px;max-width:120px}.brand-wordmark{font-size:15px}.nav{order:3;flex-basis:100%;overflow-x:auto;gap:14px;padding-bottom:4px;margin:0 -14px;padding-left:14px;padding-right:14px;-webkit-overflow-scrolling:touch}.nav a{flex-shrink:0;white-space:nowrap}.topbar .meta{font-size:11px;order:2;margin-left:auto}.page--inbox,.page--klanten,.page--offers,.page--prognose,.page--week{padding:20px 16px 80px}.inbox-header{flex-direction:column;align-items:flex-start;gap:12px}.counters{width:100%;gap:10px}.counter{flex:1;padding:12px 14px}.counter .num{font-size:22px}.input-card{padding:14px 12px}.braindump{font-size:16px;padding:10px 0;-webkit-user-select:text;user-select:text}.input-row{gap:8px}.input-prefix{font-size:16px}.input-submit{width:48px;height:48px}.input-hint{margin-top:12px;padding-top:10px;align-items:flex-start;gap:6px;font-size:11.5px}.input-hint,.task{flex-direction:column}.task{padding:12px 14px;align-items:stretch;gap:10px}.task .actions{justify-content:flex-end;gap:8px}.task .body.body-clickable{padding:6px;margin:-6px}.task .text{font-size:15px}.dump-client-list{max-height:50vh}.dump-title-chip{max-width:200px}.calendar-card{overflow-x:auto}.stats{grid-template-columns:1fr}.stat{padding:16px 18px}.offers-hero{grid-template-columns:1fr}.offers-hero-num{font-size:32px}.offer{grid-template-columns:28px 1fr}.offer-amount{grid-column:2;font-size:15px;text-align:right}.offer-actions{grid-column:1/-1;justify-content:flex-end}}.task .body.body-clickable{cursor:pointer;border-radius:8px;padding:4px 6px;margin:-4px -6px}.task .body.body-clickable:hover{background:#F4F4EF}.task .body.body-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.task-drawer-attachments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.task-attachment{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card)}.task-attachment-thumb{flex-shrink:0;width:44px;height:44px;border-radius:8px;border:1px solid var(--line);background:#FAFAF8;overflow:hidden;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ink-2)}.task-attachment-thumb img{max-width:100%;max-height:100%;object-fit:cover}.task-attachment-icon{font-size:10px;font-weight:600;letter-spacing:.04em}.task-attachment-info{flex:1;min-width:0}.task-attachment-name{display:block;font-size:13px;color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-attachment-name:hover{text-decoration:underline;text-underline-offset:3px}.task-attachment-meta{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;margin-top:2px}.tiptap-wrap{border:1px solid var(--line);border-radius:10px;background:var(--card);overflow:hidden}.tiptap-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;background:#FAFAF8;border-bottom:1px solid var(--line)}.tiptap-tb-btn{min-width:28px;height:28px;padding:0 8px;background:transparent;border:0;border-radius:6px;color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer;transition:background .12s,color .12s}.tiptap-tb-btn:hover{background:#EFEEE7;color:var(--ink)}.tiptap-tb-btn.active{background:var(--ink);color:var(--bg)}.tiptap-tb-btn:disabled{color:var(--ink-3);cursor:not-allowed;background:transparent}.tiptap-tb-sep{width:1px;align-self:stretch;background:var(--line);margin:4px}.tiptap-toolbar-spacer{flex:1}.tiptap-editor{min-height:160px;padding:14px 16px}.tiptap-loading{padding:30px;color:var(--ink-3);font-size:12.5px}.tiptap-content{outline:none;color:var(--ink);font-size:14px;line-height:1.55}.tiptap-content p{margin:0 0 8px}.tiptap-content p:last-child{margin-bottom:0}.tiptap-content h2{font-size:18px;font-weight:600;margin:16px 0 8px}.tiptap-content h3{font-size:15px;font-weight:600;margin:14px 0 6px}.tiptap-content ol,.tiptap-content ul{margin:0 0 10px;padding-left:22px}.tiptap-content li{margin:2px 0}.tiptap-content blockquote{border-left:3px solid var(--line-strong);padding:4px 12px;margin:10px 0;color:var(--ink-2)}.tiptap-content pre{border-radius:6px;padding:10px 12px;overflow-x:auto;margin:8px 0}.tiptap-content code,.tiptap-content pre{background:#F4F4EF;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.tiptap-content code{padding:1px 5px;border-radius:4px}.tiptap-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.tiptap-content p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--ink-3);float:left;height:0;pointer-events:none}.range-toggle{display:inline-flex;border:1px solid var(--line-strong);background:var(--card);border-radius:8px;padding:3px}.range-toggle button{border:0;background:transparent;padding:6px 12px;font-size:12.5px;font-weight:500;color:var(--ink-2);border-radius:6px}.range-toggle button.active{background:var(--ink);color:white}.summary{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:16px;margin-bottom:24px}.sum-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px 24px}.sum-card .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600}.sum-card .big{margin-top:10px;font-size:36px;font-weight:600;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.sum-card .big .u{font-size:22px;color:var(--ink-2);font-weight:500;margin-left:1px}.sum-card .sub{margin-top:8px;font-size:13px;color:var(--ink-2)}.sum-card.advice{background:var(--green-soft);border-color:#CFE3D6}.sum-card.advice .lbl{color:var(--green-ink)}.sum-card.advice .verdict{display:flex;align-items:baseline;gap:12px;margin-top:6px}.sum-card.advice .pill{display:inline-block;padding:4px 12px;background:var(--green-ink);color:white;border:0;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:.02em}.sum-card.advice h3{margin:0;font-size:22px;font-weight:600;letter-spacing:-.01em}.sum-card.advice .body{margin-top:10px;font-size:13px;color:var(--ink-2);line-height:1.5}.sum-card.amber-tint{background:var(--amber-soft);border-color:#EFDEB8}.sum-card.amber-tint .lbl{color:var(--amber-ink)}.sum-card.alert-tint{background:var(--red-soft);border-color:#E7C7BE}.sum-card.alert-tint .lbl{color:var(--red-ink)}.sum-card.advice.advice-warn{background:var(--amber-soft);border-color:#EFDEB8}.sum-card.advice.advice-warn .lbl{color:var(--amber-ink)}.sum-card.advice.advice-alert{background:var(--red-soft);border-color:#E7C7BE}.sum-card.advice.advice-alert .lbl{color:var(--red-ink)}.chart-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px 24px 18px;margin-bottom:24px}.chart-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.chart-head h2{margin:0;font-size:16px;font-weight:600}.chart-head .legend{display:flex;gap:18px;font-size:12px;color:var(--ink-2);background:transparent;border:0;padding:0}.chart-head .legend .item{display:flex;align-items:center;gap:6px}.swatch{width:10px;height:10px;border-radius:2px}.chart-wrap{display:grid;grid-template-columns:36px 1fr;gap:12px}.y-axis{position:relative;height:240px}.y-axis .lbl{position:absolute;right:4px;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;transform:translateY(50%)}.bars{display:grid;grid-template-columns:repeat(12,1fr);gap:10px;align-items:end;position:relative}.bars:before{content:"";position:absolute;inset:0;background-image:linear-gradient(to bottom,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-position:0 0,0 calc(33.33% - .5px),0 calc(66.66% - .5px),0 calc(100% - 1px);background-size:100% 1px;background-repeat:no-repeat;pointer-events:none;opacity:.7}.col{height:240px}.bar,.col{position:relative}.bar{width:100%;height:100%}.bar .ghost{border:1px dashed var(--line-strong);border-bottom:0;height:100%}.bar .cap,.bar .ghost{position:absolute;bottom:0;left:0;right:0;border-radius:4px 4px 0 0}.bar .cap{background:#F1F1ED;border-top:1px dashed #c8c8c2}.bar .fill{position:absolute;bottom:0;left:0;right:0;border-radius:4px 4px 0 0;transition:height .4s ease}.fill.green{background:var(--green-fill)}.fill.amber{background:var(--amber-fill)}.fill.red{background:var(--red-fill)}.bar .num{position:absolute;left:0;right:0;text-align:center;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);transform:translateY(-18px)}.col.vacation .bar .cap,.col.vacation .bar .fill{display:none}.col.vacation .vac-label{position:absolute;bottom:50%;left:0;right:0;text-align:center;font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-weight:500;transform:translateY(50%)}.col.vacation .ghost{background:repeating-linear-gradient(135deg,transparent,transparent 5px,rgba(0,0,0,.03) 0,rgba(0,0,0,.03) 6px)}.col.today .bar .fill:after{content:"";position:absolute;top:-1px;left:0;right:0;border-top:1.5px solid var(--ink)}.x-labels{display:grid;grid-template-columns:36px 1fr;gap:12px;margin-top:10px}.x-row{display:grid;grid-template-columns:repeat(12,1fr);gap:10px}.x-cell{text-align:center;padding-top:6px}.x-cell .wk{font-size:12px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.x-cell .dt{font-size:11px;color:var(--ink-3);margin-top:1px;font-variant-numeric:tabular-nums}.x-cell .pct{font-size:10.5px;color:var(--ink-2);margin-top:6px;font-variant-numeric:tabular-nums;font-weight:500}.x-cell .pct.amber{color:var(--amber-ink)}.x-cell .pct.red{color:var(--red-ink)}.x-cell .pct.green{color:var(--green-ink)}.x-cell.today .wk{color:var(--accent)}.x-cell.today .wk:after{content:" · nu";font-size:10px;font-weight:500;color:var(--accent)}.rev-card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.rev-head{padding:22px 24px 16px;display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line)}.rev-head h2{margin:0;font-size:16px;font-weight:600}.rev-head .desc{font-size:13px;color:var(--ink-2);margin-top:4px}.rev-head .total{text-align:right}.rev-head .total .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600}.rev-head .total .val{font-size:24px;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1;margin-top:4px}.rev-head .total .val,table.rev{font-variant-numeric:tabular-nums}table.rev{width:100%;border-collapse:collapse}table.rev td,table.rev th{text-align:left;padding:12px 24px;font-size:13px;border-bottom:1px solid var(--line)}table.rev th{font-weight:500;color:var(--ink-3);background:#FAFAF8;font-size:11px;text-transform:uppercase;letter-spacing:.05em}table.rev td.num,table.rev th.num{text-align:right}table.rev tr:last-child td{border-bottom:0}table.rev tr.today td{background:#FAFAF6}table.rev tr.today td:first-child{font-weight:600}table.rev tr.vacation td{color:var(--ink-3);font-style:italic}table.rev td .badge{display:inline-block;padding:1px 7px;border-radius:4px;font-size:11px;font-weight:600}table.rev td .badge.green{background:var(--green-soft);color:var(--green-ink)}table.rev td .badge.amber{background:var(--amber-soft);color:var(--amber-ink)}table.rev td .badge.red{background:var(--red-soft);color:var(--red-ink)}table.rev td .badge.gray{background:#F0F0EB;color:var(--ink-3)}table.rev tfoot td{font-weight:600;background:#FAFAF8;color:var(--ink);border-top:1px solid var(--line)}.page-intro{margin-bottom:32px}.page-intro .eyebrow{font-size:12px;color:var(--ink-3);font-weight:500;letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}.page-intro h1{margin:0;font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1}.page-intro .desc{color:var(--ink-2);font-size:13.5px;margin-top:8px}.anchor-nav{display:flex;gap:4px;margin-bottom:28px;border-bottom:1px solid var(--line)}.anchor-nav a{text-decoration:none;color:var(--ink-2);font-size:13px;font-weight:500;padding:10px 14px 12px;border-bottom:2px solid transparent;transform:translateY(1px)}.anchor-nav a:hover{color:var(--ink)}.anchor-nav a.active{color:var(--ink);border-bottom-color:var(--ink)}section.cfg{margin-bottom:36px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}.section-head h2{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}.section-head .desc{margin-top:4px;font-size:13px;color:var(--ink-2)}.week-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.day{border:1px solid var(--line);border-radius:10px;padding:14px 12px;background:#FAFAF8;text-align:left;position:relative;transition:all .12s}.day.on{background:var(--card);border-color:var(--line-strong)}.day.off{background:repeating-linear-gradient(135deg,#FAFAF8,#FAFAF8 6px,#F0F0EB 0,#F0F0EB 7px)}.day .dow{font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.day.on .dow{color:var(--ink)}.day .toggle{position:absolute;top:12px;right:12px;width:30px;height:18px;background:var(--line-strong);border-radius:999px;border:0;padding:0;transition:background .15s}.day .toggle:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:white;border-radius:50%;transition:transform .18s;box-shadow:0 1px 2px rgba(0,0,0,.15)}.day.on .toggle{background:var(--ink)}.day.on .toggle:after{transform:translateX(12px)}.day .time{margin-top:22px;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:4px}.day.on .time{color:var(--ink)}.day.off .time{color:var(--ink-3);font-style:italic}.day .time input[type=time]{border:1px solid transparent;background:transparent;padding:3px 6px;border-radius:4px;font-family:inherit;font-size:13px;color:inherit;width:92px;font-variant-numeric:tabular-nums;cursor:text;transition:border-color .12s,background .12s}.day .time input[type=time]:hover{border-color:var(--line-strong);background:var(--card)}.day .time input[type=time]:focus{outline:none;border-color:var(--ink);background:var(--card)}.day .time .dash{color:var(--ink-3)}.day .off-text,.day.off .time-fields{display:none}.day.off .off-text{display:inline}.day .day-hours{margin-top:4px;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.day.off .day-hours{visibility:hidden}.week-foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink-2)}.week-foot .total{color:var(--ink);font-weight:500}.week-foot .total strong{font-weight:600;font-size:15px;font-variant-numeric:tabular-nums}.clients{display:flex;flex-direction:column;gap:12px}.client{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.client-head{padding:16px 22px;display:grid;grid-template-columns:28px 1fr auto auto auto;gap:16px;align-items:center}.client-color{width:8px;height:36px;border-radius:3px}.client-color.c-vdh{background:var(--c-vdh-ink)}.client-color.c-tpc{background:var(--c-tpc-ink)}.client-color.c-brug{background:var(--c-brug-ink)}.client-color.c-meridian{background:var(--c-meridian-ink)}.client-name{font-size:15px;font-weight:600;color:var(--ink)}.client-sub{font-size:12px;color:var(--ink-3);margin-top:2px}.client-stat{text-align:right;min-width:88px}.client-stat .v{font-size:15px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.client-stat .l{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.client-actions{display:flex;gap:4px}.icon-btn{width:30px;height:30px;border:1px solid transparent;background:transparent;border-radius:6px;color:var(--ink-3);display:inline-flex;align-items:center;justify-content:center;transition:all .12s}.icon-btn:hover{background:rgba(0,0,0,.05);color:var(--ink);border-color:var(--line)}.client-blocks{padding:4px 22px 16px;border-top:1px solid var(--line);background:#FAFAF8}.blocks-head{display:flex;justify-content:space-between;align-items:center;padding:12px 0 8px}.blocks-head .label{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.block-add{font-size:12px;color:var(--ink-2);background:transparent;border:0;padding:0;font-weight:500}.block-add:hover{color:var(--ink)}.block-chips{display:flex;gap:8px;flex-wrap:wrap}.block-chip{display:inline-flex;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 12px 7px 10px;font-size:12.5px;gap:8px}.block-chip .dow{font-weight:600;color:var(--ink);text-transform:uppercase;font-size:11px;letter-spacing:.04em}.block-chip .time{color:var(--ink-2);font-variant-numeric:tabular-nums}.block-chip .dur{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11.5px}.block-chip .x{width:14px;height:14px;border:0;background:transparent;padding:0;color:var(--ink-3);display:inline-flex;align-items:center;justify-content:center;border-radius:3px}.block-chip .x:hover{background:rgba(0,0,0,.06);color:var(--ink)}.block-empty{font-size:12.5px;color:var(--ink-3);font-style:italic}table.projects{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;font-variant-numeric:tabular-nums}table.projects td,table.projects th{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);font-size:13.5px}table.projects th{font-weight:500;color:var(--ink-3);background:#FAFAF8;font-size:11px;text-transform:uppercase;letter-spacing:.05em}table.projects td.num,table.projects th.num{text-align:right}table.projects tr:last-child td{border-bottom:0}.proj-name{font-weight:600;color:var(--ink);font-size:14px}.proj-client{font-size:12px;color:var(--ink-2);margin-top:2px;display:flex;align-items:center;gap:6px}.proj-client .dot{width:6px;height:6px;border-radius:50%}.proj-client .dot.c-tpc{background:var(--c-tpc-ink)}.proj-client .dot.c-meridian{background:var(--c-meridian-ink)}.progress{display:inline-flex;align-items:center;gap:10px;min-width:160px}.progress-bar{flex:1;height:6px;background:#F0F0EB;border-radius:3px;overflow:hidden}.progress-bar .fill{height:100%;background:var(--ink);border-radius:3px}.progress-num{font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums;min-width:50px;text-align:right}.status-pill{display:inline-block;padding:2px 8px;background:#F0F0EB;color:var(--ink-2);border-radius:999px;font-size:11px;font-weight:500}.status-pill.active{background:#E8F1EC;color:var(--green)}.status-pill.ending{background:var(--amber-bg);color:var(--amber)}.topbar .meta .signout{border:0;background:transparent;padding:0;font:inherit;color:var(--ink-3);cursor:pointer;transition:color .12s}.topbar .meta .signout:hover{color:var(--ink)}.topbar .meta .signout:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:var(--bg)}.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px 28px 24px;box-shadow:0 12px 40px rgba(20,20,20,.06),0 2px 6px rgba(20,20,20,.04);display:flex;flex-direction:column;gap:18px}.auth-brand{font-weight:600;font-size:14px;letter-spacing:.02em;color:var(--ink)}.auth-brand .dot{display:inline-block;width:8px;height:8px;background:var(--ink);border-radius:2px;margin-right:10px;transform:translateY(-1px)}.auth-title{margin:0;font-size:24px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{font-size:12px;color:var(--ink-2);font-weight:500}.auth-field input{width:100%;border:1px solid var(--line-strong);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--ink);background:var(--card);transition:border-color .12s,box-shadow .12s}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-error{background:var(--red-soft);color:var(--red-ink);border:1px solid #e7c7be;border-radius:8px;padding:9px 12px;font-size:13px;line-height:1.4}.auth-submit{width:100%;padding:10px 14px;font-size:14px;margin-top:4px}.cards-empty{padding:36px 22px;text-align:center;border:1px dashed var(--line-strong);border-radius:12px;background:transparent;color:var(--ink-2);font-size:13.5px;line-height:1.5}.cards-empty strong{color:var(--ink);font-weight:600}.field textarea{width:100%;border:1px solid var(--line-strong);border-radius:8px;padding:9px 12px;font-size:14px;color:var(--ink);background:var(--card);font-family:inherit;line-height:1.45;resize:vertical;min-height:70px;transition:border-color .12s,box-shadow .12s}.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.palette{display:flex;gap:8px;flex-wrap:wrap}.swatch-btn{width:28px;height:28px;border-radius:50%;border:2px solid transparent;padding:0;cursor:pointer;transition:transform .12s,border-color .12s,box-shadow .12s}.swatch-btn:hover{transform:scale(1.06)}.swatch-btn.active{border-color:var(--ink);box-shadow:0 0 0 2px var(--card),0 0 0 3px var(--ink)}.swatch-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.custom-color{display:flex;align-items:center;gap:8px;margin-top:10px}.color-picker{width:32px;height:32px;border:1px solid var(--line-strong);border-radius:6px;background:var(--card);cursor:pointer;padding:2px;flex-shrink:0}.color-picker::-webkit-color-swatch-wrapper{padding:0}.color-picker::-webkit-color-swatch{border:none;border-radius:4px}.color-picker::-moz-color-swatch{border:none;border-radius:4px}.hex-input{width:110px;border:1px solid var(--line-strong);border-radius:6px;padding:7px 10px;font-size:13px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;color:var(--ink);background:var(--card);text-transform:uppercase}.hex-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.hex-input::placeholder{text-transform:none}.custom-color-label{font-size:12px;color:var(--ink-3)}.menu{position:relative;display:inline-flex}.menu-pop{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(20,20,20,.08),0 1px 3px rgba(20,20,20,.04);padding:4px;z-index:50;display:flex;flex-direction:column}.menu-item{background:transparent;border:0;text-align:left;padding:8px 10px;font-size:13px;color:var(--ink);border-radius:6px;cursor:pointer;transition:background .1s}.menu-item:hover{background:rgba(0,0,0,.04)}.menu-item.danger{color:var(--red-ink)}.menu-item.danger:hover{background:var(--red-soft)}.ww-status{margin-left:8px;font-size:12px;font-weight:400;color:var(--ink-3);font-variant-numeric:normal}.link-danger,.ww-status-error{color:var(--red-ink)}.link-danger{background:transparent;border:0;padding:0;font:inherit;cursor:pointer;font-size:12px;font-weight:500;text-decoration:underline;text-underline-offset:2px}.link-danger:hover{color:var(--red)}.link-danger:disabled{color:var(--ink-3);cursor:default;text-decoration:none}.proj-client .dot{flex-shrink:0}button.block,button.unsched{font:inherit;color:inherit;text-align:left;-webkit-appearance:none;appearance:none}.unsched[role=button]{cursor:pointer}.unsched[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.unsched-x{flex-shrink:0;width:24px;height:24px;margin-top:-2px;background:transparent;border:0;border-radius:6px;color:var(--ink-3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.unsched-x:hover{background:var(--red-soft);color:var(--red-ink)}.unsched-x:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.doorlopend-row{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 0;font:inherit;color:inherit;text-align:left;cursor:pointer;display:block}button.doorlopend-row:last-child{border-bottom:0;padding-bottom:4px}button.doorlopend-row:hover .dl-name{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}button.doorlopend-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.block-tasks{display:flex;flex-direction:column;gap:8px}.block-tasks-head{display:flex;align-items:center;justify-content:space-between;padding:0 2px}.block-tasks-head .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600}.block-tasks-list{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:10px;background:#FAFAF8;padding:4px}.block-task{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:13.5px;color:var(--ink);cursor:pointer;transition:background .12s}.block-task:hover{background:var(--card)}.block-task input[type=checkbox]{width:16px;height:16px;accent-color:var(--green-ink);cursor:pointer;flex-shrink:0}.block-task input[type=checkbox]:disabled{cursor:default}.block-task .title{flex:1;line-height:1.35}.block-task .dur,.block-task .proj{font-size:11.5px;color:var(--ink-3);white-space:nowrap}.block-task .dur{font-variant-numeric:tabular-nums}.block-task.checked .title{text-decoration:line-through;color:var(--ink-3)}.block-task.checked .dur,.block-task.checked .proj{opacity:.6}.vacation-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 22px;display:grid;grid-template-columns:1fr 1fr;gap:28px}.vacation-block{display:flex;flex-direction:column;gap:6px}.vacation-block-head{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600;margin-bottom:4px}.vacation-block-head .muted-count{color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0}.vacation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.vacation-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}.vacation-row:last-child{border-bottom:0}.vacation-date{color:var(--ink);font-weight:500}.vacation-note{color:var(--ink-2)}.vacation-note.muted{color:var(--ink-3);font-style:italic}.vacation-row.holiday .vacation-note{color:var(--ink)}.vacation-spacer{width:64px}.vacation-actions{display:inline-flex;align-items:center;gap:2px;justify-content:flex-end;min-width:64px}.vacation-date .muted-count{color:var(--ink-3);font-weight:400}@media (max-width:880px){.vacation-card{grid-template-columns:1fr}}.client-name-link{color:var(--ink);text-decoration:none;cursor:pointer}.client-name-link:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.detail-back{margin-bottom:14px}.back-link{font-size:13px;color:var(--ink-2);text-decoration:none;font-weight:500;transition:color .12s}.back-link:hover{color:var(--ink)}.detail-header{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin-bottom:32px;display:grid;grid-template-columns:8px 1fr auto auto auto;gap:18px;align-items:center}.detail-color{width:8px;height:56px;border-radius:3px}.detail-title .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600;margin-bottom:4px;display:inline-flex;align-items:center}.detail-title h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1.15}.detail-title .desc{margin-top:4px;font-size:13px;color:var(--ink-2)}.detail-stat{text-align:right;min-width:100px}.detail-stat .v{font-size:17px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.detail-stat .l{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.detail-notes{background:#FAFAF7;border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:-16px 0 32px;font-size:13px;color:var(--ink-2);line-height:1.5;white-space:pre-wrap}.task-groups{gap:24px}.task-group,.task-groups{display:flex;flex-direction:column}.task-group{gap:10px}.task-group-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 2px}.task-group-head h3{margin:0;font-size:13px;font-weight:600;color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase}.task-group-meta{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.task-rows{display:flex;flex-direction:column;gap:8px}.task-rows .task .meta .muted{color:var(--ink-3);font-style:italic}