:root{
  --paper:#ECE3CB; --card:#F8F3E4; --field:#FFFDF6;
  --ink:#24261F; --ink-soft:#6B6A58; --line:#CBC09E; --line-soft:#E0D7BC;
  --car:#1E5631; --moto:#A8431F; --ferry:#1B4F7C;
  --tine:#1B4F7C; --thomas:#1E5631;
  --danger:#8C2F1F;
  --serif:'Piazzolla',Georgia,serif; --sans:'Work Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-feature-settings:"tnum" 1;line-height:1.5;font-size:15px;}
h1,h2,h3,.place{font-family:var(--serif);font-weight:500;margin:0;}
button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;font-size:inherit;color:var(--ink);}
.hidden{display:none !important;}
a{color:var(--ferry);}

/* Identity chooser */
.identity{position:fixed;inset:0;background:rgba(36,38,31,.55);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;}
.identity-card{background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:32px 36px;max-width:420px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.25);}
.identity-card h1{font-size:2rem;margin-bottom:.3em;}
.identity-card p{color:var(--ink-soft);margin:0 0 1.4em;}
.identity-buttons{display:flex;gap:14px;justify-content:center;}
.identity-btn{flex:1;padding:16px 10px;border-radius:10px;border:2px solid;background:var(--field);font-family:var(--serif);font-size:1.4rem;transition:transform .1s;}
.identity-btn:hover{transform:translateY(-2px);}
.identity-btn.tine{border-color:var(--tine);color:var(--tine);}
.identity-btn.thomas{border-color:var(--thomas);color:var(--thomas);}

