﻿@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap");

:root {
  --nav-bg: #0f1a2e;
  --body-bg: #eef1f6;
  --card-bg: #ffffff;
  --border: #e2e6ed;
  --ink: #111827;
  --ink2: #4b5563;
  --muted: #9ca3b0;
  --blue: #2563eb;
  --blue-lt: #eef3ff;
  --red: #dc2626;
  --red-lt: #fef2f2;
  --green: #059669;
  --green-lt: #ecfdf5;
}

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--body-bg);min-height:100vh;-webkit-font-smoothing:antialiased}

/* nav */
.nav{background:var(--nav-bg);color:#d0d9e8;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:100;box-shadow:0 1px 6px rgba(0,0,0,.15);gap:16px}
.nav-l{display:flex;align-items:center;gap:10px;flex-shrink:0}
.nav-logo{font-weight:800;font-size:1.1rem;color:#fff;white-space:nowrap}
.nav-logo b{color:#60a5fa}
.nav-center{display:flex;align-items:center;gap:2px;flex:1;justify-content:center}
.nav-link{background:transparent;border:0;color:#94a3b8;font-weight:500;font-size:.84rem;padding:7px 14px;border-radius:8px;transition:color .15s,background .15s}
.nav-link:hover{color:#e2e8f0;background:rgba(255,255,255,.06)}
.nav-link.act{color:#fff;background:rgba(255,255,255,.12)}
.nav-r{display:flex;align-items:center;gap:10px;flex-shrink:0}

/* hamburger */
.hamburger{display:none;flex-direction:column;gap:4px;background:transparent;border:0;cursor:pointer;padding:6px;border-radius:6px}
.hamburger span{display:block;width:20px;height:2px;background:#d0d9e8;border-radius:2px;transition:.2s}
.hamburger:hover span{background:#fff}

.layout{max-width:1160px;margin:0 auto;padding:12px 16px 24px}
.layout-auth{max-width:420px;margin:60px auto;padding:0 16px}

/* cards */
.card{border:1px solid var(--border);border-radius:14px;padding:24px;background:var(--card-bg);box-shadow:0 1px 3px rgba(0,0,0,.04)}
.card h2{font-size:1.2rem;font-weight:700;margin-bottom:4px}
.card .hint{margin-top:12px;font-size:.8rem;color:var(--muted)}

.panel{border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:14px;background:var(--card-bg);box-shadow:0 1px 2px rgba(0,0,0,.03)}
.panel-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.panel-h h3{font-size:1rem;font-weight:700}

/* stat cards */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.stat{border:1px solid var(--border);border-radius:12px;padding:14px;background:#fff}
.stat.d{border-left:4px solid var(--red)}
.stat.c{border-left:4px solid var(--green)}
.stat.b{border-left:4px solid var(--blue)}
.stat-lbl{font-size:.73rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.stat-val{font-size:1.35rem;font-weight:800;margin-top:2px;font-family:"JetBrains Mono",monospace}
.stat-val.dc{color:var(--red)}
.stat-val.cc{color:var(--green)}
.stat-val.neg{color:var(--green)}
.stat-val.pos{color:var(--red)}
.stat-val.zero{color:var(--muted)}

/* forms */
.fgrid{display:grid;gap:10px}
.fgrid.g2{grid-template-columns:1fr 1fr}
.fgrid.g3{grid-template-columns:1fr 1fr 1fr}
.fgrid.g4{grid-template-columns:1fr 1fr 1fr 1fr}
.flbl{display:flex;flex-direction:column;gap:4px;font-size:.79rem;font-weight:500;color:var(--ink2)}

input,select,button,textarea{font-family:inherit;font-size:.86rem;border-radius:8px;border:1px solid var(--border);background:#fff;padding:9px 11px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
button{border:0;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;justify-content:center}
.btn{background:var(--blue);color:#fff}
.btn:hover{background:#1d4ed8}
.btn-ghost{background:#fff;border:1px solid var(--border);color:var(--ink)}
.btn-ghost:hover{background:#f9fafb}
.btn-sm{padding:5px 10px;font-size:.76rem;border-radius:6px}

/* tables */
.tw{overflow-x:auto;border:1px solid var(--border);border-radius:8px}
.tbl{width:100%;border-collapse:collapse;font-size:.83rem;min-width:640px}
.tbl thead th{background:#f8fafc;padding:9px 12px;text-align:left;font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:2px solid var(--border);white-space:nowrap}
.tbl tbody td{padding:10px 12px;border-bottom:1px solid #f3f4f6}
.tbl tbody tr:hover td{background:#fafbfd}

.cust-row{cursor:pointer}
.cust-row:hover td{background:var(--blue-lt)}

.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.badge-dr{background:var(--red-lt);color:var(--red)}
.badge-cr{background:var(--green-lt);color:var(--green)}

.amt-dr{color:var(--red);font-weight:700;font-family:"JetBrains Mono",monospace}
.amt-cr{color:var(--green);font-weight:700;font-family:"JetBrains Mono",monospace}

/* mode picker */
.mpick{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.mbtn{border:1px solid var(--border);background:#fff;color:var(--ink);padding:9px 18px;border-radius:8px;font-weight:600}
.mbtn:hover{background:var(--blue-lt);border-color:var(--blue)}

/* invoice */
.iv-items{display:grid;gap:8px}
.iv-row{border:1px solid var(--border);border-radius:8px;padding:10px;background:#fafbfc}
.iv-fields{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:8px}
.iv-foot{margin-top:8px;display:flex;justify-content:space-between;align-items:center}
.iv-grid{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.iv-totals{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
.iv-totals p{display:flex;justify-content:space-between;margin:6px 0;font-family:"JetBrains Mono",monospace;font-size:.86rem}
.iv-act{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}

/* admin */
.biz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.biz-item{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:#fff}
.chk-row{display:flex;align-items:center;gap:8px;margin-top:4px}

/* entries mobile */
.emb{display:none;gap:8px}
.ecard{border:1px solid var(--border);border-radius:10px;padding:12px;background:#fff}
.erow{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}

/* pagination */
.pagination{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:12px;flex-wrap:wrap}
.pagination button{min-width:34px;padding:6px 8px;font-size:.78rem}
.pagination button.active-page{background:var(--blue);color:#fff;border-color:var(--blue)}
.pagination button:disabled{opacity:.35;cursor:not-allowed}
.pagination .page-dots{padding:6px 4px;font-size:.78rem;color:var(--ink-muted)}

/* dialog */
.dialog-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200}
.dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.2);z-index:201;width:min(520px,92vw);max-height:90vh;overflow-y:auto;padding:20px}
.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.dialog-head h3{font-size:1.1rem;font-weight:700;margin:0}

/* status */
.stbar{text-align:center;font-size:.81rem;padding:8px;color:var(--green);min-height:32px}
.stbar.err{color:var(--red)}

/* mobile menu */
.mmenu-btn{display:none}
.mmenu-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:90}
.mmenu{position:fixed;top:0;left:0;width:min(280px,80vw);height:100vh;background:#fff;z-index:95;box-shadow:20px 0 40px rgba(0,0,0,.15);padding:16px}
.mmenu-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.mmenu-head h3{font-size:1rem;font-weight:700}
.mmenu-lnk{display:grid;gap:6px}
.mlink{text-align:left;padding:11px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;font-weight:600}
.mlink.act{background:var(--blue);color:#fff;border-color:var(--blue)}

.hdn{display:none!important}

@media(max-width:768px){
.fgrid.g2,.fgrid.g3,.fgrid.g4{grid-template-columns:1fr}
.stat-row{grid-template-columns:repeat(2,1fr)}
.iv-fields{grid-template-columns:1fr}
.iv-grid{grid-template-columns:1fr}
.biz-grid{grid-template-columns:1fr}
.tw{display:none}
.emb{display:grid}
.nav-center{display:none}
.hamburger{display:flex}
}

@media(min-width:769px){
.hamburger{display:none}
}
