:root{--bg:#071426;--panel:#0d1a2e;--line:#1b304a;--text:#f1f5fb;--muted:#9cadc2;--blue:#66baff}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 48% 25%,#113451 0,#09182c 45%,#071426 78%);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP",sans-serif}.app-shell{width:min(100% - 32px,760px);padding:40px 0 84px;margin:0 auto}.hero{margin:0 0 20px}.eyebrow{margin:0 0 9px;color:var(--blue);font-size:.68rem;font-weight:800;letter-spacing:.18em}h1,h2,h3{margin:0;letter-spacing:-.04em}h1{font-size:clamp(2.35rem,7vw,4rem);line-height:1.14}.lead{margin:14px 0 0;color:var(--muted);font-size:.9rem}.panel,.course-card{border:1px solid #16273e;border-radius:16px;background:#0b1729e8;box-shadow:0 18px 45px #0005}.panel{padding:20px}form{display:grid;gap:19px}fieldset{min-width:0;padding:0;border:0}legend{margin-bottom:9px;font-size:.86rem;font-weight:750}input[type=text],select{width:100%;height:45px;padding:0 13px;border:1px solid var(--line);border-radius:12px;background:#091729;color:var(--text);font:inherit}select{appearance:none;cursor:pointer;padding-right:42px}.select-wrap{position:relative}.select-wrap:after{content:"⌄";position:absolute;right:15px;top:8px;color:var(--blue);font-size:1.3rem;pointer-events:none}input[type=text]:focus,select:focus{outline:2px solid #66baff55;border-color:var(--blue)}.choice-row,.chips{display:flex;flex-wrap:wrap;gap:8px}.choice input,.chip input{position:absolute;opacity:0}.choice span,.chip span{display:block;border:1px solid var(--line);border-radius:999px;padding:9px 12px;color:#c2d0df;font-size:.82rem;cursor:pointer}.choice input:checked+span,.chip input:checked+span{border-color:var(--blue);background:var(--blue);color:#061628;font-weight:800}.hint{min-height:1.25em;margin:8px 2px 0;color:var(--muted);font-size:.76rem}.primary{height:48px;border:0;border-radius:12px;background:linear-gradient(90deg,#6bc4ff,#6d90f5);color:#061426;font-weight:800;cursor:pointer}.results{margin-top:30px}.hidden{display:none}.results-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.results h2{font-size:1.6rem}.ghost{border:1px solid var(--line);border-radius:999px;padding:9px 12px;background:transparent;color:#c2d0df;cursor:pointer}.summary{margin:0 0 15px;color:var(--muted);font-size:.85rem;line-height:1.6}.course-list{display:grid;gap:13px}.course-card{padding:20px}.card-label{margin:0 0 8px;color:var(--blue);font-size:.68rem;font-weight:800;letter-spacing:.1em}.course-card h3{font-size:1.15rem}.card-description,.route,.map-note{color:var(--muted);font-size:.84rem;line-height:1.7}.route{color:#d5e4f2;font-weight:650}.trip-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:16px 0}.trip-stats div,.parking{border:1px solid var(--line);border-radius:12px;background:#0714268a;padding:10px}.trip-stats span{display:block;color:var(--muted);font-size:.7rem}.trip-stats strong{display:block;margin-top:3px;font-size:.92rem;color:#e7f3ff}.parking{margin:0 0 12px}.parking strong{font-size:.78rem;color:var(--blue)}.parking p{margin:4px 0 0;color:#c9d8e7;font-size:.78rem;line-height:1.6}.map-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:17px}.map-links a,.share-btn{border:0;background:transparent;padding:0;font:inherit;font-size:.84rem;font-weight:800;text-decoration:none;cursor:pointer}.google-link{color:#75c7ff}.apple-link{color:#b9cbff}.share-btn{color:#8ce1bc}.extras{margin-top:22px;border-top:1px solid var(--line);padding-top:17px}.extras-title{margin:0 0 9px;color:var(--blue);font-size:.68rem;font-weight:800;letter-spacing:.13em}.extra-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.extra-card{min-height:112px;border:1px solid var(--line);border-radius:12px;background:#0714268a;padding:11px}.extra-card span,.premium span{display:block;color:var(--muted);font-size:.68rem}.extra-card strong,.premium strong{display:block;margin:4px 0;color:#e7f3ff;font-size:.82rem}.extra-card p{margin:4px 0;color:#9cadc2;font-size:.72rem;line-height:1.5}.extra-card a,.mini-links a{font-size:.72rem;font-weight:800;color:#75c7ff;text-decoration:none}.mini-links{display:flex;gap:10px}.mini-links .apple-music-link{color:#b9cbff}.premium{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:12px;border:1px solid #32618a;border-radius:12px;background:linear-gradient(105deg,#102942,#0d1a2e)}.premium p,.premium-detail{margin:4px 0 0;color:#a9bbcd;font-size:.72rem;line-height:1.5}.premium-preview{flex:0 0 auto;border:1px solid var(--blue);border-radius:999px;background:transparent;color:#9ad7ff;padding:8px 10px;font-size:.72rem;font-weight:800;cursor:pointer}.premium-detail{border-left:2px solid var(--blue);padding-left:10px;margin-top:10px}@media(max-width:520px){.app-shell{padding-top:30px}.panel{padding:16px}h1{font-size:2.25rem}.trip-stats,.extra-grid{grid-template-columns:1fr 1fr}.premium{align-items:flex-start;flex-direction:column}}
.premium-detail { white-space: pre-line; line-height: 1.75; }
.plan-toggle { width: 100%; margin-top: 10px; padding: 12px; border: 0; border-radius: 12px; background: #eef4ff; color: #15396c; text-align: left; font: inherit; font-weight: 700; cursor: pointer; }
.plan-body { margin: 6px 0 12px; padding: 12px; border-radius: 12px; background: #fafafa; }
.plan-body p { margin: 0 0 10px; white-space: pre-line; }
.plan-body a { color: #145da0; font-weight: 700; }
.vehicle-plan { padding: 10px; border-radius: 10px; background: #fff5e8; color: #4d3214; }
