body {
    margin: 0;
    font-family: 'Segoe UI', sans-serif;
    background: radial-gradient(circle at center, #0a1a3f, #020617);
    color: white;
    min-height: 100vh;
}

.app-shell {
    min-height: 100vh;
    display: flex;
}

.sidebar {
    width: 250px;
    padding: 26px 18px;
    background: rgba(6, 12, 24, 0.62);
    border-right: 1px solid rgba(255,255,255,0.08);
    box-sizing: border-box;
}

.sidebar h1 {
    font-size: 20px;
    margin: 0 0 6px;
}

.sidebar p {
    margin: 0 0 24px;
    color: rgba(255,255,255,0.62);
    font-size: 13px;
}

.nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.nav a {
    padding: 13px 14px;
    border-radius: 14px;
    color: rgba(255,255,255,0.84);
    text-decoration: none;
    background: rgba(255,255,255,0.035);
    border: 1px solid transparent;
    font-weight: 600;
}

.nav a:hover,
.nav a.active {
    background: rgba(64,125,255,0.18);
    border-color: rgba(91,156,255,0.28);
}

.main {
    flex: 1;
    padding: 36px;
    box-sizing: border-box;
}

.panel {
    max-width: 1100px;
    padding: 28px;
    border-radius: 28px;
    background: rgba(10, 16, 28, 0.58);
    border: 1px solid rgba(255,255,255,0.1);
    box-shadow: 0 18px 60px rgba(0,0,0,0.35), 0 0 45px rgba(44,122,255,0.12);
    backdrop-filter: blur(18px);
}

h2 {
    margin-top: 0;
}

p {
    color: rgba(255,255,255,0.72);
}

@media (max-width: 900px) {
    .app-shell {
        flex-direction: column;
    }

    .sidebar {
        width: 100%;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .main {
        padding: 20px;
    }
}
/* ---- group edition: sidebar brand / welcome / location switch ---- */
.brand { margin-bottom: 14px; }
.brand-logo { display: block; width: 100%; max-width: 200px; height: auto; border-radius: 8px; }
.welcome { margin: 0 0 14px; color: rgba(255,255,255,0.78); font-size: 14px; }
.welcome strong { color: #fff; }
.loc-switch { margin: 0 0 18px; }
.loc-switch label { display: block; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 6px; }
.loc-switch select {
    width: 100%; padding: 10px 12px; border-radius: 12px; box-sizing: border-box;
    border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.06); color: #fff; font-weight: 600;
}
.loc-switch select option { color: #0b1220; }
.notice { margin-bottom: 18px; padding: 14px 16px; border-radius: 14px; }
.notice.success { background: rgba(80,200,120,0.12); border: 1px solid rgba(80,200,120,0.22); color: #9effc2; }
.notice.error { background: rgba(255,80,80,0.12); border: 1px solid rgba(255,110,110,0.22); color: #ffd2d2; }
.notice.info { background: rgba(64,125,255,0.12); border: 1px solid rgba(91,156,255,0.25); color: #cfe0ff; }
.empty-state { padding: 28px; border-radius: 18px; background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.08); color: rgba(255,255,255,0.7); text-align: center; }
.data-table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; min-width: 640px; }
.data-table th, .data-table td { padding: 12px 14px; border-bottom: 1px solid rgba(255,255,255,0.08); text-align: left; vertical-align: middle; }
.data-table th { color: #8db8ff; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.tag { display: inline-block; padding: 4px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; background: rgba(61,139,255,0.14); border: 1px solid rgba(61,139,255,0.25); color: #9bc0ff; }
.tag.off { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.14); color: rgba(255,255,255,0.55); }
.tag.admin { background: rgba(244,170,60,0.14); border-color: rgba(244,170,60,0.3); color: #ffd28a; }
.inline-form { display: inline-block; margin: 0; }
.btn { display: inline-block; padding: 10px 14px; border-radius: 14px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.9); font-weight: 700; cursor: pointer; text-decoration: none; font-size: 14px; }
.btn-primary { background: linear-gradient(180deg, rgba(64,125,255,0.35), rgba(64,125,255,0.16)); color: #fff; }
.btn-secondary { background: rgba(255,255,255,0.05); }
.btn-danger { background: rgba(255,80,80,0.14); border-color: rgba(255,110,110,0.3); color: #ffd2d2; }
.form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; align-items: end; }
.form-row .field label { display: block; margin-bottom: 6px; font-weight: 700; font-size: 13px; color: rgba(255,255,255,0.86); }
.form-row .field input, .form-row .field select { width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.06); color: #fff; box-sizing: border-box; }
.form-row .field select option { color: #0b1220; }
.temp-pass { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 18px; letter-spacing: .06em; padding: 4px 10px; border-radius: 8px; background: rgba(0,0,0,0.35); color: #fff; }
.private-toggle { display: flex; align-items: center; gap: 8px; margin: 10px 0 12px; font-size: 13px; color: rgba(255,255,255,0.75); }

/* ---- sidebar pinned full-height with branded footer ---- */
.sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column; flex-shrink: 0; }
.sidebar-footer { margin-top: auto; padding-top: 18px; font-size: 11px; line-height: 1.6; color: rgba(255,255,255,0.45); letter-spacing: .03em; }
@media (max-width: 900px) { .sidebar { position: static; height: auto; overflow: visible; } }

/* AeroCoreHC logo is navy + orange: always shown on a light plate over dark pages */
.hc-plate { display: block; width: 150px; margin: 0 0 12px; padding: 8px 10px; background: #f4f6fa; border-radius: 12px; box-sizing: border-box; }
.hc-plate img { display: block; width: 100%; height: auto; }
.login-powered { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 22px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,0.45); }
.login-powered .hc-plate { width: 110px; margin: 0; padding: 6px 8px; }
