:root{--bg-primary: #ffffff;--bg-secondary: #f7f7f8;--bg-tertiary: #f1f2f4;--bg-elevated: #ffffff;--ink-strong: #101114;--ink-subtle: #3f434a;--ink-muted: #70747c;--ink-faint: #989ca4;--accent-primary: #101114;--accent-blue: #2d6fd2;--error: #c9362b;--warning: #a85e12;--success: #2f7d45;--border-primary: #e4e5e8;--border-secondary: #d5d7dc;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .875rem;--spacing-lg: 1.25rem;--spacing-xl: 1.75rem;--spacing-2xl: 2.5rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;font-family:var(--font-sans);color:var(--ink-strong);background:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--shadow-sm: 0 1px 2px rgb(16 17 20 / .05);--shadow-md: 0 10px 30px rgb(16 17 20 / .08);--shadow-sheet: -16px 0 50px rgb(16 17 20 / .08);--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--transition-fast: .14s var(--ease-out);--transition-base: .2s var(--ease-out);--transition-slow: .26s var(--ease-out)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;min-height:100dvh;background:var(--bg-primary);color:var(--ink-strong)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ink-strong);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;min-height:100dvh;background:var(--bg-primary)}.app-header{position:sticky;top:0;z-index:30;height:74px;border-bottom:1px solid var(--border-primary);background:#fffffff0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-header-inner{width:100%;height:100%;margin:0 auto;padding:0 34px;display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);align-items:center;gap:24px}.brand-link,.auth-brand-link{color:var(--ink-strong);font-size:1.28rem;font-weight:720;letter-spacing:-.035em;text-decoration:none;justify-self:start;transform-origin:left center;transition:opacity var(--transition-fast),transform var(--transition-fast)}.nav-links{display:flex;align-items:stretch;justify-content:center;height:100%;gap:2px}.nav-link{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 19px;color:var(--ink-subtle);text-decoration:none;border-radius:var(--radius-md);transition:color var(--transition-fast),background-color var(--transition-fast),transform .12s var(--ease-out)}.nav-link span{font-size:.94rem;font-weight:580}.nav-link:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:2px;background:var(--ink-strong);opacity:0;transform:scaleX(.55);transition:opacity var(--transition-fast),transform var(--transition-fast)}.nav-link.is-active{color:var(--ink-strong)}.nav-link.is-active:after{opacity:1;transform:scaleX(1)}.header-actions{display:flex;align-items:center;justify-content:flex-end;min-width:0}.account-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:var(--bg-tertiary);color:var(--ink-strong);text-decoration:none;font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:-.02em;transition:background-color var(--transition-fast),transform .12s var(--ease-out)}.app-main{width:100%;margin:0 auto;padding:44px 34px 88px}.page-wide{width:min(100%,1376px);margin:0 auto}.page-narrow{width:min(100%,760px);margin:0 auto}.page-heading{margin-bottom:34px}.page-heading h1,.my-flights-heading h1{margin:0;font-size:clamp(2rem,3vw,2.65rem);line-height:1.08;letter-spacing:-.045em;font-weight:710}.page-heading p,.my-flights-heading p{margin:9px 0 0;color:var(--ink-muted);font-size:1.02rem;line-height:1.55}.route-transition,.auth-step-panel,.lookup-preview-panel{opacity:1;transform:none;transition:opacity .18s var(--ease-out),transform .18s var(--ease-out)}@starting-style{.route-transition,.auth-step-panel,.lookup-preview-panel{opacity:0;transform:translateY(6px)}}.mobile-dock{display:none}.card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.btn{position:relative;min-height:48px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;font-size:.91rem;font-weight:650;text-decoration:none;-webkit-user-select:none;user-select:none;transform-origin:center;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform .12s var(--ease-out)}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--bg-elevated);border-color:var(--border-secondary);color:var(--ink-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-content,.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:opacity var(--transition-fast),filter var(--transition-fast)}.btn[data-loading=true] .btn-content{opacity:.62;filter:blur(1px)}.btn-spinner,.weather-spinner{width:15px;height:15px;flex:0 0 auto;border:1.5px solid currentColor;border-right-color:transparent;border-radius:999px;animation:spin .62s linear infinite}.w-full{width:100%}.text-action{min-height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:transparent;color:var(--ink-subtle);cursor:pointer;font-size:.88rem;font-weight:600;text-decoration:none;transition:color var(--transition-fast),opacity var(--transition-fast),transform .12s var(--ease-out)}.text-action:active:not(:disabled){transform:scale(.97)}.text-action:disabled{opacity:.55;cursor:not-allowed}.danger-text-action{color:var(--error)}.icon-button,.detail-icon-button{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border-primary);border-radius:50%;background:var(--bg-secondary);color:var(--ink-strong);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform .12s var(--ease-out)}.icon-button:active,.detail-icon-button:active{transform:scale(.94)}.input{width:100%;height:52px;padding:0 15px;border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--ink-strong);outline:none;font-size:.94rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.input::placeholder{color:var(--ink-muted)}.input:focus{border-color:var(--ink-strong);box-shadow:0 0 0 3px #10111414;background:#fff}.input-error{border-color:var(--error)}.input-with-action,.input-has-right-icon{padding-right:48px}.input-has-left-icon{padding-left:44px}.field-spacing{margin-bottom:18px}.field-label{display:block;margin-bottom:8px;color:var(--ink-subtle)!important;font-size:.8rem;font-weight:610}.field-relative{position:relative}.field-icon,.input-action{position:absolute;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center}.field-icon-left{left:14px}.field-icon-right{right:14px}.input-action{right:5px;width:42px;height:42px;border:0;border-radius:8px;background:transparent;color:var(--ink-muted);cursor:pointer}.field-error,.form-error,.lookup-error,.save-error,.sheet-error{color:var(--error);font-size:.84rem;line-height:1.5}.field-error,.form-error,.lookup-error,.save-error{margin:8px 0 0}.field-hint{margin:-8px 0 18px;color:var(--ink-muted);font-size:.78rem;line-height:1.5}.error-message{margin-bottom:18px;padding:12px 14px;border:1px solid rgb(201 54 43 / .22);border-radius:var(--radius-md);background:#c9362b0f;color:var(--error);font-size:.84rem}.map-error,.map-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--ink-muted);font-size:.85rem}.search-heading{margin-bottom:22px}.lookup-band{padding-bottom:28px;border-bottom:1px solid var(--border-primary)}.lookup-form{display:grid;grid-template-columns:minmax(260px,360px) minmax(230px,290px) 210px;align-items:end;gap:18px}.lookup-form .date-picker-field,.lookup-form .date-input-field{width:100%}.lookup-form .lookup-submit-button{height:52px}.recent-search{margin-top:14px;min-height:34px;padding:0;display:inline-flex;align-items:center;gap:9px;border:0;background:transparent;color:var(--ink-muted);cursor:pointer;font-size:.8rem;transition:color var(--transition-fast),transform .12s var(--ease-out)}.recent-search strong{color:var(--ink-subtle);font-family:var(--font-mono);font-size:.76rem;font-weight:500}.recent-search span+strong:before,.recent-search strong+span:before{content:"·";margin-right:9px;color:var(--ink-faint)}.lookup-preview-panel{margin-top:30px}.result-toolbar{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--ink-muted);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em}.my-flights-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.my-flights-header-actions{display:flex;align-items:center;gap:10px}.account-menu-shell{position:relative}.account-menu-trigger{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--border-secondary);border-radius:50%;background:var(--bg-secondary);color:var(--ink-strong);cursor:pointer;font-family:var(--font-mono);font-size:.75rem;font-weight:650}.account-menu{position:absolute;z-index:65;top:calc(100% + 10px);right:0;width:218px;padding:7px;border:1px solid var(--border-primary);border-radius:14px;background:var(--bg-elevated);box-shadow:var(--shadow-md)}.account-menu a,.account-menu button{width:100%;min-height:44px;padding:0 11px;display:flex;align-items:center;gap:10px;border:0;border-radius:9px;background:transparent;color:var(--ink-strong);cursor:pointer;font-size:.82rem;text-align:left;text-decoration:none}.account-menu button:disabled{cursor:default;opacity:.48}.account-menu a:active,.account-menu button:active:not(:disabled){background:var(--bg-secondary)}.my-flights-heading>div:first-child{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap}.sync-status{min-height:32px;padding:0;display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--ink-muted);cursor:pointer;font-size:.8125rem}.sync-status:disabled{cursor:wait}.stats-ledger{margin:48px 0 52px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.stats-ledger>div{min-height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-right:1px solid var(--border-primary)}.stats-ledger>div:last-child{border-right:0}.stats-ledger strong{font-family:var(--font-mono);font-size:clamp(1.7rem,3vw,2.25rem);font-weight:500;letter-spacing:-.04em}.stats-ledger span{color:var(--ink-muted);font-size:.9rem}.flight-network-section{margin-bottom:54px}.flight-network-section.is-expanded{position:fixed;z-index:90;inset:0;margin:0;padding:calc(22px + env(safe-area-inset-top)) 22px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;background:var(--bg-primary)}.flight-network-section.is-expanded .flight-network-heading{flex:0 0 auto}.flight-network-section.is-expanded .flight-network-map,.flight-network-section.is-expanded .flight-network-loading{height:auto;min-height:0;flex:1 1 auto}.flight-network-section.is-expanded .flight-network-meta,.flight-network-section.is-expanded .flight-network-note{flex:0 0 auto}.flight-network-heading{margin-bottom:18px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.flight-network-heading h2{margin:0;font-size:1.1rem;font-weight:650;letter-spacing:-.02em}.flight-network-heading p{margin:6px 0 0;color:var(--ink-muted);font-size:.86rem}.map-expand-button{min-width:44px;min-height:44px;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--ink-subtle);cursor:pointer;font-size:.8125rem;font-weight:620}.flight-network-map,.flight-network-loading,.flight-network-empty{width:100%;height:clamp(390px,45vw,560px);overflow:hidden;border:1px solid var(--border-secondary);border-radius:var(--radius-lg);background:var(--bg-secondary)}.map-touch-gate{position:absolute;z-index:5;left:50%;bottom:18px;min-height:44px;padding:0 17px;border:1px solid rgb(16 17 20 / .12);border-radius:999px;background:#fffffff0;color:var(--ink-strong);box-shadow:var(--shadow-md);cursor:pointer;font-size:.8rem;font-weight:650;transform:translate(-50%)}.flight-network-map,.flight-network-loading{position:relative}.flight-network-loading:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,rgb(255 255 255 / .72) 48%,transparent 72%);transform:translate(-100%);animation:map-loading-shimmer 1.5s infinite}@keyframes map-loading-shimmer{to{transform:translate(100%)}}.flight-network-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--ink-muted);text-align:center;font-size:.84rem}.flight-network-empty strong{color:var(--ink-subtle);font-size:.96rem}.flight-network-meta{min-height:38px;padding:0 3px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--ink-muted);font-size:.8125rem}.flight-network-note{margin:-2px 3px 0;color:var(--warning);font-size:.8125rem}.flight-route-popup{min-width:92px;display:flex;flex-direction:column;gap:2px;color:var(--ink-strong);font-family:var(--font-sans)}.flight-route-popup strong{font-family:var(--font-mono);font-size:.8125rem;font-weight:600}.flight-route-popup span{color:var(--ink-muted);font-size:.8125rem}.flight-route-popup small{margin-top:2px;color:var(--accent-blue);font-size:.8125rem}.flight-route-details{min-width:220px;display:flex;flex-direction:column;gap:10px;color:var(--ink-strong);font-family:var(--font-sans)}.flight-route-details>div:first-child{display:flex;flex-direction:column;gap:2px}.flight-route-details>div:first-child strong{font-family:var(--font-mono);font-size:.875rem}.flight-route-details>div:first-child span{color:var(--ink-muted);font-size:.8125rem}.flight-route-details-list{display:flex;flex-direction:column;border-top:1px solid var(--border-primary)}.flight-route-details-list button{min-height:44px;padding:7px 4px;display:flex;align-items:center;justify-content:space-between;gap:16px;border:0;border-bottom:1px solid var(--border-primary);background:transparent;color:var(--ink-strong);cursor:pointer;text-align:left}.flight-route-details-list button:last-child{border-bottom:0}.flight-route-details-list button strong{font-family:var(--font-mono);font-size:.8125rem}.flight-route-details-list button span{color:var(--ink-muted);font-size:.8125rem}.flight-route-details-list button .airline-logo-map{flex:0 0 24px}.flight-route-details-list button strong{margin-right:auto}.flight-network-map .mapboxgl-popup-content{padding:9px 11px;border:1px solid var(--border-primary);border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.flight-network-map .mapboxgl-ctrl-group{overflow:hidden;border:1px solid rgb(16 17 20 / .12);border-radius:9px;box-shadow:var(--shadow-sm)}.flight-network-map .mapboxgl-ctrl button{width:44px;height:44px}.history-section{width:100%}.history-section>h2{margin:0 0 8px;font-size:1.1rem;font-weight:650;letter-spacing:-.02em}.history-tabs{display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--border-primary)}.history-tabs button{position:relative;min-height:52px;padding:0 8px;border:0;background:transparent;color:var(--ink-muted);cursor:pointer;font-size:.91rem;font-weight:600;transition:color var(--transition-fast),transform .12s var(--ease-out)}.history-tabs button:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink-strong);opacity:0;transform:scaleX(.7);transition:opacity var(--transition-fast),transform var(--transition-fast)}.history-tabs button.is-active{color:var(--ink-strong)}.history-tabs button.is-active:after{opacity:1;transform:scaleX(1)}.history-tabs button span{margin-left:5px;color:var(--ink-muted);font-family:var(--font-mono);font-size:.8125rem}.history-tools{min-height:68px;padding:10px 0;display:grid;grid-template-columns:minmax(260px,1fr) 210px;align-items:center;gap:12px;border-bottom:1px solid var(--border-primary)}.history-search,.history-sort{height:44px;padding:0 13px;display:flex;align-items:center;gap:9px;border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--ink-muted)}.history-search input,.history-sort select{width:100%;height:100%;border:0;outline:0;background:transparent;color:var(--ink-strong);font:inherit;font-size:.82rem}.history-search input::placeholder{color:var(--ink-muted)}.history-sort select{cursor:pointer}.flight-table-header,.flight-row{display:grid;grid-template-columns:minmax(300px,2fr) 130px 110px 110px 150px 24px;align-items:center;gap:18px}.flight-table-header.is-past,.flight-row.is-past{grid-template-columns:minmax(300px,2fr) 150px 130px 150px 24px}.flight-table-header{min-height:58px;padding:0 18px;border-bottom:1px solid var(--border-primary);color:var(--ink-muted);font-size:.8125rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.flight-row{width:100%;min-height:74px;padding:0 18px;border:0;border-bottom:1px solid var(--border-primary);background:var(--bg-elevated);color:var(--ink-strong);text-align:left;cursor:pointer;position:relative;transition:background-color var(--transition-fast),box-shadow var(--transition-fast),transform .12s var(--ease-out)}.flight-row:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--ink-strong);opacity:0;transform:scaleY(.5);transition:opacity var(--transition-fast),transform var(--transition-fast)}.flight-row.is-selected{background:var(--bg-secondary);box-shadow:inset 0 0 0 1px var(--border-secondary)}.flight-row.is-selected:before{opacity:1;transform:scaleY(1)}.flight-row:active{transform:scale(.995)}.flight-route-cell{min-width:0;display:flex;align-items:center;gap:13px}.flight-row-airline-logo{width:48px;height:30px;flex:0 0 48px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-muted)}.flight-row-airline-logo img{display:block;width:auto;height:auto;max-width:100%;max-height:30px;object-fit:contain}.flight-row-airline-logo-fallback{font-family:var(--font-mono);font-size:.7rem;font-weight:650;letter-spacing:.08em}.airline-logo-identity{width:44px;height:34px;flex-basis:44px}.airline-logo-identity img{max-height:34px}.airline-logo-preview{width:42px;height:32px;flex-basis:42px}.airline-logo-preview img{max-height:32px}.airline-logo-ranking{width:30px;height:24px;flex-basis:30px}.airline-logo-ranking img{max-height:24px}.airline-logo-map,.airline-logo-recent{width:24px;height:20px;flex-basis:24px}.airline-logo-map img,.airline-logo-recent img{max-height:20px}.airline-logo-ranking .flight-row-airline-logo-fallback,.airline-logo-map .flight-row-airline-logo-fallback,.airline-logo-recent .flight-row-airline-logo-fallback{font-size:.6rem}.flight-route-cell strong{min-width:0;font-size:.98rem;font-weight:640;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flight-route-cell small,.flight-date-cell,.flight-time-cell,.flight-status-cell{font-family:var(--font-mono);font-size:.8125rem}.flight-route-cell small,.flight-date-cell,.flight-time-cell{color:var(--ink-muted)}.past-mobile-summary{display:none}.flight-status-cell{display:inline-flex;align-items:center;gap:8px;color:var(--ink-subtle);text-transform:capitalize}.flight-status-cell i,.status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-blue);flex:0 0 auto}.row-chevron{color:var(--ink-faint);transition:color var(--transition-fast),transform var(--transition-fast)}.empty-state,.state-panel{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink-muted)}.empty-state h3,.state-panel h1{margin:14px 0 4px;color:var(--ink-strong);font-size:1rem}.empty-state p,.state-panel p{max-width:420px;margin:0;font-size:.86rem;line-height:1.55}.travel-insights{margin-bottom:54px;padding:30px 0 34px;border-top:1px solid var(--border-primary);border-bottom:1px solid var(--border-primary)}.travel-insights-heading,.insights-subheading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.travel-insights-heading h2,.insights-subheading h3{margin:0;color:var(--ink-strong);letter-spacing:-.02em}.travel-insights-heading h2{font-size:1.1rem;font-weight:650}.travel-insights-heading p,.insights-subheading p{margin:6px 0 0;color:var(--ink-muted);font-size:.8125rem;line-height:1.45}.insights-year-tabs-shell{position:relative;margin-top:22px}.insights-year-tabs-shell:before,.insights-year-tabs-shell:after{content:"";position:absolute;z-index:2;top:0;bottom:1px;width:26px;pointer-events:none;opacity:0;transition:opacity var(--transition-fast)}.insights-year-tabs-shell:before{left:0;background:linear-gradient(90deg,#fff,transparent)}.insights-year-tabs-shell:after{right:0;background:linear-gradient(270deg,#fff,transparent)}.insights-year-tabs-shell.has-left-overflow:before,.insights-year-tabs-shell.has-right-overflow:after{opacity:1}.insights-year-tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--border-primary);scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain}.insights-year-tabs::-webkit-scrollbar{display:none}.insights-year-tabs button{position:relative;min-width:64px;min-height:44px;padding:0 14px;flex:1 0 auto;border:0;background:transparent;color:var(--ink-muted);cursor:pointer;font-family:var(--font-mono);font-size:.8125rem;font-weight:540;transition:color var(--transition-fast),transform .12s var(--ease-out);scroll-snap-align:center}.insights-year-tabs button:first-child{min-width:88px;font-family:var(--font-sans);font-weight:600}.insights-year-tabs button:after{content:"";position:absolute;right:8px;bottom:-1px;left:8px;height:2px;background:var(--ink-strong);opacity:0;transform:scaleX(.6);transition:opacity var(--transition-fast),transform var(--transition-fast)}.insights-year-tabs button.is-active{color:var(--ink-strong)}.insights-year-tabs button.is-active:after{opacity:1;transform:scaleX(1)}.insights-year-tabs button:active{transform:scale(.97)}.insights-summary{margin:0 0 30px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--border-primary)}.insights-summary p{min-width:0;margin:0;padding:18px 22px;display:flex;flex-direction:column;gap:5px;border-left:1px solid var(--border-primary)}.insights-summary p:first-child{padding-left:0;border-left:0}.insights-summary span{color:var(--ink-muted);font-size:.8125rem}.insights-summary strong{overflow:hidden;color:var(--ink-strong);font-family:var(--font-mono);font-size:.875rem;font-weight:570;text-overflow:ellipsis;white-space:nowrap}.insights-subheading h3{font-size:.9375rem;font-weight:630}.insights-ranking-tabs{margin-top:18px;display:flex;gap:4px}.insights-ranking-tabs button{min-height:44px;padding:0 11px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);cursor:pointer;font-size:.8125rem;font-weight:590;transition:color var(--transition-fast),background-color var(--transition-fast),transform .12s var(--ease-out)}.insights-ranking-tabs button.is-active{color:var(--ink-strong);background:var(--bg-secondary)}.insights-ranking-tabs button:active{transform:scale(.97)}.insights-ranking-list{margin:10px 0 0;padding:0;display:flex;flex-direction:column;list-style:none;counter-reset:travel-ranking}.insights-ranking-list li{min-height:44px;display:grid;grid-template-columns:24px minmax(180px,300px) minmax(120px,1fr);align-items:center;gap:10px;border-bottom:1px solid var(--border-primary);counter-increment:travel-ranking}.insights-ranking-list li:last-child{border-bottom:0}.insights-ranking-list.has-airline-logos li{grid-template-columns:24px 30px minmax(150px,270px) minmax(120px,1fr)}.ranking-position:before{content:counter(travel-ranking,decimal-leading-zero);color:var(--ink-muted);font-family:var(--font-mono);font-size:.8125rem}.insights-ranking-list li>div{min-width:0;display:flex;flex-direction:column;gap:2px}.insights-ranking-list strong,.insights-ranking-list li>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.insights-ranking-list strong{color:var(--ink-strong);font-size:.875rem;font-weight:620}.insights-ranking-list li>div span{color:var(--ink-subtle);font-family:var(--font-mono);font-size:.8125rem}.ranking-track{height:3px;display:block;overflow:hidden;border-radius:999px;background:var(--bg-secondary)}.ranking-track i{width:100%;height:100%;display:block;border-radius:inherit;background:var(--ink-subtle);transform:scaleX(var(--ranking-share));transform-origin:left;transition:transform .28s var(--ease-out)}.my-flights-heading,.stats-ledger,.my-flights-content>.travel-insights,.my-flights-content>.history-section{width:100%;max-width:1180px;margin-inline:auto}@media(hover:hover){.insights-year-tabs button:hover{color:var(--ink-strong)}.insights-ranking-tabs button:hover{color:var(--ink-strong);background:var(--bg-secondary)}}.flight-sheet-overlay{position:fixed;inset:0;z-index:80;display:flex;justify-content:flex-end;background:#10111424;opacity:1;transition:opacity .18s var(--ease-out),background-color .18s var(--ease-out)}.flight-sheet-overlay[data-state=closing]{opacity:0;background:transparent}@starting-style{.flight-sheet-overlay{opacity:0;background:transparent}}.flight-preview-sheet{width:min(470px,94vw);height:100%;background:var(--bg-primary);border-left:1px solid var(--border-primary);box-shadow:var(--shadow-sheet);transform:translate(0);transition:transform .26s var(--ease-drawer);will-change:transform}.flight-preview-sheet[data-state=closing]{transform:translate(100%);transition-duration:.18s}@starting-style{.flight-preview-sheet{transform:translate(100%)}}.sheet-scroll-area{height:100%;overflow-y:auto;padding:36px 34px calc(34px + env(safe-area-inset-bottom))}.sheet-drag-zone{display:none}.sheet-header{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:start;gap:18px;padding-bottom:28px;border-bottom:1px solid var(--border-primary)}.sheet-header-copy{min-width:0}.sheet-flight-number,.eyebrow-label{color:var(--ink-muted);font-family:var(--font-mono);font-size:.73rem;font-weight:500;letter-spacing:.02em;text-transform:uppercase}.sheet-header h2{margin:10px 0 5px;font-size:1.65rem;line-height:1.15;letter-spacing:-.04em}.sheet-header p{margin:0;color:var(--ink-muted);font-size:.9rem}.sheet-header .sheet-route-cities{margin-bottom:5px;color:var(--ink-subtle);font-size:.84rem;font-weight:500;letter-spacing:-.01em}.sheet-route{min-height:180px;display:grid;grid-template-columns:auto minmax(80px,1fr) auto;align-items:center;gap:18px}.sheet-route>div:first-child,.sheet-route>div:last-child{display:flex;flex-direction:column;gap:2px}.sheet-route>div:last-child{align-items:flex-end;text-align:right}.sheet-route strong{font-family:var(--font-mono);font-size:1.8rem;font-weight:500;letter-spacing:-.045em}.sheet-route>div>span{font-family:var(--font-mono);font-size:.88rem;font-weight:500}.sheet-route-line{position:relative;height:1px;background:var(--border-secondary)}.sheet-route-line>span{position:absolute;left:50%;bottom:17px;transform:translate(-50%);color:var(--ink-muted);font-family:var(--font-mono);font-size:.65rem;white-space:nowrap}.sheet-route-line i{position:absolute;left:50%;top:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);background:var(--bg-primary);color:var(--ink-strong)}.sheet-facts{margin:0;border-top:1px solid var(--border-primary)}.sheet-facts>div{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border-primary)}.sheet-facts dt,.sheet-facts dd{margin:0;display:inline-flex;align-items:center;gap:10px;font-size:.88rem}.sheet-facts dt{color:var(--ink-strong)}.sheet-facts dd{justify-content:flex-end;color:var(--ink-subtle);text-align:right}.muted-value{color:var(--ink-muted)!important}.sheet-loading{margin:14px 0 0;display:inline-flex;align-items:center;gap:9px;color:var(--ink-muted);font-size:.76rem}.sheet-loading span{width:12px;height:12px;border:1.5px solid var(--ink-muted);border-right-color:transparent;border-radius:50%;animation:spin .62s linear infinite}.sheet-error{margin:14px 0 0}.sheet-actions{margin-top:28px;display:flex;flex-direction:column;gap:8px}.profile-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.45fr);gap:clamp(60px,9vw,130px)}.profile-main{min-width:0}.settings-section{padding:0 0 34px;margin-bottom:34px;border-bottom:1px solid var(--border-primary)}.settings-disclosure{padding:0;margin-bottom:0}.settings-disclosure-trigger{width:100%;min-height:82px;padding:14px 0;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;border:0;background:transparent;color:var(--ink-strong);cursor:pointer;text-align:left}.settings-disclosure-trigger>span:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:4px}.settings-disclosure-trigger strong{font-size:.96rem}.settings-disclosure-trigger small{color:var(--ink-muted);font-size:.78rem}.settings-disclosure-trigger>svg{color:var(--ink-muted);transition:transform var(--transition-fast)}.settings-disclosure.is-open .settings-disclosure-trigger>svg{transform:rotate(180deg)}.settings-disclosure-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--bg-secondary);color:var(--ink-subtle)}.settings-disclosure-content{padding:8px 0 32px 55px}.profile-logout-button{width:100%;min-height:56px;margin-top:18px;padding:0 14px;display:flex;align-items:center;gap:10px;border:1px solid rgb(201 54 43 / .22);border-radius:var(--radius-md);background:transparent;color:var(--error);cursor:pointer;font-size:.86rem;font-weight:620}.section-heading-row{margin-bottom:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.section-heading-row>svg{color:var(--ink-muted)}.section-heading-row h2{margin:0;font-size:1.18rem;letter-spacing:-.02em}.section-heading-row p{margin:6px 0 0;color:var(--ink-muted);font-size:.84rem;line-height:1.5}.form-grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-actions{display:flex;align-items:center;gap:18px}.inline-success{display:inline-flex;align-items:center;gap:7px;color:var(--success);font-size:.8rem;animation:fade-in .18s var(--ease-out)}.account-summary{min-height:210px;padding-right:clamp(28px,5vw,70px);border-right:1px solid var(--border-primary)}.account-summary .eyebrow-label{margin:2px 0 24px;color:var(--ink-strong);font-family:var(--font-sans);font-size:1rem;font-weight:650;letter-spacing:-.01em;text-transform:none}.account-identity{display:flex;align-items:center;gap:17px}.account-avatar{width:64px;height:64px;font-size:1.06rem}.account-identity>div:last-child{min-width:0;display:flex;flex-direction:column;gap:5px}.account-identity strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:.92rem}.account-identity span{color:var(--ink-muted);font-size:.78rem}.auth-page{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.1fr);background:var(--bg-primary)}.auth-brand-panel,.auth-form-panel{position:relative;padding:clamp(34px,5vw,72px)}.auth-brand-panel{display:flex;flex-direction:column;justify-content:space-between;background:var(--ink-strong);color:#fff}.auth-brand-link{color:#fff}.auth-brand-panel>div{max-width:500px}.auth-brand-panel h1{margin:24px 0 14px;font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.03;letter-spacing:-.055em}.auth-brand-panel p{margin:0;color:#ffffffad;font-size:1rem;line-height:1.65}.auth-brand-panel ul{margin:50px 0 0;padding:0;display:flex;flex-direction:column;gap:12px;list-style:none;color:#ffffffb8;font-size:.82rem}.auth-brand-panel li{display:inline-flex;align-items:center;gap:10px}.auth-form-panel{display:flex;align-items:center;justify-content:center}.auth-back-link{position:absolute;top:34px;left:40px}.auth-form-wrap{width:min(100%,430px)}.auth-form-wrap>header{margin-bottom:30px}.auth-form-wrap h2{margin:0;font-size:2rem;line-height:1.1;letter-spacing:-.04em}.auth-form-wrap header p{margin:10px 0 0;color:var(--ink-muted);line-height:1.5}.auth-form{display:flex;flex-direction:column}.google-sign-in-button{width:100%;min-height:44px;display:flex;justify-content:center;overflow:hidden}.google-sign-in-status{margin:8px 0 0;color:var(--ink-muted);font-size:.78rem;text-align:center}.auth-divider{margin:22px 0;display:flex;align-items:center;gap:12px;color:var(--ink-muted);font-size:.75rem}.auth-divider:before,.auth-divider:after{height:1px;flex:1;background:var(--border-primary);content:""}.auth-google-account-note p{margin:0;color:var(--ink-muted);font-size:.82rem;line-height:1.5}.auth-email-row{min-height:44px;margin-bottom:18px;padding:0 13px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--ink-subtle);font-size:.82rem}.auth-email-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-email-row button{border:0;background:transparent;color:var(--ink-strong);cursor:pointer;font-size:.78rem;font-weight:650}.auth-password-hint{margin-top:-10px}.back-link{min-height:40px;display:inline-flex;align-items:center;gap:8px;color:var(--ink-subtle);text-decoration:none;font-size:.84rem;font-weight:600;transition:color var(--transition-fast),transform .12s var(--ease-out)}.flight-page>.back-link,.profile-page>.back-link{margin-bottom:18px}.detail-page-skeleton{min-height:500px;display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}.detail-page-skeleton span{min-height:280px;border-radius:var(--radius-lg);background:linear-gradient(90deg,var(--bg-secondary),var(--bg-tertiary),var(--bg-secondary));background-size:200% 100%;animation:skeleton 1.1s linear infinite}.detail-page-skeleton span:first-child{grid-row:span 2}.state-panel .btn{margin-top:22px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0;transform:translateY(3px)}}@keyframes skeleton{to{background-position:-200% 0}}.is-spinning{animation:spin .62s linear infinite}@media(hover:hover)and (pointer:fine){.brand-link:hover,.auth-brand-link:hover{opacity:.68}.nav-link:hover{color:var(--ink-strong);background:var(--bg-secondary)}.btn-primary:hover:not(:disabled){background:#202126;box-shadow:0 5px 16px #10111429;transform:translateY(-1px)}.btn-secondary:hover:not(:disabled){border-color:var(--ink-strong);transform:translateY(-1px)}.text-action:hover:not(:disabled),.back-link:hover,.recent-search:hover{color:var(--ink-strong)}.danger-text-action:hover:not(:disabled){color:#a8261d}.icon-button:hover,.detail-icon-button:hover{background:var(--bg-tertiary);border-color:var(--border-secondary)}.input-action:hover{color:var(--ink-strong);background:var(--bg-secondary)}.sync-status:hover{color:var(--ink-strong)}.flight-row:hover{background:var(--bg-secondary)}.flight-row:hover:before{opacity:1;transform:scaleY(1)}.flight-row:hover .row-chevron{color:var(--ink-strong);transform:translate(2px)}}@media(max-width:980px){.app-header-inner{grid-template-columns:auto 1fr auto;padding:0 22px}.app-main{padding:36px 22px 78px}.flight-table-header,.flight-row{grid-template-columns:minmax(260px,2fr) 110px 94px 130px 24px}.flight-table-header>span:nth-child(4),.flight-row>span:nth-child(4){display:none}.flight-table-header.is-past,.flight-row.is-past{grid-template-columns:minmax(260px,2fr) 130px 110px 130px 24px}.flight-table-header.is-past>span:nth-child(4),.flight-row.is-past>span:nth-child(4){display:block}.profile-layout{gap:50px}}@media(max-width:760px){.app-header{height:calc(56px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}.app-header-inner{height:56px;display:flex;justify-content:space-between;padding:0 18px}.nav-desktop{display:none}.brand-link{font-size:1.14rem}.header-sign-in{min-height:40px;padding:0 16px}.app-main{padding:24px 18px 62px}.app-shell.has-mobile-dock .app-main{padding-bottom:calc(82px + env(safe-area-inset-bottom))}.mobile-dock{position:fixed;z-index:55;left:0;right:0;bottom:0;height:calc(68px + env(safe-area-inset-bottom));padding:6px 10px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(3,1fr);grid-auto-flow:column;align-items:center;overflow:hidden;border-top:1px solid var(--border-primary);background:#fffffff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-dock .nav-link{min-width:0;min-height:56px;padding:6px;flex-direction:column;gap:3px;border-radius:8px}.mobile-dock .nav-link span{font-size:.68rem}.mobile-dock .nav-link:after{display:none}.mobile-dock .nav-link.is-active{color:var(--ink-strong);background:var(--bg-secondary)}.page-heading{margin-bottom:26px}.page-heading h1,.my-flights-heading h1{font-size:2rem}.lookup-form{grid-template-columns:1fr;gap:16px}.lookup-form .lookup-submit-button{width:100%}.recent-search{max-width:100%;flex-wrap:wrap}.my-flights-heading{align-items:flex-start;gap:14px}.my-flights-heading>div:first-child{display:block}.sync-status{min-height:44px;margin-top:1px}.my-flights-header-actions{align-items:flex-start;gap:8px}.account-menu-trigger{width:44px;height:44px}.account-menu{position:fixed;top:calc(126px + env(safe-area-inset-top));right:18px;width:min(260px,calc(100vw - 36px))}.stats-ledger{margin:24px 0 30px}.stats-ledger>div{min-height:70px}.stats-ledger strong{font-size:1.35rem}.stats-ledger span{font-size:.8125rem}.flight-network-section{margin:38px 0 0}.flight-network-heading p{max-width:280px;line-height:1.45}.flight-network-map,.flight-network-loading,.flight-network-empty{height:300px;border-radius:var(--radius-md)}.flight-network-section.is-expanded{min-height:100vh;min-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom))}.flight-network-section.is-expanded .flight-network-map,.flight-network-section.is-expanded .flight-network-loading,.flight-network-section.is-expanded .flight-network-empty{height:auto;flex:1 1 auto}.flight-network-meta{align-items:flex-start;flex-direction:column;gap:2px;padding-top:9px}.flight-table-header{display:none}.history-tools{min-height:0;padding:14px 0;grid-template-columns:1fr;gap:9px}.history-section{margin-bottom:0}.history-section>h2{margin-bottom:6px}.flight-row{min-height:76px;padding:0 12px;grid-template-columns:minmax(0,1fr) auto 20px;gap:12px}.flight-row.is-past{grid-template-columns:minmax(0,1fr) auto 20px}.flight-row>span:nth-child(3),.flight-row>span:nth-child(4),.flight-row>span:nth-child(5){display:none}.flight-row.is-past>span:nth-child(3),.flight-row.is-past>span:nth-child(4){display:none}.flight-route-cell{display:grid;grid-template-columns:44px minmax(0,1fr);gap:2px 10px}.flight-route-cell>.flight-row-airline-logo{width:44px;height:28px;flex-basis:44px;grid-row:span 2;align-self:center}.flight-route-cell>.flight-row-airline-logo img{max-height:28px}.flight-row.is-past .flight-route-cell>.flight-row-airline-logo{grid-row:span 3}.flight-route-cell small{grid-column:2}.past-mobile-summary{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flight-date-cell{color:var(--ink-subtle)}.travel-insights{margin:38px 0 0;padding:24px 0 28px}.insights-year-tabs{margin-top:18px}.insights-year-tabs button{flex-grow:0}.insights-summary{margin:0 0 26px;grid-template-columns:repeat(2,minmax(0,1fr))}.insights-summary p{min-height:70px;padding:15px 16px}.insights-summary p:nth-child(odd){padding-left:0;border-left:0}.insights-summary p:nth-child(n+3){border-top:1px solid var(--border-primary)}.insights-ranking-list li{grid-template-columns:24px minmax(0,1fr) minmax(54px,92px)}.insights-ranking-list.has-airline-logos li{grid-template-columns:24px 28px minmax(0,1fr) minmax(54px,82px);gap:8px}.flight-sheet-overlay{align-items:flex-end;background:#10111438}.flight-preview-sheet{width:100%;height:min(74svh,690px);height:min(74dvh,690px);border:0;border-radius:22px 22px 0 0;box-shadow:0 -18px 50px #1011141f;transform:translateY(0)}.flight-preview-sheet[data-state=closing]{transform:translateY(100%)}@starting-style{.flight-preview-sheet{transform:translateY(100%)}}.sheet-drag-zone{height:28px;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:grab}.sheet-handle{width:48px;height:5px;border-radius:99px;background:var(--border-secondary)}.sheet-scroll-area{height:calc(100% - 28px);padding:8px 20px calc(24px + env(safe-area-inset-bottom))}.sheet-header{padding-bottom:22px}.sheet-header h2{font-size:1.45rem}.sheet-route{min-height:150px;gap:12px}.sheet-route strong{font-size:1.45rem}.sheet-facts>div{min-height:58px}.profile-layout{display:flex;flex-direction:column;gap:24px}.account-summary{min-height:auto;padding:0 0 28px;border:0;border-bottom:1px solid var(--border-primary)}.settings-disclosure-content{padding:6px 0 28px}.settings-disclosure-trigger{min-height:76px}.profile-page .page-heading{margin-bottom:20px}.form-grid-two{grid-template-columns:1fr;gap:0}.form-actions{align-items:flex-start;flex-direction:column;gap:8px}.auth-page{display:block}.auth-brand-panel{display:none}.auth-form-panel{min-height:100vh;min-height:100dvh;padding:86px 22px 40px}.auth-back-link{top:24px;left:22px}.detail-page-skeleton{display:flex;flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.route-transition,.auth-step-panel,.lookup-preview-panel,.flight-sheet-overlay,.flight-preview-sheet,.btn,.nav-link,.flight-row,.row-chevron,.icon-button,.detail-icon-button,.inline-success{transition-duration:1ms!important;animation-duration:1ms!important;transform:none!important}.btn-spinner,.weather-spinner,.sheet-loading span,.is-spinning{animation-duration:1.2s}}.shared-profile-page{padding-top:clamp(48px,9vw,96px)}.profile-card{display:flex;min-height:420px;padding:clamp(32px,6vw,64px);border:1px solid var(--border-primary);border-radius:28px;background:var(--bg-elevated);align-items:center;flex-direction:column;justify-content:center;text-align:center}.profile-card-loading{background:linear-gradient(100deg,transparent 30%,color-mix(in srgb,var(--bg-secondary) 75%,transparent) 50%,transparent 70%),var(--bg-elevated);background-size:220% 100%;animation:loading-sheen 1.5s linear infinite}@keyframes loading-sheen{to{background-position:-120% 0}}.shared-profile-avatar,.friend-avatar{display:grid;flex:0 0 auto;place-items:center;border-radius:50%;color:#fff;background:var(--ink-strong);font-weight:700;letter-spacing:.02em}.shared-profile-avatar{width:76px;height:76px;margin-bottom:24px;font-size:1.35rem}.friend-avatar{width:42px;height:42px;font-size:.78rem}.profile-card h1{margin:6px 0 10px;font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.045em}.shared-profile-meta{max-width:480px;color:var(--ink-muted);line-height:1.55}.shared-profile-action{display:flex;margin-top:28px;align-items:center;flex-direction:column;gap:14px}.relationship-note{display:flex;margin:0;align-items:center;gap:8px;color:var(--ink-muted)}.relationship-note.success{color:var(--success)}.profile-share-box{display:flex;padding:14px;border:1px solid var(--border-primary);border-radius:16px;background:var(--bg-secondary);align-items:center;justify-content:space-between;gap:14px}.profile-share-box>div{display:flex;min-width:0;align-items:center;gap:10px}.profile-share-box span{overflow:hidden;color:var(--ink-muted);font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.flight-import-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.flight-import-actions .btn{width:100%}.flight-import-status:empty{display:none}.flight-import-review{margin-top:18px;padding:18px;border:1px solid var(--border-primary);border-radius:18px;background:var(--bg-secondary)}.flight-import-review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.flight-import-review-heading>div{display:flex;min-width:0;flex-direction:column;gap:4px}.flight-import-review-heading strong{color:var(--ink-strong);font-size:.94rem}.flight-import-review-heading span,.flight-import-review-heading small{overflow:hidden;color:var(--ink-muted);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.flight-import-preview{margin:16px 0;border-top:1px solid var(--border-primary)}.flight-import-row{min-height:44px;display:grid;grid-template-columns:minmax(58px,auto) minmax(0,1fr) auto;align-items:center;gap:12px;border-bottom:1px solid var(--border-primary);font-size:.8rem}.flight-import-row strong{color:var(--ink-strong)}.flight-import-row span,.flight-import-row time,.flight-import-preview>p{color:var(--ink-muted)}.flight-import-row time{font-variant-numeric:tabular-nums}.flight-import-preview>p{margin:10px 0 0;font-size:.76rem}.flight-import-result{margin:18px 0 0;display:inline-flex;align-items:center;gap:8px;color:var(--success);font-size:.84rem;font-weight:620}.flight-import-status>.form-error{margin-top:16px}.connection-list{margin-top:26px}.connection-list h3{margin:0 0 8px;font-size:.9rem}.connection-row{display:grid;min-height:62px;border-top:1px solid var(--border-primary);align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:12px}.connection-row>div:last-child{display:flex;gap:6px}.friends-page{padding-top:18px}.friends-history-tabs{max-width:420px;margin:26px 0 32px}.friends-share-button{min-height:44px;padding:0 14px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--ink-strong);cursor:pointer;font-size:.8rem;font-weight:620}.friends-share-button:disabled{cursor:default;opacity:.48}.friend-requests{max-width:620px;margin:24px 0 30px;padding:18px 20px;border:1px solid var(--border-primary);border-radius:18px;background:var(--bg-secondary)}.friend-requests h2{margin:0 0 8px;font-size:.98rem}.friend-request-row{min-height:62px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border-top:1px solid var(--border-primary)}.friend-request-row>div:last-child{display:flex;gap:6px}.friends-error{margin-bottom:20px}.friends-sharing-note{max-width:620px;margin:-18px 0 24px;color:var(--ink-subtle);font-size:.8125rem;line-height:1.5}.profile-sharing-explanation{max-width:620px;margin:0 0 14px;color:var(--ink-subtle);font-size:.8125rem;line-height:1.5}.friends-empty{margin-top:20px;border:1px solid var(--border-primary);border-radius:24px}.friends-empty .btn{margin-top:22px}.friend-groups{display:grid;gap:22px}.friend-group{overflow:hidden;border:1px solid var(--border-primary);border-radius:22px;background:var(--bg-elevated)}.friend-group-header{display:grid;min-height:92px;padding:10px 14px 10px 12px;border-bottom:1px solid var(--border-primary);align-items:center;grid-template-columns:minmax(0,1fr) auto;gap:10px}.friend-profile-link{min-width:0;min-height:70px;padding:8px 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border:0;border-radius:14px;background:transparent;color:inherit;cursor:pointer;text-align:left;transition:background-color var(--transition-fast),transform .12s var(--ease-out)}.friend-profile-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.friend-profile-copy strong{overflow:hidden;color:var(--ink-strong);font-size:1rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.friend-profile-copy small{overflow:hidden;color:var(--ink-muted);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.friend-profile-cta{display:inline-flex;align-items:center;gap:4px;color:var(--ink-muted);font-size:.76rem;font-weight:620}.friend-profile-link:active{transform:scale(.99)}@media(hover:hover){.friend-profile-link:hover{background:var(--bg-secondary)}}.friend-summary{padding:24px 26px 26px}.friend-summary-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--border-primary)}.friend-summary-stats p{min-width:0;margin:0 0 22px;padding:0 18px;display:flex;flex-direction:column;gap:4px;border-left:1px solid var(--border-primary)}.friend-summary-stats p:first-child{padding-left:0;border-left:0}.friend-summary-stats strong{color:var(--ink-strong);font-family:var(--font-mono);font-size:1.28rem;font-weight:520}.friend-summary-stats span,.friend-summary-highlights span{color:var(--ink-muted);font-size:.7rem}.friend-summary-highlights{padding-top:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.friend-summary-highlights p{min-width:0;margin:0;display:flex;flex-direction:column;gap:5px}.friend-summary-highlights strong{overflow:hidden;color:var(--ink-subtle);font-size:.8rem;font-weight:610;text-overflow:ellipsis;white-space:nowrap}.friend-flight-list{padding:0 22px}.friend-flight-list .flight-row:last-child{border-bottom:0}.friend-no-flights{margin:0;padding:30px 22px;color:var(--ink-muted)}.friend-flight-owner{display:inline-flex;margin:24px 0 18px;padding:8px 12px;border-radius:999px;align-items:center;gap:8px;color:var(--ink-muted);background:var(--bg-secondary);font-size:.88rem}.friend-profile-page{padding-top:22px}.friend-profile-hero{margin:38px 0 44px;display:flex;align-items:center;gap:18px}.friend-profile-avatar{width:58px;height:58px;flex:0 0 auto;font-size:.9rem}.friend-profile-hero p,.friend-profile-hero h1,.friend-profile-hero span{margin:0}.friend-profile-hero p{margin-bottom:4px;color:var(--ink-muted);font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.05em;text-transform:uppercase}.friend-profile-hero h1{color:var(--ink-strong);font-size:clamp(1.8rem,4vw,2.45rem);letter-spacing:-.045em}.friend-profile-hero div>span{display:block;margin-top:5px;color:var(--ink-muted);font-size:.86rem}.friend-profile-empty{min-height:260px;margin-bottom:46px;border-block:1px solid var(--border-primary)}.friend-profile-history{margin-top:6px}.friend-profile-hero,.friend-profile-page>.travel-insights,.friend-profile-page>.friend-profile-history,.friend-profile-page>.friend-profile-empty{width:100%;max-width:1180px;margin-inline:auto}.friend-profile-history .history-tabs{max-width:420px}.friend-profile-history .friend-flight-list{padding:0}.friend-history-empty{min-height:240px}@media(max-width:760px){.profile-card{min-height:360px;padding:34px 22px;border-radius:22px}.profile-share-box{align-items:stretch;flex-direction:column}.profile-share-box .btn{width:100%}.flight-import-actions{grid-template-columns:1fr}.flight-import-review{padding:16px}.flight-import-review-heading{flex-direction:column;gap:6px}.flight-import-row{grid-template-columns:minmax(54px,auto) minmax(0,1fr)}.flight-import-row time{grid-column:2;margin-top:-9px;padding-bottom:8px}.friend-group-header{padding:8px;grid-template-columns:minmax(0,1fr)}.friend-group-header>.text-action{margin:-6px 12px 10px 62px;justify-self:start}.friend-profile-link{grid-template-columns:auto minmax(0,1fr) auto;gap:11px}.friend-profile-cta{width:44px;justify-content:flex-end;font-size:0}.friend-summary{padding:20px}.friend-summary-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.friend-summary-stats p{margin:0;padding:14px 12px;border-bottom:0}.friend-summary-stats p:first-child{padding-left:0;border-left:0}.friend-summary-stats p:last-child{padding-right:0}.friend-summary-highlights{grid-template-columns:1fr;gap:16px}.friend-profile-page{padding-top:6px}.friend-profile-hero{margin:28px 0 34px}.friend-profile-avatar{width:52px;height:52px}.friend-flight-list{padding:0 14px}.friends-page{padding-top:4px}.friends-history-tabs{margin:14px 0 22px}.friends-empty{min-height:300px;padding:28px 18px}.friends-empty p{max-width:290px}.friends-empty .btn{width:100%;max-width:280px}.friend-requests{margin:18px 0 20px;padding:14px}}.confirmation-dialog-overlay{position:fixed;inset:0;z-index:120;padding:24px;display:grid;place-items:center;background:#1011145c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:confirmation-overlay-in .16s var(--ease-out) both}.confirmation-dialog{width:min(100%,420px);overflow:hidden;border:1px solid var(--border-primary);border-radius:var(--radius-xl);background:var(--bg-elevated);box-shadow:0 24px 70px #10111433;color:var(--ink-strong);animation:confirmation-dialog-in .18s var(--ease-out) both}.confirmation-dialog-copy{padding:26px 26px 22px}.confirmation-dialog h2{margin:0;font-size:1.16rem;line-height:1.25;letter-spacing:-.025em}.confirmation-dialog p{margin:9px 0 0;color:var(--ink-muted);font-size:.88rem;line-height:1.55}.confirmation-dialog .confirmation-dialog-error{color:var(--error)}.confirmation-dialog-actions{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border-primary)}.confirmation-dialog-button{min-height:50px;padding:10px 16px;border:0;background:transparent;color:var(--ink-strong);cursor:pointer;font:inherit;font-size:.88rem;font-weight:650}.confirmation-dialog-button+.confirmation-dialog-button{border-left:1px solid var(--border-primary)}.confirmation-dialog-button:hover:not(:disabled){background:var(--bg-secondary)}.confirmation-dialog-button:active:not(:disabled){background:var(--bg-tertiary)}.confirmation-dialog-button:disabled{cursor:wait;opacity:.55}.confirmation-dialog-button-danger{color:var(--error)}@keyframes confirmation-overlay-in{0%{opacity:0}}@keyframes confirmation-dialog-in{0%{opacity:0;transform:scale(.97) translateY(6px)}}@media(max-width:520px){.confirmation-dialog-overlay{padding:18px;align-items:end}.confirmation-dialog{border-radius:var(--radius-xl)}.confirmation-dialog-copy{padding:24px 22px 20px}}@media(prefers-reduced-motion:reduce){.confirmation-dialog-overlay,.confirmation-dialog{animation:none}}.sheet-status-value{flex-wrap:wrap}.sheet-status-timing{font-size:.78rem;font-weight:650;white-space:nowrap}.sheet-status-timing.is-early{color:var(--success)}.sheet-status-timing.is-late{color:var(--error)}.sheet-status-timing.is-neutral{color:var(--ink-muted)}.date-picker-field{position:relative}.date-picker-shell{display:flex;align-items:center;gap:.35rem;background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:.25rem .35rem .25rem .25rem;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.date-picker-shell:focus-within{border-color:var(--ink-strong);box-shadow:0 0 0 3px #0f141a14;background:#fff}.date-picker-shell.is-open{box-shadow:var(--shadow-md);transform:translateY(-1px)}.date-picker-error{border-color:var(--error)}.date-icon-button{width:36px;height:36px;border:1px solid var(--border-secondary);background:var(--bg-secondary);color:var(--ink-subtle);border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transform-origin:center;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform .14s var(--ease-out),box-shadow var(--transition-fast)}.date-icon-button:active{transform:scale(.97)}.date-input-field{flex:1;border:none;background:transparent;padding:.5rem .6rem;font:inherit;color:var(--ink-strong);outline:none;min-width:0}.date-input-field::placeholder{color:var(--ink-muted)}.date-popover{position:absolute;top:calc(100% + 10px);right:0;left:auto;min-width:280px;background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-md);z-index:10;opacity:1;filter:blur(0);transform:translateY(0) scale(1);transform-origin:top right;transition:opacity .18s var(--ease-out),filter .18s var(--ease-out),transform .18s var(--ease-out);outline:none}.date-popover-backdrop,.date-sheet-manual{display:none}@starting-style{.date-popover{opacity:0;filter:blur(2px);transform:translateY(-6px) scale(.98)}}.date-popover:before{content:"";position:absolute;top:-8px;right:16px;width:14px;height:14px;background:var(--bg-elevated);border-left:1px solid var(--border-primary);border-top:1px solid var(--border-primary);transform:rotate(45deg)}.date-popover-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.date-month-label{font-weight:700;letter-spacing:.01em}.date-nav-btn{width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border-secondary);background:var(--bg-secondary);color:var(--ink-subtle);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transform-origin:center;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform .14s var(--ease-out),box-shadow var(--transition-fast)}.date-nav-btn:active{transform:scale(.97)}.date-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;text-align:center;color:var(--ink-muted);font-size:.75rem;margin-bottom:.25rem}.date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.date-cell{width:100%;padding:.45rem 0;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--ink-strong);cursor:pointer;transform-origin:center;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform .14s var(--ease-out),box-shadow var(--transition-fast)}.date-cell.is-today{border-color:var(--border-secondary)}.date-cell.is-selected{background:var(--ink-strong);color:#fff;box-shadow:var(--shadow-sm);border-color:var(--ink-strong)}.date-cell:active{transform:scale(.94)}.date-popover-footer{display:none}@media(hover:hover)and (pointer:fine){.date-icon-button:hover,.date-nav-btn:hover{background:var(--bg-tertiary);color:var(--ink-strong);border-color:var(--ink-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.date-cell:hover{background:var(--bg-secondary);transform:translateY(-1px)}}@media(max-width:480px){.date-popover-backdrop{position:fixed;z-index:79;inset:0;display:block;width:100%;height:100%;padding:0;border:0;background:#1011143d}.date-popover{position:fixed;z-index:80;inset:auto 0 0;width:100%;min-width:0;padding:20px 20px calc(24px + env(safe-area-inset-bottom));border:0;border-radius:22px 22px 0 0;transform-origin:bottom center;overscroll-behavior:contain}.date-popover:before{display:none}.date-sheet-manual{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin-bottom:16px}.date-sheet-manual label{color:var(--ink-subtle);font-size:.875rem;font-weight:700}.date-sheet-manual-input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--ink-strong);font:inherit;text-align:center;outline:none}.date-sheet-manual-input:focus-visible{border-color:var(--ink-strong);box-shadow:0 0 0 3px #0f141a14}.date-nav-btn,.date-icon-button{width:44px;height:44px}.date-cell{min-height:44px}.date-popover-footer{display:flex;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border-secondary)}.date-footer-btn{flex:1;min-height:44px;border:1px solid var(--border-secondary);border-radius:var(--radius-md);font:inherit;font-weight:700;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform .14s var(--ease-out)}.date-footer-btn:active:not(:disabled){transform:scale(.98)}.date-footer-cancel{background:var(--bg-secondary);color:var(--ink-strong)}.date-footer-done{background:var(--ink-strong);border-color:var(--ink-strong);color:#fff}.date-footer-done:disabled{cursor:default;opacity:.42}}@media(prefers-reduced-motion:reduce){.date-picker-shell,.date-icon-button,.date-popover,.date-nav-btn,.date-cell,.date-footer-btn{transition-duration:1ms!important}.date-picker-shell,.date-icon-button,.date-popover,.date-nav-btn,.date-cell,.date-footer-btn{filter:none!important;transform:none!important}}.flight-details-card{margin-top:4px;padding-top:30px;border-top:1px solid var(--border-primary);color:var(--ink-strong)}.flight-header{margin-bottom:30px;display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.flight-identity{min-width:0}.identity-row{display:flex;align-items:center;gap:12px}.flight-identity h2{margin:0;font-size:clamp(1.7rem,2.6vw,2.3rem);line-height:1.08;letter-spacing:-.045em;font-weight:690}.airline{display:block;margin-top:8px;color:var(--ink-muted);font-family:var(--font-mono);font-size:.76rem}.flight-meta{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.meta-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.flight-date{color:var(--ink-muted);font-size:.82rem;white-space:nowrap}.flight-status{display:inline-flex;align-items:center;gap:7px;color:var(--ink-subtle);font-size:.8rem;text-transform:capitalize}.flight-status-timing{font-weight:650;text-transform:none}.flight-status-timing.is-early{color:var(--success)}.flight-status-timing.is-late{color:var(--error)}.flight-status-timing.is-neutral{color:var(--ink-muted)}.flight-save-action{min-height:42px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--accent-primary);border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;cursor:pointer;font-size:.82rem;font-weight:650;transition:background-color var(--transition-fast),box-shadow var(--transition-fast),transform .12s var(--ease-out)}.flight-save-action:active:not(:disabled){transform:scale(.97)}.flight-save-action:disabled{opacity:.58;cursor:wait}.detail-icon-button{border-radius:var(--radius-md);background:var(--bg-elevated);text-decoration:none}.detail-icon-button-danger{color:var(--error);cursor:pointer}.detail-icon-button-danger:disabled{opacity:.55;cursor:wait}.action-saved-chip{min-height:42px;padding:0 14px;display:inline-flex;align-items:center;gap:7px;border:1px solid rgb(47 125 69 / .25);border-radius:var(--radius-md);background:#2f7d450f;color:var(--success);font-size:.79rem;font-weight:640;transition:opacity var(--transition-fast),transform var(--transition-fast)}@starting-style{.action-saved-chip{opacity:0;transform:scale(.96)}}.schedule-note{margin:-6px 0 28px;padding:11px 13px;border-left:2px solid var(--ink-strong);background:var(--bg-secondary);color:var(--ink-muted);font-size:.78rem;line-height:1.5}.flight-details-body{display:grid;grid-template-columns:minmax(380px,.82fr) minmax(520px,1.18fr);align-items:stretch;gap:38px}.flight-details-info{min-width:0;display:flex;flex-direction:column}.route-container{min-height:200px;display:grid;grid-template-columns:auto minmax(80px,1fr) auto;align-items:center;gap:18px}.location.departure{text-align:left}.location.arrival{text-align:right}.location .code{font-family:var(--font-mono);font-size:clamp(2rem,4vw,2.75rem);line-height:1;font-weight:500;letter-spacing:-.06em}.location .city{margin-top:7px;color:var(--ink-muted);font-size:.75rem}.location .time{margin-top:12px;font-family:var(--font-mono);font-size:.94rem;font-weight:500}.weather-inline{margin-top:7px;display:flex;align-items:center;gap:6px;color:var(--ink-muted);font-family:var(--font-mono);font-size:.7rem}.location.arrival .weather-inline{justify-content:flex-end}.weather-inline-empty,.weather-inline-loading{color:var(--ink-muted)}.location .delay{margin-top:7px;color:var(--error);font-size:.7rem}.route-visual{display:flex;align-items:center}.progress-bar{position:relative;width:100%;height:1px;background:var(--border-secondary)}.progress-fill{height:100%;background:var(--ink-strong);transition:width .7s var(--ease-in-out)}.plane-icon{position:absolute;top:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);background:var(--bg-primary);color:var(--ink-strong);transition:left .7s var(--ease-in-out)}.details-grid{margin-top:auto;border-top:1px solid var(--border-primary)}.detail-item{min-height:52px;display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,1.2fr);align-items:center;gap:18px;border-bottom:1px solid var(--border-primary)}.detail-item .label{color:var(--ink-muted);font-size:.72rem}.detail-item .value{min-width:0;color:var(--ink-subtle);font-size:.8rem;font-weight:580;text-align:right;overflow-wrap:anywhere}.detail-item .value-muted{color:var(--ink-muted);font-weight:450}.map-section{min-height:500px;overflow:hidden;border:1px solid var(--border-secondary);border-radius:var(--radius-lg);background:var(--bg-secondary)}.flight-map-container{width:100%;height:100%}@media(hover:hover)and (pointer:fine){.flight-save-action:hover:not(:disabled){background:#202126;box-shadow:0 5px 16px #10111429;transform:translateY(-1px)}.detail-icon-button-danger:hover:not(:disabled){border-color:#c9362b59;background:#c9362b0f}}@media(max-width:1050px){.flight-details-body{grid-template-columns:1fr}.map-section{min-height:380px}}@media(max-width:640px){.flight-details-card{padding-top:24px}.flight-header{flex-direction:column;margin-bottom:22px}.flight-meta{width:100%;align-items:flex-start}.meta-actions{justify-content:flex-start}.flight-date{width:100%}.flight-details-body{gap:24px}.route-container{min-height:165px;gap:10px}.location .code{font-size:2rem}.location .city{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location.arrival .city{margin-left:auto}.route-visual{min-width:56px}.detail-item{grid-template-columns:1fr auto}.map-section{min-height:280px}}@media(prefers-reduced-motion:reduce){.flight-save-action,.action-saved-chip,.progress-fill{transition-duration:1ms!important;transform:none!important}.plane-icon{transition-duration:1ms!important}}.saved-detail-notice{margin:4px 0 18px;padding:10px 13px;border-left:2px solid var(--ink-subtle);background:var(--bg-secondary);color:var(--ink-subtle);font-size:.84rem;line-height:1.45}#root{min-height:100vh}
