:root{--bg:#0b191e;--bg-deep:#071216;--card:#14272b;--card-alt:#192e30;--card-soft:#1a3033;--border:#315052;--ink:#f4efe0;--muted:#a3b6ad;--faint:#789188;--mint:#a5e7c5;--mint-dark:#203e38;--peach:#eeb78e;--gold:#e5cf92;--coral:#e6a18e;--blue:#90bacc;--teal:#7bc1b0;--rose:#d7a1ae;--olive:#b0bd86;--sans:'DM Sans','Segoe UI',sans-serif;--serif:'DM Serif Display',Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg-deep);color:var(--ink);font:14px/1.5 var(--sans)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--mint);outline-offset:2px}button:disabled{opacity:.55;cursor:not-allowed}[hidden]{display:none!important}.app-shell{min-height:100vh;background:radial-gradient(circle at 95% 0%,rgba(62,123,109,.16),transparent 34%),linear-gradient(145deg,#0b191d,#0a151a 48%,#0e1c20)}
.topbar{height:84px;display:flex;align-items:center;gap:30px;padding:0 clamp(18px,3.5vw,58px);border-bottom:1px solid rgba(174,221,188,.13);background:rgba(9,24,28,.96);position:sticky;top:0;z-index:40;backdrop-filter:blur(20px)}.identity{display:flex;align-items:center;gap:12px;min-width:236px}.brand-glyph{width:46px;height:46px;display:grid;place-items:center;color:var(--mint);background:#19372f;border:1px solid #436457;border-radius:50%}.brand-glyph svg{height:35px;width:35px}.identity-name strong{display:block;font-family:var(--serif);font-size:23px;line-height:1.1;font-weight:400;letter-spacing:.01em}.identity-name small{font-size:9px;font-weight:700;letter-spacing:.18em;color:var(--mint);white-space:nowrap}.primary-nav{display:flex;align-items:center;gap:26px;margin:auto}.nav-link{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:30px 0;color:#a9b6b0;font-size:12px;font-weight:700;white-space:nowrap;position:relative}.nav-link.active,.nav-link:hover{color:var(--mint)}.nav-link.active::after{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--mint);content:''}.nav-symbol{font-size:15px}.top-actions{display:flex;align-items:center;gap:14px}.mode-tag{border:1px solid #567768;color:var(--mint);padding:6px 10px;border-radius:5px;letter-spacing:.13em;font-size:9px;font-weight:800;white-space:nowrap}.account-button{border:0;background:none;color:#dfebe0;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.account-symbol{width:31px;height:31px;border:1px solid #4c7462;border-radius:50%;background:#25463d;display:grid;place-items:center;color:var(--mint);font-size:19px}.demo-notice{padding:9px 24px;text-align:center;color:#b3cabe;background:#172e2b;border-bottom:1px solid #36524a;font-size:11px;letter-spacing:.012em}.demo-notice span{color:var(--mint);padding-right:8px}.demo-notice b{color:#d4edda;letter-spacing:.07em}.main-view{width:min(1500px,calc(100% - 76px));margin:0 auto;padding:30px 0 64px;min-height:calc(100vh - 180px)}
.eyebrow{color:var(--mint);letter-spacing:.2em;font-weight:800;text-transform:uppercase;font-size:10px}.welcome{margin-bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.welcome h1{font:400 clamp(30px,3.1vw,42px)/1.05 var(--serif);margin:5px 0;color:#fff8eb}.welcome h1 em,.heading-row h2 em{font-family:var(--serif);font-weight:400;color:var(--mint)}.welcome p{margin:6px 0 0;color:var(--muted);font-size:13px}.btn{display:inline-flex;gap:9px;align-items:center;justify-content:center;padding:12px 18px;border-radius:9px;border:1px solid #4f7068;color:#d9e8dc;background:#1a3433;font-size:12px;font-weight:800;transition:transform .15s,background .15s;white-space:nowrap}.btn:hover{transform:translateY(-1px);background:#25443f}.btn.primary{background:var(--mint);border-color:var(--mint);color:#17312a}.btn.primary:hover{background:#c0f2d8}.btn.ghost{background:transparent;border-color:#49605b}.btn.danger{background:#4d292d;border-color:#84474a;color:#ffd4c7}.btn.sm{padding:9px 12px;font-size:11px}.btn.full{width:100%}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(330px,.83fr);gap:18px;align-items:stretch}.hero-card{min-height:316px;position:relative;overflow:hidden;border:1px solid #42645e;border-radius:18px;background:#112f34 url('./nightscape.svg') center center/cover no-repeat;box-shadow:0 15px 35px rgba(0,0,0,.15);display:flex;align-items:stretch}.hero-card::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,23,28,.87) 0%,rgba(8,23,28,.76) 39%,rgba(8,23,28,.28) 78%,rgba(8,23,28,.06) 100%)}.hero-content{position:relative;padding:31px 34px 29px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.hero-content .hero-label{display:flex;gap:9px;align-items:center;font-size:10px;font-weight:800;letter-spacing:.17em;color:#b3edcd;text-transform:uppercase}.hero-content .hero-label .star{font-size:19px}.hero-content h2{font:400 clamp(38px,5.2vw,68px)/1 var(--serif);letter-spacing:-.035em;margin:9px 0 4px;color:#fff6e4}.hero-content .hero-sub{font-size:12px;color:#bdd4c5}.hero-content .hero-foot{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.07em;font-weight:700;color:#e6efd8}.hero-content .hero-foot i{height:7px;width:7px;border-radius:50%;background:#9eeebc;box-shadow:0 0 13px #9eeebc}.aurora-badge{position:absolute;right:16px;top:16px;border:1px solid #9bbd9e70;background:#0b242898;color:#d5e6d8;border-radius:50px;padding:7px 10px;font-size:9px;letter-spacing:.13em;font-weight:800;backdrop-filter:blur(5px)}
.period-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:14px}.period{min-width:0;border:1px solid #345052;border-radius:13px;background:#14272b;padding:17px 18px;position:relative;overflow:hidden}.period::after{content:'✧';font-family:var(--serif);position:absolute;right:12px;top:9px;color:#547066;font-size:25px}.period span{display:block;color:var(--muted);font-size:11px}.period strong{display:block;margin:9px 0 0;font-size:clamp(17px,2.05vw,27px);font-weight:700;letter-spacing:-.035em;white-space:nowrap}.period small{color:#7da69a;font-size:10px;margin-top:4px;display:block}
.card{border:1px solid #355253;background:linear-gradient(155deg,#172b2f,#122429);border-radius:17px}.category-card{padding:23px 23px 19px;display:flex;flex-direction:column;min-height:0}.card-title-row{display:flex;justify-content:space-between;gap:10px;align-items:center}.card-kicker{color:var(--mint);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.card-title-row h2{font:400 27px/1.1 var(--serif);margin:5px 0;color:#f9f4e6}.muted-small{color:#8eaaa0;font-size:10px}.chart-wrap{display:flex;align-items:center;gap:15px;justify-content:center;flex:1;padding:13px 0 0}.donut{width:clamp(140px,14vw,202px);aspect-ratio:1;flex-shrink:0}.donut svg{width:100%;height:100%;overflow:visible}.donut-core-big{font-size:17px;fill:var(--ink);font-weight:800;font-family:var(--sans)}.donut-core-small{font-size:7.8px;fill:#a6bdb2;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.legend{display:flex;flex-direction:column;gap:9px;flex:1;min-width:0}.legend-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:7px;font-size:10px;color:#bfd0c7}.legend-dot{height:7px;width:7px;border-radius:50%}.legend-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-value{font-weight:800;color:#e6ede1;white-space:nowrap}.legend-row small{font-size:9px;font-weight:600;color:#8da599;margin-left:3px}
.section-block{margin-top:30px}.heading-row{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:16px}.heading-row h2{font:400 29px/1.1 var(--serif);margin:5px 0;color:#fff8ea}.heading-row p{color:var(--muted);font-size:12px;margin:4px 0}.list-tools{display:flex;align-items:center;gap:9px}.search-field{display:flex;align-items:center;gap:7px;border:1px solid #355453;border-radius:8px;background:#13282c;color:#98b9a5;padding:0 12px}.search-field input{width:165px;min-width:0;background:none;border:0;outline:none;color:var(--ink);padding:10px 0;font-size:12px}.search-field input::placeholder{color:#8ca79e}
.trip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.trip-card{width:100%;min-width:0;display:flex;flex-direction:column;text-align:left;border:1px solid #375451;background:linear-gradient(145deg,#1a3031,#11242a);border-radius:14px;padding:0;color:inherit;overflow:hidden;transition:transform .15s,border-color .15s,box-shadow .15s}.trip-card:hover{transform:translateY(-3px);border-color:#7ab9a2;box-shadow:0 12px 25px #0004}.trip-visual{height:115px;position:relative;background:linear-gradient(105deg,rgba(8,20,24,.28),rgba(11,24,27,.1)),url('./nightscape.svg') 70% center/cover}.trip-visual.sand{filter:hue-rotate(30deg) saturate(.85)}.trip-visual.water{filter:hue-rotate(145deg) saturate(.8)}.trip-visual.woods{filter:hue-rotate(-20deg)}.trip-visual .stamp{position:absolute;top:12px;left:14px;font-size:9px;font-weight:800;letter-spacing:.12em;background:#102d2dcd;border:1px solid #719e8170;color:#c5eacb;border-radius:5px;padding:5px 8px}.trip-visual .trip-arrow{position:absolute;right:11px;top:10px;background:#142928c9;color:#d8f4df;border:1px solid #6c94798c;border-radius:50%;height:29px;width:29px;display:grid;place-items:center}.trip-body{padding:16px 17px 17px;display:flex;flex-direction:column;gap:6px;flex:1}.trip-body strong{font:400 24px/1.15 var(--serif)}.trip-body .trip-time{font-size:11px;color:#9eb3a7}.trip-body .trip-place{font-size:11px;color:#9eb3a7;min-height:15px}.trip-bottom{border-top:1px solid #33504a;margin-top:9px;padding-top:11px;display:flex;align-items:center;justify-content:space-between;gap:8px}.trip-bottom b{font-size:20px;letter-spacing:-.025em}.trip-bottom small{font-size:10px;color:#a6bfaf}.empty-state{padding:42px;text-align:center;color:#a7bbad;background:#14272a;border:1px dashed #527166;border-radius:13px}.empty-state .empty-symbol{display:block;font-size:32px;color:var(--mint);margin-bottom:9px}.empty-state strong{display:block;color:var(--ink);font:400 24px var(--serif)}
.trip-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.back-button{display:inline-flex;align-items:center;gap:8px;color:var(--mint);background:none;border:0;font-weight:800;font-size:12px;padding:7px 0}.trip-heading-actions{display:flex;gap:8px;flex-wrap:wrap}.trip-hero{position:relative;border:1px solid #446057;border-radius:18px;min-height:234px;background:#0c2429 url('./nightscape.svg') center 56%/cover;overflow:hidden}.trip-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#091b20ea 0%,#0c2025d9 46%,#0c202552 80%,transparent)}.trip-hero-content{position:relative;padding:29px 34px;max-width:770px}.trip-hero h1{font:400 clamp(38px,4vw,58px)/1.05 var(--serif);margin:7px 0 12px}.trip-hero-info{display:flex;flex-wrap:wrap;gap:14px;color:#d4ddce;font-size:11px;font-weight:600}.trip-hero .trip-spend{font-size:32px;font-weight:800;letter-spacing:-.03em;margin-top:15px;color:#f6f1dd}.trip-hero .trip-spend small{font-size:11px;font-weight:500;color:#b6c6b5;letter-spacing:0}
.trip-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:20px;margin-top:24px}.day-section{margin-bottom:17px;border:1px solid #324e4d;border-radius:13px;background:#13272a;overflow:hidden}.day-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#1b3332;border-bottom:1px solid #32534b;gap:10px}.day-heading strong{font-size:12px}.day-heading span{font-size:13px;color:#c0d8c8;font-weight:800}.expense-list{display:flex;flex-direction:column}.expense-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto;gap:11px;align-items:center;padding:13px 15px;border-bottom:1px solid #2e4645}.expense-row:last-child{border:0}.expense-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#24443b;font-size:17px}.expense-info strong{display:block;color:#f4f5e9;font-size:12px}.expense-info span{display:block;color:#9eb7a9;font-size:10px;margin-top:3px}.expense-amount{font-weight:800;font-size:14px;white-space:nowrap}.row-actions{display:flex;gap:2px}.row-actions button{background:none;border:0;color:#98b0a5;padding:5px;border-radius:6px;font-size:14px}.row-actions button:hover{color:var(--mint);background:#28443b}.trip-side{display:flex;flex-direction:column;gap:16px}.trip-side .category-card{min-height:390px}.trip-side .chart-wrap{flex-direction:column}.trip-side .legend{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.trip-side .legend-row{grid-template-columns:8px minmax(0,1fr)}.trip-side .legend-value{grid-column:2}.insight-card{padding:18px}.insight-card h3{font:400 23px var(--serif);margin:5px 0 9px}.insight-card p{font-size:11px;color:#aabfb2;line-height:1.7;margin:0}.insight-card .accent{color:var(--mint)}
.footer{min-height:65px;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:15px clamp(18px,3.5vw,58px);border-top:1px solid #274540;color:#78988b;font-size:9px;font-weight:800;letter-spacing:.13em;flex-wrap:wrap}.footer em{color:var(--mint);font-style:normal}.footer a{color:#badbc7}
.modal-overlay{position:fixed;inset:0;z-index:100;background:#020a0ddf;backdrop-filter:blur(7px);display:grid;place-items:center;padding:16px;overflow-y:auto}.modal-dialog{width:min(520px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:linear-gradient(145deg,#1b3335,#132529);border:1px solid #5b7a6b;box-shadow:0 30px 100px #000b;border-radius:17px;padding:24px 25px 26px}.modal-dialog.wide{width:min(630px,100%)}.modal-top{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:19px}.modal-top h2{font:400 32px/1.04 var(--serif);margin:5px 0 0}.modal-close{display:grid;place-items:center;width:32px;height:32px;flex:none;border:1px solid #4a6861;background:#1b3434;border-radius:8px;color:#dce9d9;font-size:20px}.form-field{display:block;margin-bottom:14px}.form-field label{display:block;margin-bottom:6px;color:#bdd3c4;font-size:11px;font-weight:800}.form-field label .req{color:var(--peach)}.input,.select,.textarea{width:100%;border:1px solid #45645e;border-radius:9px;color:#f3f7ed;background:#102328;padding:11px 12px;outline:0;min-height:42px}.input:focus,.select:focus,.textarea:focus{border-color:#9cdbb8}.input::placeholder,.textarea::placeholder{color:#7a988e}.textarea{resize:vertical;min-height:70px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.form-note{color:#9cb1a3;font-size:11px;margin:10px 0;line-height:1.6}.manage-list{display:flex;flex-direction:column;gap:7px;max-height:350px;overflow:auto;margin:8px 0}.manage-row{border:1px solid #35524b;background:#11272a;border-radius:9px;padding:9px 11px;display:flex;justify-content:space-between;gap:10px;align-items:center}.manage-row .cat-name{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800}.manage-row .cat-name small{color:#819d90;font-size:9px;font-weight:500}.manage-row button{background:none;border:1px solid #4b635c;color:#d1dfd1;border-radius:7px;padding:6px 9px;font-size:10px}.manage-row button:hover{border-color:#b5e7c4}.cat-add{display:flex;gap:8px}.cat-add .input{flex:1}.cat-add .btn{flex:none}.auth-card{padding:36px}.auth-card .auth-mark{font-size:30px;color:var(--mint)}.auth-card h2{font:400 36px/1 var(--serif);margin:12px 0}.auth-card p{color:#aabeb2;font-size:12px}.auth-error{color:#efab9a;font-size:12px;padding:10px 0}.toast{position:fixed;bottom:20px;right:20px;background:#2c5042;color:#f1ffef;border:1px solid #8fc9a8;border-radius:9px;padding:12px 17px;box-shadow:0 15px 35px #0009;z-index:300;font-size:12px;max-width:min(430px,calc(100% - 30px))}.loading-view{display:grid;place-items:center;min-height:400px;color:#b7e1c7;font-family:var(--serif);font-size:27px}.error-box{margin:40px auto;max-width:650px;padding:24px;border:1px solid #a36d64;border-radius:15px;background:#392726;color:#ffd1c6}
@media(max-width:1180px){.topbar{gap:14px}.identity{min-width:220px}.primary-nav{gap:16px}.dashboard-grid{grid-template-columns:minmax(0,1.1fr) minmax(315px,.9fr)}.category-card{padding:18px}.chart-wrap{flex-wrap:wrap}.legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.trip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-layout{grid-template-columns:1fr 330px}}
@media(max-width:810px){.topbar{padding:0 16px;height:68px}.identity{min-width:0}.identity-name strong{font-size:20px}.brand-glyph{width:39px;height:39px}.brand-glyph svg{width:30px;height:30px}.primary-nav{display:none}.mode-tag{display:none}.top-actions{margin-left:auto}.account-button #account-name{display:none}.main-view{width:calc(100% - 30px);padding-top:20px}.dashboard-grid{grid-template-columns:1fr}.chart-wrap{flex-wrap:nowrap}.legend{display:flex;width:auto}.category-card{min-height:285px}.period-stats{gap:8px}.period{padding:12px}.period strong{font-size:clamp(15px,4.8vw,24px)}.welcome h1{font-size:34px}.trip-layout{grid-template-columns:1fr}.trip-side{grid-row:1}.trip-side .chart-wrap{flex-direction:row}.trip-side .legend{display:flex;width:auto}.trip-side .category-card{min-height:280px}.footer{padding:18px;font-size:9px}}
@media(max-width:570px){.topbar{height:65px}.identity-name strong{font-size:18px}.identity-name small{font-size:7px}.demo-notice{font-size:9px;padding:9px 15px}.main-view{width:calc(100% - 24px)}.welcome{align-items:start;gap:15px}.welcome h1{font-size:30px}.welcome p{font-size:11px}.welcome .eyebrow{font-size:9px}.welcome .btn{padding:10px 11px;font-size:10px}.hero-card{min-height:250px}.hero-content{padding:22px 20px}.hero-content h2{font-size:clamp(43px,10vw,58px)}.aurora-badge{font-size:7px;padding:5px 8px}.period-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.period{padding:11px 9px}.period span{font-size:9px;line-height:1.3;min-height:24px}.period strong{font-size:clamp(13px,4vw,20px);margin-top:7px}.period small{font-size:8px;line-height:1.2}.category-card{padding:18px}.chart-wrap{flex-direction:column}.donut{width:185px}.legend,.trip-side .legend{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.section-block{margin-top:26px}.heading-row{align-items:start;flex-direction:column}.heading-row h2{font-size:29px}.list-tools{width:100%}.search-field{flex:1}.search-field input{width:100%}.trip-grid{grid-template-columns:1fr;gap:12px}.trip-visual{height:91px}.trip-body{padding:14px}.trip-heading{flex-wrap:wrap}.trip-heading-actions{width:100%}.trip-heading-actions .btn{flex:1}.trip-hero{min-height:230px}.trip-hero-content{padding:24px 20px}.trip-hero h1{font-size:39px}.trip-side .chart-wrap{flex-direction:column}.trip-side .legend{display:grid}.trip-side .category-card{min-height:360px}.expense-row{grid-template-columns:32px minmax(0,1fr) auto;gap:8px;padding:12px}.expense-icon{width:31px;height:31px}.row-actions{grid-column:2/4;justify-content:flex-end}.expense-info strong{font-size:12px}.day-heading strong{font-size:11px}.field-grid{grid-template-columns:1fr}.modal-dialog{padding:18px}.modal-top h2{font-size:28px}.footer{justify-content:center;text-align:center}.footer span:nth-child(2){display:none}}

/* User-selected trip photos retain their original colors. */
.trip-visual.has-cover{filter:none!important;background-size:cover!important;background-position:center!important;}
