*{box-sizing:border-box} :root{--navy:#152b4a;--blue:#2864d7;--ink:#17243a;--muted:#78859a;--line:#e8edf4;--bg:#f5f7fb;--purple:#8971d8}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:14px}h1,h2,h3,b,strong{font-family:Manrope,"DM Sans",sans-serif}h1,h2,h3,p{margin-top:0}.hidden{display:none!important}.muted{color:var(--muted)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#142946,#244d7c)}.login-card{background:white;width:min(420px,100%);padding:38px;border-radius:20px;box-shadow:0 24px 80px #071b3838}.login-card h1{margin:18px 0 6px;font-size:28px}.login-card form{display:grid;gap:16px;margin:28px 0 12px}.login-card small{color:var(--muted)}.brand-mark{width:42px;height:42px;border-radius:13px;background:#eaf1ff;color:#2459b5;display:grid;place-items:center;font:800 22px Manrope}.login-card .brand-mark{width:52px;height:52px;font-size:27px}label{display:grid;gap:7px;color:#526078;font-size:12px;font-weight:700}input,select{width:100%;border:1px solid #dfe5ee;background:white;padding:12px 13px;border-radius:9px;color:var(--ink);font:500 14px "DM Sans";outline:none}input:focus,select:focus{border-color:#7da2ec;box-shadow:0 0 0 3px #2c6bd514}button{font:700 13px "DM Sans";cursor:pointer;border:0}.primary{background:var(--blue);color:white;border-radius:9px;padding:13px 18px}.primary:hover{background:#1e53b9}.full{width:100%}.error{color:#d33}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#142844;color:white;padding:25px 17px;display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;gap:12px;padding:0 9px 34px}.brand .brand-mark{background:#2e5b96;color:white}.brand b{display:block;font:700 15px Manrope}.brand small{color:#a9b9ce;font-size:11px}.sidebar nav{display:grid;gap:7px}.nav{display:flex;gap:13px;align-items:center;background:transparent;color:#b9c7d9;text-align:left;padding:13px 14px;border-radius:9px}.nav.active,.nav:hover{background:#28456c;color:white}.nav span{font-weight:600}.side-bottom{margin-top:auto}.user-mini{display:flex;gap:10px;align-items:center;padding:14px 8px;border-top:1px solid #30425b}.avatar{width:34px;height:34px;background:#355987;border-radius:50%;display:grid;place-items:center}.user-mini b,.user-mini small{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis}.user-mini b{font-size:11px}.user-mini small{color:#9eb0c6;font-size:10px}.logout{color:#c1cce0;background:transparent;padding:10px}.main{margin-left:248px;padding:0 38px 30px;max-width:1600px}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:1.5px;color:#8090a7;font-weight:700}.topbar h2{font-size:23px;margin:4px 0}.top-actions{display:flex;align-items:center;gap:17px}.top-actions input{width:155px}.status-dot{color:#21956a;font-size:11px;font-weight:700}.welcome{background:linear-gradient(110deg,#1a3558,#2c5b91);color:white;padding:28px 34px;border-radius:16px;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.welcome h1{font-size:25px;line-height:1.35;margin:9px 0}.welcome p{color:#c4d2e5;margin:0}.light{color:#a9c5eb}.welcome-icon{font-size:66px;color:#a9c9f0;opacity:.8;padding:0 25px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.stat,.panel{background:white;border:1px solid var(--line);border-radius:13px;padding:20px}.stat span,.stat small{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font-size:25px;margin:10px 0 5px}.stat small{font-size:10px}.grid-two{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-bottom:18px}.panel{margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.panel-head h3{font-size:15px;margin:0 0 5px}.panel-head p{font-size:11px;color:var(--muted);margin:0}.text-btn{background:transparent;color:var(--blue)}.balance-list{display:grid;gap:13px}.balance-row{display:flex;justify-content:space-between;align-items:center}.balance-row span{font-weight:600}.positive{color:#15936a}.negative{color:#d45a5a}.breakdown{display:flex;align-items:center;justify-content:center;gap:32px;padding:12px}.donut{width:142px;height:142px;border-radius:50%;background:conic-gradient(var(--blue) 0deg,var(--blue) 220deg,var(--purple) 220deg);display:grid;place-items:center}.donut>div{width:105px;height:105px;border-radius:50%;background:white;display:grid;align-content:center;justify-items:center}.donut b{font-size:17px}.donut small{font-size:10px;color:var(--muted)}.legend p{font-size:12px;color:var(--muted);display:grid;grid-template-columns:12px 1fr auto;gap:8px;align-items:center}.legend b{color:var(--ink)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.blue{background:var(--blue)}.purple{background:var(--purple)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:end}.form-grid .wide{grid-column:1/-1}.form-grid button{justify-self:start}.meal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.meal-grid label{border:1px solid var(--line);padding:12px;border-radius:9px}.meal-grid input{padding:9px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:12px 13px;border-bottom:1px solid #edf0f5;font-size:12px}th{color:#8591a4;font-size:10px;text-transform:uppercase;letter-spacing:.5px}td{color:#43516a}.amount{font-weight:700;color:var(--ink)}.delete{color:#c94e4e;background:#fff1f1;padding:7px 10px;border-radius:7px}.secondary{background:#eef3fb;color:#315d9f;border-radius:8px;padding:10px 13px}.empty{color:var(--muted);padding:20px;text-align:center}.toast{position:fixed;bottom:22px;right:22px;background:#172b47;color:white;padding:13px 18px;border-radius:9px;opacity:0;transform:translateY(10px);transition:.2s;z-index:9;pointer-events:none}.toast.show{opacity:1;transform:none}footer{text-align:center;color:#9aa5b5;font-size:10px;padding:14px}@media(max-width:1000px){.sidebar{width:205px}.main{margin-left:205px;padding:0 22px}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.sidebar{position:static;width:auto;height:auto;padding:12px}.brand{padding:0 8px 10px}.sidebar nav{display:flex;overflow:auto}.nav{flex:0 0 auto;padding:10px}.nav span{display:none}.side-bottom{display:none}.main{margin:0;padding:0 13px 20px}.topbar{height:auto;padding:18px 0;gap:10px;align-items:flex-start}.topbar h2{font-size:20px}.top-actions{display:grid;gap:5px}.top-actions input{width:135px}.welcome{padding:22px}.welcome h1{font-size:20px}.welcome-icon{display:none}.stats{gap:9px}.stat{padding:14px}.stat strong{font-size:21px}.grid-two{grid-template-columns:1fr}.meal-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.breakdown{gap:15px}.panel{padding:15px}}
.login-switch{margin:14px 0;text-align:center;color:var(--muted);font-size:12px}
.login-switch .text-btn{padding:0}
.secondary.full{width:100%;margin-top:8px}
.role-select{min-width:125px;padding:8px}
.admin-only.hidden{display:none!important}
