:root{--sf-bg:#f9f7f2;--sf-surface:#fdfcf9;--sf-ink:#201c18;--sf-muted:#665c55;--sf-accent:#f5b02e;--sf-radius:12px;--sf-font-display:ui-sans-serif, system-ui, sans-serif;--sf-font-body:ui-sans-serif, system-ui, sans-serif;--sf-font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}.sf{--sf-card:var(--sf-surface);--sf-on-ink:var(--sf-card);--sf-on-accent:#201c18;--sf-chip-radius:max(2px, calc(var(--sf-radius) * .6));--sf-line:#80808061;--sf-success:#2f9e68;--sf-error:#e0483d;--sf-slot-range-bg:#8080802e;--sf-slot-range-line:#80808070;--sf-slot-taken-bg:#e0483d17;--sf-slot-taken-line:#e0483d4d;--sf-slot-taken-ink:#b0564d;--sf-slot-taken-strike:#e0483d8c;--sf-slot-reset-bg:#f5b02e29;--sf-slot-reset-line:#f5b02e73;--sf-slot-reset-ink:var(--sf-ink);--sf-slot-dead-ink:#808080bf;--sf-slot-dead-line:#80808033;--sf-gold:var(--sf-accent);--sf-on-gold:var(--sf-on-accent);background:var(--sf-bg);color:var(--sf-ink);scrollbar-color:var(--sf-muted) transparent;font-family:var(--sf-font-body), ui-sans-serif, system-ui, sans-serif}@supports (color:color-mix(in srgb, red 50%, transparent)){.sf{--sf-line:color-mix(in srgb, var(--sf-ink) 18%, transparent);--sf-success:color-mix(in oklab, #2f9e68 76%, var(--sf-ink));--sf-error:color-mix(in oklab, #e0483d 76%, var(--sf-ink));--sf-slot-range-bg:color-mix(in srgb, var(--sf-ink) 10%, transparent);--sf-slot-range-line:color-mix(in srgb, var(--sf-ink) 22%, transparent);--sf-slot-taken-bg:color-mix(in srgb, var(--sf-error) 5%, transparent);--sf-slot-taken-line:color-mix(in srgb, var(--sf-error) 16%, transparent);--sf-slot-taken-ink:color-mix(in srgb, var(--sf-error) 45%, var(--sf-muted));--sf-slot-taken-strike:color-mix(in srgb, var(--sf-error) 40%, transparent);--sf-slot-reset-bg:color-mix(in srgb, var(--sf-accent) 10%, transparent);--sf-slot-reset-line:color-mix(in srgb, var(--sf-accent) 30%, transparent);--sf-slot-reset-ink:color-mix(in srgb, var(--sf-accent) 55%, var(--sf-ink));--sf-slot-dead-ink:color-mix(in srgb, var(--sf-ink) 30%, transparent);--sf-slot-dead-line:color-mix(in srgb, var(--sf-ink) 8%, transparent)}}@supports (color:oklch(from white l c h)){.sf{--sf-on-accent:oklch(from var(--sf-accent) clamp(0, (.62 - l) * 100, 1) 0 0)}}.sf-shell{display:contents}body:has(.sf-root){background:var(--sf-bg);color:var(--sf-ink)}.sf[data-sf-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body:has(.sf-root[data-sf-mode=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.sf :focus-visible{outline:2px solid var(--sf-ink);outline-offset:2px;box-shadow:0 0 0 6px var(--sf-accent)}.sf .sf-display{font-family:var(--sf-font-display), ui-sans-serif, system-ui, sans-serif;letter-spacing:-.03em;font-weight:600}.sf .fine-print{font-family:var(--sf-font-mono);letter-spacing:.22em}.sf .mono{font-family:var(--sf-font-mono)}.sf .sf-h1{font-size:clamp(2.25rem,6vw,4.25rem);line-height:1.02}.sf .sf-h2{font-size:clamp(1.5rem,3.4vw,2.25rem);line-height:1.1}.sf .sf-h3{font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.15}.sf .glass{background:color-mix(in srgb, var(--sf-ink) 6%, transparent);border:1px solid var(--sf-line);border-radius:var(--sf-radius)}.sf .sf-card{background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--sf-radius)}.sf .photo-grade{filter:saturate(1.06)contrast(1.04)}.sf .photo-frame{overflow:hidden}.sf .photo-frame img{transition:transform var(--dur-slow) var(--ease-standard)}@media (prefers-reduced-motion:no-preference){.sf a:hover .photo-frame img{transform:scale(1.035)}}.sf .chan-field{background:radial-gradient(130% 110% at 18% 0%, transparent 40%, #16110d52 100%), linear-gradient(155deg, var(--ch,#2aa6a0), color-mix(in srgb, var(--ch,#2aa6a0) 74%, #16110d));color:#fff8ee;position:relative}.sf .chan-field .chan-numeral{font-family:var(--sf-font-display), ui-sans-serif, sans-serif;letter-spacing:-.04em;opacity:.92;font-weight:700;line-height:.85}.sf .chan-field .chan-rule{background:#fff8eea6;width:2rem;height:2px}.sf .chan-badge{font-family:var(--sf-font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-micro);letter-spacing:.08em;border-radius:var(--sf-chip-radius);background:var(--ch,#2aa6a0);min-width:1.7rem;height:1.7rem;color:var(--ch-on,#fff8ee);justify-content:center;align-items:center;padding:0 .35rem;font-weight:600;display:inline-flex}.sf .chan-rail{border-left:3px solid var(--ch,var(--sf-line))}.sf .rail-stack{gap:4px;display:flex}.sf .rail-stack span{border-radius:1.5px;width:1.15rem;height:5px;display:block}.sf .sf-btn{border-radius:var(--sf-radius);min-height:44px;font-size:var(--text-sm);line-height:var(--text-sm--line-height);background:var(--sf-ink);color:var(--sf-on-ink);border:1px solid var(--sf-ink);cursor:pointer;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-weight:500;display:inline-flex}.sf .sf-btn:hover:not(:disabled){opacity:.88}.sf .sf-btn:disabled{opacity:.45;cursor:not-allowed}.sf .sf-btn-ghost{border-radius:var(--sf-radius);min-height:44px;font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--sf-ink);border:1px solid var(--sf-line);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-weight:500;display:inline-flex}.sf .sf-btn-ghost:hover:not(:disabled){border-color:var(--sf-ink)}.sf .sf-btn-ghost:disabled{opacity:.45;cursor:not-allowed}.sf .sf-btn-sm{min-height:44px;font-size:var(--text-caption);line-height:var(--text-caption--line-height);gap:.375rem;padding:.375rem 1rem}.sf .sf-input{border-radius:var(--sf-radius);border:1px solid var(--sf-line);background:var(--sf-card);width:100%;font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--sf-ink);padding:.55rem .8rem}.sf .sf-input::placeholder{color:var(--sf-muted);opacity:.7}.sf .gear-chip{font-family:var(--sf-font-mono);font-size:var(--text-micro);line-height:var(--text-micro--line-height);letter-spacing:.02em;border:1px solid var(--sf-line);border-radius:var(--sf-chip-radius);color:var(--sf-muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;padding:.14rem .42rem;overflow:hidden}.sf .hour-tag{width:1.6rem;font-family:var(--sf-font-mono);font-size:var(--text-micro);line-height:var(--text-micro--line-height);font-variant-numeric:tabular-nums;color:var(--sf-muted);opacity:.75;flex:none}.sf .status-chip{font-size:var(--text-caption);line-height:var(--text-caption--line-height);border:1px solid var(--sf-line);background:var(--sf-card);color:var(--sf-muted);border-radius:9999px;align-items:center;gap:.4rem;padding:.15rem .65rem;font-weight:500;display:inline-flex}.sf .status-chip .dot{background:var(--sf-line);border-radius:9999px;flex:none;width:7px;height:7px}.sf .status-chip.is-pending .dot{background:var(--sf-accent)}.sf .status-chip.is-pending{color:var(--sf-ink)}.sf .status-chip.is-confirmed .dot{background:var(--sf-success)}.sf .status-chip.is-confirmed{color:var(--sf-ink)}.sf .status-chip.is-error .dot{background:var(--sf-error)}@media (prefers-reduced-motion:no-preference){.sf .sf-rise{opacity:0;animation:sf-rise var(--dur-slow) var(--ease-entrance) forwards;animation-delay:calc(var(--rise-i,0) * 60ms);transform:translateY(10px)}@keyframes sf-rise{to{opacity:1;transform:none}}}.sf .hairline{border-color:var(--sf-line)}.sf .sf-cal-nav{border-radius:var(--sf-chip-radius);border:1px solid color-mix(in srgb, var(--sf-ink) 14%, transparent);min-width:44px;min-height:44px;color:var(--sf-ink);transition:background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);justify-content:center;align-items:center;font-size:1.15rem;line-height:1;display:inline-flex}.sf .sf-cal-nav:hover:not(:disabled){background:color-mix(in srgb, var(--sf-ink) 6%, transparent);border-color:color-mix(in srgb, var(--sf-ink) 25%, transparent)}.sf .sf-cal-nav:disabled{opacity:.35;cursor:not-allowed}.sf .sf-cal-day{aspect-ratio:1;border-radius:var(--sf-chip-radius);min-height:44px;font-size:var(--text-caption);line-height:var(--text-caption--line-height);font-variant-numeric:tabular-nums;color:var(--sf-ink);transition:background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), transform var(--dur-instant) var(--ease-standard);border:1px solid #0000;justify-content:center;align-items:center;font-weight:500;display:flex}.sf .sf-cal-day:not(:disabled):hover{background:color-mix(in srgb, var(--sf-ink) 8%, transparent)}.sf .sf-cal-day:not(:disabled):active{transform:scale(.94)}.sf .sf-cal-day:disabled{color:color-mix(in srgb, var(--sf-ink) 26%, transparent);cursor:default}.sf .sf-cal-day--today{border-color:color-mix(in srgb, var(--sf-ink) 38%, transparent);font-weight:700}.sf .sf-cal-day--full{color:color-mix(in srgb, var(--sf-ink) 34%, transparent);text-decoration:line-through;text-decoration-thickness:1px}.sf .sf-cal-day--on,.sf .sf-cal-day--on:hover{background:var(--sf-ink);color:var(--sf-on-ink);box-shadow:0 4px 14px -6px color-mix(in srgb, var(--sf-ink) 55%, transparent);font-weight:700}.sf .sf-slotgrid{grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:.5rem;display:grid}.sf .sf-slot{border-radius:var(--sf-chip-radius);height:3rem;font-size:var(--text-caption);line-height:var(--text-caption--line-height);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--sf-ink);border:1px solid var(--sf-line);background:var(--sf-card);transition:background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard), transform var(--dur-instant) var(--ease-standard);justify-content:center;align-items:center;gap:.25rem;padding-inline:.3rem;font-weight:600;display:inline-flex;position:relative}.sf .sf-slot:not([aria-disabled=true]):hover{border-color:var(--sf-ink);background:color-mix(in srgb, var(--sf-ink) 5%, var(--sf-card))}.sf .sf-slot:not([aria-disabled=true]):active{transform:scale(.96)}.sf .sf-slot--edge,.sf .sf-slot.sf-slot--edge:hover{background:var(--sf-ink);border-color:var(--sf-ink);color:var(--sf-on-ink);box-shadow:0 6px 18px -8px color-mix(in srgb, var(--sf-ink) 55%, transparent)}.sf .sf-sync{font-size:var(--text-micro);line-height:var(--text-micro--line-height);letter-spacing:.02em;color:var(--sf-muted);align-items:center;gap:.4rem;display:inline-flex}.sf .sf-sync--err{color:var(--sf-error);cursor:pointer}.sf .sf-sync__live{background:var(--sf-success);width:7px;height:7px;animation:sf-ping 1.8s var(--ease-standard) infinite;border-radius:9999px}@keyframes sf-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--sf-success) 55%, transparent)}70%,to{box-shadow:0 0 0 6px #0000}}.sf .sf-sync__spin{border:1.5px solid color-mix(in srgb, var(--sf-ink) 22%, transparent);border-top-color:var(--sf-ink);border-radius:9999px;width:11px;height:11px;animation:.7s linear infinite sf-spin}@keyframes sf-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.sf .sf-sync__live{animation:none}.sf .sf-sync__spin{animation-duration:1.4s}}.sf .sf-activity-chip{border:1px solid var(--sf-line);min-height:44px;font-size:var(--text-caption);line-height:var(--text-caption--line-height);color:var(--sf-muted);background:var(--sf-card);transition:background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);border-radius:9999px;justify-content:center;align-items:center;padding:.4rem .9rem;display:inline-flex}.sf .sf-activity-chip:hover{border-color:var(--sf-ink);color:var(--sf-ink)}.sf .sf-activity-chip--on,.sf .sf-activity-chip--on:hover{background:var(--sf-ink);border-color:var(--sf-ink);color:var(--sf-on-ink)}.sf .sf-daypart{font-size:var(--text-micro);line-height:var(--text-micro--line-height);letter-spacing:.14em;text-transform:uppercase;color:var(--sf-muted);align-items:baseline;gap:.6rem;margin-top:.9rem;font-weight:600;display:flex}.sf .sf-daypart:first-child{margin-top:0}.sf .sf-daychip{border-radius:var(--sf-chip-radius);border:1px solid color-mix(in srgb, var(--sf-ink) 16%, transparent);background:color-mix(in srgb, var(--sf-ink) 4%, transparent);min-width:3.1rem;min-height:44px;color:var(--sf-ink);font-size:var(--text-caption);line-height:var(--text-caption--line-height);transition:background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);flex-direction:column;justify-content:center;align-items:center;gap:.05rem;padding:.4rem .55rem;font-weight:600;display:inline-flex}.sf .sf-daychip small{font-size:var(--text-micro);line-height:var(--text-micro--line-height);letter-spacing:.08em;text-transform:uppercase;color:var(--sf-muted);font-weight:500}.sf .sf-daychip:hover{border-color:color-mix(in srgb, var(--sf-ink) 30%, transparent)}.sf .sf-daychip[aria-pressed=true]{background:var(--sf-accent);border-color:var(--sf-accent);color:var(--sf-on-accent)}.sf .sf-daychip[aria-pressed=true] small{color:color-mix(in srgb, var(--sf-on-accent) 70%, transparent)}[data-sonner-toast].sf-toast{font-family:var(--sf-font-body), ui-sans-serif, system-ui, sans-serif;border-radius:var(--sf-radius)}[data-sonner-toast].sf-toast [data-description]{color:var(--sf-muted)}[data-sonner-toast].sf-toast [data-icon]{border-radius:var(--sf-chip-radius);background:color-mix(in oklab, var(--sf-muted) 12%, transparent);color:var(--sf-muted)}[data-sonner-toast].sf-toast [data-button]{border-radius:var(--sf-chip-radius)}[data-sonner-toast].sf-toast[data-type=success]{border-left:3px solid var(--sf-success)}[data-sonner-toast].sf-toast[data-type=success] [data-icon]{background:color-mix(in oklab, var(--sf-success) 15%, transparent);color:var(--sf-success)}[data-sonner-toast].sf-toast[data-type=error]{border-left:3px solid var(--sf-error)}[data-sonner-toast].sf-toast[data-type=error] [data-icon]{background:color-mix(in oklab, var(--sf-error) 15%, transparent);color:var(--sf-error)}[data-sonner-toast].sf-toast[data-type=warning]{border-left:3px solid var(--sf-accent)}[data-sonner-toast].sf-toast[data-type=warning] [data-icon]{background:color-mix(in oklab, var(--sf-accent) 17%, transparent);color:var(--sf-accent)}[data-sonner-toast].sf-toast[data-type=info]{border-left:3px solid var(--sf-line)}@media (prefers-reduced-motion:reduce){.sf .sf-cal-day:not(:disabled):active,.sf .sf-slot:not([aria-disabled=true]):active,.sf a:hover .photo-frame img{transform:none}}
