body {
    margin:0;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    background:#f1f5f9;
}
/* Mobile Safari (and some Android browsers) auto-zoom the page when a
   tapped input's font-size is under 16px - not every form on the site
   uses Bootstrap's .form-control class, so this is set globally rather
   than per-form. */
input, select, textarea {
    font-size:16px;
}
.sidebar {
    width:240px;
    background:#4f9ad5;
    color:white;
    top:0;
    bottom:0;
    box-sizing:border-box;
    position:fixed;
    padding:20px 0;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
}
.sidebar .logo {
    font-size:26px;
    font-weight:bold;
    margin-bottom:40px;
    color:#e55353;
    padding-left:20px;
}
.menu-item {
    padding:14px 20px;
    margin:5px 10px;
    border-radius:8px;
    font-size:15px;
}
.menu-item.active, .menu-item:hover {
    background:rgba(255,255,255,0.12);
}
.main-content {
    margin-left:260px;
    padding:30px;
}
h2 { color:#0f172a; }
.card {
    background:white;
    border:none;
    border-radius:16px;
    box-shadow:0 18px 40px rgba(15,23,42,0.08);
}
.dashboard-summary-card {
    width:100%;
    max-width:280px;
    display:inline-block;
    margin-right:20px;
}
.dashboard-summary-card:last-child {
    margin-right:0;
}
.card h3 { margin:0; color:#64748b; font-size:14px; }
.card h1 { margin:10px 0 0 0; color:#0f172a; font-size:28px; }
/* Admin specific overrides */
.admin-card { border-radius:18px; }
.sidebar-menu li + li { margin-top: 10px; }
.sidebar-menu a { display:flex; align-items:center; padding:10px 12px; border-radius:10px; color:#1f2937; text-decoration:none; background:#fff; transition:background .2s ease, transform .2s ease; box-shadow:0 1px 2px rgba(0,0,0,0.05); }
.sidebar-menu a:hover, .sidebar-menu a:focus { background:#eff6ff; transform:translateX(2px); }
.sidebar-menu a.active-menu { background:#dbeafe; border-left:4px solid #4f9ad5; color:#1e4a7a; transform:none; }
.admin-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:18px; }
.admin-search { max-width:360px; }
.admin-table thead th { background-color: #4f9ad5 !important; color: #fff !important; border-bottom: none; }
.admin-table tbody tr:hover { background:#fbfbfb; }
.table td, .table th { vertical-align: middle; }
.table-responsive { overflow-x: auto; }
.btn-outline-danger { min-width: 96px; }
.btn-danger, .btn-success { min-width: 108px; }
.action-btn { margin-right:8px; }
.btn i { vertical-align: -.125em; }
.badge { font-size:0.9rem; }
