:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;--background:#020617;--surface:#081221;--surface-raised:#0d1a2b;--surface-soft:#102237;--text:#f8fafc;--muted:#9aabba;--border:#24415a;--primary:#34d6c4;--primary-dark:#092d2d;--accent:#f2a54a;--danger:#f87171;--focus:#f7c873;--radius:18px;font-family:Fira Sans,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--background)}body{min-width:320px;min-height:100vh;color:var(--text);background:radial-gradient(circle at 78% 18%,#19788226,#0000 26rem),linear-gradient(145deg,#020617 0%,#06111f 45%,#020617 100%);margin:0;font-size:16px;line-height:1.5}button,input,select{font:inherit}button,select{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:1rem;font-size:clamp(2rem,4vw,3.4rem);line-height:1.05}h2{margin-bottom:.75rem;font-size:1.15rem;line-height:1.3}h3{margin:.25rem 0;font-size:1rem}.muted{color:var(--muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow{color:var(--primary);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.6rem;font-size:.75rem;font-weight:700}.icon{flex:none;width:22px;height:22px}.skip-link{z-index:100;color:#041312;background:var(--focus);border-radius:8px;padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.app-shell{min-height:100vh}.navigation{z-index:10;border-right:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#030c18eb;flex-direction:column;width:244px;padding:28px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{letter-spacing:-.02em;align-items:center;gap:12px;margin:0 12px 38px;font-size:1.15rem;font-weight:750;display:flex}.brand img{width:38px;height:38px}.nav-items{gap:6px;display:grid}.navigation button{width:100%;min-height:48px;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:13px;padding:0 14px;transition:color .18s,background .18s;display:flex}.navigation button:hover{color:var(--text);background:var(--surface-soft)}.navigation button.active{color:var(--primary);background:#34d6c41c}.navigation .logout{margin-top:auto}.content{min-height:100vh;margin-left:244px;padding:44px clamp(24px,4vw,68px) 70px}.page{max-width:1240px;margin:0 auto}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;min-height:90px;margin-bottom:24px;display:flex}.page-header h1{margin-bottom:0}.card{border:1px solid var(--border);border-radius:var(--radius);background:#0b192ae6;padding:24px}.button{border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:0 18px;font-weight:750;transition:transform .15s,background .18s,border-color .18s;display:inline-flex}.button:not(:disabled):active{transform:translateY(1px)}.button.primary{color:#041312;background:var(--primary)}.button.primary:hover:not(:disabled){background:#65e5d7}.button.secondary{color:var(--text);border-color:var(--border);background:0 0}.button.secondary:hover{background:var(--surface-soft)}.button.full{width:100%}.companion-card{background:linear-gradient(120deg,#0a192b 0%,#082037 55%,#062437 100%);border:1px solid #2d566e;border-radius:26px;grid-template-columns:minmax(320px,.85fr) minmax(440px,1.15fr);align-items:center;min-height:390px;margin-bottom:18px;display:grid;position:relative;overflow:hidden}.companion-card:before{content:"";pointer-events:none;background-image:linear-gradient(#4daab30b 1px,#0000 1px),linear-gradient(90deg,#4daab30b 1px,#0000 1px);background-size:38px 38px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 15%,#000);mask-image:linear-gradient(90deg,#0000 15%,#000)}.companion-copy{z-index:2;padding:clamp(30px,5vw,66px) 0 clamp(30px,5vw,66px) clamp(30px,5vw,66px);position:relative}.companion-copy h1{max-width:680px}.companion-copy>p:not(.eyebrow){color:#bacbd7;max-width:560px;margin-bottom:25px}.perch-scene{align-self:stretch;min-height:350px;position:relative;overflow:hidden}.perch-scene.compact{width:270px;min-height:190px;margin:-25px auto -8px}.perch{z-index:2;filter:drop-shadow(0 24px 36px #00000057);width:min(94%,590px);animation:6s ease-in-out infinite float;position:absolute;top:49%;left:48%;transform:translate(-50%,-50%)}.compact .perch{width:250px}.perch .body{fill:#c57a32;stroke:#f2b85f;stroke-width:4px}.perch .tail,.perch .fin{fill:#9c5628;stroke:#e7a452;stroke-width:4px;stroke-linejoin:round}.perch .stripe{fill:none;stroke:#62351f;stroke-width:13px;opacity:.74}.perch .gill,.perch .brow,.perch .mouth,.perch .visor{fill:none;stroke:#372419;stroke-width:5px;stroke-linecap:round}.perch .visor{stroke:#66e2dc;stroke-width:3px}.perch .eye-ring{fill:#f5d58c}.perch .eye{fill:#07111f}.perch .visor-dot{fill:#66e2dc}.sonar{border:1px solid #3fddd447;border-radius:50%;position:absolute}.sonar-one{width:330px;height:330px;top:10px;left:25%}.sonar-two{width:230px;height:230px;top:60px;left:calc(25% + 50px)}.instrument{z-index:3;min-width:100px;color:var(--primary);letter-spacing:.12em;background:#041622b8;border:1px solid #44e0d666;gap:2px;padding:10px 14px;font-family:ui-monospace,monospace;font-size:.65rem;display:grid;position:absolute;bottom:28px;right:28px}.instrument strong{color:var(--text);font-size:1rem}.compact .instrument,.compact .sonar{display:none}@keyframes float{0%,to{transform:translate(-50%,-49%)}50%{transform:translate(-50%,-53%)}}.dashboard-grid{grid-template-columns:1.35fr .65fr;gap:18px;display:grid}.dialogue{margin-bottom:18px}.connection{min-height:30px;color:var(--primary);background:#34d6c414;border:1px solid #34d6c43d;border-radius:999px;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.connection.pending{color:var(--accent);background:#f2a54a14;border-color:#f2a54a47}.messages{scrollbar-color:var(--border) transparent;gap:10px;max-height:330px;margin:16px 0;padding-right:6px;display:grid;overflow-y:auto}.message{border-radius:14px;max-width:min(82%,680px);padding:12px 15px}.message.assistant{background:var(--surface-soft);border:1px solid var(--border);border-bottom-left-radius:4px;justify-self:start}.message.user{background:var(--primary-dark);border:1px solid #34d6c440;border-bottom-right-radius:4px;justify-self:end}.message>span{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;font-size:.68rem;font-weight:800;display:block}.message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.message small{color:var(--accent);margin-top:5px;display:block}.dialogue-empty{margin:10px 0}.dialogue-form{grid-template-columns:1fr auto;align-items:end;gap:10px;display:grid}.dialogue-form textarea{resize:vertical;width:100%;min-height:54px;max-height:160px;color:var(--text);border:1px solid var(--border);font:inherit;background:#061321;border-radius:12px;padding:13px 15px;line-height:1.4}.dialogue-form textarea:hover{border-color:#3a6580}.dialogue-form textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.send-button{min-width:54px;min-height:54px}.nearby-card{grid-row:span 2}.section-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.saving{color:var(--primary);font-size:.82rem}.scale{grid-template-columns:repeat(10,1fr);gap:7px;margin-top:22px;display:grid}.scale button{min-width:44px;min-height:46px;color:var(--text);border:1px solid var(--border);background:#0b1b2d;border-radius:10px;transition:background .16s,border-color .16s,color .16s}.scale button:hover,.scale button.selected{color:#041312;background:var(--primary);border-color:var(--primary)}.scale-anchors{color:var(--muted);justify-content:space-between;margin-top:8px;font-size:.72rem;display:flex}.debt-card strong{color:var(--accent);margin:.4rem 0 .6rem;font-size:clamp(2rem,4vw,3.2rem);line-height:1;display:block}.debt-card p:last-child{margin-bottom:0}.task-row{border-bottom:1px solid #24415ab3;justify-content:space-between;align-items:center;gap:16px;min-height:76px;padding:15px 0;display:flex}.task-row:last-child{border-bottom:0}.task-row p{margin-bottom:0;font-size:.82rem}.status{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.64rem;font-weight:800;display:inline-block}.status.in_progress{color:var(--primary)}.status.completed{color:#7dd3a7}.icon-button{min-width:46px;min-height:46px;color:var(--primary);background:#34d6c417;border:1px solid #34d6c447;border-radius:12px;flex:none;place-items:center;transition:background .18s;display:grid}.icon-button:hover{background:#34d6c42e}.empty{margin:20px 0}.observation-card p:last-child{margin-bottom:0}.notification-card .button{width:100%;margin-top:6px}.notification-card p:not(.eyebrow){min-height:48px}.task-form{margin-bottom:18px}.form-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.field{gap:7px;margin-bottom:18px;display:grid}.field.wide{grid-column:1/-1}label{color:#dce8ef;font-size:.87rem;font-weight:650}input,select{width:100%;min-height:46px;color:var(--text);border:1px solid var(--border);background:#061321;border-radius:10px;padding:0 13px}input:hover,select:hover{border-color:#3a6580}.check{cursor:pointer;align-items:center;gap:10px;width:fit-content;min-height:44px;display:flex}.check input{width:20px;min-height:20px;accent-color:var(--primary)}.amount-field{max-width:260px;margin-top:10px}.form-actions{justify-content:flex-end;gap:10px;margin-top:15px;display:flex}.form-error{color:#fecaca;font-size:.86rem}.task-list{padding-top:8px;padding-bottom:8px}.stats-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.metric span{color:var(--muted);margin-bottom:10px;font-size:.8rem;display:block}.metric strong{font-size:clamp(1.3rem,2.4vw,2rem)}.two-columns{grid-template-columns:.75fr 1.25fr;align-items:start;gap:18px;display:grid}.payment-form h2,.ledger h2{font-size:1.4rem}.payment-form .button{width:100%;margin-top:6px}.ledger-row{border-bottom:1px solid #24415ab3;justify-content:space-between;align-items:center;gap:18px;min-height:68px;display:flex}.ledger-row:last-child{border-bottom:0}.ledger-row strong,.ledger-row time{display:block}.ledger-row time{color:var(--muted);margin-top:2px;font-size:.72rem}.ledger-row>span{color:var(--accent);font-family:ui-monospace,monospace;font-weight:700}.ledger-row>span.negative{color:var(--primary)}.ledger-row>span.shadow{color:var(--muted)}.empty-lab{text-align:center;align-content:center;place-items:center;min-height:320px;display:grid}.empty-lab .icon{width:54px;height:54px;color:var(--primary);margin-bottom:20px}.empty-lab p{max-width:560px}.analysis-list,.analysis-card{gap:18px;display:grid}.analysis-card>header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.analysis-card h2{max-width:800px;margin:10px 0 0;font-size:clamp(1.15rem,2.2vw,1.55rem)}.analysis-card time,.analysis-period{color:var(--muted);font-size:.8rem}.analysis-card time{white-space:nowrap}.analysis-period{margin:-6px 0 0}.analysis-kind{min-height:28px;color:var(--primary);letter-spacing:.08em;text-transform:uppercase;background:#34d6c414;border:1px solid #34d6c43d;border-radius:999px;align-items:center;padding:3px 9px;font-size:.68rem;font-weight:800;display:inline-flex}.analysis-kind.weekly{color:var(--accent);background:#f2a54a14;border-color:#f2a54a47}.analysis-card section h3{margin-bottom:8px}.analysis-card section ul{margin:0;padding-left:22px}.analysis-card section li+li{margin-top:7px}.analysis-card details{border-top:1px solid #24415ab3}.analysis-card summary{width:fit-content;min-height:44px;color:var(--primary);cursor:pointer;align-items:center;font-weight:700;display:flex}.evidence-list{gap:7px;margin:0;padding:4px 0 0;list-style:none;display:grid}.evidence-list code{color:var(--muted);overflow-wrap:anywhere;font-size:.76rem}.notice{z-index:5;color:#fee2e2;background:#3a1720;border:1px solid #7f3345;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;max-width:1240px;min-height:48px;margin:0 auto 16px;padding:10px 12px 10px 18px;display:flex;position:sticky;top:12px}.notice button{min-width:44px;min-height:44px;color:inherit;background:0 0;border:0;font-size:1.4rem}.login-shell,.loading-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--border);background:#081727f0;border-radius:24px;width:min(100%,430px);padding:25px 35px 35px}.login-card h1{font-size:2rem}.login-card form{margin-top:26px}.login-card .button{margin-top:8px}.loading-screen{color:var(--muted);align-content:center}.loading-screen img{width:64px;margin-bottom:14px}@media (width<=1100px){.companion-card{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.nearby-card{grid-row:auto}.stats-grid{grid-template-columns:repeat(2,1fr)}.two-columns{grid-template-columns:1fr}}@media (width<=900px){.navigation{width:auto;height:calc(68px + env(safe-area-inset-bottom));padding:6px 8px env(safe-area-inset-bottom);border:0;border-top:1px solid var(--border);flex-direction:row;inset:auto 0 0}.brand,.navigation .logout{display:none}.nav-items{grid-template-columns:repeat(4,1fr);gap:3px;width:100%}.navigation button{text-align:center;flex-direction:column;justify-content:center;gap:2px;min-height:56px;padding:3px;font-size:.66rem}.navigation .icon{width:21px;height:21px}.content{padding:24px 16px calc(95px + env(safe-area-inset-bottom));margin-left:0}.page-header{align-items:center;min-height:70px}.page-header h1{font-size:2.2rem}.companion-card{grid-template-columns:1fr}.companion-copy{padding:30px 24px 0}.companion-copy h1{font-size:2.15rem}.perch-scene{min-height:280px}.form-grid{grid-template-columns:1fr;gap:0}.field.wide{grid-column:auto}.stats-grid{gap:10px}.card{padding:20px}.scale{grid-template-columns:repeat(5,1fr)}.scale button{min-width:0}.scale-anchors{display:none}}@media (width<=430px){.page-header{align-items:flex-start}.page-header .button{min-width:46px;padding:0 12px}.page-header .button .icon+*{display:none}.stats-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions .button{width:100%}.login-card{padding:20px 22px 28px}.analysis-card>header{gap:10px;display:grid}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.perch{animation:none}}
