:root{--ai: #1c3d5a;--ai-700: #16324a;--coral: #e85a5a;--ink-900: #1a1a1a;--ink-700: #444b52;--ink-400: #8a929a;--paper: #f6f4ef;--card: #ffffff;--line: #e3ddd2;--ok: #2e7d5b;--warn: #b5502a}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:-apple-system,Hiragino Sans,Yu Gothic,system-ui,sans-serif;color:var(--ink-900);background:var(--paper)}header{background:var(--ai);color:#fff;padding:14px 20px;display:flex;align-items:baseline;gap:14px}header h1{font-size:18px;margin:0;letter-spacing:.02em}header .sub{font-size:12px;color:#b9c6d4}nav.tabs{display:flex;gap:2px;background:var(--ai-700);padding:0 12px}nav.tabs button{background:transparent;border:0;color:#b9c6d4;padding:12px 18px;font-size:14px;cursor:pointer;border-bottom:3px solid transparent}nav.tabs button.active{color:#fff;border-bottom-color:var(--coral)}main{padding:20px;max-width:1100px;margin:0 auto}.panel{display:none}.panel.active{display:block}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:16px}label{display:block;font-size:13px;color:var(--ink-700);margin:10px 0 4px}select,input[type=text],input[type=number]{width:100%;padding:9px 11px;font-size:14px;border:1px solid var(--line);border-radius:7px;background:#fff}.row{display:flex;gap:12px}.row>div{flex:1}button.primary{background:var(--coral);color:#fff;border:0;padding:11px 20px;font-size:14px;border-radius:8px;cursor:pointer;margin-top:14px}button.primary:disabled{background:var(--ink-400);cursor:not-allowed}#map{width:100%;height:480px;border-radius:10px;border:1px solid var(--line)}.verify-banner{display:none;margin-top:12px;padding:11px 14px;border-radius:8px;font-size:13px;line-height:1.5;background:#fdf0e9;border:1px solid #e7c3b0;color:var(--warn)}.verify-banner.show{display:block}.verify-banner b{color:#8f3d1e}.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px}.badge.ok{background:#e3f2ea;color:var(--ok)}.badge.warn{background:#fdece3;color:var(--warn)}.tsj-station-label{font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px;white-space:nowrap;box-shadow:0 1px 3px #00000059}.stub{color:var(--ink-700);font-size:14px;line-height:1.7}.stub h3,.stub-h{color:var(--ai);margin:0 0 6px;font-size:17px}.tsj-cmp-el{font-weight:700;white-space:nowrap;box-shadow:0 2px 6px #00000073}.tsj-cmp-el.endpoint{font-size:13px;color:#fff;background:var(--ai);padding:4px 10px;border-radius:7px;border:1.5px solid rgba(255,255,255,.85)}.tsj-cmp-el.timepill{font-size:12.5px;color:#fff;padding:4px 10px;border-radius:999px}.canva-form{margin-top:6px}.opt-wrap{display:flex;gap:12px;margin-top:10px}.opt-box,.step-box{flex:1;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fafaf7}.step-wrap{display:flex;flex-direction:column;gap:10px;margin-top:10px}.opt-h{font-size:12px;font-weight:700;color:var(--ai);margin-bottom:4px}.opt-box input,.step-box input{font-size:13px}button.ghost{background:#fff;border:1px dashed var(--ink-400);color:var(--ink-700);padding:8px 14px;border-radius:8px;cursor:pointer;margin-top:10px;font-size:13px}.canva-status{margin-top:12px;font-size:13px;color:var(--ink-700)}.canva-status.ok{color:var(--ok)}.canva-status.warn{background:#fdf0e9;border:1px solid #e7c3b0;color:var(--warn);padding:10px 12px;border-radius:8px;line-height:1.6}.canva-status code{background:#fff;padding:1px 5px;border-radius:4px;border:1px solid var(--line)}.canva-result{margin-top:10px}.canva-link{display:inline-block;background:var(--ai);color:#fff;text-decoration:none;padding:9px 16px;border-radius:8px;font-size:14px}.canva-result pre{font-size:11px;background:#f3f1ec;padding:10px;border-radius:8px;overflow:auto}.es-step{display:flex;align-items:center;gap:10px;margin:20px 0 6px;font-weight:700;color:var(--ai);font-size:15px}.es-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--coral);color:#fff;font-size:13px}.es-guide{margin:6px 0 0;padding-left:20px;color:var(--ink-700);font-size:13px;line-height:1.9}.es-guide a{color:var(--ai)}.es-note{margin-top:8px;font-size:13px}.es-note.ok{color:var(--ok)}.es-note.warn{background:#fdf0e9;border:1px solid #e7c3b0;color:var(--warn);padding:8px 12px;border-radius:8px}#es-file{margin-bottom:10px}
