:root{background:#fff;color:#000;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--brand-primary: #00e7f0;--brand-secondary: #ff2cfb;--brand-accent: #ff3e55;--brand-highlight: #00e6b3;--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .72);--text-tertiary: rgba(255, 255, 255, .52);--text-disabled: rgba(255, 255, 255, .36);--text-inverse-primary: #0a0a0a;--text-inverse-secondary: rgba(10, 10, 10, .72);--text-inverse-tertiary: rgba(10, 10, 10, .52);--text-inverse-disabled: rgba(10, 10, 10, .36);--container-primary: #0a0a0a;--container-secondary: #1a1a1a;--state-success: #00e6b3;--state-warning: #f7df1e;--state-error: #ff3e55;--state-info: #3b7bff;--border-radius-xs: 4px;--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 16px;--padding-xs: 8px;--padding-sm: 16px;--padding-md: 24px;--padding-lg: 32px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .06);--shadow-md: 0 2px 4px rgba(0, 0, 0, .08), 0 6px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .1), 0 16px 32px rgba(0, 0, 0, .12)}#root{width:100%}a{font-weight:500;color:var(--brand-primary);text-decoration:inherit}a:hover{color:var(--brand-highlight)}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0}h1{font-size:3.2em;line-height:1.1}.container{max-width:1280px;width:100%}.container.full-width{max-width:100%}.success-text{color:var(--state-success)}.error-text{color:var(--state-error)}.warning-text{color:var(--state-warning)}.row{display:flex;flex-direction:row;align-items:start;justify-content:start}.column{display:flex;flex-direction:column;align-items:start;justify-content:start}.align-center{align-items:center}.flex-end{justify-content:flex-end}.justify-center{justify-content:center}.space-between{justify-content:space-between}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--brand-primary);color:var(--text-inverse-primary);cursor:pointer;transition:border-color .25s;display:flex;align-items:center;justify-content:center;flex-direction:row;gap:4px}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}button.standard{background:transparent;color:var(--text-primary)}button.error{background:var(--state-error);color:var(--text-inverse-primary)}button.icon{height:40px;width:40px;margin:4px;padding:0}.field{display:grid;gap:var(--space-xs)}.field input,.field select{background:#ffffff0a;border:1px solid var(--container-secondary);border-radius:var(--border-radius-xs);color:var(--text-primary);padding:var(--padding-sm);width:100%;font-size:1rem}.field textarea{background:#ffffff0a;border:1px solid var(--container-secondary);border-radius:var(--border-radius-xs);color:var(--text-primary);font-size:1rem;padding:var(--padding-sm);width:100%;resize:vertical;min-height:96px}.field input:focus{outline:2px solid var(--brand-primary)}.form{display:grid;gap:var(--space-md)}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:var(--padding-md);z-index:30}.modal-overlay .modal{width:min(520px,100%);background:#0e0e0ef5;border:1px solid rgba(255,255,255,.08);border-radius:14px;box-shadow:0 26px 60px #0000008c;padding:var(--padding-md);color:var(--text-primary);display:flex;flex-direction:column;gap:var(--space-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-overlay .modal .modal-header{display:grid;gap:var(--space-xs)}.modal-overlay .modal .modal-subtext{margin:0;color:var(--text-secondary)}.modal-overlay .modal .modal-form{display:grid;gap:var(--space-md)}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.home{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;margin:0 auto}.home .logo-container{display:flex;flex-direction:column;align-items:center;justify-content:center}.home .logo-container .header{color:var(--text-inverse)}.home .logo-container .location-data{gap:8px}.home .auth-chip{color:var(--text-inverse)}.link-button{background:transparent;color:var(--brand-primary);border:none;padding:0}.link-button:hover{border:none;color:var(--brand-highlight)}.home .login{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.date-range-inputs input[type=date]{width:100%}.date-divider{color:var(--text-secondary);font-size:.95rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--brand-primary);margin:0}.auth-toggle{background:#e5e5e5;display:inline-flex;border:1px solid rgba(255,255,255,.12);border-radius:999px;overflow:hidden;margin-bottom:var(--space-sm)}.auth-toggle .pill{background:transparent;border:none;color:var(--text-inverse)}.auth-toggle .pill.active{background:var(--brand-secondary);color:var(--text-inverse)}.itinerary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md);width:100%}@media(max-width:1200px){.itinerary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.itinerary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.itinerary-grid{grid-template-columns:1fr}}.itinerary-list-item{background:var(--container-primary);border-radius:8px;padding:16px;width:100%;color:var(--text-primary);text-decoration:none;display:flex;flex-direction:column;gap:var(--space-sm);align-items:center}.itinerary{width:100%}.itinerary-content{width:100%;min-height:100vh}.itinerary-sidebar{max-width:480px;width:100%;height:100vh}.itinerary-header{background:var(--brand-primary);width:100%}.itinerary-header .top-bar{width:100%}.itinerary-header .top-bar .back{color:var(--text-primary)}.itinerary-header .top-bar .title{color:var(--text-primary);flex-grow:1;text-align:center}.itinerary-header .top-bar .title h1{font-size:1.35rem}.itinerary-header .top-bar .share{color:var(--text-primary)}.itinerary-header p{margin:0}.itinerary-map{width:100%;height:100vh;overflow:hidden;background:#f0f0f0;position:sticky;top:0;flex:1}.itinerary-map .map-canvas{width:100%;height:100%}.itinerary-map .map-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#555;font-size:.95rem;background:repeating-linear-gradient(-45deg,#00000008,#00000008 10px,#0000000d 10px 20px),#fafafa}.itinerary-actions{background:#fef8f8;padding:0 var(--padding-sm);width:100%}.itinerary-actions button{color:var(--text-inverse-primary)}.edit-error{color:var(--state-error);font-size:.9rem;margin:0}.edit-help{margin:0;color:#555;font-size:.9rem}.itinerary-list{display:flex;width:100%;flex:1;min-height:0;overflow-y:auto;box-sizing:border-box}.itinerary-list .nav-dates{display:flex;flex-direction:column;position:sticky;top:var(--padding-md);align-self:flex-start;gap:var(--space-sm);box-sizing:border-box;min-width:0;padding-left:var(--padding-sm)}.itinerary-list .nav-dates .date-label{border:none;cursor:pointer;padding:var(--padding-sm);border-radius:var(--border-radius-sm);background:var(--day-color, var(--brand-secondary));color:var(--text-primary);text-transform:uppercase;box-shadow:var(--shadow-sm);transition:background .2s ease,transform .2s ease,box-shadow .2s ease;width:72px}.itinerary-list .date-label:hover{background:var(--day-color, var(--brand-secondary));transform:translate(2px);box-shadow:var(--shadow-md)}.itinerary-list .date-label .month{font-size:.85rem}.itinerary-list .date-label .date-number{font-size:1.8rem;font-weight:700;line-height:1}.itinerary-list .date-label .weekday{font-size:.9rem}.itinerary-list .date-label.add-day-btn{background:#f6f8fb;border:1px dashed rgba(0,0,0,.14);color:#0a0a0a}.itinerary-list .activities{flex:1;min-width:0;width:100%;padding-top:var(--padding-sm);padding-right:var(--padding-sm);padding-bottom:var(--padding-md)}.itinerary-list .activities .day{width:100%;border-left:3px solid var(--day-color, var(--brand-secondary));padding:0 var(--padding-sm) var(--padding-sm) var(--padding-sm);background:#fff;box-shadow:var(--shadow-md)}.itinerary-list .activities .day-header{margin-top:var(--padding-sm);display:flex;align-items:center;gap:var(--space-xs)}.itinerary-list .activities .day-header h2{color:var(--day-color, var(--brand-secondary));margin:0}.itinerary-list .activities .day-header .edit-day-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid rgba(0,0,0,.12);border-radius:999px;background:#fff;color:inherit;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.itinerary-list .activities .day-header .edit-day-btn:hover{border-color:#0000003d;box-shadow:0 1px 4px #00000014}.itinerary-list .activities .day-content,.itinerary-list .activities .time-section{width:100%}.time-section-header{color:var(--day-color, var(--brand-secondary))}.itinerary-list .activities .time-section .time-section-activities{width:100%;display:flex;flex-wrap:wrap}.itinerary-list .activities .time-section .time-section-activities.dropping{outline:2px dashed var(--brand-primary);outline-offset:6px}.time-section-activities .drop-zone{background:#f6f8fb;border:1px dashed rgba(0,0,0,.14);border-radius:var(--border-radius-xs);width:100%;height:24px;box-sizing:border-box}.time-section-activities .drop-zone.active{border:none;background:#00e7f024}.itinerary-activity.drop-target,.itinerary-activity.drop-target-bottom{border:none;background:#00e7f01f}.itinerary-activity[draggable=true]{cursor:grab}.itinerary-activity .title{margin:0}.itinerary-activity .title .links a{display:flex;color:var(--brand-primary)}.itinerary-activity .activity-edit-btn{margin-left:auto;background:transparent;border:1px solid rgba(0,0,0,.08);padding:6px 8px;color:#0a0a0a}.itinerary-activity .activity-edit-btn:hover{border-color:#0003}.itinerary-activity .tags .tag{background-color:var(--brand-highlight);border:1px solid var(--brand-highlight);border-radius:360px;color:var(--text-inverse);font-size:.75rem;padding:var(--space-xs) var(--space-sm)}.itinerary-activity .travel-times .mode .value{color:var(--text-inverse-secondary)}.add-activity-btn{align-self:flex-start;background:#f6f8fb;color:#0a0a0a}.add-activity-btn:hover{border-color:#00000057}.color-input-row{display:flex;align-items:center;gap:var(--space-sm)}.color-input-row input[type=color]{appearance:none;border:1px solid var(--container-secondary);border-radius:10px;padding:0;width:48px;height:40px;background:#ffffff0a;cursor:pointer}.color-hex{padding:10px 12px;border-radius:10px;border:1px solid var(--container-secondary);background:#ffffff0a;color:var(--text-primary);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.95rem}.modal-actions .btn-group{justify-content:flex-end;width:100%}
