:root{
  --primary:#2f6fd6;
  --primary-dark:#1f56b0;
  --sidebar-w:260px;
  --danger:#e0364a;
  --success:#2fae5c;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Segoe UI',Arial,sans-serif;
  background:#f2f4f8;
  color:#333;
}
a{text-decoration:none;color:inherit;}

/* Topbar */
.topbar{
  position:fixed;top:0;left:var(--sidebar-w);right:0;height:60px;
  background:var(--primary);color:#fff;display:flex;align-items:center;
  justify-content:space-between;padding:0 20px;z-index:20;
}
.topbar .userbox{display:flex;align-items:center;gap:8px;font-weight:600;}
.menu-toggle{background:none;border:none;color:#fff;font-size:22px;cursor:pointer;display:none;}

/* Sidebar */
.sidebar{
  position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);
  background:#fff;border-right:1px solid #e3e6ec;overflow-y:auto;z-index:30;
}
.sidebar .brand{
  height:60px;display:flex;align-items:center;gap:8px;padding:0 18px;
  background:var(--primary);color:#fff;font-weight:700;font-size:18px;
}
.sidebar .admin-info{padding:16px 18px;border-bottom:1px solid #eee;display:flex;align-items:center;gap:10px;}
.sidebar .admin-info img{width:38px;height:38px;border-radius:50%;background:#ddd;}
.sidebar nav{padding:10px 0;}
.sidebar nav a.nav-link{
  display:flex;align-items:center;gap:10px;padding:12px 20px;color:#333;font-weight:500;
  border-left:4px solid transparent;
}
.sidebar nav a.nav-link:hover,.sidebar nav a.nav-link.active{
  background:var(--primary);color:#fff;border-left-color:var(--primary-dark);
}
.sidebar .submenu a{
  display:block;padding:10px 20px 10px 46px;color:#555;font-size:14px;
}
.sidebar .submenu a:hover,.sidebar .submenu a.active{color:var(--primary);font-weight:600;}
.sidebar .section-title{padding:14px 20px 4px;font-size:12px;color:#999;text-transform:uppercase;}

.sidebar .menu-group{border-bottom:1px solid #f0f0f0;}
.sidebar .menu-header{
  display:flex;align-items:center;justify-content:space-between;padding:13px 20px;
  font-size:12px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.4px;
  cursor:pointer;user-select:none;
}
.sidebar .menu-header:hover{color:var(--primary);background:#f7f9fc;}
.sidebar .menu-header.open{color:var(--primary);}
.sidebar .menu-header .arrow{font-size:11px;}
.sidebar .submenu a{
  display:block;padding:10px 20px 10px 34px;color:#444;font-size:14px;font-weight:500;
  border-left:3px solid transparent;
}
.sidebar .submenu a:hover,.sidebar .submenu a.active{
  color:var(--primary);background:#f0f5ff;border-left-color:var(--primary);font-weight:700;
}

/* Content */
.content{
  margin-left:var(--sidebar-w);
  padding:80px 24px 40px;
}
.page-header{
  background:var(--primary);color:#fff;padding:16px 22px;border-radius:6px;
  display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;
}
.page-header h1{font-size:22px;margin:0;font-weight:600;}
.page-header .breadcrumb a{color:#dce8ff;}

.card-box{background:#fff;border-radius:6px;padding:22px;box-shadow:0 1px 3px rgba(0,0,0,.08);margin-bottom:20px;}

.btn{
  display:inline-block;padding:9px 18px;border-radius:4px;border:none;cursor:pointer;
  font-weight:600;font-size:14px;
}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-dark);}
.btn-danger{background:var(--danger);color:#fff;}
.btn-success{background:var(--success);color:#fff;}
.btn-sm{padding:5px 10px;font-size:12px;}
.btn-outline{background:#fff;border:1px solid var(--primary);color:var(--primary);}

.tab-group{margin-bottom:20px;display:flex;flex-wrap:wrap;gap:8px;}
.tab-group a{padding:8px 16px;border-radius:4px;font-weight:600;font-size:13px;color:#fff;background:var(--success);}
.tab-group a.active{background:var(--danger);}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 30px;}
@media(max-width:800px){.form-grid{grid-template-columns:1fr;}}
.form-group label{display:block;font-weight:700;font-size:13px;margin-bottom:6px;color:#222;}
.form-group label .req{color:var(--danger);}
.form-group input,.form-group select,.form-group textarea{
  width:100%;padding:10px 12px;border:1px solid #ccd3de;border-radius:4px;font-size:14px;background:#fff;
}
.form-group input[readonly]{background:#eef0f4;}

table.data-table{width:100%;border-collapse:collapse;font-size:14px;}
table.data-table th{background:#f5f7fb;text-align:left;padding:10px;border-bottom:2px solid #e3e6ec;white-space:nowrap;}
table.data-table td{padding:10px;border-bottom:1px solid #eee;}
table.data-table tr:hover td{background:#fafbfd;}

.table-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:10px;}
.table-toolbar input.search{padding:8px 10px;border:1px solid #ccd3de;border-radius:4px;width:220px;}

.alert{padding:12px 16px;border-radius:4px;margin-bottom:16px;font-weight:500;}
.alert-success{background:#e5f8ec;color:#1c7a3f;border:1px solid #b9ecc9;}
.alert-danger{background:#fdeaec;color:#a3202f;border:1px solid #f5c1c8;}

.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:22px;}
.stat-card{background:#fff;border-radius:6px;padding:18px 20px;box-shadow:0 1px 3px rgba(0,0,0,.08);border-left:5px solid var(--primary);}
.stat-card h3{margin:0 0 6px;font-size:26px;}
.stat-card p{margin:0;color:#777;font-size:13px;text-transform:uppercase;font-weight:600;}

footer.app-footer{margin-left:var(--sidebar-w);padding:14px 24px;color:#888;font-size:13px;display:flex;justify-content:space-between;}

.badge{padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;}
.badge-success{background:#e5f8ec;color:#1c7a3f;}
.badge-warning{background:#fff6e0;color:#9a6b00;}

.report-total-row td{font-weight:700;background:#f5f7fb;}
