:root { --paper:#f5f1e8; --paper-deep:#ebe5d7; --ink:#1d2825; --muted:#728078; --line:#d9d5ca; --orange:#e66b3e; --orange-dark:#c9562d; --green:#657d6e; --blue:#93a7aa; --white:#fffdf8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter, sans-serif; font-size:13px; }
button, a { font:inherit; color:inherit; } button { border:0; cursor:pointer; background:none; } a { text-decoration:none; }
.app-shell { display:flex; min-height:100vh; }
.sidebar { width:248px; min-height:100vh; padding:31px 21px 22px; background:#ece8df; border-right:1px solid #dfdbd0; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; }
.brand { display:flex; align-items:center; gap:11px; padding:0 9px; } .brand strong { display:block; font-size:12px; letter-spacing:1.8px; } .brand small { display:block; color:#88908b; font:10px "DM Mono", monospace; letter-spacing:1px; margin-top:3px; }
.brand-mark { width:26px; height:28px; display:flex; align-items:flex-end; gap:2px; } .brand-mark span { display:block; width:7px; background:var(--orange); transform:skew(-26deg); } .brand-mark span:nth-child(1){height:14px}.brand-mark span:nth-child(2){height:23px}.brand-mark span:nth-child(3){height:18px}
.trip-switcher { margin:56px 8px 31px; }.eyebrow { display:block; color:#88918a; font:500 10px "DM Mono", monospace; letter-spacing:1.4px; }.trip-button { width:100%; margin-top:10px; padding:12px 8px; display:flex; align-items:center; gap:9px; text-align:left; border-top:1px solid #d5d0c4; border-bottom:1px solid #d5d0c4; }.trip-button strong,.trip-button small {display:block}.trip-button strong{font-size:12px}.trip-button small{font-size:10px;color:#88918a;margin-top:3px}.trip-dot { width:8px;height:8px;border-radius:50%;background:var(--orange); box-shadow:0 0 0 4px #f5d7ca; margin-left:2px }.chevron{margin-left:auto;font-size:18px;color:#87908a}
.nav-label { margin:0 11px 12px; }.nav-label.second { margin-top:35px; }.nav-link { display:flex; align-items:center; gap:13px; height:42px; padding:0 11px; border-radius:4px; color:#65736c; font-size:12px; }.nav-link.active { color:var(--ink); background:#e0dbcf; font-weight:600; }.nav-icon { width:15px; text-align:center; font-size:18px; color:#77847d; }.nav-link.active .nav-icon { color:var(--orange); }.nav-count { margin-left:auto; color:#9aa19b; font:10px "DM Mono",monospace; }
.sidebar-bottom { margin-top:auto; }.weather-mini { background:#e2ded3;padding:12px 10px;display:flex;align-items:center;gap:9px;margin-bottom:16px; }.sun-icon{font-size:24px;color:var(--orange)}.weather-mini strong,.weather-mini small,.profile strong,.profile small{display:block}.weather-mini strong{font-size:11px}.weather-mini small{color:#89938b;font-size:10px;margin-top:3px}.weather-mini>span{margin-left:auto;color:#89938b}.sync-status{font:10px "DM Mono",monospace;color:#87918b;padding:0 10px 18px}.sync-dot{width:6px;height:6px;background:#7da181;border-radius:50%;display:inline-block;margin-right:6px}.profile{border-top:1px solid #d7d2c7;padding:17px 7px 0;display:flex;align-items:center;gap:9px}.avatar{width:29px;height:29px;border-radius:50%;background:#304c45;color:#fffaf1;font:10px "DM Mono",monospace;display:grid;place-items:center}.profile strong{font-size:11px}.profile small{color:#929a93;font-size:10px;margin-top:2px}.profile>span{margin-left:auto;color:#a1a69e;letter-spacing:2px}
.main-content { flex:1; min-width:0; max-width:1500px; margin:auto; padding:0 5.5vw; }.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.breadcrumbs{font:10px "DM Mono",monospace;color:#9b9e97;letter-spacing:1px}.breadcrumbs i{font-style:normal;margin:0 9px;color:#c1beb5}.breadcrumbs strong{color:#54635b;font-weight:500}.top-actions{display:flex;align-items:center;gap:8px}.icon-btn{font-size:23px;width:34px;height:34px;position:relative;color:#69766f}.notification-dot{position:absolute;width:5px;height:5px;right:5px;top:4px;border:1px solid var(--paper);background:var(--orange);border-radius:50%}.share-btn{margin-left:12px;padding:10px 14px;border:1px solid #bfc3ba;border-radius:3px;font-size:11px;color:#536158}.share-btn span{margin-left:12px;color:var(--orange);font-size:15px}
.hero-section{display:grid;grid-template-columns:44% 56%;min-height:365px;border-bottom:1px solid var(--line)}.hero-copy{padding:59px 20px 40px 0}.status-pill{font:10px "DM Mono",monospace;letter-spacing:1px;color:#6c7b71;display:flex;align-items:center;gap:8px}.status-pill span{width:7px;height:7px;border-radius:50%;background:#7da181}.hero-copy h1{font:500 64px/0.96 Fraunces,serif;letter-spacing:-2.5px;margin:22px 0 19px}.hero-copy h1 em{font-style:italic;color:var(--orange)}.hero-subtitle{color:#77827b;font-size:13px;line-height:1.7;margin:0}.hero-meta{display:flex;gap:30px;margin-top:37px}.meta-label{display:block;color:#9a9f98;font:9px "DM Mono",monospace;letter-spacing:1px;margin-bottom:7px}.hero-meta strong{font-size:11px;white-space:nowrap}
.hero-map{margin:26px 0 28px 30px;position:relative;overflow:hidden;background:#bbc7bd;border:1px solid #acb9ae;min-height:310px}.map-grid{position:absolute;inset:0;opacity:.35;background-image:linear-gradient(30deg,transparent 49%,#dbe0d5 50%,transparent 51%),linear-gradient(150deg,transparent 49%,#dbe0d5 50%,transparent 51%);background-size:64px 48px}.map-grid:after{content:"";position:absolute;inset:-30%;background:repeating-linear-gradient(168deg,transparent 0 22px,rgba(111,141,121,.28) 23px 24px,transparent 25px 43px);transform:rotate(-5deg)}.map-label{position:absolute;font:10px "DM Mono",monospace;letter-spacing:1px;color:#6a8070}.map-label span{font-size:7px;display:block;letter-spacing:.5px;margin-top:3px;color:#87988a}.chamonix-label{left:70px;top:36px}.italy-label{right:37px;bottom:56px}.suisse-label{left:26px;top:180px;transform:rotate(-25deg)}.route-line{position:absolute;inset:0;width:100%;height:100%}.map-pin{position:absolute;width:23px;height:23px;border-radius:50%;background:var(--orange);border:3px solid #fffaf1;color:#fffaf1;box-shadow:0 2px 4px #53635866;display:grid;place-items:center}.map-pin span{font:8px "DM Mono",monospace}.pin-start{left:21%;top:16%}.pin-mid{left:58%;top:35%}.pin-end{left:54%;top:70%}.map-scale{position:absolute;bottom:17px;left:18px;color:#5f7465;font:9px "DM Mono",monospace}.map-scale span{display:block;width:42px;border-top:2px solid #61786a;margin-bottom:4px}.north{position:absolute;right:17px;top:15px;font:bold 11px "DM Mono",monospace;color:#66796d}
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:45px;padding:43px 0 38px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.section-heading h2{font:500 24px Fraunces,serif;margin:7px 0 0;letter-spacing:-.4px}.text-btn{color:#64756b;font-size:11px}.text-btn span,.panel-link span{color:var(--orange);font-size:16px;margin-left:8px}.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:48px}.stat-card{background:var(--white);border:1px solid #e5e1d7;min-height:116px;padding:17px 13px;display:flex;gap:12px}.stat-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;font-size:19px;flex:none}.stat-icon.orange{background:#f9dfd4;color:var(--orange)}.stat-icon.green{background:#dee8df;color:#6b8875}.stat-icon.blue{background:#dfe9e9;color:#6c898d}.stat-kicker{display:block;color:#9ba098;font:9px "DM Mono",monospace;letter-spacing:.7px;margin:2px 0 9px}.stat-card strong{font:500 24px Fraunces,serif;display:block}.stat-card strong small{font:13px Inter,sans-serif;color:#8e978f}.trend{display:block;font-size:9px;color:#8b958d;margin-top:9px}.trend.positive{color:#6b9277}.itinerary-heading{margin-bottom:13px}.view-toggle{display:flex;border:1px solid #d3d5cd;border-radius:3px;padding:2px;gap:2px}.toggle{padding:6px 8px;color:#8b958d;font-size:10px}.toggle.active{background:#e4e5de;color:#48584f}.day-list{border-top:1px solid var(--line)}.day-row{display:flex;align-items:center;gap:15px;min-height:68px;border-bottom:1px solid var(--line);position:relative}.day-number{width:29px;color:#a2a69e;font:10px "DM Mono",monospace}.day-main{flex:1;min-width:0}.day-route{display:flex;gap:9px;align-items:center;font-size:12px}.day-route span{color:var(--orange);font-size:17px}.day-details{display:flex;align-items:center;gap:8px;color:#8d968f;font-size:10px;margin-top:7px}.day-details i{width:3px;height:3px;background:#c4c5bd;border-radius:50%}.day-tag{font:9px "DM Mono",monospace;letter-spacing:.5px;padding:5px 6px;border-radius:2px}.day-tag.ready{color:#66816e;background:#e3ece2}.day-tag.pending{color:#a77657;background:#f3e3da}.row-chevron{font-size:17px;color:#9ca39c;padding:10px}.day-row.featured:before{content:"";position:absolute;left:-14px;height:42px;border-left:3px solid var(--orange)}.day-row.featured .day-number{color:var(--orange);font-weight:600}.more-days{height:59px;background:#efebe2;display:flex;align-items:center;justify-content:center;gap:20px;color:#8c968d;font:10px "DM Mono",monospace}.more-days .text-btn{font-family:Inter,sans-serif;font-size:10px}.completion-card{background:#dfe8de;margin-top:34px;padding:25px 30px;display:flex;justify-content:space-between;align-items:center;min-height:190px}.completion-copy h3{font:500 28px/1 Fraunces,serif;margin:9px 0 8px}.completion-copy p{font-size:11px;color:#6f7d71;max-width:250px;line-height:1.5;margin:0 0 18px}.dark-btn{background:#253b34;color:#fffaf1;border-radius:3px;padding:10px 13px;font-size:11px}.dark-btn span{color:#edb49a;margin-left:17px;font-size:16px}.progress-ring{width:117px;height:117px;position:relative;flex:none}.progress-ring svg{transform:rotate(-90deg);width:100%;height:100%}.ring-bg,.ring-progress{fill:none;stroke-width:8}.ring-bg{stroke:#c3d2c1}.ring-progress{stroke:var(--orange);stroke-linecap:round;stroke-dasharray:213 314}.progress-ring strong{position:absolute;inset:0;display:grid;place-items:center;font:500 27px Fraunces,serif}.progress-ring strong small{font:12px Inter,sans-serif;margin:14px 0 0 2px}
.secondary-column{display:flex;flex-direction:column;gap:17px}.side-panel{background:var(--white);border:1px solid #e5e1d7;padding:20px 17px}.panel-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:17px}.panel-heading h3{font:500 19px Fraunces,serif;margin:7px 0 0}.more-btn{color:#9ba39d;letter-spacing:2px}.task-item{display:flex;gap:9px;align-items:flex-start;padding:13px 0;border-top:1px solid #e8e5dd}.task-item strong,.task-item small{display:block}.task-item strong{font-size:11px;font-weight:600}.task-item small{font-size:9px;color:#9a9f98;margin-top:5px}.task-check{width:14px;height:14px;border:1px solid #bdc5bd;border-radius:50%;flex:none;margin-top:1px}.priority{font:8px "DM Mono",monospace;margin-left:auto;padding-top:2px}.priority.high{color:var(--orange)}.priority.medium{color:#bd9463}.priority.low{color:#719075}.panel-link{font-size:10px;color:#728078;border-top:1px solid #e8e5dd;width:100%;text-align:left;padding-top:15px;margin-top:1px}.panel-date{font:9px "DM Mono",monospace;color:#a2a69e;padding-top:4px}.weather-main{display:flex;align-items:center;padding:5px 0 17px}.big-sun{font-size:42px;line-height:1;color:var(--orange);margin-right:14px}.weather-main strong,.weather-main span{display:block}.weather-main strong{font-size:12px}.weather-main span{font-size:10px;color:#929b94;margin-top:5px}.temperature{margin-left:auto;font:500 25px Fraunces,serif}.temperature small{display:inline;color:#a0a69f;font:11px Inter,sans-serif;margin-left:2px}.forecast-row{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #e8e5dd;border-bottom:1px solid #e8e5dd;padding:11px 0 9px}.forecast-row div{text-align:center}.forecast-row span,.forecast-row strong,.forecast-row b{display:block}.forecast-row span{font:8px "DM Mono",monospace;color:#a0a69f}.forecast-row strong{font-size:15px;color:#e79865;margin:7px 0}.forecast-row b{font-size:10px;font-weight:500}.weather-note{font-size:9px;color:#9b9f98;line-height:1.45;margin:12px 0 13px}.packing-progress{height:5px;background:#e7e7df;border-radius:4px;overflow:hidden}.packing-progress span{display:block;height:100%;background:var(--orange)}.progress-label{font:10px "DM Mono",monospace;color:#78857c}.pack-preview{display:flex;align-items:center;gap:10px;padding:18px 0 13px}.pack-illustration{width:37px;height:37px;border-radius:50%;background:#e8eee4;color:#718a75;display:grid;place-items:center;font-size:22px}.pack-preview strong,.pack-preview small{display:block}.pack-preview strong{font-size:11px}.pack-preview small{font-size:9px;color:#929b94;margin-top:4px}.circle-arrow{margin-left:auto;width:26px;height:26px;border:1px solid #cbd2ca;border-radius:50%;color:var(--orange)}.pack-tags{display:flex;flex-wrap:wrap;gap:6px}.pack-tags span{font-size:9px;border:1px solid #dfe2da;padding:5px 6px;color:#8b958d}.pack-tags .done{color:#78917b;background:#edf3ea;border-color:#d4e1d2}.quote-card{background:#e4ddd0;padding:19px 19px 18px;min-height:143px;position:relative}.quote-mark{font:45px Fraunces,serif;color:var(--orange);height:25px}.quote-card p{font:italic 16px/1.3 Fraunces,serif;margin:9px 0 8px;max-width:210px}.quote-card>span{font:9px "DM Mono",monospace;color:#9a988e}.edit-note{position:absolute;right:17px;bottom:15px;color:#788278;font-size:9px}.footer{border-top:1px solid var(--line);padding:18px 0 23px;display:flex;justify-content:space-between;color:#9da19b;font:9px "DM Mono",monospace;letter-spacing:.5px}
.toast{position:fixed;right:28px;bottom:24px;background:#253b34;color:#fffaf1;padding:12px 16px;border-radius:3px;font-size:11px;box-shadow:0 8px 24px #253b3438;transform:translateY(20px);opacity:0;pointer-events:none;transition:.25s;z-index:10}.toast.show{transform:translateY(0);opacity:1}.modal-backdrop{position:fixed;inset:0;background:#1d282577;display:grid;place-items:center;padding:20px;z-index:20}.modal-backdrop[hidden]{display:none}.modal{position:relative;width:min(430px,100%);background:var(--paper);padding:30px;box-shadow:0 18px 60px #1d282544}.modal-close{position:absolute;right:18px;top:14px;color:#8c958d;font-size:24px}.modal h2{font:500 32px Fraunces,serif;margin:8px 0 9px}.modal>p{color:#7e8981;font-size:11px;line-height:1.5;margin-bottom:22px}.modal-checklist{border-top:1px solid var(--line);margin-bottom:23px}.modal-checklist label{display:block;padding:13px 0;border-bottom:1px solid var(--line);font-size:11px}.modal-checklist input{accent-color:var(--orange);margin-right:10px}
@media (max-width:1100px){.sidebar{width:215px}.main-content{padding:0 3.5vw}.content-grid{gap:26px}.hero-copy h1{font-size:56px}.hero-meta{gap:17px}.hero-meta strong{font-size:10px}}
@media (max-width:820px){.sidebar{width:70px;padding:26px 10px}.brand{padding:0;justify-content:center}.brand>div:last-child,.trip-switcher,.nav-label,.nav-link:not(.active) .nav-count,.nav-link{font-size:0}.brand-mark{transform:scale(.85)}.nav{margin-top:52px}.nav-link{justify-content:center;padding:0}.nav-link.active{font-size:0}.nav-icon{font-size:18px}.nav-count{display:none}.sidebar-bottom{display:none}.main-content{padding:0 22px}.hero-section{grid-template-columns:1fr}.hero-copy{padding-bottom:25px}.hero-map{margin:0 0 28px;min-height:300px}.content-grid{grid-template-columns:1fr}.secondary-column{display:grid;grid-template-columns:1fr 1fr}.quote-card{grid-column:span 2}.hero-copy h1{font-size:56px}}
@media (max-width:560px){.topbar{height:70px}.breadcrumbs span,.breadcrumbs i{display:none}.share-btn{font-size:0;padding:8px}.share-btn span{font-size:15px;margin:0}.hero-copy h1{font-size:48px}.hero-meta{gap:12px;flex-wrap:wrap}.hero-meta strong{font-size:10px}.stat-cards{grid-template-columns:1fr;margin-bottom:36px}.stat-card{min-height:90px}.section-heading{align-items:start;gap:12px;flex-direction:column}.itinerary-heading{flex-direction:row;align-items:end}.day-row{gap:7px}.day-route{font-size:10px}.day-details{gap:5px;font-size:8px}.day-details span:nth-of-type(1){display:none}.day-tag{font-size:7px}.completion-card{padding:20px;gap:10px}.completion-copy h3{font-size:24px}.progress-ring{width:85px;height:85px}.secondary-column{display:flex}.quote-card{min-height:130px}.footer{font-size:8px;gap:10px}.footer span:last-child{text-align:right}.modal{padding:25px}}

.day-row.extra-stage { display: none; }
.edit-trip-btn { padding:10px 12px; border:1px solid #d0d1c8; border-radius:3px; font-size:11px; color:#6b786f; }
.edit-trip-btn:hover { background:#ebe8df; }
.export-btn { color:#758078; font-size:10px; padding:7px 5px; white-space:nowrap; }
.export-btn:hover { color:var(--orange-dark); }
.planning-note { color:#9a9e97; font-size:9px; margin:-6px 0 13px; line-height:1.5; }
.stage-stay { display:block; margin-top:6px; color:#89938c; font-size:9px; }
.resource-links { display:grid; gap:9px; border-top:1px solid #e8e5dd; padding:13px 0 2px; }
.resource-links a { color:#64756b; font-size:10px; }
.resource-links a:hover { color:var(--orange-dark); text-decoration:underline; }
.edit-logistics { color:#64756b; font-size:10px; }
.logistics-detail { border-top:1px solid #e8e5dd; padding:11px 0; }
.logistics-detail span,.budget-summary span { display:block; color:#9a9f98; font:8px "DM Mono",monospace; letter-spacing:.7px; margin-bottom:5px; }
.logistics-detail strong { display:block; color:#536158; font-size:10px; line-height:1.45; overflow-wrap:anywhere; font-weight:500; }
.budget-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; border-top:1px solid #e8e5dd; padding-top:13px; }
.budget-summary strong { display:block; color:#536158; font:500 12px Fraunces,serif; overflow-wrap:anywhere; }
.budget-note { color:#a0a39c; font-size:8px; line-height:1.4; margin:11px 0 0; }
.edit-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:23px; }
.edit-fields label { display:flex; flex-direction:column; gap:6px; color:#758078; font:10px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.4px; }
.edit-fields label:last-child { grid-column:span 2; }
.edit-fields input,.edit-fields textarea { border:1px solid #d4d5cc; background:#fffdf8; color:var(--ink); font:12px Inter,sans-serif; padding:10px; resize:vertical; text-transform:none; letter-spacing:0; }
.edit-fields input:focus,.edit-fields textarea:focus { outline:2px solid #f0b59c; border-color:var(--orange); }
.itinerary-actions { display:flex; align-items:center; gap:8px; }
.add-stage-btn { padding:7px 9px; border:1px solid #d0d1c8; border-radius:3px; color:#536158; font-size:10px; white-space:nowrap; }
.add-stage-btn:hover,.move-stage-btn:hover { background:#e7e5dc; }
.day-row { cursor:pointer; transition:background .18s, opacity .18s, transform .18s; }
.day-row:hover { background:#f0ede5; }
.day-row:focus-visible,.text-btn:focus-visible,.add-stage-btn:focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
.row-chevron { pointer-events:none; }
.day-tag { white-space:nowrap; }
.day-tag.booked { color:#66816e; background:#e3ece2; }
.more-days { gap:12px; }
.view-timeline .day-row { margin-left:14px; padding-left:13px; border-left:2px solid #cbd5c9; }
.view-timeline .day-row.featured { border-left-color:var(--orange); }
.view-timeline .day-row:after { content:""; position:absolute; left:-6px; top:27px; width:10px; height:10px; border-radius:50%; background:#8ca38e; border:2px solid var(--paper); }
.view-timeline .day-row.featured:after { background:var(--orange); }
.view-timeline .day-row.featured:before { display:none; }
.search-strip { display:flex; align-items:center; gap:12px; padding:12px 14px; margin-top:12px; background:#ece8df; border:1px solid var(--line); }
.search-strip[hidden] { display:none; }
.search-strip label { font:10px "DM Mono",monospace; color:#7d8880; white-space:nowrap; }
.search-strip input { flex:1; min-width:0; padding:9px 10px; border:1px solid #d1d2c9; background:var(--white); font:12px Inter,sans-serif; }
.search-strip span { font:10px "DM Mono",monospace; color:#869188; white-space:nowrap; }
.search-strip button { font-size:20px; color:#78847b; }
.checklist-modal,.edit-modal,.stage-modal { max-height:calc(100vh - 40px); overflow:auto; }
.modal-checklist { max-height:42vh; overflow:auto; padding-right:5px; }
.checklist-group-title { position:sticky; top:0; z-index:1; padding:11px 0 8px; background:var(--paper); border-bottom:1px solid var(--line); color:#758078; font:10px "DM Mono",monospace; letter-spacing:1px; }
.modal-checklist label { display:flex; align-items:center; gap:9px; }
.modal-checklist label input { flex:none; margin:0; width:15px; height:15px; }
.modal-checklist label span { flex:1; }
.modal-checklist label button { color:#b66a4b; font-size:17px; }
.custom-task-form { display:flex; gap:8px; margin:0 0 18px; }
.custom-task-form input { flex:1; min-width:0; border:1px solid #d4d5cc; background:var(--white); padding:10px; font:11px Inter,sans-serif; }
.custom-task-form button { border:1px solid #c9cec5; padding:0 11px; color:#536158; font-size:10px; }
.stage-fields { grid-template-columns:1fr 1fr; }
.stage-fields label:last-child { grid-column:auto; }
.stage-fields .stage-notes-label { grid-column:span 2; }
.stage-fields select { border:1px solid #d4d5cc; background:#fffdf8; color:var(--ink); font:12px Inter,sans-serif; padding:10px; }
.stage-modal-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.stage-modal-actions>div { display:flex; align-items:center; gap:6px; }
.delete-stage-btn { color:#ac6146; font-size:10px; }
.move-stage-btn { width:30px; height:31px; border:1px solid #d0d1c8; border-radius:3px; color:#65746b; }
.move-stage-btn:disabled { opacity:.35; cursor:default; }
.task-item.is-done strong { color:#8a948c; text-decoration:line-through; }
.task-check.checked { display:grid; place-items:center; }
.progress-ring .ring-progress { transition:stroke-dasharray .3s; }
@media (max-width:560px) {
  .top-actions { gap:2px; }
  .edit-trip-btn { padding:8px; font-size:10px; }
  .share-btn { margin-left:2px; }
  .itinerary-actions { flex-wrap:wrap; justify-content:flex-end; }
  .export-btn { order:3; }
  .stage-fields,.edit-fields { grid-template-columns:1fr 1fr; gap:10px; }
  .stage-fields .stage-notes-label,.edit-fields label:last-child { grid-column:span 2; }
  .stage-modal-actions { align-items:flex-end; }
  .stage-modal-actions>div { flex-wrap:wrap; justify-content:flex-end; }
  .delete-stage-btn { max-width:80px; text-align:left; }
  .custom-task-form { flex-wrap:wrap; }
  .custom-task-form button { min-height:36px; }
}

.tab-view[hidden] { display:none !important; }
.workspace-tabs { display:flex; gap:25px; border-bottom:1px solid var(--line); margin:0; }
.workspace-tab { position:relative; padding:17px 1px 14px; color:#849087; font-size:11px; white-space:nowrap; }
.workspace-tab.active { color:var(--ink); font-weight:600; }
.workspace-tab.active:after { content:""; position:absolute; bottom:-1px; left:0; right:0; height:2px; background:var(--orange); }
.workspace-tab span { display:inline-grid; place-items:center; min-width:19px; height:19px; margin-left:5px; border-radius:50%; background:#e8e5dc; color:#718078; font:9px "DM Mono",monospace; }
.dashboard-snapshot { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:-28px 0 43px; }
.dashboard-snapshot>div { padding:13px 14px; background:#ece8df; border:1px solid #e2ded4; }
.dashboard-snapshot span,.dashboard-snapshot strong { display:block; }
.dashboard-snapshot span { color:#8c958d; font:8px "DM Mono",monospace; letter-spacing:.55px; }
.dashboard-snapshot strong { margin-top:7px; font:500 20px Fraunces,serif; }
.view-intro { display:flex; justify-content:space-between; align-items:end; gap:25px; padding:46px 0 24px; }
.view-intro h1 { margin:8px 0 8px; font:500 42px/1.04 Fraunces,serif; letter-spacing:-1px; }
.view-intro p { margin:0; color:#7d8980; font-size:11px; line-height:1.6; }
.official-route-link { flex:none; color:#65786b; font-size:10px; }
.official-route-link:hover,.map-external-link:hover { color:var(--orange-dark); text-decoration:underline; }
.map-toolbar { display:flex; align-items:center; gap:10px; min-height:53px; padding:9px 12px; background:#ece8df; border:1px solid #dfdbd0; }
.map-toolbar>label:first-child { color:#7d8980; font:9px "DM Mono",monospace; letter-spacing:.8px; }
.map-toolbar select { flex:1; min-width:90px; max-width:490px; border:1px solid #d3d3c9; background:var(--white); padding:8px 10px; color:var(--ink); font:11px Inter,sans-serif; }
.upload-button { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:0 12px; border:1px solid #cbd0c8; color:#596a60; font-size:10px; cursor:pointer; white-space:nowrap; }
.upload-button:hover { background:#e2e5dc; }
.map-file-label { max-width:190px; overflow:hidden; color:#909890; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.map-layout { display:grid; grid-template-columns:minmax(0,1fr) 255px; min-height:530px; margin-top:14px; border:1px solid #d8d9d1; background:var(--white); }
.map-frame { position:relative; min-width:0; min-height:530px; background:#e5e8df; }
#stage-map { position:absolute; inset:0; min-height:530px; z-index:0; }
.map-empty,.map-error { position:absolute; z-index:500; left:50%; top:50%; width:min(300px,calc(100% - 38px)); padding:22px; transform:translate(-50%,-50%); text-align:center; background:#fffdf2ed; border:1px solid #d7d9ce; box-shadow:0 5px 25px #24322a1a; pointer-events:none; }
.map-empty span { display:block; margin-bottom:8px; color:var(--orange); font-size:24px; }
.map-empty strong,.map-empty small { display:block; }
.map-empty strong { font:500 19px Fraunces,serif; }
.map-empty small { margin-top:7px; color:#7f8a81; font-size:10px; line-height:1.5; }
.map-error { color:#9f4e36; font-size:11px; line-height:1.5; }
.map-sidebar { padding:23px 18px; border-left:1px solid #e2e1d8; }
.map-sidebar h2 { margin:8px 0 21px; font:500 21px/1.2 Fraunces,serif; }
.map-facts { border-top:1px solid #e6e4dc; }
.map-facts>div { padding:12px 0; border-bottom:1px solid #e6e4dc; }
.map-facts span,.map-facts strong { display:block; }
.map-facts span { color:#929a91; font:8px "DM Mono",monospace; letter-spacing:.7px; }
.map-facts strong { margin-top:5px; font:500 17px Fraunces,serif; }
.gpx-summary { color:#78857c; font-size:10px; line-height:1.55; margin:16px 0; }
.remove-gpx-btn { display:block; margin:0 0 15px; color:#a55f48; font-size:10px; text-align:left; }
.remove-gpx-btn[hidden] { display:none; }
.map-external-link { display:inline-block; color:#65786b; font-size:10px; }
.map-disclaimer { padding:0 0 24px; color:#91988f; font-size:9px; line-height:1.5; }
.overnight-summary { display:flex; flex-direction:column; align-items:flex-end; gap:4px; padding:11px 15px; background:#e6ece3; color:#63796a; }
.overnight-summary strong { font:500 20px Fraunces,serif; }
.overnight-summary span { font-size:9px; }
.upload-notice { display:flex; align-items:center; gap:13px; margin-bottom:18px; padding:13px 16px; background:#e8ece5; color:#69796e; }
.upload-notice>span { color:var(--orange); font-size:22px; }
.upload-notice p { margin:0; font-size:10px; line-height:1.55; }
.overnight-list { display:grid; gap:11px; padding-bottom:42px; }
.overnight-card { background:var(--white); border:1px solid #e0ddd3; }
.overnight-card>summary { list-style:none; }
.overnight-card>summary::-webkit-details-marker { display:none; }
.overnight-card-summary { display:flex; align-items:center; gap:13px; min-height:72px; padding:12px 17px; cursor:pointer; }
.overnight-card-summary:hover { background:#f8f6f0; }
.overnight-day { display:grid; place-items:center; flex:none; width:34px; height:34px; background:#e8ece4; color:#718276; font:10px "DM Mono",monospace; }
.overnight-summary-text { flex:1; min-width:0; }
.overnight-summary-text strong,.overnight-summary-text small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.overnight-summary-text strong { font:500 17px Fraunces,serif; }
.overnight-summary-text small { margin-top:5px; color:#8c958d; font-size:9px; }
.overnight-chevron { color:#879188; font-size:18px; transition:transform .2s; }
.overnight-card[open] .overnight-chevron { transform:rotate(180deg); }
.overnight-card-body { padding:2px 18px 18px 64px; border-top:1px solid #eeece5; }
.stay-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; padding:17px 0; }
.stay-field { display:flex; flex-direction:column; gap:6px; min-width:0; color:#89928a; font:8px "DM Mono",monospace; letter-spacing:.45px; text-transform:uppercase; }
.stay-field input,.stay-field select,.stay-field textarea { width:100%; min-width:0; border:1px solid #dcded5; border-radius:0; background:#fffefa; padding:9px; color:var(--ink); font:11px Inter,sans-serif; text-transform:none; letter-spacing:0; }
.stay-field textarea { resize:vertical; line-height:1.5; }
.stay-field input:focus,.stay-field select:focus,.stay-field textarea:focus { outline:2px solid #f0b59c; border-color:var(--orange); }
.stay-field:has(textarea) { grid-column:span 3; }
.stay-files-section { border-top:1px solid #e9e7df; padding-top:14px; }
.stay-upload { display:flex; align-items:center; gap:12px; min-height:62px; padding:10px 14px; border:1px dashed #c8cec5; background:#faf9f4; cursor:pointer; }
.stay-upload:hover,.stay-upload:focus-within { border-color:#8fa291; background:#f1f4ed; }
.stay-upload>span:first-child { display:grid; place-items:center; width:31px; height:31px; border-radius:50%; background:#e5ece2; color:#6a816f; font-size:19px; }
.stay-upload strong,.stay-upload small { display:block; }
.stay-upload strong { color:#586a5f; font-size:10px; font-weight:600; }
.stay-upload small { margin-top:4px; color:#929a92; font-size:9px; }
.stay-file-list { display:grid; gap:5px; margin-top:9px; }
.stay-file-item { display:flex; align-items:center; gap:9px; min-width:0; padding:8px 10px; background:#f0eee7; }
.stay-file-icon { color:#718475; }
.stay-file-item a { flex:1; min-width:0; overflow:hidden; color:#52675a; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.stay-file-item a:hover { text-decoration:underline; }
.stay-file-item small,.no-stay-files { color:#939a92; font-size:9px; }
.stay-file-item button { color:#a66a53; font-size:17px; line-height:1; }
.overnight-empty { padding:25px; background:var(--white); color:#78857c; font-size:11px; }
@media (max-width:1000px) {
  .map-layout { grid-template-columns:minmax(0,1fr) 220px; }
  .stay-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stay-field:has(textarea) { grid-column:span 2; }
}
@media (max-width:820px) {
  .workspace-tabs { gap:17px; }
  .map-layout { grid-template-columns:1fr; }
  .map-sidebar { border-left:0; border-top:1px solid #e2e1d8; }
  .map-facts { display:grid; grid-template-columns:repeat(3,1fr); }
  .map-facts>div { padding:10px 8px; border-right:1px solid #e6e4dc; }
}
@media (max-width:560px) {
  .workspace-tabs { gap:15px; overflow:auto; }
  .workspace-tab { padding:14px 0 12px; font-size:10px; }
  .dashboard-snapshot { grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 0 32px; }
  .view-intro { align-items:flex-start; flex-direction:column; padding:30px 0 19px; }
  .view-intro h1 { font-size:34px; }
  .official-route-link { align-self:flex-start; }
  .overnight-summary { align-self:flex-start; }
  .map-toolbar { flex-wrap:wrap; gap:8px; }
  .map-toolbar select { order:2; flex-basis:100%; max-width:none; }
  .map-toolbar>label:first-child { order:1; }
  .upload-button { order:3; }
  .map-file-label { order:4; flex:1; }
  .map-layout { margin-top:9px; }
  .map-frame,#stage-map { min-height:390px; }
  .map-facts span { font-size:7px; }
  .map-facts strong { font-size:15px; }
  .overnight-card-summary { gap:8px; padding:10px; }
  .overnight-summary-text strong { font-size:14px; }
  .overnight-card-summary .day-tag { max-width:95px; overflow:hidden; text-overflow:ellipsis; }
  .overnight-card-body { padding:2px 10px 12px; }
  .stay-fields { gap:10px; }
  .stay-field { font-size:7px; }
  .stay-field input,.stay-field select,.stay-field textarea { padding:8px 7px; font-size:10px; }
  .stay-upload { align-items:flex-start; }
  .stay-upload small { line-height:1.45; }
}
