:root{
  --tiffany:#66e1e1;
  --polynesian:#0f4c99;
  --polynesian-dark:#0a3266;
  --polynesian-deep:#082448;
  --emerald:#14cd65;
  --emerald-dark:#0fae54;
  --ink:#0b2545;
  --muted:#5b7290;
  --azure:#eefffe;
}
*{box-sizing:border-box;}
body{margin:0;font-family:'Poppins',Arial,sans-serif;color:var(--ink);background:#f3f7fb;}
a{color:inherit;text-decoration:none;}

/* ---- Auth pages (login / setup) ---- */
.auth-body{
  display:flex;align-items:center;justify-content:center;min-height:100vh;
  background:radial-gradient(120% 140% at 20% 10%, var(--polynesian) 0%, var(--polynesian-dark) 55%, var(--polynesian-deep) 100%);
  padding:20px;
}
.auth-card{
  width:100%;max-width:400px;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);border-radius:20px;
  padding:40px 34px;text-align:center;backdrop-filter:blur(6px);color:#fff;
}
.auth-card h1{font-size:22px;margin:0 0 4px;}
.auth-card h2{font-size:15px;color:var(--tiffany);margin:0 0 14px;}
.auth-card .muted{color:#c9dcf1;font-size:13.5px;line-height:1.6;margin:0 0 24px;}
.auth-card .error{color:#ffb4b4;font-size:13.5px;margin-bottom:14px;}
.auth-card .success{color:#a6f0c2;font-size:13.5px;margin-bottom:14px;}
.auth-card .field{text-align:left;margin-bottom:14px;}
.auth-card label{display:block;font-size:12.5px;color:#c9dcf1;margin-bottom:6px;}
.auth-card input{
  width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);color:#fff;font-size:14px;font-family:inherit;
}
.btn-primary{
  width:100%;background:var(--emerald);color:#06301a;font-weight:600;font-size:14.5px;
  padding:13px;border-radius:999px;border:none;margin-top:8px;cursor:pointer;
}
.btn-primary:hover{background:var(--emerald-dark);}

/* ---- Dashboard shell ---- */
.shell{display:flex;min-height:100vh;}
.sidebar{
  width:250px;flex-shrink:0;background:linear-gradient(180deg,#134a8c 0%, #0d3868 100%);
  padding:26px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;
}
.sidebar .brand{color:#fff;font-weight:700;font-size:16px;margin-bottom:26px;padding:0 8px;}
.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto;}
.sidebar nav a{
  color:#fff;font-size:14px;font-weight:500;padding:11px 13px;border-radius:10px;
  display:block;
}
.sidebar nav a:hover{background:rgba(255,255,255,.09);}
.sidebar nav a.active{background:var(--tiffany);color:var(--polynesian-deep);}
.sidebar .signout{
  color:#b9cbe3;font-size:13.5px;padding:11px 13px;margin-top:12px;
  border-top:1px solid rgba(255,255,255,.14);padding-top:18px;
}
.sidebar .signout:hover{color:#fff;}

.main{flex:1;min-width:0;padding:36px 44px;}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;}
.topbar h1{font-size:22px;margin:0;}
.topbar span{font-size:13.5px;color:var(--muted);}

.panel{background:#fff;border:1px solid #e3edf5;border-radius:16px;padding:28px;}
.panel + .panel{margin-top:20px;}

.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px;}
.field input[type=text],
.field input[type=email],
.field input[type=url],
.field input[type=number],
.field input[type=password],
.field select,
.field textarea{
  width:100%;padding:11px 13px;border-radius:10px;border:1px solid #d8e3ee;
  font-size:14px;font-family:inherit;color:var(--ink);
}
.field textarea{resize:vertical;}

.btn{
  display:inline-flex;align-items:center;gap:8px;background:var(--polynesian);color:#fff;
  font-weight:600;font-size:14px;padding:11px 20px;border-radius:999px;border:none;cursor:pointer;
}
.btn:hover{background:var(--polynesian-dark);}
.btn.danger{background:#b22424;}
.btn.danger:hover{background:#8f1c1c;}
.btn.ghost{background:transparent;color:var(--polynesian);border:1px solid #d8e3ee;}

.table{width:100%;border-collapse:collapse;font-size:14px;}
.table th{text-align:left;padding:10px 12px;color:var(--muted);font-weight:600;border-bottom:1px solid #e3edf5;}
.table td{padding:12px;border-bottom:1px solid #eef3f8;vertical-align:top;}
.table tr:last-child td{border-bottom:none;}

.badge{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--azure);color:var(--polynesian);}
.badge.unread{background:#fdeceb;color:#b22424;}

.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px;}
.stat-card{background:#fff;border:1px solid #e3edf5;border-radius:14px;padding:20px;}
.stat-card .num{font-size:26px;font-weight:700;color:var(--polynesian);}
.stat-card .lbl{font-size:13px;color:var(--muted);margin-top:4px;}

.notice{background:#eafaf0;border:1px solid #b9ecc9;color:#0f7a3d;padding:12px 16px;border-radius:10px;font-size:13.5px;margin-bottom:18px;}
.row-actions{display:flex;gap:8px;}
.row-actions form{display:inline;}

@media (max-width:860px){
  .shell{flex-direction:column;}
  .sidebar{width:100%;height:auto;position:relative;}
  .stat-grid{grid-template-columns:1fr;}
}
