:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17202a;background:#f4f7fb;--card:#fff;--line:#e6ebf2;--muted:#667085;--text:#17202a;--accent:#2563eb;--accent2:#4f46e5;--success:#059669;--danger:#dc2626;--soft:#eef4ff;--shadow:0 8px 28px rgba(15,23,42,.06);--shadow-lg:0 18px 50px rgba(15,23,42,.11)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 85% -10%,rgba(37,99,235,.08),transparent 32%),#f4f7fb;color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;background:linear-gradient(180deg,#101828 0%,#111c31 55%,#0b1220 100%);color:#fff;padding:22px 14px;position:fixed;inset:0 auto 0 0;z-index:30;box-shadow:8px 0 35px rgba(15,23,42,.08)}.brand{display:flex;gap:11px;align-items:center;padding:4px 10px 28px}.brand-mark{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#fff,#dbeafe);color:#101828;display:grid;place-items:center;font-weight:900;box-shadow:0 10px 25px rgba(59,130,246,.18)}.brand strong,.brand span{display:block}.brand strong{letter-spacing:-.3px}.brand span{font-size:11px;color:#98a2b3;margin-top:3px}.nav-item{width:100%;border:1px solid transparent;background:transparent;color:#aeb8c8;text-align:left;padding:11px 12px;border-radius:11px;margin:3px 0;display:flex;gap:11px;align-items:center;transition:.2s ease}.nav-item:hover{background:rgba(255,255,255,.06);color:#fff;transform:translateX(2px)}.nav-item.active{background:linear-gradient(135deg,rgba(59,130,246,.22),rgba(99,102,241,.16));border-color:rgba(147,197,253,.12);color:#fff;box-shadow:inset 3px 0 0 #60a5fa}.main{margin-left:248px;width:calc(100% - 248px);padding:30px 40px;max-width:1600px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font-size:11px;letter-spacing:.13em;color:#8490a3;font-weight:800;text-transform:uppercase}.topbar h1{margin:5px 0 0;font-size:29px;letter-spacing:-.8px}.icon-btn{border:1px solid var(--line);background:rgba(255,255,255,.88);border-radius:12px;width:42px;height:42px;box-shadow:0 4px 16px rgba(15,23,42,.04);transition:.2s}.icon-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.page{display:none}.page.active{display:block}.hero-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#f8fbff 55%,#eef4ff 100%);border:1px solid #dce6f5;border-radius:20px;padding:28px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow)}.hero-card:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-100px;bottom:-130px;background:rgba(37,99,235,.07);pointer-events:none}.muted{color:var(--muted);font-size:13px}.balance{font-size:38px;font-weight:900;margin:8px 0;letter-spacing:-1px}.primary,.secondary,.mini{border-radius:11px;padding:10px 15px;font-weight:750;transition:transform .18s,box-shadow .18s}.primary{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;border:0;box-shadow:0 8px 20px rgba(37,99,235,.2)}.primary:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(37,99,235,.25)}.secondary{background:#fff;border:1px solid var(--line);color:var(--text)}.secondary:hover,.mini:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(15,23,42,.07)}.mini{padding:6px 9px;font-size:11px;background:#fff;border:1px solid var(--line);color:var(--text);margin-left:6px}.mini.danger{color:var(--danger)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:18px 0 30px}.stats article,.account-card{position:relative;overflow:hidden;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:17px;padding:19px;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s,border-color .2s}.stats article:after,.account-card:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-35px;bottom:-45px;background:rgba(37,99,235,.045)}.stats article:hover,.account-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:#d5deec}.stats span{display:block;color:var(--muted);font-size:13px}.stats strong{display:block;font-size:22px;margin-top:7px;letter-spacing:-.3px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:28px 0 14px}.section-head h2{margin:0;font-size:18px;letter-spacing:-.25px}.section-head p{margin:4px 0;color:var(--muted);font-size:13px}.actions{display:flex;gap:8px}.cards,.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.account-card{min-height:130px}.account-card .account-name{font-weight:750}.account-card .account-type{font-size:12px;color:var(--muted);margin-top:4px}.account-card .account-balance{font-size:23px;font-weight:900;margin-top:18px}.person-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:17px;padding:17px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow);transition:.2s}.person-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:#d5deec}.person-avatar{width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,#eff6ff,#eef2ff);color:var(--accent);display:grid;place-items:center;font-weight:900;flex:0 0 44px;border:1px solid #dbe7ff}.person-main{min-width:0;flex:1}.person-main strong,.person-main span,.person-main small{display:block}.person-main span{font-size:12px;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-main small{font-size:11px;color:var(--muted);margin-top:5px}.filters{display:flex;gap:8px;flex-wrap:wrap;background:rgba(255,255,255,.92);border:1px solid var(--line);padding:13px;border-radius:15px;margin:0 0 14px;box-shadow:var(--shadow)}.filters select,.filters input{min-height:40px;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);outline:none;transition:.18s}.filters select:focus,.filters input:focus{border-color:#93b4ff;box-shadow:0 0 0 4px rgba(37,99,235,.08)}.filters input{min-width:145px}.table-wrap,.panel{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:auto;box-shadow:var(--shadow)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:14px 15px;text-align:left;border-bottom:1px solid var(--line);font-size:13px;white-space:nowrap}.table th{color:#667085;font-weight:750;background:#fafbfc}.table tbody tr{transition:.15s}.table tbody tr:hover{background:#f8fbff}.type-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.type-income{background:#e9fbf3;color:#047857}.type-expense{background:#fff0ef;color:#b42318}.type-transfer{background:#eef4ff;color:#2457d6}.type-bill_payment{background:#f2edff;color:#6941c6}.empty{text-align:center;background:linear-gradient(180deg,#fff,#f9fbff);border:1px solid var(--line);border-radius:18px;padding:72px 25px;box-shadow:var(--shadow)}.empty-icon{font-size:34px;margin-bottom:10px}.empty h2{margin:0 0 8px}.empty p{max-width:520px;margin:0 auto;color:var(--muted);line-height:1.6}.bill-list{display:grid;gap:14px}.bill-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:19px;padding:19px;box-shadow:var(--shadow);transition:.2s}.bill-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:#d5deec}.bill-top{display:flex;justify-content:space-between;gap:18px}.bill-top h3{margin:4px 0}.bill-top p{margin:0;color:var(--muted);font-size:12px}.bill-total{text-align:right;font-weight:900;font-size:19px}.bill-total small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;margin-top:5px}.bill-items{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:15px 0;padding:10px 0}.bill-items div,.participant-row,.bar-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.participant-row{gap:10px}.participant-row>div:last-child{display:flex;align-items:center}.participant-row span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.paid{color:#047857;font-size:12px;font-weight:800;margin-left:8px}.bill-foot{display:flex;justify-content:flex-end;color:var(--muted);font-size:12px}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.panel{padding:19px}.panel h3{margin:0 0 12px}.panel .table-wrap{border:0;box-shadow:none}.bar-row{border-bottom:1px solid var(--line)}.bar-row:last-child{border-bottom:0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-grid code{display:block;background:#f7f9fc;border:1px solid var(--line);padding:11px;border-radius:10px;overflow:auto;font-size:11px;margin:6px 0 16px}.toast{position:fixed;right:25px;bottom:25px;background:rgba(16,24,40,.94);color:#fff;padding:13px 17px;border-radius:12px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:50;box-shadow:0 14px 35px rgba(15,23,42,.2)}.toast.show{opacity:1;transform:translateY(0)}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.52);backdrop-filter:blur(7px);display:grid;place-items:center;padding:20px;z-index:40}.modal{width:min(580px,100%);max-height:92vh;overflow:auto;background:#fff;border:1px solid rgba(255,255,255,.6);border-radius:20px;padding:23px;box-shadow:0 30px 90px rgba(15,23,42,.3);animation:modalIn .2s ease-out}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.modal h2{margin:4px 0 0;letter-spacing:-.4px}.close{border:0;background:#f2f4f7;width:36px;height:36px;border-radius:10px;font-size:23px;color:var(--muted);transition:.18s}.close:hover{transform:rotate(90deg);background:#e8edf3}.modal label{display:block;font-size:13px;font-weight:750;margin:13px 0}.modal input,.modal select,.modal textarea{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;outline:none;resize:vertical;transition:.18s}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#8eb0ff;box-shadow:0 0 0 4px rgba(37,99,235,.08)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.subhead{display:flex;justify-content:space-between;align-items:center;margin:18px 0 8px}.item-head,.item-row{display:grid;grid-template-columns:1fr 70px 120px 36px;gap:7px;align-items:center}.item-head{color:var(--muted);font-size:11px;margin-bottom:4px}.item-row{margin-bottom:7px}.item-row input{margin:0}.check-list{display:grid;gap:8px}.check-row{display:grid!important;grid-template-columns:1fr 120px;align-items:center;padding:10px;background:#f8fafc;border:1px solid var(--line);border-radius:10px}.check-row input[type=checkbox]{display:inline;width:auto;margin:0 7px 0 0}.check-row .custom-share{margin:0}.report-grid+.panel{margin-top:0}@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1100px){.main{padding:26px}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.report-grid,.settings-grid{grid-template-columns:1fr}.cards,.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.sidebar{width:70px;padding:15px 8px}.brand{padding:3px 6px 20px}.brand>div:last-child,.nav-item span{display:none}.nav-item{justify-content:center}.main{margin-left:70px;width:calc(100% - 70px);padding:20px 15px}.topbar h1{font-size:23px}.hero-card{align-items:flex-start;gap:15px}.balance{font-size:29px}.stats{grid-template-columns:1fr}.actions{flex-wrap:wrap}.cards,.people-grid{grid-template-columns:1fr}.filters>*{flex:1 1 140px}.bill-top{flex-direction:column}.bill-total{text-align:left}.form-grid{grid-template-columns:1fr}.item-head,.item-row{grid-template-columns:1fr 55px 95px 32px}.person-card{align-items:flex-start}.card-actions{margin-left:auto;display:flex;flex-direction:column;gap:4px}.mini{margin-left:0}.modal-backdrop{padding:8px;align-items:end}.modal{width:100%;max-height:calc(100dvh - 16px);border-radius:19px 19px 12px 12px}}@media(max-width:460px){.main{padding:14px 10px}.hero-card{padding:20px;border-radius:17px}.balance{font-size:26px}.stats{gap:9px}.stats article{padding:15px}.account-card{padding:16px}.bill-card{padding:16px}.table-wrap{border-radius:14px}.table{min-width:640px}.modal-actions{flex-direction:column}.modal-actions .primary,.modal-actions .secondary{width:100%;min-height:45px}}@media(hover:none){.stats article:hover,.account-card:hover,.person-card:hover,.bill-card:hover{transform:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}