:root,[data-theme=light]{--bg-gradient:linear-gradient(145deg,#eef2ff,#f0f4ff 25%,#fdf2f8 55%,#e0f2fe 80%,#ede9fe);--glass-strong:rgba(255,255,255,0.55);--glass-medium:rgba(255,255,255,0.38);--glass-light:rgba(255,255,255,0.22);--glass-subtle:rgba(255,255,255,0.10);--glass-border:rgba(255,255,255,0.65);--glass-border-inner:rgba(255,255,255,0.35);--glass-shadow:0 8px 32px rgba(99,102,241,0.10),0 2px 8px rgba(0,0,0,0.04);--glass-shadow-lg:0 16px 48px rgba(99,102,241,0.14),0 4px 16px rgba(0,0,0,0.06);--glass-shadow-inner:inset 0 1px 0 rgba(255,255,255,0.6);--text-primary:#1e1b4b;--text-secondary:#4a4578;--text-muted:#8b87a8;--text-on-glass:#2d2958;--accent:#6366f1;--accent-light:#818cf8;--accent-deep:#4f46e5;--accent-glow:rgba(99,102,241,0.3);--accent-surface:rgba(99,102,241,0.06);--green:#059669;--green-bg:rgba(5,150,105,0.08);--red:#dc2626;--red-bg:rgba(220,38,38,0.06);--amber:#d97706;--cyan:#0891b2;--sidebar-bg:rgba(15,15,40,0.72);--sidebar-border:rgba(255,255,255,0.06);--radius-sm:10px;--radius:16px;--radius-lg:22px;--radius-xl:28px}[data-theme=dark]{--bg-gradient:linear-gradient(145deg,#0f0a2e,#0c0a24 25%,#1a0a2e 50%,#0a1628 75%,#0f0a28);--glass-strong:rgba(20,18,45,0.70);--glass-medium:rgba(20,18,45,0.50);--glass-light:rgba(20,18,45,0.32);--glass-subtle:rgba(20,18,45,0.16);--glass-border:rgba(255,255,255,0.10);--glass-border-inner:rgba(255,255,255,0.05);--glass-shadow:0 8px 32px rgba(0,0,0,0.35),0 2px 8px rgba(0,0,0,0.2);--glass-shadow-lg:0 16px 48px rgba(0,0,0,0.45),0 4px 16px rgba(0,0,0,0.25);--glass-shadow-inner:inset 0 1px 0 rgba(255,255,255,0.04);--text-primary:#e8e6f4;--text-secondary:#b4b0cc;--text-muted:#74709a;--text-on-glass:#dcd8f0;--accent-glow:rgba(129,140,248,0.35);--accent-surface:rgba(99,102,241,0.10);--green:#34d399;--green-bg:rgba(52,211,153,0.10);--red:#f87171;--red-bg:rgba(248,113,113,0.08);--sidebar-bg:rgba(8,8,20,0.78);--sidebar-border:rgba(255,255,255,0.04)}:root{--font:"Inter",ui-sans-serif,system-ui,-apple-system,sans-serif;--transition:0.35s cubic-bezier(0.4,0,0.2,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font);color:var(--text-primary);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-gradient);min-height:100vh;transition:color var(--transition),background var(--transition);position:relative}body:before{content:"";position:fixed;inset:-20%;z-index:-1;background:radial-gradient(ellipse 800px 600px at 10% 15%,rgba(129,140,248,.35) 0,transparent 60%),radial-gradient(ellipse 700px 500px at 85% 10%,rgba(167,139,250,.3) 0,transparent 55%),radial-gradient(ellipse 600px 550px at 50% 75%,rgba(56,189,248,.28) 0,transparent 55%),radial-gradient(ellipse 500px 450px at 20% 65%,rgba(244,114,182,.22) 0,transparent 50%);filter:blur(40px);animation:blobShift 20s ease-in-out infinite alternate;transition:background var(--transition)}[data-theme=dark] body:before{background:radial-gradient(ellipse 800px 600px at 10% 15%,rgba(79,70,229,.45) 0,transparent 60%),radial-gradient(ellipse 700px 500px at 85% 10%,rgba(124,58,237,.4) 0,transparent 55%),radial-gradient(ellipse 600px 550px at 50% 75%,rgba(14,116,144,.38) 0,transparent 55%),radial-gradient(ellipse 500px 450px at 20% 65%,rgba(190,24,93,.3) 0,transparent 50%)}@keyframes blobShift{0%{transform:translate(0) scale(1)}33%{transform:translate(2%,-1%) scale(1.05)}66%{transform:translate(-1%,2%) scale(1.02)}to{transform:translate(1%,1%) scale(1.04)}}h1{font-size:clamp(1.625rem,3vw,2.25rem);font-weight:750;letter-spacing:-.03em;line-height:1.2}h2{font-size:clamp(1.25rem,2vw,1.5rem);font-weight:700;letter-spacing:-.02em;line-height:1.25}h3{font-size:1.1rem;font-weight:650;letter-spacing:-.01em}p{font-size:.95rem;color:var(--text-secondary)}.muted,small{font-size:.8rem;color:var(--text-muted)}.gradient-text{background:linear-gradient(135deg,#6366f1,#a78bfa,#38bdf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.button,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--glass-border);background:var(--glass-medium);color:var(--text-on-glass);border-radius:var(--radius-sm);padding:11px 20px;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--glass-shadow),var(--glass-shadow-inner);transition:all .2s ease;letter-spacing:-.01em}.button:hover,button:hover{background:var(--glass-strong);border-color:var(--accent-glow);box-shadow:var(--glass-shadow-lg);transform:translateY(-1px)}.button:active,button:active{transform:translateY(0) scale(.97)}.button.primary,button.primary{background:var(--accent);color:white;border-color:transparent;box-shadow:0 4px 20px var(--accent-glow)}.button.primary:hover,button.primary:hover{background:var(--accent-deep);box-shadow:0 6px 28px var(--accent-glow)}.button.ghost,button.ghost{background:var(--glass-subtle);border-color:var(--glass-border-inner);color:var(--text-secondary);box-shadow:none}.button.ghost:hover,button.ghost:hover{background:var(--glass-light);color:var(--text-primary);box-shadow:var(--glass-shadow)}button.danger{background:var(--red-bg);border-color:rgba(220,38,38,.2);color:var(--red);box-shadow:none}button.danger:hover{background:rgba(220,38,38,.14);box-shadow:0 4px 16px rgba(220,38,38,.15)}.theme-toggle{position:fixed;bottom:28px;right:28px;z-index:100;width:48px;height:48px;border-radius:50%!important;padding:0!important;font-size:1.3rem;background:var(--glass-strong)!important;border:1px solid var(--glass-border)!important;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:var(--glass-shadow-lg)!important;transition:all .3s}.theme-toggle:hover{box-shadow:0 6px 24px var(--accent-glow),var(--glass-shadow-lg)!important;transform:scale(1.08)}input,select,textarea{border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:11px 16px;background:var(--glass-light);font:inherit;font-size:.925rem;width:100%;transition:all .2s;color:var(--text-primary);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-light);box-shadow:0 0 0 3px var(--accent-glow);background:var(--glass-medium)}input::placeholder{color:var(--text-muted)}textarea{min-height:90px;resize:vertical}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login section{width:min(460px,100%);background:var(--glass-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:44px 40px;box-shadow:var(--glass-shadow-lg),var(--glass-shadow-inner);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);display:grid;grid-gap:18px;gap:18px;position:relative}.login h1{font-size:2rem;text-align:center;background:linear-gradient(135deg,#6366f1,#a78bfa,#38bdf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login p{text-align:center}.login label{display:grid;grid-gap:5px;gap:5px;font-weight:600;font-size:.9rem;color:var(--text-secondary)}.login button{margin-top:6px;width:100%;padding:13px;font-size:1rem}.login .err{color:var(--red);font-weight:650;text-align:center}.home{max-width:1320px;margin:0 auto;padding:36px 28px}.home nav{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:40px;padding:20px 28px;background:var(--glass-medium);border:1px solid var(--glass-border);border-radius:var(--radius-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--glass-shadow),var(--glass-shadow-inner)}.home nav h1{background:linear-gradient(135deg,#6366f1,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home nav div{display:flex;gap:10px}.grid{display:grid;grid-gap:16px;gap:16px}.cards{grid-template-columns:repeat(3,1fr);margin-bottom:28px}.card{background:var(--glass-medium);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:24px 22px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--glass-shadow),var(--glass-shadow-inner);transition:all .25s}.card:hover{box-shadow:var(--glass-shadow-lg);border-color:var(--accent-glow);transform:translateY(-2px)}.card small{font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.card strong{display:block;font-size:clamp(1.35rem,2.2vw,1.9rem);font-weight:750;margin-top:10px;letter-spacing:-.02em;color:var(--text-primary)}.panel{background:var(--glass-medium);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:26px;margin-bottom:18px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--glass-shadow),var(--glass-shadow-inner)}.panel h2{margin-bottom:14px;background:linear-gradient(135deg,#6366f1,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-block}.hero{background:var(--glass-strong);border-color:var(--accent-glow);text-align:center;padding:40px 32px;box-shadow:0 12px 48px var(--accent-glow),var(--glass-shadow-inner)}.hero h2{font-size:1.6rem}.hero p{margin:10px 0 20px}.tips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.profiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));grid-gap:18px;gap:18px}.profiles article{background:var(--glass-medium);border-radius:var(--radius-lg);padding:26px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--glass-shadow),var(--glass-shadow-inner);border:1px solid var(--glass-border);border-left:3px solid var(--accent);transition:all .25s}.profiles article:hover{box-shadow:var(--glass-shadow-lg);border-color:var(--accent-glow);transform:translateY(-2px)}.profiles article h3{background:linear-gradient(135deg,#6366f1,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:6px}.profiles article p{margin:4px 0;color:var(--text-secondary);font-size:.9rem}.profiles article button{margin-top:12px}.app{display:flex;min-height:100vh}.app aside{width:272px;background:var(--sidebar-bg);color:rgba(255,255,255,.88);padding:30px 22px;position:fixed;top:0;left:0;bottom:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;z-index:20;backdrop-filter:blur(36px);-webkit-backdrop-filter:blur(36px);border-right:1px solid var(--sidebar-border);box-shadow:4px 0 30px rgba(0,0,0,.1)}.app aside b{font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;color:#a5b4fc;margin-bottom:8px}.app aside h2{font-size:1.2rem;margin-bottom:4px;background:linear-gradient(135deg,#a5b4fc,#c4b5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app aside>small{color:rgba(255,255,255,.45);font-size:.8rem;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:16px}.app aside button{display:block;width:100%;text-align:left;background:transparent;border:none;color:rgba(255,255,255,.55);padding:10px 18px;margin:2px 0;border-radius:var(--radius-sm);font-size:.88rem;font-weight:500;cursor:pointer;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;transform:none;transition:all .18s}.app aside button:hover{background:rgba(255,255,255,.08);color:white}.app aside button.on{background:rgba(99,102,241,.18);color:white;font-weight:650}.app aside button.back{background:rgba(99,102,241,.25);border:1px solid rgba(99,102,241,.35);margin-bottom:22px;font-weight:650;color:white;border-radius:var(--radius-sm);text-align:center}.app aside button.back:hover{background:rgba(99,102,241,.4)}.content{margin-left:272px;flex:1 1;padding:36px 32px;max-width:calc(100% - 272px);min-height:100vh}.content header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:32px;padding:22px 28px;background:var(--glass-medium);border:1px solid var(--glass-border);border-radius:var(--radius-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--glass-shadow),var(--glass-shadow-inner);flex-wrap:wrap}.content header small{color:var(--text-muted)}.content header h1{background:linear-gradient(135deg,#6366f1,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.actions{display:flex;gap:10px;flex-wrap:wrap}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--glass-border)}table{width:100%;border-collapse:collapse;font-size:.875rem}thead{border-bottom:2px solid var(--glass-border)}th{text-align:left;padding:14px;font-weight:650;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--glass-subtle);white-space:nowrap}td{padding:13px 14px;border-bottom:1px solid var(--glass-border-inner);vertical-align:top}tr:last-child td{border-bottom:none}tr:hover td{background:var(--glass-subtle)}td small{margin-top:5px}b.income{color:var(--green);background:var(--green-bg)}b.expense,b.income{padding:3px 12px;border-radius:999px;font-weight:650;font-size:.8rem;display:inline-block}b.expense{color:var(--red);background:var(--red-bg)}.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;z-index:50;padding:24px}.modal>div{width:min(880px,100%);max-height:88vh;overflow-y:auto;background:var(--glass-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:34px;box-shadow:0 24px 64px rgba(0,0,0,.25),var(--glass-shadow-inner);backdrop-filter:blur(36px);-webkit-backdrop-filter:blur(36px)}.txDialog{border-top:3px solid var(--accent)}.formSection{border:1px solid var(--glass-border);border-radius:var(--radius);padding:22px;margin:16px 0;background:var(--glass-light);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.formSection h3{font-size:.95rem;font-weight:700;color:var(--accent-light);margin-bottom:16px;display:flex;align-items:center;gap:8px}.formSection h3:before{content:"";width:3px;height:16px;background:var(--accent);border-radius:2px}.form{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.field{display:grid;grid-gap:6px;gap:6px}.field>span{font-size:.84rem;font-weight:650;color:var(--text-secondary)}.field small{line-height:1.4}.field:has(textarea){grid-column:1/-1}.check{display:flex;align-items:center;gap:10px;background:var(--glass-subtle);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:13px 18px;font-weight:650;font-size:.9rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.check input[type=checkbox]{width:auto;accent-color:var(--accent)}.calc{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;margin-top:12px}.calc span{background:var(--glass-light);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:13px 15px;font-size:.825rem;font-weight:600;color:var(--text-secondary);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.calc span:last-child{border-color:var(--accent);background:var(--accent-surface);color:var(--accent);font-weight:750}.uploadBox{display:grid;grid-gap:8px;gap:8px;background:var(--accent-surface);border:2px dashed var(--accent-glow);color:var(--accent-light);border-radius:var(--radius);padding:18px;font-weight:650;font-size:.9rem;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:all .2s}.uploadBox:hover{background:rgba(99,102,241,.12);border-color:var(--accent)}.uploadBox input{background:transparent;border:0;padding:0}.modalActions{display:flex;justify-content:flex-end;gap:10px;position:-webkit-sticky;position:sticky;bottom:-34px;margin-top:18px;background:var(--glass-strong);padding:18px 0;border-top:1px solid var(--glass-border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.inline{display:grid;grid-template-columns:2fr 1fr auto;grid-gap:10px;gap:10px;margin-bottom:18px;align-items:start}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span,.mini{background:var(--glass-medium);color:var(--accent-light);border:1px solid var(--glass-border);border-radius:999px;padding:7px 15px;font-size:.8rem;font-weight:600;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-decoration:none;display:inline-block}a.mini,label.mini{cursor:pointer;transition:all .15s}a.mini:hover,label.mini:hover{background:var(--glass-strong);border-color:var(--accent-glow)}.panel ul{list-style:none;padding:0}.panel ul li{padding:10px 0;border-bottom:1px solid var(--glass-border-inner);color:var(--text-secondary);font-size:.9rem}.panel ul li:last-child{border-bottom:none}.panel ul li:before{content:"◆";font-size:.55rem;margin-right:10px;color:var(--accent);vertical-align:middle}hr{border:none;border-top:1px solid var(--glass-border);margin:24px 0}.err{color:var(--red);font-weight:650}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media print{.actions,.button,.modal,.theme-toggle,aside,body:before,button,input,select,textarea{display:none!important}.content{margin:0;max-width:100%}.card,.panel{box-shadow:none;border:1px solid #ddd;-webkit-backdrop-filter:none;backdrop-filter:none}body{background:white}}@media (max-width:1100px){.cards,.profiles{grid-template-columns:1fr 1fr}}@media (max-width:860px){.app{display:block}.app aside{position:relative;width:100%;height:auto;flex-direction:row;flex-wrap:wrap;gap:8px;padding:18px}.app aside button{width:auto}.app aside button.on{border-left:none;border-bottom:3px solid var(--accent);margin-left:0;padding-left:18px;border-radius:0}.content{margin-left:0;max-width:100%;padding:24px}.calc,.cards,.form,.profiles{grid-template-columns:1fr}.home nav{flex-direction:column;align-items:flex-start}.inline{grid-template-columns:1fr}}@media (max-width:600px){.content,.home{padding:18px}.login section{padding:32px 24px}.modal{padding:6px}.modal>div{padding:22px;border-radius:var(--radius)}}