:root{--color-background:#faf9f7;--color-surface:#fff;--color-foreground:#1c1b1a;--color-muted:#5b5854;--color-border:#e2ddd5;--color-accent:#3f6659;--color-accent-contrast:#fff;--color-accent-soft:#e4ede9;--color-danger-text:#6b4a1c;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius:10px}@media (prefers-color-scheme:dark){:root{--color-background:#161513;--color-surface:#201f1c;--color-foreground:#edece9;--color-muted:#a7a39c;--color-border:#35322c;--color-accent:#7fb3a1;--color-accent-contrast:#10201b;--color-accent-soft:#223530;--color-danger-text:#d8b487}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans);line-height:1.5}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}main{max-width:720px;margin:0 auto;padding:2.5rem 1.25rem 4rem}main>p{color:var(--color-muted)}a{color:var(--color-accent)}h1,h2,h3{line-height:1.25}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-nav{border-bottom:1px solid var(--color-border);background:var(--color-surface);z-index:10;flex-wrap:wrap;align-items:center;gap:.25rem;padding:.75rem 1.25rem;display:flex;position:sticky;top:0}.app-nav-brand{margin-right:.5rem;font-weight:600}.app-nav a,.app-nav button{border-radius:var(--radius);min-height:44px;color:var(--color-foreground);align-items:center;padding:0 .85rem;font-size:.95rem;text-decoration:none;display:inline-flex}.app-nav a:hover,.app-nav button:hover{background:var(--color-accent-soft)}.app-nav a[aria-current=page]{background:var(--color-accent-soft);font-weight:600}.app-nav .spacer,.app-main{flex:1}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1.25rem;padding:1.25rem}.card h2,.card h3{margin-top:0}.field{flex-direction:column;gap:.35rem;margin-bottom:.9rem;display:flex}.field label{font-size:.9rem;font-weight:600}.field .hint{color:var(--color-muted);font-size:.85rem}input[type=text],input[type=email],input[type=number],input[type=time],input[type=url],select,textarea{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:44px;color:var(--color-foreground);padding:.4rem .6rem;font-family:inherit;font-size:1rem}input[type=checkbox]{width:20px;height:20px}button,.btn{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:44px;color:var(--color-foreground);cursor:pointer;padding:0 1rem;font-size:.95rem}button:hover,.btn:hover{background:var(--color-accent-soft)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--color-accent);color:var(--color-accent-contrast);border-color:var(--color-accent)}button.primary:hover{opacity:.9}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.problem-list{border:1px solid var(--color-border);background:var(--color-accent-soft);border-radius:var(--radius);margin-bottom:1rem;padding:.75rem 1rem}.problem-list ul{margin:.25rem 0 0;padding-left:1.25rem}.icon-list{margin:.25rem 0 1rem;padding-left:0;list-style:none}.icon-list li{padding:.125rem 0}.day-row{flex-wrap:wrap;gap:.6rem;display:flex}.day-checkbox{align-items:center;gap:.3rem;min-height:44px;display:flex}.station-row{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.station-icon{text-align:center;width:2rem;font-size:1.5rem}.pill{background:var(--color-accent-soft);border-radius:999px;align-items:center;padding:.15rem .6rem;font-size:.8rem;display:inline-flex}.notice{background:var(--color-accent-soft);border-radius:var(--radius);color:var(--color-foreground);padding:.9rem 1.1rem}.day-strip{border-radius:var(--radius);border:1px solid var(--color-border);height:3rem;display:flex;overflow:hidden}.day-strip-segment{border-right:1px solid var(--color-border);color:var(--color-accent-contrast);background:var(--color-accent);white-space:nowrap;justify-content:center;align-items:center;font-size:.75rem;display:flex;position:relative;overflow:hidden}.day-strip-segment:last-child{border-right:none}.day-strip-segment.inferred{background:repeating-linear-gradient(45deg, var(--color-accent-soft), var(--color-accent-soft) 6px, var(--color-border) 6px, var(--color-border) 12px);color:var(--color-foreground)}.legend{color:var(--color-muted);flex-wrap:wrap;gap:1.25rem;margin-top:.5rem;font-size:.85rem;display:flex}.legend-swatch{vertical-align:middle;border:1px solid var(--color-border);border-radius:3px;width:1rem;height:1rem;margin-right:.35rem;display:inline-block}.legend-swatch.confirmed{background:var(--color-accent)}.legend-swatch.inferred{background:repeating-linear-gradient(45deg, var(--color-accent-soft), var(--color-accent-soft) 4px, var(--color-border) 4px, var(--color-border) 8px)}.week-table{border-collapse:collapse;width:100%}.week-table th,.week-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.5rem .6rem}.key-secret{word-break:break-all;background:var(--color-accent-soft);border-radius:var(--radius);padding:.6rem .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
