/* TripSync — expedition editorial design system */
:root {
    --accent:#f2a81d; --accent-dark:#c87808; --accent-soft:rgba(242,168,29,.14);
    --coral-soft:#351f22; --sand-soft:#302719; --sky-soft:#172938;
    --danger:#e06458; --success:#2f7650;
    --bg:#0d131c; --bg-muted:#131d29; --surface:#182330; --surface-2:#202d3a;
    --ink-900:#f5f0e8; --ink-700:#c9c8c0; --ink-500:#8f9aa3; --ink-400:#697783;
    --ink-300:#465461; --ink-200:#30404d; --ink-100:#24323e;
    --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem;
    --s-6:2rem; --s-7:3rem; --s-8:4.5rem; --s-9:6rem;
    --font-sans:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    --font-display:'Playfair Display',Georgia,serif;
    --radius-sm:4px; --radius-md:8px; --radius-lg:12px;
    --border:1px solid var(--ink-200); --t-fast:160ms ease; --t-base:280ms cubic-bezier(.2,.8,.2,1);
    --z-sticky:1020; --z-modal:1050; --z-toast:1080;
}
.pac-container{z-index:9999!important;border-radius:var(--radius-md);box-shadow:0 18px 40px rgba(0,0,0,.4);border:var(--border);font-family:var(--font-sans);margin-top:4px;background:var(--surface);color:var(--ink-900)}
*{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-sans);color:var(--ink-900);background:var(--bg);line-height:1.6;min-height:100vh;font-weight:400}
body:after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");z-index:10000}
h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.025em;line-height:1.1;font-weight:700;color:var(--ink-900)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}
.navbar{background:rgba(13,19,28,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(242,168,29,.18);position:sticky;top:0;z-index:var(--z-sticky)}
.nav-container{max-width:1280px;margin:0 auto;padding:0 var(--s-6);display:flex;align-items:center;justify-content:space-between;height:78px}
.nav-brand{display:flex;align-items:center;gap:var(--s-2);font-size:1.28rem;font-weight:700;color:var(--ink-900);font-family:var(--font-display);letter-spacing:.01em}.nav-brand i{font-size:1.1rem;color:var(--accent)}
.nav-menu{display:flex;list-style:none;gap:var(--s-2)}.nav-link{padding:.7rem 1rem;color:var(--ink-500);text-decoration:none;border-radius:var(--radius-sm);transition:color var(--t-fast);font-weight:600;font-size:.88rem;letter-spacing:.02em}.nav-link:hover{color:var(--ink-900);text-decoration:none}.nav-link.active{color:var(--ink-900);position:relative}.nav-link.active:after{content:"";position:absolute;height:2px;background:var(--accent);left:1rem;right:1rem;bottom:3px}
.nav-actions{display:flex;gap:var(--s-3);align-items:center}
.btn-primary,.btn-secondary,.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);padding:.7rem 1.15rem;border-radius:var(--radius-sm);font-family:inherit;font-size:.88rem;font-weight:700;cursor:pointer;border:1px solid transparent;transition:transform var(--t-fast),background var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);white-space:nowrap;line-height:1}
.btn-primary{background:var(--accent);color:#17130c;box-shadow:0 5px 0 #9b6208,0 12px 24px rgba(242,168,29,.15)}.btn-primary:hover{background:#ffc34d;transform:translateY(-2px);box-shadow:0 7px 0 #9b6208,0 16px 28px rgba(242,168,29,.22)}
.btn-secondary{background:transparent;color:var(--accent);border-color:rgba(242,168,29,.65)}.btn-secondary:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink-900)}
.btn-icon{padding:.5rem;background:transparent;color:var(--ink-400)}.btn-icon:hover{color:var(--accent);background:var(--accent-soft)}
.main-container{max-width:1280px;margin:0 auto;padding:var(--s-8) var(--s-6);min-height:calc(100vh - 78px)}.view-section{display:none}.view-section.active{display:block;animation:fadeIn var(--t-base)}@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.dashboard-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--s-8);gap:var(--s-5);flex-wrap:wrap}.dashboard-header h1{font-size:3rem;color:var(--ink-900)}
.trips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-5)}.trip-card{background:linear-gradient(145deg,var(--surface),#121b25);border:var(--border);border-left:4px solid var(--accent);border-radius:var(--radius-md);padding:var(--s-6);transition:transform var(--t-base),box-shadow var(--t-base),border-color var(--t-fast);display:flex;flex-direction:column;gap:var(--s-2);position:relative;overflow:hidden}.trip-card:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(242,168,29,.08),transparent 45%);pointer-events:none}.trip-card:hover{transform:translateY(-5px) rotate(-.3deg);box-shadow:0 20px 40px rgba(0,0,0,.32);border-color:var(--accent)}.trip-card h3{font-size:1.55rem;color:var(--ink-900);margin-bottom:var(--s-3);position:relative}.trip-card .trip-destinations{color:var(--ink-700);font-size:.9rem;display:flex;align-items:baseline;gap:var(--s-2)}.trip-card .trip-destinations:before{content:"\f3c5";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--accent);font-size:.8rem}.trip-card .trip-dates{color:var(--ink-500);font-size:.85rem;margin-bottom:var(--s-5)}.trip-card .open-trip-btn{margin-top:auto;align-self:flex-start;background:transparent;color:var(--accent);border:1px solid var(--ink-300);box-shadow:none}.trip-card .open-trip-btn:hover{background:var(--accent);color:#17130c;border-color:var(--accent)}
.empty-state{grid-column:1/-1;text-align:center;padding:var(--s-9) var(--s-6);color:var(--ink-500);border:1px dashed var(--ink-300);border-radius:var(--radius-md)}.empty-state p{font-size:1rem;max-width:480px;margin:0 auto;line-height:1.7}.empty-state strong{color:var(--ink-900);font-weight:700}
.planner-header{margin-bottom:var(--s-7)}.planner-header h1,.profile-header h1{font-size:2.5rem;color:var(--ink-900)}.planner-grid{display:grid;grid-template-columns:340px 1fr;gap:var(--s-6)}.planner-suggestions-panel,.planner-timeline-panel,.profile-form-panel,.profile-preferences-panel,.profile-bucket-list-panel{background:var(--surface);border:var(--border);border-radius:var(--radius-md);padding:var(--s-6);box-shadow:0 12px 30px rgba(0,0,0,.12)}.planner-suggestions-panel h2,.planner-timeline-panel h2,.profile-form-panel h2,.profile-preferences-panel h2,.profile-bucket-list-panel h2{font-size:1.15rem;margin-bottom:var(--s-4);color:var(--ink-900);font-weight:700}.planner-suggestions-panel hr{border:0;height:1px;background:var(--ink-200);margin:var(--s-5) 0}.poi-container{max-height:360px;overflow-y:auto;margin-bottom:var(--s-4)}.poi-item{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border-radius:var(--radius-sm)}.poi-item:hover{background:var(--accent-soft)}.poi-item label{cursor:pointer;flex:1;font-size:.9rem;color:var(--ink-700)}.poi-item input[type=checkbox]{accent-color:var(--accent)}.unscheduled-activities{margin-bottom:var(--s-5)}.unscheduled-activities h3{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin-bottom:var(--s-3);font-weight:700;font-family:var(--font-sans)}.unscheduled-drop-zone{border:1px dashed var(--ink-300);border-radius:var(--radius-md);padding:var(--s-4);min-height:90px;transition:border-color var(--t-fast),background var(--t-fast)}.unscheduled-drop-zone:hover,.drop-zone:hover{border-color:var(--accent);background:var(--accent-soft)}
.timeline-day{margin-bottom:var(--s-5);padding:var(--s-4);border-top:1px solid var(--ink-200)}.timeline-day:first-child{border-top:none;padding-top:0}.timeline-date{font-size:1rem;font-weight:700;color:var(--accent);margin-bottom:var(--s-3);display:inline-block;font-family:var(--font-display)}.optimize-day-btn{margin-left:var(--s-3);font-size:.8rem;padding:.3rem .7rem}.timeline-items{padding:var(--s-2) 0;min-height:50px;border-radius:var(--radius-sm)}.drop-zone{transition:background var(--t-fast)}.timeline-item{background:var(--surface-2);padding:var(--s-4);border-radius:var(--radius-sm);border:1px solid var(--ink-200);margin-bottom:var(--s-3);cursor:grab;transition:transform var(--t-fast),border-color var(--t-fast)}.timeline-item:hover{border-color:var(--accent);transform:translateX(3px)}.timeline-item:active{cursor:grabbing}.timeline-item h3{font-size:.95rem;font-weight:700;margin-bottom:2px;font-family:var(--font-sans);color:var(--ink-900)}.timeline-item p{font-size:.825rem;color:var(--ink-500)}
.profile-header{margin-bottom:var(--s-7)}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6)}.profile-bucket-list-panel{grid-column:1/-1}.bucket-list{list-style:none;padding:0}.bucket-list li{padding:var(--s-3) 0;border-bottom:1px solid var(--ink-200);display:flex;align-items:center;gap:var(--s-3);color:var(--ink-700)}.bucket-list li:before{content:"—";color:var(--accent);font-weight:700}
.modal{display:none;position:fixed;inset:0;background:rgba(4,8,13,.82);backdrop-filter:blur(8px);z-index:1040;padding:var(--s-5)}.modal.active{display:flex;align-items:center;justify-content:center}.modal-content{background:var(--surface);border-radius:var(--radius-md);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;border:1px solid var(--ink-200);box-shadow:0 24px 80px rgba(0,0,0,.5);animation:slideUp var(--t-base)}@keyframes slideUp{from{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--s-5) var(--s-6);border-top:3px solid var(--accent);border-bottom:var(--border)}.modal-header h3{font-size:1.35rem;font-weight:700}.modal-close{background:transparent;border:none;font-size:1.4rem;cursor:pointer;color:var(--ink-400);width:32px;height:32px;border-radius:var(--radius-sm)}.modal-close:hover{background:var(--accent-soft);color:var(--accent)}.modal-form{padding:var(--s-6)}
.form-group{margin-bottom:var(--s-5)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}.form-group label{display:block;margin-bottom:var(--s-2);font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.7rem .85rem;border:1px solid var(--ink-200);border-radius:var(--radius-sm);font-family:inherit;font-size:.95rem;background:#111a24;color:var(--ink-900);transition:border-color var(--t-fast),box-shadow var(--t-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.destination-input-group{display:flex;gap:var(--s-2);align-items:center;margin-bottom:var(--s-2)}.destination-input-group .destination-input{flex:1}.destination-input.invalid{border-color:var(--danger)}.error-message{color:var(--danger);font-size:.8rem;margin-top:var(--s-1)}.checkbox-group{display:flex;align-items:center;gap:var(--s-2)}.checkbox-group input{width:auto;accent-color:var(--accent)}.checkbox-group label{margin-bottom:0;font-weight:400;color:var(--ink-700);text-transform:none;letter-spacing:0}.form-actions{display:flex;justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-6)}
.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:var(--s-2);z-index:var(--z-toast);pointer-events:none}.toast{padding:.8rem 1.1rem;border-radius:var(--radius-sm);color:#17130c;font-size:.875rem;font-weight:700;background:var(--accent);opacity:0;transform:translateY(8px);transition:all var(--t-base);pointer-events:auto;max-width:360px;box-shadow:0 10px 30px rgba(0,0,0,.35)}.toast.show{opacity:1;transform:translateY(0)}.toast-success{background:#3e8a61;color:#f5f0e8}.toast-error{background:var(--danger);color:#fff}.toast-info{background:var(--surface-2);color:var(--ink-900)}
@media(max-width:900px){.planner-grid{grid-template-columns:1fr}.profile-grid{grid-template-columns:1fr}.nav-menu{display:none}.form-row{grid-template-columns:1fr}}
@media(max-width:600px){.nav-actions .btn-secondary span,.nav-actions .btn-primary span{display:none}.main-container{padding:var(--s-6) var(--s-4)}.dashboard-header h1{font-size:2.3rem}.nav-container{padding:0 var(--s-4)}}