
:root{
  --blue:#002FA7;
  --bg:#f5f6fa;
  --text:#111;
  --muted:#666;
  --card:#fff;
  --border:#eaecef;
}
*{box-sizing:border-box}
html,body{height:100%;}
body{margin:0;font-family:-apple-system,system-ui,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);}

.hidden{display:none;}
.view{min-height:100vh;}

/* Login */
.login-card{
  width:min(420px,90%);
  margin:12vh auto 0;
  background:#fff;
  border-radius:16px;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
  padding:28px 24px;
  text-align:center;
}
.login-card h1{margin:0 0 6px 0;font-size:22px;color:var(--text);}
.subtitle{margin:0 0 22px 0;color:var(--muted);font-size:13px;}
.field{margin:12px 0;text-align:left;}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;}
.field input{
  width:100%;height:44px;padding:0 12px;border:1px solid var(--border);
  border-radius:10px;outline:none;font-size:14px;background:#fff;
}
button#loginBtn{
  width:100%;height:44px;border:none;border-radius:999px;
  background:var(--blue);color:#fff;font-weight:700;font-size:15px;
  margin-top:12px;cursor:pointer;
}
.msg{min-height:18px;color:#d33;font-size:12px;margin-top:8px;}

/* Dashboard */
.topbar{
  height:56px;background:linear-gradient(90deg,var(--blue),#2356d7);
  color:#fff;display:flex;align-items:center;justify-content:space-between;
  padding:0 16px;box-shadow:0 6px 20px rgba(0,0,0,.08);
}
.topbar .brand{font-weight:700}
.topbar .actions button{
  height:34px;border:none;border-radius:999px;padding:0 14px;cursor:pointer;
}

.layout{display:flex;min-height:calc(100vh - 56px);}
.sidebar{
  width:240px;background:#0f1a44; /* deep blue */
  color:#cbd3ff; padding:14px 10px;
}
.sidebar .nav-item{
  display:block;color:#cbd3ff;text-decoration:none;padding:10px 12px;
  border-radius:10px;margin:6px 0;font-size:14px;
}
.sidebar .nav-item:hover{background:rgba(255,255,255,.08)}
.content{flex:1;padding:18px;}
.card{
  background:var(--card);border:1px solid var(--border);
  border-radius:16px;box-shadow:0 6px 18px rgba(0,0,0,.04);
  padding:16px;margin-bottom:16px;
}
.card h3{margin:0 0 10px 0;}
.table{width:100%;border-collapse:collapse;font-size:14px;}
.table th,.table td{border-bottom:1px solid var(--border);padding:10px;text-align:left;}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
input[type="text"],input[type="number"]{height:36px;border:1px solid var(--border);border-radius:8px;padding:0 10px;}
button.primary{background:var(--blue);color:#fff;border:none;height:36px;border-radius:8px;padding:0 12px;cursor:pointer;}
button.ghost{background:#fff;border:1px solid var(--border);height:36px;border-radius:8px;padding:0 12px;cursor:pointer;}
.badge{display:inline-block;background:#eef3ff;color:#3b5bdb;border-radius:999px;font-size:12px;padding:2px 8px;}
