:root{--bg:#070a12;--bg-raised:rgba(255,255,255,0.05);--bg-card:rgba(255,255,255,0.06);--glass-blur:blur(28px) saturate(170%);--border:rgba(255,255,255,0.11);--highlight:rgba(255,255,255,0.16);--field:rgba(0,0,0,0.28);--text:#f1f5fb;--text-muted:rgba(225,233,245,0.62);--accent:#7cc4ff;--accent-strong:#4ea4ff;--accent-grad:linear-gradient(135deg,#8ad3ff,#5b8cff 55%,#9d6bff);--accent-text:#050b18;--good:#5be3a3;--warn:#ffc861;--bad:#ff7a85;--radius:22px;--radius-sm:12px;--shadow:inset 0 1px 0 var(--highlight),0 20px 50px rgba(0,0,0,0.35);--aurora:radial-gradient(60vw 50vh at 8% 0%,rgba(84,120,255,0.45),transparent 60%),radial-gradient(50vw 45vh at 95% 10%,rgba(170,90,255,0.35),transparent 60%),radial-gradient(60vw 55vh at 70% 100%,rgba(0,200,190,0.28),transparent 60%),radial-gradient(40vw 40vh at 15% 85%,rgba(255,120,160,0.18),transparent 60%);--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",Roboto,sans-serif;color-scheme:dark}@media (prefers-color-scheme:light){:root{--bg:#eef2fb;--bg-raised:rgba(255,255,255,0.55);--bg-card:rgba(255,255,255,0.58);--border:rgba(255,255,255,0.75);--highlight:rgba(255,255,255,0.9);--field:rgba(255,255,255,0.6);--text:#0d1526;--text-muted:rgba(20,32,56,0.6);--accent:#2f6bff;--accent-strong:#2257e0;--accent-text:#ffffff;--good:#0e9f62;--warn:#b97800;--bad:#d63848;--shadow:inset 0 1px 0 var(--highlight),0 18px 40px rgba(40,60,120,0.14);--aurora:radial-gradient(60vw 50vh at 8% 0%,rgba(110,150,255,0.55),transparent 60%),radial-gradient(50vw 45vh at 95% 10%,rgba(200,140,255,0.45),transparent 60%),radial-gradient(60vw 55vh at 70% 100%,rgba(80,220,210,0.4),transparent 60%),radial-gradient(40vw 40vh at 15% 85%,rgba(255,160,190,0.35),transparent 60%);color-scheme:light}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;min-height:100dvh;background-image:var(--aurora);background-attachment:fixed}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.6rem;font-weight:700;letter-spacing:-.01em}h2{font-size:1rem;font-weight:600}p{margin:0}.muted{color:var(--text-muted)}.small{font-size:.85rem}.stack{flex-direction:column}.row,.stack{display:flex;gap:12px}.row{align-items:center}.spread{justify-content:space-between}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:50px;padding:0 18px;border-radius:14px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.btn:hover{border-color:var(--accent);text-decoration:none}.btn-primary{background:var(--accent-grad);border-color:transparent;color:#fff;box-shadow:0 10px 30px rgba(91,140,255,.45),inset 0 1px 0 rgba(255,255,255,.35)}.btn-primary:hover{filter:brightness(1.08);border-color:transparent}.btn-ghost{background:transparent}.btn:disabled{opacity:.6;cursor:wait}label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:6px}input:not([type]),input[type=date],input[type=email],input[type=password],input[type=text],input[type=time],input[type=url]{width:100%;min-height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--border);background:var(--field);color:var(--text);font:inherit}input:focus{outline:2px solid var(--accent);outline-offset:1px}.error{color:var(--bad)}.error,.notice{font-size:.9rem}.notice{background:color-mix(in srgb,var(--warn) 14%,transparent);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);padding:10px 12px;border-radius:var(--radius-sm)}.divider{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:.85rem}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border);border-radius:30px;padding:36px 24px;box-shadow:var(--shadow);gap:20px}.auth-card,.brand{display:flex;flex-direction:column}.brand{align-items:center;gap:10px;text-align:center}.logo{width:64px;height:64px;border-radius:18px;background:var(--accent-grad);display:grid;place-items:center;color:#fff;font-weight:800;font-size:28px;box-shadow:0 12px 34px rgba(91,140,255,.5),inset 0 1px 0 rgba(255,255,255,.4)}.codes{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;font-family:ui-monospace,Menlo,monospace}.codes span{background:var(--field);border:1px solid var(--border);border-radius:8px;padding:8px;text-align:center}.app{min-height:100dvh;display:grid;grid-template-columns:240px 1fr}.sidebar{border-right:1px solid var(--border);background:var(--bg-raised);box-shadow:inset -1px 0 0 rgba(255,255,255,.03);padding:20px 14px;display:flex;flex-direction:column;gap:4px;position:-webkit-sticky;position:sticky;top:0;height:100dvh}.sidebar .brand-row{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;font-weight:700;letter-spacing:.06em}.sidebar .brand-row .logo{width:32px;height:32px;border-radius:9px;font-size:15px;box-shadow:none}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--text-muted);font-weight:500}.nav-item:hover{background:var(--bg-card);color:var(--text);text-decoration:none}.nav-item.active{background:rgba(255,255,255,.1);color:var(--text);box-shadow:inset 0 1px 0 var(--highlight),0 0 0 1px var(--border)}.nav-item.active svg{color:var(--accent)}.nav-item svg{width:20px;height:20px;flex:none}.sidebar .spacer{flex:1 1}.main{padding:28px 32px 48px;max-width:1200px;width:100%}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.lock-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-muted);font-size:.85rem;white-space:nowrap}.lock-pill button{all:unset;cursor:pointer;color:var(--accent);font-weight:600}.grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:16px;gap:16px}.auth-card,.card,.lock-pill,.sidebar,.tabbar{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;min-width:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.card-head .muted{font-size:.85rem}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.big-number{font-size:2.1rem;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border)}.list li:first-child{border-top:0;padding-top:0}.list .title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list .sub{font-size:.8rem;color:var(--text-muted)}.amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.neg{color:var(--bad)}.pos{color:var(--good)}.badge{font-size:.75rem;padding:3px 9px;border-radius:999px;background:var(--field);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap}.badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.badge.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}.badge.soon{font-style:normal}.bar{height:8px;border-radius:99px;background:var(--field);overflow:hidden;border:1px solid var(--border)}.bar>span{display:block;height:100%;background:var(--accent-grad);border-radius:99px}.ask{display:flex;gap:10px;align-items:center;background:var(--field);border:1px solid var(--border);border-radius:14px;padding:6px 6px 6px 14px}.ask input{border:0;background:transparent;min-height:40px;padding:0}.ask input:focus{outline:none}.ask .btn{width:auto;min-height:40px}.weather{display:flex;align-items:center;gap:14px}.weather .temp{font-size:2.4rem;font-weight:700}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{font-size:.8rem;padding:6px 10px;border-radius:999px;border:1px solid var(--border);color:var(--text-muted);background:var(--field)}.tabbar{display:none;--tabbar-bg:rgba(16,20,34,0.84)}@media (prefers-color-scheme:light){.tabbar{--tabbar-bg:rgba(255,255,255,0.86)}}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{display:none}.main{padding:20px 16px 120px}.grid{grid-template-columns:1fr;gap:12px}.grid>*{grid-column:auto}.topbar{margin-bottom:16px}.topbar h1{font-size:1.35rem}.lock-pill{padding:6px 10px;font-size:.8rem}.lock-pill .lock-label{display:none}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:10;justify-content:space-around;background:var(--tabbar-bg);-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--border);box-shadow:var(--shadow);left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));border-radius:26px;padding:8px}.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.7rem;color:var(--text-muted);padding:4px 10px}.tabbar a.active{color:var(--accent)}.tabbar svg{width:22px;height:22px}}.main{position:relative}.lock-float{position:absolute;top:28px;right:32px;z-index:5}.topbar{padding-right:190px;min-height:52px}.empty{display:flex;flex-direction:column;gap:6px;padding:6px 0}.empty p{color:var(--text-muted);font-size:.9rem}.page-head{margin-bottom:20px}code{font-family:ui-monospace,Menlo,monospace;font-size:.9em}@media (max-width:900px){.lock-float{top:20px;right:16px}.topbar{padding-right:120px}}.segmented{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--field);border:1px solid var(--border)}.segmented a{padding:7px 14px;border-radius:999px;color:var(--text-muted);font-size:.9rem;font-weight:500}.segmented a:hover{text-decoration:none;color:var(--text)}.segmented a.active{background:var(--bg-card);color:var(--text);box-shadow:inset 0 1px 0 var(--highlight),0 0 0 1px var(--border)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.toolbar .btn{width:auto;min-height:40px}.mail-list{list-style:none;margin:0;padding:0}.mail-list li+li{border-top:1px solid var(--border)}.mail-item{display:grid;grid-template-columns:10px 1fr auto;grid-gap:4px 12px;gap:4px 12px;padding:12px 4px;color:var(--text);align-items:start}.mail-item:hover{text-decoration:none;background:rgba(255,255,255,.03);border-radius:12px}.mail-item .dot{width:8px;height:8px;border-radius:50%;margin-top:7px;background:transparent}.mail-item.unread .dot{background:var(--accent)}.mail-item .from{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-item.unread .subj{font-weight:600}.mail-item .snip,.mail-item .subj{grid-column:2/4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-item .snip{color:var(--text-muted);font-size:.88rem}.mail-item .meta{display:flex;gap:8px;align-items:center;color:var(--text-muted);font-size:.8rem;white-space:nowrap}.mail-body{white-space:pre-wrap;word-break:break-word;font-size:.95rem;line-height:1.6}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.form-grid .full{grid-column:1/-1}select{width:100%;min-height:48px;padding:0 12px;border-radius:12px;border:1px solid var(--border);background:var(--field);color:var(--text);font:inherit}.list a.row-link{color:inherit;display:contents}@media (max-width:900px){.form-grid{grid-template-columns:1fr}}.cat-row{display:grid;grid-template-columns:1fr auto;grid-gap:6px 12px;gap:6px 12px;align-items:center}.cat-row .bar{grid-column:1/-1;height:6px}.bank-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:8px;gap:8px;max-height:420px;overflow-y:auto}.bank-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--field);color:var(--text);font:inherit;cursor:pointer;text-align:left}.bank-option:hover{border-color:var(--accent)}.bank-option img{width:28px;height:28px;object-fit:contain;border-radius:6px;background:#fff;flex:none}.tx-cat{font-size:.75rem}.steps,.tx-cat{color:var(--text-muted)}.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:.92rem}.steps b{color:var(--text)}.agenda{display:flex;flex-direction:column;gap:18px}.agenda-day{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 6px}.event-link,.list li.event-row{display:grid;grid-template-columns:96px 1fr;grid-gap:12px;gap:12px;align-items:baseline;justify-content:stretch}.list li.event-row.linked{display:block}.event-link{color:inherit;text-decoration:none;width:100%}.event-time{font-size:.85rem;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.cal-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px;flex:none}@media (max-width:640px){.event-link,.list li.event-row{grid-template-columns:78px 1fr}}.chip.active{color:var(--text);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent)}a.chip{text-decoration:none}input[type=search]{width:100%;min-height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--border);background:var(--field);color:var(--text);font:inherit}.doc-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;font-size:.65rem;font-weight:700;letter-spacing:.04em}.doc-icon.pdf{background:color-mix(in srgb,var(--bad) 20%,transparent);color:var(--bad)}.doc-icon.img{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.doc-match{white-space:normal!important;font-style:italic}.dropzone{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;padding:22px 14px;border:1.5px dashed var(--border);border-radius:16px;cursor:pointer;background:var(--field);position:relative}.dropzone.drag,.dropzone:hover{border-color:var(--accent)}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.doc-preview{width:100%;max-height:70vh;object-fit:contain;border-radius:12px;background:#fff1}.doc-text{white-space:pre-wrap;font-size:.85rem;color:var(--text-muted);max-height:320px;overflow:auto}textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--field);color:var(--text);font:inherit;resize:vertical}.btn-danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.chat-card{padding:0;overflow:hidden}.chat{display:flex;flex-direction:column;height:calc(100dvh - 170px);min-height:420px}.chat-log{flex:1 1;overflow-y:auto;padding:18px;gap:12px}.chat-empty,.chat-log{display:flex;flex-direction:column}.chat-empty{margin:auto;max-width:460px;align-items:center;gap:10px;text-align:center;padding:20px 0}.chat-spark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--accent-grad);color:#fff;box-shadow:0 10px 30px rgba(91,140,255,.45),inset 0 1px 0 rgba(255,255,255,.35)}.chip-btn{font:inherit;font-size:.85rem;cursor:pointer}.chip-btn:hover{color:var(--text);border-color:var(--accent)}.bubble{max-width:86%;padding:10px 14px;border-radius:18px;line-height:1.5;word-break:break-word}.bubble.user{align-self:flex-end;background:var(--accent-grad);color:#fff;border-bottom-right-radius:6px;white-space:pre-wrap;box-shadow:0 6px 18px rgba(91,140,255,.3)}.bubble.assistant{align-self:flex-start;background:var(--bg-raised);border:1px solid var(--border);border-bottom-left-radius:6px}.md{gap:8px}.md,.md ol,.md ul{display:flex;flex-direction:column}.md ol,.md ul{margin:0;padding-left:20px;gap:4px}.chat-status{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:.88rem}.typing{display:inline-flex;gap:3px}.typing i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:blink 1.2s ease-in-out infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.reauth{width:auto;align-self:flex-start}.chat-input{display:flex;gap:10px;align-items:flex-end;padding:12px;border-top:1px solid var(--border);background:var(--bg-raised)}.chat-input textarea{resize:none;min-height:46px;max-height:160px;padding:12px 14px;field-sizing:content}.chat-input .btn{width:46px;min-height:46px;padding:0;flex:none}.small-btn{width:auto;min-height:34px;padding:0 12px;font-size:.85rem;gap:6px}.conv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:320px;overflow-y:auto}.conv-list a{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px;color:var(--text)}.conv-list a:hover{background:var(--bg-raised);text-decoration:none}.conv-list li.active a{background:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 var(--highlight),0 0 0 1px var(--border)}.conv-list .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem}.conv-list .sub{font-size:.78rem;color:var(--text-muted);white-space:nowrap}@media (max-width:900px){.chat{height:calc(100dvh - 250px);min-height:360px}.bubble{max-width:92%}}