@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--navy:#102b68;--blue:#1b57d8;--orange:#f58216;--ink:#17233a;--muted:#7d899d;--line:#e6ebf3;--bg:#f5f7fb;--green:#16865b;--shadow:0 8px 28px #182f5d0d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button,a{cursor:pointer}a{text-decoration:none;color:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:var(--navy);color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:30;transition:.25s}.brand{display:flex;align-items:center;gap:10px;padding:5px 8px 23px;border-bottom:1px solid #ffffff20}.brand-mark{width:43px;height:43px;border-radius:12px;background:#fff;color:var(--navy);display:grid;place-items:center;font:800 17px Manrope;position:relative}.brand-mark:after{content:'';position:absolute;right:4px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--orange)}.brand-name{font:800 11px Manrope;line-height:1.5}.brand-name small{display:block;color:#ffbd7c;font:700 9px 'DM Sans';letter-spacing:1.4px}.nav-label{font-size:9px;letter-spacing:1.7px;color:#9eafd6;margin:25px 12px 9px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;margin:3px 0;color:#d8e2fc;font-size:12px;font-weight:600}.nav-link ion-icon{font-size:19px}.nav-link:hover,.nav-link.active{background:#ffffff17;color:white}.nav-link.active{box-shadow:inset 3px 0 var(--orange)}.sidebar-foot{margin-top:auto;border:1px solid #ffffff1e;background:#ffffff0d;border-radius:13px;padding:13px;color:#c8d5f3;font-size:10px;line-height:1.6}.main{margin-left:245px;min-height:100vh}.topbar{height:70px;position:sticky;top:0;z-index:20;background:#ffffffed;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.crumb{font-size:10px;color:var(--muted);letter-spacing:1px}.topbar h1{font:800 17px Manrope;margin:4px 0 0}.admin-pill{display:flex;align-items:center;gap:9px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:white;font-size:11px;font-weight:700}.avatar{height:30px;width:30px;border-radius:9px;background:#fff0df;color:#9d520b;display:grid;place-items:center}.menu-toggle{display:none;border:0;background:#edf2ff;color:var(--navy);height:38px;width:38px;border-radius:10px;font-size:22px}.content{max-width:1450px;margin:auto;padding:27px 28px 42px}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px}.intro h2{font:800 23px Manrope;letter-spacing:-.8px;margin:5px 0 7px}.intro p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.btn{border:0;border-radius:9px;background:var(--blue);color:white;padding:11px 15px;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn ion-icon{font-size:16px}.btn.secondary{background:#fff;color:#45536a;border:1px solid #dfe5ef}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.metric,.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);min-width:0}.metric{padding:16px}.metric-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}.metric-icon{width:33px;height:33px;border-radius:10px;background:#edf3ff;color:var(--blue);display:grid;place-items:center;font-size:18px}.metric-value{font:800 25px Manrope;letter-spacing:-1px;margin:13px 0 5px}.metric-note,.help{font-size:10px;color:#929caf;line-height:1.5}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid #eff2f7}.panel-head h3{font:800 13px Manrope;margin:0}.panel-head p{font-size:10px;color:var(--muted);margin:5px 0 0}.panel-body{padding:18px 19px}.grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:17px}.field{margin-bottom:14px}.field label{display:block;font-size:11px;font-weight:800;color:#4a566b;margin-bottom:7px}.input,.select,.textarea{width:100%;border:1px solid #dfe5ef;background:#fbfcff;border-radius:9px;padding:11px 12px;color:var(--ink);outline:none;font-size:12px}.input:focus,.select:focus,.textarea:focus{border-color:#82a4ee;box-shadow:0 0 0 3px #1b57d814}.textarea{resize:vertical;min-height:120px;line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.toolbar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:12px}.toolbar .input{max-width:360px}.table-wrap{overflow:auto;width:100%}.table{width:100%;border-collapse:collapse;white-space:nowrap}.table th{text-align:left;background:#fafbfe;color:#8591a5;font-size:9px;letter-spacing:.7px;padding:12px 15px;border-bottom:1px solid var(--line)}.table td{font-size:11px;padding:13px 15px;border-bottom:1px solid #f0f2f7}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:#f8faff}.empty{padding:27px 15px;text-align:center;color:var(--muted);font-size:12px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;font-size:10px;color:var(--muted);gap:10px}.pages{display:flex;gap:5px}.pages button{border:1px solid var(--line);background:white;border-radius:7px;padding:7px 10px;font-size:10px}.pages button.active{background:var(--blue);color:white}.pages button:disabled{opacity:.4}.status{display:inline-flex;border-radius:20px;padding:5px 8px;font-size:9px;font-weight:800;background:#e7f8f0;color:var(--green)}.templates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.template{border:1px solid #e2e8f2;background:white;border-radius:10px;text-align:left;padding:11px}.template ion-icon{font-size:17px;color:var(--blue);display:block;margin-bottom:6px}.template b{font-size:10px;display:block;margin-bottom:4px}.template span{font-size:9px;color:var(--muted)}.note{padding:11px 13px;border-radius:9px;background:#fff8e9;border:1px solid #f8e3b6;color:#875d12;font-size:10px;line-height:1.6}.modal-backdrop{position:fixed;inset:0;background:#0b1734a8;display:none;align-items:center;justify-content:center;padding:16px;z-index:100}.modal-backdrop.show{display:flex}.modal{width:min(600px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:17px;box-shadow:0 25px 80px #0003}.modal-head{padding:19px 21px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line)}.modal-head h3{font:800 17px Manrope;margin:0}.modal-head p{font-size:11px;color:var(--muted);margin:5px 0 0}.close{border:0;background:#f1f4f9;color:#526078;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:21px}.modal-body{padding:20px}.details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail{background:#f8faff;border:1px solid #edf0f6;border-radius:10px;padding:12px;min-width:0}.detail span{display:block;font-size:9px;color:var(--muted);margin-bottom:6px}.detail strong{font-size:12px;overflow-wrap:anywhere}.activity-item{display:flex;gap:10px;padding:13px 0;border-bottom:1px solid #f0f2f7}.activity-item ion-icon{font-size:19px;color:var(--blue)}.activity-item b{display:block;font-size:11px;margin:2px 0 4px}.activity-item small{font-size:10px;color:var(--muted)}.chart{height:210px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:7px;align-items:end;padding:10px 4px 0;border-bottom:1px solid var(--line)}.month{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.bars{height:calc(100% - 18px);display:flex;align-items:flex-end;justify-content:center;gap:3px;width:100%}.bar{width:42%;max-width:13px;border-radius:4px 4px 0 0}.bar.expense{background:#f4a64f}.bar.profit{background:#1b57d8}.month small{font-size:8px;color:#8994a7}.legend{font-size:10px;color:var(--muted);margin:5px 0 15px}.footnote{text-align:center;color:#99a3b4;font-size:10px;padding:22px 0 0}.toast{position:fixed;right:20px;bottom:20px;z-index:120;background:#15284d;color:white;border-radius:10px;padding:12px 16px;font-size:11px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-art{background:var(--navy);color:white;padding:7vw;display:flex;flex-direction:column;justify-content:space-between}.login-art h1{font:800 clamp(32px,4vw,54px) Manrope;line-height:1.1;letter-spacing:-1.5px;max-width:550px}.login-art p{color:#c7d5f3;font-size:13px;line-height:1.8;max-width:400px}.login-side{display:grid;place-items:center;padding:30px}.login-form{width:min(380px,100%)}.login-form h2{font:800 27px Manrope;margin:0 0 7px}.login-form>p{font-size:12px;color:var(--muted);margin:0 0 27px}.login-error{display:none;color:#bd3636;font-size:11px;margin-bottom:12px}
@media(max-width:1050px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{grid-template-columns:1fr}.content{padding:23px 20px 38px}}
@media(max-width:740px){.sidebar{transform:translateX(-100%);width:265px}.sidebar.open{transform:none}.overlay.show{display:block;position:fixed;inset:0;background:#0b1734a8;z-index:25}.main{margin-left:0}.menu-toggle{display:grid;place-items:center}.topbar{height:65px;padding:0 13px}.topbar h1{font-size:15px}.content{padding:20px 12px 34px}.intro{align-items:flex-start;flex-direction:column}.intro h2{font-size:21px}.intro>.btn{width:100%}.cards{gap:8px}.metric{padding:12px}.metric-value{font-size:21px}.metric-head{font-size:9px}.panel-head,.panel-body{padding:15px}.form-grid{grid-template-columns:1fr}.templates{grid-template-columns:repeat(2,minmax(0,1fr))}.details{grid-template-columns:1fr 1fr}.pagination{align-items:flex-start;flex-direction:column}.toolbar .input{flex:1;min-width:150px}.login{grid-template-columns:1fr}.login-art{display:none}.login-side{min-height:100vh}.chart{gap:3px;height:170px}.month small{font-size:7px}}
/* Additional admin screens and responsive filter controls */
.topbar h1{margin:0;font-size:20px;font-weight:750;letter-spacing:-.35px}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.toolbar .input{flex:1;min-width:180px}
.toolbar .select{flex:0 1 165px;min-width:135px}
.table tbody tr[data-id]{cursor:pointer}
.table tbody tr[data-id]:hover{background:#f5f8ff}
.modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.btn.danger{background:#fff0f0;color:#b42318;border:1px solid #ffd6d2}
.modal-wide{width:min(780px,calc(100vw - 28px));max-height:88vh;overflow:auto}
.message-copy{padding:14px;border:1px solid #e3e8f0;border-radius:12px;background:#f8faff;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;margin:10px 0 20px}
.modal-body h4{margin:20px 0 8px;font-size:14px}
.role-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.role-list label{display:flex;align-items:center;gap:8px;border:1px solid #e3e8f0;border-radius:10px;padding:11px;font-size:13px;font-weight:600}
.saved-links{display:grid;gap:8px;margin-top:16px}
.saved-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid #e6eaf1;border-radius:11px;min-width:0}
.saved-link>div{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}
.saved-link a,.saved-link span{font-size:12px;color:#64748b;overflow-wrap:anywhere}
.icon-delete{flex:0 0 auto;border:0;background:#fff0f0;color:#b42318;border-radius:8px;padding:8px;cursor:pointer}
.icon-delete ion-icon{font-size:17px;vertical-align:middle}
@media(max-width:700px){.toolbar .input,.toolbar .select{flex:1 1 100%;max-width:none!important}.role-list{grid-template-columns:1fr}.topbar h1{font-size:18px}.admin-pill #adminNameLabel{display:none}.modal-actions .btn{flex:1}.modal-wide{width:calc(100vw - 20px)}}
