.workspace-page{background:var(--surface-secondary);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.workspace-topbar{z-index:1500;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;align-items:center;gap:12px;min-height:60px;padding:8px 16px;display:flex;position:relative}.topbar-brand{color:var(--ink);letter-spacing:-.03em;align-items:center;gap:8px;font-weight:800;text-decoration:none;display:inline-flex}.topbar-brand .icon{color:var(--sea)}.trip-switcher{border:1px solid var(--border-strong);background:var(--surface);min-width:0;max-width:420px;color:var(--sea);border-radius:999px;align-items:center;gap:8px;padding:0 6px 0 12px;display:inline-flex}.trip-switcher:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.trip-switcher select{min-width:0;min-height:38px;color:var(--ink);font:inherit;text-overflow:ellipsis;appearance:none;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2368748a' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 8px center no-repeat;border:0;padding:0 28px 0 0;font-weight:750}.trip-switcher select:focus{outline:0}.topbar-anchor{position:relative}.topbar-end{align-items:center;gap:8px;margin-left:auto;display:flex}.topbar-button,.topbar-icon-button,.topbar-avatar{border:1px solid var(--border-strong);background:var(--surface);min-height:38px;color:var(--ink);font:inherit;border-radius:999px;justify-content:center;align-items:center;gap:6px;font-size:14px;font-weight:700;display:inline-flex}.topbar-button{padding:0 14px 0 10px}.topbar-icon-button{width:38px;position:relative}.topbar-button:hover,.topbar-icon-button:hover{border-color:var(--primary);color:var(--primary-strong)}.topbar-button[aria-expanded=true],.topbar-icon-button[aria-expanded=true]{border-color:var(--primary);background:var(--primary-light);color:var(--primary-strong)}.topbar-badge{background:var(--sunset);color:#fff;border:2px solid #fff;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:800;display:grid;position:absolute;top:-4px;right:-4px}.topbar-avatar{background:linear-gradient(135deg, var(--sea), var(--primary));color:#fff;border:0;width:38px}.topbar-popover{z-index:2000;border:1px solid var(--border);background:var(--surface);border-radius:16px;width:min(380px,100vw - 32px);max-height:min(72vh,640px);padding:18px;position:absolute;top:calc(100% + 10px);left:0;overflow-y:auto;box-shadow:0 24px 48px #17233a2e}.topbar-end .topbar-popover{left:auto;right:0}.topbar-popover .collab-section{border:0;margin:0;padding:0}.topbar-popover .trip-date-grid{grid-template-columns:1fr}.popover-title{margin-bottom:14px;font-size:18px}.popover-user{gap:2px;margin-bottom:14px;display:grid}.popover-user span{color:var(--ink-muted);font-size:13px}.popover-actions{gap:8px;display:flex}.workspace-status{margin:24px}.workspace-empty{flex:1;align-content:start;justify-items:center;gap:20px;padding:56px 16px;display:grid;overflow-y:auto}.empty-card{background:#ffffffe6;border:1px solid #ffffffb3;border-radius:20px;width:min(560px,100%);padding:28px;box-shadow:0 20px 48px #17233a1a}.empty-card h1{font-size:clamp(30px,4vw,42px)}.empty-card .collab-section{border:0;margin:0;padding:0}@media (width<=640px){.workspace-topbar{gap:8px;padding:8px 10px}.topbar-brand span,.topbar-label{display:none}.topbar-button{width:38px;padding:0}.trip-switcher{flex:1}.topbar-popover{width:auto;position:fixed;top:64px;left:10px;right:10px}.topbar-end .topbar-popover{left:10px;right:10px}}#root,.app-shell{min-height:100vh}.app-shell{flex-direction:column;display:flex}.site-header,.site-footer,.page-content{width:min(100% - 64px,1200px);margin-inline:auto}.site-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;min-height:76px;display:flex}.brand{color:var(--ink);letter-spacing:-.03em;align-items:center;gap:10px;font-weight:750;text-decoration:none;display:inline-flex}.brand-logo{background-color:var(--surface);background-position:50% 35%;background-repeat:no-repeat;background-size:105px;flex:0 0 38px;width:38px;height:34px;display:block}.header-nav,.actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.header-nav a,.nav-button{color:var(--ink-muted);padding:9px 10px;font-size:14px;font-weight:600;text-decoration:none}.header-nav a:hover,.nav-button:hover{color:var(--primary-strong)}.nav-button{background:0 0;border:0}.user-chip{border-left:1px solid var(--border);max-width:180px;color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;padding-left:12px;font-size:11px;line-height:1.35;display:grid;overflow:hidden}.user-chip span:first-child{color:var(--ink);font-size:13px;font-weight:700}.nav-status,.muted-copy{color:var(--ink-muted)}.page-content{flex:1;padding-block:48px 72px}h1,h2,h3,p{margin-top:0}h1{color:var(--ink);letter-spacing:-.045em;font-size:clamp(34px,4vw,52px);line-height:1.08}h2{color:var(--ink);letter-spacing:-.03em;font-size:28px}h3{color:var(--ink);letter-spacing:-.02em;font-size:18px}.eyebrow{color:var(--primary-strong);letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px;font-size:11px;font-weight:800}.intro-copy,.landing-copy{color:var(--ink-muted);font-size:16px;line-height:1.65}.primary-button,.retry-button,.danger-button{min-height:42px;font:inherit;border-radius:10px;justify-content:center;align-items:center;padding:10px 16px;font-weight:700;text-decoration:none;transition:transform .16s,box-shadow .16s,border-color .16s,background .16s;display:inline-flex}.primary-button{border:1px solid var(--primary);background:var(--primary);color:#fff;box-shadow:0 7px 18px #2f7dd22e}.primary-button:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 10px 20px #2f7dd238}.retry-button{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink)}.retry-button:hover:not(:disabled){border-color:var(--primary);color:var(--primary-strong)}.danger-button{border:1px solid var(--danger-line);background:var(--surface);color:var(--danger)}.danger-button:hover:not(:disabled){background:var(--danger-soft)}button:disabled{cursor:wait;opacity:.6}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.landing{grid-template-columns:minmax(0,.95fr) minmax(390px,1.05fr);align-items:center;gap:64px;min-height:530px;display:grid}.landing h1{max-width:570px;font-size:clamp(46px,6vw,76px)}.landing h1 em{color:var(--primary);font-family:Georgia,serif;font-weight:500}.landing-copy{max-width:520px;margin:24px 0 30px;font-size:18px}.landing-actions a{text-decoration:none}.landing-login{align-self:center;padding-inline:6px}.landing-demo-hint{max-width:520px;margin:14px 0 0;font-size:14px}.landing-demo-error{flex-basis:100%;margin:0}.landing-values{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:36px;margin-top:36px;padding-top:34px;display:grid}.landing-values>div{gap:10px;display:grid}.value-number{color:var(--primary);letter-spacing:.08em;font-size:12px;font-weight:800}.landing-values strong{color:var(--ink);font-size:18px}.landing-values p{max-width:280px;color:var(--ink-muted);margin:0;font-size:14px;line-height:1.6}.auth-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;max-width:470px;margin:28px auto;padding:36px;box-shadow:0 16px 42px #1e3d5b12}.auth-card:before{color:var(--primary);letter-spacing:.12em;content:"TRIPTOGETHER";margin-bottom:24px;font-size:12px;font-weight:800;display:block}.auth-card h1{font-size:32px}.auth-form,.trip-form,.itinerary-form,.expense-form{gap:18px;display:grid}.auth-form{margin-top:26px}.password-input{position:relative}.password-input input{padding-right:66px}.password-input button{color:var(--primary-strong);font:inherit;background:0 0;border:0;padding:5px 7px;font-size:12px;font-weight:750;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-input button:hover{color:var(--primary-hover)}.password-input button:focus-visible{outline:2px solid var(--focus);border-radius:4px}.field{gap:7px;display:grid}.field label,.invite-form>label{color:var(--ink);font-size:13px;font-weight:700}.field input,.inline-form input,.itinerary-form textarea,.expense-form select{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:44px;color:var(--ink);font:inherit;border-radius:9px;padding:10px 12px;transition:border .16s,box-shadow .16s}.itinerary-form textarea{resize:vertical;min-height:100px}.field input:focus,.inline-form input:focus,.itinerary-form textarea:focus,.expense-form select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:0}.field input[aria-invalid=true]{border-color:var(--danger)}.field-error,.form-error{color:var(--danger);margin:0;font-size:13px;line-height:1.5}.form-error,.inline-error{border:1px solid var(--danger-line);background:var(--danger-soft);border-radius:10px;padding:13px 15px}.success-message{color:var(--success);font-size:14px;font-weight:650}.auth-switch{color:var(--ink-muted);margin:24px 0 0;font-size:14px}.auth-switch a,.text-link,.back-link{color:var(--primary-strong);font-weight:700}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px;display:flex}.page-heading .intro-copy{max-width:600px;margin:14px 0 0}.trip-editor{border:1px solid var(--border);background:var(--surface);border-radius:14px;max-width:720px;margin:24px 0 36px;padding:28px}.trip-editor h1,.trip-editor h2{margin-bottom:22px;font-size:26px}.trip-date-grid,.itinerary-form-grid,.expense-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.itinerary-form-grid .field:last-child{grid-column:1/-1}.trip-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.trip-row{border:1px solid var(--border);background:var(--surface);min-height:152px;color:var(--ink);border-radius:14px;grid-template-columns:48px 1fr auto;align-items:center;gap:16px;padding:22px;text-decoration:none;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid}.trip-row:hover{border-color:#b7d7f4;transform:translateY(-2px);box-shadow:0 14px 28px #1e4e781a}.destination-mark{background:var(--primary-light);width:48px;height:48px;color:var(--primary-strong);border-radius:12px;place-items:center;font-size:20px;font-weight:800;display:grid}.trip-row-content strong,.trip-meta{display:block}.trip-row-content strong{letter-spacing:-.03em;margin-top:7px;font-size:22px}.trip-meta{color:var(--ink-muted);font-size:13px}.trip-card-meta{color:var(--ink-muted);text-align:right;justify-items:end;gap:10px;font-size:13px;display:grid}.status-badge{background:var(--primary-light);width:fit-content;min-height:24px;color:var(--primary-strong);text-transform:capitalize;border-radius:999px;align-items:center;padding:4px 9px;font-size:11px;font-weight:800;display:inline-flex}.status-pending{background:var(--warning-soft);color:var(--warning)}.status-rejected{background:var(--danger-soft);color:var(--danger)}.empty-state{text-align:center;background:#fafdff;border:1px dashed #adcbe7;border-radius:14px;padding:56px 24px}.empty-state h2{margin-bottom:10px}.empty-state p{max-width:420px;color:var(--ink-muted);margin:0 auto 20px}.collab-section{border-top:1px solid var(--border);margin-top:36px;padding-top:30px}.section-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.section-heading h2{margin:0}.back-link{margin-bottom:22px;text-decoration:none;display:inline-block}.trip-hero-meta{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;font-size:15px;display:flex}.trip-hero-meta .status-badge{margin-left:6px}.workspace-tabs{border-bottom:1px solid var(--border);gap:8px;margin-top:34px;display:flex;overflow-x:auto}.workspace-tabs button{color:var(--ink-muted);font:inherit;background:0 0;border:0;border-bottom:3px solid #0000;flex:none;padding:13px 13px 11px;font-size:14px;font-weight:750}.workspace-tabs button:hover{color:var(--primary-strong)}.workspace-tabs button.active{border-bottom-color:var(--primary);color:var(--primary-strong)}.workspace-panel{min-height:360px}.workspace-panel>.collab-section{border-top:0}.detail-overview{padding:36px 0}.detail-overview h2{margin-bottom:26px}.overview-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;display:grid}.overview-facts>div{background:var(--surface-secondary);border-radius:12px;padding:18px}.overview-facts dt{color:var(--ink-muted);margin-bottom:8px;font-size:12px;font-weight:700}.overview-facts dd{color:var(--ink);margin:0;font-weight:750}.member-list,.invitation-list,.itinerary-list,.expense-list,.balance-list,.settlement-list{gap:10px;display:grid}.member-row,.invitation-row,.itinerary-row,.expense-row,.balance-row,.settlement-row{border:1px solid var(--border);background:var(--surface);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.member-row>div,.invitation-row>div,.itinerary-row>div,.expense-row>div,.balance-row>div{min-width:0}.member-row strong:before{background:var(--primary-light);width:30px;height:30px;color:var(--primary-strong);content:attr(data-initial);border-radius:50%;place-items:center;margin-right:10px;display:inline-grid}.invite-form{gap:9px;max-width:680px;margin-top:24px;display:grid}.inline-form{gap:10px;display:flex}.itinerary-day{margin-top:26px;padding-left:28px;position:relative}.itinerary-day:before{content:"";background:#b9d8ef;width:1px;position:absolute;top:45px;bottom:0;left:7px}.itinerary-day h3{color:var(--primary-strong);margin-bottom:14px}.itinerary-row{background:0 0;border:0;border-radius:0;align-items:flex-start;padding:13px 0 13px 16px;position:relative}.itinerary-row:before{background:var(--primary);content:"";border:3px solid #e9f5ff;border-radius:50%;width:13px;height:13px;position:absolute;top:24px;left:-25px}.itinerary-row+.itinerary-row{border-top:1px solid var(--border)}.itinerary-row .actions{gap:7px}.icon-button{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--ink-muted);border-radius:8px;font-size:16px}.icon-button:hover{color:var(--primary-strong);border-color:var(--primary)}.participant-fieldset{border:1px solid var(--border);border-radius:10px;margin:0;padding:14px}.participant-fieldset legend{padding:0 6px;font-size:13px;font-weight:700}.participant-list{flex-wrap:wrap;gap:10px 16px;display:flex}.participant-list label{align-items:center;gap:7px;font-size:14px;display:inline-flex}.split-methods{flex-wrap:wrap;gap:8px 16px;margin-bottom:8px;display:flex}.split-methods label{align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.split-hint{color:var(--ink-muted);margin:0 0 12px;font-size:13px}.split-total{margin:12px 0 0;font-weight:600}.participant{align-items:center;gap:8px;display:inline-flex}.split-input{border:1px solid var(--border-strong);background:var(--surface);width:64px;min-height:36px;color:var(--ink);font:inherit;border-radius:8px;padding:6px 8px;font-size:14px}.split-input-amount{width:96px}.split-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:0}.settlement-summary{color:var(--ink-muted);margin:-4px 0 12px;font-size:14px}.expense-amount{text-align:right}.expense-amount>strong{color:var(--ink);margin-bottom:10px;font-size:18px;display:block}.balance-value{white-space:nowrap;font-weight:800}.balance-positive{color:var(--success)}.balance-negative{color:var(--danger)}.balance-zero{color:var(--ink-muted)}.subsection-title{margin:30px 0 12px}.settlement-row{flex-wrap:wrap;justify-content:flex-start}.settlement-action{margin-left:auto}.finance-section{margin-top:32px}.site-footer{border-top:1px solid var(--border);color:var(--ink-muted);justify-content:space-between;gap:16px;padding-block:24px;font-size:13px;display:flex}.not-found{text-align:center;margin:80px auto}@media (width<=800px){.site-header,.site-footer,.page-content{width:min(100% - 40px,680px)}.landing{grid-template-columns:1fr;gap:36px;min-height:auto}.landing-preview{max-width:600px}.trip-list,.overview-facts{grid-template-columns:1fr}.page-heading{flex-direction:column;align-items:flex-start}.trip-card-meta{text-align:left;justify-items:start}.trip-row{grid-template-columns:48px 1fr}.trip-card-meta{grid-column:2}.user-chip{display:none}}@media (width<=520px){.site-header,.site-footer,.page-content{width:calc(100% - 32px)}.site-header{gap:6px;min-height:68px}.header-nav{gap:2px}.header-nav a,.nav-button{padding-inline:6px}.page-content{padding-block:32px 48px}h1{font-size:36px}.landing h1{font-size:46px}.landing-values{grid-template-columns:1fr;gap:24px}.landing-preview{padding:22px}.trip-editor,.auth-card{margin-inline:0;padding:22px 18px}.trip-date-grid,.itinerary-form-grid,.expense-form-grid{grid-template-columns:1fr}.itinerary-form-grid .field:last-child{grid-column:auto}.inline-form,.member-row,.invitation-row,.expense-row,.balance-row{flex-direction:column;align-items:stretch}.inline-form .primary-button{width:100%}.expense-amount{text-align:left}.trip-hero-meta{flex-direction:column;align-items:flex-start;gap:5px}.trip-hero-meta>span:nth-child(2n){display:none}.workspace-tabs{margin-inline:-4px}.site-footer{flex-direction:column;align-items:flex-start}.actions{gap:8px}}.breathing-bg{isolation:isolate;background:#f7fbfd;position:relative}.breathing-bg:before{z-index:-1;content:"";will-change:transform, opacity;background:radial-gradient(38% 34% at 22% 24%,#bfe3f7f2,#0000 70%),radial-gradient(34% 30% at 82% 18%,#cdeee8f2,#0000 70%),radial-gradient(42% 38% at 74% 86%,#fae4c4d9,#0000 70%),radial-gradient(32% 32% at 12% 88%,#ffd8cc99,#0000 70%);animation:18s ease-in-out infinite alternate breathe;position:fixed;inset:-25%}@keyframes breathe{0%{opacity:.82;transform:translate(0,0)scale(1)}50%{opacity:1;transform:translate(2.5%,-2%)scale(1.07)}to{opacity:.9;transform:translate(-2%,1.5%)scale(1.03)}}@media (prefers-reduced-motion:reduce){.breathing-bg:before{animation:none}}.app-shell.breathing-bg .site-header{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7fbfdb8;border-bottom-color:#bfd0de80;width:100%;padding-inline:max(32px,50% - 600px);position:sticky;top:0}.app-shell.breathing-bg .site-footer{border-top-color:#bfd0de80}.landing h1 em{color:var(--sea)}.landing-preview{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffd1;border:1px solid #fffc;border-radius:22px;margin:0;padding:22px;position:relative;transform:rotate(1.2deg);box-shadow:0 30px 60px #225b9129}.preview-top,.preview-finance{justify-content:space-between;align-items:center;gap:12px;display:flex}.preview-kicker{color:var(--sea);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800}.preview-stamp{border:1.5px dashed var(--sunset);color:var(--sunset);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800;transform:rotate(-4deg)}.preview-map{background:#eef6f1;border-radius:14px;width:100%;height:auto;margin:14px 0;display:block}.preview-sea{fill:#cfe8f6}.preview-river{fill:none;stroke:#d7ecf8;stroke-width:9px}.preview-route{fill:none;stroke:#17233a;stroke-dasharray:6 6;stroke-width:2.5px}.preview-pin circle{stroke:#fff;stroke-width:2.5px}.preview-pin text{fill:#fff;text-anchor:middle;font-size:11px;font-weight:800}.preview-days{flex-wrap:wrap;gap:8px;display:flex}.preview-days span{background:var(--surface-secondary);color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:650;display:inline-flex}.preview-days strong{color:#fff;background:#17233a;border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;display:inline-grid}.preview-finance{border-top:1px dashed var(--border-strong);color:var(--ink-muted);margin-top:16px;padding-top:14px;font-size:13px}.preview-finance span{gap:3px;display:grid}.preview-finance strong{color:var(--ink);font-size:19px}.preview-finance span:last-child strong{color:var(--success)}.value-number{color:var(--sea)}.auth-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffdb;border-color:#fffc;box-shadow:0 26px 60px #225b9124}.auth-card:before{color:var(--sea)}@media (width<=800px){.landing-preview{transform:none}.app-shell.breathing-bg .site-header{padding-inline:20px}}@media (width<=520px){.app-shell.breathing-bg .site-header{padding-inline:16px}}:root{color:#17233a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#17233a;--ink-muted:#68748a;--border:#e0e8ee;--border-strong:#bfd0de;--surface:#fff;--surface-secondary:#f4f9fd;--primary:#3a91dc;--primary-hover:#217bc5;--primary-strong:#1f6fad;--primary-light:#e5f3ff;--focus:#8bc6f2;--sand:#e7b86e;--success:#168063;--warning:#9b6513;--warning-soft:#fff7e6;--danger:#b8434e;--danger-soft:#fff1f2;--danger-line:#f4c2c7;--sea:#0f766e;--sea-light:#d9f2ee;--sky:#bfe3f7;--sunset:#e4572e;background:#fdfcf9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#fdfcf9;min-width:320px;min-height:100vh;margin:0}button,a{font:inherit}button{cursor:pointer}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
