:root{
  --brand:#0b8457;--brand-2:#0aa06e;--accent:#ff7a1a;--dark:#12261f;
  --ink:#1c2b25;--muted:#6b7d75;--bg:#eef4f1;--card:#fff;--line:#e2ece7;
  --shadow:0 8px 24px rgba(11,132,87,.10);--radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Poppins',system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}

/* ---- Login ---- */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;
  background:linear-gradient(135deg,#0b8457,#0c1f18)}
.auth-card{background:#fff;border-radius:20px;width:min(400px,100%);padding:38px 34px;box-shadow:0 30px 60px rgba(0,0,0,.3)}
.auth-card .logo{width:64px;height:64px;border-radius:18px;margin:0 auto 16px;background:linear-gradient(135deg,var(--brand),var(--brand-2));display:grid;place-items:center;font-size:2rem;color:#fff}
.auth-card h1{text-align:center;font-size:1.35rem;color:var(--dark)}
.auth-card .sub{text-align:center;color:var(--muted);font-size:.88rem;margin-bottom:22px}
.auth-card .field{margin-bottom:16px}
.auth-card label{display:block;font-size:.85rem;font-weight:500;margin-bottom:6px}
.auth-card input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font-size:1rem;font-family:inherit}
.auth-card input:focus{outline:none;border-color:var(--brand)}
.pin-input{letter-spacing:.6em;text-align:center;font-size:1.4rem !important;font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;border:none;cursor:pointer;
  font-weight:600;padding:13px;border-radius:10px;background:var(--brand);color:#fff;font-size:1rem;transition:.2s}
.btn:hover{background:var(--brand-2)}
.btn.sm{width:auto;padding:8px 16px;font-size:.86rem;border-radius:8px}
.btn.danger{background:#d64545}.btn.danger:hover{background:#c13a3a}
.btn.gray{background:#8296a0}
.alert{padding:11px 14px;border-radius:9px;font-size:.9rem;margin-bottom:16px}
.alert.err{background:#fdecec;color:#b23b3b;border:1px solid #f5c9c9}
.alert.ok{background:#e5f7ee;color:#0b6b45;border:1px solid #b7e6cf}
.step-note{text-align:center;font-size:.8rem;color:var(--muted);margin-top:14px}

/* ---- Layout ---- */
.layout{display:flex;min-height:100vh}
.sidebar{width:250px;background:var(--dark);color:#cfe6dc;padding:22px 0;position:fixed;height:100vh;overflow:auto}
.sidebar .brand{padding:0 22px 20px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:14px}
.sidebar .brand b{color:#fff;font-size:1.1rem}
.sidebar .brand small{color:var(--accent);font-size:.72rem;display:block}
.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px 22px;font-size:.92rem;color:#bcd5c9;transition:.15s}
.sidebar nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.sidebar nav a.active{background:var(--brand);color:#fff;border-left:4px solid var(--accent)}
.sidebar nav a .ic{font-size:1.15rem}
.main{margin-left:250px;flex:1;padding:26px 30px;width:calc(100% - 250px)}
.topnav{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.topnav h1{font-size:1.4rem;color:var(--dark)}
.topnav .who{display:flex;align-items:center;gap:14px;font-size:.9rem;color:var(--muted)}

/* ---- Cards / stats ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:26px}
.stat{background:var(--card);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow);border:1px solid var(--line)}
.stat .n{font-size:1.9rem;font-weight:700;color:var(--brand)}
.stat .l{color:var(--muted);font-size:.86rem}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);padding:24px;margin-bottom:24px}
.card h2{font-size:1.1rem;color:var(--dark);margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}

/* ---- Forms ---- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid .full{grid-column:1/-1}
.field{margin-bottom:14px}
.field label{display:block;font-size:.85rem;font-weight:500;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:10px 13px;border:1.5px solid var(--line);border-radius:9px;font-size:.94rem;font-family:inherit;background:#fbfefc}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand)}
.field small{color:var(--muted);font-size:.78rem}

/* ---- Table ---- */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
th{background:#f3f8f5;color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
tr:hover td{background:#f9fdfb}
.thumb{width:54px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.74rem;font-weight:600}
.badge.on{background:#e5f7ee;color:#0b6b45}.badge.off{background:#f1f1f1;color:#888}
.badge.new{background:#fff3e0;color:#c47500}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.actions a,.actions button{font-size:.8rem;padding:6px 12px;border-radius:7px;border:none;cursor:pointer}
.a-edit{background:#e8f0fe;color:#1a56c4}
.a-del{background:#fdecec;color:#c13a3a}
.a-view{background:#eef4f1;color:var(--ink)}
.empty{text-align:center;color:var(--muted);padding:30px}
.mobile-toggle{display:none}

@media(max-width:900px){
  .form-grid{grid-template-columns:1fr}
  .sidebar{left:-260px;transition:left .3s;z-index:100}
  .sidebar.open{left:0}
  .main{margin-left:0;width:100%}
  .mobile-toggle{display:inline-block;background:var(--dark);color:#fff;border:none;padding:8px 12px;border-radius:8px;font-size:1.1rem;cursor:pointer}
}
