:root{--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:44px;--r-sm:4px;--r-md:14px;--r-lg:18px;--r-pill:100px;--serif:"Iowan Old Style","Charter",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;--hand:"Caveat","Brush Script MT",cursive;--mono:"JetBrains Mono",ui-monospace,monospace;--d-fast:120ms;--d-base:250ms;--ease:cubic-bezier(.22,1,.36,1)}:root,html[data-mode=family]{--bg:#FFF8EE;--bg-2:#FFFFFF;--bg-3:#FBEED8;--bg-warm:#F7E5C7;--ink:#2A1E0F;--ink-2:#6E5D44;--ink-3:#A39379;--line:rgba(42,30,15,.10);--line-2:rgba(42,30,15,.20);--signal:#E45A2B;--signal-d:#B83F18;--sea:#2E8FB8;--leaf:#65935B;--sun:#F2C12E;--pink:#F4A6B5;--tape:rgba(244,198,180,.7);--good:#65935B;--warn:#E0A130;--bad:#C04A2E;--font-display:var(--serif);--font-body:var(--sans);--font-accent:var(--hand)}html[data-mode=business]{--bg:#F4F5F8;--bg-2:#FFFFFF;--bg-3:#EBEEF3;--bg-warm:#EBEEF3;--ink:#0A0E1A;--ink-2:#4A5267;--ink-3:#8089A0;--line:rgba(10,14,26,.10);--line-2:rgba(10,14,26,.20);--signal:#2A52FF;--signal-d:#1A3FCC;--sea:#2A52FF;--leaf:#14C57B;--sun:#FFB020;--pink:#FF5577;--tape:transparent;--good:#14C57B;--warn:#FFB020;--bad:#FF3A20;--font-display:var(--sans);--font-body:var(--sans);--font-accent:var(--mono)}@media (prefers-color-scheme:dark){:root,html[data-mode=family]{--bg:#1B140A;--bg-2:#251C10;--bg-3:#2F2417;--bg-warm:#3A2E1D;--ink:#FBEFD8;--ink-2:#C8B89A;--ink-3:#8E7E62;--line:rgba(251,239,216,.13);--line-2:rgba(251,239,216,.25);--tape:rgba(244,198,180,.18)}html[data-mode=business]{--bg:#0A0E1A;--bg-2:#111726;--bg-3:#19213A;--bg-warm:#19213A;--ink:#F1F5FC;--ink-2:#97A4BF;--ink-3:#5E6B86;--line:rgba(255,255,255,.10);--line-2:rgba(255,255,255,.22)}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh;padding-bottom:100px}a{color:inherit;text-decoration:none}button{background:none;border:0;cursor:pointer}button,input,select,textarea{font:inherit;color:inherit}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--line);padding:14px 20px;display:grid;grid-template-columns:auto 1fr auto auto;grid-gap:var(--s-4);gap:var(--s-4);align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:-.02em;display:flex;align-items:center;gap:4px}.brand .dot{color:var(--signal)}.brand .domain{color:var(--ink-3);font-size:14px;font-weight:400;font-style:italic}html[data-mode=business] .brand{font-style:normal;letter-spacing:-.015em}html[data-mode=business] .brand .domain{font-style:normal}.app-nav{display:flex;gap:4px;font-size:14px}.app-nav a{padding:8px 14px;border-radius:var(--r-pill);color:var(--ink-2);font-weight:500}.app-nav a:hover{background:var(--bg-3);color:var(--ink)}.app-nav a.on{background:var(--signal);color:white}html[data-mode=business] .app-nav a{border-radius:var(--r-sm);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em}@media (max-width:720px){.app-nav{display:none}}.mode-toggle{display:inline-flex;background:var(--bg-3);border-radius:var(--r-pill);padding:3px;font-size:12px;font-family:var(--mono)}.mode-toggle button{padding:5px 12px;border-radius:var(--r-pill);color:var(--ink-2);text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:600}.mode-toggle button.on{background:var(--ink);color:var(--bg)}.avatar{width:36px;height:36px;border-radius:var(--r-pill);background:var(--signal);color:white;display:grid;place-items:center;font-weight:700;font-size:13px;cursor:pointer}html[data-mode=business] .avatar{border-radius:var(--r-sm)}.container{max-width:1240px;margin:0 auto;padding:32px 20px}.container-narrow{max-width:720px;margin:0 auto;padding:56px 20px}.page-head{display:flex;align-items:baseline;gap:var(--s-4);margin-bottom:28px;flex-wrap:wrap}.page-tag{font-family:var(--mono);font-size:11px;color:var(--signal);text-transform:uppercase;letter-spacing:.18em;padding:4px 10px;background:var(--bg-3);border-radius:var(--r-pill)}html[data-mode=business] .page-tag{background:rgba(42,82,255,.1);border-radius:var(--r-sm)}.page-head h1{font-family:var(--font-display);font-size:38px;font-weight:600;letter-spacing:-.02em;line-height:1.05}.page-head .deck{color:var(--ink-2);font-style:italic;margin-left:auto;font-size:14px}html[data-mode=business] .page-head .deck{font-style:normal;font-family:var(--mono)}.trip-grid{display:grid;grid-template-columns:1fr;grid-gap:32px 22px;gap:32px 22px}@media (min-width:720px){.trip-grid{grid-template-columns:1fr 1fr;gap:44px 28px}}@media (min-width:1080px){.trip-grid{grid-template-columns:1fr 1fr 1fr;gap:50px 28px}}.trip-card{background:var(--bg-2);padding:14px 14px 18px;box-shadow:0 10px 30px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.08);position:relative;transition:transform var(--d-base) var(--ease);display:block;color:inherit}.trip-card:nth-child(3n+1){transform:rotate(-1.4deg)}.trip-card:nth-child(3n+2){transform:rotate(1deg)}.trip-card:nth-child(3n){transform:rotate(-.5deg)}.trip-card:hover{transform:rotate(0) translateY(-4px);z-index:5}.trip-card:before{content:"";position:absolute;top:-10px;left:50%;width:80px;height:22px;transform:translateX(-50%) rotate(-2deg);background:var(--tape);box-shadow:0 1px 3px rgba(0,0,0,.08)}.trip-card .photo{aspect-ratio:4/3;border-radius:2px;margin-bottom:12px;display:flex;align-items:flex-end;padding:12px;position:relative;overflow:hidden}.trip-card .photo.beach{background:linear-gradient(180deg,#87CDEB,#4DA8CC 55%,#F2C12E 0,#FFD968)}.trip-card .photo.ski{background:linear-gradient(180deg,#B6D9F0,#E8F2FB 60%,#F8FBFD 0,#FFFFFF)}.trip-card .photo.greece{background:linear-gradient(180deg,#1E5A7A,#3F8FB8 40%,#FFFFFF 0,#F0F4F8 65%,#2E8FB8 0,#74C4E4)}.trip-card .photo.marbella{background:linear-gradient(135deg,#F4A6B5,#F2C12E 40%,#65935B);opacity:.65}.trip-card .photo.city{background:linear-gradient(180deg,#564B70,#8676A2 50%,#C9A2B1 0,#F4A6B5)}.trip-card .photo.lisbon{background:linear-gradient(180deg,#88BCD9,#E8B97F 45%,#FFFFFF 0,#E8DCC4)}.trip-card .photo .ppl{display:flex;z-index:2}.trip-card .photo .ppl .chip{width:26px;height:26px;border-radius:50%;background:var(--bg-2);color:var(--signal);display:grid;place-items:center;border:2px solid var(--bg-2);margin-right:-6px;font-family:var(--mono);font-weight:700;font-size:10px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.trip-card .caption{font-family:var(--font-accent);font-size:24px;line-height:1.1;margin-bottom:6px;transform:rotate(-.4deg)}html[data-mode=business] .trip-card .caption{font-size:17px;font-weight:600;transform:none;letter-spacing:-.01em}.trip-card .meta{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink-2);font-family:var(--mono)}.trip-card .meta .pip{width:4px;height:4px;border-radius:50%;background:var(--ink-3)}.trip-card .meta .status{color:var(--signal);font-weight:600}.trip-card .meta .status.past{color:var(--ink-3)}html[data-mode=business] .trip-card{transform:none!important;box-shadow:0 1px 0 var(--line);border:1px solid var(--line);padding:0}html[data-mode=business] .trip-card:before{display:none}html[data-mode=business] .trip-card .photo{aspect-ratio:5/2;margin:0}html[data-mode=business] .trip-card .caption,html[data-mode=business] .trip-card .meta{padding:0 14px}html[data-mode=business] .trip-card .caption{padding-top:12px}html[data-mode=business] .trip-card .meta{padding-bottom:14px;padding-top:8px}html[data-mode=business] .trip-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.1);border-color:var(--signal)}.trip-card.empty{background:transparent;border:2px dashed var(--ink-3);box-shadow:none;display:grid;place-items:center;min-height:260px;color:var(--ink-2);transform:rotate(0)!important}.trip-card.empty:before{display:none}.trip-card.empty:hover{color:var(--signal);border-color:var(--signal)}.trip-card.empty .plus{font-family:var(--font-display);font-size:52px;font-weight:300;line-height:1;margin-bottom:4px}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;background:var(--signal);color:white;border-radius:var(--r-pill);font-weight:600;font-size:14px;transition:transform var(--d-fast) var(--ease)}.btn:hover{transform:translateY(-1px)}.btn.secondary{background:var(--bg-3);color:var(--ink)}.btn.ghost{background:transparent;border:1px solid var(--line-2);color:var(--ink)}.btn.sm{padding:8px 14px;font-size:13px}.btn.xs{padding:5px 10px;font-size:11px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-weight:700}html[data-mode=business] .btn{border-radius:var(--r-sm)}html[data-mode=business] .btn.xs{border-radius:2px}.card{background:var(--bg-2);border-radius:var(--r-lg);padding:22px;box-shadow:0 4px 16px rgba(0,0,0,.05)}html[data-mode=business] .card{border-radius:var(--r-sm);border:1px solid var(--line);box-shadow:none}.it-card{background:var(--bg-2);border-radius:var(--r-md);padding:16px 18px;margin-bottom:10px;display:grid;grid-template-columns:44px 1fr auto;grid-gap:14px;gap:14px;align-items:center;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:transform var(--d-fast) var(--ease);border-left:4px solid var(--ink-3)}.it-card:hover{transform:translateX(3px)}html[data-mode=business] .it-card{border-radius:var(--r-sm);border:1px solid var(--line);border-left:3px solid var(--ink-3);box-shadow:none}.it-icon{width:44px;height:44px;border-radius:var(--r-md);background:var(--bg-3);display:grid;place-items:center;font-size:22px}html[data-mode=business] .it-icon{border-radius:var(--r-sm)}.it-card.t-flight{border-left-color:var(--sea)}.it-card.t-lodging{border-left-color:var(--leaf)}.it-card.t-car{border-left-color:var(--signal)}.it-card.t-cruise,.it-card.t-ferry,.it-card.t-train{border-left-color:var(--sea)}.it-card.t-bus{border-left-color:var(--ink-3)}.it-card.t-activity{border-left-color:var(--sun)}.it-card.t-concert,.it-card.t-restaurant,.it-card.t-theater{border-left-color:var(--pink)}.it-card.t-tour{border-left-color:var(--sun)}.it-card.t-meeting,.it-card.t-parking,.it-card.t-transit{border-left-color:var(--ink-2)}.it-card.t-map{border-left-color:var(--leaf)}.it-card.t-note{border-left-color:var(--sun)}.it-card.t-document{border-left-color:var(--ink-3)}.it-body .it-title{font-weight:600;font-size:15px;margin-bottom:2px}.it-body .it-sub{font-size:13px;color:var(--ink-2)}.it-body .it-sub .pip{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--ink-3);margin:0 6px;vertical-align:middle}.it-time{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--signal);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.it-time small{display:block;color:var(--ink-3);font-weight:400;letter-spacing:.1em;margin-top:2px}.it-time small,.pill{font-size:10px;text-transform:uppercase}.pill{display:inline-block;padding:3px 9px;border-radius:var(--r-pill);font-family:var(--mono);letter-spacing:.14em;font-weight:700}.pill.on-time{background:rgba(101,147,91,.18);color:var(--good)}.pill.delay{background:rgba(224,161,48,.2);color:var(--warn)}.pill.gate{background:var(--bg-3);color:var(--ink-2)}html[data-mode=business] .pill{border-radius:2px}.av{width:26px;height:26px;border-radius:50%;color:white;display:inline-grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:10px;border:2px solid var(--bg-2);vertical-align:middle}.av.k{background:var(--signal)}.av.l{background:var(--sea)}.av.c1{background:var(--leaf)}.av.c2{background:var(--pink);color:var(--signal-d)}.av.shared{background:var(--bg-3);color:var(--ink-3);border-style:dashed;border-color:var(--ink-3)}.av.sm{width:22px;height:22px;font-size:9px}.av-stack{display:inline-flex}.av-stack .av{margin-left:-8px}.av-stack .av:first-child{margin-left:0}html[data-mode=business] .av{border-radius:var(--r-sm)}.tabs{margin-bottom:22px;overflow-x:auto;padding-bottom:4px}.tab,.tabs{display:flex;gap:8px}.tab{flex:0 0 auto;padding:10px 16px;border-radius:var(--r-pill);background:var(--bg-2);border:1px solid var(--line-2);font-weight:500;font-size:14px;color:var(--ink-2);align-items:center;white-space:nowrap}.tab .emoji{font-size:16px}.tab .cnt{font-family:var(--mono);font-size:11px;background:var(--bg-3);padding:2px 7px;border-radius:var(--r-pill)}.tab.on{background:var(--signal);color:white;border-color:var(--signal)}.tab.on .cnt{background:rgba(255,255,255,.25);color:white}html[data-mode=business] .tab{border-radius:var(--r-sm);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:700}html[data-mode=business] .tab .cnt{border-radius:2px}.fab{position:fixed;bottom:22px;right:22px;background:var(--signal);color:white;padding:14px 22px;border-radius:var(--r-pill);font-weight:600;font-size:14px;box-shadow:0 8px 28px rgba(228,90,43,.45),0 2px 6px rgba(0,0,0,.1);z-index:40;display:flex;align-items:center;gap:8px}html[data-mode=business] .fab{border-radius:var(--r-sm);box-shadow:0 0 0 1px var(--signal),0 8px 24px rgba(42,82,255,.35)}.fab:hover{transform:translateY(-2px)}.dashed-add{display:flex;align-items:center;justify-content:center;padding:14px;border:2px dashed var(--ink-3);border-radius:var(--r-md);color:var(--ink-3);font-style:italic;cursor:pointer;margin-top:8px}.dashed-add:hover{color:var(--signal);border-color:var(--signal)}html[data-mode=business] .dashed-add{border-radius:var(--r-sm);font-family:var(--mono);font-size:11px;font-style:normal;text-transform:uppercase;letter-spacing:.12em}.kbd{font-family:var(--mono);font-size:11px;padding:2px 6px;background:var(--bg-3);border-radius:4px;border:1px solid var(--line-2)}.row{display:flex;align-items:center;gap:var(--s-3)}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.col{display:flex;flex-direction:column;gap:var(--s-3)}.mb-2{margin-bottom:var(--s-3)}.mb-3{margin-bottom:var(--s-4)}.mb-4{margin-bottom:var(--s-5)}.mb-5{margin-bottom:var(--s-6)}.mb-6{margin-bottom:var(--s-7)}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.tiny{font-size:12px}.mono{font-family:var(--mono)}.serif{font-family:var(--font-display)}.right{margin-left:auto}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:40px 20px}.auth-card{background:var(--bg-2);border-radius:var(--r-lg);padding:40px 36px;width:100%;max-width:440px;box-shadow:0 20px 60px rgba(0,0,0,.1)}html[data-mode=business] .auth-card{border-radius:var(--r-sm);border:1px solid var(--line);box-shadow:none}.auth-card h1{font-family:var(--font-display);font-size:32px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}.auth-card .sub{color:var(--ink-2);margin-bottom:28px}.auth-input{width:100%;padding:14px 16px;border:1.5px solid var(--line-2);border-radius:var(--r-md);background:var(--bg);font-size:15px;margin-bottom:12px}html[data-mode=business] .auth-input{border-radius:var(--r-sm)}.auth-input:focus{outline:none;border-color:var(--signal)}.auth-card .btn{width:100%;justify-content:center;padding:14px}.auth-card .alt{text-align:center;margin-top:18px;font-size:13px;color:var(--ink-2)}.auth-card .alt a{color:var(--signal);font-weight:500}.panel-modal{background:var(--bg-2);border-radius:var(--r-lg);padding:26px;border:2px solid var(--signal);box-shadow:0 14px 40px rgba(228,90,43,.15);position:relative}html[data-mode=business] .panel-modal{border-radius:var(--r-sm);box-shadow:0 0 0 1px var(--signal),0 0 32px rgba(42,82,255,.2)}.panel-modal .badge{position:absolute;top:-14px;left:24px;background:var(--signal);color:white;padding:6px 14px;border-radius:var(--r-pill);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:600}html[data-mode=business] .panel-modal .badge{border-radius:2px}.msg{padding:11px 14px;border-radius:var(--r-md);margin-bottom:8px;font-size:14px;max-width:92%}.msg.user{background:var(--signal);color:white;border-bottom-right-radius:4px;margin-left:auto}.msg.ai{background:var(--bg-3);color:var(--ink);border-bottom-left-radius:4px}html[data-mode=business] .msg{border-radius:var(--r-sm)}.chat-input-row{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg);border:1.5px solid var(--line-2);border-radius:var(--r-pill)}html[data-mode=business] .chat-input-row{border-radius:var(--r-sm)}.chat-input-row input{flex:1 1;background:none;border:0;font-size:14px;outline:none}.flight-hero{background:var(--bg-2);border-radius:var(--r-lg);padding:26px;border:1px solid var(--line);margin-bottom:22px}html[data-mode=business] .flight-hero{border-radius:var(--r-sm)}.flight-route{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:20px;gap:20px;align-items:center;margin-bottom:22px}.flight-route .ap{text-align:center}.flight-route .iata{font-family:var(--mono);font-size:36px;font-weight:700;letter-spacing:-.02em}.flight-route .city{font-size:13px;color:var(--ink-2);margin-top:4px}.flight-route .time{font-family:var(--mono);font-size:18px;font-weight:600;margin-top:8px}.flight-route .plane{color:var(--signal);font-size:28px}.flight-stats{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:18px;gap:18px;padding:18px 0;border-top:1px solid var(--line)}@media (min-width:600px){.flight-stats{grid-template-columns:repeat(4,1fr)}}.flight-stats .label{font-family:var(--mono);font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.14em;margin-bottom:4px}.flight-stats .val{font-size:18px;font-weight:600;font-family:var(--mono)}.type-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px}@media (min-width:720px){.type-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.type-grid{grid-template-columns:repeat(4,1fr)}}.type-chip{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-2);border-radius:var(--r-md);border:1px solid var(--line);font-size:13px}html[data-mode=business] .type-chip{border-radius:var(--r-sm)}.type-chip .e{font-size:18px}.alert{padding:14px 18px;border-radius:var(--r-md);background:var(--bg-3);border-left:3px solid var(--signal);margin-bottom:18px;font-size:14px}.alert.warn{border-left-color:var(--warn)}.alert.bad{border-left-color:var(--bad)}.alert b{display:block;margin-bottom:2px}html[data-mode=business] .alert{border-radius:var(--r-sm)}.price-card{background:var(--bg-2);border-radius:var(--r-lg);padding:36px 32px;border:2px solid var(--signal);text-align:center;position:relative}html[data-mode=business] .price-card{border-radius:var(--r-sm)}.price-card h2{font-family:var(--font-display);font-size:26px;font-weight:600;margin-bottom:6px}.price-card .price{font-family:var(--font-display);font-size:64px;font-weight:700;letter-spacing:-.03em;margin:18px 0 8px}.price-card .price .per{font-size:16px;color:var(--ink-2);font-weight:400}.price-card ul{list-style:none;text-align:left;margin:22px 0}.price-card li{padding:8px 0;display:flex;align-items:center;gap:10px;font-size:14px}.price-card li:before{content:"✓";color:var(--good);font-weight:700}.day-block{background:var(--bg-2);padding:22px;border-radius:var(--r-lg);margin-bottom:22px;box-shadow:0 4px 12px rgba(0,0,0,.04)}html[data-mode=business] .day-block{border-radius:var(--r-sm);border:1px solid var(--line);box-shadow:none}.day-head{display:grid;grid-template-columns:70px 1fr auto;grid-gap:14px;gap:14px;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px dashed var(--line-2)}.day-num{width:64px;height:64px;background:var(--signal);color:white;border-radius:var(--r-md);display:grid;place-items:center;font-family:var(--font-display);font-size:26px;font-weight:700;transform:rotate(-3deg)}html[data-mode=business] .day-num{transform:none;border-radius:var(--r-sm);font-family:var(--mono)}.day-num small{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;opacity:.8}.day-label .d{font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:-.01em}html[data-mode=business] .day-label .d{font-family:var(--sans)}.day-label .w{font-size:13px;color:var(--ink-2);font-style:italic;margin-top:2px}.day-weather{font-family:var(--font-accent);font-size:22px;color:var(--signal)}html[data-mode=business] .day-weather{font-family:var(--mono);font-size:14px}@media (max-width:720px){.container{padding:22px 16px}.page-head h1{font-size:28px}.page-head .deck{margin-left:0;width:100%}.app-header{grid-template-columns:auto 1fr auto;padding:12px 16px}.flight-route .iata{font-size:26px}}