:root{--bg: #faf7f2;--surface: #ffffff;--text: #1f1b16;--muted: #6b6259;--line: #e4ddd2;--accent: #7a2e2e;--accent-text: #ffffff;--accent-soft: #f3e6e3;--warn-bg: #fff4d6;--warn-text: #6b4e00;--error-bg: #fde8e8;--error-text: #8a1c1c;--radius: 10px;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}@media(prefers-color-scheme:dark){:root{--bg: #171412;--surface: #221e1b;--text: #f1ebe4;--muted: #a79d93;--line: #3a332d;--accent: #d98c7f;--accent-text: #1b1210;--accent-soft: #3a2623;--warn-bg: #3a3014;--warn-text: #f3d98a;--error-bg: #3d1a1a;--error-text: #f4b4b4}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent)}.page{max-width:760px;margin:0 auto;padding:24px 16px 48px}.masthead h1{font-family:Georgia,Times New Roman,serif;font-size:2.2rem;margin:0;color:var(--accent);letter-spacing:.01em}.masthead p{margin:4px 0 20px;color:var(--muted)}input,select,button{font:inherit;color:inherit}input,select{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-width:0}input[type=number]{width:4.5em;margin:0 6px}input[type=checkbox]{margin-right:6px}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);border-radius:8px;padding:8px 14px;cursor:pointer;text-decoration:none;font-weight:600}button:disabled{opacity:.5;cursor:default}button.ghost,.button.ghost{background:transparent;color:var(--accent)}button.small,.button.small{padding:4px 10px;font-size:.9rem}button.link{background:none;border:none;color:var(--accent);padding:4px 0;font-weight:500;text-decoration:underline}button.icon{background:none;border:none;color:var(--muted);padding:4px 8px;font-size:1.2rem}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>input:not([type=checkbox]){flex:1 1 200px}.checks label{display:inline-flex;align-items:center;margin-right:12px}.link-form label{display:block;font-weight:600;margin-bottom:6px}.editor{margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:grid;gap:12px}fieldset{border:none;padding:0;margin:0;display:grid;gap:8px}legend{font-weight:700;margin-bottom:6px}.stop{display:flex;gap:8px;align-items:center}.stop input{flex:1}.badge{width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex:none}.advanced label{display:flex;align-items:center;flex-wrap:wrap}.submit{display:flex;gap:8px;flex-wrap:wrap}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex-wrap:wrap}.segmented button{background:transparent;color:var(--text);border:none;border-radius:0;font-weight:500}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-text)}.muted{color:var(--muted)}.fine{color:var(--muted);font-size:.85rem;margin:4px 0}.small{font-size:.88rem}.error{background:var(--error-bg);color:var(--error-text);padding:10px 12px;border-radius:8px}.warning{background:var(--warn-bg);color:var(--warn-text);padding:8px 12px;border-radius:8px}.progress{margin:16px 0}.progress p{margin:0 0 6px}.progress progress{width:100%;accent-color:var(--accent)}.results{margin-top:20px}.map{height:340px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}.pin{width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--accent);padding:0;cursor:pointer}.pin.planned{width:26px;height:26px;background:var(--accent);color:var(--accent-text);font-weight:700;font-size:.8rem;z-index:2}.pin.endpoint{width:24px;height:24px;background:#1f1b16;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;border:2px solid #fff}.tabs{display:flex;gap:4px;margin:16px 0 12px;border-bottom:1px solid var(--line);overflow-x:auto}.tabs button{background:none;border:none;border-bottom:3px solid transparent;border-radius:0;color:var(--muted);padding:8px 10px;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.summary .lead{font-size:1.15rem;margin:0 0 4px}.timeline{list-style:none;padding:0;margin:16px 0;border-left:2px solid var(--line)}.timeline>li{display:grid;grid-template-columns:6.5em 1fr;gap:10px;padding:8px 0 8px 12px;position:relative}.timeline>li:before{content:"";position:absolute;left:-7px;top:14px;width:12px;height:12px;border-radius:50%;background:var(--line)}.timeline>li.mass:before{background:var(--accent)}.timeline .time{font-weight:700;font-variant-numeric:tabular-nums}.timeline p{margin:0 0 4px}.mass-line{color:var(--accent)}.church{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-top:8px}.church h3{margin:0;font-size:1.05rem}.church header p{margin:2px 0 0;font-size:.9rem}.actions{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 6px}.nearby{margin:6px 0;font-size:.9rem;background:var(--accent-soft);padding:6px 8px;border-radius:6px}details summary{cursor:pointer;color:var(--accent);font-weight:500;margin-top:4px}.schedule{display:grid;gap:6px;margin:8px 0}.schedule-row{display:grid;grid-template-columns:7em 1fr;gap:8px}.schedule dt{font-weight:600}.schedule dd{margin:0;display:flex;flex-direction:column;gap:2px;font-size:.92rem}.schedule-day b{display:inline-block;min-width:3.2em}.handoff{margin:12px 0 24px}.alternatives ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.alternatives li{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.alternatives p{margin:2px 0 0}.alternatives h2{font-size:1.05rem}.church-list .list-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.cards{list-style:none;padding:0;margin:12px 0;display:grid;gap:16px}.pass{margin:0;font-size:.9rem;color:var(--muted)}.credits{margin-top:40px;color:var(--muted);font-size:.8rem;border-top:1px solid var(--line);padding-top:12px}@media(max-width:480px){.timeline>li{grid-template-columns:1fr;gap:2px}.schedule-row{grid-template-columns:1fr;gap:2px}}
