:root{--ps-blue:#0a46a2;--ps-blue-deep:#062a64;--ps-blue-tint:#d9e9ff;--ps-amber:#ea9602;--ps-amber-tint:#ffebd2;--ps-amber-text:#643400;--ps-font:"Instrument Sans", Helvetica, Arial, sans-serif;--ps-mono:"IBM Plex Mono", ui-monospace, monospace;--radius-button:9px;--radius-card:14px;--ink:#111b2b;--ink-soft:#4f5661;--line:#dadee5;--surface:#fff;--bg:#f4f7fc;--accent:var(--ps-blue);--wait:#b8541c;--walk:#3c7a5a;--bad:#b3261e;--ll:#6b3fa0;--dining:#b8860c;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ink:#eef2f8;--ink-soft:#a7b0bd;--line:#2b3644;--surface:#182029;--bg:#0c141f;--accent:#7fb0f5;--wait:#e2a06a;--walk:#7fc4a0;--bad:#f28b82;--ll:#c0a5ec;--dining:#e0c05a}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--ps-font);margin:0}.app{max-width:1240px;margin:0 auto;padding:24px 20px 64px}.app--wide{max-width:none}.logo{align-items:center;display:inline-flex}.logo__word{font-family:var(--ps-font);letter-spacing:-.032em;color:var(--ps-blue)}.logo__word--park{font-weight:400}.logo__word--steps{font-weight:600}.logo--fluid{gap:.412em}.logo--fluid svg{width:1.294em;height:1.294em}.logo--fluid .logo__word{font-size:1em}.brand-link{border-radius:6px;text-decoration:none;display:inline-flex}.brand-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app__sub{color:var(--ink-soft);margin:2px 0 16px}.muted{color:var(--ink-soft);font-weight:400}.hint{color:var(--ink-soft);margin:8px 0 0;font-size:13px}.hint.empty{border:1px dashed var(--line);border-radius:var(--radius);padding:24px}.bad{color:var(--bad)}code{font-family:var(--ps-mono);font-size:.92em}.setup{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width<=900px){.columns{grid-template-columns:1fr}}.column{flex-direction:column;gap:16px;min-width:0;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:16px}.panel__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.panel__head h2{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0;font-size:15px}.panel__actions{align-items:center;gap:10px;display:flex}.count{color:var(--ink-soft);font-size:13px}.grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.grid .field--wide{grid-column:span 2}.time-range,.date-range{gap:10px;display:flex}.time-range label,.date-range label{flex:1}label{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:13px;display:flex}label em{cursor:help;border-bottom:1px dotted;font-style:normal}input,select,button{font:inherit;color:inherit}input[type=time],input[type=number],select{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;padding:6px 8px}.time-picker{display:inline-block;position:relative}.time-picker__trigger{border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;display:inline-flex}.time-picker__trigger:hover{border-color:var(--accent)}.time-picker__value{font-variant-numeric:tabular-nums}.time-picker__icon{opacity:.7;font-size:12px}.time-picker__popup{z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:4px;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0000002e}.time-picker__popup select{text-align:center;padding:6px 4px}.time-picker__popup select:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#f6f9fc;border-radius:var(--radius-button);cursor:pointer;border:none;padding:13px 18px;font-weight:600}button.primary:hover:not(:disabled){background:color-mix(in srgb, #000 15%, var(--accent))}button.primary:disabled{opacity:.5;cursor:not-allowed}.cta{border-radius:var(--radius-button);background:var(--accent);color:#f6f9fc;border:1px solid #0000;padding:13px 22px;font-weight:600;text-decoration:none;display:inline-block}.cta:hover{background:color-mix(in srgb, #000 15%, var(--accent))}.cta--small{padding:7px 15px;font-size:14px}.cta--ghost{color:var(--accent);border-color:var(--line);background:0 0}.cta--ghost:hover{border-color:var(--accent);background:0 0}.btn{border:1px solid var(--line);border-radius:var(--radius-button);background:var(--bg);color:var(--ink);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;line-height:1.4;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--accent{background:var(--accent);border-color:var(--accent);color:#f6f9fc}.btn--accent:hover:not(:disabled){background:color-mix(in srgb, #000 15%, var(--accent));color:#f6f9fc;border-color:#0000}.btn--danger{color:var(--bad)}.btn--danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad);background:color-mix(in srgb, var(--bad) 8%, var(--bg))}.btn--sm{padding:4px 9px;font-size:12px}button.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}button.link:disabled{opacity:.4;cursor:not-allowed}.solve-bar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:16px;padding:14px 16px;display:flex}.solve-bar .hint{flex:1;margin:0}.split-button{align-items:stretch;display:inline-flex;position:relative}.split-button__main,.split-button__toggle{background:var(--accent);color:#fff;cursor:pointer;border:none;font-weight:600}.split-button__main{white-space:nowrap;border-radius:8px 0 0 8px;padding:8px 16px}.split-button--solo .split-button__main{border-radius:8px}.split-button__budget{opacity:.85;font-weight:400}.split-button__toggle{border-left:1px solid color-mix(in srgb, #000 20%, var(--accent));border-radius:0 8px 8px 0;padding:8px 10px;font-size:11px;line-height:1}.split-button__main:disabled,.split-button__toggle:disabled{opacity:.5;cursor:not-allowed}.split-button__main:hover:not(:disabled),.split-button__toggle:hover:not(:disabled){background:color-mix(in srgb, #000 8%, var(--accent))}.split-button__menu{z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:260px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000002e}.split-button__item{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 9px;display:flex}.split-button__item:hover{background:var(--bg)}.split-button__item.is-selected{background:color-mix(in srgb, var(--accent) 10%, transparent)}.split-button__item-label{font-size:13.5px;font-weight:600}.split-button__item.is-selected .split-button__item-label{color:var(--accent)}.split-button__item-label:before{content:""}.split-button__item.is-selected .split-button__item-label:before{content:"✓ "}.split-button__item-desc{color:var(--ink-soft);font-size:11.5px}@media (width<=700px){.solve-bar{flex-direction:column;align-items:stretch}}.zones{flex-direction:column;gap:12px;max-height:60vh;display:flex;overflow-y:auto}.zone{border:1px solid var(--line);border-radius:8px;margin:0;padding:8px 10px 10px}.zone legend{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:0 4px;font-size:12px}.step{color:var(--ink);border-radius:4px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:3px 2px;font-size:14px;display:grid}.step:hover{background:var(--bg)}.step--in .step__name{font-weight:600}.counter{align-items:center;gap:1px;display:inline-flex}.counter button{border:1px solid var(--line);background:var(--bg);width:20px;height:20px;color:var(--ink-soft);cursor:pointer;border-radius:4px;padding:0;font-size:13px;line-height:1}.counter button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.counter button:disabled{opacity:.3;cursor:not-allowed}.counter__n{text-align:center;font-variant-numeric:tabular-nums;min-width:17px;color:var(--ink-soft);font-size:12px}.counter__n--on{color:var(--accent);font-weight:700}.counter--empty,.counter--one{min-width:58px}.counter .add{letter-spacing:.01em;width:auto;min-width:58px;height:20px;padding:0 8px;font-size:11px;font-weight:600}.counter .add--on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.counter .add--on:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 22%, transparent)}.pill--standby{opacity:.7;font-size:10px}.pill--visit{color:var(--accent);border-color:currentColor}.chip--muted{cursor:help;opacity:.75;border-style:solid}.step--dining .step__name{font-style:italic}.step__meta{color:var(--ink-soft);align-items:center;gap:6px;font-size:12px;display:flex}.pill{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:0 7px;font-size:11px;line-height:18px}.pill--wait{color:var(--wait)}.pill--ll{color:var(--ll);border-color:currentColor}.pill--bad{color:var(--bad);border-color:currentColor}.timings h3{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin:12px 0 6px;font-size:12px}.step-extra{border-left:2px solid var(--line);background:var(--bg);border-radius:0 6px 6px 0;flex-wrap:wrap;align-items:center;gap:10px;margin:2px 0 6px 26px;padding:6px 8px;display:flex}.breaks{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.breaks__head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.breaks__head h3{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin:0;font-size:12px}.break{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:5px 0;display:flex}.break:last-child{border-bottom:none}.break__label{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--ink);border-radius:6px;flex:120px;padding:5px 7px;font-size:13px}.field{flex-direction:row;align-items:center;gap:6px;font-size:12.5px}.field input[type=time],.field .time-picker__value{font-variant-numeric:tabular-nums}.field--duration input{text-align:right;font-variant-numeric:tabular-nums;width:68px}.field__suffix{color:var(--ink-soft)}.notice{border-left:3px solid var(--ll);background:color-mix(in srgb, var(--ll) 9%, transparent);color:var(--ink-soft);border-radius:0 6px 6px 0;margin:4px 0 0;padding:9px 12px;font-size:12.5px}.notice--offer{border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);margin:0 0 16px}.notice--offer p{margin:0}.notice__actions{gap:8px;margin-top:8px;display:flex}.starters,.starters__failed{margin:0 0 20px}.starters__head h2{margin:0;font-size:16px}.starters__head .hint{max-width:62ch}.starters__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px;display:grid}.starter{text-align:left;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);cursor:pointer;font:inherit;color:inherit;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.starter:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb, var(--accent) 5%, var(--surface))}.starter:disabled{opacity:.5;cursor:not-allowed}.starter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.starter__name{font-size:15px;font-weight:600}.starter__length{color:var(--accent);font-size:12px;font-weight:600}.starter__desc{color:var(--ink-soft);font-size:13px}.starter__count{color:var(--ink-soft);font-variant-numeric:tabular-nums;margin-top:4px;font-size:11px}.detail-toggle{gap:1px;margin:0 0 16px;display:inline-flex}.detail-toggle button{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);cursor:pointer;padding:4px 12px;font-size:12px}.detail-toggle button:first-child{border-radius:var(--radius-button) 0 0 var(--radius-button)}.detail-toggle button:last-child{border-radius:0 var(--radius-button) var(--radius-button) 0}.detail-toggle button.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);font-weight:600}.toggle{border-top:1px solid var(--line);cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:10px;margin-top:14px;padding-top:12px;display:grid}.toggle input{width:16px;height:16px;accent-color:var(--ll);margin-top:3px}.toggle__body strong{color:var(--ink);font-size:14px;display:block}.toggle__note{color:var(--ink-soft);margin-top:2px;font-size:12px;display:block}.toggle:has(input:checked) .toggle__body strong{color:var(--ll)}.totals{grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:8px;margin-bottom:12px;display:grid}.total{border:1px solid var(--line);text-align:center;border-radius:8px;padding:8px}.total__value{font-variant-numeric:tabular-nums;font-size:17px;font-weight:650;display:block}.total__label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-size:11px}.total--wait .total__value{color:var(--wait)}.total--walk .total__value{color:var(--walk)}.total--hold .total__value,.hold{color:var(--ll)}.warnings{border-left:3px solid var(--wait);background:color-mix(in srgb, var(--wait) 8%, transparent);border-radius:0 6px 6px 0;margin:0 0 12px;padding:10px 10px 10px 28px;font-size:13px}.plan-notes{flex-direction:column;gap:8px;margin-top:14px;display:flex}.plan-notes:empty{display:none}.plan-notes>.notice,.plan-notes>.warnings{margin:0}.timeline{margin:0;padding:0;list-style:none}.tl{border-top:1px solid var(--line);cursor:grab;border-left:3px solid #0000;border-radius:0 4px 4px 0;grid-template-columns:18px 58px 1fr auto;align-items:start;gap:8px;padding:8px 4px;display:grid}.tl:active{cursor:grabbing}.tl--dragging{opacity:.4}.tl--notable{border-left-color:var(--wait);background:color-mix(in srgb, var(--wait) 5%, transparent)}.tl--severe{border-left-color:var(--bad);background:color-mix(in srgb, var(--bad) 8%, transparent)}.tl__handle{color:var(--ink-soft);-webkit-user-select:none;user-select:none;font-size:15px;line-height:1.4}.tl__move{align-items:center;gap:6px;display:flex}.tl__arrows{flex-direction:column;gap:2px;display:flex}.tl__move button{border:1px solid var(--line);background:var(--bg);cursor:pointer;width:24px;height:20px;color:var(--ink-soft);border-radius:4px;padding:0;line-height:1}.tl__move button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.tl__move button:disabled{opacity:.3;cursor:not-allowed}.tl__pin{border:1px solid var(--line);background:var(--bg);cursor:pointer;opacity:.4;filter:grayscale();border-radius:4px;width:24px;height:24px;padding:0;font-size:12px;line-height:1;display:block}.tl__pin:hover{opacity:.7}.tl__pin--on{opacity:1;filter:none;border-color:var(--ll);background:color-mix(in srgb, var(--ll) 12%, var(--bg))}.tl__controls{flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px;display:flex}.chip{border:1px dashed var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:11.5px;display:inline-flex}button.chip:hover{border-style:solid;border-color:var(--accent);color:var(--accent)}.chip--on{border-style:solid;border-color:var(--ll);color:var(--ll);background:color-mix(in srgb, var(--ll) 8%, transparent);cursor:default}.chip--ll{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.chip__field{color:inherit;flex-direction:row;align-items:center;gap:3px;font-size:11.5px;display:inline-flex}.chip__field input[type=number]{text-align:right;font-variant-numeric:tabular-nums;width:46px;padding:1px 4px}.chip__field input[type=time]{font-variant-numeric:tabular-nums;padding:1px 4px}.chip__field .time-picker__trigger{font-variant-numeric:tabular-nums;gap:4px;padding:1px 6px}.chip__computed{color:var(--ink-soft);font-variant-numeric:tabular-nums}.walk{color:var(--ink-soft);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:999px;padding:0 6px;font-size:12.5px}.walk:hover{border-color:var(--line);color:var(--ink)}.walk--fast{color:var(--accent);border-color:currentColor;font-weight:650}.walk--relaxed{color:var(--walk);border-color:currentColor}.preferences{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;gap:8px 24px;margin-top:14px;padding-top:12px;display:grid}.preferences>.preference,.preferences>.toggle{border-top:none;margin-top:0;padding-top:0}.preference{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.preference__head{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);justify-content:space-between;align-items:baseline;gap:10px;font-size:11px;display:flex}.preference__head strong{text-transform:none;letter-spacing:0;color:var(--accent);font-size:13px}.preference input[type=range]{width:100%;accent-color:var(--accent);margin:6px 0 2px}.preference__ends{color:var(--ink-soft);justify-content:space-between;font-size:11px;display:flex}.preference .hint{margin-top:4px}.segmented{gap:4px;margin-top:6px;display:flex}.segmented button{border:1px solid var(--line);background:var(--bg);color:var(--ink-soft);cursor:pointer;text-transform:capitalize;border-radius:6px;flex:1;padding:5px 8px;font-size:12.5px}.segmented button:hover{border-color:var(--accent)}.segmented button.is-on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);font-weight:650}.cost{font-variant-numeric:tabular-nums;border:1px solid var(--line);cursor:help;border-radius:999px;padding:0 6px;font-size:11.5px}.cost--negative{color:var(--wait)}.pill--flag{text-transform:lowercase;font-size:10.5px}.pill--outsidePreferredWindow,.pill--missedReservation,.pill--outsideServiceWindow{color:var(--bad);border-color:currentColor}.pill--longQueue,.pill--longWalk{color:var(--wait)}.pill--holding{color:var(--ll)}.pill--mode{text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700}.pill--mode-check{color:var(--accent);border-color:currentColor}.panel--checking{outline:2px solid color-mix(in srgb, var(--accent) 40%, transparent);outline-offset:2px}.notice--stale{border-left-color:var(--wait);background:color-mix(in srgb, var(--wait) 9%, transparent)}.notice--building{border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.notice--severe{border-left-color:var(--bad);background:color-mix(in srgb, var(--bad) 9%, transparent);color:var(--ink)}.total--bad .total__value{color:var(--bad)}.tl__time{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:650}.tl--dining .tl__time{color:var(--walk)}.tl__title{flex-wrap:wrap;align-items:center;gap:8px;font-weight:550;display:flex}.tl__meta{color:var(--ink-soft);flex-wrap:wrap;gap:12px;margin-top:2px;font-size:12.5px;display:flex}.solve-meta{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:12px;padding-top:10px;font-size:12.5px}.problem{border:1px solid var(--bad);border-radius:var(--radius);background:color-mix(in srgb, var(--bad) 7%, var(--surface));padding:12px 16px}.problem ul{margin:6px 0 0;padding-left:20px;font-size:13.5px}.app--error{max-width:640px}.app__head--with-actions{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.login{justify-content:center;align-items:center;max-width:none;min-height:100vh;display:flex}.login__card{width:100%;max-width:340px}.login__card .app__head{text-align:center}.login__providers{flex-direction:column;align-items:center;gap:10px;margin:16px 0;display:flex}.login__google{justify-content:center;min-height:40px;display:flex}.login__button{border:1px solid var(--line);cursor:pointer;border-radius:20px;width:100%;max-width:280px;padding:10px 18px;font-weight:600}.login__button:disabled{opacity:.5;cursor:not-allowed}.login__button--apple{color:#fff;background:#000;border-color:#000}.login__button--facebook{color:#fff;background:#1877f2;border-color:#1877f2}.login__button--dev{color:var(--ink-soft);background:0 0;border-style:dashed}.home{--home-measure:940px;padding:0 20px}.home__bar{max-width:var(--home-measure);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;padding:26px 0;display:flex}.home__bar .logo--fluid{font-size:clamp(30px,5.6vw,58px)}@media (width<=560px){.home__bar{padding:18px 0}}.home__nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:16px;display:flex}.home__hero{max-width:var(--home-measure);margin:0 auto;padding:56px 0 64px}.home__eyebrow{text-transform:uppercase;letter-spacing:.09em;color:var(--ps-amber-text);margin:0 0 12px;font-size:12px;font-weight:650}@media (prefers-color-scheme:dark){.home__eyebrow{color:var(--ps-amber)}}.home__title{letter-spacing:-.03em;max-width:16ch;margin:0;font-size:clamp(32px,5.4vw,52px);line-height:1.08}.home__lede{color:var(--ink-soft);max-width:62ch;margin:18px 0 0;font-size:clamp(16px,1.6vw,19px);line-height:1.55}.home__actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.home__note{max-width:52ch}.home__section{max-width:var(--home-measure);border-top:1px solid var(--line);margin:0 auto;padding:40px 0}.home__h2{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:0 0 22px;font-size:13px;font-weight:700}.home__body{max-width:72ch;color:var(--ink-soft);margin:0;line-height:1.6}.home__body strong{color:var(--ink)}.home__steps{gap:16px;margin:0;padding:0;list-style:none;display:grid}.home__step{max-width:74ch;color:var(--ink-soft);grid-template-columns:28px 1fr;align-items:start;gap:14px;line-height:1.55;display:grid}.home__step strong{color:var(--ink)}.home__step-n{background:color-mix(in srgb, var(--accent) 12%, transparent);width:28px;height:28px;color:var(--accent);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;font-size:13px;font-weight:700;display:grid}.home__features{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.home__feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:18px}.home__feature h3{letter-spacing:-.01em;margin:0 0 8px;font-size:16px}.home__feature p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.55}.home__feature--soon{background:0 0;border-style:dashed}.home__feature--soon h3:after{content:"soon";letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;color:var(--ink-soft);border:1px solid;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.home__closer{max-width:var(--home-measure);border-top:1px solid var(--line);margin:0 auto;padding:44px 0 56px}.home__footer{max-width:var(--home-measure);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0 auto;padding:20px 0 40px;display:flex}.home__footer .hint{margin:0}.trips-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.trips-list__item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit;padding:12px 14px;text-decoration:none;display:block}.trips-list__item:hover{border-color:var(--accent)}.trips-list__name{font-weight:650}.trips-list__meta{color:var(--ink-soft);flex-wrap:wrap;gap:12px;margin-top:4px;font-size:12.5px;display:flex}.itinerary-preview{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:12px 0 0;padding:10px 12px;font-size:12.5px;list-style:none}.itinerary-preview__day{grid-template-columns:6.5em 1fr;gap:2px 10px;padding:4px 0;display:grid}.itinerary-preview__day+.itinerary-preview__day{border-top:1px solid var(--line)}.itinerary-preview__date{color:var(--ink-soft);font-variant-numeric:tabular-nums}.itinerary-preview__park{font-weight:650}.itinerary-preview__what{color:var(--ink-soft);grid-column:2}.trip-header__row{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.trip-header__name{justify-self:start;margin:0;font-size:20px}.trip-header__row>:last-child{justify-self:end}.day-rows{flex-direction:column;gap:16px;margin-top:16px;display:flex}.day-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:16px}.day-row__head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.day-row__head strong{white-space:nowrap}.day-row__label{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--ink);border-radius:6px;flex:1;padding:6px 8px}.day-row__plans{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:8px;display:grid}.day-row__actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.day-row__actions .add-plan-form{flex:100%;margin-top:0}.day-row__alternatives{border-top:1px dashed var(--line);margin-top:12px;padding-top:10px}.day-row__alternatives h4{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin:0 0 8px;font-size:11px}.add-plan-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.add-plan-form input[type=text]{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--ink);border-radius:6px;flex:180px;padding:6px 8px}.add-day-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.add-day-form .solve-bar,.add-day-form button.primary{margin:0}.plan-card{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:10px 12px}.plan-card--alt{opacity:.85;border-style:dashed}.plan-card__link{color:inherit;text-decoration:none;display:block}.plan-card__title{align-items:center;gap:6px;font-weight:600;display:flex}.plan-card__meta{color:var(--ink-soft);flex-wrap:wrap;gap:10px;margin-top:3px;font-size:12px;display:flex}.plan-card__actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.dot{background:var(--ink-soft);opacity:.5;border-radius:999px;width:8px;height:8px;display:inline-block}.dot--fresh{background:var(--walk);opacity:1}.view-toggle{border:1px solid var(--line);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.view-toggle__item{color:var(--ink-soft);border-radius:999px;padding:3px 12px;font-size:12.5px;text-decoration:none}a.view-toggle__item:hover{color:var(--accent)}.view-toggle__item.is-on{background:var(--accent);color:var(--bg)}.week{gap:16px;margin-top:16px;padding-bottom:8px;display:grid;overflow-x:auto}.week__day{flex-direction:column;gap:10px;min-width:0;display:flex}.week__day>.hint{margin-top:0}.week__day-head{flex-direction:column;gap:2px;display:flex}.week__day-head strong{font-size:14px}.week__alt-divider{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);border-top:1px dashed var(--line);margin-top:4px;padding-top:8px;font-size:11px}.week__alt{opacity:.85}.panel--week-plan{padding:12px}.week-plan__head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.week-plan__title{color:inherit;flex-direction:column;gap:2px;min-width:0;text-decoration:none;display:flex}.week-plan__title .muted{font-size:12px}.week-plan__head .split-button{flex-shrink:0}.timeline--simple .tl{padding:6px 4px}.timeline--simple .tl__title{font-size:13px}.cal-zoom{border:1px solid var(--line);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.cal-zoom__item{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:3px 10px;font-size:12px}.cal-zoom__item:hover{color:var(--accent)}.cal-zoom__item.is-on{background:var(--accent);color:var(--bg)}.cal-grid{gap:6px 12px;margin-top:16px;padding-bottom:8px;display:grid;overflow-x:auto}.cal-gutter-body{position:relative}.cal-gutter__tick{color:var(--ink-soft);white-space:nowrap;font-size:10.5px;position:absolute;right:6px;transform:translateY(-50%)}.cal-day-head{flex-direction:column;gap:4px;min-width:0;padding:0 2px 8px;display:flex}.cal-day-head__line{align-items:baseline;gap:6px;display:flex}.cal-day-head__line strong{font-size:14px}.cal-day-head__label{font-size:12px}.cal-day-head .notice{margin:0;padding:4px 8px;font-size:11px}.cal-alt-chips{flex-wrap:wrap;gap:4px;display:flex}.cal-alt-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:2px 9px;font-size:11px}.cal-alt-chip:hover{border-color:var(--accent);color:var(--accent)}.cal-alt-chip.is-selected{background:var(--accent);border-color:var(--accent);color:var(--bg)}.cal-day-body{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);position:relative;overflow:hidden}.cal-day-body__empty{margin:0;position:absolute;top:8px;left:8px;right:8px}.cal-gridline{background:var(--line);pointer-events:none;height:1px;position:absolute;left:0;right:0}.cal-plan-head{pointer-events:auto;z-index:1;justify-content:space-between;align-items:center;gap:6px;height:26px;padding:0 4px;display:flex;position:absolute}.cal-plan-head--checking{opacity:.7}.cal-plan-head__title{min-width:0;color:inherit;align-items:baseline;gap:6px;font-size:12px;text-decoration:none;display:flex}.cal-plan-head__title strong{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.cal-plan-head__title .muted{white-space:nowrap;font-size:10.5px}.cal-plan-head .split-button{transform-origin:100%;flex-shrink:0;transform:scale(.85)}.cal-plan-error{z-index:2;padding:0 4px;position:absolute}.cal-plan-error .notice{margin:0;padding:4px 8px;font-size:11px}.cal-plan-layer{pointer-events:none;position:absolute}.cal-plan-layer--active-drag{pointer-events:auto}.cal-block{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface);cursor:grab;pointer-events:auto;border-radius:5px;flex-direction:column;display:flex;position:absolute;left:2px;right:2px;overflow:hidden}.cal-block:active{cursor:grabbing}.cal-block:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cal-block--dining{border-left-color:var(--dining)}.cal-block--break{border-left-color:var(--ink-soft)}.cal-block--dragging{opacity:.4}.cal-block--pinned{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--ll) 50%, transparent)}.cal-band{flex-shrink:0}.cal-band--wait{background:color-mix(in srgb, var(--wait) 45%, var(--surface))}.cal-band--hold{background:color-mix(in srgb, var(--ll) 40%, var(--surface))}.cal-band--doing{background:color-mix(in srgb, var(--accent) 22%, var(--surface))}.cal-block--dining .cal-band--doing{background:color-mix(in srgb, var(--dining) 24%, var(--surface))}.cal-block--break .cal-band--doing{background:color-mix(in srgb, var(--ink-soft) 18%, var(--surface))}.cal-block__label{pointer-events:none;flex-direction:column;justify-content:center;padding:1px 5px;display:flex;position:absolute;inset:0;overflow:hidden}.cal-block__name{white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:600;overflow:hidden}.cal-block--compact .cal-block__name{font-size:10.5px}.cal-block__time{color:var(--ink-soft);font-size:10px}.cal-block__pin{cursor:pointer;pointer-events:auto;background:0 0;border:none;padding:1px;font-size:10px;line-height:1;position:absolute;top:1px;right:1px}.cal-ghost{border-top:2px dashed var(--accent);pointer-events:none;position:absolute;left:0;right:0}.cal-ghost__time{background:var(--accent);color:var(--bg);border-radius:999px;padding:1px 5px;font-size:10px;position:absolute;top:-9px;left:4px}.admin-bar{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;padding:10px 14px;display:flex}.admin-bar__state,.admin-bar__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-park-switch{font:inherit;border:1px solid var(--line);border-radius:var(--radius-button);background:var(--surface);color:var(--ink);padding:5px 8px;font-size:13px}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:6px 8px;font-size:11px;font-weight:600}.admin-table td{border-bottom:1px solid color-mix(in srgb, var(--line) 55%, transparent);vertical-align:middle;padding:4px 8px}.admin-table__num{text-align:right;font-variant-numeric:tabular-nums}.admin-table input[type=text]{width:100%;min-width:140px}.admin-table__minutes{text-align:right;font-variant-numeric:tabular-nums;width:68px}.admin-matrix{margin-top:12px;overflow-x:auto}.admin-matrix .admin-table{width:auto;font-size:11px}.admin-matrix td,.admin-matrix th{padding:2px 6px}.admin-fields{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.admin-field{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.admin-field input[type=checkbox]{align-self:flex-start;width:18px;height:18px}.admin-log{margin:4px 0 12px;padding:0;font-size:13px;list-style:none}.admin-log li{border-bottom:1px solid color-mix(in srgb, var(--line) 55%, transparent);flex-wrap:wrap;align-items:center;gap:8px;padding:5px 0;display:flex}.curve__svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto}.curve__grid{stroke:var(--line);stroke-width:1px}.curve__axis{fill:var(--ink-soft);font-size:10px}.curve__ghost{fill:none;stroke:var(--wait);stroke-width:1.5px;stroke-dasharray:3 3;opacity:.55}.curve__line{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round}.curve__handle{fill:var(--surface);stroke:var(--accent);stroke-width:2.5px;cursor:grab}.curve__handle:hover{fill:color-mix(in srgb, var(--accent) 25%, var(--surface))}.curve__handle--locked{cursor:not-allowed;opacity:.5}.starter-card{flex-direction:column;gap:6px;display:flex}.starter-card .starter{flex:1}.starter-card__delete{align-self:flex-start}.starters__group{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:16px 0 0;font-size:11px}.starter-form{border:1px dashed var(--accent);border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 4%, transparent);flex-direction:column;gap:12px;margin-bottom:16px;padding:14px;display:flex}.starter-form__steps{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;max-height:340px;padding-right:4px;display:grid;overflow-y:auto}.starter-form__step{color:var(--ink);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:2px 0;font-size:13px;display:grid}.starter-form__step input[type=checkbox]{width:16px;height:16px}.starter-form__step .muted{white-space:nowrap;font-size:11px}.plan-card[draggable=true]{cursor:grab}.plan-card--dragging{opacity:.45}.day-row--target{outline:1px dashed color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:3px}.day-row--over{outline:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 6%, transparent)}
