﻿:root{--plan-text:#17233b;--plan-muted:#62718a;--plan-line:#d9e3ec;--plan-blue:#1675b7;--plan-soft:#f6f9fc}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--plan-text)}.plan-shell{max-width:1180px;margin:0 auto;padding:0 20px 72px}.plan-hero{padding:34px 0 18px}.plan-kicker{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--plan-blue)}.plan-hero h1{margin:.35rem 0 .7rem;font-size:clamp(2.15rem,5vw,3.8rem);line-height:1.04}.plan-hero>p{max-width:880px;margin:0;color:#53627b;font-size:1.07rem;line-height:1.7}.plan-stats{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}.plan-stats span{padding:.55rem .7rem;border:1px solid #d8e3ee;border-radius:9px;background:#fbfdff;color:#53627b;font-size:.86rem}.plan-stats strong{color:#17233b}.plan-routes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:1rem 0 1.3rem}.plan-route{position:relative;display:block;padding:.9rem 2rem .9rem .9rem;border:1px solid #d8e3ee;border-radius:11px;background:#fff;color:#24334c;text-decoration:none;overflow:hidden;transition:border-color .2s,box-shadow .2s,background .2s}.plan-route strong{display:block;margin-bottom:.22rem}.plan-route span{display:block;color:#687792;font-size:.82rem;line-height:1.4}.plan-route::after{content:"→";position:absolute;right:.75rem;top:.82rem;color:#1675b7;transition:transform .2s}.plan-route::before{content:"";position:absolute;left:.9rem;right:.9rem;bottom:0;height:2px;background:linear-gradient(90deg,#18cce4,#3d9fe8,#7665e8);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.semantic-callout{--co:#0ea5c6;--co-soft:rgba(14,165,198,.07);--co-line:rgba(14,165,198,.28);position:relative;margin:1rem 0;padding:2.15rem 1rem 1rem!important;border:1px solid var(--co-line)!important;border-left:4px solid var(--co)!important;border-radius:10px;background:linear-gradient(90deg,var(--co-soft),rgba(255,255,255,.94) 46%)!important;color:#43536d;line-height:1.6;transition:box-shadow .22s,transform .22s}.semantic-callout::before{content:attr(data-label);position:absolute;left:1rem;top:.68rem;font-size:.7rem;line-height:1;font-weight:800;letter-spacing:.1em;color:var(--co)}.semantic-callout p{margin:0}.semantic-callout--caution{--co:#d97706;--co-soft:rgba(217,119,6,.07);--co-line:rgba(217,119,6,.28)}.semantic-callout--meta{--co:#7350b5;--co-soft:rgba(115,80,181,.06);--co-line:rgba(115,80,181,.24)}
.plan-tools{position:sticky;top:8px;z-index:20;margin:1.25rem 0 1rem;padding:1rem;border:1px solid #d8e3ee;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 10px 28px rgba(33,55,86,.07);backdrop-filter:blur(10px)}.plan-search-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:.55rem}.plan-search{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.65rem;min-height:44px;padding:0 .8rem;border:1px solid #ccd9e6;border-radius:9px;background:#fff}.plan-search span{font-size:.76rem;font-weight:800;color:#52617a}.plan-search input{width:100%;border:0;outline:0;background:transparent;color:#1f2e46;font:inherit;min-width:0}.plan-clear{min-height:44px;padding:.65rem .9rem;border:1px solid #ccd9e6;border-radius:9px;background:#f8fafc;color:#50617a;font:inherit;cursor:pointer}.plan-filters{display:flex;flex-wrap:wrap;gap:.38rem;margin-top:.75rem}.plan-filter{min-height:34px;padding:.42rem .65rem;border:1px solid #d3deea;border-radius:999px;background:#fff;color:#52617a;font:inherit;font-size:.78rem;cursor:pointer}.plan-filter.is-active{border-color:#82c8df;background:#eefaff;color:#08779a}.plan-filter--archive{border-color:#ead2a7;color:#a65a08}.plan-filter--archive.is-active{background:#fff7e8;border-color:#dfab55}.plan-summary{display:flex;justify-content:space-between;gap:1rem;margin:1rem 0;color:#687792;font-size:.84rem}.plan-summary strong,.plan-summary b{color:#26364e}
.plan-section{margin:0 0 1.5rem;scroll-margin-top:150px;border:1px solid var(--plan-line);border-radius:14px;background:#fff;overflow:hidden}.plan-section[hidden]{display:none}.plan-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.05rem .85rem;background:linear-gradient(180deg,#fbfdff,#f8fafc);border-bottom:1px solid #e3eaf0}.plan-section-head>div{display:flex;align-items:baseline;gap:.75rem;min-width:0}.plan-range{font:800 .78rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#1476b7;white-space:nowrap}.plan-section h2{margin:0;font-size:1.05rem;line-height:1.3;color:#1c2b43}.plan-section-count{min-width:2rem;padding:.22rem .42rem;border:1px solid #d8e3ee;border-radius:999px;background:#fff;text-align:center;font-size:.72rem;color:#6a7890}.plan-section-note{margin:0;padding:.8rem 1.05rem;border-bottom:1px solid #e6edf3;background:#fffaf0;color:#76531f;font-size:.84rem;line-height:1.55}.plan-list{padding:.35rem .55rem .55rem}.plan-row{position:relative;border-bottom:1px solid #edf1f5}.plan-row:last-child{border-bottom:0}.plan-row>a,.plan-row>div{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr) auto 26px;gap:.65rem;align-items:center;min-height:42px;padding:.48rem .55rem;color:#27364d;text-decoration:none}.plan-row--sub>a,.plan-row--sub>div{padding-left:1.6rem}.plan-row--sub2>a,.plan-row--sub2>div{padding-left:2.8rem}.plan-code{font:800 .78rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:#2876aa;white-space:nowrap}.plan-name{font-size:.86rem;line-height:1.42}.plan-row--main .plan-name{font-weight:700;color:#1c2b43}.plan-badge{padding:.16rem .35rem;border-radius:5px;background:#f1f5f8;color:#66758c;font-size:.64rem;font-weight:800;white-space:nowrap}.plan-badge--archive{background:#fff2d8;color:#a55b08}.plan-arrow{color:#1675b7;opacity:0;transform:translateX(-4px);transition:opacity .18s,transform .18s}.plan-row.is-linked>a::after{content:"";position:absolute;left:.55rem;right:.55rem;bottom:0;height:2px;background:linear-gradient(90deg,#18cce4,#3d9fe8,#7665e8);transform:scaleX(0);transform-origin:left;transition:transform .28s}.plan-row--sub.is-linked>a::after{left:1.6rem}.plan-row--sub2.is-linked>a::after{left:2.8rem}.plan-row.is-plain{color:#7a8799}.plan-row.is-plain .plan-code{color:#8290a1}.plan-row.is-plain .plan-name{color:#68768a}.plan-row.is-archive{background:#fffdf9}.plan-row[hidden]{display:none!important}.plan-empty{display:none;margin:1rem 0;padding:1.25rem;border:1px dashed #c8d6e4;border-radius:11px;text-align:center;color:#697890}.plan-empty.is-visible{display:block}.plan-footer{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.25rem 0}.plan-footer a{padding:.55rem .75rem;border:1px solid #d8e3ee;border-radius:9px;background:#fff;color:#176da6;text-decoration:none}
@media(hover:hover){.plan-route:hover{border-color:#b9d9ea;box-shadow:0 8px 22px rgba(36,90,128,.07);background:#fbfdff}.plan-route:hover::after{transform:translateX(3px)}.plan-route:hover::before{transform:scaleX(1)}.semantic-callout:hover{box-shadow:0 8px 24px color-mix(in srgb,var(--co) 9%,transparent);transform:translateY(-1px)}.plan-row.is-linked>a:hover{background:#f8fcff}.plan-row.is-linked>a:hover::after{transform:scaleX(1)}.plan-row.is-linked>a:hover .plan-arrow{opacity:1;transform:translateX(2px)}}.plan-row.is-linked>a:focus-visible{outline:3px solid rgba(14,165,198,.14);outline-offset:-3px}.plan-row.is-linked>a:focus-visible .plan-arrow{opacity:1;transform:none}
@media(max-width:900px){.plan-routes{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-tools{position:static}.plan-summary{flex-direction:column;gap:.3rem}.plan-row>a,.plan-row>div{grid-template-columns:72px minmax(0,1fr) auto 20px}.plan-row--sub>a,.plan-row--sub>div{padding-left:1rem}.plan-row--sub2>a,.plan-row--sub2>div{padding-left:1.8rem}}
@media(max-width:560px){.plan-shell{padding:0 14px 54px}.plan-routes{grid-template-columns:1fr}.plan-tools{padding:.8rem}.plan-search-row{grid-template-columns:1fr}.plan-filter{font-size:.74rem}.plan-section-head>div{display:block}.plan-section h2{margin-top:.28rem;font-size:.96rem}.plan-list{padding:.25rem}.plan-row>a,.plan-row>div{grid-template-columns:60px minmax(0,1fr) auto 18px;gap:.45rem;padding:.56rem .4rem}.plan-row--sub>a,.plan-row--sub>div{padding-left:.8rem}.plan-row--sub2>a,.plan-row--sub2>div{padding-left:1.25rem}.plan-code{font-size:.72rem}.plan-name{font-size:.82rem}.plan-badge{font-size:.58rem}.plan-arrow{opacity:.65;transform:none}}
@media(prefers-reduced-motion:reduce){.plan-route,.plan-route::after,.plan-route::before,.semantic-callout,.plan-arrow,.plan-row.is-linked>a::after{transition:none!important}}
