:root {
    --bg: #f4f6f9;
    --surface: rgba(255, 255, 255, 0.94);
    --surface-strong: rgba(255, 255, 255, 0.98);
    --border: rgba(15, 23, 42, 0.08);
    --text: #121826;
    --muted: #667085;
    --accent: #2563eb;
    --accent-deep: #1d4ed8;
    --green: #15803d;
    --green-soft: rgba(21, 128, 61, 0.12);
    --shadow: 0 22px 52px rgba(15, 23, 42, 0.08);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    min-height: 100vh;
    padding: 28px 18px 56px;
    font-family: "Manrope", sans-serif;
    color: var(--text);
    background:
        radial-gradient(circle at top left, rgba(255,255,255,0.92), transparent 34%),
        radial-gradient(circle at top right, rgba(37, 99, 235, 0.08), transparent 24%),
        linear-gradient(180deg, #f8fafc 0%, var(--bg) 46%, #edf2f8 100%);
}

.page {
    max-width: 1360px;
    margin: 0 auto;
}

.back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--accent-deep);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-decoration: none;
}

.hero,
.panel,
.summary-card,
.day-card,
.show-option,
.itinerary-show,
.status-pill {
    border: 1px solid var(--border);
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.06);
}

.hero,
.panel {
    margin-bottom: 22px;
    border-radius: 30px;
    background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(248,250,252,0.97));
}

.hero {
    padding: 36px 34px;
}

.panel {
    padding: 24px;
}

.eyebrow {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(102, 112, 133, 0.9);
}

.eyebrow.muted {
    color: var(--muted);
}

h1,
h2,
.picker-title {
    margin: 0;
    font-family: "Fraunces", serif;
    line-height: 0.96;
    letter-spacing: -0.03em;
}

h1 {
    font-size: clamp(2.6rem, 6vw, 4.4rem);
}

h2 {
    font-size: clamp(1.9rem, 4vw, 2.7rem);
}

.picker-title {
    font-size: clamp(1.4rem, 3vw, 2rem);
}

.lede,
.panel-copy,
.summary-copy,
.status-copy,
.empty,
.itinerary-reason,
.itinerary-meta {
    color: var(--muted);
    line-height: 1.7;
}

.panel-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.panel-head.compact {
    margin-bottom: 14px;
}

.panel-copy {
    max-width: 480px;
}

.planner-controls {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.field span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

input,
select,
button,
textarea {
    font: inherit;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255,255,255,0.94);
    color: var(--text);
}

input,
select {
    min-height: 48px;
    padding: 0 14px;
    border-radius: 14px;
}

textarea {
    min-height: 100px;
    padding: 12px 14px;
    border-radius: 16px;
    resize: vertical;
}

.show-picker-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.75fr);
    gap: 18px;
    margin-top: 22px;
}

.show-picker,
.selected-shows-panel {
    min-width: 0;
}

.show-picker {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.selected-shows-panel {
    padding: 20px 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 22px;
    background: rgba(255,255,255,0.72);
}

.selected-shows-head {
    margin-bottom: 12px;
}

.show-picker-shell {
    position: relative;
}

.picker-helper,
.selected-shows-note {
    margin-bottom: 12px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.6;
}

.picker-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.show-search {
    margin-bottom: 12px;
}

.show-options {
    position: absolute;
    top: calc(100% - 4px);
    left: 0;
    right: 0;
    z-index: 20;
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 18px;
    background: rgba(255,255,255,0.98);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
}

.show-option {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    padding: 14px;
    border-radius: 18px;
    background: rgba(248, 250, 252, 0.92);
    cursor: pointer;
    text-align: left;
}

.show-option-title {
    font-weight: 800;
    line-height: 1.35;
}

.show-option-meta {
    margin-top: 6px;
    color: var(--muted);
    font-size: 14px;
}

.show-option-add {
    color: var(--accent-deep);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.show-option-empty {
    padding: 10px 12px;
    color: var(--muted);
    font-size: 14px;
}

.selected-shows {
    display: grid;
    gap: 10px;
    align-content: start;
}

.selected-shows-placeholder {
    padding: 12px 0;
    color: var(--muted);
    line-height: 1.6;
}

.selected-show-chip {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: rgba(255,255,255,0.88);
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.04);
}

.selected-show-copy {
    min-width: 0;
}

.selected-show-name {
    font-weight: 800;
    line-height: 1.35;
}

.selected-show-meta {
    margin-top: 4px;
    color: var(--muted);
    font-size: 14px;
}

.selected-show-remove {
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 999px;
    background: rgba(255,255,255,0.94);
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
}

.planner-notes-field {
    margin-top: 18px;
}

.planner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 18px;
}

