:root{
      --panel:#fff;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;
      --accent:#16a34a;--danger:#dc2626;--shadow:0 18px 50px rgba(15,23,42,.08);
      --radius:22px;--sidebar:260px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f1f5f9;min-height:100vh}
    button,input,select{font:inherit}button{cursor:pointer}
    .app{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr}
    .sidebar{position:sticky;top:0;height:100vh;background:#0f172a;color:#fff;padding:24px 18px;display:flex;flex-direction:column}
    .brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}
    .logo{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-weight:900;background:linear-gradient(135deg,#22c55e,#0f766e);box-shadow:0 10px 25px rgba(34,197,94,.2)}
    .brand h1{font-size:17px;margin:0}.brand p{margin:2px 0 0;color:#94a3b8;font-size:11px}
    .nav-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#64748b;font-weight:800;padding:8px 12px}
    .nav{display:grid;gap:7px}
    .nav-btn{width:100%;border:0;background:transparent;color:#cbd5e1;text-align:left;padding:12px 13px;border-radius:13px;font-weight:750;display:flex;align-items:center;gap:10px}
    .nav-btn:hover{background:rgba(255,255,255,.06);color:#fff}.nav-btn.active{background:rgba(34,197,94,.15);color:#86efac}
    .side-note{margin-top:auto;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:16px;color:#94a3b8;font-size:11px;line-height:1.5;background:rgba(255,255,255,.03)}
    .content{min-width:0;padding:26px}
    .topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}
    .topbar h2{margin:0;font-size:25px;letter-spacing:-.035em}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}
    .top-actions{display:flex;align-items:center;gap:8px}.date-pill{background:white;border:1px solid var(--line);border-radius:999px;padding:9px 13px;font-size:12px;color:var(--muted)}
    .user-pill{display:none;background:#ecfdf5;color:#166534;border:1px solid #bbf7d0;border-radius:999px;padding:9px 12px;font-size:11px;font-weight:850}
    .page{display:none}.page.active{display:block}
    .hero{color:white;background:linear-gradient(135deg,#0f172a,#1e293b);border-radius:28px;padding:28px;display:grid;grid-template-columns:1.5fr .75fr;gap:24px;position:relative;overflow:hidden;box-shadow:var(--shadow)}
    .hero:after{content:"";position:absolute;right:-80px;top:-100px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(34,197,94,.35),transparent 68%)}
    .eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#86efac;font-weight:900}
    .hero h3{font-size:clamp(28px,4vw,47px);line-height:1.04;margin:11px 0 12px;letter-spacing:-.045em}.hero p{max-width:650px;color:#cbd5e1;line-height:1.6;margin:0}
    .hero-balance{z-index:1;align-self:end;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);padding:20px;border-radius:21px}
    .hero-balance span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#cbd5e1}.hero-balance strong{display:block;font-size:30px;margin-top:7px;letter-spacing:-.04em}
    .stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:16px 0}
    .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
    .stat .meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}
    .dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.green{background:#22c55e}.red{background:#ef4444}.amber{background:#f59e0b}.purple{background:#8b5cf6}.blue{background:#3b82f6}
    .stat strong{display:block;font-size:23px;letter-spacing:-.035em;margin:11px 0 2px}.stat small{color:#94a3b8;font-size:11px}
    .main-grid{display:grid;grid-template-columns:1fr;gap:16px}
    .section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}
    .section-head h3,.form-card h3{font-size:16px;margin:0}.section-head p,.form-card>p{margin:4px 0 0;color:var(--muted);font-size:12px}
    .quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
    .quick{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px;text-align:left;transition:.18s}.quick:hover{transform:translateY(-1px);box-shadow:0 10px 25px rgba(15,23,42,.07)}
    .quick b{display:block;font-size:13px}.quick span{display:block;color:var(--muted);font-size:11px;margin-top:4px}
    .user-layout{display:grid;grid-template-columns:370px 1fr;gap:16px;align-items:start}
    label{display:block;font-size:11px;font-weight:850;color:#334155;margin-bottom:7px}.field{margin-bottom:13px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    input,select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);outline:none}
    input:focus,select:focus{border-color:#86efac;box-shadow:0 0 0 4px rgba(34,197,94,.1)}
    .primary{width:100%;border:0;border-radius:13px;padding:12px 15px;color:white;font-weight:850;background:linear-gradient(135deg,#16a34a,#0f766e);box-shadow:0 10px 22px rgba(22,163,74,.18)}
    .toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
    .export-actions{display:flex;gap:7px;flex-wrap:wrap}
    .filters{display:flex;gap:7px;flex-wrap:wrap}
    .chip,.secondary{border:1px solid var(--line);background:white;color:#475569;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800}
    .chip.active{background:#0f172a;color:#fff;border-color:#0f172a}.secondary{border-radius:11px}
    .logout{border:1px solid #fecaca;background:#fff1f2;color:#be123c;border-radius:11px;padding:8px 11px;font-size:11px;font-weight:850}
    .table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}
    th{font-size:10px;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;text-align:left;padding:11px 9px;border-bottom:1px solid var(--line)}
    td{padding:12px 9px;border-bottom:1px solid #f1f5f9;font-size:12px}tr:last-child td{border-bottom:0}
    .badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:850}
    .in{color:#166534;background:#dcfce7}.out{color:#991b1b;background:#fee2e2}.debt-b{color:#92400e;background:#fef3c7}.recv-b{color:#6b21a8;background:#f3e8ff}
    .amount-income,.amount-debt{color:#15803d;font-weight:850}.amount-expense,.amount-receivable{color:#b91c1c;font-weight:850}
    .delete{border:0;background:#fff1f2;color:#be123c;border-radius:9px;padding:6px 8px;font-size:10px;font-weight:850}
    .empty{text-align:center;color:var(--muted);padding:34px 20px;font-size:12px}.empty span{display:block;font-size:28px;margin-bottom:7px}
    .recent-list{display:grid;gap:10px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:3px}
    .recent-item{
      padding:12px 13px;
      border:1px solid #e8eef5;
      border-left:4px solid #cbd5e1;
      border-radius:14px;
      background:#fbfdff
    }
    .recent-item.recent-income{border-left-color:#22c55e}
    .recent-item.recent-expense{border-left-color:#ef4444}
    .recent-item.recent-debt{border-left-color:#f59e0b}
    .recent-item.recent-receivable{border-left-color:#8b5cf6}
    .recent-head{
      display:flex;align-items:center;justify-content:space-between;
      gap:8px;margin-bottom:8px
    }
    .recent-kind{
      display:inline-flex;align-items:center;
      padding:4px 7px;border-radius:999px;
      font-size:9px;font-weight:900
    }
    .recent-income .recent-kind{background:#dcfce7;color:#166534}
    .recent-expense .recent-kind{background:#fee2e2;color:#991b1b}
    .recent-debt .recent-kind{background:#fef3c7;color:#92400e}
    .recent-receivable .recent-kind{background:#f3e8ff;color:#6b21a8}
    .recent-user{
      color:#64748b;font-size:9px;font-weight:800;
      white-space:nowrap
    }
    .recent-body{
      display:grid;grid-template-columns:minmax(0,1fr) auto;
      gap:12px;align-items:center
    }
    .recent-title{
      font-size:14px;font-weight:900;line-height:1.25;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis
    }
    .recent-meta{
      margin-top:4px;color:#94a3b8;
      font-size:10px;line-height:1.35
    }
    .recent-amount{
      font-size:14px;font-weight:950;
      white-space:nowrap;text-align:right
    }
    .footer{margin-top:20px;color:#94a3b8;text-align:center;font-size:11px}
    .mobile-nav{display:none}
    .login-wrap{min-height:65vh;display:grid;place-items:center;padding:20px}
    .login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:26px}
    .login-icon{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#0f172a,#1e293b);color:#86efac;display:grid;place-items:center;font-size:24px;margin-bottom:18px}
    .login-card h3{margin:0;font-size:24px;letter-spacing:-.03em}.login-card>p{color:var(--muted);font-size:13px;line-height:1.55;margin:7px 0 20px}
    .login-error{display:none;background:#fff1f2;color:#be123c;border:1px solid #fecdd3;border-radius:12px;padding:10px 12px;font-size:12px;margin-bottom:12px}
    .access-note{margin-top:14px;border-radius:14px;padding:11px 12px;background:#f8fafc;color:#64748b;font-size:11px;line-height:1.5;border:1px solid var(--line)}
    .role-banner{display:none;margin-bottom:14px;padding:12px 14px;border-radius:14px;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;font-size:12px}
    @media(max-width:1050px){.stats{grid-template-columns:repeat(3,1fr)}.main-grid{grid-template-columns:1fr}.user-layout{grid-template-columns:1fr}}
    
    @media(max-width:760px){
      body{background:#f8fafc}
      .app{display:block}
      .sidebar{display:none}
      .content{padding:14px 12px 92px}
      .topbar{
        position:sticky;top:0;z-index:12;
        background:rgba(248,250,252,.94);backdrop-filter:blur(12px);
        margin:0 -12px 14px;padding:10px 12px 12px;
        border-bottom:1px solid rgba(226,232,240,.8)
      }
      .topbar h2{font-size:20px;line-height:1.15}
      .topbar p{font-size:11px;margin-top:3px}
      .date-pill{display:none}
      .top-actions{gap:6px}
      .logout{padding:8px 10px}
      .user-pill{max-width:135px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

      .hero{
        grid-template-columns:1fr;
        padding:20px;border-radius:22px;gap:18px
      }
      .hero h3{font-size:31px;line-height:1.02;margin:9px 0 10px}
      .hero p{font-size:13px;line-height:1.55}
      .hero-balance{padding:16px;border-radius:17px}
      .hero-balance strong{font-size:27px}

      .stats{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;margin:12px 0
      }
      .card{padding:14px;border-radius:18px}
      .stat{min-width:0}
      .stat .meta{font-size:10px}
      .stat strong{font-size:18px;margin:8px 0 2px;overflow-wrap:anywhere}
      .stat small{font-size:9px}

      .main-grid,.user-layout{grid-template-columns:1fr;gap:12px}
      .quick-actions{grid-template-columns:1fr 1fr;gap:8px}
      .quick{padding:12px;border-radius:14px}
      .quick b{font-size:12px}
      .quick span{font-size:10px;line-height:1.4}

      .section-head{margin-bottom:10px}
      .recent-list{gap:9px;-webkit-overflow-scrolling:touch}
      .recent-item{padding:12px;border-radius:13px}
      .recent-head{margin-bottom:7px}
      .recent-title{font-size:14px}
      .recent-meta{font-size:10px}
      .recent-amount{font-size:14px}

      .login-wrap{min-height:auto;padding:14px 0}
      .login-card{padding:20px;border-radius:22px}
      .login-icon{width:50px;height:50px;border-radius:15px;font-size:21px;margin-bottom:14px}
      .login-card h3{font-size:22px}
      .login-card>p{font-size:12px}

      .role-banner{font-size:11px;line-height:1.45;padding:10px 12px}
      .two{grid-template-columns:1fr}
      .field{margin-bottom:11px}
      input,select{min-height:46px;font-size:16px;padding:11px 12px}
      .primary{min-height:48px;font-size:14px}
      .toolbar{align-items:stretch;gap:8px}
      .filters{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
      .chip,.secondary{min-height:40px;padding:8px 10px}
      .secondary{border-radius:12px}
      .export-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
      #exportCsvBtn,#exportPdfBtn,#clearBtn{width:100%}

      /* Transaction table becomes stacked cards on mobile */
      .table-wrap{overflow:visible}
      table{min-width:0;width:100%}
      thead{display:none}
      tbody{display:grid;gap:10px}
      tbody tr{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px 12px;
        padding:13px;
        border:1px solid var(--line);
        border-radius:15px;
        background:#fff;
        box-shadow:0 8px 22px rgba(15,23,42,.05)
      }
      tbody td{
        display:block;
        padding:0;border:0;
        font-size:12px;min-width:0
      }
      tbody td::before{
        content:attr(data-label);
        display:block;
        margin-bottom:3px;
        color:#94a3b8;
        font-size:9px;
        font-weight:850;
        text-transform:uppercase;
        letter-spacing:.07em
      }
      tbody td:nth-child(2),
      tbody td:nth-child(5),
      tbody td:nth-child(6),
      tbody td:nth-child(7){grid-column:1/-1}
      tbody td:nth-child(2) strong{font-size:14px}
      tbody td:last-child:empty{display:none}
      .delete{width:100%;min-height:38px}

      .mobile-nav{
        display:grid;
        grid-template-columns:1fr 1fr;
        position:fixed;z-index:30;
        left:10px;right:10px;bottom:10px;
        background:rgba(15,23,42,.96);
        backdrop-filter:blur(12px);
        padding:7px;
        border:1px solid rgba(255,255,255,.08);
        border-radius:18px;
        box-shadow:0 16px 40px rgba(15,23,42,.35)
      }
      .mobile-nav button{
        min-height:48px;border:0;background:transparent;color:#94a3b8;
        padding:10px;border-radius:13px;font-weight:850;font-size:12px
      }
      .mobile-nav button.active{background:#1e293b;color:#86efac}
      .footer{margin-top:16px;font-size:10px}
    }

    @media(max-width:430px){
      .content{padding-left:10px;padding-right:10px}
      .topbar{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}
      .hero h3{font-size:27px}
      .stats{grid-template-columns:1fr 1fr}
      .stats .card:last-child{grid-column:1/-1}
      .quick-actions{grid-template-columns:1fr}

      #recentList{margin-top:2px}
      #recentList + *{margin-top:0}
      .filters{grid-template-columns:1fr 1fr}
      .user-pill{display:none!important}
      tbody tr{grid-template-columns:1fr}
      tbody td:nth-child(n){grid-column:1}
      tbody td:nth-child(2),
      tbody td:nth-child(5),
      tbody td:nth-child(6),
      tbody td:nth-child(7){grid-column:1}
      .recent-body{
        grid-template-columns:1fr;
        gap:7px
      }
      .recent-amount{text-align:left}
      .recent-user{max-width:130px;overflow:hidden;text-overflow:ellipsis}
    }
