:root{--bg: #faf6f0;--bg-tint: #f5f1e9;--surface: #ffffff;--surface-2: #f9fafb;--border: #e5e7eb;--border-strong:#d1d5db;--ink: #111827;--ink-2: #374151;--ink-3: #6b7280;--ink-mute: #9ca3af;--primary: #16a34a;--primary-deep: #15803d;--primary-soft: #dcfce7;--secondary: #5eead4;--secondary-deep: #0f766e;--secondary-soft: #ccfbf1;--alert: #c0793a;--alert-deep: #92400e;--alert-soft: #fef3e7;--brand: #008080;--brand-deep: #006666;--brand-soft: #e0f2f1;--avatar-clay: oklch(.92 .05 50);--avatar-sage: oklch(.92 .04 160);--avatar-mist: oklch(.92 .04 220);--avatar-mauve: oklch(.92 .05 320);--shadow-lg: 0 24px 60px -20px oklch(.2 .04 250 / .18), 0 8px 20px -12px oklch(.2 .04 250 / .1);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--text-eyebrow: 10px;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--text-3xl: 28px;--weight-body: 400;--weight-medium: 500;--weight-strong: 600;--weight-display: 700;--tracking-tight: -.02em;--tracking-snug: -.005em;--tracking-flat: 0;--tracking-eyebrow: .06em;--opacity-muted: .55;--opacity-disabled: .4}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Geist,system-ui,-apple-system,sans-serif;font-size:var(--text-md);line-height:1.4;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.mono{font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"ss01"}button{font-family:inherit}input,select,textarea{font-family:inherit;color:inherit}.app.sidebar-layout{min-height:100vh;display:flex}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:18px 0;gap:18px;position:sticky;top:0;height:100vh;z-index:20}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 16px 4px}.sidebar-nav{display:flex;flex-direction:column;gap:14px;padding:0 10px;flex:1;overflow-y:auto}.sb-group{display:flex;flex-direction:column;gap:2px}.sb-group-label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-mute);font-weight:600;padding:4px 10px}.sb-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;background:transparent;border-radius:8px;cursor:pointer;font-family:inherit;font-size:var(--text-base);font-weight:500;color:var(--ink-2);letter-spacing:var(--tracking-snug);text-align:left;transition:.1s background,.1s color}.sb-item:hover{background:var(--bg-tint);color:var(--ink)}.sb-item.active{background:var(--brand);color:var(--bg)}.sb-item.active:hover{background:var(--brand-deep)}.sidebar-foot{padding:10px 10px 4px;border-top:1px solid var(--border)}.sidebar-foot .btn.sm{gap:10px}.main{flex:1;min-width:0}.app.sidebar-layout .topbar{display:none}.page-title{margin:0;font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink)}.bookings{padding:18px 24px 60px;display:flex;flex-direction:column;gap:14px}.page-toolbar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}.search-wrap{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border-strong);border-radius:100px;padding:6px 14px;color:var(--ink-3);min-width:240px}.search-wrap input{border:0;background:transparent;outline:none;font-size:var(--text-base);color:var(--ink);flex:1;min-width:0}.filter-chip-group{display:flex;gap:4px;align-items:center}.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--border);background:var(--surface);border-radius:100px;cursor:pointer;font-size:var(--text-sm);font-weight:500;color:var(--ink-2);transition:.1s background,.1s border-color}.filter-chip:hover{background:var(--bg-tint)}.filter-chip.on{border-color:var(--brand);background:var(--brand);color:var(--bg)}.filter-chip .count{font-family:Geist Mono,monospace;font-size:var(--text-xs);color:var(--ink-3);background:var(--bg-tint);padding:0 6px;border-radius:100px}.filter-chip.on .count{background:oklch(from var(--bg) l c h / .18);color:var(--bg)}.status-dot{width:7px;height:7px;border-radius:50%}.status-dot.primary{background:var(--primary)}.status-dot.secondary{background:var(--secondary)}.status-dot.alert{background:var(--alert)}.status-dot.mute{background:var(--ink-mute)}.bookings-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.bt-row{display:grid;grid-template-columns:2fr 1.1fr .7fr 1.5fr .7fr 1fr .8fr;align-items:center;padding:12px 18px;gap:14px;border-bottom:1px solid var(--border);cursor:pointer;transition:.15s background,.2s box-shadow}.bt-row:last-child{border-bottom:0}.bt-row:not(.head):hover{background:var(--bg-tint)}.bt-row.head{background:var(--surface-2);cursor:default}.bt-head-btn{border:0;background:transparent;padding:0;margin:0;font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600;cursor:pointer;text-align:left;font-family:inherit;display:inline-flex;align-items:center;gap:4px;transition:.1s color;justify-self:start}.bt-head-btn:hover,.bt-head-btn.active{color:var(--ink)}.bt-sort-arrow{font-size:var(--text-sm);line-height:1;color:var(--ink-2);font-family:Geist Mono,monospace}.bt-sort-arrow.is-hidden{visibility:hidden}.bt-row.cancelled .bt-dogs,.bt-row.cancelled .bt-num,.bt-row.cancelled .bt-stay{opacity:var(--opacity-muted);text-decoration:line-through;text-decoration-color:var(--ink-mute)}.bt-breed{font-size:var(--text-sm);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.bt-added{font-size:var(--text-xs);color:var(--ink-3);white-space:nowrap}.bt-stay{display:flex;flex-direction:column;gap:2px;min-width:0}.bt-stay-dates{font-size:var(--text-sm);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bt-stay-nights{font-size:var(--text-xs);color:var(--ink-3);letter-spacing:var(--tracking-eyebrow)}.bt-row.today-flag{box-shadow:inset 3px 0 0 var(--brand)}.bt-row.today-flag.status-confirmed{box-shadow:inset 3px 0 0 var(--secondary)}.bt-row.today-flag.status-arrived{box-shadow:inset 3px 0 0 var(--primary)}.bt-row.today-flag.status-collected{box-shadow:inset 3px 0 0 var(--ink-mute)}.bt-row.today-flag.status-cancelled{box-shadow:inset 3px 0 0 var(--alert)}.bt-dogs{display:flex;align-items:center;gap:12px;min-width:0}.dog-pile{display:flex}.dog-pile>*+*{margin-left:-8px}.dog-pile .avatar{border:2px solid var(--surface)}.bt-meta{min-width:0}.bt-meta .dog-names{font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug);color:var(--ink);display:flex;align-items:center;gap:6px;min-width:0}.bt-meta .dog-names .dog-names-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}.health-warn{display:inline-flex;align-items:center;gap:3px;padding:1px 6px 1px 5px;border-radius:100px;background:var(--alert-soft);color:var(--alert-deep);border:1px solid var(--alert);font-size:var(--text-eyebrow);font-weight:700;letter-spacing:var(--tracking-flat);flex-shrink:0;line-height:1.4}.bt-meta .owner-name{font-size:var(--text-xs);color:var(--ink-3);margin-top:1px}.area-pill{display:inline-block;padding:2px 9px;border-radius:100px;font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:600;border:1px solid var(--border-strong);color:var(--ink-2)}.area-pill.area-big{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.area-pill.area-little{background:var(--secondary-soft);border-color:var(--secondary);color:var(--secondary-deep)}.area-pill.area-mix{background:var(--bg-tint);border-color:var(--border-strong);color:var(--ink-2)}.bt-date{font-size:var(--text-sm)}.bt-num{font-size:var(--text-base);font-weight:500}.bt-num.total{font-size:var(--text-md);font-weight:600;color:var(--ink)}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:4px 12px;border-radius:100px;font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-snug);border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;transition:.1s background,.1s transform;color:var(--ink-2)}.status-pill:hover:not(:disabled){background:var(--surface-2)}.status-pill:disabled{cursor:default}.status-pill .dot-ind{width:7px;height:7px;border-radius:50%;background:var(--ink-mute)}.status-pill.primary{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.status-pill.primary .dot-ind{background:var(--primary-deep)}.status-pill.secondary{background:var(--secondary-soft);border-color:var(--secondary);color:var(--secondary-deep)}.status-pill.secondary .dot-ind{background:var(--secondary-deep)}.status-pill.alert{background:var(--alert-soft);border-color:var(--alert);color:var(--alert-deep)}.status-pill.alert .dot-ind{background:var(--alert-deep)}.status-pill.mute{background:var(--bg-tint)}.status-pill.mute .dot-ind{background:var(--ink-mute)}.bookings-empty{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;padding:60px 20px;color:var(--ink-3);font-size:var(--text-base)}.bookings-week{display:flex;flex-direction:column;gap:14px}.bw-stats{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:10px}.bw-stats.four{grid-template-columns:repeat(4,1fr)}.val-split{display:flex;align-items:center;gap:14px;margin-top:4px}.val-split .vs-cell{display:flex;align-items:baseline;gap:6px}.val-split .vs-tag{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600}.val-split .vs-num{font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-tight);color:var(--ink)}.val-split .vs-sep{width:1px;align-self:stretch;background:var(--border)}.bw-stat .val .sub-num{font-size:var(--text-md);color:var(--ink-3);font-weight:500;margin-left:2px}.bw-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.bw-stat .label{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600}.bw-stat .val{font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-tight);margin-top:4px}.bw-stat.prime{background:var(--brand);color:var(--bg);border-color:var(--brand)}.bw-stat.prime .label{color:var(--bg)}.bw-stat.prime .val{color:var(--bg);font-size:var(--text-lg)}.bw-controls{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}.bw-ctl-label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:600}.bw-legend{display:flex;gap:12px;font-size:var(--text-xs);color:var(--ink-3)}.bw-leg-item{display:inline-flex;align-items:center;gap:5px}.bw-leg-swatch{display:inline-block;width:14px;height:8px;border-radius:3px}.bw-leg-swatch.big{background:var(--primary);border:1px solid var(--primary-deep)}.bw-leg-swatch.little{background:var(--secondary-soft);border:1px solid var(--secondary)}.bw-leg-swatch.mix{background:var(--bg-tint);border:1px solid var(--border-strong)}.bw-gantt{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto;overflow-y:visible;position:relative}.bw-head-row,.bw-row{display:flex;min-width:max-content;align-items:stretch}.bw-head-row{background:var(--surface-2);border-bottom:1px solid var(--border-strong);position:sticky;top:0;z-index:3}.bw-corner{width:var(--first-col);flex-shrink:0;padding:8px 14px;border-right:1px solid var(--border-strong);background:var(--surface-2);position:sticky;left:0;z-index:4;display:flex;align-items:center}.bw-corner-label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:600}.bw-head-cells{display:flex}.bw-day-head{width:var(--col-w);flex-shrink:0;padding:6px 4px;border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:1px;position:relative}.bw-day-head.weekend{background:var(--bg-tint)}.bw-day-head.today{background:var(--brand-soft)}.bw-day-head.month-start{border-left:2px solid var(--ink)}.bw-day-head .dow{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:600}.bw-day-head .dnum{font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink)}.bw-day-head.today .dnum{color:var(--brand-deep)}.bw-day-head .cap-bar{width:80%;height:3px;background:var(--bg-tint);border-radius:100px;overflow:hidden;margin-top:2px}.bw-day-head .cap-fill{display:block;height:100%;background:var(--primary);border-radius:100px}.bw-day-head .month-tag{position:absolute;bottom:-2px;left:4px;font-size:var(--text-eyebrow);font-weight:600;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);text-transform:uppercase}.bw-body{display:flex;flex-direction:column}.bw-row{border-bottom:1px solid var(--border);min-height:var(--row-h);height:var(--row-h)}.bw-row:last-child{border-bottom:0}.bw-row:hover .bw-dog-col{background:var(--bg-tint)}.bw-dog-col{width:var(--first-col);flex-shrink:0;position:sticky;left:0;z-index:2;background:var(--surface);padding:0 12px;border-right:1px solid var(--border-strong);display:flex;align-items:center;gap:9px;min-width:0}.bw-dog-col .info{min-width:0;flex:1;line-height:1.15}.bw-dog-col .info .name{font-size:var(--text-sm);font-weight:600;letter-spacing:var(--tracking-snug);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.bw-dog-col .info .owner{font-size:var(--text-xs);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bw-dog-col .solo-flag{width:16px;height:16px;border-radius:50%;background:var(--alert);color:var(--bg);font-size:var(--text-eyebrow);font-weight:700;display:grid;place-items:center;flex-shrink:0;cursor:help}.bw-track{position:relative;display:flex;flex-grow:1}.bw-cell{width:var(--col-w);flex-shrink:0;border-right:1px dashed var(--border)}.bw-cell.weekend{background:var(--bg-tint)}.bw-cell.today{background:oklch(from var(--brand-soft) l c h / .5)}.bw-bar{position:absolute;top:4px;bottom:4px;border-radius:6px;background:var(--primary-soft);border:1px solid var(--primary);display:flex;align-items:center;gap:6px;padding:0 8px;font-size:var(--text-xs);font-weight:600;color:var(--primary-deep);cursor:pointer;overflow:hidden;z-index:1;transition:.12s transform,.12s box-shadow}.bw-bar:hover{transform:translateY(-1px);box-shadow:0 4px 10px -4px #07172733;z-index:2}.bw-bar.continues-left{border-top-left-radius:0;border-bottom-left-radius:0;border-left:0}.bw-bar.continues-right{border-top-right-radius:0;border-bottom-right-radius:0;border-right:0}.bw-bar.status-arrived{background:var(--primary);border-color:var(--primary-deep);color:var(--ink)}.bw-bar.status-collected{background:var(--bg-tint);border-color:var(--border-strong);color:var(--ink-3)}.bw-bar.area-little{background:var(--secondary-soft);border-color:var(--secondary);color:var(--secondary-deep)}.bw-bar.area-mix{background:var(--bg-tint);border-color:var(--border-strong);color:var(--ink-2)}.bw-bar .bar-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bw-bar .bar-time{font-size:var(--text-eyebrow);font-weight:500;opacity:var(--opacity-muted);flex-shrink:0}.bw-bar .bar-arrow{font-size:var(--text-xs);opacity:var(--opacity-muted);flex-shrink:0}.bw-group-row{display:flex;background:var(--surface-2);border-bottom:1px solid var(--border);position:sticky;left:0;z-index:1}.bw-group-label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-2);font-weight:700;padding:7px 14px;width:var(--first-col);flex-shrink:0;position:sticky;left:0;background:var(--surface-2)}.bw-empty-group{padding:12px 14px 12px calc(var(--first-col) + 14px);font-size:var(--text-xs);color:var(--ink-mute);font-style:italic}.bookings-cal-wrap{display:flex;flex-direction:column;gap:14px}.bc-month{display:flex;flex-direction:column;gap:10px}.page-date-nav-row{display:flex;justify-content:center;padding:4px 0 2px}.bc-month-nav{display:inline-flex;align-items:center;gap:4px;padding:0}.bc-month-nav.tight{gap:4px}.bc-month-label{margin:0;font-size:var(--text-xl);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink);text-align:center;padding:4px 10px;border-radius:6px;min-width:140px}.bc-month-nav.tight .bc-month-label{font-size:var(--text-lg);min-width:130px}.month-label-wrap{position:relative}.month-label-trigger{border:0;background:transparent;font-family:inherit;cursor:pointer;color:var(--ink);transition:.1s background}.month-label-trigger:hover{background:var(--bg-tint)}.month-grid-popover{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:30;width:240px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:10px}.charts-wrap{display:flex;flex-direction:column;gap:14px}.charts-scope-bar{display:flex;align-items:center;justify-content:center;gap:18px;padding:4px 4px 8px;flex-wrap:wrap}.charts-month-sep{color:var(--ink-3);font-size:var(--text-xl);font-weight:500;padding:0 4px}.dog-chip-list{display:flex;flex-wrap:wrap;gap:6px}.dog-chip-mini{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border:1px solid var(--border);background:var(--surface);border-radius:100px;cursor:pointer;font-family:inherit;font-size:var(--text-sm);font-weight:500;color:var(--ink-2);transition:.1s background,.1s border-color,.1s color}.dog-chip-mini:hover{background:var(--bg-tint)}.dog-chip-mini.on{border-color:var(--border-strong);color:var(--ink)}.dog-chip-mini.warn{border-color:var(--alert);color:var(--alert-deep)}.dog-chip-mini.on.warn{color:var(--alert-deep);border-color:var(--alert)}.dog-chip-mini .check-mark{display:inline-flex;margin-right:2px;color:var(--ink)}.dog-chip-mini .name{font-weight:600}.dog-chip-mini .sub{color:var(--ink-3);font-size:var(--text-xs)}.dog-chip-mini.on .sub{color:var(--ink-3);opacity:1}.dog-chip-mini.add{padding:4px 12px;color:var(--ink-2)}.confirm-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#07172773;display:grid;place-items:center;z-index:100}.confirm-dialog{background:var(--surface);border-radius:12px;padding:22px 24px 20px;max-width:420px;width:calc(100% - 40px);box-shadow:0 24px 60px -16px #0717274d}.confirm-title{margin:0 0 8px;font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-snug);color:var(--ink)}.confirm-msg{margin:0 0 18px;font-size:var(--text-base);color:var(--ink-2);line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.btn.danger{background:var(--alert);color:var(--bg);border-color:var(--alert)}.btn.danger:hover{background:var(--alert-deep);border-color:var(--alert-deep)}.bd-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bd-meta-label{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:700}.bd-status-wrap{position:relative}.bd-status-trigger{cursor:pointer}.bd-status-trigger .chip-arrow{font-size:var(--text-eyebrow);opacity:var(--opacity-muted);margin-left:4px}.bd-status-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:180px}.bd-status-menu .status-dot{width:8px;height:8px;border-radius:50%;margin-right:2px}.field .mini-toggle{align-self:flex-start}.picker-preview{margin-bottom:18px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface);padding:14px 16px}.picker-preview .pp-banner{font-size:var(--text-xs);color:var(--alert-deep);font-weight:700;margin-bottom:14px;text-transform:uppercase;letter-spacing:var(--tracking-eyebrow)}.picker-preview .pp-block{margin-bottom:28px}.picker-preview .pp-block:last-child{margin-bottom:0}.picker-preview .pp-head{font-size:var(--text-sm);color:var(--ink-2);margin-bottom:12px}.dp{width:460px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px -16px #07172733;overflow:hidden}.dp.wide{width:680px}.dp .dp-head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.dp .dp-head h3{margin:0;font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-snug)}.dp .dp-body{padding:14px 18px;display:flex;flex-direction:column;gap:14px}.dp .dp-body.dp-two-col{display:grid;grid-template-columns:1fr 1.3fr;gap:18px}.dp .dp-col{display:flex;flex-direction:column;gap:14px}.dp section{display:flex;flex-direction:column;gap:10px}.dp .dp-section{background:var(--bg-tint);border-radius:8px;padding:10px 12px}.dp .dp-section-label{font-size:var(--text-eyebrow);font-weight:700;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3)}.dp-owner{display:flex;align-items:center;gap:10px;padding:6px 8px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.dp-avatar{width:30px;height:30px;border-radius:50%;background:var(--avatar-clay);font-size:var(--text-xs);font-weight:600;display:grid;place-items:center}.dp-owner-info{flex:1;min-width:0}.dp-owner-name{font-size:var(--text-base);font-weight:600}.dp-owner-sub{font-size:var(--text-xs);color:var(--ink-3)}.dp-pencil{width:26px;height:26px;border:1px solid var(--border);background:var(--surface);border-radius:50%;cursor:pointer;display:grid;place-items:center;color:var(--ink-3)}.dp-dogs{display:flex;flex-wrap:wrap;gap:6px}.dp-dog{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);background:var(--surface);border-radius:100px;font-size:var(--text-sm);font-weight:500}.dp-dog.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.dp-davatar{width:18px;height:18px;border-radius:50%;background:var(--avatar-sage);font-size:var(--text-eyebrow);font-weight:600;display:grid;place-items:center}.dp-bsub{font-size:var(--text-xs);color:var(--ink-3);margin-left:2px}.dp-add-dog{padding:5px 12px;border:1px dashed var(--border-strong);background:transparent;border-radius:100px;cursor:pointer;font-family:inherit;font-size:var(--text-xs);color:var(--ink-3);font-weight:500}.dp-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dp-field label{display:block;font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:700;margin-bottom:4px}.dp-field input,.dp-field textarea{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-family:Geist Mono,monospace;font-size:var(--text-sm);background:var(--surface);color:var(--ink);box-sizing:border-box}.dp-field textarea{font-family:inherit;resize:vertical}.dp-field input.dp-readonly{background:var(--bg-tint);color:var(--ink-3)}.dp-seg{display:inline-flex;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:6px;overflow:hidden}.dp-seg button{flex:1;border:0;background:transparent;padding:6px 8px;font-family:inherit;font-size:var(--text-sm);cursor:pointer;color:var(--ink-2)}.dp-seg button.active{background:var(--brand);color:var(--bg)}.dp-seg.dp-seg-4 button{font-size:var(--text-xs);padding:5px 4px}.dp-quote{background:var(--bg-tint);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.dp-qrow{display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--ink-2)}.dp-qrow.total{border-top:1px solid var(--border);padding-top:6px;font-weight:700;color:var(--ink)}.dp-status-bar{display:flex;flex-wrap:wrap;gap:5px}.dp-status-bar .status-pill.is-dim{opacity:var(--opacity-disabled)}.dp-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.meta-label{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:700}.chip-arrow{font-size:var(--text-eyebrow);opacity:var(--opacity-muted);margin-left:2px}.paid-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid var(--border-strong);background:var(--surface);border-radius:100px;cursor:pointer;font-family:inherit;font-size:var(--text-xs);font-weight:600;color:var(--ink-2)}.paid-pill.paid{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.dp-footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg-tint)}.dp-foot-right{display:flex;gap:8px}.dp-btn{padding:6px 14px;border:1px solid var(--border-strong);background:var(--surface);border-radius:100px;font-family:inherit;font-size:var(--text-sm);font-weight:500;color:var(--ink-2);cursor:pointer}.dp-btn.ghost{border-color:transparent;background:transparent;color:var(--alert-deep)}.dp-btn.primary{background:var(--brand);color:var(--bg);border-color:var(--brand)}.rpg-head{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 8px;border-bottom:1px solid var(--border);margin-bottom:8px;font-size:var(--text-sm)}.rpg-months{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.rpg-month{border:1px solid transparent;background:transparent;padding:8px 6px;border-radius:6px;font-family:inherit;font-size:var(--text-sm);font-weight:500;cursor:pointer;color:var(--ink)}.rpg-month:hover{background:var(--bg-tint)}.rpg-month.on{background:var(--primary);color:var(--ink);border-color:var(--primary-deep);font-weight:700}.bc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.bc-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.bc-stat .label{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600}.bc-stat .val{font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-tight);margin-top:4px}.bc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px}.bc-dow{text-align:center;font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:600;padding-bottom:4px}.bc-day{background:var(--surface);border:1px solid var(--border);border-radius:8px;min-height:110px;padding:8px;display:flex;flex-direction:column;gap:6px;font-size:var(--text-xs)}.bc-day.muted{background:var(--bg-tint);border-style:dashed;opacity:var(--opacity-disabled)}.bc-day.today{box-shadow:inset 0 0 0 2px var(--brand)}.bc-day.jumpable{cursor:pointer;transition:.12s border-color,.12s background}.bc-day.jumpable:hover{border-color:var(--ink-3);background:var(--bg-tint)}.day-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.dd-stat{background:var(--bg-tint);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.dd-stat .label{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600}.dd-stat .val{font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-tight);margin-top:2px}.dd-stat .val.warn{color:var(--alert-deep)}.dd-area-bar{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;padding:10px 12px;background:var(--bg-tint);border-radius:8px;border:1px solid var(--border)}.dd-area-head{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--ink-2);margin-bottom:4px}.dd-area .cap-bar{height:6px;background:var(--surface);border-radius:100px;overflow:hidden}.dd-area .cap-fill{height:100%;background:var(--primary);border-radius:100px;transition:.3s width}.dd-section{margin-bottom:16px}.dd-section-head{display:flex;align-items:center;gap:8px;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600;margin-bottom:6px}.dd-section-head .dot{width:8px;height:8px;border-radius:100px}.dd-section-head .dot-arrive{background:var(--primary-deep)}.dd-section-head .dot-collect{background:var(--secondary-deep)}.dd-section-head .dot-stay{background:var(--ink-mute)}.dd-list{display:flex;flex-direction:column;gap:4px}.day-detail-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;text-align:left;color:inherit;font-family:inherit;transition:.1s background,.1s border-color;width:100%}.day-detail-row:hover{background:var(--bg-tint);border-color:var(--border-strong, var(--ink-3))}.day-detail-row .info{flex:1;min-width:0}.day-detail-row .line1{display:flex;align-items:center;gap:6px;font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug)}.day-detail-row .line1 .dogs{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.day-detail-row .line2{font-size:var(--text-xs);color:var(--ink-3);margin-top:1px}.day-detail-row .time-pill{background:var(--bg-tint);border:1px solid var(--border);border-radius:100px;padding:1px 9px;font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-eyebrow);color:var(--ink-2)}.day-detail-summary{flex:1;font-size:var(--text-xs);color:var(--ink-3)}.bc-day-head{display:flex;align-items:baseline;justify-content:space-between;gap:4px}.bc-day-head .n{font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-tight)}.bc-day-head .in-count{font-size:var(--text-eyebrow);color:var(--ink-3);background:var(--bg-tint);padding:1px 6px;border-radius:100px;font-weight:600}.bc-section{display:flex;flex-direction:column;gap:3px}.bc-label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:600;color:var(--ink-3)}.bc-section.arrivals .bc-label{color:var(--primary-deep)}.bc-section.collections .bc-label{color:var(--secondary-deep)}.bc-booking{display:flex;align-items:center;gap:6px;padding:3px 7px 3px 8px;border-radius:5px;background:var(--surface);border:1px solid var(--border);cursor:pointer;position:relative;transition:.1s background}.bc-booking:hover{background:var(--surface-2)}.bc-booking:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink-mute);border-radius:5px 0 0 5px}.bc-booking.arrive:before{background:var(--primary)}.bc-booking.collect:before{background:var(--secondary)}.bc-booking .who{font-size:var(--text-xs);font-weight:500;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bc-booking .time{font-size:var(--text-eyebrow);color:var(--ink-3)}.owner-mini{display:flex;align-items:center;gap:8px;font-size:var(--text-xs);margin-top:6px;color:var(--ink-2)}.owner-combo{position:relative}.owner-combo-input{border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);display:flex;align-items:center;min-height:38px;transition:.12s border-color,.12s box-shadow}.owner-combo.open .owner-combo-input{border-color:var(--primary-deep);box-shadow:0 0 0 3px var(--primary-soft)}.owner-combo-input input{flex:1;border:0;outline:0;background:transparent;padding:9px 11px;font-size:var(--text-base);color:var(--ink);font-family:inherit}.owner-combo-input input::placeholder{color:var(--ink-mute)}.owner-selected{flex:1;display:flex;align-items:center;gap:10px;padding:6px 11px;cursor:text}.owner-selected .name{font-size:var(--text-base);font-weight:500;letter-spacing:var(--tracking-snug);color:var(--ink)}.owner-selected .sub{font-size:var(--text-xs);color:var(--ink-3)}.owner-selected svg{color:var(--ink-mute)}.owner-selected .owner-selected-edit{margin-left:auto;width:24px;height:24px;border:1px solid var(--border);background:var(--surface);border-radius:50%;cursor:pointer;color:var(--ink-3);display:grid;place-items:center;padding:0;transition:.1s background,.1s color,.1s border-color}.owner-selected .owner-selected-edit:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.owner-selected .owner-selected-edit+svg{margin-left:6px}.owner-household-preview{background:var(--brand-soft);border:1px solid var(--brand);border-radius:8px;padding:10px 14px;display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.owner-household-preview .lbl{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:var(--weight-display);color:var(--brand-deep)}.owner-household-preview .val{font-size:var(--text-base);font-weight:var(--weight-strong);color:var(--ink)}.owner-contacts-list{display:flex;flex-direction:column;gap:10px}.owner-contact{border:1px solid var(--border);border-radius:10px;padding:12px 14px 14px;background:var(--surface);display:flex;flex-direction:column;gap:8px}.owner-contact.primary{border-color:var(--brand);background:var(--brand-soft)}.owner-contact.primary .field input,.owner-contact.primary .field select{background:var(--surface)}.owner-contact-head{display:flex;align-items:center;gap:8px}.owner-contact-tag{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:var(--weight-display);color:var(--ink-3)}.owner-contact.primary .owner-contact-tag{color:var(--brand-deep)}.owner-contact-promote{margin-left:auto;background:transparent;border:0;padding:2px 8px;font:inherit;font-size:var(--text-xs);color:var(--brand-deep);cursor:pointer;font-weight:var(--weight-medium)}.owner-contact-promote:hover{text-decoration:underline}.owner-contact-remove{width:22px;height:22px;border:0;background:transparent;border-radius:50%;cursor:pointer;color:var(--ink-3);display:grid;place-items:center;padding:0;margin-left:auto}.owner-contact-promote+.owner-contact-remove{margin-left:0}.owner-contact-remove:hover{background:var(--alert-soft);color:var(--alert-deep)}.owner-contact-add{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;background:transparent;border:1px dashed var(--border-strong);border-radius:100px;padding:6px 14px;font:inherit;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--ink-3);cursor:pointer;transition:.1s color,.1s border-color,.1s background}.owner-contact-add:hover{color:var(--brand-deep);border-color:var(--brand);background:var(--brand-soft)}.owner-combo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 12px 32px -8px #07172733;max-height:280px;overflow-y:auto;padding:4px}.owner-row{display:flex;align-items:center;gap:10px;width:100%;padding:7px 9px;border:0;background:transparent;border-radius:7px;cursor:pointer;font-family:inherit;color:var(--ink);text-align:left;transition:.08s background}.owner-row:hover{background:var(--bg-tint)}.owner-row.on{background:var(--primary-soft)}.owner-row.on .name{font-weight:600}.owner-row .info{flex:1;min-width:0}.owner-row .info .name{font-size:var(--text-base);font-weight:500;letter-spacing:var(--tracking-snug);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owner-row .info .sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owner-empty{padding:14px 12px;font-size:var(--text-sm);color:var(--ink-3);text-align:center}.dog-chip-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.dog-chip{display:flex;align-items:stretch;border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow:hidden;transition:.1s background,.1s border-color}.dog-chip:hover{background:var(--bg-tint)}.dog-chip.on{border-color:var(--ink);background:var(--primary-soft)}.dog-chip-main{flex:1;display:flex;align-items:center;gap:9px;padding:8px 10px;background:transparent;border:0;cursor:pointer;text-align:left;color:inherit;font-family:inherit;min-width:0}.dog-chip .meta{flex:1;min-width:0}.dog-chip .name{font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug)}.dog-chip .sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:1px}.pencil-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border:1px solid var(--border);background:var(--surface);border-radius:100px;cursor:pointer;font-size:var(--text-xs);color:var(--ink-3);font-weight:500;font-family:inherit;transition:.1s background,.1s color}.pencil-btn:hover{background:var(--bg-tint);color:var(--ink)}.pencil-btn.icon-only{padding:0 10px;border:0;border-left:1px solid var(--border);border-radius:0;background:transparent;height:auto;align-self:stretch}.pencil-btn.icon-only:hover{background:var(--bg-tint);color:var(--ink)}.dog-chip.on .pencil-btn.icon-only{border-left-color:var(--primary)}.dog-chip.warn{border-color:var(--alert)}.dog-chip.on.warn{border-color:var(--alert);background:var(--alert-soft)}.dog-chip.add-dog{display:flex;align-items:center;gap:9px;padding:8px 10px;border-style:dashed;border-color:var(--border);color:var(--ink-3);font-family:inherit;font-size:var(--text-base);font-weight:500;text-align:left;cursor:pointer;transition:.1s color,.1s border-color,.1s background}.dog-chip.add-dog:hover{color:var(--primary-deep);border-color:var(--primary);background:var(--primary-soft)}.dog-chip.add-dog .add-dog-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--bg-tint);color:var(--ink-3);flex-shrink:0}.dog-chip.add-dog:hover .add-dog-icon{background:var(--primary);color:var(--ink)}.dog-chip.add-dog .add-dog-label{letter-spacing:var(--tracking-snug)}.owner-dogs-list{display:flex;flex-direction:column;gap:6px}.owner-dog-row{display:flex;align-items:center;gap:9px;padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;text-align:left;color:inherit;font-family:inherit;transition:.1s background,.1s border-color}.owner-dog-row:hover{background:var(--bg-tint)}.owner-dog-row .meta{flex:1;min-width:0}.owner-dog-row .name{font-size:var(--text-base);font-weight:600}.owner-dog-row .sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:1px}.owner-dog-row.add{border-style:dashed;color:var(--ink-3)}.owner-dog-row.add:hover{color:var(--primary-deep);border-color:var(--primary);background:var(--primary-soft)}.owner-dog-row.add .add-dog-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--bg-tint);color:var(--ink-3)}.owner-dog-row.add:hover .add-dog-icon{background:var(--primary);color:var(--ink)}.owner-dog-row.add .add-dog-label{font-size:var(--text-base);font-weight:500}.dog-chip-health{width:100%;display:flex;align-items:center;gap:5px;padding:4px 10px;background:var(--alert-soft);color:var(--alert-deep);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-flat);text-transform:uppercase;border-top:1px solid var(--alert);order:99;flex-basis:100%}.dog-chip{flex-wrap:wrap}.inline-row{display:flex;align-items:center;gap:10px;padding:4px 0;margin-top:-4px}.inline-row .inline-label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:600}.mini-toggle{display:inline-flex;background:var(--bg-tint);border:1px solid var(--border);padding:2px;border-radius:100px;gap:1px}.mini-toggle button{border:0;padding:4px 11px;font-size:var(--text-xs);font-weight:600;border-radius:100px;cursor:pointer;background:transparent;color:var(--ink-3);font-family:inherit;letter-spacing:var(--tracking-eyebrow)}.mini-toggle button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #07172714}.owner-mini{display:flex;align-items:center}.quote-box{background:var(--bg-tint);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.quote-row{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;font-size:var(--text-sm)}.quote-row .label{color:var(--ink-2)}.quote-row .val{font-weight:500;color:var(--ink)}.quote-row.total{border-top:1px solid var(--border);margin-top:6px;padding-top:10px}.quote-row.total .label{font-weight:600;color:var(--ink)}.quote-row.total .val{font-size:var(--text-xl);font-weight:700;letter-spacing:var(--tracking-tight)}.rate-edit{display:inline-flex;align-items:baseline;gap:2px}.rate-edit input{width:56px;padding:2px 6px;border:1px solid transparent;background:transparent;border-radius:6px;text-align:right;font:inherit;font-weight:500;color:inherit;outline:none;transition:.12s border-color,.12s background;-moz-appearance:textfield}.rate-edit input::-webkit-outer-spin-button,.rate-edit input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.rate-edit input:hover{border-color:var(--border)}.rate-edit input:focus{border-color:var(--primary-deep);background:var(--surface);box-shadow:0 0 0 3px var(--primary-soft)}.rate-edit .suffix{color:var(--ink-3);font-size:var(--text-xs);margin-left:4px;font-weight:400}.rate-reset{margin-right:8px;padding:0;border:none;background:transparent;color:var(--ink-3);font:inherit;font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);cursor:pointer;align-self:center;line-height:1}.rate-reset:hover{color:var(--ink)}.quote-box{position:relative;transition:.2s background,.2s border-color}.quote-box.paid{background:var(--primary-soft);border-color:var(--primary)}.paid-stamp{position:absolute;top:50%;left:50%;padding:6px 16px;border:3px solid var(--primary-deep);color:var(--primary-deep);font-family:Geist Mono,monospace;font-size:var(--text-2xl);font-weight:800;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;border-radius:6px;transform:translate(-50%,-50%) rotate(-8deg);pointer-events:none;opacity:var(--opacity-muted);background:transparent}.readonly-pill{background:var(--bg-tint);border:1px solid var(--border);font-family:Geist Mono,monospace;font-weight:500}.today-view{padding:18px 24px 60px;display:flex;flex-direction:column;gap:14px}.today-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.today-col{display:flex;flex-direction:column;gap:14px}.today-desk{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 1200px){.today-desk{grid-template-columns:1fr}}.today-meta-row{display:grid;grid-template-columns:1fr;gap:14px}.today-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}.today-section h3{margin:0 0 10px;font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:var(--weight-display);display:flex;align-items:center;gap:8px}.today-section h3 .count{font-size:var(--text-xs);background:var(--bg-tint);color:var(--ink-2);padding:1px 8px;border-radius:100px;font-weight:600;letter-spacing:var(--tracking-flat)}.today-card{display:flex;align-items:stretch;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;margin-bottom:6px;background:var(--surface);cursor:pointer;transition:.1s background}.today-card:hover{background:var(--bg-tint)}.today-card.flat{background:var(--bg-tint);border-style:dashed}.today-card.flat:hover{background:var(--surface-2)}.tc-time{font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug);color:var(--primary-deep);align-self:flex-start;padding:3px 9px;background:var(--primary-soft);border-radius:6px;flex-shrink:0}.tc-body{flex:1;min-width:0}.tc-dogs{display:flex;align-items:center;gap:10px}.tc-dogs .dog-names{font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-snug)}.tc-dogs .dog-names.sm{font-size:var(--text-sm)}.tc-dogs .owner-sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:2px}.tc-note{font-size:var(--text-xs);color:var(--ink-2);margin-top:6px;padding:6px 9px;background:var(--alert-soft);border-radius:6px;border-left:2px solid var(--alert)}.desk-section{transition:.2s background,.2s border-color,.2s box-shadow}.desk-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.desk-section-title{display:flex;align-items:center;gap:12px}.desk-section-title h3{margin:0}.desk-counts{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--ink-3)}.desk-counts .dot-sep{color:var(--border-strong)}.desk-counts .to-go.active{color:var(--alert-deep);font-weight:600}.window-tag{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;background:var(--primary-soft);color:var(--primary-deep);border:1px solid var(--primary);border-radius:100px;font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.window-tag .window-dot{width:7px;height:7px;border-radius:50%;background:var(--primary-deep);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:var(--opacity-disabled)}}.desk-list{display:flex;flex-direction:column;gap:6px}.desk-row{display:grid;grid-template-columns:auto minmax(0,1fr) max-content max-content;gap:10px;align-items:center;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:.1s background,.1s border-color,.15s opacity;min-height:50px}.desk-row:hover{background:var(--bg-tint);border-color:var(--border-strong)}.desk-row.done{background:var(--bg-tint);border-style:dashed;border-color:var(--border);opacity:var(--opacity-muted)}.desk-row.done:hover{opacity:1}.desk-row.done .info .names{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--ink-3)}.desk-row.done .info .line2,.desk-row.done .info .line3,.desk-row.done .info .line4{color:var(--ink-3)}.desk-row .dog-pile.sm>*+*{margin-left:-6px}.desk-row .info{min-width:0;display:grid;grid-template-columns:1fr 1.2fr;grid-auto-rows:min-content;column-gap:18px;row-gap:2px;align-items:center}.desk-row .info .line1{grid-column:1;grid-row:1}.desk-row .info .line2{grid-column:1;grid-row:2}.desk-row .info .line3{grid-column:2;grid-row:1}.desk-row .info .line4{grid-column:2;grid-row:2}.desk-row .info .line1{display:flex;align-items:center;gap:6px;font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug);color:var(--ink)}.desk-row .info .line1 .names{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.desk-row .info .line2{font-size:var(--text-xs);color:var(--ink-3);font-weight:var(--weight-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.desk-row .info .line3{font-size:var(--text-xs);color:var(--ink-3);font-weight:var(--weight-body);white-space:nowrap}.desk-row .info .line4{font-size:var(--text-xs);color:var(--alert-deep);font-style:italic;font-weight:var(--weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.desk-row-flags{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.health-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:100px;font-size:var(--text-eyebrow);font-weight:700;letter-spacing:var(--tracking-flat);border:1px solid;line-height:1.5}.health-chip.ok{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.health-chip.lapsed{background:var(--alert-soft);border-color:var(--alert);color:var(--alert-deep)}.health-chip.meds{background:var(--secondary-soft);border-color:var(--secondary);color:var(--secondary-deep)}.desk-row-action{padding:6px 12px;border-radius:100px;font-family:inherit;font-size:var(--text-xs);font-weight:600;border:1px solid var(--brand);background:var(--brand);color:var(--bg);cursor:pointer;display:inline-flex;align-items:center;gap:4px;flex-shrink:0;transition:.1s background,.1s color,.1s border-color,.1s transform;white-space:nowrap}.desk-row-action:hover{background:var(--brand-deep);border-color:var(--brand-deep);transform:translateY(-.5px)}.desk-row-action.done{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.desk-row-pair{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.desk-row-pay{padding:5px 11px;border-radius:100px;font-family:inherit;font-size:var(--text-xs);font-weight:600;border:1px solid var(--alert);background:var(--alert-soft);color:var(--alert-deep);cursor:pointer;display:inline-flex;align-items:center;gap:3px;transition:.1s background,.1s color,.1s border-color;white-space:nowrap;justify-self:end;align-self:center;width:max-content}.desk-row-pay.paid{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.desk-row-pay:disabled{background:var(--bg-tint);border-color:var(--border);color:var(--ink-3);cursor:default}.desk-row-pay.readonly{cursor:default}.desk-row-pay.readonly:hover{background:var(--alert-soft)}.desk-row-pay.readonly.paid:hover{background:var(--primary-soft)}.dogs-view{padding:18px 24px 60px;display:flex;flex-direction:column;gap:14px}.owners-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:14px}.owner-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.oc-head{display:flex;align-items:center;gap:10px;background:transparent;border:0;padding:0;font-family:inherit;color:inherit;width:100%;text-align:left}.oc-head.clickable{cursor:pointer;border-radius:6px;transition:.1s color}.oc-head.clickable:hover .oc-name{color:var(--primary-deep)}.oc-head.clickable>.svg,.oc-head.clickable svg{color:var(--ink-3)}.oc-name{font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-snug)}.oc-meta{font-size:var(--text-xs);color:var(--ink-3);margin-top:2px}.oc-loyal{font-size:var(--text-eyebrow);font-weight:700;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;background:var(--primary-soft);color:var(--primary-deep);padding:3px 9px;border-radius:100px}.oc-stats{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);color:var(--ink-2)}.oc-dogs{display:flex;flex-direction:column;gap:6px;border-top:1px dashed var(--border);padding-top:10px}.oc-dog{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid transparent;border-radius:8px;padding:4px 6px;margin:0 -6px;font-family:inherit;color:inherit;text-align:left;width:calc(100% + 12px)}.oc-dog.clickable{cursor:pointer;transition:.1s background,.1s border-color}.oc-dog.clickable:hover{background:var(--bg-tint);border-color:var(--border)}.oc-dog .meta{flex:1;min-width:0}.oc-dog .name{font-size:var(--text-sm);font-weight:500}.oc-dog .sub{font-size:var(--text-xs);color:var(--ink-3)}.oc-dog.add{cursor:pointer;border-style:dashed;border-color:var(--border);color:var(--ink-3);justify-content:flex-start;font-weight:500;font-size:var(--text-sm);padding:6px 8px;transition:.1s color,.1s border-color,.1s background}.oc-dog.add:hover{color:var(--primary-deep);border-color:var(--primary);background:var(--primary-soft)}.oc-dog.add .add-dog-icon{width:26px;height:26px;display:inline-grid;place-items:center;border-radius:50%;background:var(--bg-tint);color:var(--ink-3)}.oc-dog.add:hover .add-dog-icon{background:var(--primary);color:var(--ink)}.oc-dog.add .add-dog-label{letter-spacing:var(--tracking-snug)}.dog-flag{width:18px;height:18px;border-radius:50%;background:var(--alert);color:var(--bg);font-size:var(--text-xs);font-weight:700;display:grid;place-items:center;cursor:help}.bookings-table.owners-table .bt-row{grid-template-columns:2fr 1.1fr 1.2fr 1.4fr .5fr .7fr}.ot-contact{font-size:var(--text-xs);min-width:0}.ot-contact .mono{font-size:var(--text-sm);color:var(--ink)}.ot-contact .sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ot-address{font-size:var(--text-sm);color:var(--ink-2)}.finances-view{padding:18px 24px 60px}.fin-summary{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:10px;margin-bottom:14px}.fin-summary .stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px}.fin-summary .stat-card.prime{background:var(--brand);color:var(--bg);border-color:var(--brand)}.fin-summary .stat-card.prime .label{color:var(--bg)}.fin-summary .stat-card .label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:600}.fin-summary .stat-card .val{font-size:var(--text-3xl);font-weight:600;letter-spacing:var(--tracking-tight);margin-top:4px}.fin-summary .stat-card .sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:2px}.fin-summary .stat-card.prime .val{color:var(--bg);font-size:var(--text-2xl)}.fin-summary .stat-card.prime .sub{color:var(--bg)}.fin-rows{display:flex;flex-direction:column;gap:4px}.fin-row{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr auto;align-items:center;gap:14px;padding:10px 12px;border-bottom:1px solid var(--border)}.fin-row:last-child{border-bottom:0}.fin-name{font-size:var(--text-base);font-weight:500}.fin-sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:2px}.fin-num{font-size:var(--text-base);text-align:right}.fin-num.due{color:var(--alert-deep);font-weight:600}.fin-num.paid{color:var(--primary-deep);font-weight:600}.messages-view{display:grid;grid-template-columns:240px 1fr;gap:14px;padding:18px 24px 60px}.msg-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px;display:flex;flex-direction:column;gap:12px;height:fit-content;position:sticky;top:18px}.msg-cat-group{display:flex;flex-direction:column;gap:2px}.msg-cat-label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-mute);font-weight:700;padding:4px 8px}.msg-list-item{border:0;background:transparent;text-align:left;padding:7px 10px;border-radius:6px;font-size:var(--text-sm);color:var(--ink-2);cursor:pointer;font-family:inherit}.msg-list-item:hover{background:var(--bg-tint)}.msg-list-item.active{background:var(--brand);color:var(--bg)}.msg-pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px}.msg-pane-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.msg-pane-head h2{margin:0;font-size:var(--text-xl);font-weight:600;letter-spacing:var(--tracking-snug)}.msg-body{background:var(--bg-tint);border:1px solid var(--border);border-radius:10px;padding:16px 18px;font-family:inherit;font-size:var(--text-base);line-height:1.65;color:var(--ink);white-space:pre-wrap;word-wrap:break-word;max-height:60vh;overflow-y:auto;margin:0}.msg-hint{font-size:var(--text-xs);color:var(--ink-3);margin-top:10px;line-height:1.5}.msg-hint code{background:var(--bg-tint);padding:1px 5px;border-radius:4px;font-family:Geist Mono,monospace;font-size:var(--text-xs)}.topbar{display:flex;align-items:center;gap:16px;padding:14px 24px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-svg{display:block;flex-shrink:0;filter:drop-shadow(0 1px 2px oklch(.2 .04 250 / .1))}.brand-text{display:flex;flex-direction:column;align-items:center;gap:0;line-height:1;flex-shrink:0}.brand-name{font-family:Outfit,system-ui,sans-serif;font-weight:600;font-size:var(--text-xl);letter-spacing:var(--tracking-tight);color:var(--ink);line-height:1;white-space:nowrap;text-align:center}.brand-tagline{font-family:Outfit,system-ui,sans-serif;font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:500;color:var(--ink-3);margin-top:4px;text-align:center}.brand-tag{display:inline-flex;align-items:center;font-size:var(--text-eyebrow);font-weight:600;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);padding:3px 9px;border-radius:100px;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;margin-left:4px;align-self:center}.nav{display:flex;gap:2px;background:var(--bg-tint);border:1px solid var(--border);padding:3px;border-radius:100px;margin-left:8px}.nav button{border:0;background:transparent;padding:6px 14px;border-radius:100px;font-size:var(--text-base);font-weight:500;color:var(--ink-2);cursor:pointer;letter-spacing:var(--tracking-snug)}.nav button.active{background:var(--brand);color:var(--bg)}.nav button:hover:not(.active){color:var(--ink)}.spacer{flex:1}.who{display:flex;align-items:center;gap:10px;font-size:var(--text-base);color:var(--ink-2)}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-snug);color:var(--ink);border:1px solid var(--border);background:var(--bg-tint)}.avatar.tone-clay{background:var(--avatar-clay)}.avatar.tone-sage{background:var(--avatar-sage)}.avatar.tone-mist{background:var(--avatar-mist)}.avatar.tone-mauve{background:var(--avatar-mauve)}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:100px;font-size:var(--text-base);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.12s background,.12s border-color,.12s transform}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(.5px)}.btn.primary{background:var(--brand);color:var(--bg);border-color:var(--brand)}.btn.primary:hover{background:var(--brand-deep);border-color:var(--brand-deep)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--bg-tint)}.btn.sm{padding:5px 10px;font-size:var(--text-sm)}.btn.icon{padding:6px;aspect-ratio:1;justify-content:center}.kbd{font-family:Geist Mono,monospace;font-size:var(--text-eyebrow);background:var(--surface-2);border:1px solid var(--border);border-bottom-width:2px;padding:1px 5px;border-radius:5px;color:var(--ink-2)}.subbar{display:flex;align-items:center;gap:14px;padding:14px 24px;border-bottom:1px solid var(--border);background:var(--surface)}.page-title{margin:0;font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink);line-height:1.1}.picker{display:inline-flex;align-items:center;gap:6px}.picker-label{padding:0 14px;min-width:230px;height:44px;display:flex;flex-direction:column;justify-content:center;line-height:1.05;color:var(--ink);text-align:center}.picker-label .eyebrow,.picker-label .main{display:block;width:100%;flex:0 0 auto;text-align:center}.picker-label .eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);margin-bottom:3px}.picker-label .main{font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight);white-space:nowrap}.picker.sm{gap:4px}.picker.sm .picker-label{position:relative;min-width:150px;height:auto;padding:4px 12px}.picker.sm .picker-label .main{font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug)}.btn.icon.sm{padding:4px;width:24px;height:24px}.picker.sm .picker-label.picker-trigger{border:0;background:transparent;cursor:pointer;font-family:inherit;color:var(--ink);border-radius:6px;transition:.1s background}.picker.sm .picker-label.picker-trigger:hover{background:var(--bg-tint)}.picker.cleared .picker-label .main{color:var(--ink-3);font-weight:500}.picker.cleared .btn.icon{color:var(--ink-3)}.picker.cleared .btn.icon:hover{color:var(--ink)}.bw-stats.with-range,.bc-stats.with-range{grid-template-columns:2fr repeat(4,1fr)}.bw-stat.range-card{display:flex;flex-direction:column;gap:6px}.range-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.range-card-clear{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--border-strong);background:var(--surface);border-radius:100px;cursor:pointer;font-family:inherit;font-size:var(--text-xs);font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow)}.range-card-clear:hover{background:var(--brand);color:var(--bg);border-color:var(--brand)}.range-card-clear.is-hidden,.range-card-hint.is-hidden{visibility:hidden;pointer-events:none}.chart-dropdown-wrap{position:relative}.chart-dropdown{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border-strong);background:var(--surface);border-radius:100px;cursor:pointer;font-family:inherit;font-size:var(--text-sm);font-weight:500;color:var(--ink-2);white-space:nowrap}.chart-dropdown:hover{background:var(--bg-tint)}.chart-dropdown strong{color:var(--ink);font-weight:600}.chart-dropdown-arrow{color:var(--ink-3);font-size:var(--text-xs);margin-left:2px}.picker-menu.chart-menu{min-width:160px}.bookings-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px 12px;display:flex;flex-direction:column;gap:10px}.chart-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.chart-title{font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug);color:var(--ink)}.chart-legend{display:flex;align-items:center;gap:14px;font-size:var(--text-xs);color:var(--ink-3)}.chart-legend-item{display:inline-flex;align-items:center;gap:6px}.chart-legend .sw{display:inline-block;width:12px;height:8px;border-radius:2px}.chart-legend .sw.dashed{background:transparent;border-top:1px dashed var(--alert);height:1px;width:16px;border-radius:0}.chart-canvas{position:relative;width:100%;height:clamp(380px,58vh,660px)}.chart-svg-wrap{position:absolute;top:6px;bottom:24px;left:36px;right:4px}.chart-svg{display:block;width:100%;height:100%;shape-rendering:geometricPrecision;cursor:crosshair}.chart-tooltip{position:absolute;bottom:calc(100% + 10px);transform:translate(-50%);background:var(--ink);color:var(--bg);border-radius:8px;padding:8px 10px;font-size:var(--text-xs);pointer-events:none;box-shadow:0 8px 22px -6px #0717274d;min-width:140px;z-index:5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chart-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--ink)}.chart-tooltip-head{font-weight:700;letter-spacing:var(--tracking-flat);font-size:var(--text-xs);margin-bottom:6px;color:var(--bg)}.chart-tooltip-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;padding:1px 0}.chart-tooltip-row.zero{opacity:var(--opacity-disabled)}.chart-tooltip-row .sw{width:10px;height:10px;border-radius:2px}.chart-tooltip-row .lbl{color:var(--bg)}.chart-tooltip-row .val{font-weight:600}.chart-tooltip-total{display:flex;justify-content:space-between;border-top:1px solid oklch(.4 .02 60);margin-top:6px;padding-top:6px;font-weight:700}.chart-y-axis{position:absolute;top:6px;bottom:24px;left:0;width:32px;font-size:var(--text-xs);color:var(--ink-3);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chart-y-axis span{position:absolute;right:6px;transform:translateY(-50%);line-height:1;white-space:nowrap}.chart-x-axis{position:absolute;left:36px;right:4px;bottom:0;height:20px;font-size:var(--text-xs);color:var(--ink-3);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chart-x-axis span{position:absolute;top:4px;transform:translate(-50%);white-space:nowrap;line-height:1}.range-card-inputs{display:flex;align-items:center;gap:6px}.range-card-inputs input[type=date]{flex:1;min-width:0;padding:5px 8px;border:1px solid var(--border);border-radius:6px;font-family:Geist Mono,monospace;font-size:var(--text-sm);background:var(--surface);color:var(--ink)}.range-card-inputs input[type=date]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.range-card-inputs .arrow{color:var(--ink-3);font-size:var(--text-base);flex-shrink:0}.range-card-hint{font-size:var(--text-xs);color:var(--ink-3);font-style:italic}.picker{position:relative}.picker-menu{position:absolute;top:100%;left:0;margin-top:6px;z-index:30;min-width:240px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;font-family:inherit}.picker-menu-row{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:transparent;border:0;border-radius:6px;cursor:pointer;font-family:inherit;font-size:var(--text-base);color:var(--ink);text-align:left;transition:.1s background}.picker-menu-row:hover{background:var(--bg-tint)}.picker-menu-row.on{color:var(--primary-deep);font-weight:600}.picker-menu-row.any{font-weight:500;border-bottom:1px dashed var(--border);border-radius:6px 6px 0 0}.picker-menu-year{padding:8px 10px 4px;font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3)}.picker-menu-months{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:0 4px 4px}.picker-menu-month{border:1px solid transparent;background:transparent;border-radius:6px;padding:8px 6px;font-size:var(--text-sm);font-weight:500;cursor:pointer;color:var(--ink);font-family:inherit;transition:.1s background,.1s border-color}.picker-menu-month:hover{background:var(--bg-tint);border-color:var(--border)}.picker-menu-month.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep);font-weight:700}.week-nav{display:flex;align-items:center;gap:4px}.week-nav .week-label{padding:0 8px;min-width:200px;font-weight:500;letter-spacing:var(--tracking-snug)}.week-nav .week-label .sub{display:block;font-size:var(--text-xs);color:var(--ink-3);font-weight:400;margin-top:1px}.subbar-primary{min-width:140px;justify-content:center}.month-nav{display:flex;align-items:center;gap:12px}.month-title{margin:0;padding:0 4px;font-size:var(--text-3xl);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink);line-height:1.1;min-width:240px;text-align:center}.chip-toggle{display:inline-flex;background:var(--bg-tint);border:1px solid var(--border);border-radius:100px;padding:2px}.chip-toggle button{border:0;background:transparent;padding:5px 12px;border-radius:100px;font-size:var(--text-sm);font-weight:500;color:var(--ink-2);cursor:pointer}.chip-toggle button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #1d140d0f}.schedule.month{padding:18px 24px 60px;display:flex;flex-direction:column;gap:14px}.schedule-main{display:flex;flex-direction:column;gap:14px}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--ink-mute);display:inline-block}.week-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.week-block.current{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.week-head{display:flex;align-items:baseline;gap:14px;padding:14px 18px;background:var(--surface-2);border-bottom:1px solid var(--border)}.week-head.clickable{cursor:pointer;transition:.14s background,.14s padding-left;-webkit-user-select:none;user-select:none}.week-head.clickable:hover{background:var(--primary-soft);padding-left:22px}.week-head.clickable:hover .week-open-cta{opacity:1;transform:translate(0)}.week-head.clickable:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.week-open-cta{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:600;color:var(--primary-deep);opacity:0;transform:translate(-4px);transition:.14s opacity,.14s transform}.week-block.current .week-head{background:var(--brand-soft)}.week-head .week-label{display:flex;align-items:center;gap:10px}.week-head .week-label .num{font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug);color:var(--ink)}.week-head .tag-now{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:600;background:var(--primary-soft);color:var(--primary-deep);border:1px solid var(--primary);padding:2px 8px;border-radius:100px}.week-head .week-range{font-size:var(--text-sm);color:var(--ink-2);font-weight:500;letter-spacing:var(--tracking-snug)}.week-head .week-meta{margin-left:auto;display:flex;gap:8px;align-items:center;font-size:var(--text-sm);color:var(--ink-2)}.week-head .dim{color:var(--ink-mute)}.week-head .open-pill{background:var(--secondary-soft);color:var(--secondary-deep);font-weight:500;padding:2px 8px;border-radius:100px;font-size:var(--text-xs)}.day-row{display:grid;grid-template-columns:repeat(7,1fr)}.day-col{border-right:1px solid var(--border);padding:8px;display:flex;flex-direction:column;gap:4px;min-height:300px;background:var(--surface);position:relative}.day-col:last-child{border-right:0}.day-col.out-month .dnum{color:var(--ink-mute)}.day-col.today{box-shadow:inset 0 0 0 2px var(--brand);z-index:1}.day-col.today .dnum{color:var(--brand-deep);font-weight:700}.week-block.pulse{animation:weekPulse 1.1s ease}@keyframes weekPulse{0%{box-shadow:0 0 0 3px var(--primary-soft)}35%{box-shadow:0 0 0 10px var(--primary-soft)}to{box-shadow:0 0 0 3px var(--primary-soft)}}.day-head{display:flex;align-items:baseline;gap:6px;padding:4px 6px 6px;border-bottom:1px solid var(--border);margin-bottom:4px}.day-head .dow{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:500}.day-head .dnum{font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink)}.day-head .month-tag{font-size:var(--text-eyebrow);color:var(--ink-mute);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow)}.day-col.today .day-head .dnum{color:var(--primary-deep)}.leave-strip{display:flex;align-items:center;gap:5px;padding:4px 7px;background:var(--alert-soft);border:1px solid var(--alert);border-radius:6px;font-size:var(--text-eyebrow);color:var(--alert-deep);font-weight:500;cursor:pointer;margin-bottom:2px}.leave-strip .leave-names{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leave-strip:hover{background:var(--alert-soft)}.shift-group{display:flex;flex-direction:column;gap:3px;margin-top:6px}.shift-group .kind-stripe.full{width:100%;height:2px;border-radius:0;margin-bottom:1px}.shift-group .group-head{display:flex;align-items:center;gap:6px;padding:2px 2px 4px}.shift-group .group-head.compact{padding:0 0 2px;gap:5px}.shift-group .group-head.compact .kind-stripe{width:10px;height:2px}.shift-group .group-head.compact .group-label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600}.kind-stripe{display:inline-block;width:14px;height:3px;border-radius:2px;background:var(--ink-mute);flex-shrink:0}.kind-stripe.am{background:var(--primary)}.kind-stripe.pm{background:var(--secondary)}.group-head .group-label{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:600;color:var(--ink-2)}.group-head .group-time{font-size:var(--text-eyebrow);color:var(--ink-3);margin-left:auto}.slot-mini{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);cursor:pointer;position:relative;overflow:hidden;transition:.12s background,.12s border-color,.12s transform;min-height:26px}.slot-mini:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--ink-mute)}.slot-mini.am:before{background:var(--primary)}.slot-mini.pm:before{background:var(--secondary)}.slot-mini:hover{background:var(--surface);transform:translateY(-.5px)}.slot-mini .name{font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-snug);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:2px;color:var(--ink)}.slot-mini.empty{background:transparent;border-style:dashed;border-color:var(--border);justify-content:center;opacity:var(--opacity-muted)}.slot-mini.empty .plus{font-size:var(--text-md);font-weight:400;color:var(--ink-3);line-height:1}.slot-mini.empty:hover{opacity:1;background:var(--bg-tint)}.slot-mini.open{background:var(--secondary-soft);border-color:var(--secondary);justify-content:center}.slot-mini.open .open-tag{font-size:var(--text-eyebrow);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--secondary-deep)}.slot-mini.conflict{background:var(--alert-soft);border-color:var(--alert)}.day-col .slot-mini{padding:2px 6px;min-height:22px;font-size:var(--text-eyebrow)}.day-col .slot-mini:before{width:0}.day-col .slot-mini .name{font-size:var(--text-xs)}.open-foot{margin-top:4px;text-align:center;font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--secondary-deep);background:var(--secondary-soft);border-radius:100px;padding:2px 6px;font-weight:600;align-self:flex-start}.open-foot .mono{font-size:var(--text-eyebrow);margin-right:2px}.dots-summary{display:flex;flex-direction:column;gap:6px;margin-top:6px}.dots-summary .ds-row{display:flex;align-items:center;gap:6px}.dots-summary .kind-stripe{width:3px;height:18px;border-radius:2px}.dots-summary .ds-stack{display:flex;gap:3px;flex-wrap:wrap;flex:1}.dots-summary .ds-open{width:18px;height:18px;border-radius:50%;background:transparent;border:1.5px dashed var(--border-strong)}.day-col.faded{background:var(--bg-tint);opacity:var(--opacity-muted)}.day-col.faded:hover{opacity:1;background:var(--surface)}.day-col .day-ok{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-mute);text-align:center;margin:auto 0;font-weight:500}.day-col.density-dots{min-height:130px}.day-col.density-issues.faded{min-height:110px}.dot-open{background:var(--secondary)}.week-view{padding:18px 24px 60px;display:flex;flex-direction:column;gap:14px}.week-stats{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:10px;margin-bottom:14px}.week-stats.month{grid-template-columns:repeat(5,1fr)}.week-stats .stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;flex-direction:column;gap:2px}.week-stats .stat-card.prime{background:var(--brand);border-color:var(--brand);color:var(--bg)}.week-stats .stat-card.prime .label{color:var(--ink-mute)}.week-stats .stat-card .label{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600}.week-stats .stat-card .val{font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-tight);font-family:Geist Mono,monospace;line-height:1.2}.week-stats .stat-card .val.warn{color:var(--alert-deep)}.week-stats .stat-card .val .sub-num{color:var(--ink-3);font-size:var(--text-lg);letter-spacing:var(--tracking-snug)}.week-stats .stat-card.prime .val{font-size:var(--text-xl);color:var(--bg)}.picker.compact{gap:4px}.picker.compact .picker-label .main{font-size:var(--text-base)}.today-context-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.today-ctx-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-width:0}.today-ctx-head{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.today-ctx-head .title{font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:700;color:var(--ink-3)}.today-ctx-head .count{background:var(--bg-tint);border:1px solid var(--border);padding:0 8px;border-radius:100px;font-size:var(--text-sm);color:var(--ink-2)}.today-ctx-viewall{margin-left:auto;background:transparent;border:0;padding:4px 6px;font:inherit;font-size:var(--text-xs);font-weight:500;color:var(--brand-deep);cursor:pointer;letter-spacing:var(--tracking-flat);white-space:nowrap}.today-ctx-viewall:hover{color:var(--brand);text-decoration:underline}.today-name-ellipsis{flex:0 0 auto;padding:4px 10px;font-size:var(--text-xs);font-weight:500;color:var(--ink-3);letter-spacing:var(--tracking-flat);white-space:nowrap;-webkit-user-select:none;user-select:none}.subbar{position:relative}.subbar-center-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;font-size:var(--text-base);color:var(--ink-2);font-weight:500;letter-spacing:var(--tracking-snug);pointer-events:none;white-space:nowrap}.subbar-date-nav{display:inline-flex;align-items:center;gap:4px;pointer-events:auto}.subbar-date-label{font-size:var(--text-base);font-weight:var(--weight-medium);letter-spacing:var(--tracking-snug);color:var(--ink-2);white-space:nowrap;padding:0 6px;min-width:220px;text-align:center}.subbar-date-step{width:26px;height:26px;border-radius:50%;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:.1s background,.1s color,.1s border-color}.subbar-date-step:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-deep)}.subbar-date-step:disabled{opacity:var(--opacity-disabled);cursor:not-allowed;background:var(--surface);border-color:var(--border-strong);color:var(--ink-3)}.subbar-date-label.clickable{background:transparent;border:0;font:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);letter-spacing:var(--tracking-snug);color:var(--ink-2);cursor:pointer;padding:0 6px}.subbar-date-label.clickable:hover{color:var(--brand-deep);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.subbar-date-label.is-current{color:var(--brand-deep)}.subbar-date-label.is-current:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--brand);margin-right:8px;vertical-align:middle;transform:translateY(-1px)}.today-name-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:thin}.today-name-row::-webkit-scrollbar{height:4px}.today-name-row::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:100px}.today-name-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 4px;background:var(--bg-tint);border:1px solid var(--border);border-radius:100px;font-size:var(--text-sm);font-weight:500;color:var(--ink);flex:0 0 auto;font-family:inherit}.today-name-chip.clickable{cursor:pointer;transition:.1s background,.1s border-color}.today-name-chip.clickable:hover{background:var(--brand-soft);border-color:var(--brand)}.ovf-text-link{background:transparent;border:0;padding:4px 8px;font-family:inherit;font-size:var(--text-sm);color:var(--brand-deep);cursor:pointer;font-weight:500;letter-spacing:var(--tracking-flat);flex:0 0 auto;white-space:nowrap}.ovf-text-link:hover{color:var(--brand);text-decoration:underline}.fit-row-ruler{position:absolute;visibility:hidden;pointer-events:none;display:flex;flex-wrap:nowrap;gap:8px;left:-9999px;top:0}.irq-view-all{background:transparent;border:0;font:inherit;font-size:var(--text-xs);font-weight:500;color:var(--brand-deep);cursor:pointer;letter-spacing:var(--tracking-flat)}.irq-view-all:hover{color:var(--brand)}.irq-overflow{background:var(--bg-tint);border:2px solid var(--surface);border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:var(--ink-2);margin-left:-8px}.helpers-toolbar{padding:14px 18px;overflow:hidden}.helpers-bubbles{display:flex;flex-wrap:nowrap;gap:12px;overflow-x:auto;scrollbar-width:thin;width:100%;padding-bottom:2px}.helpers-bubbles::-webkit-scrollbar{height:6px}.helpers-bubbles::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:100px}.helper-bubble{display:flex;align-items:center;gap:10px;padding:6px 16px 6px 6px;background:var(--surface);border:1px solid var(--border);border-radius:100px;cursor:pointer;font-family:inherit;transition:.1s background,.1s border-color;flex:0 0 auto;min-width:150px}.helper-bubble:hover{background:var(--bg-tint);border-color:var(--border-strong)}.helper-bubble .meta{min-width:0;text-align:left;line-height:1.2}.helper-bubble .name{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-snug);color:var(--ink)}.helper-bubble .sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:2px;letter-spacing:var(--tracking-flat)}.people-strip{display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:14px;overflow-x:auto;scrollbar-width:thin;padding-bottom:4px}.people-strip::-webkit-scrollbar{height:6px}.people-strip::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:100px}.person-chip{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:100px;cursor:pointer;transition:.12s background,.12s border-color;flex:0 0 auto;min-width:180px}.person-chip:hover{background:var(--surface-2)}.person-chip .meta{min-width:0}.person-chip .name{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-snug);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-chip .sub{font-size:var(--text-eyebrow);color:var(--ink-3);margin-top:1px}.person-chip.dim{opacity:var(--opacity-disabled)}.person-chip.dim:hover{opacity:1}.week-grid{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:grid;grid-template-columns:110px repeat(7,1fr)}.week-grid .hcell{background:var(--surface-2);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:6px}.week-grid .hcell:nth-child(8){border-right:0}.week-grid .hcell.corner{background:var(--surface)}.week-grid .hcell.day.weekend{background:transparent}.week-grid .hcell.day .day-line{display:flex;flex-direction:column;gap:1px}.week-grid .hcell.day .dow{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:600;color:var(--ink-3)}.week-grid .hcell.day .dnum{font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink)}.week-grid .hcell.day.today{background:oklch(from var(--brand-soft) l c h / .5)}.week-grid .hcell.day.today .dnum{color:var(--brand-deep)}.week-grid .hcell .leave-mini{display:flex;align-items:center;gap:5px;font-size:var(--text-eyebrow);color:var(--alert-deep);padding:3px 8px;background:var(--alert-soft);border-radius:100px;cursor:pointer;font-weight:500;width:fit-content}.week-grid .pcell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px 8px;display:flex;flex-direction:column;gap:4px}.week-grid .pcell:last-child{border-right:0}.week-grid>.pcell:nth-last-child(-n+8){border-bottom:0}.week-grid .day-period.today{background:oklch(from var(--brand-soft) l c h / .5)}.week-grid .period-label{background:var(--surface-2);padding:16px 14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;border-right:1px solid var(--border-strong)}.week-grid .period-label.am,.week-grid .period-label.pm{background:transparent}.week-grid .period-label .kind-stripe{width:28px;height:4px;border-radius:3px;margin-bottom:4px}.week-grid .period-label .period-name{font-size:var(--text-3xl);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink);line-height:1}.week-grid .period-label .period-time{font-size:var(--text-xs);color:var(--ink-2);display:flex;flex-direction:column;gap:1px}.week-grid .period-label .period-time .dim{color:var(--ink-mute);font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.week-grid .period-label .period-hint{font-size:var(--text-eyebrow);color:var(--ink-3);margin-top:4px;letter-spacing:var(--tracking-flat)}.week-grid .cell-cov{display:flex;align-items:center;gap:8px;margin-bottom:4px;padding:0 2px}.week-grid .cov-dots{display:flex;gap:3px}.cov-dot{width:6px;height:6px;border-radius:50%;background:transparent;border:1px solid var(--border-strong)}.cov-dot.filled{background:var(--primary);border-color:var(--primary-deep)}.cov-num{font-size:var(--text-eyebrow);color:var(--ink-3);margin-left:auto}.wk-slot{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 8px;border-radius:8px;background:var(--surface);border:1px solid var(--border);cursor:pointer;position:relative;overflow:hidden;transition:.12s background,.12s transform,.12s box-shadow;min-height:36px}.wk-slot:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink-mute)}.wk-slot.am:before{background:var(--primary)}.wk-slot.pm:before{background:var(--secondary)}.wk-slot:hover{background:var(--surface-2);transform:translateY(-.5px);box-shadow:0 2px 6px -3px #1d140d1f}.wk-slot .full-name{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-snug);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:2px}.wk-slot.empty{background:transparent;border-style:dashed;border-color:var(--border);justify-content:center;opacity:var(--opacity-disabled);gap:4px}.wk-slot.empty:before{display:none}.wk-slot.empty .plus{font-size:var(--text-base);color:var(--ink-3);line-height:1}.wk-slot.empty .add-hint{font-size:var(--text-eyebrow);color:var(--ink-3);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.wk-slot.empty:hover{opacity:1;background:var(--bg-tint)}.wk-slot.open{background:var(--secondary-soft);border-color:var(--secondary);justify-content:center}.wk-slot.open .open-tag{font-size:var(--text-eyebrow);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--secondary-deep)}.wk-slot.conflict{background:var(--alert-soft);border-color:var(--alert)}.wk-slot.conflict .full-name{text-decoration:line-through;color:var(--alert-deep)}.add-shift-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:5px 8px;margin-top:2px;border:1px dashed var(--border-strong);background:transparent;border-radius:7px;color:var(--ink-3);cursor:pointer;transition:.12s background,.12s color,.12s border-color;min-height:28px}.add-shift-btn:hover{background:var(--bg-tint);color:var(--ink);border-color:var(--ink-mute)}.add-shift-btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.add-shift-btn .plus{font-size:var(--text-md);line-height:1;font-weight:500}.add-shift-btn .lbl{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:600}.inline-editor{position:fixed;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:0 20px 50px -12px #1d140d40,0 6px 16px -6px #1d140d1f;z-index:200;overflow:hidden;animation:pop .12s ease}.inline-editor .ie-head{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--surface-2);border-bottom:1px solid var(--border)}.inline-editor .ie-stripe{width:4px;height:30px;border-radius:2px;background:var(--ink-mute);flex-shrink:0}.inline-editor .ie-stripe.am{background:var(--primary)}.inline-editor .ie-stripe.pm{background:var(--secondary)}.inline-editor .ie-head-text{min-width:0}.inline-editor .ie-title{font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug);color:var(--ink)}.inline-editor .ie-subtitle{font-size:var(--text-eyebrow);color:var(--ink-3);margin-top:2px;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:500}.inline-editor .ie-list{max-height:280px;overflow-y:auto;padding:5px}.inline-editor .ie-row{display:flex;align-items:center;gap:10px;padding:7px 9px;border:0;background:transparent;cursor:pointer;width:100%;text-align:left;border-radius:8px;transition:.08s background;color:inherit}.inline-editor .ie-row:hover{background:var(--bg-tint)}.inline-editor .ie-row.on{background:var(--primary-soft)}.inline-editor .ie-row.on .ie-name{font-weight:600;color:var(--ink)}.inline-editor .ie-row.is-on-leave{opacity:var(--opacity-muted)}.inline-editor .ie-row.is-on-leave .ie-sub{color:var(--alert-deep);font-weight:500}.inline-editor .ie-row .ie-info{flex:1;min-width:0}.inline-editor .ie-row .ie-name{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-snug);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inline-editor .ie-row .ie-sub{font-size:var(--text-eyebrow);color:var(--ink-3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inline-editor .ie-empty{padding:18px 14px;font-size:var(--text-sm);color:var(--ink-3);text-align:center;line-height:1.5}.inline-editor .ie-foot{padding:6px;border-top:1px solid var(--border);background:var(--surface-2)}.inline-editor .ie-remove{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border:0;background:transparent;color:var(--alert-deep);font-size:var(--text-sm);font-weight:500;cursor:pointer;border-radius:7px;transition:.08s background}.inline-editor .ie-remove:hover{background:var(--alert-soft)}.avatar-preview-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-tint);border:1px solid var(--border);border-radius:var(--radius)}.copy-arrow-row{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch}.copy-block{background:var(--bg-tint);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}.copy-block .lbl{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:600}.copy-block .val{font-size:var(--text-md);font-weight:500;letter-spacing:var(--tracking-snug);color:var(--ink);font-family:Geist Mono,monospace}.copy-arrow{display:grid;place-items:center;color:var(--ink-3)}.copy-warn{margin:12px 0 0;font-size:var(--text-sm);color:var(--ink-2);line-height:1.55;padding:10px 12px;background:var(--alert-soft);border:1px solid oklch(from var(--alert) l c h / .3);border-radius:8px}.copy-warn strong{color:var(--alert-deep);font-weight:600}.color-swatches{display:flex;gap:8px}.color-sw{width:32px;height:32px;border-radius:8px;border:1px solid var(--border-strong);cursor:pointer;padding:0;transition:.12s transform,.12s box-shadow}.color-sw:hover{transform:translateY(-1px)}.color-sw.on{box-shadow:0 0 0 2px var(--ink)}.balance-row.clickable{cursor:pointer;padding:8px 6px;border-radius:8px;transition:.08s background;border-bottom:0}.balance-row.clickable:hover{background:var(--bg-tint)}.dogs-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:100px;font-size:var(--text-sm);font-weight:600;background:var(--bg-tint);border:1px solid var(--border);color:var(--ink);cursor:pointer;transition:.12s background,.12s border-color,.12s transform;-webkit-user-select:none;user-select:none}.dogs-pill:hover{background:var(--surface);border-color:var(--border-strong)}.dogs-pill:active{transform:scale(.97)}.dogs-pill .num{font-family:Geist Mono,monospace;font-size:var(--text-base);letter-spacing:var(--tracking-snug)}.dogs-pill .lbl{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-2);font-weight:600}.dogs-pill.compact{padding:1px 7px;font-size:var(--text-eyebrow);margin-left:auto}.dogs-pill.compact .num{font-size:var(--text-xs)}.dogs-input{width:54px;padding:3px 8px;font-size:var(--text-sm);border:1.5px solid var(--primary-deep);border-radius:100px;background:var(--surface);text-align:center;font-family:Geist Mono,monospace;font-weight:600;outline:none;box-shadow:0 0 0 3px var(--primary-soft)}.dogs-input.compact{width:40px;font-size:var(--text-eyebrow);padding:1px 5px;margin-left:auto}.week-grid .day-line-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.week-grid .day-line-text{display:flex;flex-direction:column;gap:1px}.day-col .day-head{align-items:center;flex-wrap:wrap;row-gap:2px}.legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;font-size:var(--text-xs);color:var(--ink-2)}.legend-grid .item{display:inline-flex;align-items:center;gap:6px}.side{display:flex;flex-direction:column;gap:14px;position:sticky;top:130px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.panel h3{margin:0 0 12px;font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:500}.stat-row{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px dashed var(--border)}.stat-row:last-child{border-bottom:0}.stat-row .label{font-size:var(--text-base);color:var(--ink-2)}.stat-row .val{font-family:Geist Mono,monospace;font-size:var(--text-lg);font-weight:500;letter-spacing:var(--tracking-snug)}.stat-row .val.accent{color:var(--primary-deep)}.coverage-day{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:var(--text-sm)}.coverage-day .day{color:var(--ink-2);width:36px}.coverage-bar{flex:1;height:6px;background:var(--bg-tint);border-radius:100px;margin:0 10px;overflow:hidden;position:relative}.coverage-bar .fill{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--primary);border-radius:100px;transform-origin:left}.coverage-bar.warn .fill{background:var(--alert)}.coverage-day .pct{font-family:Geist Mono,monospace;font-size:var(--text-xs);color:var(--ink-2);width:30px;text-align:right}.open-shift-item{border:1px dashed var(--border-strong);border-radius:10px;padding:10px 12px;margin-bottom:8px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:.12s background}.open-shift-item:hover{background:var(--surface-2)}.open-shift-item .day-tag{font-family:Geist Mono,monospace;font-size:var(--text-xs);color:var(--ink-2);background:var(--bg-tint);padding:3px 7px;border-radius:6px;border:1px solid var(--border)}.open-shift-item .what{flex:1;font-size:var(--text-sm)}.open-shift-item .what .time{color:var(--ink);font-weight:500;font-family:Geist Mono,monospace}.open-shift-item .what .role{color:var(--ink-3);font-size:var(--text-xs)}.pay{padding:18px 24px 60px;display:flex;flex-direction:column;gap:14px}.pay-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.pay-table .row{display:grid;grid-template-columns:1.6fr .8fr .8fr 1fr 1fr 1.4fr;align-items:center;border-bottom:1px solid var(--border);padding:14px 18px;gap:12px}.pay-table .row.head{background:var(--surface-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:500}.pay-table .row:last-child{border-bottom:0}.pay-table .person{display:flex;align-items:center;gap:10px}.pay-table .person .name{font-weight:500;font-size:var(--text-md);letter-spacing:var(--tracking-snug)}.pay-table .person .role{font-size:var(--text-xs);color:var(--ink-3);margin-top:1px}.pay-table .row.paid .person .name{text-decoration:line-through;text-decoration-color:var(--ink-mute);color:var(--ink-3)}.pay-table .row.paid .num{color:var(--ink-3)}.pay-table .row.paid{background:var(--primary-soft)}.num{font-family:Geist Mono,monospace;font-size:var(--text-md);letter-spacing:var(--tracking-snug)}.num.total{font-size:var(--text-lg);font-weight:500}.pay-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:100px;font-size:var(--text-sm);font-weight:500;cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);width:fit-content;-webkit-user-select:none;user-select:none}.pay-pill.paid{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.pay-pill .dot-ind{width:6px;height:6px;border-radius:50%;background:var(--ink-mute)}.pay-pill.paid .dot-ind{background:var(--primary-deep)}.pay-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.pay-summary .stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.pay-summary .stat .label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:500}.pay-summary .stat .val{font-family:Geist Mono,monospace;font-size:var(--text-3xl);font-weight:500;letter-spacing:var(--tracking-tight);margin-top:6px}.pay-summary .stat .sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:2px;font-family:Geist Mono,monospace}.pay-summary .stat.accent .val{color:var(--primary-deep)}.pay-month-grid{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.pmg-head,.pmg-row{display:grid;grid-template-columns:1.6fr repeat(6,1fr) 1fr}.pmg-head{background:var(--surface-2);border-bottom:1px solid var(--border)}.pmg-cell{padding:12px 14px;border-right:1px solid var(--border);font-size:var(--text-sm)}.pmg-cell:last-child{border-right:0}.pmg-row{border-bottom:1px solid var(--border)}.pmg-row:last-child{border-bottom:0}.pmg-head .pmg-cell{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600}.pmg-head .wk-col{display:flex;flex-direction:column;gap:2px}.pmg-head .wk-col .wk-no{font-size:var(--text-base);color:var(--ink);letter-spacing:var(--tracking-snug);text-transform:none}.pmg-head .wk-col .wk-date{font-size:var(--text-eyebrow);color:var(--ink-3);letter-spacing:var(--tracking-flat);text-transform:none;font-weight:500}.pmg-row .helper-col{display:flex;align-items:center;gap:10px}.pmg-row .helper-col .name{font-size:var(--text-base);font-weight:500;letter-spacing:var(--tracking-snug)}.pmg-row .helper-col .role{font-size:var(--text-xs);color:var(--ink-3);margin-top:1px;font-family:Geist Mono,monospace}.pmg-row .wk-col.data,.pmg-row .total-col.data{display:grid;place-items:center;padding:8px}.pmg-row .wk-col.zero .off{color:var(--ink-mute);font-size:var(--text-md)}.pmg-week-pill{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 10px;border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;cursor:pointer;position:relative;transition:.12s background,.12s border-color,.12s transform;min-width:64px}.pmg-week-pill:hover{background:var(--surface-2);transform:translateY(-.5px)}.pmg-week-pill .hrs{font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug);color:var(--ink)}.pmg-week-pill .wage{font-size:var(--text-eyebrow);color:var(--ink-3);letter-spacing:var(--tracking-flat)}.pmg-week-pill.paid{background:var(--primary-soft);border-color:var(--primary)}.pmg-week-pill.paid .hrs,.pmg-week-pill.paid .wage{color:var(--primary-deep)}.pmg-week-pill .paid-dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--primary-deep)}.pmg-row .total-col.data .total-line{display:flex;flex-direction:column;align-items:center;gap:2px}.pmg-row .total-col .total-h{font-size:var(--text-md);font-weight:600;color:var(--ink)}.pmg-row .total-col .total-w{font-size:var(--text-sm);color:var(--ink-2);font-weight:500}.holidays-week{padding:18px 24px 60px;display:grid;grid-template-columns:1fr;gap:14px}.hol-summary{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:10px}.hol-summary .stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.hol-summary .stat .label{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:600}.hol-summary .stat .val{font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-tight);margin-top:4px}.hol-summary .stat .val.accent{color:var(--alert-deep)}.hol-week-strip{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.hol-day-col{border-right:1px solid var(--border);min-height:280px;display:flex;flex-direction:column}.hol-day-col:last-child{border-right:0}.hol-day-col.weekend{background:var(--bg-tint)}.hol-day-col.today{box-shadow:inset 0 0 0 2px var(--brand);z-index:1}.hol-day-head{padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface-2);display:flex;flex-direction:column;gap:2px}.hol-day-head .dow{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:600}.hol-day-head .dnum{font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-tight)}.hol-day-col.today .dnum{color:var(--brand-deep)}.hol-day-body{padding:8px;display:flex;flex-direction:column;gap:5px;flex:1}.hol-empty{color:var(--ink-mute);font-size:var(--text-lg);text-align:center;align-self:center;margin:auto}.hol-card{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer;position:relative;overflow:hidden;transition:.12s background,.12s transform}.hol-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--alert)}.hol-card.t-sick:before{background:var(--secondary)}.hol-card.t-unpaid:before{background:var(--ink-mute)}.hol-card:hover{background:var(--surface-2);transform:translateY(-.5px)}.hol-card .meta{min-width:0;flex:1}.hol-card .name{font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-snug);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hol-card .type{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;font-weight:600;color:var(--ink-3);margin-top:1px}.hol-card.pending{border-style:dashed;opacity:var(--opacity-muted)}.hol-week-side{display:grid;grid-template-columns:1fr 1fr;gap:14px}.holidays{padding:18px 24px 60px;display:flex;flex-direction:column;gap:14px}.holidays>.hol-month-body{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:start}.hol-cal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px}.hol-cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.hol-cal-head h2{margin:0;font-size:var(--text-xl);font-weight:600;letter-spacing:var(--tracking-snug)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-grid .dow{text-align:center;font-size:var(--text-eyebrow);color:var(--ink-3);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;padding:6px 0}.cal-day{min-height:90px;border-radius:8px;border:1px solid var(--border);background:var(--surface);padding:6px;display:flex;flex-direction:column;gap:4px;font-size:var(--text-xs);position:relative}.cal-day.muted{background:var(--bg-tint);color:var(--ink-mute)}.cal-day.today{border-color:var(--brand);border-width:2px}.cal-day.in-week{box-shadow:inset 0 0 0 2px var(--primary)}.cal-day .n{font-family:Geist Mono,monospace;font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink)}.cal-day .events{display:flex;flex-direction:column;gap:2px;margin-top:1px;overflow:hidden}.cal-event{font-size:var(--text-eyebrow);font-weight:500;letter-spacing:var(--tracking-snug);color:var(--ink);padding:2px 5px 2px 7px;border-radius:4px;background:var(--surface);border:1px solid var(--border);position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:.1s background,.1s transform}.cal-event:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--alert)}.cal-event.t-sick:before{background:var(--secondary)}.cal-event.t-unpaid:before{background:var(--ink-mute)}.cal-event.pending{border-style:dashed;opacity:var(--opacity-muted)}.cal-event:hover{background:var(--surface-2);transform:translateY(-.5px)}.legend-stripe{display:inline-block;width:14px;height:3px;border-radius:2px}.legend-stripe.annual{background:var(--alert)}.legend-stripe.sick{background:var(--secondary)}.legend-stripe.unpaid{background:var(--ink-mute)}.legend-stripe.pending{background:var(--alert);opacity:var(--opacity-muted);border:1px dashed var(--alert)}.hol-list-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;background:var(--surface)}.hol-list-item .lbl{flex:1}.hol-list-item .lbl .name{font-weight:500;font-size:var(--text-base);letter-spacing:var(--tracking-snug)}.hol-list-item .lbl .meta{font-size:var(--text-xs);color:var(--ink-3);margin-top:2px;font-family:Geist Mono,monospace}.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:100px;font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-snug)}.tag.annual{background:var(--alert-soft);color:var(--alert-deep)}.tag.sick{background:var(--secondary-soft);color:var(--secondary-deep)}.tag.unpaid{background:var(--bg-tint);color:var(--ink-2)}.tag.pending{background:var(--secondary-soft);color:var(--secondary-deep);border:1px dashed var(--secondary)}.balance-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dashed var(--border)}.balance-row:last-child{border-bottom:0}.balance-row .who-mini{flex:1;display:flex;align-items:center;gap:8px}.balance-row .who-mini .name{font-size:var(--text-base);font-weight:500}.balance-row .who-mini .role{font-size:var(--text-xs);color:var(--ink-3)}.balance-row .progress{width:120px;height:6px;background:var(--bg-tint);border-radius:100px;overflow:hidden;position:relative}.balance-row .progress .fill{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--alert);border-radius:100px;transform-origin:left}.balance-row .nums{font-family:Geist Mono,monospace;font-size:var(--text-sm);width:70px;text-align:right}.balance-row .nums .used{color:var(--ink)}.balance-row .nums .total{color:var(--ink-3)}.drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a151159;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;animation:drawerFade .18s ease}@keyframes drawerFade{0%{opacity:0}}.drawer{position:absolute;top:0;right:0;bottom:0;width:460px;max-width:calc(100vw - 32px);background:var(--surface);border-left:1px solid var(--border);box-shadow:-24px 0 60px -20px #1d140d33,-8px 0 20px -12px #1d140d1a;display:flex;flex-direction:column;animation:drawerSlide .22s cubic-bezier(.22,.61,.36,1)}@keyframes drawerSlide{0%{transform:translate(20px);opacity:0}}.drawer-head{padding:18px 22px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-shrink:0}.drawer-head h2{margin:0;font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-snug);flex:1}.drawer-body{padding:18px 22px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;flex:1}.drawer-foot{padding:14px 22px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:space-between;background:var(--surface-2);flex-shrink:0}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a151166;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:grid;place-items:center;animation:fade .15s ease}@keyframes fade{0%{opacity:0}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:480px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);overflow:hidden;animation:pop .16s ease}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.modal-head{padding:18px 20px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.modal-head h2{margin:0;font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-snug);flex:1}.modal-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--ink-3);font-weight:500}.field-hint{color:var(--alert);text-transform:none;letter-spacing:var(--tracking-flat);font-weight:500}.field input,.field select,.field textarea{padding:9px 11px;border:1px solid var(--border-strong);border-radius:8px;font-size:var(--text-base);background:var(--surface);outline:none;transition:.12s border-color}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary-deep);box-shadow:0 0 0 3px var(--primary-soft)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.seg{display:flex;gap:4px;background:var(--bg-tint);padding:4px;border-radius:10px;border:1px solid var(--border)}.seg button{flex:1;border:0;background:transparent;padding:7px 8px;border-radius:7px;font-size:var(--text-sm);font-weight:500;color:var(--ink-2);cursor:pointer}.seg button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #1d140d0f}.modal-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:space-between;background:var(--surface-2)}.icon-btn{border:0;background:transparent;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;cursor:pointer;color:var(--ink-3)}.icon-btn:hover{background:var(--bg-tint);color:var(--ink)}.dot-am{background:var(--primary)}.dot-pm,.dot-night{background:var(--secondary)}.dot-hol{background:var(--alert)}.dot-sick{background:var(--secondary)}.legend{display:flex;gap:14px;font-size:var(--text-xs);color:var(--ink-2);margin-top:10px;flex-wrap:wrap}.legend .item{display:inline-flex;align-items:center;gap:5px}.empty-state{text-align:center;padding:32px 16px;color:var(--ink-3);font-size:var(--text-base)}.tweaks-card{position:fixed;bottom:16px;right:16px;width:260px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-lg);z-index:90}.tweaks-card h4{margin:0 0 10px;font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-3);font-weight:500;display:flex;justify-content:space-between}.tweaks-card .swatches{display:flex;gap:6px;margin-top:4px;margin-bottom:12px}.tweaks-card .sw{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);cursor:pointer;position:relative}.tweaks-card .sw.on{box-shadow:0 0 0 2px var(--ink)}.tweaks-card label{display:block;font-size:var(--text-xs);color:var(--ink-3);margin-bottom:4px;text-transform:uppercase;letter-spacing:var(--tracking-eyebrow)}.tweaks-card .seg button{padding:5px 6px;font-size:var(--text-xs)}@media (max-width: 760px){.topbar{padding:10px 14px;gap:10px;flex-wrap:nowrap}.brand{font-size:var(--text-md)}.brand-tag{display:none}.topbar .nav{margin-left:0;padding:2px}.topbar .nav button{padding:5px 10px;font-size:var(--text-sm)}.topbar .who span:first-child,.topbar .btn.ghost{display:none}.topbar .spacer{flex:0 0 0}.subbar{padding:10px 14px;flex-wrap:wrap;gap:10px}.subbar .spacer{flex-basis:100%;height:0}.week-nav{flex:1;min-width:0}.week-nav .week-label{font-size:var(--text-base);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-nav .week-label .sub{display:none}.month-nav{flex:1;gap:6px;justify-content:space-between}.month-title{font-size:var(--text-2xl);min-width:0;text-align:center;flex:1}.chip-toggle button{padding:5px 12px;font-size:var(--text-sm)}.subbar-primary{min-width:0;padding:8px 12px;font-size:var(--text-sm)}.subbar-primary .label-text{display:none}.week-view{padding:12px 12px 48px}.week-stats{grid-template-columns:1fr 1fr;gap:6px}.week-stats .stat-card{padding:10px 12px}.week-stats .stat-card.prime{grid-column:1 / -1}.week-stats .stat-card .val{font-size:var(--text-xl)}.week-stats .stat-card.prime .val{font-size:var(--text-md)}.people-strip{grid-template-columns:1fr 1fr;gap:6px}.person-chip{padding:6px 10px}.person-chip .name{font-size:var(--text-xs)}.person-chip .sub{font-size:var(--text-eyebrow)}.week-grid{display:flex;flex-direction:column;border:0;background:transparent;overflow:visible;gap:12px}.week-grid>.hcell.corner{display:none}.week-grid>.hcell.day{display:flex;flex-direction:row;align-items:center;justify-content:space-between;background:var(--ink);color:var(--bg);border-radius:var(--radius);border:0;padding:12px 14px;margin-top:14px;order:0}.week-grid>.hcell.day:first-of-type{margin-top:0}.week-grid>.hcell.day .dow,.week-grid>.hcell.day .dnum{color:var(--bg)}.week-grid>.hcell.day .day-line-row{width:100%}.week-grid>.hcell.day .day-line-text{flex-direction:row;gap:8px;align-items:baseline}.week-grid>.hcell.day .dow{font-size:var(--text-xs)}.week-grid>.hcell.day .dnum{font-size:var(--text-md)}.week-grid>.hcell.day.today{background:var(--brand-soft)}.week-grid>.hcell.day.today .dnum,.week-grid>.hcell.day.today .dow{color:var(--brand-deep)}.week-grid>.hcell.day .leave-mini{background:#322c28;color:var(--bg);font-size:var(--text-eyebrow)}.week-grid>.hcell.day.weekend{background:transparent}.week-grid>.pcell.period-label{display:flex;flex-direction:row;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;border-bottom:0}.week-grid>.pcell.period-label .period-name{font-size:var(--text-xl)}.week-grid>.pcell.period-label .period-time{flex-direction:row;font-size:var(--text-xs);margin-left:auto}.week-grid>.pcell.period-label .period-time .dim{font-size:var(--text-eyebrow)}.week-grid>.pcell.period-label .period-hint{display:none}.week-grid>.pcell.period-label .kind-stripe{margin-bottom:0}.week-grid>.pcell.day-period{border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius) var(--radius);background:var(--surface);padding:8px;min-height:0}.week-grid>.pcell.day-period.today{background:var(--brand-soft)}.wk-slot{padding:8px 10px;min-height:40px}.wk-slot .full-name{font-size:var(--text-base)}.add-shift-btn{min-height:36px;padding:8px 10px}.schedule.month{grid-template-columns:1fr;padding:12px}.side{position:static;order:2}.week-block{border-radius:var(--radius)}.week-head{flex-wrap:wrap;gap:6px 10px;padding:10px 12px}.week-head .week-range{font-size:var(--text-xs)}.week-head .week-meta{font-size:var(--text-xs);gap:6px}.week-head .week-meta .dim{display:inline}.day-row{grid-template-columns:1fr}.day-col{border-right:0;border-bottom:1px solid var(--border);min-height:0!important;padding:10px 12px}.day-col:last-child{border-bottom:0}.day-col.today{box-shadow:inset 3px 0 0 0 var(--primary)}.day-head{row-gap:4px}.day-head .dow{font-size:var(--text-xs)}.day-head .dnum{font-size:var(--text-lg)}.shift-group{margin-top:8px}.shift-group .group-head{padding:2px 2px 6px}.shift-group .group-label,.shift-group .group-time{font-size:var(--text-xs)}.slot-mini{min-height:32px;padding:5px 8px}.slot-mini .name{font-size:var(--text-sm)}.holidays{grid-template-columns:1fr;padding:12px;gap:12px}.hol-cal{padding:12px}.cal-grid{gap:3px}.cal-day{min-height:64px;padding:4px;gap:2px}.cal-day .n{font-size:var(--text-xs)}.cal-event{font-size:var(--text-eyebrow);padding:1px 4px 1px 6px;border-radius:3px}.cal-event:before{width:2px}.legend{gap:10px;font-size:var(--text-eyebrow)}.holidays-week{padding:12px;gap:10px}.hol-summary{grid-template-columns:1fr 1fr;gap:6px}.hol-summary .stat:first-child{grid-column:1 / -1}.hol-summary .stat .val{font-size:var(--text-xl)}.hol-week-strip{display:flex;flex-direction:column;border-radius:var(--radius)}.hol-day-col{border-right:0;border-bottom:1px solid var(--border);min-height:0;flex-direction:row;align-items:stretch}.hol-day-col:last-child{border-bottom:0}.hol-day-col.today{box-shadow:inset 3px 0 0 0 var(--brand)}.hol-day-head{flex-direction:column;border-bottom:0;border-right:1px solid var(--border);min-width:70px;width:70px;padding:10px 8px;justify-content:center;align-items:flex-start}.hol-day-body{flex:1;padding:8px;gap:4px}.hol-empty{margin:auto;font-size:var(--text-base)}.hol-week-side{grid-template-columns:1fr}.pay{padding:12px}.pay-summary{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.pay-summary .stat{padding:12px 14px}.pay-summary .stat .val{font-size:var(--text-2xl)}.pay-table .row{grid-template-columns:1fr;gap:6px;padding:12px 14px}.pay-table .row.head{display:none}.pay-table .row .num,.pay-table .row>div:not(.person){display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);padding:4px 0;border-top:1px dashed var(--border);color:var(--ink-2)}.pay-table .row .num:before{content:attr(data-label);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);font-weight:600;color:var(--ink-3);font-size:var(--text-eyebrow);font-family:Geist,sans-serif}.pay-table .person{padding-bottom:4px}.pay-table .pay-pill{width:100%;justify-content:center;padding:8px 12px}.pay-month-grid{display:flex;flex-direction:column;background:transparent;border:0;gap:10px}.pmg-head{display:none}.pmg-row{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.pmg-row .pmg-cell{padding:0;border:0}.pmg-row .helper-col{display:flex;align-items:center;gap:10px;border-bottom:1px dashed var(--border);padding-bottom:8px}.pmg-row .helper-col+.pmg-cell{margin-top:2px}.pmg-row .wk-col.data,.pmg-row .total-col.data{display:grid;grid-template-columns:1fr auto;align-items:center;padding:4px 0;border-bottom:1px solid var(--border)}.pmg-row .wk-col.data:last-of-type,.pmg-row .total-col.data{border-bottom:0}.pmg-row .wk-col.data:before{content:attr(data-week);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);font-weight:600;color:var(--ink-3);font-size:var(--text-eyebrow);font-family:Geist,sans-serif}.pmg-row .total-col.data:before{content:"Month total";text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);font-weight:600;color:var(--ink-2);font-size:var(--text-eyebrow)}.pmg-week-pill{flex-direction:row;gap:8px;padding:5px 12px;min-width:0}.pmg-row .wk-col.zero .off{color:var(--ink-mute);font-size:var(--text-base)}.drawer{width:100vw;max-width:100vw;border-left:0}.drawer-foot{flex-wrap:wrap;gap:6px}.drawer-foot>div{width:100%;display:flex;justify-content:flex-end;gap:6px}.modal{width:calc(100vw - 24px);border-radius:var(--radius-lg)}.modal-foot{flex-wrap:wrap;gap:6px}.modal-foot>div{width:100%;display:flex;justify-content:flex-end;gap:6px}.tweaks-card{width:calc(100vw - 24px);right:12px;bottom:12px}.inline-editor{width:calc(100vw - 24px)!important;left:12px!important;right:12px}}@media (max-width: 420px){.week-stats,.people-strip,.hol-summary,.pay-summary{grid-template-columns:1fr}.topbar .nav button{padding:4px 8px;font-size:var(--text-xs)}}.bookings-empty{display:flex;flex-direction:column;align-items:center;gap:10px}.bookings-empty-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;color:var(--ink-3);margin-bottom:2px}.bookings-empty-icon.brand-soft{background:var(--brand-soft);color:var(--brand-deep)}.bookings-empty-icon.bg-tint{background:var(--bg-tint);color:var(--ink-3)}.bookings-empty-headline{font-size:var(--text-lg);font-weight:var(--weight-strong);letter-spacing:var(--tracking-snug);color:var(--ink)}.bookings-empty-msg{margin:0;max-width:380px;font-size:var(--text-sm);line-height:1.5;color:var(--ink-3)}.bookings-empty-action{margin-top:4px;padding:6px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:.1s background,.1s border-color,.1s color}.bookings-empty-action:hover{background:var(--bg-tint);border-color:var(--brand);color:var(--brand-deep)}.bookings-error{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 20px;text-align:center;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg)}.bookings-error-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--alert-soft);color:var(--alert-deep);margin-bottom:2px}.bookings-error-headline{font-size:var(--text-lg);font-weight:var(--weight-strong);letter-spacing:var(--tracking-snug);color:var(--ink)}.bookings-error-msg{margin:0;max-width:380px;font-size:var(--text-sm);line-height:1.5;color:var(--ink-3)}.bookings-error-action{margin-top:4px;padding:6px 14px;border:1px solid var(--alert);border-radius:var(--radius-sm);background:var(--alert-soft);color:var(--alert-deep);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:.1s background,.1s border-color}.bookings-error-action:hover{background:var(--surface);border-color:var(--alert-deep)}.bookings-loading{display:flex;flex-direction:column;gap:14px}.bookings-loading-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.bookings-loading-rows{display:flex;flex-direction:column;gap:1px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.bookings-loading-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.bl-block{background:var(--bg-tint);border-radius:var(--radius-sm);animation:pulse 1.4s ease-in-out infinite}.bl-stat{height:72px}.bl-row{height:56px;border-radius:0}.bl-cell{height:96px}.bl-chart{height:300px;border-radius:var(--radius-lg)}.page-main{max-width:1200px;margin:0 auto;padding:24px 28px 48px;display:flex;flex-direction:column;gap:18px}.bt-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px 0}.bt-footer-count{font-size:var(--text-sm);color:var(--ink-mute)}.bt-load-more{padding:6px 14px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);cursor:pointer;font-size:var(--text-sm);font-weight:500;color:var(--ink-2);transition:.1s background,.1s border-color}.bt-load-more:hover:not(:disabled){background:var(--bg-tint);border-color:var(--brand)}.bt-load-more:disabled{opacity:.6;cursor:default}.bt-footer-actions{display:flex;align-items:center;gap:12px}.bt-pagesize{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--ink-mute)}.bt-pagesize select{padding:4px 8px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--ink-2);cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
