:root{--bg:#0d0f0e;--panel:#151816;--panel2:#1b1f1c;--line:#29302b;--text:#f5f1e7;--muted:#929a94;--green:#55d58c;--orange:#ff775c;--gold:#ddb85f;--blue:#76a8ff;--radius:22px;--side:242px}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font-family:"Trebuchet MS","Segoe UI",sans-serif;min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.11'/%3E%3C/svg%3E");z-index:100}.hidden{display:none!important}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:var(--side) 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--side);border-right:1px solid var(--line);padding:26px 18px;display:flex;flex-direction:column;background:rgba(13,15,14,.94);backdrop-filter:blur(18px);z-index:20}.brand{display:flex;align-items:center;gap:12px}.logo{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#f0d486,#9b772e);color:#11130f;font:700 17px Georgia,serif;box-shadow:0 0 30px rgba(221,184,95,.16)}.brand b{font:19px Georgia,serif;display:block}.brand span{color:var(--muted);font-size:10px;display:block;margin-top:4px}.sidebar nav{display:grid;gap:7px;margin-top:35px}.nav-btn{border:0;background:transparent;color:var(--muted);border-radius:13px;padding:13px;display:flex;align-items:center;gap:12px;text-align:left}.nav-btn svg{width:19px;height:19px}.nav-btn:hover{background:var(--panel);color:var(--text)}.nav-btn.active{background:rgba(221,184,95,.11);color:var(--gold)}.local-badge{margin-top:auto;border:1px solid var(--line);padding:12px;border-radius:14px;font-size:10px;color:var(--green)}main{grid-column:2;width:100%;max-width:1400px;margin:auto;padding:28px 36px 115px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:29px}header h1{margin:0;font:36px Georgia,serif;letter-spacing:-.025em}header p{color:var(--muted);font-size:12px;margin:6px 0 0}.profile{display:flex;align-items:center;gap:10px;font-size:12px}.profile i{width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 12px var(--green)}.profile b{width:39px;height:39px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font:14px Georgia,serif}.mobile-brand{display:none}.page{display:none;animation:rise .3s ease}.page.active{display:block}@keyframes rise{from{opacity:0;transform:translateY(7px)}}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.periods{display:flex;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:auto}.periods button{border:0;background:transparent;color:var(--muted);padding:9px 13px;border-radius:10px;font-size:11px;white-space:nowrap}.periods button.active{background:var(--panel2);color:var(--text)}.ghost,.primary,.danger{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:11px 15px;transition:.2s}.ghost:hover{background:var(--panel2);border-color:#465049}.primary{background:var(--gold);border-color:var(--gold);color:#11130f;font-weight:700}.primary:hover{filter:brightness(1.07);transform:translateY(-1px)}.danger{background:rgba(255,119,92,.1);border-color:rgba(255,119,92,.4);color:var(--orange)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:13px}.metric{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:21px;min-height:143px;position:relative;overflow:hidden}.metric:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-37px;top:-43px;background:currentColor;opacity:.05}.metric div{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}.metric i{font-style:normal;width:31px;height:31px;border-radius:10px;display:grid;place-items:center}.metric.income i{background:rgba(85,213,140,.1);color:var(--green)}.metric.expense i{background:rgba(255,119,92,.1);color:var(--orange)}.metric.result i{background:rgba(221,184,95,.1);color:var(--gold)}.metric strong{display:block;font:36px Georgia,serif;margin-top:20px;letter-spacing:-.04em}.metric.income strong{color:var(--green)}.metric.expense strong{color:var(--orange)}.metric.result strong{color:var(--gold)}.metric small{display:block;color:var(--muted);font-size:10px;margin-top:7px}.dashboard-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:13px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:21px;box-shadow:0 18px 50px rgba(0,0,0,.2)}.card+.card{margin-top:13px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.card h2,.card-head h2{font:22px Georgia,serif;margin:0}.card-head p,.muted{color:var(--muted);font-size:11px;line-height:1.5;margin:5px 0 0}.budget-values{display:flex;justify-content:space-between;gap:20px}.budget-values div:last-child{text-align:right}.budget-values span{display:block;color:var(--muted);font-size:10px}.budget-values strong{display:block;font:29px Georgia,serif;margin-top:5px}.budget-values div:last-child strong,.budget .card-head>b{color:var(--gold)}.track{height:9px;background:#282e2a;border-radius:10px;margin:17px 0 9px;overflow:hidden}.track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--gold),#f2d98d);border-radius:inherit;transition:.5s}.budget>small{color:var(--muted);font-size:10px}.tx-list{display:grid}.tx{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line);cursor:pointer}.tx:first-child{border-top:0}.tx-icon{width:42px;height:42px;border-radius:13px;background:var(--panel2);display:grid;place-items:center}.tx-name{font-weight:700;font-size:12px}.tx-meta{font-size:10px;color:var(--muted);margin-top:5px}.tx-amount{text-align:right;font:16px Georgia,serif}.tx-amount.income{color:var(--green)}.tx-amount.expense{color:var(--orange)}.tx-amount.transfer{color:var(--blue)}.empty{text-align:center;color:var(--muted);padding:30px;font-size:12px}.category-list{display:grid;gap:15px}.cat{display:grid;grid-template-columns:37px 1fr auto;align-items:center;gap:11px}.cat-icon{width:37px;height:37px;border-radius:12px;background:var(--panel2);display:grid;place-items:center}.cat-name{font-size:11px;display:flex;justify-content:space-between;margin-bottom:6px}.cat-bar{height:5px;background:#29302c;border-radius:6px;overflow:hidden}.cat-bar i{display:block;height:100%;background:var(--orange);border-radius:inherit}.cat>strong{font:13px Georgia,serif}.page-h2{font:27px Georgia,serif;margin:0}.filters{display:grid;grid-template-columns:1fr repeat(3,minmax(130px,180px));gap:9px;margin-bottom:13px}.filters input,.filters select,.field input,.field select,.field textarea,.voice-capture textarea{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:12px 13px;outline:none;width:100%}.filters input:focus,.filters select:focus,.field input:focus,.field select:focus,.field textarea:focus,.voice-capture textarea:focus{border-color:var(--gold)}.list-card{padding:8px 21px}.analytics-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:13px}.analytics-grid .card{margin:0}.bars{height:270px;display:flex;gap:9px;align-items:end;padding:10px 0 24px}.bar-group{height:100%;flex:1;display:flex;align-items:end;justify-content:center;gap:4px;border-bottom:1px solid var(--line);position:relative}.bar{width:28%;min-width:8px;border-radius:6px 6px 2px 2px}.bar.income{background:linear-gradient(var(--green),rgba(85,213,140,.2))}.bar.expense{background:linear-gradient(var(--orange),rgba(255,119,92,.2))}.bar-label{position:absolute;bottom:-21px;color:var(--muted);font-size:9px}.legend{display:flex;gap:12px;font-size:10px;color:var(--muted)}.legend span:before{content:"";display:inline-block;width:7px;height:7px;background:var(--green);border-radius:2px;margin-right:5px}.legend span:last-child:before{background:var(--orange)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.settings-grid .card{margin:0}.setting{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px}.setting span{font-size:12px}.setting small{display:block;color:var(--muted);margin-top:4px}.field{display:grid;gap:6px}.field>span{color:var(--muted);font-size:10px}.field textarea{min-height:70px;resize:vertical}.settings-grid .primary{margin-top:11px}.button-row{display:flex;flex-wrap:wrap;gap:8px}.upload input{display:none}.secure{color:var(--green);font-size:12px;margin-top:18px}.action-dock{position:fixed;z-index:30;left:calc(var(--side) + (100% - var(--side))/2);bottom:26px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:7px;background:rgba(21,24,22,.92);border:1px solid var(--line);border-radius:21px;backdrop-filter:blur(18px);box-shadow:0 18px 60px rgba(0,0,0,.45)}.mic{width:56px;height:56px;border:0;border-radius:17px;background:linear-gradient(145deg,#f0d486,#a77e2d);color:#111;font-size:29px}.mic.recording{animation:glow 1s infinite alternate}@keyframes glow{to{box-shadow:0 0 35px var(--orange);background:var(--orange)}}.action-dock div{padding-right:7px}.action-dock b{font-size:11px;display:block}.action-dock span{font-size:9px;color:var(--muted);display:block;margin-top:3px}.dock-add{border:0;background:var(--panel2);color:var(--muted);padding:11px;border-radius:12px}.bottom-nav{display:none}.modal-wrap{position:fixed;inset:0;z-index:80;background:rgba(2,3,2,.72);backdrop-filter:blur(8px);display:none;align-items:flex-end;justify-content:center;padding:18px}.modal-wrap.open{display:flex}.modal{width:min(100%,570px);max-height:90vh;overflow:auto;background:#171a18;border:1px solid #343b36;border-radius:27px;padding:24px;box-shadow:0 30px 100px #000;animation:sheet .25s ease}@keyframes sheet{from{opacity:0;transform:translateY(20px)}}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.modal-head h2{font:25px Georgia,serif;margin:0}.modal-head button{width:36px;height:36px;border:1px solid var(--line);background:var(--panel2);border-radius:11px}.type-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;background:#101210;border-radius:13px;padding:4px;margin-bottom:16px}.type-tabs button{border:0;background:transparent;color:var(--muted);padding:10px;border-radius:9px}.type-tabs button.active[data-type=expense]{color:var(--orange);background:rgba(255,119,92,.11)}.type-tabs button.active[data-type=income]{color:var(--green);background:rgba(85,213,140,.11)}.type-tabs button.active[data-type=transfer]{color:var(--blue);background:rgba(118,168,255,.11)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field.full{grid-column:1/-1}.modal-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;margin-top:19px}.voice-capture{text-align:center}.record{width:103px;height:103px;border-radius:32px;border:1px solid var(--gold);background:rgba(221,184,95,.1);color:var(--gold);font-size:48px}.record.recording{background:rgba(255,119,92,.12);border-color:var(--orange);color:var(--orange);animation:glow 1s infinite alternate}.voice-capture h3{font:23px Georgia,serif;margin:20px 0 7px}.voice-capture p{font-size:11px;color:var(--muted);line-height:1.5;max-width:410px;margin:0 auto 15px}.voice-capture textarea{min-height:78px;resize:vertical}.full-btn{width:100%;margin-top:9px}.recognized{padding:12px;border:1px solid var(--line);background:#101210;border-radius:12px;color:var(--muted);font-size:11px;margin-bottom:10px}.preview-row{display:flex;justify-content:space-between;gap:15px;padding:12px;background:#101210;border-radius:11px;margin-top:7px}.preview-row span{color:var(--muted);font-size:11px}.preview-row b{text-align:right;font-size:12px}.warning{margin-top:10px;padding:11px;border:1px solid rgba(255,119,92,.35);background:rgba(255,119,92,.09);color:#ffc2b6;border-radius:11px;font-size:10px;line-height:1.45}.toast{position:fixed;z-index:150;top:18px;left:50%;transform:translate(-50%,-18px);opacity:0;pointer-events:none;padding:12px 17px;background:#f4edda;color:#111;border-radius:13px;font-size:11px;box-shadow:0 15px 50px #000;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.auth-screen{position:fixed;inset:0;z-index:200;background:var(--bg);display:grid;place-items:center;padding:20px}.auth-card{text-align:center;max-width:390px}.auth-card .logo{margin:auto;width:65px;height:65px;font-size:23px}.auth-card h1{font:38px Georgia,serif;margin:20px 0 8px}.auth-card p{color:var(--muted);font-size:12px;line-height:1.6}.auth-card .primary{margin-top:12px}
@media(max-width:900px){:root{--side:0px}.shell{display:block}.sidebar,header{display:none}main{grid-column:1;padding:18px 13px 112px}.mobile-brand{display:flex;margin-bottom:20px}.metrics{grid-template-columns:1fr 1fr}.metric.result{grid-column:1/-1}.dashboard-grid,.analytics-grid,.settings-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.action-dock{left:50%;bottom:73px}.action-dock>div{display:none}.bottom-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);padding:7px 6px calc(7px + env(safe-area-inset-bottom));background:rgba(13,15,14,.94);backdrop-filter:blur(18px);border-top:1px solid var(--line)}.bottom-nav .nav-btn{display:grid;place-items:center;gap:3px;padding:5px;font-size:8px}.bottom-nav .nav-btn svg{width:18px}.modal-wrap{padding:0}.modal{border-radius:25px 25px 0 0;max-height:92vh}}
@media(max-width:520px){.toolbar{align-items:stretch;flex-direction:column}.periods{width:100%}.periods button{flex:1;padding-inline:9px}.metric{padding:16px;min-height:125px}.metric strong{font-size:27px}.card{padding:17px}.budget-values strong{font-size:23px}.filters{grid-template-columns:1fr}.filters input{grid-column:1}.form-grid{grid-template-columns:1fr}.field.full{grid-column:1}.modal{padding:20px}.action-dock{padding:5px}.mic{width:52px;height:52px}.dock-add{padding:10px}.profile{display:none}}
.custom-range{display:flex;align-items:end;gap:9px;margin:-5px 0 15px;padding:13px;border:1px solid var(--line);background:var(--panel);border-radius:14px}.custom-range label{display:grid;gap:5px;color:var(--muted);font-size:10px}.custom-range input{border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:9px;color:var(--text)}
@media(max-width:520px){.custom-range{display:grid;grid-template-columns:1fr 1fr}.custom-range .primary{grid-column:1/-1}}
