/* RLMotorhome Journeys V5 */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap');

:root,[data-theme="light"]{--bg:#f8fafc;--bg2:#fff;--bg3:#f1f5f9;--tx:#1e293b;--tx2:#64748b;--tx3:#94a3b8;--brd:#e2e8f0;--brd2:#f1f5f9;--acc:#e67e22;--acc2:#d35400;--accL:#fef3e2;--accT:#fff;--red:#dc2626;--grn:#10b981;--wrn:#f59e0b;--s1:0 1px 3px rgba(30,41,59,.06);--s2:0 4px 12px rgba(30,41,59,.08);--s3:0 10px 30px rgba(30,41,59,.1);--nav:#1e293b;--navT:#cbd5e1;--card:#fff;--inp:#fff;--inpB:#cbd5e1;--ov:rgba(30,41,59,.5);--r:12px;--rs:8px;--fr:0 0 0 3px rgba(230,126,34,.25);--glass:rgba(255,255,255,.65);--glassBrd:rgba(255,255,255,.25)}
[data-theme="dark"]{--bg:#0f1117;--bg2:#181a23;--bg3:#1f2231;--tx:#e2e8f0;--tx2:#94a3b8;--tx3:#64748b;--brd:#2a2d3a;--brd2:#1f2231;--acc:#e67e22;--acc2:#f0923e;--accL:#3d2a14;--accT:#fff;--red:#ef4444;--grn:#10b981;--wrn:#f59e0b;--s1:0 1px 3px rgba(0,0,0,.3);--s2:0 4px 12px rgba(0,0,0,.4);--s3:0 10px 30px rgba(0,0,0,.5);--nav:#0a0c12;--navT:#94a3b8;--card:#181a23;--inp:#1f2231;--inpB:#333749;--ov:rgba(0,0,0,.7);--glass:rgba(24,26,35,.6);--glassBrd:rgba(255,255,255,.08)}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:18px;scroll-behavior:smooth}body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--tx);line-height:1.7;min-height:100vh}
a{color:var(--acc);text-decoration:none;transition:color .2s}a:hover{color:var(--acc2)}hr{border:none;border-top:1px solid var(--brd);margin:1.5rem 0}small{font-size:.8em;color:var(--tx3)}

/* Animations */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes countUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.anim-fade{animation:slideIn .6s ease both}.anim-d1{animation-delay:.1s}.anim-d2{animation-delay:.2s}.anim-d3{animation-delay:.3s}.anim-d4{animation-delay:.4s}

/* Navbar */
.navbar{background:var(--nav);color:var(--navT);padding:0 1.25rem;position:sticky;top:0;z-index:1000;box-shadow:var(--s2);backdrop-filter:blur(12px)}
.nav-container{max-width:1600px;margin:0 auto;display:flex;align-items:center;height:64px;gap:1.5rem}
.nav-brand{font-size:1.35rem;font-weight:700;color:#fff;display:flex;align-items:center;gap:.55rem;white-space:nowrap}.nav-brand img{height:36px;border-radius:6px}
.nav-links{display:flex;align-items:center;gap:.3rem;flex:1}.nav-link{color:var(--navT);padding:.5rem .8rem;border-radius:var(--rs);font-size:.88rem;transition:all .2s;display:flex;align-items:center;gap:.4rem;white-space:nowrap;font-weight:500}.nav-link:hover{background:rgba(255,255,255,.1);color:#fff}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:.6rem}
.nav-toggle{display:none;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:.5rem;min-width:48px;min-height:48px;align-items:center;justify-content:center}
.theme-toggle{background:none;border:1px solid rgba(255,255,255,.12);color:var(--navT);width:42px;height:42px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:.2s}.theme-toggle:hover{background:rgba(255,255,255,.1)}
[data-theme="light"] .theme-icon-light{display:none}[data-theme="dark"] .theme-icon-dark{display:none}
.nav-user-menu{position:relative}.nav-user-btn{background:none;border:1px solid rgba(255,255,255,.12);color:var(--navT);padding:.45rem .8rem;border-radius:var(--rs);cursor:pointer;display:flex;align-items:center;gap:.4rem;font-size:.86rem;min-height:42px;font-family:inherit;font-weight:500}.nav-user-btn:hover{background:rgba(255,255,255,.08)}
.nav-dropdown{display:none;position:absolute;right:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--brd);border-radius:var(--rs);box-shadow:var(--s3);min-width:180px;z-index:1001;overflow:hidden}.nav-dropdown.open{display:block;animation:slideUp .2s ease}
.nav-dropdown a{display:flex;align-items:center;gap:.55rem;padding:.65rem 1rem;color:var(--tx);font-size:.9rem;min-height:44px;transition:.15s}.nav-dropdown a:hover{background:var(--bg3)}
.nav-search{position:relative}.nav-search input{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);color:#fff;padding:.35rem .75rem .35rem 2rem;border-radius:999px;font-size:.82rem;width:170px;font-family:inherit;transition:width .3s,background .2s;min-height:36px}.nav-search input:focus{outline:none;width:250px;background:rgba(255,255,255,.15);border-color:var(--acc)}.nav-search input::placeholder{color:rgba(255,255,255,.35)}
.nav-search i{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.35);font-size:.78rem;pointer-events:none}

/* Layout */
.main-content{padding-bottom:2rem}.container{max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem}.container-fluid{padding:1.25rem}
.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.page-header h1{font-size:1.45rem;font-weight:700}
.card{background:var(--card);border:1px solid var(--brd);border-radius:var(--r);box-shadow:var(--s1)}.card-body{padding:1.75rem}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.58rem 1.1rem;border:1px solid transparent;border-radius:var(--rs);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;white-space:nowrap;font-family:inherit;min-height:44px;line-height:1.4}.btn:focus-visible{outline:none;box-shadow:var(--fr)}
.btn-primary{background:var(--acc);color:var(--accT)}.btn-primary:hover{background:var(--acc2);color:var(--accT);transform:translateY(-1px);box-shadow:0 4px 12px rgba(230,126,34,.3)}
.btn-secondary{background:var(--bg3);color:var(--tx);border-color:var(--brd)}.btn-secondary:hover{background:var(--brd)}
.btn-danger{background:var(--red);color:#fff}.btn-outline{background:transparent;color:var(--tx2);border-color:var(--brd)}.btn-outline:hover,.btn-outline.active{background:var(--acc);color:#fff;border-color:var(--acc)}
.btn-ghost{background:none;border:none;color:var(--tx2);padding:.35rem}.btn-ghost:hover{color:var(--acc)}
.btn-sm{padding:.38rem .7rem;font-size:.82rem;min-height:36px}.btn-xs{padding:.28rem .55rem;font-size:.76rem;min-height:32px}.btn-lg{padding:.72rem 1.5rem;font-size:1rem;min-height:48px}.btn-block{width:100%;justify-content:center}

/* Forms */
.form-group{margin-bottom:1.1rem}.form-group label{display:block;font-size:.86rem;font-weight:600;color:var(--tx2);margin-bottom:.3rem}
.form-control{width:100%;padding:.6rem .8rem;border:1px solid var(--inpB);border-radius:var(--rs);background:var(--inp);color:var(--tx);font-size:1rem;font-family:inherit;transition:border-color .2s,box-shadow .2s;min-height:44px}.form-control:focus{outline:none;border-color:var(--acc);box-shadow:var(--fr)}
.form-control-sm{padding:.4rem .65rem;font-size:.86rem;min-height:38px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-actions{display:flex;gap:.7rem;margin-top:1.5rem}
.help-text{font-size:.8rem;color:var(--tx3);margin-top:.2rem;display:block}
.input-group{display:flex;gap:0}.input-group .form-control{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .btn{border-top-left-radius:0;border-bottom-left-radius:0}
select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:100px}
.toggle-row{display:flex;align-items:center;gap:.7rem;padding:.5rem 0}
.toggle-switch{position:relative;width:46px;height:24px;cursor:pointer}.toggle-switch input{display:none}
.toggle-slider{position:absolute;inset:0;background:var(--brd);border-radius:999px;transition:.3s}.toggle-slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}
.toggle-switch input:checked+.toggle-slider{background:var(--acc)}.toggle-switch input:checked+.toggle-slider::before{transform:translateX(22px)}
.alert{padding:.75rem 1rem;border-radius:var(--rs);margin-bottom:1rem;font-size:.9rem;display:flex;align-items:center;gap:.4rem}
.alert-danger{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}[data-theme="dark"] .alert-danger{background:#3f1212;color:#fca5a5;border-color:#5a1a1a}
.alert-success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}[data-theme="dark"] .alert-success{background:#0a2e1f;color:#34d399;border-color:#134e35}

/* Global stats */
.global-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem;margin-bottom:1.5rem}
.global-stat{background:var(--card);border:1px solid var(--brd);border-radius:var(--r);padding:1rem;text-align:center;transition:transform .2s}.global-stat:hover{transform:translateY(-2px)}
.global-stat-value{font-size:1.7rem;font-weight:800;color:var(--acc);line-height:1.2}.global-stat-label{font-size:.72rem;color:var(--tx3);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-top:.15rem}

/* Trip cards */
.trip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.2rem}
.trip-card{background:var(--card);border:1px solid var(--brd);border-radius:var(--r);box-shadow:var(--s1);display:flex;flex-direction:column;transition:all .25s}.trip-card:hover{box-shadow:var(--s2);transform:translateY(-3px);border-color:var(--acc)}
.trip-card-header{padding:1rem 1.2rem 0;display:flex;gap:.4rem;flex-wrap:wrap}.trip-card-body{padding:.4rem 1.2rem 1rem;flex:1}.trip-card-body h3{font-size:1.08rem;margin-bottom:.25rem}.trip-card-body h3 a{color:var(--tx);font-weight:700}.trip-card-body h3 a:hover{color:var(--acc)}
.trip-desc{color:var(--tx2);font-size:.86rem;margin-bottom:.4rem}
.trip-meta{display:flex;flex-wrap:wrap;gap:.7rem;font-size:.8rem;color:var(--tx3)}.trip-meta i{margin-right:.15rem}
.trip-card-footer{padding:.7rem 1.2rem;border-top:1px solid var(--brd2);display:flex;gap:.4rem}
.trip-status{display:inline-block;padding:.12rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.status-planned{background:#fef3e2;color:#b45309}.status-active{background:#d1fae5;color:#065f46}.status-completed{background:#e0e7ff;color:#3730a3}
[data-theme="dark"] .status-planned{background:#3d2a14;color:#fbbf24}[data-theme="dark"] .status-active{background:#0a2e1f;color:#34d399}[data-theme="dark"] .status-completed{background:#1e1b4b;color:#a5b4fc}
.share-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.1rem .4rem;border-radius:999px;font-size:.68rem;font-weight:600;background:var(--accL);color:var(--acc)}
.empty-state{text-align:center;padding:3rem 1.2rem;color:var(--tx3)}.empty-state i{margin-bottom:1rem;opacity:.3;color:var(--acc)}.empty-state h2,.empty-state h3{color:var(--tx2);margin-bottom:.4rem}

/* Stats bar */
.stats-bar{display:flex;gap:0;background:var(--card);border:1px solid var(--brd);border-radius:var(--r);margin-bottom:1rem;box-shadow:var(--s1);overflow:hidden}
.stat{flex:1;text-align:center;padding:.75rem .35rem;border-right:1px solid var(--brd2)}.stat:last-child{border-right:none}
.stat-value{font-size:1.35rem;font-weight:800;color:var(--acc);line-height:1.2}.stat-label{font-size:.7rem;color:var(--tx3);text-transform:uppercase;letter-spacing:.4px;font-weight:600}

/* Map */
.map-layout{display:flex;gap:0;border:1px solid var(--brd);border-radius:var(--r);overflow:hidden;box-shadow:var(--s1);margin-bottom:1.5rem;height:520px}
.map-sidebar{width:275px;min-width:275px;background:var(--card);border-right:1px solid var(--brd);overflow-y:auto;padding:1rem;transition:margin-left .3s}.map-sidebar.collapsed{margin-left:-275px}
.map-container{flex:1;position:relative}.trip-map{width:100%;height:100%}
.sidebar-toggle{position:absolute;top:80px;left:10px;z-index:999;background:var(--card);border:1px solid var(--brd);border-radius:var(--rs);width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--s1);color:var(--tx);transition:.2s}.sidebar-toggle:hover{border-color:var(--acc);color:var(--acc)}
.map-export-bar{position:absolute;top:10px;right:10px;z-index:999;display:flex;gap:5px;flex-direction:column}
.map-export-bar .btn{min-height:36px;font-size:.78rem;padding:.28rem .6rem;background:var(--card);color:var(--tx);border:1px solid var(--brd);box-shadow:var(--s1)}.map-export-bar .btn:hover{background:var(--acc);color:#fff}
.sidebar-section{margin-bottom:1rem}.sidebar-section h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;color:var(--tx3);margin-bottom:.45rem;font-weight:700}
.filter-group{margin-bottom:.7rem}.filter-group>label{font-size:.8rem;font-weight:600;color:var(--tx2);margin-bottom:.25rem;display:block}
.quick-filters{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.35rem}
.category-filters{display:flex;flex-direction:column;gap:.3rem}.category-check{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.82rem;min-height:32px}
.category-check input[type="checkbox"]{width:17px;height:17px;accent-color:var(--acc)}
.cat-badge{padding:.12rem .45rem;border-radius:999px;font-size:.76rem;font-weight:500;display:inline-flex;align-items:center;gap:.25rem}

/* Entries */
.entries-section{margin-top:1.2rem}.entries-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:.4rem;flex-wrap:wrap}.entries-header h2{font-size:1.15rem}
.entries-toolbar{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin-bottom:.7rem}
.entries-timeline{display:flex;flex-direction:column;gap:.5rem}
.timeline-date{font-size:.9rem;font-weight:700;color:var(--acc);padding:.45rem 0;border-bottom:2px solid var(--acc);margin-top:.7rem}.timeline-date:first-child{margin-top:0}
.entry-card{display:flex;gap:.7rem;background:var(--card);border:1px solid var(--brd);border-radius:var(--r);padding:.85rem 1rem;transition:all .2s;position:relative}.entry-card:hover{box-shadow:var(--s1)}
.entry-card.selected{border-color:var(--acc);background:var(--accL)}
.entry-select{position:absolute;top:.55rem;left:.55rem;width:18px;height:18px;accent-color:var(--acc);cursor:pointer;display:none}.entry-card.bulk-mode .entry-select{display:block}
.entry-marker{width:36px;height:36px;min-width:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.85rem}
.entry-content{flex:1;min-width:0}.entry-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.35rem}
.entry-top h4{font-size:.95rem;font-weight:600}.entry-category{font-size:.76rem;color:var(--tx3);font-weight:400;margin-left:.25rem}
.entry-actions{display:flex;gap:.15rem;flex-shrink:0}
.entry-visibility{font-size:.68rem;padding:.08rem .35rem;border-radius:999px;font-weight:600}
.entry-visibility.is-public{background:#d1fae5;color:#065f46}[data-theme="dark"] .entry-visibility.is-public{background:#0a2e1f;color:#34d399}
.entry-visibility.is-private{background:var(--bg3);color:var(--tx3)}
.entry-details{display:flex;flex-wrap:wrap;gap:.55rem;font-size:.8rem;color:var(--tx3);margin-top:.2rem}.entry-details i{margin-right:.12rem}
.leg-miles{color:var(--grn);font-weight:600}.entry-notes{color:var(--tx2);font-size:.88rem;margin-top:.3rem;line-height:1.6}
.entry-photos{display:flex;gap:.45rem;margin-top:.4rem;flex-wrap:wrap}
.entry-thumb{position:relative;cursor:pointer}.entry-thumb img{width:85px;height:58px;object-fit:cover;border-radius:var(--rs);border:1px solid var(--brd);transition:transform .2s}.entry-thumb img:hover{transform:scale(1.06)}
.entry-thumb .caption{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.65);color:#fff;font-size:.62rem;padding:.12rem .25rem;border-radius:0 0 var(--rs) var(--rs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.entry-rating{display:flex;align-items:center;gap:.12rem;color:var(--wrn);font-size:.82rem}
.entry-fav{cursor:pointer;font-size:.95rem;transition:all .2s}.entry-fav:hover{transform:scale(1.2)}.entry-fav.active{color:var(--red)}
.entry-tags{display:flex;gap:.2rem;flex-wrap:wrap;margin-top:.25rem}.entry-tag{font-size:.68rem;padding:.08rem .35rem;background:var(--bg3);color:var(--tx2);border-radius:999px;border:1px solid var(--brd)}
.entry-country{font-size:.76rem;color:var(--tx3)}

/* Entry form */
.entry-form-layout{max-width:850px}.entry-map{height:300px;border-radius:var(--rs);border:1px solid var(--brd);margin-bottom:1rem}
.location-methods{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.7rem}.location-panel{margin-bottom:.7rem}.location-panel.hidden{display:none}
.search-results{max-height:200px;overflow-y:auto;margin-top:.3rem}.search-result-item{padding:.5rem .7rem;cursor:pointer;font-size:.86rem;border-bottom:1px solid var(--brd2);min-height:40px;display:flex;align-items:center;transition:.15s}.search-result-item:hover{background:var(--bg3)}
.existing-photos{display:flex;gap:.5rem;flex-wrap:wrap}.existing-photo{position:relative}.existing-photo img{width:100px;height:68px;object-fit:cover;border-radius:var(--rs)}
.photo-preview{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.photo-preview img{width:100px;height:68px;object-fit:cover;border-radius:var(--rs)}
.caption-input{font-size:.78rem;padding:.2rem .35rem;border:1px solid var(--brd);border-radius:4px;width:100px;margin-top:.15rem;background:var(--inp);color:var(--tx);font-family:inherit}
.rating-stars{display:flex;gap:.2rem;font-size:1.15rem}.rating-stars i{cursor:pointer;color:var(--brd);transition:.15s}.rating-stars i.active,.rating-stars i:hover{color:var(--wrn)}
.rating-tags-grid{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.35rem}.rating-tag{padding:.2rem .55rem;border:1px solid var(--brd);border-radius:999px;font-size:.78rem;cursor:pointer;min-height:32px;display:flex;align-items:center;transition:.15s}.rating-tag.selected{background:var(--acc);color:#fff;border-color:var(--acc)}

/* Quick Log */
.quick-log-fab{position:fixed;bottom:24px;right:24px;z-index:900;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#e67e22,#d35400);color:#fff;border:none;font-size:1.3rem;cursor:pointer;box-shadow:0 4px 20px rgba(230,126,34,.4);display:flex;align-items:center;justify-content:center;transition:all .2s}.quick-log-fab:hover{transform:scale(1.1)}
.quick-log-modal{position:fixed;bottom:96px;right:16px;z-index:901;width:330px;max-width:calc(100vw - 32px);background:var(--card);border:1px solid var(--brd);border-radius:var(--r);box-shadow:var(--s3);padding:1.1rem;display:none}.quick-log-modal.open{display:block;animation:slideUp .25s ease}
.ql-categories{display:grid;grid-template-columns:repeat(5,1fr);gap:.3rem;margin-bottom:.6rem}.ql-cat{width:100%;aspect-ratio:1;border-radius:var(--rs);border:2px solid var(--brd);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;font-size:.6rem;gap:.12rem;background:var(--bg3);transition:.15s}.ql-cat i{font-size:.95rem}.ql-cat.selected{border-color:var(--acc);background:var(--accL)}
.ql-status{font-size:.78rem;color:var(--tx3);margin-top:.2rem}
.ql-prev-odo{font-size:.76rem;color:var(--acc);font-weight:600}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}.lightbox img{max-width:90vw;max-height:85vh;border-radius:var(--rs);box-shadow:0 0 60px rgba(0,0,0,.5)}
.lightbox-close{position:absolute;top:16px;right:20px;color:#fff;font-size:2rem;cursor:pointer;opacity:.7;transition:.2s;background:none;border:none}.lightbox-close:hover{opacity:1}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:2.2rem;cursor:pointer;opacity:.5;transition:.2s;background:none;border:none;padding:1rem}.lightbox-nav:hover{opacity:1}
.lightbox-prev{left:10px}.lightbox-next{right:10px}
.lightbox-caption{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:#fff;font-size:.9rem;background:rgba(0,0,0,.55);padding:.35rem 1.1rem;border-radius:999px;max-width:80%;text-align:center;backdrop-filter:blur(8px)}

/* Export & Import */
.export-overlay{position:fixed;inset:0;background:var(--ov);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}
.export-modal{background:var(--card);border-radius:var(--r);padding:1.5rem;max-width:460px;width:90%}.export-modal h3{margin-bottom:.9rem}.export-options{display:flex;flex-direction:column;gap:.45rem}
.export-option{display:flex;align-items:center;gap:.65rem;padding:.7rem .85rem;border:1px solid var(--brd);border-radius:var(--rs);cursor:pointer;min-height:50px;transition:.2s}.export-option:hover{border-color:var(--acc);background:var(--accL)}.export-option i{font-size:1.05rem;color:var(--acc);width:24px;text-align:center}
.import-preview-trips{display:flex;flex-direction:column;gap:.65rem;margin:1rem 0}
.import-trip-card{border:1px solid var(--brd);border-radius:var(--r);padding:.85rem;display:flex;gap:.85rem;align-items:center}
.import-trip-card input[type=checkbox]{width:20px;height:20px;accent-color:var(--acc)}.import-trip-card .trip-info{flex:1}.import-trip-meta{font-size:.82rem;color:var(--tx3);margin-top:.2rem}

/* Login */
.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1e293b,#0f172a,#1a1523)}
.login-container{width:100%;max-width:400px;padding:1.2rem}.login-card{background:#fff;border-radius:var(--r);box-shadow:var(--s3);padding:2rem}
.login-header{text-align:center;margin-bottom:1.5rem}.login-header img{height:80px;margin-bottom:.4rem}.login-header h1{font-size:1.5rem;color:#1e293b}.login-header p{color:#64748b;font-size:.9rem}

/* Popups */
.leaflet-popup-content-wrapper{border-radius:8px!important;box-shadow:var(--s2)!important}.leaflet-popup-content{margin:.75rem!important;line-height:1.5}
.popup-title{font-weight:700;font-size:.98rem;margin-bottom:.3rem}.popup-meta{color:#64748b;font-size:.82rem;margin-bottom:.2rem}
.popup-photos{display:flex;gap:.35rem;margin-top:.4rem;flex-wrap:wrap;cursor:pointer}.popup-photos img{width:65px;height:45px;object-fit:cover;border-radius:6px}

/* ===== LANDING PAGE ===== */
.landing{min-height:100vh;overflow-x:hidden}
.landing[data-theme="dark"]{background:#0a0c12;color:#e2e8f0}
.landing[data-theme="light"]{background:#f8fafc;color:#1e293b}

/* Hero */
.landing-hero{position:relative;padding:4rem 1.5rem 2.5rem;text-align:center;overflow:hidden}
.landing[data-theme="dark"] .landing-hero{background:linear-gradient(180deg,#141825 0%,#0a0c12 100%)}
.landing[data-theme="light"] .landing-hero{background:linear-gradient(180deg,#fff 0%,#f1f5f9 100%)}
.landing-hero::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 50%,rgba(230,126,34,.08) 0%,transparent 50%),radial-gradient(circle at 70% 30%,rgba(230,126,34,.05) 0%,transparent 40%);animation:gradientShift 15s ease infinite;background-size:200% 200%;pointer-events:none}
.landing-logo{height:110px;animation:float 4s ease-in-out infinite;margin-bottom:.8rem;filter:drop-shadow(0 4px 20px rgba(230,126,34,.3))}
.landing-tagline{font-size:.9rem;color:var(--acc);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:.4rem}
.landing-hero h1{font-size:2.4rem;font-weight:900;margin-bottom:.5rem;line-height:1.2}
.landing[data-theme="dark"] .landing-hero h1{color:#fff}
.landing[data-theme="light"] .landing-hero h1{color:#1e293b}
.landing-hero h1 span{color:var(--acc);position:relative}
.landing-hero p{font-size:1.05rem;max-width:600px;margin:0 auto 1.8rem}
.landing[data-theme="dark"] .landing-hero p{color:#94a3b8}
.landing[data-theme="light"] .landing-hero p{color:#64748b}
.landing-scroll-hint{margin-top:1.5rem;animation:pulse 2s infinite;color:var(--tx3);font-size:1.3rem}

/* Landing stats */
.landing-stats{display:flex;justify-content:center;gap:2.5rem;margin-top:2rem;flex-wrap:wrap}
.landing-stat{text-align:center;min-width:80px}
.landing-stat-value{font-size:2.5rem;font-weight:900;color:var(--acc);line-height:1;font-variant-numeric:tabular-nums}
.landing-stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-top:.3rem}
.landing[data-theme="dark"] .landing-stat-label{color:#64748b}
.landing[data-theme="light"] .landing-stat-label{color:#94a3b8}

/* Landing map */
.landing-map{height:500px;position:relative}
.landing[data-theme="dark"] .landing-map{border-top:3px solid var(--acc);border-bottom:3px solid var(--acc)}
.landing[data-theme="light"] .landing-map{border-top:3px solid var(--acc);border-bottom:3px solid var(--acc)}

/* Glass cards */
.landing-trips{padding:3rem 1.5rem;max-width:1200px;margin:0 auto}
.landing-trips h2{font-size:1.4rem;margin-bottom:1.2rem;font-weight:700;display:flex;align-items:center;gap:.45rem}
.landing[data-theme="dark"] .landing-trips h2{color:#fff}
.landing[data-theme="light"] .landing-trips h2{color:#1e293b}
.landing-trips h2 i{color:var(--acc)}
.landing-trip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.1rem}
.landing-trip-card{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glassBrd);border-radius:var(--r);padding:1.3rem;transition:all .3s;cursor:pointer;position:relative;overflow:hidden}
.landing-trip-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--acc),transparent);opacity:0;transition:opacity .3s}
.landing-trip-card:hover{transform:translateY(-4px);border-color:rgba(230,126,34,.3)}.landing-trip-card:hover::before{opacity:1}
.landing[data-theme="dark"] .landing-trip-card:hover{box-shadow:0 12px 32px rgba(230,126,34,.12)}
.landing[data-theme="light"] .landing-trip-card:hover{box-shadow:0 12px 32px rgba(230,126,34,.1)}
.landing-trip-card h3{font-size:1.05rem;margin-bottom:.25rem;font-weight:700}
.landing[data-theme="dark"] .landing-trip-card h3 a{color:#fff}
.landing[data-theme="light"] .landing-trip-card h3 a{color:#1e293b}
.landing-trip-card h3 a:hover{color:var(--acc)}
.landing-trip-card .trip-meta{color:var(--tx3)}

/* Photo gallery */
.landing-gallery{padding:2.5rem 1.5rem;max-width:1200px;margin:0 auto}
.landing-gallery h2{font-size:1.4rem;margin-bottom:1.2rem;font-weight:700;display:flex;align-items:center;gap:.45rem}
.landing[data-theme="dark"] .landing-gallery h2{color:#fff}
.landing[data-theme="light"] .landing-gallery h2{color:#1e293b}
.gallery-scroll{display:flex;gap:.8rem;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.gallery-scroll::-webkit-scrollbar{height:6px}.gallery-scroll::-webkit-scrollbar-track{background:transparent}.gallery-scroll::-webkit-scrollbar-thumb{background:var(--acc);border-radius:3px}
.gallery-item{flex:0 0 auto;scroll-snap-align:start;position:relative;border-radius:var(--r);overflow:hidden;cursor:pointer;transition:transform .3s}
.gallery-item:hover{transform:scale(1.03)}
.gallery-item img{width:260px;height:180px;object-fit:cover;display:block}
.gallery-item .gallery-caption{position:absolute;bottom:0;left:0;right:0;padding:.5rem .7rem;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-size:.78rem}

/* Landing footer */
.landing-footer{text-align:center;padding:3rem 1.5rem;border-top:1px solid var(--glassBrd)}
.landing[data-theme="dark"] .landing-footer{background:#070810}
.landing[data-theme="light"] .landing-footer{background:#f1f5f9}
.landing-footer .brand{color:var(--acc);font-weight:700;font-size:1.05rem;margin-bottom:.7rem;display:block}
.landing-social{display:flex;justify-content:center;gap:1.5rem;margin-bottom:.8rem}.landing-social a{font-size:1.3rem;transition:all .2s}
.landing[data-theme="dark"] .landing-social a{color:#64748b}
.landing[data-theme="light"] .landing-social a{color:#94a3b8}
.landing-social a:hover{color:var(--acc);transform:translateY(-2px)}
.landing-footer .crew-link{font-size:.76rem;margin-top:.8rem;display:block}
.landing[data-theme="dark"] .landing-footer .crew-link{color:#334155}
.landing[data-theme="light"] .landing-footer .crew-link{color:#94a3b8}
.landing-footer .crew-link:hover{color:var(--tx2)}
.landing-theme-toggle{position:fixed;top:16px;right:16px;z-index:1000;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:all .2s;border:none}
.landing[data-theme="dark"] .landing-theme-toggle{background:rgba(255,255,255,.08);color:#94a3b8}
.landing[data-theme="light"] .landing-theme-toggle{background:rgba(0,0,0,.06);color:#64748b}
.landing-theme-toggle:hover{background:var(--acc);color:#fff}

/* Responsive */
@media(max-width:768px){
html{font-size:17px}
.nav-links{display:none;position:fixed;top:64px;left:0;right:0;background:var(--nav);flex-direction:column;padding:1rem;gap:.3rem;box-shadow:var(--s3);z-index:999}.nav-links.open{display:flex}
.nav-right{margin-left:0}.nav-toggle{display:flex;margin-left:auto}
.trip-grid{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}
.stats-bar{flex-wrap:wrap}.stat{min-width:33%}
.map-layout{flex-direction:column;height:auto}.map-sidebar{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--brd);max-height:300px}.map-sidebar.collapsed{display:none}.trip-map{height:380px}
.trip-header{flex-direction:column}
.quick-log-modal{right:8px;left:8px;width:auto;bottom:94px}
.landing-hero h1{font-size:1.7rem}.landing-map{height:350px}.landing-trip-grid{grid-template-columns:1fr}
.landing-stats{gap:1.5rem}.landing-stat-value{font-size:2rem}
.gallery-item img{width:200px;height:140px}
.nav-search input{width:140px}.nav-search input:focus{width:180px}
.global-stats{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:480px){html{font-size:16px}.stat{flex:1 1 45%}.entry-card{flex-direction:column}.entry-marker{width:32px;height:32px;min-width:32px;font-size:.8rem}.global-stats{grid-template-columns:repeat(2,1fr)}}
.text-center{text-align:center}.text-muted{color:var(--tx3)}

/* Import Timeline */
.import-month-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.5rem}
.import-month-card{background:var(--bg3);border:2px solid var(--brd);border-radius:var(--rs);padding:.5rem;text-align:center;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.import-month-card:hover{border-color:var(--acc);transform:translateY(-2px)}
.import-month-card.selected{border-color:var(--acc);background:var(--accL);box-shadow:0 0 0 2px rgba(230,126,34,.2)}
.import-month-name{font-size:.82rem;font-weight:700;color:var(--tx)}
.import-month-year{font-size:.68rem;color:var(--tx3)}
.import-month-count{font-size:.7rem;color:var(--acc);font-weight:600;margin-top:.15rem}
.import-month-bar{height:3px;background:var(--brd);border-radius:3px;margin-top:.25rem;overflow:hidden}
.import-trip-row{padding:.65rem;border:1px solid var(--brd);border-radius:var(--rs);margin-bottom:.5rem;background:var(--bg3);transition:border-color .2s}
.import-trip-row:hover{border-color:var(--acc)}
.import-trip-count{font-variant-numeric:tabular-nums}
@media(max-width:768px){.import-month-grid{grid-template-columns:repeat(auto-fill,minmax(75px,1fr))}}

/* Budget */
.budget-nav{display:flex;gap:.4rem;margin-bottom:1.2rem;flex-wrap:wrap}
.budget-nav a{flex:1;background:var(--bg3);color:var(--tx);text-align:center;padding:.65rem;border-radius:var(--rs);text-decoration:none;font-weight:600;font-size:.82rem;border:1px solid var(--brd);transition:.15s}
.budget-nav a:hover{border-color:var(--acc)}
.budget-nav a.active{background:var(--acc);color:#fff;border-color:var(--acc)}
.budget-currency-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(55px,1fr));gap:.3rem;margin-top:.3rem}
.budget-currency-item{display:block;text-align:center}
.budget-currency-item input{display:none}
.budget-currency-item span{display:block;padding:.5rem .2rem;background:var(--bg3);border:2px solid var(--brd);border-radius:var(--rs);font-size:.78rem;font-weight:600;cursor:pointer;transition:.15s}
.budget-currency-item input:checked+span{background:var(--acc);color:#fff;border-color:var(--acc)}
.budget-cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;margin-top:.3rem}
.budget-cat-item{display:block}
.budget-cat-item input{display:none}
.budget-cat-item span{display:block;padding:.55rem .4rem;background:var(--bg3);border:2px solid var(--brd);border-radius:var(--rs);font-size:.78rem;font-weight:600;cursor:pointer;text-align:center;transition:.15s}
.budget-cat-item input:checked+span{background:var(--acc);color:#fff;border-color:var(--acc)}
.budget-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--brd2);font-size:.85rem}
.budget-item-cat{min-width:auto;white-space:nowrap}
.budget-item-note{flex:1;color:var(--tx2);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.budget-item-amount{font-weight:700;white-space:nowrap}
.budget-item-date{color:var(--tx3);font-size:.78rem;white-space:nowrap}
@media(max-width:768px){.budget-currency-grid{grid-template-columns:repeat(4,1fr)}}
