@import "https://fonts.googleapis.com/css2?family=Syne:wght@500;600;700&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--bg:#f6f7ee;--surface:#fffefa;--surface-warm:#fff2d4;--surface-blue:#e6f0ff;--ink:#191b18;--ink-mid:#54594f;--ink-soft:#808779;--line:#191b181f;--line-strong:#191b183d;--blue:#2357c6;--blue-soft:#2357c61c;--tomato:#d34c32;--tomato-soft:#d34c321c;--green:#08795f;--green-soft:#08795f1a;--yellow:#f4b63f;--error:#b42318;--error-soft:#b4231814;--font-display:"Syne", sans-serif;--font-body:"DM Sans", sans-serif;--font-mono:"IBM Plex Mono", monospace;--radius:8px;--shadow:0 14px 34px #191b1814, 0 2px 6px #191b180d}*,:before,:after{box-sizing:border-box}html{min-height:100%}body{min-height:100vh;color:var(--ink);background:linear-gradient(135deg, #2357c612, transparent 32%), linear-gradient(315deg, #f4b63f2e, transparent 30%), var(--bg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}h1,h2,h3,p{margin-top:0}.app-shell{width:min(1060px,100% - 32px);margin:0 auto;padding:22px 0 48px}.app-header{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;padding:2px 0 18px;display:grid}.eyebrow,.badge-row span,.button,.choice-button,.mini-button,.field span,.trip-kicker,.chain-status span,.route-step span,.route-step small,.status,dt,summary{font-family:var(--font-mono);letter-spacing:0}.eyebrow{color:var(--tomato);text-transform:uppercase;margin-bottom:8px;font-size:.72rem;font-weight:700}h1{max-width:760px;font-family:var(--font-display);margin-bottom:7px;font-size:clamp(1.95rem,4vw,2.75rem);line-height:1.02}h2{font-family:var(--font-display);margin-bottom:6px;font-size:clamp(1.35rem,2.4vw,1.8rem);line-height:1.1}h3{font-family:var(--font-display);margin-bottom:0;font-size:1rem}.app-header p:not(.eyebrow),.planner-copy p{max-width:620px;color:var(--ink-mid);margin-bottom:0}.badge-row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.badge-row span{border:1px solid var(--line);min-height:28px;color:var(--ink-mid);white-space:nowrap;background:#fffefac2;border-radius:999px;align-items:center;padding:0 10px;font-size:.72rem;font-weight:700;display:inline-flex}.planner-shell{grid-template-columns:minmax(190px,.32fr) minmax(0,1fr);align-items:start;gap:20px;margin-top:8px;display:grid}.planner-copy{padding:16px 0;position:sticky;top:18px}.results-panel,.model-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fffefae6}.journey-card{gap:12px;min-width:0;display:grid}.edge-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:10px;display:grid}.edge-control,.chain-lock{border:1px solid var(--line);border-radius:var(--radius);background:#fffefadb;min-width:0;padding:11px;box-shadow:0 4px 16px #191b180a}.edge-control p,.chain-lock span{color:var(--ink-soft);margin:0 0 8px;font-size:.78rem;font-weight:700}.choice-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.choice-button{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);min-width:0;min-height:34px;color:var(--ink-mid);text-transform:uppercase;padding:0 9px;font-size:.7rem;font-weight:700}.choice-button--active{border-color:var(--blue);background:var(--blue);color:#fff}.chain-lock{background:linear-gradient(135deg, var(--surface-blue), #f4b63f2e);border-color:#08795f2e;align-content:center;min-width:170px;display:grid}.chain-lock strong{font-family:var(--font-display);font-size:.96rem}.trip-stack{gap:10px;display:grid}.trip-card{border:1px solid var(--line);border-radius:var(--radius);background:#fffefaeb;grid-template-columns:42px minmax(0,1fr);gap:10px;padding:12px;display:grid;box-shadow:0 5px 18px #191b180b}.trip-card__rail{justify-content:center;display:flex;position:relative}.trip-card__rail:before{content:"";border-left:2px dashed #2357c647;width:2px;position:absolute;top:34px;bottom:-22px}.trip-card:last-child .trip-card__rail:before{display:none}.trip-card__rail span,.route-step__number{background:var(--green);color:#fff;width:34px;height:34px;font-family:var(--font-mono);border-radius:999px;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:inline-flex}.trip-card__main{gap:10px;min-width:0;display:grid}.trip-card__top{justify-content:space-between;align-items:start;gap:12px;display:flex}.trip-kicker{color:var(--tomato);text-transform:uppercase;margin:0 0 2px;font-size:.68rem;font-weight:700}.mini-button{border:1px solid var(--line);border-radius:var(--radius);background:var(--tomato-soft);min-height:30px;color:var(--tomato);text-transform:uppercase;padding:0 10px;font-size:.68rem;font-weight:700}.chain-status{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.chain-status div{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-warm);min-width:0;padding:9px 10px}.chain-status span,.route-step span,.route-step small{color:var(--ink-soft);text-transform:uppercase;font-size:.68rem;font-weight:700;display:block}.chain-status strong{color:var(--ink-mid);margin-top:2px;font-size:.85rem;display:block}.trip-fields{grid-template-columns:minmax(130px,1fr) repeat(2,minmax(96px,.72fr)) minmax(88px,.58fr);gap:8px;display:grid}.field{gap:5px;min-width:0;display:grid}.field span{color:var(--ink-soft);text-transform:uppercase;font-size:.68rem;font-weight:700}input{border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;min-width:0;height:36px;color:var(--ink);background:#fff;outline:none;padding:0 10px;font-size:.9rem}input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.action-row{flex-wrap:wrap;gap:8px;display:flex}.button{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);min-height:38px;color:var(--ink);text-transform:uppercase;justify-content:center;align-items:center;padding:0 13px;font-size:.72rem;font-weight:700;display:inline-flex}.button--primary{border-color:var(--tomato);background:var(--tomato);color:#fff}.button--ghost{color:var(--ink-mid)}.button--light{color:#fff;background:#fff3;border-color:#ffffff94}.status{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-warm);color:var(--ink-mid);margin:0;padding:10px 12px;font-size:.78rem}.status--error{background:var(--error-soft);color:var(--error);border-color:#b423183d}.results-panel{margin-top:16px;overflow:hidden}.results-hero{background:linear-gradient(135deg, #ffffff2e, transparent), var(--green);color:#fff;justify-content:space-between;align-items:start;gap:16px;padding:18px;display:flex}.results-hero .eyebrow,.results-hero p{color:#ffffffd1}.results-hero h2{max-width:760px;margin-bottom:7px}.results-hero p{max-width:720px;margin-bottom:0}.route-list{gap:0;padding:6px 14px 14px;display:grid}.route-step{border-bottom:1px solid var(--line);grid-template-columns:42px minmax(0,1fr);gap:10px;padding:12px 0;display:grid}.route-step:last-child{border-bottom:none}.route-step__body{gap:9px;min-width:0;display:grid}.route-step__meta{flex-wrap:wrap;align-items:baseline;gap:6px 12px;display:flex}.route-step__meta strong{font-family:var(--font-display)}.route-step__meta span{color:var(--ink-soft);font-size:.82rem}.route-step__places{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.route-step__places div{border:1px solid var(--line);border-radius:var(--radius);background:#fffefaeb;min-width:0;padding:10px}.route-step__places strong{overflow-wrap:anywhere;margin:2px 0;display:block}.shared-note{color:var(--ink-soft);margin:0;padding:0 18px 18px;font-size:.84rem}.model-card{background:#fffdf8b8;margin-top:14px;padding:0}.model-card details{padding:14px}summary{color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:14px;font-size:.84rem;font-weight:700;list-style:none;display:flex}summary::-webkit-details-marker{display:none}.summary-hint{color:var(--ink-soft);text-transform:uppercase;font-size:.7rem}.model-glance,.model-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.model-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.model-glance div,.target-detail{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;padding:10px}dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}dt{color:var(--ink-soft);text-transform:uppercase;font-size:.68rem;font-weight:700}dd{overflow-wrap:anywhere;color:var(--ink-mid);margin:2px 0 0;font-size:.84rem}.muted{color:var(--ink-soft);margin:0;font-size:.8rem}.muted--full{grid-column:1/-1}.matrix-wrap{border:1px solid var(--line);border-radius:var(--radius);margin-top:10px;overflow-x:auto}table{border-collapse:collapse;width:100%}td{border-bottom:1px solid var(--line);text-align:center;color:var(--ink-mid);padding:8px}tr:last-child td{border-bottom:none}@media (width<=920px){.app-header,.planner-shell,.edge-strip{grid-template-columns:1fr}.planner-copy{padding-bottom:0;position:static}.badge-row{justify-content:flex-start}.chain-lock{min-width:0}.trip-fields,.route-step__places,.model-glance,.model-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.app-shell{width:min(100% - 24px,1080px);padding-top:16px}.journey-card,.trip-card,.results-hero,.model-card details{padding:12px}.trip-card,.route-step{grid-template-columns:34px minmax(0,1fr)}.choice-row,.chain-status,.trip-fields,.route-step__places,.model-glance,.model-detail-grid,dl{grid-template-columns:1fr}.results-hero,.trip-card__top{flex-direction:column}.button,.mini-button{width:100%}}
