:root{--bg-top: #f7f4ee;--bg-bottom: #ebe6dc;--ink: #1a1a18;--ink-muted: #5c5a55;--accent: #3d5a5b;--accent-soft: rgba(61, 90, 91, .12);--hairline: rgba(26, 26, 24, .12);--field: rgba(255, 255, 255, .55);--field-border: rgba(26, 26, 24, .16);--radius: 10px;--font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", serif;--font-sans: "IBM Plex Sans", "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--space: 1rem;--max: 28rem;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:var(--font-sans);font-size:1rem;line-height:1.45;color:var(--ink);background:radial-gradient(ellipse 120% 80% at 50% -10%,#fffaf3 0%,transparent 55%),linear-gradient(180deg,var(--bg-top) 0%,var(--bg-bottom) 100%);background-attachment:fixed}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E");background-size:180px 180px;mix-blend-mode:multiply;z-index:0}#app{position:relative;z-index:1;min-height:100dvh}.page{width:min(100% - 2rem,var(--max));margin:0 auto;padding:2.25rem 0 4rem}.brand{font-family:var(--font-display);font-weight:600;font-size:clamp(2.35rem,8vw,3rem);letter-spacing:-.02em;line-height:1.05;margin:0 0 .4rem}.tagline{margin:0 0 1.75rem;color:var(--ink-muted);font-size:1.02rem;max-width:22rem}.stack{display:flex;flex-direction:column;gap:1.15rem}.field{display:flex;flex-direction:column;gap:.4rem}.field>label,.field-label{font-size:.8rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;background:var(--accent-soft);border-radius:999px}.segmented button{appearance:none;border:0;background:transparent;color:var(--ink-muted);font:inherit;font-weight:500;min-height:2.75rem;border-radius:999px;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.segmented button[aria-pressed=true]{background:var(--accent);color:#f7f4ee;box-shadow:0 1px #1a1a1814}.segmented button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.time-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:start}.time-row.range{grid-template-columns:1fr 1fr auto}.time-field{display:flex;flex-direction:column;gap:.35rem;min-width:0}.time-now{margin-top:0;min-height:2.75rem;align-self:start;border-radius:var(--radius)}.time-input,.combo-input{width:100%;min-height:2.75rem;padding:.55rem .75rem;font:inherit;font-size:1.05rem;color:var(--ink);background:var(--field);border:1px solid var(--field-border);border-radius:var(--radius);transition:border-color .16s ease,box-shadow .16s ease}.time-input{font-family:var(--font-mono);letter-spacing:-.01em}.time-input:focus,.combo-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.time-input.invalid{border-color:#8a3b2b;box-shadow:0 0 0 3px #8a3b2b1f}.time-input.invalid:focus{border-color:#8a3b2b;box-shadow:0 0 0 3px #8a3b2b2e}.time-hint{margin:0;font-size:.82rem;color:var(--ink-muted)}.time-hint.error{color:#8a3b2b}.duration-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.15rem}.sets-field{gap:.5rem}.sets-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;justify-content:space-between}.sets-chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;min-height:2.25rem;flex:1 1 12rem}.sets-empty{font-size:.9rem;color:var(--ink-muted)}.sets-actions{display:flex;flex-wrap:wrap;gap:.15rem .65rem;align-items:center}.set-chip[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.text-btn{appearance:none;border:0;background:transparent;color:var(--accent);font:inherit;font-size:.9rem;font-weight:500;padding:.25rem 0;min-height:2.25rem;cursor:pointer;text-decoration:underline;text-underline-offset:.18em;text-decoration-color:transparent;transition:color .16s ease,text-decoration-color .16s ease}.text-btn:hover,.text-btn:focus-visible{text-decoration-color:currentColor;outline:none}.text-btn.muted{color:var(--ink-muted)}.text-btn.danger{color:#8a3b2b}.sets-naming{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.sets-confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem .75rem;padding:.65rem .8rem;background:#8a3b2b14;border:1px solid rgba(138,59,43,.22);border-radius:var(--radius);animation:fade-in .2s ease both}.sets-confirm-copy{margin:0;font-size:.95rem;color:var(--ink)}.sets-confirm-name{font-weight:600}.sets-confirm-actions{display:flex;gap:.65rem;align-items:center}.set-name-input{flex:1 1 10rem;min-height:2.5rem;padding:.45rem .7rem;font:inherit;font-size:.98rem;color:var(--ink);background:var(--field);border:1px solid var(--field-border);border-radius:var(--radius)}.set-name-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.chip,.city-chip{appearance:none;border:1px solid var(--field-border);background:transparent;color:var(--ink-muted);font:inherit;font-size:.9rem;min-height:2.25rem;padding:.3rem .75rem;border-radius:999px;cursor:pointer;transition:border-color .16s ease,color .16s ease,background .16s ease}.chip[aria-pressed=true],.chip:hover,.city-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.chip:focus-visible,.city-chip:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.combo{position:relative}.combo-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + .25rem);max-height:14rem;overflow:auto;margin:0;padding:.35rem;list-style:none;background:#faf7f1;border:1px solid var(--field-border);border-radius:var(--radius);box-shadow:0 10px 28px #1a1a181a}.combo-list[hidden]{display:none}.combo-option{width:100%;text-align:left;appearance:none;border:0;background:transparent;color:var(--ink);font:inherit;padding:.65rem .7rem;border-radius:8px;cursor:pointer;min-height:2.75rem}.combo-option:hover,.combo-option[aria-selected=true]{background:var(--accent-soft);color:var(--accent)}.combo-option .meta{display:block;font-size:.8rem;color:var(--ink-muted)}.targets{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;min-height:2.25rem}.city-chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--accent-soft);border-color:transparent;color:var(--accent);cursor:default}.city-chip .remove{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-size:1.1rem;line-height:1;padding:.15rem;margin:0;cursor:pointer;border-radius:4px}.add-city-btn{appearance:none;border:1px dashed var(--field-border);background:transparent;color:var(--ink-muted);font:inherit;font-size:.9rem;min-height:2.25rem;padding:.3rem .75rem;border-radius:999px;cursor:pointer}.add-city-btn:hover,.add-city-btn:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.hint,.error{margin:0;font-size:.92rem;color:var(--ink-muted)}.error{color:#8a3b2b}.divider{height:1px;background:var(--hairline);border:0;margin:.35rem 0 .15rem}.results{display:flex;flex-direction:column;gap:1.25rem;margin-top:.25rem}.result{animation:fade-in .28s ease both}.result-city{font-weight:600;font-size:1.05rem;margin:0 0 .35rem}.result-lines{display:flex;flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none}.result-line{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-family:var(--font-mono);font-size:.98rem;letter-spacing:-.01em}.result-line .kind{font-family:var(--font-sans);font-size:.85rem;color:var(--ink-muted);flex-shrink:0}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(min-width:640px){.page{padding-top:3.5rem}}