/* Top bar */
.topbar{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1.5px solid var(--line);}
.topbar-inner{max-width:820px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:20px;min-height:52px;}
.brand{flex:1;font-family:var(--serif);font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tabs{display:flex;gap:2px;align-self:stretch;}
.tab{background:transparent;border:0;border-bottom:3px solid transparent;padding:0 12px;font-weight:600;color:var(--ink-soft);}
.tab.active{color:var(--ink);border-bottom-color:var(--ink);}
.tab:hover{color:var(--ink);}
.who{border:1.5px solid;border-radius:20px;padding:3px 12px;background:transparent;font-weight:600;font-size:.8rem;}
.who.tine{border-color:var(--tine);color:var(--tine);}
.who.thomas{border-color:var(--thomas);color:var(--thomas);}

/* Layout */
.main{max-width:820px;margin:0 auto;padding:48px 24px 96px;}
.view{display:none;}
.view.active{display:block;}
.btn{border:1.5px solid var(--line);background:var(--card);border-radius:8px;padding:8px 14px;font-weight:600;}
.btn:hover{border-color:var(--ink-soft);}
.btn.small{padding:6px 12px;font-size:.85rem;}
.btn.danger{color:var(--danger);}
.link-btn{background:none;border:0;padding:0;color:var(--ferry);text-decoration:underline;font-size:inherit;}

/* Hero */
.hero{margin-bottom:56px;}
.trip-titel{width:100%;border:0;background:transparent;font-family:var(--serif);font-size:2.1rem;font-weight:500;line-height:1.15;padding:0;margin:0;outline:none;border-bottom:1.5px solid transparent;}
.trip-titel:hover,.trip-titel:focus{border-bottom-color:var(--line);}
.hero .sub{color:var(--ink-soft);font-size:1rem;margin-top:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.hero .sub input{border:0;background:transparent;color:var(--ink-soft);padding:0;font-size:1rem;outline:none;border-bottom:1.5px solid transparent;width:auto;}
.hero .sub input:hover,.hero .sub input:focus{border-bottom-color:var(--line);color:var(--ink);}
.hero .sep{margin:0 4px;}
.stats{display:flex;gap:28px;margin-top:28px;flex-wrap:wrap;}
.stat{display:flex;flex-direction:column;}
.stat .n{font-size:1.4rem;font-weight:600;}
.stat .l{font-size:.85rem;color:var(--ink-soft);}
.legend{display:flex;gap:20px;margin-top:24px;flex-wrap:wrap;font-size:.85rem;color:var(--ink-soft);}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.legend i{width:14px;height:14px;border-radius:50%;display:inline-block;}

/* Route timeline (roadbook) */
.route{position:relative;margin-bottom:24px;}
.day{position:relative;display:grid;grid-template-columns:56px 1fr;gap:0 20px;padding-bottom:6px;--seg:var(--line);}
.day.auto_trailer{--seg:var(--car);}
.day.motor{--seg:var(--moto);}
.day.veerboot{--seg:var(--ferry);}
.day.beide{--seg:var(--car);}
.day .rail{position:relative;display:flex;justify-content:center;}
/* The line below a day runs to the next day and takes that next day's transport colour (--next-seg, set from JS). */
.day .rail::before{content:"";position:absolute;top:34px;bottom:-6px;width:3px;background:var(--next-seg,var(--line));border-radius:2px;}
.day:last-child .rail::before{display:none;}
.day{scroll-margin-top:64px;}
.dot{width:34px;height:34px;border-radius:50%;background:var(--card);border:3px solid var(--seg);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;z-index:1;cursor:pointer;}
.day.beide .dot{border-color:var(--car);}
.day.open .dot{background:var(--seg);color:#fff;}
.day.beide.open .dot{background:var(--car);}
.dot.no-coords{border-style:dashed;}
.day.dragging{opacity:.4;}
.day.drop-before .content{box-shadow:0 -3px 0 0 var(--moto);}
.day.drop-after .content{box-shadow:0 3px 0 0 var(--moto);}

.content{padding-bottom:34px;cursor:pointer;border-radius:6px;position:relative;}
.content:hover .place{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px;}
.km{font-size:.78rem;color:var(--ink-soft);font-weight:600;margin-top:2px;}
.km .man{font-weight:400;}
.date-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.date-row .date{font-size:.85rem;color:var(--ink-soft);font-weight:600;}
.place{font-size:1.25rem;}
.place.empty{color:var(--ink-soft);font-style:italic;}
.mode{font-size:.75rem;font-weight:600;padding:3px 9px;border-radius:20px;color:#fff;white-space:nowrap;}
.mode.auto_trailer{background:var(--car);}
.mode.motor{background:var(--moto);}
.mode.veerboot{background:var(--ferry);}
.mode.beide{background:linear-gradient(90deg,var(--car) 50%,var(--moto) 50%);}
.desc{margin-top:6px;color:var(--ink-soft);font-size:.92rem;white-space:pre-wrap;word-break:break-word;}
.desc a{word-break:break-all;}
.desc .status-word{font-weight:600;}
.sights{margin:8px 0 0;padding:0;list-style:none;font-size:.92rem;color:var(--ink);}
.sights li{display:flex;align-items:flex-start;gap:9px;padding:3px 0;}
.sights input[type=checkbox]{margin:4px 0 0;accent-color:var(--car);flex:0 0 auto;cursor:pointer;}
.sights small{font-size:.88em;color:var(--ink-soft);}
.sights li.done span{color:var(--ink-soft);text-decoration:line-through;}
.tags{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;}
.pill{font-size:.78rem;font-weight:600;padding:3px 10px;border-radius:20px;border:1.5px solid currentColor;color:var(--ink-soft);}
.pill.tine{color:var(--tine);}
.pill.thomas{color:var(--thomas);}
.nav-link{font-size:.78rem;font-weight:600;color:var(--ferry);text-decoration:none;border:1.5px solid currentColor;border-radius:20px;padding:2px 9px;white-space:nowrap;}
.nav-link:hover{background:var(--card);}
.quiet-link{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;}
.quiet-link:hover{text-decoration-color:currentColor;}
.drag-handle{position:absolute;right:0;top:0;color:var(--line);font-size:1.1rem;line-height:1;padding:2px 4px;cursor:grab;user-select:none;}
.drag-handle:hover{color:var(--ink-soft);}
.empty-state{color:var(--ink-soft);font-style:italic;padding:8px 0 24px;}

/* Expanded day form */
.field .derived{padding:9px 11px;border:1.5px dashed var(--line);border-radius:6px;background:transparent;font-size:.92rem;color:var(--ink);}
.field .derived small{display:block;color:var(--ink-soft);font-size:.78rem;margin-top:2px;}
.field select{width:100%;padding:9px 11px;border:1.5px solid var(--line);border-radius:6px;background:var(--field);font-size:.92rem;outline:none;}
.form-day{background:var(--card);border-radius:10px;padding:26px 28px 30px;margin:0 0 28px;border:1.5px solid var(--line);}
.form-day .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:22px;gap:12px;}
.form-day .top .place{font-size:1.3rem;}
.form-day .top .close{font-size:.85rem;color:var(--ink-soft);background:none;border:0;padding:0;white-space:nowrap;}
.form-day .top .close:hover{color:var(--ink);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}
@media (max-width:560px){.grid2{grid-template-columns:1fr;}}
.field{margin-bottom:18px;}
.field label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-soft);margin-bottom:5px;}
.field input[type=text],.field input[type=date],.field input[type=number],.field textarea{width:100%;padding:9px 11px;border:1.5px solid var(--line);border-radius:6px;background:var(--field);font-size:.92rem;outline:none;}
.field input:focus,.field textarea:focus{border-color:var(--ink-soft);}
.field input.locatie{font-family:var(--serif);font-size:1.05rem;}
.field textarea{resize:vertical;min-height:56px;line-height:1.5;}
.geo-status{font-size:.8rem;color:var(--ink-soft);margin-top:4px;}
.geo-status.warn{color:var(--moto);}
.dist-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.dist-row input[type=number]{width:110px;}
.dist-row .unit{color:var(--ink-soft);}
.dist-hint{font-size:.8rem;color:var(--ink-soft);}
.mode-select,.status-row{display:flex;gap:8px;flex-wrap:wrap;}
.mode-opt,.status-opt{padding:6px 13px;border-radius:20px;border:1.5px solid var(--line);font-size:.85rem;font-weight:600;background:transparent;color:var(--ink-soft);}
.status-opt{padding:5px 12px;font-size:.8rem;}
.mode-opt.active.auto_trailer{background:var(--car);border-color:var(--car);color:#fff;}
.mode-opt.active.motor{background:var(--moto);border-color:var(--moto);color:#fff;}
.mode-opt.active.veerboot{background:var(--ferry);border-color:var(--ferry);color:#fff;}
.mode-opt.active.beide{background:linear-gradient(90deg,var(--car) 50%,var(--moto) 50%);border-color:var(--car);color:#fff;}
.status-opt.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.repeat-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;}
.repeat-item{display:flex;align-items:center;gap:8px;background:var(--field);border:1.5px solid var(--line);border-radius:6px;padding:7px 10px;}
.repeat-item input[type=checkbox]{accent-color:var(--ink);flex:0 0 auto;margin:0;}
.repeat-item input[type=text]{border:none;background:transparent;flex:1;font-size:.9rem;padding:2px;min-width:0;outline:none;}
.repeat-item.done input[type=text]{color:var(--ink-soft);text-decoration:line-through;}
.assignee{font-size:.76rem;font-weight:600;padding:2px 9px;border-radius:20px;border:1.5px solid var(--line);color:var(--ink-soft);background:transparent;white-space:nowrap;}
.assignee.tine{color:var(--tine);border-color:var(--tine);}
.assignee.thomas{color:var(--thomas);border-color:var(--thomas);}
.remove{color:var(--ink-soft);background:none;border:0;font-size:.9rem;padding:0 4px;}
.remove:hover{color:var(--danger);}
.add-line{font-size:.85rem;font-weight:600;color:var(--ink-soft);background:none;border:0;padding:0;display:inline-flex;align-items:center;gap:6px;}
.add-line:hover{color:var(--ink);}
.add-line .plus{width:18px;height:18px;border-radius:50%;border:1.5px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:.8rem;}
.notes-preview{margin-top:6px;font-size:.84rem;display:flex;flex-direction:column;gap:2px;}
.notes-preview a{word-break:break-all;}
.form-actions{display:flex;justify-content:space-between;gap:10px;margin-top:8px;padding-top:16px;border-top:1px solid var(--line);}
.add-day-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1.5px dashed var(--ink-soft);border-radius:8px;color:var(--ink-soft);font-weight:600;font-size:.9rem;background:transparent;}
.add-day-btn:hover{color:var(--ink);border-color:var(--ink);}
.add-day-wrap{margin-left:76px;}

/* Map (dark, with day tabs and a detail panel) */
.mapwrap{position:relative;height:min(78vh,680px);border-radius:16px;overflow:hidden;background:#0d1118;box-shadow:0 12px 40px rgba(36,38,31,.25);}
.map{position:absolute;inset:0;background:#0d1118;}
/* Filter per tile image, not on the pane: iOS Safari renders a filtered, transformed pane blank. */
.map .leaflet-tile{-webkit-filter:invert(1) hue-rotate(195deg) saturate(.55) brightness(.78) contrast(1.05);filter:invert(1) hue-rotate(195deg) saturate(.55) brightness(.78) contrast(1.05);}
.leaflet-container{font-family:var(--sans);}
.leaflet-control-zoom{margin-left:16px !important;margin-bottom:16px !important;border:0 !important;}
.leaflet-control-zoom a{background:#1c1c1c !important;color:#fff !important;border:0 !important;width:34px;height:34px;line-height:34px;}
.leaflet-control-zoom a:hover{background:#2a2a2a !important;}
.leaflet-control-attribution{background:rgba(10,10,10,.7) !important;color:#aaa !important;font-size:.7rem;}
.leaflet-control-attribution a{color:#ccc !important;}
.leaflet-tooltip.stop-tip{background:#1c1c1c;color:#fff;border:0;border-radius:6px;font-size:.8rem;box-shadow:0 4px 14px rgba(0,0,0,.4);}
.leaflet-tooltip.stop-tip::before{display:none;}
.day-tabs{position:absolute;top:16px;left:16px;right:380px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;z-index:500;padding-bottom:4px;}
.day-tabs::-webkit-scrollbar{display:none;}
.day-tab{flex:0 0 auto;background:#1c1c1c;color:#fff;border:0;border-radius:999px;padding:8px 18px;font-weight:500;font-size:.95rem;box-shadow:0 2px 8px rgba(0,0,0,.35);}
.day-tab:hover{background:#2a2a2a;}
.day-tab.active{background:#fff;color:#111;}
.day-tab .dt-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:1px;}
.day-tab .dt-dot + .dt-dot{margin-left:-3px;}
.day-tab .dt-date{font-weight:400;opacity:.7;margin-left:2px;}
.map-panel .stop-head{list-style:none;padding:12px 0 0;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#9a9a9a;}
.map-panel .leg + .leg{border-top:1px solid #2a2a2a;padding-top:12px;}
.map-panel .leg .panel-actions{margin-top:8px;}
.map-panel{position:absolute;top:16px;right:16px;bottom:16px;width:348px;background:#121212;color:#fff;border-radius:16px;padding:24px 26px;overflow-y:auto;z-index:500;box-shadow:0 8px 30px rgba(0,0,0,.5);}
.map-panel .eyebrow{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:#9a9a9a;}
.map-panel h3{font-family:var(--serif);font-weight:500;font-size:1.7rem;line-height:1.2;color:#fff;margin:6px 0 16px;}
.map-panel h3 .date{color:#cfcfcf;}
.map-panel .panel-actions{display:flex;gap:8px;flex-wrap:wrap;}
.map-panel .open-route.secondary{background:#2a2a2a;color:#fff;}
.map-panel .open-route.secondary:hover{background:#3a3a3a;}
.map-panel .stop-body{flex:1;min-width:0;}
.map-panel .stop-nav{color:#8ab4ff;text-decoration:none;font-size:1rem;padding:4px 6px;border-radius:6px;}
.map-panel .stop-nav:hover{background:#2a2a2a;}
.map .leaflet-popup-content-wrapper{background:#1c1c1c;color:#fff;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.5);}
.map .leaflet-popup-tip{background:#1c1c1c;}
.map .leaflet-popup-content{margin:12px 14px;font-family:var(--sans);line-height:1.4;}
.map .pp-title{font-weight:600;margin-bottom:8px;}
.map .pp-nav{display:inline-block;background:#fff;color:#111;border-radius:999px;padding:6px 12px;font-weight:600;text-decoration:none;font-size:.9rem;}
.map-panel .open-route{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#111;border:0;border-radius:999px;padding:9px 18px;font-weight:600;font-size:.95rem;text-decoration:none;}
.map-panel .open-route:hover{background:#e8e8e8;}
.map-panel .leg{margin:16px 0 4px;color:#bdbdbd;font-size:.9rem;}
.map-panel .leg b{color:#fff;font-weight:600;}
.map-panel .leg .mode{margin-left:6px;vertical-align:1px;}
.map-panel .stops{margin:14px 0 0;padding:0;list-style:none;}
.map-panel .stop{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid #2a2a2a;cursor:pointer;}
.map-panel .stop:hover .stop-name{text-decoration:underline;text-underline-offset:3px;text-decoration-color:#555;}
.map-panel .stop .n{flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:#fff;color:#111;font-weight:600;display:flex;align-items:center;justify-content:center;font-size:.9rem;}
.map-panel .stop .n.off{background:#2a2a2a;color:#888;}
.map-panel .stop.done .stop-name{color:#888;text-decoration:line-through;}
.map-panel .stop-name{font-size:1.05rem;font-weight:500;}
.map-panel .stop-sub{color:#9a9a9a;font-size:.9rem;margin-top:2px;}
.map-panel .stop-sub a{color:#8ab4ff;}
.map-panel .extra{margin-top:16px;padding-top:14px;border-top:1px solid #2a2a2a;color:#bdbdbd;font-size:.9rem;}
.map-panel .extra a{color:#8ab4ff;word-break:break-all;}
.map-panel .extra .row{margin:4px 0;}
.map-panel .edit-link{display:block;text-align:left;margin-top:10px;color:#8ab4ff;background:none;border:0;padding:0;font-size:.9rem;text-decoration:underline;text-underline-offset:3px;}
.map-panel .empty{color:#9a9a9a;font-size:.95rem;}
.stop-pin{background:#fff;color:#111;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;box-shadow:0 2px 8px rgba(0,0,0,.5);border:2px solid #111;}
.day-pin{background:#1c1c1c;color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.72rem;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.5);}
.day-pin.sel{width:30px;height:30px;font-size:.85rem;background:#fff;color:#111;border-color:#111;}
.map-note{color:var(--ink-soft);font-size:.86rem;margin:12px 4px;}
.map-theme{position:absolute;left:16px;bottom:92px;z-index:500;background:#1c1c1c;color:#fff;border:0;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.35);}
.map-theme:hover{background:#2a2a2a;}

/* Light map variant: plain OSM tiles, panel and tabs in the app's paper palette. */
.mapwrap.light{background:var(--card);box-shadow:0 12px 40px rgba(36,38,31,.15);border:1.5px solid var(--line);}
.mapwrap.light .map{background:#E9E4D6;}
.mapwrap.light .map .leaflet-tile{-webkit-filter:none;filter:none;}
.mapwrap.light .leaflet-control-zoom a{background:var(--card) !important;color:var(--ink) !important;}
.mapwrap.light .leaflet-control-zoom a:hover{background:#fff !important;}
.mapwrap.light .leaflet-control-attribution{background:rgba(248,243,228,.85) !important;color:var(--ink-soft) !important;}
.mapwrap.light .leaflet-control-attribution a{color:var(--ferry) !important;}
.mapwrap.light .day-tab{background:var(--card);color:var(--ink);border:1.5px solid var(--line);box-shadow:0 2px 8px rgba(36,38,31,.15);}
.mapwrap.light .day-tab:hover{background:#fff;}
.mapwrap.light .day-tab.active{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.mapwrap.light .map-theme{background:var(--card);color:var(--ink);border:1.5px solid var(--line);box-shadow:0 2px 8px rgba(36,38,31,.15);}
.mapwrap.light .map-panel{background:var(--card);color:var(--ink);box-shadow:0 8px 30px rgba(36,38,31,.2);border:1.5px solid var(--line);}
.mapwrap.light .map-panel .eyebrow{color:var(--ink-soft);}
.mapwrap.light .map-panel h3{color:var(--ink);}
.mapwrap.light .map-panel .open-route{background:var(--ink);color:var(--paper);}
.mapwrap.light .map-panel .open-route:hover{background:#3a3d33;}
.mapwrap.light .map-panel .open-route.secondary{background:var(--field);color:var(--ink);border:1.5px solid var(--line);}
.mapwrap.light .map-panel .leg{color:var(--ink-soft);}
.mapwrap.light .map-panel .leg b{color:var(--ink);}
.mapwrap.light .map-panel .leg + .leg,.mapwrap.light .map-panel .stop,.mapwrap.light .map-panel .extra{border-color:var(--line-soft);}
.mapwrap.light .map-panel .stop .n{background:var(--ink);color:var(--paper);}
.mapwrap.light .map-panel .stop .n.off{background:var(--line-soft);color:var(--ink-soft);}
.mapwrap.light .map-panel .stop-sub,.mapwrap.light .map-panel .stop-head,.mapwrap.light .map-panel .empty,.mapwrap.light .map-panel .extra{color:var(--ink-soft);}
.mapwrap.light .map-panel .stop-sub a,.mapwrap.light .map-panel .extra a,.mapwrap.light .map-panel .edit-link,.mapwrap.light .map-panel .stop-nav{color:var(--ferry);}
.mapwrap.light .map-panel .stop-nav:hover{background:var(--line-soft);}
.mapwrap.light .map .leaflet-popup-content-wrapper{background:var(--card);color:var(--ink);}
.mapwrap.light .map .leaflet-popup-tip{background:var(--card);}
.mapwrap.light .map .pp-nav{background:var(--ink);color:var(--paper);}
.mapwrap.light .stop-pin{background:var(--ink);color:var(--paper);border-color:#fff;}
.mapwrap.light .day-pin{background:#fff;color:var(--ink);border-color:var(--ink);}
.mapwrap.light .day-pin.sel{background:var(--ink);color:#fff;border-color:#fff;}
@media (max-width:760px){
  .mapwrap{height:auto;background:transparent;box-shadow:none;border-radius:0;overflow:visible;}
  .map{position:relative;height:60vh;border-radius:16px;overflow:hidden;}
  .day-tabs{right:16px;}
  .map-panel{position:static;width:auto;margin-top:12px;max-height:none;}
  /* The block now also contains the panel; anchor the button to the map's bottom edge (map is 60vh high). */
  .map-theme{left:auto;right:16px;bottom:auto;top:calc(60vh - 48px);}
}

/* Split: Taken + Checklist */
.split{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
@media (max-width:640px){.split{grid-template-columns:1fr;}}
.panel h2{font-size:1.3rem;margin-bottom:18px;}
.task{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-top:1px solid var(--line);}
.task:last-child{border-bottom:1px solid var(--line);}
.task input{margin-top:3px;accent-color:var(--ink);}
.task .txt{flex:1;font-size:.92rem;}
.task .txt .pill{margin-left:4px;}
.task .where{display:block;font-size:.78rem;color:var(--ink-soft);}
.task .where button{font-size:inherit;}
.task.done .txt{color:var(--ink-soft);text-decoration:line-through;}
.task.done .txt .where{text-decoration:none;}
.checklist-group{margin-bottom:22px;}
.checklist-group .gh{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.checklist-group .gh input{flex:1;background:transparent;border:0;border-bottom:1.5px solid transparent;font-size:.95rem;font-weight:600;color:var(--ink-soft);padding:0;outline:none;min-width:0;}
.checklist-group .gh input:hover,.checklist-group .gh input:focus{border-bottom-color:var(--line);color:var(--ink);}
.checklist-group .gh .progress{font-size:.78rem;color:var(--ink-soft);}
.check{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:.92rem;}
.check input[type=checkbox]{accent-color:var(--ink);margin:0;}
.check input[type=text]{flex:1;border:0;background:transparent;padding:2px 4px;border-radius:4px;outline:none;min-width:0;}
.check input[type=text]:focus{background:var(--field);}
.check.done input[type=text]{color:var(--ink-soft);text-decoration:line-through;}
.check .remove{opacity:0;}
.check:hover .remove{opacity:1;}
.add-inline{display:flex;align-items:center;gap:8px;padding:4px 0;}
.add-inline input{flex:1;border:0;border-bottom:1.5px solid var(--line);background:transparent;padding:4px 2px;outline:none;font-size:.9rem;}
.add-category{display:flex;gap:10px;margin-top:8px;}
.add-category input{flex:1;background:var(--field);border:1.5px dashed var(--line);border-radius:8px;padding:8px 12px;outline:none;min-width:0;}
.add-category input:focus{border-style:solid;border-color:var(--ink-soft);}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 18px;border-radius:8px;font-size:.88rem;z-index:900;box-shadow:0 8px 24px rgba(0,0,0,.25);}
.toast.error{background:var(--danger);}

@media (max-width:640px){
  .day{grid-template-columns:40px 1fr;gap:0 12px;}
  .dot{width:28px;height:28px;font-size:.72rem;}
  .day .rail::before{top:28px;}
  .add-day-wrap{margin-left:52px;}
  .form-day{padding:18px 16px 22px;}
  .main{padding:28px 16px 96px;}
  .topbar-inner{padding:0 12px;gap:10px;}
  .trip-titel{font-size:1.6rem;}
}
