:root{--paper: #f6efd6;--ink: #1c3022;--accent: #9dbf72;--muted: rgba(28, 48, 34, .55);--rule: rgba(28, 48, 34, .9);--hairline: rgba(28, 48, 34, .18);--font-stack: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif}:root{--bg: var(--paper);--fg: var(--ink);--panel: transparent;--display: 800 clamp(2.6rem, 13vw, 4rem) / .92 var(--font-stack);--gutter: clamp(1.25rem, 6vw, 2rem)}[data-theme=dark]{--bg: var(--ink);--fg: var(--paper);--muted: rgba(246, 239, 214, .55);--rule: rgba(246, 239, 214, .9);--hairline: rgba(246, 239, 214, .2)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-stack);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}.screen{min-height:100%;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--fg);padding:max(1rem,env(safe-area-inset-top)) var(--gutter) max(1rem,env(safe-area-inset-bottom));transition:background .2s ease,color .2s ease}.screen__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:.75rem;border-bottom:2px solid var(--rule)}.screen__body{flex:1;display:flex;flex-direction:column;padding:clamp(1.5rem,8vw,3rem) 0;min-height:0}.screen__foot{padding-top:.75rem;border-top:2px solid var(--rule);display:flex;flex-direction:column;gap:.75rem}.spacer{flex:1;min-height:1rem}.label{font-size:.6875rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0}.label--strong{color:var(--fg)}.display{font:var(--display);letter-spacing:-.02em;text-transform:uppercase;margin:0 0 1.25rem;overflow-wrap:break-word}.display--sm{font-size:clamp(2rem,9vw,2.75rem)}.body{font-size:1.0625rem;line-height:1.55;margin:0 0 1rem}.body--lead{font-size:1.125rem}.rule{border:0;border-top:2px solid var(--rule);margin:1.25rem 0}.hairline{border:0;border-top:1px solid var(--hairline);margin:0}.arrow{font-size:clamp(2.5rem,12vw,3.5rem);line-height:1;color:var(--accent);margin-bottom:1.5rem}.button{appearance:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:1.15rem 1.25rem;border:2px solid var(--fg);background:var(--fg);color:var(--bg);font-family:inherit;font-size:.9375rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;text-decoration:none;min-height:3.5rem;-webkit-tap-highlight-color:transparent}.button:disabled{opacity:.4;cursor:not-allowed}.button--ghost{background:transparent;color:var(--fg)}.button--quiet{border-color:transparent;background:transparent;color:var(--muted);justify-content:center;letter-spacing:.12em;min-height:2.75rem;padding:.5rem}.field{display:block;margin-bottom:1.25rem}.field__label{display:block;font-size:.6875rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}.field__input{width:100%;padding:.6rem 0;border:0;border-bottom:2px solid var(--hairline);background:transparent;color:var(--fg);font-family:inherit;font-size:1.25rem;font-weight:700;border-radius:0}.field__input:focus{outline:none;border-bottom-color:var(--fg)}.field__input--code{font-size:1.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.field__hint{font-size:.8125rem;color:var(--muted);margin-top:.4rem}.notice{padding:.9rem 1rem;border:2px solid var(--fg);font-size:.9375rem;line-height:1.45;margin-bottom:1rem}.notice--error{border-color:#a4342a;color:#a4342a}[data-theme=dark] .notice--error{border-color:#e8907f;color:#e8907f}.notice--good{border-color:var(--accent)}.banner{position:sticky;top:0;z-index:10;background:var(--accent);color:var(--ink);padding:.5rem var(--gutter);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-align:center}.steps{list-style:none;margin:0;padding:0}.steps__item{display:grid;grid-template-columns:2.25rem 1fr;gap:.75rem;padding:.85rem 0;border-bottom:1px solid var(--hairline);align-items:baseline}.steps__num{font-size:.9375rem;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}.steps__text{font-size:1rem;line-height:1.45}.progress{display:flex;gap:.35rem;margin:1rem 0}.progress__pip{flex:1;height:.4rem;background:var(--hairline)}.progress__pip--done{background:var(--accent)}.progress__pip--current{background:var(--fg)}.admin{padding:1.5rem clamp(1rem,4vw,2.5rem);max-width:1400px;margin:0 auto}.table-wrap{overflow-x:auto;border:2px solid var(--rule)}.table{width:100%;border-collapse:collapse;font-size:.875rem;min-width:900px}.table th,.table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--hairline);white-space:nowrap}.table th{font-size:.625rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:#1c30220d;position:sticky;top:0}.table tbody tr:hover{background:#1c30220a}.tag{display:inline-block;padding:.15rem .45rem;font-size:.625rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border:1px solid currentColor}.tag--warn{color:#a4342a}.tag--accent{color:#4a6b2f}.dot-row{display:flex;gap:.25rem}.dot{width:1.5rem;height:1.5rem;display:grid;place-items:center;border:1px solid var(--hairline);font-size:.625rem;font-weight:700;cursor:pointer;background:transparent;color:var(--muted);font-family:inherit;padding:0}.dot--done{background:var(--accent);border-color:var(--accent);color:var(--ink)}.dot--target{border-color:var(--ink);border-width:2px;color:var(--ink)}.admin__bar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1.25rem}.admin__bar .button{width:auto;min-height:2.5rem;padding:.5rem 1rem;font-size:.75rem}.center-narrow{max-width:26rem;margin:0 auto;width:100%}.tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;border-bottom:2px solid var(--rule);margin-bottom:1.25rem}.tabs__tab{appearance:none;background:transparent;border:0;border-bottom:3px solid transparent;color:var(--muted);cursor:pointer;font-family:inherit;font-size:.6875rem;font-weight:700;letter-spacing:.16em;margin-bottom:-2px;padding:.75rem .9rem;text-transform:uppercase}.tabs__tab--on{border-bottom-color:var(--accent);color:var(--fg)}.push-right{margin-left:auto}.tabs .button,.stop-card__head .button{width:auto;min-height:2.25rem;padding:.4rem .9rem;font-size:.6875rem}.stack{display:flex;flex-direction:column;gap:1.25rem}.stack--tight{gap:.35rem}.panel{border:2px solid var(--rule);padding:1.25rem}.panel__title{font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.panel__note{color:var(--muted);font-size:.8125rem;line-height:1.5;margin:.4rem 0 1rem;max-width:60ch}.form-grid{display:grid;gap:0 1.5rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.field--compact{margin-bottom:1rem}.field--wide{grid-column:1 / -1}.field--toggle{align-items:start;display:flex;gap:.6rem}.field--toggle input{margin-top:.2rem;width:1.1rem;height:1.1rem;accent-color:var(--accent);flex:none}.field__input--compact{font-size:1rem;font-weight:500;padding:.4rem 0}.field__input--mono{font-family:ui-monospace,Menlo,monospace;letter-spacing:.02em}.field__input--area{border:2px solid var(--hairline);line-height:1.45;padding:.5rem .6rem;resize:vertical}.field__input:disabled{color:var(--muted);cursor:not-allowed}select.field__input{appearance:none;background:transparent;border-radius:0}.stop-card{border:1px solid var(--hairline);padding:1rem}.stop-card__head{align-items:center;border-bottom:1px solid var(--hairline);display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;padding-bottom:.6rem}.stop-card__code{font-weight:700;letter-spacing:.08em}.stop-card__id{color:var(--muted);font-size:.75rem}.button--danger{color:#a4342a}.print-row{align-items:center;border:1px solid var(--hairline);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:.9rem 1rem}.print-row__title{font-size:.9375rem;font-weight:700}.print-row .button{width:auto;min-height:2.5rem;padding:.5rem 1.25rem;font-size:.75rem}.base-url{border-left:4px solid var(--accent);font-family:ui-monospace,Menlo,monospace;font-size:1.0625rem;font-weight:700;margin-bottom:.75rem;overflow-wrap:anywhere;padding:.5rem 0 .5rem .75rem}.panel .field__hint code{font-family:ui-monospace,Menlo,monospace;font-size:.9em}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