.primary-button,
.secondary-button {
    min-height: 48px;
    padding: 0 18px;
    border-radius: 14px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
}

.planner-reset-button {
    min-height: 40px;
    padding: 0 14px;
}

.primary-button {
    border: 0;
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-deep) 100%);
    color: #fff;
    box-shadow: 0 14px 28px rgba(37, 99, 235, 0.22);
}

.secondary-button {
    border: 1px solid rgba(37, 99, 235, 0.18);
    background: rgba(37, 99, 235, 0.08);
    color: var(--accent-deep);
}

.summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.summary-card {
    padding: 20px;
    border-radius: 24px;
    background: linear-gradient(180deg, var(--surface-strong), rgba(248,250,252,0.96));
}

.summary-label {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.summary-value {
    margin-top: 10px;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-weight: 800;
    letter-spacing: -0.04em;
}

.selected-status {
    display: grid;
    gap: 16px;
}

.adjustments {
    display: grid;
    gap: 14px;
}

.adjustment-group {
    display: grid;
    gap: 8px;
}

.adjustment-label {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.adjustment-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.adjustment-pill {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    color: var(--text);
    font-size: 13px;
    font-weight: 700;
}

.status-block {
    display: grid;
    gap: 10px;
}

.status-title {
    font-size: 15px;
    font-weight: 800;
}

.status-title.warning {
    color: #b45309;
}

.status-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.status-pill {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border-radius: 16px;
    background: var(--surface);
}

.status-pill strong {
    font-size: 14px;
}

.status-pill span {
    color: var(--muted);
    font-size: 13px;
}

.itinerary-days {
    display: grid;
    gap: 14px;
}

.day-card {
    padding: 20px;
    border-radius: 24px;
    background: linear-gradient(180deg, var(--surface-strong), rgba(248,250,252,0.96));
}

.day-card-empty {
    background: rgba(255,255,255,0.72);
}

.day-card-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.day-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.day-action,
.inline-action {
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 999px;
    background: rgba(255,255,255,0.94);
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    cursor: pointer;
}

.itinerary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.day-title {
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.day-state {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.day-shows {
    display: grid;
    gap: 12px;
}

.itinerary-show {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    padding: 16px;
    border-radius: 20px;
    background: rgba(255,255,255,0.86);
}

.itinerary-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.itinerary-name {
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.3;
}

.selected-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.1);
    color: var(--accent-deep);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.itinerary-price {
    display: grid;
    align-content: start;
    gap: 6px;
    min-width: 160px;
    text-align: right;
}

.price-current {
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: -0.05em;
}

.price-drop {
    color: var(--green);
    font-size: 13px;
    font-weight: 800;
}

.secondary-link {
    display: inline-flex;
    margin-top: 10px;
    color: var(--accent-deep);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.empty {
    padding: 18px;
    border-radius: 18px;
    background: rgba(255,255,255,0.72);
}

.day-empty-copy {
    padding: 0;
    background: transparent;
}

@media (max-width: 980px) {
    .planner-controls,
    .summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .show-picker-layout {
        grid-template-columns: 1fr;
    }

    .picker-head,
    .panel-head,
    .day-card-head {
        align-items: start;
        flex-direction: column;
    }

    .itinerary-show {
        grid-template-columns: 1fr;
    }

    .itinerary-price {
        text-align: left;
        min-width: 0;
    }
}

@media (max-width: 640px) {
    body {
        padding: 18px 12px 44px;
    }

    .hero,
    .panel {
        border-radius: 24px;
        padding: 20px;
    }

    .planner-controls,
    .summary-grid,
    .show-options {
        grid-template-columns: 1fr;
    }

    .planner-actions {
        flex-direction: column;
    }

    .primary-button,
    .secondary-button {
        width: 100%;
    }
}

/* Shared Vegas Shows visual language */
:root { --text:#192037; --muted:#71778a; --accent:#5142d7; --accent-deep:#30258e; --border:#e9e7e2; --green:#138474; --shadow:0 18px 45px rgba(37,33,74,.08); }
body { padding:18px 20px 72px; font-family:"DM Sans",sans-serif; background:#fffdfa; }
body::before { content:""; position:fixed; z-index:-1; inset:0; background:radial-gradient(circle at 94% 8%,rgba(255,228,159,.34),transparent 20%),radial-gradient(circle at 2% 42%,rgba(221,225,255,.38),transparent 19%); pointer-events:none; }
.page { max-width:1180px; }.topbar { height:64px; display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }.brand,.planner-link,.nav-links a { color:var(--text); text-decoration:none; }.brand { display:inline-flex; align-items:center; gap:10px; font-size:20px; font-weight:700; letter-spacing:-.07em; }.brand>span:last-child>span { color:#ff715b; }.brand-mark { display:flex; align-items:end; gap:2px; width:21px; height:21px; padding:4px; border-radius:7px; background:var(--text); }.brand-mark i { display:block; width:3px; background:#fff; border-radius:3px; }.brand-mark i:nth-child(1) { height:5px; }.brand-mark i:nth-child(2) { height:10px; }.brand-mark i:nth-child(3) { height:7px; }.nav-links { display:flex; gap:28px; margin-left:82px; }.nav-links a { color:var(--muted); font-size:14px; font-weight:600; }.planner-link { padding:10px 14px; border-radius:12px; background:#f1efff; color:var(--accent-deep); font-size:13px; font-weight:700; }.planner-link-active { box-shadow:inset 0 0 0 1px rgba(81,66,215,.15); }.back-link { margin:3px 0 12px; color:var(--accent); font-size:12px; letter-spacing:0; }
.hero { position:relative; overflow:hidden; padding:50px 58px; border:0; border-radius:28px; background:linear-gradient(135deg,#20233c,#33339a); color:white; box-shadow:0 18px 40px rgba(35,31,86,.2); isolation:isolate; }.hero::before { content:"PLAN"; position:absolute; right:5%; bottom:-34px; z-index:-1; color:rgba(255,255,255,.06); font-family:"Playfair Display",serif; font-size:180px; font-style:italic; font-weight:700; letter-spacing:-.1em; }.hero::after { content:""; position:absolute; top:-120px; right:12%; z-index:-1; width:300px; height:300px; border:1px solid rgba(255,207,135,.4); border-radius:50%; box-shadow:0 0 0 48px rgba(255,255,255,.04),0 0 0 96px rgba(255,255,255,.025); }.hero .eyebrow { color:#c9c8ef; }.hero h1 { max-width:720px; font-family:"Playfair Display",serif; font-size:clamp(2.8rem,5.4vw,4.5rem); }.hero .lede { max-width:690px; color:#d6d8ea; font-size:16px; line-height:1.65; }.eyebrow { color:#8b8d9e; font-size:10px; letter-spacing:.15em; }.eyebrow.muted { color:#8b8d9e; } h1,h2,.picker-title { font-family:"Playfair Display",serif; letter-spacing:-.045em; } h2 { line-height:1; }
.panel { padding:26px; border:1px solid var(--border); border-radius:22px; background:rgba(255,255,255,.9); box-shadow:var(--shadow); }.panel-head { margin-bottom:22px; }.panel-copy { font-size:14px; line-height:1.55; }.planner-controls { grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.field { gap:6px; }.field span { color:#8b8d9e; font-size:10px; letter-spacing:.11em; } input,select,textarea { border-color:var(--border); border-radius:10px; background:#fff; } input,select { min-height:45px; } textarea { min-height:88px; } input:focus,select:focus,textarea:focus { outline:0; border-color:#aaa1fb; box-shadow:0 0 0 3px rgba(81,66,215,.1); }.show-picker { margin-top:0; padding-top:0; border:0; }.selected-shows-panel { border-color:#e1ddff; border-radius:16px; background:#f5f3ff; }.picker-helper,.selected-shows-note { font-size:13px; }.primary-button { min-height:45px; border-radius:10px; background:var(--accent); box-shadow:0 10px 20px rgba(81,66,215,.2); }.secondary-button,.day-action,.inline-action { border-color:var(--border); border-radius:10px; color:var(--accent); }.planner-submit { padding:0 22px; }.summary-card,.day-card { border-color:var(--border); border-radius:18px; box-shadow:none; }.summary-card:nth-child(1) { background:#fff0ec; }.summary-card:nth-child(2) { background:#e8faf6; }.summary-card:nth-child(3) { background:#f1efff; }.summary-card:nth-child(4) { background:#fff7e5; }.itinerary-show { border:1px solid var(--border); border-radius:14px; background:#fffdfa; }.selected-badge { background:#f1efff; color:var(--accent); }.price-drop { color:var(--green); }.secondary-link { color:var(--accent); }
@media (max-width:900px) { .planner-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }.nav-links { margin-left:0; } }
@media (max-width:640px) { body { padding:5px 12px 48px; }.nav-links { display:none; }.hero { padding:38px 24px; }.hero::before { font-size:105px; }.panel { padding:18px; border-radius:18px; }.planner-controls { grid-template-columns:1fr; }.primary-button { width:100%; } }
.show-options[hidden] { display:none; }
.picker-choice { display:flex; gap:10px; margin:0 0 14px; padding:12px 14px; border:1px solid #e1ddff; border-radius:12px; background:#f5f3ff; color:#5d5a76; font-size:13px; line-height:1.55; }.picker-choice p { margin:0; }.picker-choice strong { color:#38307f; }.picker-choice-icon { display:grid; flex:0 0 25px; height:25px; place-items:center; border-radius:8px; background:#5142d7; color:#fff; font-size:12px; }
.planning-mode { display:grid; grid-template-columns:minmax(190px,.56fr) minmax(0,1.44fr); gap:20px; align-items:center; margin-top:20px; padding:18px; border:1px solid #e5e1fb; border-radius:16px; background:#faf9ff; }.planning-mode-copy .eyebrow { margin-bottom:7px; }.planning-mode-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.planning-mode-option { display:grid; gap:5px; min-height:86px; padding:14px; border:1px solid var(--border); border-radius:12px; background:#fff; color:var(--text); cursor:pointer; text-align:left; transition:border-color .18s,background .18s,box-shadow .18s; }.planning-mode-option strong { font-size:14px; }.planning-mode-option span { color:var(--muted); font-size:12px; line-height:1.4; }.planning-mode-option:hover { border-color:#bbb3fb; }.planning-mode-option.active { border-color:#5142d7; background:#f1efff; box-shadow:0 0 0 3px rgba(81,66,215,.1); }.planning-mode-option.active strong { color:#38307f; }
@media (max-width:760px) { .planning-mode { grid-template-columns:1fr; }.planning-mode-options { grid-template-columns:1fr; } }
.planner-area { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:20px; padding:16px 18px; border:1px solid #e5e1fb; border-radius:16px; background:#faf9ff; }.planner-area .eyebrow { margin-bottom:7px; }.planner-area-filter { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }.planner-area-option { min-height:34px; padding:0 12px; border:1px solid var(--border); border-radius:999px; background:#fff; color:var(--muted); cursor:pointer; font-size:12px; font-weight:700; transition:border-color .18s,background .18s,color .18s,box-shadow .18s; }.planner-area-option:hover { border-color:#bbb3fb; color:var(--accent); }.planner-area-option.active { border-color:var(--accent); background:#f1efff; color:#38307f; box-shadow:0 0 0 3px rgba(81,66,215,.08); }
@media (max-width:760px) { .planner-area { align-items:flex-start; flex-direction:column; }.planner-area-filter { justify-content:flex-start; } }
