@font-face{font-family:inter;src:url(../media/Inter-s.p.2la4dbfrngu72.ttf)format("truetype");font-display:swap;font-weight:100 900}@font-face{font-family:inter Fallback;src:local(Arial);ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.0%;size-adjust:107.89%}.inter_77fa6f11-module__A4lkVG__className{font-family:inter,inter Fallback}.inter_77fa6f11-module__A4lkVG__variable{--font-inter:"inter", "inter Fallback"}
@font-face{font-family:plexMono;src:url(../media/PlexMono_Regular-s.p.21pssk39-cz7l.ttf)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:plexMono;src:url(../media/PlexMono_Medium-s.p.0uwx8ff8z0o7f.ttf)format("truetype");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:plexMono Fallback;src:local(Arial);ascent-override:77.95%;descent-override:20.91%;line-gap-override:0.0%;size-adjust:131.49%}.plexmono_71ab319c-module__9aC1Vq__className{font-family:plexMono,plexMono Fallback}.plexmono_71ab319c-module__9aC1Vq__variable{--font-plex-mono:"plexMono", "plexMono Fallback"}
:root{--bg-base:#0a0a0c;--bg-surface:#111114;--bg-elevated:#17171b;--border:#ffffff24;--border-dim:#ffffff14;--primary:#2f8fe8;--primary-bright:#4aa3f5;--accent:#2f8fe8;--text-primary:#f2f2f0;--text-secondary:#9a9a9f;--text-muted:#66666c;--success:#8fe3b8;--warning:#f0d48a;--danger:#e8a3a3;--sky:#9fc6e8;--lavender:#c9bfef;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-inter), -apple-system, "Segoe UI", sans-serif;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.6}a{color:inherit}button,select,input{font-family:inherit}h1,h2{font-family:var(--font-inter), sans-serif;text-wrap:balance;margin:0;font-weight:800;line-height:1.15}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}:focus-visible{outline:2px solid var(--primary-bright);outline-offset:1px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:.4s both fadeIn}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.4s both fadeUp}@media (prefers-reduced-motion:reduce){.fade-in,.fade-up{animation:none}}.app{flex-direction:column;height:100%;display:flex}.app-loading{z-index:100;background:var(--bg-base);flex-direction:column;justify-content:center;align-items:center;gap:.9rem;display:flex;position:fixed;inset:0}.app-loading-mark{background:color-mix(in srgb, var(--primary) 16%, transparent);border:1px solid color-mix(in srgb, var(--primary) 38%, transparent);border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;animation:1.6s ease-in-out infinite appLoadingPulse;display:flex}.app-loading-mark svg{width:28px;height:28px;fill:var(--primary-bright)}.app-loading-label{font-family:var(--font-plex-mono), monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:12px}@keyframes appLoadingPulse{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.app-loading-mark{animation:none}}.topbar{background:var(--bg-base);border-bottom:1px solid var(--border-dim);flex:none;justify-content:space-between;align-items:center;height:56px;padding:0 1.1rem;display:flex}.topbar-brand{align-items:baseline;gap:.6rem;min-width:0;display:flex}.topbar-brand .name{letter-spacing:-.01em;color:var(--text-primary);white-space:nowrap;font-size:16px;font-weight:800;text-decoration:none}.topbar-brand .div{background:var(--border);flex:none;width:1px;height:14px}.topbar-brand .sub{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.topbar-right{flex:none;align-items:center;gap:.75rem;display:flex}.topbar-dates{font-family:var(--font-plex-mono), monospace;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border-dim);white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:11.5px}.topbar-avatar{background:var(--primary);cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:background .2s;display:flex}.topbar-avatar:hover{background:var(--primary-bright)}.topbar-avatar svg{fill:none;stroke:#06111f;stroke-width:2px;width:16px;height:16px}.user-menu{position:relative}.user-menu-dropdown{z-index:30;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;min-width:12rem;padding:.6rem;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 28px #00000080}.user-menu-email{color:var(--text-secondary);border-bottom:1px solid var(--border-dim);word-break:break-all;margin-bottom:.4rem;padding:.3rem .4rem .6rem;font-size:12px}.user-menu-logout{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.4rem;font-size:13px;transition:background .15s}.user-menu-logout:hover{background:var(--bg-surface)}.user-menu-logout:disabled{opacity:.6;cursor:default}.app-body{flex:1;min-height:0;display:flex}.sidebar{background:var(--bg-base);border-right:1px solid var(--border-dim);flex-direction:column;flex:none;align-items:stretch;gap:6px;width:84px;padding:14px 10px;display:flex}.sidebar-item{color:var(--text-secondary);cursor:pointer;letter-spacing:.01em;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:10px 4px 8px;font-size:10.5px;transition:color .2s,border-color .2s,background .2s;display:flex}.sidebar-item svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:20px;height:20px}.sidebar-item:hover{color:var(--text-primary)}.sidebar-item.active{color:var(--primary-bright);background:color-mix(in srgb, var(--primary) 13%, transparent);border-color:color-mix(in srgb, var(--primary) 38%, transparent)}.modules{flex:1;min-width:0;min-height:0;position:relative}.module{min-height:0;display:none;position:absolute;inset:0}.module.active{display:flex}#module-itinerary{flex-direction:column}.itin-scroll{flex:1;overflow-y:auto}.itin-daynav{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-dim);scrollbar-width:none;background:#0a0a0ce6;gap:.4rem;padding:.65rem 1.5rem;display:flex;position:sticky;top:0;overflow-x:auto}.itin-daynav::-webkit-scrollbar{display:none}.chip{font-family:var(--font-plex-mono), monospace;letter-spacing:.02em;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border-dim);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;padding:5px 10px;font-size:11px;text-decoration:none;transition:border-color .2s,color .2s}.chip:hover{color:var(--primary-bright);border-color:var(--primary)}.itin-content{max-width:44rem;margin:0 auto;padding:1.6rem 1.5rem 4rem}.page-head{margin-bottom:1.4rem}.page-head .eyebrow{font-family:var(--font-plex-mono), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem;font-size:11px;display:block}.page-head h1{color:var(--text-primary);font-size:22px}.page-head p{color:var(--text-secondary);margin:.4rem 0 0;font-size:13px}.page-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.page-head-actions{flex:none;align-items:center;gap:.6rem;display:flex}.export-actions{align-items:center;gap:.7rem;display:flex}.import-plan-btn{background:var(--bg-elevated);border:1px solid var(--border-dim);color:var(--text-secondary);cursor:pointer;border-radius:8px;flex:none;align-items:center;gap:.4rem;padding:8px 12px;font-size:12.5px;font-weight:600;transition:color .2s,border-color .2s,background .2s;display:flex}.import-plan-btn:hover{color:var(--primary-bright);border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}.import-plan-btn svg{stroke:currentColor;fill:none;stroke-width:2px;width:15px;height:15px}.import-textarea{resize:vertical;min-height:9rem;font-family:var(--font-plex-mono), monospace;white-space:pre;font-size:12px}.import-textarea::placeholder{color:var(--text-muted);opacity:.7;white-space:pre;font-family:var(--font-plex-mono), monospace}.import-preview{flex-direction:column;gap:.8rem;max-height:50vh;margin:0 0 1rem;display:flex;overflow-y:auto}.import-preview-day{border:1px solid var(--border-dim);border-radius:10px;padding:.7rem .85rem}.import-preview-day-head{color:var(--text-primary);justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.45rem;font-size:13px;font-weight:700;display:flex}.import-preview-badge{font-family:var(--font-plex-mono), monospace;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);background:color-mix(in srgb, var(--text-muted) 14%, transparent);border:1px solid color-mix(in srgb, var(--text-muted) 30%, transparent);white-space:nowrap;border-radius:999px;flex:none;padding:2px 8px;font-size:10px}.import-preview-badge.is-new{color:var(--success);background:color-mix(in srgb, var(--success) 14%, transparent);border-color:color-mix(in srgb, var(--success) 32%, transparent)}.import-preview-badge.is-replace{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, transparent);border-color:color-mix(in srgb, var(--warning) 32%, transparent)}.import-preview-badge.is-remove{color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent);border-color:color-mix(in srgb, var(--danger) 32%, transparent)}.import-preview-day ul{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.import-preview-day li{color:var(--text-secondary);align-items:center;gap:.4rem;font-size:12.5px;display:flex}.import-preview-removed{border-color:color-mix(in srgb, var(--danger) 35%, var(--border-dim));background:color-mix(in srgb, var(--danger) 5%, transparent)}.import-preview-summary{color:var(--text-secondary);font-size:12.5px}.import-preview-logistics{font-family:var(--font-plex-mono), monospace;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);flex:none;font-size:9.5px}.manifest{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;margin-top:1.2rem;overflow:hidden}.manifest-head{border-bottom:1px solid var(--border-dim);font-family:var(--font-plex-mono), monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);align-items:center;gap:.5rem;padding:.8rem 1.25rem;font-size:11px;display:flex}.flights{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.flight{border-bottom:1px solid var(--border-dim);padding:1rem 1.25rem 1.1rem}.flight:not(:last-child){border-right:1px solid var(--border-dim)}@media (max-width:38rem){.flight{border-right:none!important}}.flight .tag{font-family:var(--font-plex-mono), monospace;letter-spacing:.08em;color:var(--primary-bright);margin-bottom:.3rem;font-size:10.5px;display:block}.flight .num{color:var(--text-primary);margin-bottom:.35rem;font-weight:700}.flight .route-time{font-family:var(--font-plex-mono), monospace;color:var(--text-primary);font-size:12.5px;line-height:1.6}.flight .meta{color:var(--text-secondary);margin-top:.3rem;font-size:12.5px}.lodging{padding:.3rem 1.25rem 1.1rem}.lodging table{border-collapse:collapse;width:100%}.lodging th{text-align:left;font-family:var(--font-plex-mono), monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-dim);padding:.6rem .4rem .4rem;font-size:10.5px}.lodging td{border-bottom:1px solid var(--border-dim);color:var(--text-primary);padding:.5rem .4rem;font-size:13px}.lodging td.nights{font-family:var(--font-plex-mono), monospace;color:var(--text-secondary);white-space:nowrap;font-size:12px}.lodging tr:last-child td{border-bottom:none}.lodging a{font-weight:700;text-decoration:none;transition:color .2s}.lodging a:hover{color:var(--primary-bright)}.day{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;margin-top:1.4rem;scroll-margin-top:3.2rem;overflow:hidden}.day-head{border-bottom:1px solid var(--border-dim);justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:flex}.day-num{font-family:var(--font-plex-mono), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--primary-bright);margin-bottom:.2rem;font-size:10.5px;display:block}.day-head h2{color:var(--text-primary);font-size:17px;font-weight:700}.day-sub{color:var(--text-secondary);margin:.3rem 0 0;font-size:12.5px}.stay-badge{background:color-mix(in srgb, var(--primary) 15%, transparent);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);color:var(--primary-bright);font-family:var(--font-plex-mono), monospace;white-space:nowrap;border-radius:999px;flex:none;padding:4px 11px;font-size:11.5px;font-weight:600}.stops{margin:0;padding:0;list-style:none}.stop{border-bottom:1px solid var(--border-dim);grid-template-columns:6rem 1fr;gap:.9rem;padding:1rem 1.25rem;transition:background .15s;display:grid}.stop:hover{background:var(--bg-elevated)}.stop:last-child{border-bottom:none}.stop-time{font-family:var(--font-plex-mono), monospace;color:var(--text-secondary);padding-top:.2rem;font-size:12px;font-weight:600}.stop-body{align-items:flex-start;gap:.9rem;display:flex}.stop-text{flex:1;min-width:0}.stop-name{color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:.45rem;font-size:14.5px;font-weight:700;display:flex}.category-badge{font-family:var(--font-plex-mono), monospace;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:600}.category-food{background:color-mix(in srgb, var(--success) 15%, transparent);border:1px solid color-mix(in srgb, var(--success) 32%, transparent);color:var(--success)}.category-museums{background:color-mix(in srgb, var(--lavender) 15%, transparent);border:1px solid color-mix(in srgb, var(--lavender) 32%, transparent);color:var(--lavender)}.category-tours{background:color-mix(in srgb, var(--sky) 15%, transparent);border:1px solid color-mix(in srgb, var(--sky) 32%, transparent);color:var(--sky)}.category-misc{background:color-mix(in srgb, var(--text-muted) 20%, transparent);border:1px solid color-mix(in srgb, var(--text-muted) 38%, transparent);color:var(--text-secondary)}.stop-name.is-place{color:var(--text-primary)}.type-badge{border-radius:6px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;display:flex}.type-badge svg{width:13px;height:13px}.type-badge-flight{background:color-mix(in srgb, var(--sky) 18%, transparent);border:1px solid color-mix(in srgb, var(--sky) 38%, transparent);color:var(--sky)}.type-badge-hotel{background:color-mix(in srgb, var(--warning) 18%, transparent);border:1px solid color-mix(in srgb, var(--warning) 38%, transparent);color:var(--warning)}.type-badge-activity{background:color-mix(in srgb, var(--primary) 18%, transparent);border:1px solid color-mix(in srgb, var(--primary) 38%, transparent);color:var(--primary-bright)}.type-badge-other{background:color-mix(in srgb, var(--text-muted) 14%, transparent);border:1px solid color-mix(in srgb, var(--text-muted) 32%, transparent);color:var(--text-muted)}.dot{border-radius:50%;flex:none;width:6px;height:6px;display:inline-block;transform:translateY(-1px)}.dot-place{background:var(--primary)}.dot-logistics{background:var(--text-muted)}.dot-badge{background:var(--warning);border-radius:3px;flex:none;width:8px;height:8px;margin-right:2px;display:inline-block}.stop-name-sub{color:var(--text-muted);font-size:.85em;font-weight:500}.stop-blurb{color:var(--text-secondary);margin:.35rem 0 0 .85rem;font-size:13px}.stop-footer{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.65rem 0 0 .85rem;display:flex}.stop-footer-sep{background:var(--border-dim);flex:none;width:1px;height:16px}.maps-link{font-family:var(--font-plex-mono), monospace;color:#06111f;background:var(--primary);border-radius:7px;align-items:center;gap:.35rem;padding:6px 10px;font-size:11.5px;font-weight:600;text-decoration:none;transition:background .2s,opacity .25s;display:inline-flex}.maps-link:hover{background:var(--primary-bright)}@media (hover:hover){.maps-link{opacity:0;pointer-events:none}.stop:hover .maps-link,.stop:focus-within .maps-link,.activity-row:hover .maps-link,.activity-row:focus-within .maps-link{opacity:1;pointer-events:auto}.activity-actions,.not-interested-actions{opacity:0;pointer-events:none;transition:opacity .15s}.activity-row:hover .activity-actions,.activity-row:focus-within .activity-actions,.not-interested-item:hover .not-interested-actions,.not-interested-item:focus-within .not-interested-actions{opacity:1;pointer-events:auto}}.pin-icon{fill:currentColor;width:13px;height:13px}.stop-photo{border:1px solid var(--border-dim);background:var(--bg-elevated);border-radius:10px;flex:none;width:6.2rem;height:4.7rem;margin:0;overflow:hidden}.stop-photo img{object-fit:cover;width:100%;height:100%;display:block}.stop-photo-placeholder{justify-content:center;align-items:center;display:flex}.stop-photo-placeholder span{font-family:var(--font-plex-mono), monospace;letter-spacing:.02em;font-size:18px;font-weight:600}.stop-photo-placeholder.category-food{background:color-mix(in srgb, var(--success) 16%, var(--bg-elevated));color:var(--success)}.stop-photo-placeholder.category-museums{background:color-mix(in srgb, var(--lavender) 16%, var(--bg-elevated));color:var(--lavender)}.stop-photo-placeholder.category-tours{background:color-mix(in srgb, var(--sky) 16%, var(--bg-elevated));color:var(--sky)}.stop-photo-placeholder.category-misc{background:color-mix(in srgb, var(--text-muted) 20%, var(--bg-elevated));color:var(--text-secondary)}.activity-list-wrap{border-top:1px solid var(--border-dim)}.activity-list{margin:0;padding:0;list-style:none}.activity-li{list-style:none}.activity-row{border-bottom:1px solid var(--border-dim);align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;transition:background .15s;display:flex}.activity-row:hover{background:var(--bg-elevated)}.activity-li:last-child .activity-row{border-bottom:none}.activity-body{flex:1;align-items:flex-start;gap:.9rem;min-width:0;display:flex}.drag-handle{width:22px;height:22px;color:var(--text-muted);cursor:grab;touch-action:none;background:0 0;border:none;flex:none;margin-top:1px;padding:0;transition:color .2s}.drag-handle:hover{color:var(--text-secondary)}.drag-handle:active{cursor:grabbing}.drag-handle svg{fill:currentColor;width:100%;height:100%}.activity-actions{flex:none;align-items:center;gap:.4rem;display:flex}.not-interested-btn,.icon-btn{border:1px solid var(--border-dim);width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:7px;flex:none;justify-content:center;align-items:center;transition:color .2s,border-color .2s;display:flex}.not-interested-btn:hover,.icon-btn:hover{color:var(--text-secondary);border-color:var(--border)}.not-interested-btn svg,.icon-btn svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:15px;height:15px}.icon-btn-danger:hover{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.star-btn svg{fill:none}.star-btn:hover{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.star-btn.starred{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 45%, var(--border));background:color-mix(in srgb, var(--warning) 14%, transparent)}.star-btn.starred svg{fill:var(--warning)}.must-do-section{border:1px solid color-mix(in srgb, var(--warning) 35%, var(--border-dim));background:color-mix(in srgb, var(--warning) 5%, transparent);border-radius:12px;margin:.9rem 1.1rem 0;overflow:hidden}.must-do-head{font-family:var(--font-plex-mono), monospace;letter-spacing:.02em;color:color-mix(in srgb, var(--warning) 80%, var(--text-primary));border-bottom:1px solid color-mix(in srgb, var(--warning) 25%, var(--border-dim));align-items:center;gap:.45rem;padding:.6rem 1.1rem;font-size:11.5px;display:flex}.must-do-head-star{width:13px;height:13px;fill:var(--warning);stroke:none}.must-do-list .activity-row{border-bottom:1px solid color-mix(in srgb, var(--warning) 16%, var(--border-dim))}.must-do-list .activity-li:last-child .activity-row{border-bottom:none}.not-interested-accordion{border-top:1px solid var(--border-dim)}.not-interested-accordion-head{width:100%;font-family:var(--font-plex-mono), monospace;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.7rem 1.25rem;font-size:11.5px;transition:color .2s;display:flex}.not-interested-accordion-head:hover{color:var(--text-secondary)}.not-interested-accordion-head .chevron{stroke:currentColor;fill:none;stroke-width:2px;flex:none;width:14px;height:14px;transition:transform .2s}.not-interested-accordion.open .not-interested-accordion-head .chevron{transform:rotate(180deg)}.not-interested-list{margin:0;padding:0 1.25rem .8rem;list-style:none}.not-interested-item{border-bottom:1px solid var(--border-dim);justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem 0;display:flex}.not-interested-item:last-child{border-bottom:none}.not-interested-name{color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:.4rem;font-size:13px;display:flex}.not-interested-actions{flex:none;align-items:center;gap:.4rem;display:flex}.add-back-btn{border:1px solid var(--border-dim);color:var(--primary-bright);font-family:var(--font-plex-mono), monospace;cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:4px 10px;font-size:11px;transition:border-color .2s,background .2s}.add-back-btn:hover{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent)}@media (max-width:32rem){.stop{grid-template-columns:1fr;gap:.3rem;padding:.9rem 1rem}.stop-time{padding-top:0}.stop-body{flex-direction:row-reverse}.stop-photo{width:4.4rem;height:4.4rem}.activity-row{padding:.9rem 1rem}.activity-body{flex-direction:row-reverse}}.closing{background:color-mix(in srgb, var(--warning) 12%, var(--bg-surface));border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);border-radius:12px;margin-top:1.4rem;padding:1.1rem 1.3rem}.closing h3{color:var(--warning);margin:0 0 .4rem;font-size:13.5px;font-weight:700}.closing p{color:var(--text-primary);margin:0;font-size:13px;line-height:1.6}footer.credits{text-align:center;font-family:var(--font-plex-mono), monospace;color:var(--text-muted);margin-top:2rem;font-size:10.5px;line-height:1.8}#module-map{flex-direction:row}.map-list-panel{background:var(--bg-surface);border-right:1px solid var(--border-dim);flex-direction:column;flex:none;width:340px;min-height:0;transition:width .2s,opacity .15s;display:flex;overflow:hidden}.map-list-panel.collapsed{opacity:0;border-right-color:#0000;width:0}.map-filterbar{border-bottom:1px solid var(--border-dim);flex-direction:column;flex:none;gap:.5rem;padding:.85rem;display:flex}.map-search{background:var(--bg-elevated);border:1px solid var(--border-dim);border-radius:8px;align-items:center;gap:.5rem;padding:7px 10px;display:flex}.map-search svg{width:14px;height:14px;stroke:var(--text-muted);fill:none;stroke-width:2px;flex:none}.map-search input{color:var(--text-primary);font-family:var(--font-inter), sans-serif;background:0 0;border:none;outline:none;width:100%;font-size:12.5px}.map-search input::placeholder{color:var(--text-muted)}.map-filter-select{background:var(--bg-elevated);border:1px solid var(--border-dim);color:var(--text-secondary);font-size:12px;font-family:var(--font-inter), sans-serif;border-radius:8px;padding:6px 8px}.map-locate-btn{background:var(--bg-elevated);border:1px solid var(--border-dim);color:var(--text-secondary);font-size:12px;font-family:var(--font-inter), sans-serif;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:6px 10px;transition:color .2s,border-color .2s,background .2s;display:flex}.map-locate-btn:hover{color:var(--text-primary);border-color:var(--border)}.map-locate-btn:disabled{cursor:default;opacity:.7}.map-locate-btn svg{stroke:currentColor;fill:none;stroke-width:2px;flex:none;width:14px;height:14px}.map-locate-btn.is-active{color:var(--primary-bright);border-color:color-mix(in srgb, var(--primary) 45%, var(--border-dim));background:color-mix(in srgb, var(--primary) 10%, transparent)}.map-locate-error{color:var(--danger);margin:0;font-size:11px;line-height:1.4}.map-list-header{border-bottom:1px solid var(--border-dim);font-family:var(--font-plex-mono), monospace;color:var(--text-secondary);flex:none;justify-content:space-between;align-items:center;padding:.7rem .9rem;font-size:11.5px;display:flex}.map-list-header .count{color:var(--text-primary);font-weight:600}.icon-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px;transition:color .2s;display:flex}.icon-btn:hover{color:var(--primary-bright)}.icon-btn svg{stroke:currentColor;fill:none;stroke-width:2px;width:16px;height:16px}.map-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.map-list-item{border-bottom:1px solid var(--border-dim);cursor:pointer;padding:.7rem .9rem;transition:background .15s}.map-list-item:hover,.map-list-item.is-selected{background:var(--bg-elevated)}.map-list-item.is-hidden{display:none}.mli-row{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.mli-name{color:var(--text-primary);flex-wrap:wrap;align-items:baseline;gap:.4rem;font-size:13px;font-weight:700;display:flex}.mli-day{font-family:var(--font-plex-mono), monospace;color:var(--text-muted);flex:none;font-size:10.5px}.mli-distance{font-family:var(--font-plex-mono), monospace;color:var(--primary-bright);flex:none;font-size:10.5px}.map-list-item-stay .mli-day{color:var(--warning)}.mli-blurb{color:var(--text-secondary);margin:.3rem 0 0 .85rem;font-size:12px}.map-list-divider{background:var(--bg-base);border-bottom:1px solid var(--border-dim);z-index:1;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .9rem;display:flex;position:sticky;top:0}.mld-day{font-family:var(--font-plex-mono), monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);font-size:10px}.mld-badge{font-family:var(--font-plex-mono), monospace;color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, transparent);border:1px solid color-mix(in srgb, var(--warning) 32%, transparent);white-space:nowrap;border-radius:999px;flex:none;padding:2px 8px;font-size:10px;font-weight:600}.map-list-divider.is-hidden{display:none}.map-legend-panel{border-top:1px solid var(--border-dim);flex:none}.map-legend-head{cursor:pointer;justify-content:space-between;align-items:center;padding:.7rem .9rem;display:flex}.map-legend-head span{color:var(--text-primary);align-items:center;gap:.45rem;font-size:12px;font-weight:700;display:flex}.map-legend-head svg{width:14px;height:14px;stroke:var(--text-secondary);fill:none;stroke-width:2px}.map-legend-body{flex-direction:column;gap:.45rem;padding:0 .9rem .9rem;display:flex}.map-legend-panel.collapsed .map-legend-body{display:none}.map-legend-panel.collapsed .chevron{transform:rotate(-90deg)}.chevron{transition:transform .2s}.legend-row{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:12px;display:flex}.map-canvas-wrap{flex:1;min-width:0;position:relative}#map{background:var(--bg-base);position:absolute;inset:0}.map-reopen-btn{z-index:3;background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:color .2s,border-color .2s;display:none;position:absolute;top:12px;left:12px}.map-reopen-btn.visible{display:flex}.map-reopen-btn:hover{color:var(--primary-bright);border-color:var(--primary)}.map-reopen-btn svg{stroke:currentColor;fill:none;stroke-width:2px;width:16px;height:16px}@media (max-width:46rem){.app-body{flex-direction:column}.modules{order:1}.sidebar{border-right:none;border-top:1px solid var(--border-dim);width:100%;height:auto;padding:6px max(6px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));flex-direction:row;order:2;gap:0}.sidebar-item{flex:1}.map-list-panel{z-index:4;width:100%;position:absolute;inset:0}.map-list-panel.collapsed{opacity:1;width:100%;display:none}.map-canvas-wrap{position:absolute;inset:0}}.stop-marker-hit{cursor:pointer;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stop-marker{background:var(--primary);border:2px solid var(--bg-base);width:11px;height:11px;box-shadow:0 0 0 1px var(--primary);border-radius:50%;flex:none}.stop-marker.stop-marker-starred{background:var(--warning);border-color:var(--bg-base);box-shadow:0 0 0 1px var(--warning), 0 0 0 0 color-mix(in srgb, var(--warning) 55%, transparent);animation:1.8s ease-out infinite starMarkerPulse}@keyframes starMarkerPulse{0%{box-shadow:0 0 0 1px var(--warning), 0 0 0 0 color-mix(in srgb, var(--warning) 55%, transparent)}to{box-shadow:0 0 0 1px var(--warning), 0 0 0 12px color-mix(in srgb, var(--warning) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.stop-marker.stop-marker-starred{box-shadow:0 0 0 1px var(--warning), 0 0 0 4px color-mix(in srgb, var(--warning) 30%, transparent);animation:none}}.stay-marker{background:var(--warning);color:#241c04;font-family:var(--font-plex-mono), monospace;white-space:nowrap;cursor:pointer;border:2px solid var(--bg-base);border-radius:999px;align-items:center;gap:.3rem;padding:3px 9px 3px 7px;font-size:11px;font-weight:600;display:flex}.stay-marker:before{content:"";background:#241c04;border-radius:50%;flex:none;width:6px;height:6px}.user-location-marker{width:16px;height:16px;position:relative}.ulm-dot{background:var(--primary-bright);box-shadow:0 0 0 1px var(--primary);border:2px solid #fff;border-radius:50%;position:absolute;inset:3px}.ulm-pulse{background:var(--primary-bright);opacity:.55;border-radius:50%;animation:2s ease-out infinite ulmPulse;position:absolute;inset:0}@keyframes ulmPulse{0%{opacity:.55;transform:scale(.4)}to{opacity:0;transform:scale(2.2)}}@media (prefers-reduced-motion:reduce){.ulm-pulse{opacity:.2;animation:none}}.maplibregl-popup-content{animation:.4s both fadeUp;background:var(--bg-elevated)!important;color:var(--text-primary)!important;border:1px solid var(--border)!important;font-family:var(--font-inter), sans-serif!important;border-radius:10px!important;padding:12px 14px!important;box-shadow:0 12px 28px #00000080!important}.maplibregl-popup-close-button{color:var(--text-secondary)!important;padding:4px 8px!important;font-size:16px!important}.maplibregl-popup-tip{display:none!important}.map-popup-name{color:var(--text-primary);margin:0 0 4px;font-size:13.5px;font-weight:700}.map-popup-blurb{color:var(--text-secondary);margin:0 0 8px;font-size:12.5px;line-height:1.5}.map-popup-link{font-family:var(--font-plex-mono), monospace;color:var(--primary-bright);align-items:center;gap:.3rem;font-size:11px;text-decoration:none;display:inline-flex}.maplibregl-ctrl-attrib{background:#0a0a0cb3!important}.maplibregl-ctrl-attrib a{color:var(--text-secondary)!important}.maplibregl-ctrl-group{background:var(--bg-surface)!important;border:1px solid var(--border)!important;box-shadow:none!important}.maplibregl-ctrl-group button{background:0 0!important}.maplibregl-ctrl-group button+button{border-top:1px solid var(--border-dim)!important}.maplibregl-ctrl-icon{filter:invert()brightness(1.6)}.load-state{color:var(--text-secondary);font-family:var(--font-plex-mono), monospace;padding:2rem;font-size:12px}@media (prefers-reduced-motion:reduce){.map-list-panel,.icon-btn,.sidebar-item,.chevron{transition:none!important}.maplibregl-popup-content{animation:none!important}}.oauth-consent-wrap{background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--primary) 10%, transparent), transparent 60%), var(--bg-base);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.oauth-consent-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:24rem;padding:1.8rem 1.6rem}.oauth-consent-card h1{color:var(--text-primary);margin-bottom:.9rem;font-size:18px}.oauth-consent-card p{color:var(--text-secondary);margin:0 0 .9rem;font-size:13.5px;line-height:1.5}.oauth-consent-signed-in{font-family:var(--font-plex-mono), monospace;color:var(--text-muted);font-size:11.5px}.oauth-consent-actions{justify-content:space-between;align-items:center;gap:1rem;margin-top:1.3rem;display:flex}.login-page{background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--primary) 10%, transparent), transparent 60%), var(--bg-base);justify-content:center;align-items:center;height:100%;padding:1.5rem;display:flex}.login-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:22rem;padding:1.8rem 1.6rem}.login-brand{letter-spacing:-.01em;color:var(--text-primary);margin-bottom:1.4rem;font-size:17px;font-weight:800}.login-label{font-family:var(--font-plex-mono), monospace;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.4rem;font-size:11px;display:block}.login-optional{text-transform:none;letter-spacing:0;color:var(--text-muted)}.login-input{background:var(--bg-elevated);border:1px solid var(--border-dim);width:100%;color:var(--text-primary);border-radius:8px;margin-bottom:1rem;padding:9px 12px;font-size:14px;transition:border-color .2s}.login-input:focus{border-color:var(--primary);outline:none}.login-button{background:var(--primary);color:#06111f;cursor:pointer;border:none;border-radius:8px;width:100%;padding:10px 12px;font-size:14px;font-weight:700;transition:background .2s,opacity .2s}.login-button:hover:not(:disabled){background:var(--primary-bright)}.login-button:disabled{opacity:.6;cursor:default}.login-copy{color:var(--text-secondary);margin:0 0 1rem;font-size:13px;line-height:1.6}.login-copy strong{color:var(--text-primary)}.login-error{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);border-radius:8px;margin:1rem 0 0;padding:8px 10px;font-size:12.5px}.login-linkbutton{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin:1.1rem auto 0;font-size:12px;transition:color .2s;display:block}.login-linkbutton:hover{color:var(--text-secondary)}.trips-page{flex-direction:column;height:100%;display:flex}.trips-page .topbar-brand{flex:1}.trips-content{flex:1;overflow-y:auto}.trips-head{max-width:64rem;margin:0 auto;padding:2rem 1.5rem .5rem}.trips-head .eyebrow{font-family:var(--font-plex-mono), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem;font-size:11px;display:block}.trips-head h1{color:var(--text-primary);font-size:22px}.trips-head p{color:var(--text-secondary);margin:.4rem 0 0;font-size:13px}.trips-empty{max-width:64rem;color:var(--text-muted);margin:0 auto;padding:1.5rem;font-size:13px}.trips-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;max-width:64rem;margin:0 auto;padding:1.4rem 1.5rem 3rem;display:grid}.trip-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:1.2rem 1.3rem;text-decoration:none;transition:border-color .2s,background .2s,transform .15s;display:block}.trip-card:hover{border-color:var(--primary);background:var(--bg-elevated);transform:translateY(-1px)}.trip-card-name{color:var(--text-primary);margin-bottom:.4rem;font-size:15.5px;font-weight:700}.trip-card-area{color:var(--text-secondary);margin-bottom:.9rem;font-size:12.5px}.trip-card-dates{font-family:var(--font-plex-mono), monospace;color:var(--text-muted);border-top:1px solid var(--border-dim);padding-top:.7rem;font-size:11.5px}.add-activity-btn{border:1px dashed var(--border);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-top:none;justify-content:center;align-items:center;gap:.4rem;padding:.85rem;font-size:12.5px;font-weight:600;transition:color .2s,border-color .2s,background .2s;display:flex}.add-activity-btn:hover{color:var(--primary-bright);border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}.add-activity-btn svg{stroke:currentColor;fill:none;stroke-width:2px;width:15px;height:15px}.modal-overlay{z-index:50;background:color-mix(in srgb, var(--bg-base) 72%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;width:100%;max-width:26rem;max-height:calc(100vh - 4rem);padding:1.4rem 1.5rem;overflow-y:auto;box-shadow:0 24px 64px #0009}.modal-head{justify-content:space-between;align-items:center;margin-bottom:1.1rem;display:flex}.modal-head h3{color:var(--text-primary);font-size:16px;font-weight:700}.modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px;transition:color .2s;display:flex}.modal-close:hover{color:var(--text-primary)}.modal-close svg{stroke:currentColor;fill:none;stroke-width:2px;width:18px;height:18px}.modal-textarea{resize:vertical;min-height:5.5rem;font-family:inherit}.confirm-card{max-width:22rem}.confirm-body{color:var(--text-secondary);margin-bottom:1.3rem;font-size:14px;line-height:1.5}.confirm-danger{background:var(--danger);border-color:var(--danger)}.confirm-danger:hover{background:color-mix(in srgb, var(--danger) 85%, black)}.modal-hint{color:var(--text-muted);margin:-.4rem 0 1rem;font-size:11.5px;line-height:1.5}.modal-hint.import-warning{color:var(--warning)}.modal-checkbox{color:var(--text-secondary);cursor:pointer;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:13px;display:flex}.modal-checkbox input{accent-color:var(--primary);width:15px;height:15px}.modal-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.modal-actions .login-button{width:auto;padding-left:1.4rem;padding-right:1.4rem}.toast{z-index:60;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.6rem;width:fit-content;max-width:calc(100vw - 2rem);margin:0 auto;padding:.7rem .8rem .7rem .9rem;display:flex;position:fixed;bottom:1.5rem;left:0;right:0;box-shadow:0 16px 40px #00000080}.toast-icon{flex:none;width:18px;height:18px;display:flex}.toast-icon svg{fill:none;stroke-width:2px;width:100%;height:100%}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-message{color:var(--text-primary);font-size:13px}.toast-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:none;padding:2px;transition:color .2s;display:flex}.toast-close:hover{color:var(--text-secondary)}.toast-close svg{stroke:currentColor;fill:none;stroke-width:2px;width:14px;height:14px}@media (max-width:32rem){.toast{width:auto;max-width:none;left:1rem;right:1rem}}
