:root{--accent:#6C63FF;--bg:#f5f6fb;--panel:#fff;--text:#172033;--muted:#6b7280;--line:#e8ebf2;--shadow:0 18px 50px rgba(31,38,71,.08)}
body{background:var(--bg);color:var(--text)}
.auth-bg{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(135deg,#f7f8ff,#eefaf8)}
.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:1rem;box-shadow:var(--shadow);padding:1.5rem}.auth-card h1{font-size:1.55rem;margin:.8rem 0 1rem}.auth-foot{margin:1rem 0 0;text-align:center;color:var(--muted)}
.brand{display:flex;align-items:center;gap:.7rem;font-weight:800;font-size:1.05rem}.auth-brand{justify-content:center}.brand-mark{width:34px;height:34px;border-radius:.8rem;background:var(--accent);color:#fff;display:grid;place-items:center}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:#fff;border-right:1px solid var(--line);padding:1rem;z-index:30;transition:.2s transform}.app-sidebar nav{display:grid;gap:.25rem;margin-top:1.5rem}.app-sidebar a{display:flex;align-items:center;gap:.8rem;color:#596273;padding:.8rem;border-radius:.75rem;font-weight:700}.app-sidebar a.active,.app-sidebar a:hover{background:#f0efff;color:var(--accent)}
.app-shell{margin-left:260px;min-height:100vh}.topbar{height:72px;display:flex;gap:.8rem;align-items:center;position:sticky;top:0;background:rgba(245,246,251,.88);backdrop-filter:blur(16px);z-index:20;padding:0 1.2rem;border-bottom:1px solid var(--line)}
.content{padding:1.2rem;max-width:1260px;margin:0 auto}.page-heading{margin:.4rem 0 1.1rem}.page-heading h1{margin:0;font-size:1.75rem}.page-heading p{margin:.25rem 0 0;color:var(--muted)}
.global-search{flex:1;max-width:520px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.55rem .85rem;display:flex;gap:.65rem;align-items:center}.global-search input{border:0;outline:0;background:transparent;width:100%}
.user-chip{display:flex;align-items:center;gap:.7rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.5rem .8rem;font-weight:700}.icon-btn{border:0;background:#fff;border:1px solid var(--line);width:38px;height:38px;border-radius:.7rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text)}
.stats-grid,.dashboard-grid,.settings-grid{display:grid;gap:1rem}.stats-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:repeat(2,1fr)}
.stat-card,.panel,.account-card{background:var(--panel);border:1px solid var(--line);border-radius:.8rem;box-shadow:var(--shadow)}.stat-card{padding:1.1rem}.stat-card span{color:var(--muted);font-weight:700;font-size:.85rem}.stat-card strong{display:block;font-size:1.65rem;margin-top:.4rem}.stat-card.accent{border-top:4px solid var(--accent)}.stat-card.income{border-top:4px solid #26a69a}.stat-card.expense{border-top:4px solid #ef5350}
.panel{padding:1rem;margin-bottom:1rem}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem}.panel-head h2,.modal-head h2,.confirm-modal h2{font-size:1.05rem;margin:0}.table-wrap{overflow:auto}
.filter-grid,.inline-form{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:.8rem;align-items:end}.inline-form{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.filter-actions{display:flex;gap:.5rem;align-items:end}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.account-card{display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:center;padding:1rem;border-top:4px solid var(--item-color)}.account-card>i,.category-item>i{width:42px;height:42px;border-radius:.8rem;background:color-mix(in srgb,var(--item-color),white 82%);color:var(--item-color)}.account-card h2{font-size:1rem;margin:0}.account-card p{margin:.15rem 0 0;color:var(--muted)}.card-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.4rem}
.category-list,.transaction-list,.budget-list{display:grid;gap:.65rem}.category-item,.tx-row,.budget-item,.summary-row{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:.75rem;align-items:center;padding:.75rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.category-item small,.tx-row small{color:var(--muted)}.amount-income{color:#15805f;font-weight:800}.amount-expense{color:#cc3347;font-weight:800}.amount-transfer{color:var(--accent);font-weight:800}
.fab{position:fixed;right:1.2rem;bottom:1.2rem;width:58px;height:58px;border-radius:50%;border:0;background:var(--accent);color:#fff;box-shadow:0 16px 36px rgba(108,99,255,.32);font-size:1.35rem;z-index:25;cursor:pointer}
.modal-backdrop-custom{position:fixed;inset:0;background:rgba(16,24,40,.48);z-index:45}.modal-sheet,.confirm-modal{position:fixed;z-index:50;background:var(--panel);border-radius:1rem;box-shadow:var(--shadow);border:1px solid var(--line)}.modal-sheet{right:1rem;top:1rem;bottom:1rem;width:min(560px,calc(100vw - 2rem));overflow:auto;padding:1rem}.confirm-modal{left:50%;top:50%;transform:translate(-50%,-50%);width:min(380px,calc(100vw - 2rem));padding:1rem}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}
.segmented{display:grid;grid-template-columns:repeat(3,1fr);background:#f1f3f8;border-radius:.8rem;padding:.25rem}.segmented button{border:0;background:transparent;border-radius:.6rem;padding:.6rem;font-weight:800;color:var(--muted);cursor:pointer}.segmented button.active{background:#fff;color:var(--accent);box-shadow:0 4px 18px rgba(31,38,71,.08)}
.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.55rem;max-height:190px;overflow:auto}.icon-grid button{border:1px solid var(--line);background:#fff;border-radius:.75rem;padding:.65rem .4rem;display:grid;gap:.35rem;place-items:center;cursor:pointer}.icon-grid button i{color:var(--item-color)}.icon-grid button.active{border-color:var(--accent);box-shadow:0 0 0 3px rgba(108,99,255,.12)}
.toast-zone{position:fixed;right:1rem;top:84px;z-index:80;display:grid;gap:.5rem}.toast-msg{background:#172033;color:#fff;border-radius:.75rem;padding:.75rem 1rem;box-shadow:var(--shadow)}.toast-msg.error{background:#b42335}.page-spinner{position:fixed;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.55);z-index:100}.pin-lock{position:fixed;inset:0;background:rgba(245,246,251,.96);z-index:120;display:grid;place-items:center}.pin-card{width:min(340px,calc(100vw - 2rem));background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1.2rem;box-shadow:var(--shadow)}
.check-row{display:flex;gap:.5rem;align-items:center;font-weight:700}.pagination-row{display:flex;gap:.4rem;justify-content:flex-end;margin-top:1rem}.progress{height:10px;background:#edf0f5;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:#26a69a}.progress.warning span{background:#ffc107}.progress.danger span{background:#dc3545}.stack-actions{display:flex;flex-wrap:wrap;gap:.6rem}.danger-zone{border-color:#ffd5db}.page-fade{animation:fadeIn .22s ease}@keyframes fadeIn{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:991px){.app-sidebar{transform:translateX(-100%)}.app-sidebar.open{transform:translateX(0)}.app-shell{margin-left:0}.stats-grid,.dashboard-grid,.settings-grid{grid-template-columns:1fr}.filter-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 .75rem}.user-chip span{display:none}}
@media(max-width:520px){.content{padding:.75rem}.filter-grid{grid-template-columns:1fr}.global-search{display:none}.stat-card strong{font-size:1.35rem}.category-item,.tx-row,.budget-item{grid-template-columns:auto 1fr auto}.table th:nth-child(3),.table td:nth-child(3){display:none}.modal-sheet{inset:auto 0 0 0;width:100%;max-height:92vh;border-radius:1rem 1rem 0 0}.fab{right:1rem;bottom:1rem}.page-heading h1{font-size:1.4rem}}
@media print{.app-sidebar,.topbar,.fab,.no-print{display:none!important}.app-shell{margin:0}.content{max-width:none}.panel{box-shadow:none}}
