:root{color:#10243e;font-synthesis:none;text-rendering:optimizelegibility;background:#eef3f8;font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,system-ui,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#dce8f4 0%,#f6f8fb 42%,#fff 100%);min-width:320px;min-height:100vh;margin:0}button{font:inherit}.app-shell{width:min(100%,520px);min-height:100vh;padding:max(24px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.route-header{color:#163b65;letter-spacing:-.04em;justify-content:center;align-items:center;gap:14px;padding:4px 0 22px;font-size:clamp(23px,7vw,31px);font-weight:800;display:flex}.route-switch{color:#315f8e;cursor:pointer;background:#ffffffd1;border:1px solid #163b6533;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;padding:0;font-size:25px;line-height:1;transition:transform .14s,background .14s;display:inline-grid}.route-switch:hover{background:#fff;transform:rotate(180deg)}.route-switch:focus-visible{outline-offset:3px;outline:3px solid #315f8e59}.arrow{color:#4d6f93;font-weight:600}.status-card{text-align:center;color:#fff;border-radius:32px;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:565px;padding:31px 24px;display:flex;overflow:hidden;box-shadow:0 20px 55px #153a6033}.status-card.local{background:linear-gradient(155deg,#166342 0%,#0b8753 100%)}.status-card.express{background:linear-gradient(155deg,#153e6f 0%,#146cb3 100%)}.platform-label{opacity:.9;margin-bottom:-5px;font-size:19px;font-weight:700}.platform-number{justify-content:center;align-items:baseline;height:142px;line-height:1;display:flex}.platform-number strong{letter-spacing:-.08em;font-size:clamp(112px,34vw,148px);font-weight:900}.platform-number span{margin-left:9px;font-size:34px;font-weight:800}.status-card h1{letter-spacing:-.055em;margin:13px 0 28px;font-size:clamp(29px,8vw,38px);line-height:1.22}.train-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff24;border:2px solid #fff6;border-radius:23px;grid-template-columns:.9fr 1.1fr;align-items:center;width:100%;min-height:122px;padding:20px;display:grid}.arrival-time{border-right:1px solid #ffffff59;justify-content:center;align-items:baseline;gap:4px;padding-right:14px;display:flex}.arrival-time strong{letter-spacing:-.055em;font-size:clamp(25px,7vw,34px);font-weight:900;line-height:1.18}.train-kind{font-size:19px;font-weight:800}.train-name{flex-direction:column;align-items:center;gap:9px;display:flex}.train-name strong{letter-spacing:-.04em;font-size:28px}.train-kind{color:#16406b;background:#fff;border-radius:999px;padding:4px 12px}.position-note,.schedule-note,.service-note{border-top:1px solid #ffffff47;grid-column:1/-1;margin:14px 0 0;padding-top:12px;font-size:15px;font-weight:750;line-height:1.35}.schedule-note{font-size:17px}.schedule-note+.service-note,.position-note+.service-note{border-top:0;margin-top:7px;padding-top:0;font-size:13px}.next-train-section{text-align:left;width:100%;margin-top:18px}.next-train-label{margin:0 0 8px 4px;font-size:18px;font-weight:850}.next-train-card{background:#081f2f30;border:1px solid #ffffff61;border-radius:18px;grid-template-columns:.75fr 1.4fr 1fr;align-items:stretch;width:100%;padding:15px 13px;display:grid}.next-train-card>div{border-right:1px solid #ffffff47;flex-direction:column;justify-content:center;gap:5px;min-width:0;padding:0 10px;display:flex}.next-train-card>div:first-child{padding-left:2px}.next-train-card>div:last-child{border-right:0;padding-right:2px}.next-train-card span{opacity:.78;font-size:12px;font-weight:700}.next-train-card strong{letter-spacing:-.035em;overflow-wrap:anywhere;font-size:clamp(16px,4.4vw,20px);line-height:1.25}.next-train-card small{opacity:.82;font-size:11px;line-height:1.25}.local .train-kind{color:#12613f}.action-text{margin:20px 0 16px;font-size:28px;font-weight:900}.retry-button{color:#14385e;cursor:pointer;background:#fff;border:0;border-radius:18px;width:100%;min-height:62px;font-size:21px;font-weight:800;box-shadow:0 7px 18px #0000001f}.retry-button:active{transform:translateY(1px)}.loading-card,.error-card{color:#173856;background:#fff}.loader{border:6px solid #d9e4ee;border-top-color:#176eae;border-radius:50%;width:54px;height:54px;animation:.9s linear infinite spin}.warning-icon{color:#fff;background:#b63d35;border-radius:50%;place-items:center;width:84px;height:84px;font-size:52px;font-weight:900;display:grid}.error-card p{margin:-10px 0 28px;font-size:20px;line-height:1.55}.retry-button{color:#fff;background:#173f69}footer{text-align:center;color:#52657a;padding:18px 6px 0;font-size:14px}footer p{margin:6px 0}.refresh-row{justify-content:center;align-items:center;gap:8px;font-size:15px;font-weight:750;display:flex}.live-dot{background:#16a064;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 5px #16a06421}.demo-badge{color:#7e5200;background:#fff1c9;border-radius:999px;width:fit-content;margin:9px auto 5px;padding:5px 10px;font-weight:800}.safety-note{line-height:1.5}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=370px){.app-shell{padding-left:12px;padding-right:12px}.status-card{border-radius:25px;min-height:520px;padding:25px 17px}.train-panel{padding:16px 10px}.arrival-time strong,.train-name strong{font-size:24px}.next-train-card{padding:13px 8px}.next-train-card>div{padding:0 7px}.next-train-card strong{font-size:15px}}@media (prefers-reduced-motion:reduce){.loader{animation:none}}
