:root{
    --transport-bg:#f5f7fb;
    --transport-surface:#ffffff;
    --transport-surface-soft:rgba(255,255,255,0.92);
    --transport-ink:#172033;
    --transport-muted:#667085;
    --transport-line:#e5e7eb;
    --transport-line-strong:#d9dfeb;
    --transport-primary:#7b3ff2;
    --transport-primary-dark:#6127cf;
    --transport-primary-soft:rgba(123,63,242,0.08);
    --transport-secondary:#0f5fd0;
    --transport-bus:#2563eb;
    --transport-subway:#16a34a;
}

.transport-page{
    min-height:100vh;
    padding:40px 16px 72px;
    background:
        radial-gradient(circle at top, rgba(255,191,71,0.16), transparent 24%),
        linear-gradient(180deg, #eef4ff 0%, var(--transport-bg) 28%, #f8fafc 100%);
}

.transport-container{
    width:min(1200px, calc(100% - 8px));
    margin:0 auto;
}

.transport-header{
    margin-bottom:24px;
}

.transport-label{
    margin:0 0 10px;
    color:var(--transport-secondary);
    font-size:12px;
    font-weight:800;
    letter-spacing:0.16em;
}

.transport-header h1{
    margin:0 0 12px;
    color:var(--transport-ink);
    font-size:clamp(2rem, 3.4vw, 2.8rem);
    line-height:1.18;
    letter-spacing:-0.03em;
}

.transport-desc{
    margin:0;
    max-width:none;
    color:var(--transport-muted);
    font-size:1rem;
    line-height:1.7;
    white-space:nowrap;
}

.hero-card,
.map-panel,
.transport-panel{
    border:1px solid var(--transport-line);
    border-radius:24px;
    background:var(--transport-surface-soft);
    backdrop-filter:blur(8px);
}

.hero-card{
    display:grid;
    grid-template-columns:minmax(0, 1.4fr) minmax(320px, 0.8fr);
    align-items:start;
    gap:18px;
    padding:20px;
    margin-bottom:18px;
    background:linear-gradient(180deg, rgba(255,255,255,0.96), rgba(246,249,255,0.92));
}

.hero-side{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.route-box,
.stay-card,
.planner-card,
.summary-panel{
    border:1px solid var(--transport-line);
    border-radius:22px;
    background:linear-gradient(180deg, rgba(255,255,255,0.99), rgba(248,250,255,0.96));
}

.route-box{
    padding:26px 26px 22px;
    display:flex;
    flex-direction:column;
    gap:16px;
    background:
        radial-gradient(circle at top left, rgba(123,63,242,0.08), transparent 30%),
        linear-gradient(180deg, rgba(255,255,255,0.99), rgba(250,251,255,0.96));
}

.route-box__head{
    margin-bottom:18px;
}

.route-box__eyebrow{
    margin:0 0 8px;
    color:var(--transport-secondary);
    font-size:12px;
    font-weight:800;
    letter-spacing:0.08em;
}

.route-box__head h2{
    margin:0;
    color:var(--transport-ink);
    font-size:2rem;
    line-height:1.22;
    letter-spacing:-0.03em;
}

.route-box__sub{
    margin:10px 0 0;
    color:var(--transport-muted);
    line-height:1.65;
}

.destination-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
}

.destination-action-btn{
    min-height:40px;
    padding:0 16px;
    border-radius:14px;
    background:#fff;
    color:var(--transport-ink);
    border:1px solid #e3e8f1;
}

.destination-action-btn:hover{
    background:#f8fbff;
    border-color:#cfdcf2;
    color:#1d4ed8;
}

.route-fields{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 44px minmax(0, 1fr);
    gap:8px;
    align-items:center;
}

.route-input{
    min-height:52px;
    display:flex;
    align-items:center;
    width:100%;
    padding:0 14px;
    border:1px solid #e3e8f1;
    border-radius:14px;
    color:var(--transport-ink);
    font-size:14px;
    font-weight:700;
    background:#fff;
    outline:none;
    min-width:0;
}

.route-input::placeholder{
    color:#98a2b3;
    font-weight:600;
}

.route-arrow{
    height:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#667085;
    font-size:20px;
    font-weight:800;
}

.route-modes{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
}

.route-mode{
    min-height:104px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:5px;
    padding:18px 18px 16px;
    background:linear-gradient(180deg, #ffffff, #fafbfe);
    color:#475467;
    border:1px solid #e7ebf3;
    border-radius:20px;
    font:inherit;
    cursor:pointer;
    text-align:left;
}

.route-mode__title{
    color:var(--transport-ink);
    font-size:15px;
    font-weight:800;
}

.route-mode__desc{
    color:var(--transport-muted);
    font-size:12px;
    line-height:1.5;
}

.route-mode__time{
    display:block;
    margin-top:10px;
    color:var(--transport-ink);
    font-size:17px;
    font-weight:800;
}

.route-mode--active{
    background:linear-gradient(180deg, rgba(123,63,242,0.14), rgba(123,63,242,0.08));
    border-color:rgba(123,63,242,0.28);
}

.route-mode--active .route-mode__time{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 12px;
    border-radius:999px;
    color:#fff;
    background:linear-gradient(135deg, #7b3ff2, #a259ff);
}

.route-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.transport-modal{
    position:fixed;
    inset:0;
    z-index:1200;
}

.transport-modal__backdrop{
    position:absolute;
    inset:0;
    background:rgba(15, 23, 42, 0.38);
}

.transport-modal__dialog{
    position:relative;
    width:min(920px, calc(100vw - 32px));
    max-height:calc(100vh - 48px);
    margin:24px auto;
    overflow:auto;
    padding:22px;
    border:1px solid #dce4f2;
    border-radius:24px;
    background:#fff;
}

.transport-modal__dialog--narrow{
    width:min(640px, calc(100vw - 32px));
}

.transport-modal__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}

.transport-modal__eyebrow{
    margin:0 0 6px;
    color:#2563eb;
    font-size:12px;
    font-weight:800;
    letter-spacing:0.08em;
}

.transport-modal__head h2{
    margin:0;
    color:var(--transport-ink);
    font-size:1.4rem;
    line-height:1.35;
}

.transport-modal__close{
    width:40px;
    height:40px;
    border:1px solid #e3e8f1;
    border-radius:14px;
    background:#fff;
    color:#334155;
    font-size:24px;
    line-height:1;
    cursor:pointer;
}

.accom-search-filter{
    display:grid;
    grid-template-columns:2fr repeat(4, minmax(0, 1fr)) auto;
    gap:10px;
    margin-bottom:14px;
}

.accom-search-filter__input,
.accom-search-filter__select{
    min-height:44px;
    width:100%;
    padding:0 14px;
    border:1px solid #e3e8f1;
    border-radius:14px;
    background:#fff;
    color:var(--transport-ink);
    font:inherit;
    outline:none;
}

.accom-search-filter__submit{
    min-height:44px;
}

.accom-search-result-info{
    margin-bottom:10px;
    color:var(--transport-muted);
    font-size:13px;
}

.accom-search-result-list{
    display:grid;
    gap:10px;
}

.accom-search-item{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    gap:14px;
    align-items:center;
    padding:16px 18px;
    border:1px solid #e3e8f1;
    border-radius:18px;
    background:#fff;
}

.accom-search-item__title{
    margin:0 0 6px;
    color:var(--transport-ink);
    font-size:16px;
    font-weight:800;
}

.accom-search-item__meta,
.accom-search-item__location{
    color:var(--transport-muted);
    font-size:13px;
    line-height:1.5;
}

.accom-search-item__select{
    min-height:40px;
    padding:0 14px;
    border-radius:14px;
}

.accom-search-empty{
    padding:28px 16px;
    border:1px dashed #d7e0ee;
    border-radius:18px;
    color:var(--transport-muted);
    font-size:14px;
    text-align:center;
}

.accom-search-pagination{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:6px;
    margin-top:14px;
    flex-wrap:wrap;
}

.accom-search-pagination__btn{
    min-width:38px;
    height:38px;
    padding:0 10px;
    border:1px solid #e3e8f1;
    border-radius:12px;
    background:#fff;
    color:#334155;
    font:inherit;
    font-weight:700;
    cursor:pointer;
}

.accom-search-pagination__btn.is-active{
    background:#2563eb;
    border-color:#2563eb;
    color:#fff;
}

.transit-detail-panel{
    padding:18px;
    border:1px solid #e4e8f4;
    border-radius:8px;
    background:
        radial-gradient(circle at top right, rgba(37,99,235,0.08), transparent 28%),
        linear-gradient(180deg, #ffffff, #f8fbff);
}

.transit-detail-panel__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.transit-detail-panel__eyebrow{
    display:block;
    margin-bottom:6px;
    color:#2563eb;
    font-size:11px;
    font-weight:800;
    letter-spacing:0.08em;
}

.transit-detail-panel__head h3{
    margin:0;
    color:var(--transport-ink);
    font-size:1rem;
    line-height:1.45;
}

.transit-detail-panel__meta{
    flex-shrink:0;
    min-height:34px;
    display:inline-flex;
    align-items:center;
    padding:0 12px;
    border-radius:999px;
    background:#eff6ff;
    color:#1d4ed8;
    font-size:12px;
    font-weight:800;
}

.transit-detail-panel__summary{
    margin:12px 0 0;
    color:var(--transport-muted);
    font-size:13px;
    line-height:1.7;
}

.long-transit-result{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-top:14px;
    padding:14px;
    border:1px solid #bfdbfe;
    border-radius:8px;
    background:linear-gradient(180deg, #eff6ff 0%, #fff 100%);
}

.long-transit-result__badge{
    width:max-content;
    max-width:100%;
    padding:4px 8px;
    border-radius:8px;
    background:#dbeafe;
    color:#1d4ed8;
    font-size:12px;
    font-weight:800;
}

.long-transit-result__time{
    color:var(--transport-ink);
    font-size:24px;
    font-weight:900;
    line-height:1.2;
}

.long-transit-result__route{
    color:var(--transport-ink);
    font-size:14px;
    font-weight:800;
    line-height:1.45;
}

.long-transit-result__note{
    color:var(--transport-muted);
    font-size:12px;
    line-height:1.5;
}

.transit-step-list{
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:10px;
    margin:16px 0 0;
    padding:0;
}

.transit-step{
    display:flex;
    gap:12px;
    padding:13px 14px;
    border:1px solid #d8e0ee;
    border-radius:8px;
    background:linear-gradient(180deg, #fff 0%, #f8fbff 100%);
    box-shadow:0 8px 20px rgba(15, 23, 42, .06);
}

.transit-step__index{
    flex:0 0 28px;
    width:28px;
    height:28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:8px;
    background:#e0f2fe;
    color:#0369a1;
    font-size:12px;
    font-weight:800;
}

.transit-step--train .transit-step__index{
    background:#d1fae5;
    color:#047857;
}

.transit-step--subway .transit-step__index{
    background:#e0e7ff;
    color:#4338ca;
}

.transit-step--bus .transit-step__index{
    background:#fef3c7;
    color:#b45309;
}

.transit-step--walk .transit-step__index{
    background:#f1f5f9;
    color:#475569;
}

.transit-step__body{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:4px;
}

.transit-step__title{
    color:var(--transport-ink);
    font-size:14px;
    font-weight:800;
}

.transit-step__summary,
.transit-step__time{
    color:var(--transport-muted);
    font-size:12px;
    line-height:1.5;
}

.transit-step__station{
    width:max-content;
    max-width:100%;
    padding:3px 7px;
    border-radius:8px;
    background:#f1f5f9;
    color:#475569;
    font-size:11px;
    font-weight:800;
}

.transit-alt-section{
    margin-top:14px;
}

.transit-alt-section__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:8px;
    color:var(--transport-ink);
    font-size:13px;
}

.transit-alt-section__head span{
    color:var(--transport-muted);
    font-size:12px;
    font-weight:700;
}

.transit-alt-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:12px;
    max-height:520px;
    overflow-y:auto;
    padding-right:6px;
    overscroll-behavior:contain;
}

.transit-alt-grid::-webkit-scrollbar{
    width:8px;
}

.transit-alt-grid::-webkit-scrollbar-track{
    background:#eef2f7;
    border-radius:8px;
}

.transit-alt-grid::-webkit-scrollbar-thumb{
    background:#b7c2d4;
    border-radius:8px;
}

.transit-alt-card{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:14px;
    border:1px solid #dbe3f3;
    border-radius:8px;
    background:linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow:0 10px 24px rgba(15, 23, 42, .06);
}

.transit-alt-card.is-fastest{
    border-color:#22c55e;
    background:linear-gradient(180deg, #f0fdf4 0%, #fff 100%);
}

.transit-alt-card__type{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    color:#2563eb;
    font-size:12px;
    font-weight:800;
}

.transit-alt-card__badge{
    display:inline-flex;
    align-items:center;
    min-height:20px;
    padding:0 7px;
    border-radius:8px;
    background:#dcfce7;
    color:#15803d;
    font-size:11px;
    font-weight:800;
}

.transit-alt-card__time{
    color:var(--transport-ink);
    font-size:18px;
    font-weight:800;
}

.transit-alt-card__detail,
.transit-alt-card__route{
    color:var(--transport-muted);
    font-size:12px;
    line-height:1.5;
}

.route-option-section{
    margin-top:14px;
}

.route-option-section__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:8px;
    color:var(--transport-ink);
}

.route-option-section__head span{
    color:var(--transport-muted);
    font-size:12px;
    font-weight:700;
}

.route-option-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    gap:10px;
}

.route-option-card{
    display:flex;
    flex-direction:column;
    gap:7px;
    padding:12px;
    border:1px solid #dbe3f3;
    border-radius:8px;
    background:#fff;
}

.route-option-card.is-fastest{
    border-color:#22c55e;
    background:linear-gradient(180deg, #f0fdf4 0%, #fff 100%);
}

.route-option-card.is-active{
    box-shadow:0 0 0 2px rgba(37,99,235,0.16);
}

.route-option-card__label{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    color:#2563eb;
    font-size:12px;
    font-weight:800;
}

.route-option-card__time{
    color:var(--transport-ink);
    font-size:17px;
    font-weight:800;
}

.route-option-card__detail{
    color:var(--transport-muted);
    font-size:12px;
    line-height:1.5;
}

.transit-alt-steps{
    position:relative;
    display:flex;
    flex-direction:column;
    gap:8px;
    margin:4px 0 0;
    padding:10px 0 0;
    border-top:1px dashed #dbe3f3;
    list-style:none;
}

.transit-alt-step{
    display:grid;
    grid-template-columns:22px minmax(0, 1fr);
    gap:8px;
    align-items:flex-start;
}

.transit-alt-step__dot{
    width:22px;
    height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:8px;
    background:#f1f5f9;
    color:#475569;
    font-size:11px;
    font-weight:800;
}

.transit-alt-step--train .transit-alt-step__dot{
    background:#d1fae5;
    color:#047857;
}

.transit-alt-step--subway .transit-alt-step__dot{
    background:#e0e7ff;
    color:#4338ca;
}

.transit-alt-step--bus .transit-alt-step__dot{
    background:#fef3c7;
    color:#b45309;
}

.transit-alt-step__text{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
    color:var(--transport-muted);
    font-size:12px;
    line-height:1.45;
}

.transit-alt-step__text strong{
    color:var(--transport-ink);
    font-size:12px;
}

.primary-btn,
.secondary-btn,
.ghost-btn,
.quick-action,
.map-focus-btn,
.transport-item{
    border:none;
    cursor:pointer;
    font:inherit;
}

.primary-btn,
.secondary-btn,
.ghost-btn{
    min-height:52px;
    padding:0 20px;
    border-radius:17px;
    font-weight:800;
    white-space:nowrap;
}

.primary-btn{
    background:linear-gradient(135deg, var(--transport-primary), #9563ff);
    color:#fff;
}

.primary-btn:hover{
    background:linear-gradient(135deg, var(--transport-primary-dark), var(--transport-primary));
}

.secondary-btn{
    background:linear-gradient(180deg, #ffffff, #f4f7ff);
    color:var(--transport-secondary);
    border:1px solid #d7e4ff;
}

.ghost-btn{
    background:linear-gradient(180deg, #ffffff, #f8fafc);
    color:#475467;
    border:1px solid var(--transport-line-strong);
}

.stay-card{
    display:flex;
    gap:18px;
    align-items:center;
    min-height:148px;
    padding:24px 22px;
    background:
        radial-gradient(circle at left top, rgba(123,63,242,0.14), transparent 38%),
        radial-gradient(circle at right bottom, rgba(15,95,208,0.08), transparent 32%),
        linear-gradient(180deg, rgba(255,255,255,0.99), rgba(246,248,255,0.95));
    border-radius:24px;
}

.stay-media{
    width:116px;
    height:116px;
    flex-shrink:0;
}

.stay-image{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    border-radius:24px;
}

.is-hidden{
    display:none !important;
}

.stay-icon{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:24px;
    background:linear-gradient(135deg, var(--transport-primary), #9563ff);
    color:#fff;
    font-size:1.5rem;
    font-weight:800;
    letter-spacing:0.04em;
    flex-shrink:0;
}

.stay-copy{
    display:flex;
    flex:1;
    min-width:0;
    flex-direction:column;
}

.stay-title-link{
    text-decoration:none;
    color:inherit;
    text-align:left;
}

.stay-title-link:hover,
.stay-title-link:focus{
    text-decoration:none;
    color:inherit;
}

.stay-card h3{
    margin:0 0 10px;
    color:var(--transport-ink);
    font-size:1.55rem;
    line-height:1.25;
    letter-spacing:-0.03em;
}

.stay-card p{
    margin:0;
    color:var(--transport-muted);
    font-size:0.98rem;
    line-height:1.55;
}

.planner-card{
    padding:22px 20px 18px;
    background:
        radial-gradient(circle at top right, rgba(123,63,242,0.08), transparent 35%),
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,249,253,0.94));
}

.summary-panel{
    padding:20px;
    background:
        radial-gradient(circle at top left, rgba(14,165,233,0.08), transparent 38%),
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,249,255,0.94));
}

.summary-panel__head{
    margin-bottom:14px;
}

.summary-panel__head h2{
    margin:0 0 6px;
    color:var(--transport-ink);
    font-size:1.2rem;
    letter-spacing:-0.03em;
}

.summary-panel__head p{
    margin:0;
    color:var(--transport-muted);
    font-size:0.95rem;
    line-height:1.6;
}

.planner-card__head h2{
    margin:0 0 6px;
    color:var(--transport-ink);
    font-size:1.6rem;
    letter-spacing:-0.03em;
}

.planner-card__head p{
    margin:0;
    color:var(--transport-muted);
    font-size:1rem;
    line-height:1.6;
}

.quick-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:18px;
}

.route-field__hint{
    margin:2px 2px 0;
    color:var(--transport-muted);
    font-size:13px;
    line-height:1.6;
}

.route-field__hint strong{
    color:var(--transport-ink);
    font-size:14px;
    font-weight:800;
}

.quick-action{
    min-height:42px;
    padding:0 16px;
    border-radius:999px;
    background:linear-gradient(180deg, #f8faff, #f1f5fb);
    color:#344054;
    font-size:14px;
    font-weight:700;
    border:1px solid #dbe3f0;
}

.quick-action:hover{
    background:linear-gradient(180deg, #eef3ff, #e7eefc);
    color:var(--transport-primary);
}

.summary-grid{
    display:flex;
    flex-direction:column;
    gap:14px;
    margin:0;
}

.summary-card{
    flex:none;
    width:100%;
    min-height:unset;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:16px 18px;
    border:none;
    border-radius:18px;
    background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,249,255,0.92));
    box-shadow:none;
}

.summary-label{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin:0;
    color:var(--transport-muted);
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
}

.summary-card strong{
    color:var(--transport-ink);
    font-size:1.2rem;
    line-height:1.2;
    letter-spacing:-0.02em;
    max-width:none;
    margin-left:auto;
    text-align:right;
}

.summary-card--start .summary-label::before{
    content:"\2197";
}

.summary-card--destination .summary-label::before{
    content:"\2302";
}

.summary-card--distance .summary-label::before{
    content:"\2194";
}

.summary-card--duration .summary-label::before{
    content:"\25F7";
}
.map-layout{
    display:grid;
    grid-template-columns:minmax(0, 1.55fr) minmax(320px, 0.85fr);
    gap:18px;
}

.map-panel,
.transport-panel{
    padding:20px;
}

.map-panel-head,
.transport-panel-head,
.transport-group-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.map-panel-head{
    margin-bottom:14px;
}

.map-panel-head h2,
.transport-panel-head h2,
.transport-group-head h3{
    margin:0;
    color:var(--transport-ink);
}

.transport-panel-head{
    margin-bottom:14px;
}

.transport-panel-head p,
.transport-group-head p,
.route-info{
    margin:6px 0 0;
    color:var(--transport-muted);
    line-height:1.6;
    font-size:13px;
}

.map-tools{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:10px;
}

.map-legend{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:8px;
}

.legend-item{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:30px;
    padding:0 10px;
    border-radius:999px;
    background:#f6f8fc;
    color:#475467;
    font-size:12px;
    font-weight:700;
    border:1px solid #e7ebf3;
}

.legend-dot{
    width:8px;
    height:8px;
    border-radius:999px;
    background:#cbd5e1;
}

.legend-dot--stay{
    background:var(--transport-primary);
}

.legend-dot--bus{
    background:var(--transport-bus);
}

.legend-dot--subway{
    background:var(--transport-subway);
}

.map-focus-btn{
    height:42px;
    padding:0 14px;
    border-radius:14px;
    background:#eef2ff;
    color:#334155;
    font-weight:700;
    border:1px solid #d8def5;
}

.map-wrap{
    position:relative;
}

.naver-map{
    width:100%;
    height:560px;
    border-radius:20px;
    overflow:hidden;
    border:1px solid #e4e9f4;
}

.transport-panel{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.transport-group{
    border:1px solid var(--transport-line);
    border-radius:20px;
    padding:16px;
    background:linear-gradient(180deg, #ffffff, #fafbff);
}

.count-badge{
    min-width:38px;
    height:32px;
    padding:0 10px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--transport-primary-soft);
    color:var(--transport-primary);
    font-size:13px;
    font-weight:800;
}

.transport-list{
    list-style:none;
    padding:0;
    margin:14px 0 0;
    display:flex;
    flex-direction:column;
    gap:10px;
    max-height:250px;
    overflow:auto;
}

.transport-item{
    width:100%;
    padding:14px 16px;
    border-radius:18px;
    text-align:left;
    background:#fff;
    border:1px solid var(--transport-line);
    color:var(--transport-ink);
    display:flex;
    align-items:flex-start;
    gap:12px;
    transition:transform 0.18s ease, border-color 0.18s ease;
}

.transport-item:hover,
.transport-item.is-active{
    border-color:rgba(123,63,242,0.26);
}

.transport-item-icon{
    width:38px;
    height:38px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:18px;
    flex-shrink:0;
}

.transport-item-icon--bus{
    background:var(--transport-bus);
}

.transport-item-icon--subway{
    background:var(--transport-subway);
}

.transport-item-copy{
    flex:1;
    min-width:0;
}

.transport-item-name{
    display:block;
    color:var(--transport-ink);
    font-weight:800;
    line-height:1.35;
}

.transport-item-meta{
    display:block;
    margin-top:5px;
    color:var(--transport-muted);
    font-size:13px;
}

.transport-item-distance{
    flex-shrink:0;
    padding:8px 10px;
    border-radius:999px;
    background:#f3f5fa;
    color:#475467;
    font-size:12px;
    font-weight:800;
}

.transport-empty{
    margin:0;
    padding:12px 6px 0;
    color:var(--transport-muted);
    line-height:1.6;
}

.bus-marker,
.subway-marker,
.current-location-marker{
    background:transparent;
    border:none;
    font-size:22px;
    text-align:center;
}

.current-location-marker{
    font-size:20px;
}

@media (max-width:1080px){
    .hero-card,
    .map-layout{
        grid-template-columns:1fr;
    }

    .summary-grid{
        flex-direction:column;
    }

    .transport-list{
        max-height:none;
    }
}

@media (max-width:768px){
    .transport-page{
        padding:24px 12px 54px;
    }

    .transport-desc{
        white-space:normal;
    }

    .hero-card,
    .summary-card,
    .map-panel,
    .transport-panel{
        border-radius:22px;
    }

    .hero-card,
    .route-box,
    .stay-card,
    .planner-card,
    .summary-panel,
    .map-panel,
    .transport-panel{
        padding:16px;
    }

    .summary-grid{
        flex-direction:column;
    }

    .route-fields,
    .route-modes,
    .route-actions{
        grid-template-columns:1fr;
        flex-direction:column;
    }

    .destination-actions{
        justify-content:stretch;
        flex-wrap:wrap;
    }

    .destination-action-btn{
        flex:1 1 calc(50% - 4px);
    }

    .map-panel-head,
    .map-tools,
    .transport-panel-head,
    .transport-group-head{
        flex-direction:column;
        align-items:stretch;
    }

    .route-arrow{
        height:32px;
    }

    .transport-modal__dialog{
        width:min(100vw - 20px, 920px);
        margin:10px auto;
        padding:16px;
    }

    .accom-search-filter{
        grid-template-columns:1fr 1fr;
    }

    .accom-search-filter__submit{
        grid-column:1 / -1;
    }

    .stay-card{
        gap:14px;
        align-items:flex-start;
        padding:18px 16px;
        min-height:auto;
    }

    .stay-media{
        width:72px;
        height:72px;
    }

    .stay-icon{
        border-radius:20px;
        font-size:1.35rem;
    }

    .stay-image{
        border-radius:20px;
    }

    .stay-card h3{
        font-size:1.15rem;
    }

    .stay-card p,
    .planner-card__head p{
        font-size:0.95rem;
    }

    .planner-card{
        padding:18px 16px 16px;
    }

    .planner-card__head h2{
        font-size:1.25rem;
    }

    .quick-actions{
        gap:10px;
        margin-top:16px;
    }

    .route-field__hint{
        font-size:12px;
    }

    .route-field__hint strong{
        font-size:13px;
    }

    .quick-action{
        min-height:38px;
        padding:0 14px;
        font-size:13px;
    }

    .primary-btn,
    .secondary-btn,
    .ghost-btn{
        width:100%;
    }

    .map-legend{
        justify-content:flex-start;
    }

    .naver-map{
        height:52vh;
        min-height:340px;
    }

}
