*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0b0f1a;--surface:#111827;--surface2:#1a2236;
  --accent:#5b9bd5;--accent2:#7ec8e3;
  --text:#e8edf5;--muted:#7a8aaa;--border:rgba(91,155,213,0.13);
  --danger:#e05555;--success:#4caf82;--warning:#e09a3a;
  --font:'DM Sans',sans-serif;--display:'Bebas Neue',sans-serif;
  --radius:10px;
}
html,body{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;}
.layout{display:flex;min-height:100vh;}

/* Sidebar */
.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:0;flex-shrink:0;position:fixed;top:0;left:0;height:100vh;}
.sb-logo{font-family:var(--display);font-size:1.4rem;letter-spacing:2px;padding:24px 24px 20px;border-bottom:1px solid var(--border);}
.sb-logo span{color:var(--accent);}
.sb-nav{display:flex;flex-direction:column;padding:16px 12px;gap:4px;flex:1;}
.sb-nav a{color:var(--muted);text-decoration:none;padding:10px 14px;border-radius:8px;font-size:0.88rem;font-weight:400;transition:all 0.2s;display:flex;align-items:center;gap:10px;}
.sb-nav a:hover{background:var(--surface2);color:var(--text);}
.sb-nav a.active{background:rgba(91,155,213,0.12);color:var(--accent);font-weight:600;}
.sb-nav a.logout{margin-top:auto;color:var(--danger);}
.sb-nav a.logout:hover{background:rgba(224,85,85,0.1);}

/* Main */
.main-content{margin-left:220px;flex:1;padding:32px 36px;overflow-y:auto;}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;}
.page-title{font-family:var(--display);font-size:2rem;letter-spacing:1px;}
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:40px;font-size:0.85rem;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:all 0.2s;}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{background:var(--accent2);}
.btn-danger{background:rgba(224,85,85,0.15);color:var(--danger);border:1px solid rgba(224,85,85,0.3);}
.btn-danger:hover{background:rgba(224,85,85,0.25);}
.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn-sm{padding:6px 14px;font-size:0.78rem;}
.btn-success{background:rgba(76,175,130,0.15);color:var(--success);border:1px solid rgba(76,175,130,0.3);}

/* Stats */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;}
.stat-card .label{color:var(--muted);font-size:0.78rem;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;}
.stat-card .value{font-family:var(--display);font-size:2.2rem;color:var(--text);line-height:1;}
.stat-card .value.accent{color:var(--accent);}
.stat-card .value.success{color:var(--success);}
.stat-card .value.warning{color:var(--warning);}

/* Table */
.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
table{width:100%;border-collapse:collapse;}
thead th{background:var(--surface2);padding:12px 16px;text-align:left;font-size:0.78rem;color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-weight:600;}
tbody td{padding:13px 16px;border-top:1px solid var(--border);font-size:0.88rem;vertical-align:middle;}
tbody tr:hover{background:rgba(91,155,213,0.03);}
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:0.72rem;font-weight:700;letter-spacing:0.5px;}
.badge-paid{background:rgba(76,175,130,0.15);color:var(--success);}
.badge-unpaid{background:rgba(224,85,85,0.15);color:var(--danger);}
.badge-draft{background:rgba(160,160,160,0.15);color:var(--muted);}

/* Forms */
.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form-grid.full{grid-template-columns:1fr;}
.form-group{display:flex;flex-direction:column;gap:6px;}
.form-group.span2{grid-column:span 2;}
label{font-size:0.8rem;color:var(--muted);font-weight:500;letter-spacing:0.5px;}
input,select,textarea{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--text);font-family:var(--font);font-size:0.9rem;outline:none;transition:border-color 0.2s;width:100%;}
input:focus,select:focus,textarea:focus{border-color:var(--accent);}
select option{background:var(--surface);}
textarea{resize:vertical;}
.form-actions{display:flex;gap:12px;margin-top:24px;}
.section-divider{font-family:var(--display);font-size:1rem;letter-spacing:2px;color:var(--muted);margin:28px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border);}

/* Invoice items */
.items-table{width:100%;border-collapse:collapse;margin-bottom:12px;}
.items-table th{text-align:left;font-size:0.78rem;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--border);}
.items-table td{padding:8px 10px;}
.items-table input,.items-table select{padding:8px 10px;font-size:0.85rem;}
.items-total{text-align:right;font-family:var(--display);font-size:1.4rem;color:var(--accent);margin-top:8px;}

/* Invoice print view */
.invoice-doc{background:#fff;color:#111;padding:60px;max-width:820px;margin:0 auto;border-radius:var(--radius);}
.invoice-doc h1{font-family:var(--display);font-size:3rem;letter-spacing:2px;color:#0b0f1a;margin-bottom:4px;}
.invoice-doc .inv-meta{color:#666;font-size:0.85rem;margin-bottom:32px;}
.invoice-doc .inv-row{display:flex;justify-content:space-between;margin-bottom:32px;}
.invoice-doc .inv-label{font-size:0.75rem;text-transform:uppercase;letter-spacing:1px;color:#999;margin-bottom:4px;}
.invoice-doc table{width:100%;border-collapse:collapse;margin-bottom:24px;}
.invoice-doc thead th{background:#f5f7fa;padding:10px 14px;text-align:left;font-size:0.78rem;text-transform:uppercase;letter-spacing:1px;color:#666;}
.invoice-doc tbody td{padding:12px 14px;border-bottom:1px solid #eee;font-size:0.9rem;}
.invoice-doc .inv-totals{text-align:right;}
.invoice-doc .inv-totals .total-line{font-size:1.5rem;font-weight:700;color:#0b0f1a;}
.invoice-doc .inv-footer{margin-top:40px;padding-top:20px;border-top:1px solid #eee;font-size:0.8rem;color:#999;text-align:center;}
.inv-status-paid{color:#4caf82;font-weight:700;}
.inv-status-unpaid{color:#e05555;font-weight:700;}
@media print{
  .sidebar,.page-header .btn,.no-print{display:none!important;}
  .main-content{margin:0;padding:0;}
  .invoice-doc{box-shadow:none;}
}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:48px 44px;width:100%;max-width:420px;}
.login-card .login-logo{font-family:var(--display);font-size:2rem;letter-spacing:3px;margin-bottom:8px;}
.login-card .login-logo span{color:var(--accent);}
.login-card p{color:var(--muted);font-size:0.88rem;margin-bottom:32px;}
.alert{padding:10px 16px;border-radius:8px;font-size:0.85rem;margin-bottom:16px;}
.alert-error{background:rgba(224,85,85,0.1);color:var(--danger);border:1px solid rgba(224,85,85,0.2);}
