﻿html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}
/* 🎥 Fullscreen video */
#bgVideo {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}

/* 🔥 Dark overlay */
body::before {
    content: "";
    position: fixed;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.2);
    z-index: -1;
}
/* 🎥 Video background */
#bgVideo {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
}

/* 🌑 Dark overlay */
body::before {
    content: "";
    position: fixed;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: -1;
}

/* 🔐 Glass login card */
.login-card {
    width: 380px;
    border-radius: 15px;
    backdrop-filter: blur(12px);
    background: rgba(0, 0, 0, 0.2);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.2);
}
/*.bg-white {
    --bs-bg-opacity: 1;
    background-color: rgba(0, 0, 0, .2) !important;
}*/
.card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: rgba(0, 0, 0, .2);
    background-clip: border-box;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .25rem;
}
    /* ✨ Input styling */
    .login-card input {
        background: rgba(255,255,255,0.2);
        border: none;
        color: #fff;
    }

        .login-card input::placeholder {
            color: #ddd;
        }

    /* 🔘 Button */
    .login-card .btn {
        background: linear-gradient(45deg, #4facfe, #00f2fe);
        border: none;
    }
body {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    /*overflow: hidden;*/
}
.login-page {
    overflow: hidden;
}
.container {
    background: transparent !important;
    padding: 0 !important;
}
.bg-white {
    background: transparent !important;
}
/* ================= Publication CRM Modern UI ================= */
body {
    background: radial-gradient(circle at top left, #eef2ff 0%, #f8fafc 35%, #f1f5f9 100%) !important;
    color: #0f172a;
}
body::before { display:none !important; }
.navbar {
    background: linear-gradient(90deg, #0f172a, #1e3a8a) !important;
    border-bottom: 1px solid rgba(255,255,255,.12);
}
.container { max-width: 1320px; padding-left: 12px !important; padding-right: 12px !important; }
.footer { display:none; }
.pub-page-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:28px;
    border-radius:24px;
    color:#fff;
    background: linear-gradient(135deg, #2563eb 0%, #7c3aed 55%, #db2777 100%);
    box-shadow: 0 24px 55px rgba(37,99,235,.25);
}
.pub-page-header h2 { margin:4px 0; font-size:32px; font-weight:800; letter-spacing:-.5px; }
.pub-page-header p { margin:0; opacity:.9; }
.pub-kicker {
    display:inline-flex;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.18);
    font-weight:700;
    font-size:13px;
    backdrop-filter: blur(8px);
}
.pub-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.pub-card {
    background: rgba(255,255,255,.92) !important;
    border: 1px solid rgba(148,163,184,.25) !important;
    border-radius: 22px !important;
    padding: 22px;
    box-shadow: 0 16px 40px rgba(15,23,42,.08) !important;
    backdrop-filter: blur(12px);
}
.pub-card h5 { font-weight:800; color:#0f172a; }
.pub-stat-card {
    min-height:120px;
    border-radius:22px;
    padding:22px;
    position:relative;
    overflow:hidden;
    color:#fff;
    background: linear-gradient(135deg, #334155, #0f172a);
    box-shadow: 0 15px 35px rgba(15,23,42,.16);
}
.pub-stat-card.success { background: linear-gradient(135deg, #059669, #065f46); }
.pub-stat-card.warning { background: linear-gradient(135deg, #f59e0b, #b45309); }
.pub-stat-card.info { background: linear-gradient(135deg, #2563eb, #1e40af); }
.pub-stat-card.danger { background: linear-gradient(135deg, #ef4444, #991b1b); }
.pub-stat-card span { display:block; font-size:14px; opacity:.88; font-weight:600; }
.pub-stat-card strong { display:block; margin-top:8px; font-size:30px; line-height:1.1; }
.pub-stat-card i {
    position:absolute;
    right:18px;
    bottom:12px;
    font-size:54px;
    opacity:.16;
}
.pub-table { margin-bottom:0; }
.pub-table thead th {
    background:#0f172a !important;
    color:#fff !important;
    border:0 !important;
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.04em;
    white-space:nowrap;
}
.pub-table tbody td {
    border-color:#e2e8f0 !important;
    vertical-align:middle;
    white-space:nowrap;
}
.pub-table tbody tr:hover { background:#f8fafc; }
.pub-id {
    display:inline-flex;
    padding:4px 10px;
    border-radius:999px;
    background:#e0e7ff;
    color:#3730a3;
    font-weight:800;
    font-size:12px;
}
.pub-badge {
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    border-radius:999px;
    font-weight:800;
    font-size:12px;
}
.pub-badge.success { background:#dcfce7; color:#166534; }
.pub-badge.warning { background:#fef3c7; color:#92400e; }
.pub-badge.danger { background:#fee2e2; color:#991b1b; }
.form-control, .form-select {
    border-radius:14px;
    border-color:#cbd5e1;
}
.form-control:focus, .form-select:focus {
    border-color:#6366f1;
    box-shadow:0 0 0 .25rem rgba(99,102,241,.15);
}
.btn { border-radius:14px; font-weight:700; }
.btn-primary { background:linear-gradient(135deg,#2563eb,#4f46e5); border:0; }
.btn-success { background:linear-gradient(135deg,#059669,#16a34a); border:0; }
.btn-warning { background:linear-gradient(135deg,#f59e0b,#f97316); border:0; color:#111827; }
@media(max-width: 768px) {
    .pub-page-header { flex-direction:column; align-items:flex-start; padding:22px; }
    .pub-page-header h2 { font-size:26px; }
    .pub-actions { width:100%; }
    .pub-actions .btn { width:100%; }
}

/* ================= Publication CRM text/color fixes ================= */
.pub-card,
.pub-card label,
.pub-card .form-label,
.pub-card .form-text,
.pub-card td,
.pub-card p,
.pub-card small,
.pub-card .text-muted {
    color: #0f172a !important;
}
.pub-card .form-text,
.pub-card small.text-muted,
.pub-card .text-muted {
    color: #64748b !important;
}
.pub-card input,
.pub-card select,
.pub-card textarea,
.form-control,
.form-select {
    color: #0f172a !important;
    background-color: #ffffff !important;
}
.pub-card input::placeholder,
.pub-card textarea::placeholder {
    color: #94a3b8 !important;
}
.pub-card .btn-outline-secondary,
.pub-card .btn-outline-primary,
.pub-card .btn-outline-warning,
.pub-card .btn-outline-danger,
.pub-card .btn-outline-success {
    background: #ffffff;
}
.pub-help {
    padding: 12px 14px;
    border-radius: 14px;
    background: #eff6ff;
    color: #1e3a8a !important;
    border: 1px solid #bfdbfe;
    font-weight: 600;
}
.multi-select option {
    padding: 7px 10px;
    color: #0f172a;
}
.pub-badge.role {
    background: #e0e7ff;
    color: #3730a3;
}
.badge.text-bg-light {
    color: #0f172a !important;
    background-color: #f1f5f9 !important;
    border: 1px solid #e2e8f0;
}
.pub-page-header .btn-light,
.pub-page-header .btn-warning,
.pub-page-header .btn-secondary {
    color: #111827 !important;
}

/* ================= Final Professional UI Refresh ================= */
:root{
    --app-navy:#0b1220;
    --app-blue:#2563eb;
    --app-indigo:#4f46e5;
    --app-cyan:#06b6d4;
    --app-green:#059669;
    --app-orange:#f97316;
    --app-red:#dc2626;
    --app-slate:#0f172a;
    --app-muted:#64748b;
    --app-border:#dbe4f0;
    --app-bg:#f5f7fb;
}
html,body{min-height:100%;}
body{
    margin:0!important;
    color:var(--app-slate)!important;
    background:
        radial-gradient(circle at 8% 0%, rgba(59,130,246,.16), transparent 28%),
        radial-gradient(circle at 92% 8%, rgba(14,165,233,.14), transparent 28%),
        linear-gradient(180deg,#f8fbff 0%,#eef3fb 100%)!important;
    font-family: Inter, Segoe UI, Arial, sans-serif;
}
body::before{display:none!important;}
.app-header{position:sticky;top:0;z-index:1000;}
.app-navbar{
    background:linear-gradient(90deg,#0b1220 0%,#10265a 55%,#1d4ed8 100%)!important;
    min-height:66px;
    box-shadow:0 14px 32px rgba(15,23,42,.18);
}
.app-brand{display:flex;align-items:center;gap:10px;color:#fff!important;font-size:22px;font-weight:850;letter-spacing:-.4px;}
.brand-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:linear-gradient(135deg,#22c55e,#38bdf8,#8b5cf6);box-shadow:0 10px 24px rgba(56,189,248,.28);}
.app-navbar .nav-link{color:rgba(255,255,255,.88)!important;font-weight:700;border-radius:12px;padding:9px 12px!important;transition:.2s ease;}
.app-navbar .nav-link:hover{color:#fff!important;background:rgba(255,255,255,.12);transform:translateY(-1px);}
.welcome-chip{display:inline-flex;align-items:center;gap:7px;color:#ffcc00;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);padding:9px 13px;border-radius:999px;font-weight:850;}
.btn-login,.btn-logout{border:0;border-radius:999px;padding:9px 16px!important;color:#fff!important;font-weight:800;box-shadow:0 10px 24px rgba(0,0,0,.16);}
.btn-login{background:linear-gradient(135deg,#22c55e,#16a34a);}
.btn-logout{background:linear-gradient(135deg,#ef4444,#dc2626);}
.app-container{max-width:100%!important;padding-left:16px!important;padding-right:16px!important;background:transparent!important;}
.footer{display:none!important;}
.card:not(.login-card){background:#fff!important;color:var(--app-slate)!important;border:1px solid var(--app-border)!important;border-radius:22px!important;box-shadow:0 18px 45px rgba(15,23,42,.08)!important;}
.card:not(.login-card) *{color:inherit;}
.card.bg-primary,.card.bg-success,.card.bg-warning,.card.bg-dark{background:#fff!important;color:var(--app-slate)!important;}
.form-control,.form-select{height:46px;border-radius:14px!important;border:1px solid #cbd5e1!important;background:#fff!important;color:var(--app-slate)!important;font-weight:600;}
textarea.form-control{height:auto;}
.form-control::placeholder,textarea::placeholder{color:#94a3b8!important;font-weight:500;}
.form-control:focus,.form-select:focus{border-color:var(--app-blue)!important;box-shadow:0 0 0 .25rem rgba(37,99,235,.14)!important;}
.btn{border-radius:14px!important;font-weight:800!important;}
.btn-primary{background:linear-gradient(135deg,#2563eb,#4f46e5)!important;border:0!important;color:#fff!important;}
.btn-success{background:linear-gradient(135deg,#059669,#16a34a)!important;border:0!important;color:#fff!important;}
.btn-outline-secondary,.btn-outline-primary,.btn-outline-danger,.btn-outline-warning,.btn-outline-success{background:#fff!important;}

/* Page hero */
.pub-page-header,.page-hero{
    display:flex;justify-content:space-between;align-items:center;gap:16px;
    padding:28px;border-radius:28px;color:#fff!important;
    background:linear-gradient(135deg,#0f172a 0%,#1d4ed8 55%,#06b6d4 100%)!important;
    box-shadow:0 24px 55px rgba(37,99,235,.22);
    position:relative;overflow:hidden;
}
.pub-page-header:after,.page-hero:after{content:"";position:absolute;right:-70px;top:-80px;width:230px;height:230px;background:rgba(255,255,255,.13);border-radius:50%;}
.pub-page-header h2,.page-hero h1,.page-hero h2{margin:4px 0;font-size:34px;font-weight:900;letter-spacing:-.7px;color:#fff!important;}
.pub-page-header p,.page-hero p{margin:0;color:rgba(255,255,255,.86)!important;}
.pub-kicker,.hero-kicker{display:inline-flex;padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.18);color:#fff!important;font-weight:850;font-size:13px;backdrop-filter:blur(8px);}

/* Cards and tables */
.pub-card,.soft-card{background:rgba(255,255,255,.96)!important;border:1px solid rgba(148,163,184,.32)!important;border-radius:24px!important;padding:24px;box-shadow:0 18px 45px rgba(15,23,42,.08)!important;color:var(--app-slate)!important;}
.pub-card *,.soft-card *{color:inherit;}
.pub-card h5,.soft-card h5{font-weight:900;color:var(--app-slate)!important;letter-spacing:-.2px;}
.pub-card .text-muted,.soft-card .text-muted,.pub-card small,.soft-card small,.pub-card .form-text,.soft-card .form-text{color:var(--app-muted)!important;}
.pub-stat-card,.dash-stat-card{min-height:118px;border-radius:24px;padding:22px;position:relative;overflow:hidden;color:#fff!important;box-shadow:0 18px 40px rgba(15,23,42,.14);background:linear-gradient(135deg,#0f172a,#334155)!important;}
.pub-stat-card.success,.dash-stat-card.success{background:linear-gradient(135deg,#047857,#10b981)!important;}
.pub-stat-card.warning,.dash-stat-card.warning{background:linear-gradient(135deg,#d97706,#f59e0b)!important;}
.pub-stat-card.info,.dash-stat-card.info{background:linear-gradient(135deg,#1d4ed8,#2563eb)!important;}
.pub-stat-card.danger,.dash-stat-card.danger{background:linear-gradient(135deg,#be123c,#ef4444)!important;}
.pub-stat-card span,.pub-stat-card strong,.pub-stat-card i,.dash-stat-card span,.dash-stat-card strong,.dash-stat-card i{color:#fff!important;}
.pub-stat-card span,.dash-stat-card span{display:block;font-size:14px;opacity:.92;font-weight:700;}
.pub-stat-card strong,.dash-stat-card strong{display:block;margin-top:8px;font-size:32px;line-height:1.1;font-weight:900;}
.pub-stat-card i,.dash-stat-card i{position:absolute;right:18px;bottom:12px;font-size:54px;opacity:.18;}
.table-responsive{border-radius:18px;}
.pub-table thead th,.table thead.table-dark th{background:#0f172a!important;color:#fff!important;border:0!important;font-size:13px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
.pub-table tbody td,.table tbody td{color:#0f172a!important;border-color:#e2e8f0!important;vertical-align:middle;}
.pub-table tbody tr:hover,.table tbody tr:hover{background:#f8fafc!important;}
.pub-id{display:inline-flex;padding:5px 11px;border-radius:999px;background:#e0e7ff;color:#3730a3!important;font-weight:900;font-size:12px;}
.pub-badge,.badge{font-weight:850!important;}
.pub-help{padding:14px 16px;border-radius:16px;background:#eff6ff!important;color:#1e3a8a!important;border:1px solid #bfdbfe;font-weight:700;}

/* Special Advanced Search */
.search-panel{background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)!important;border:1px solid #dbeafe!important;}
.search-title{display:flex;align-items:center;gap:12px;}
.search-title .search-icon{width:46px;height:46px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#2563eb,#06b6d4);box-shadow:0 12px 24px rgba(37,99,235,.22);}
.search-main-input{height:54px!important;border-radius:18px!important;padding-left:48px!important;background:#fff!important;}
.search-input-wrap{position:relative;}
.search-input-wrap i{position:absolute;left:17px;top:50%;transform:translateY(-50%);color:#2563eb;z-index:2;font-size:18px;}
.filter-pill{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:18px;padding:14px;}
.filter-pill label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:#475569!important;margin-bottom:7px;}

/* Booking form special */
.booking-page .booking-card{max-width:760px;margin:0 auto;border-radius:30px!important;padding:0!important;overflow:hidden;background:#fff!important;color:#0f172a!important;}
.booking-card-header{padding:28px;background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff!important;text-align:center;}
.booking-card-header h3{font-size:30px;font-weight:900;color:#fff!important;margin:0;}
.booking-card-header p{color:rgba(255,255,255,.82)!important;margin:8px 0 0;}
.booking-card-body{padding:30px;}
.field-block{padding:16px;border:1px solid #e2e8f0;border-radius:20px;background:#f8fafc;transition:.2s ease;}
.field-block:hover{border-color:#93c5fd;background:#fff;box-shadow:0 12px 24px rgba(37,99,235,.08);}
.field-block label{font-weight:900;color:#0f172a!important;margin-bottom:8px;}
.user-info-box{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;background:#ecfeff;border:1px solid #a5f3fc;color:#155e75;font-weight:900;}

/* Dashboard */
.dashboard-title{color:#0f172a!important;font-weight:900;letter-spacing:-.5px;}
.chart-card{background:#fff!important;border:1px solid #dbe4f0!important;border-radius:24px!important;padding:24px;box-shadow:0 18px 45px rgba(15,23,42,.08)!important;}

@media(max-width:768px){
    .pub-page-header,.page-hero{flex-direction:column;align-items:flex-start;padding:22px;}
    .pub-page-header h2,.page-hero h1,.page-hero h2{font-size:26px;}
    .pub-actions{width:100%;}
    .pub-actions .btn{width:100%;}
}
.class-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.class-box{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:14px;border:1px solid #cbd5e1;background:#fff;color:#0f172a!important;font-weight:850;cursor:pointer;transition:.18s ease;}
.class-box:hover{border-color:#2563eb;box-shadow:0 10px 20px rgba(37,99,235,.10);transform:translateY(-1px);}
.btn-check:checked + .class-box{background:linear-gradient(135deg,#2563eb,#4f46e5);border-color:#2563eb;color:#fff!important;box-shadow:0 12px 24px rgba(37,99,235,.24);}
@media(max-width:576px){.class-picker{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* ================= LiveClass Final Interactive UI ================= */
.app-container:has(.login-visual-page){max-width:100%!important;margin-top:0!important;padding:0!important;}
.app-header:has(+ .app-container .login-visual-page){display:none;}
.booking-hero,.dashboard-hero{background:linear-gradient(135deg,#08111f 0%,#1d4ed8 48%,#08b6d9 100%)!important;}
.hero-filter-card,.dashboard-filter-card{position:relative;z-index:2;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:22px;padding:18px;min-width:360px;backdrop-filter:blur(14px);}
.hero-filter-card label,.dashboard-filter-card label{color:#fff!important;font-weight:850;margin-bottom:8px;}
.filter-toggle{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.toggle-box{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:16px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.10);color:#fff!important;font-weight:850;padding:12px;cursor:pointer;transition:.2s ease;}
.btn-check:checked + .toggle-box{background:#fff;color:#1d4ed8!important;box-shadow:0 14px 28px rgba(0,0,0,.14);}
.live-stat-card{min-height:118px;border-radius:26px;padding:22px;position:relative;overflow:hidden;color:#fff!important;box-shadow:0 20px 44px rgba(15,23,42,.13);}
.live-stat-card:after{content:"";position:absolute;right:-35px;top:-35px;width:115px;height:115px;border-radius:50%;background:rgba(255,255,255,.13);}
.live-stat-card.primary{background:linear-gradient(135deg,#1d4ed8,#2563eb);}
.live-stat-card.success{background:linear-gradient(135deg,#047857,#10b981);}
.live-stat-card.warning{background:linear-gradient(135deg,#d97706,#f59e0b);}
.live-stat-card.info{background:linear-gradient(135deg,#0f172a,#334155);}
.live-stat-card span{display:block;font-size:14px;font-weight:800;opacity:.9;color:#fff!important;}
.live-stat-card strong{display:block;margin-top:9px;font-size:28px;font-weight:950;color:#fff!important;letter-spacing:-.5px;}
.live-stat-card i{position:absolute;right:18px;bottom:12px;font-size:50px;color:#fff!important;opacity:.2;}
.status-card{background:rgba(255,255,255,.97)!important;border:1px solid #dbe4f0;border-radius:28px;/*padding:24px;*/box-shadow:0 22px 55px rgba(15,23,42,.09);}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;}
.section-heading>div:first-child{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;}
.section-heading h3{margin:0;color:#0f172a!important;font-size:24px;font-weight:950;letter-spacing:-.4px;}
.section-heading p{grid-column:2;margin:2px 0 0;color:#64748b!important;font-weight:600;}
.section-icon{width:46px;height:46px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff!important;background:linear-gradient(135deg,#2563eb,#06b6d4);box-shadow:0 14px 28px rgba(37,99,235,.22);font-size:20px;}
.mini-search-wrap{position:relative;min-width:360px;}
.mini-search-wrap i{position:absolute;left:17px;top:50%;transform:translateY(-50%);color:#2563eb;z-index:2;}
.mini-search-wrap .form-control{height:50px!important;border-radius:999px!important;padding-left:45px!important;background:#f8fbff!important;}
.modern-table-wrap{border:1px solid #e2e8f0;border-radius:22px;overflow:hidden;}
.modern-booking-table{margin:0!important;}
.modern-booking-table thead th{background:#f8fafc!important;color:#475569!important;border-bottom:1px solid #e2e8f0!important;font-size:12px;text-transform:uppercase;letter-spacing:.07em;font-weight:950;padding:16px 14px;white-space:nowrap;}
.modern-booking-table tbody td{padding:16px 14px;color:#0f172a!important;border-color:#edf2f7!important;font-weight:650;vertical-align:middle;}
.modern-booking-table tbody tr:hover{background:#f8fbff!important;}
.person-cell{display:flex;align-items:center;gap:10px;white-space:nowrap;}
.avatar-sm{width:36px;height:36px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#e0e7ff;color:#3730a3!important;}
.subject-chip,.sales-chip,.time-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;font-weight:850;font-size:13px;white-space:nowrap;}
.subject-chip{background:#ecfeff;color:#155e75!important;}
.sales-chip{background:#f5f3ff;color:#5b21b6!important;}
.time-chip{background:#fff7ed;color:#9a3412!important;}
.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:950;white-space:nowrap;}
.status-badge.booked{background:#dcfce7;color:#166534!important;}
.status-badge.completed{background:#dbeafe;color:#1d4ed8!important;}
.status-badge.declined{background:#fee2e2;color:#991b1b!important;}
.status-badge.pending{background:#fef3c7;color:#92400e!important;}
.btn-action{background:#eef2ff!important;color:#3730a3!important;border:1px solid #c7d2fe!important;border-radius:999px!important;font-weight:900!important;}
.btn-live-start{border:0;border-radius:999px;padding:10px 14px;min-width:142px;font-weight:950;box-shadow:0 12px 22px rgba(15,23,42,.08);}
.btn-live-start.waiting{background:#f8fafc;color:#475569!important;border:1px solid #cbd5e1;}
.btn-live-start.active{background:linear-gradient(135deg,#059669,#16a34a);color:#fff!important;}
.btn-live-start.ended{background:#e2e8f0;color:#64748b!important;}
.empty-state{padding:34px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;color:#64748b!important;}
.empty-state i{font-size:42px;color:#94a3b8!important;}.empty-state strong{font-size:18px;color:#0f172a!important;}
.modal-overlay-custom{display:none;position:fixed;inset:0;background:rgba(15,23,42,.62);backdrop-filter:blur(5px);z-index:2000;}.modal-overlay-custom.show{display:block;}
.action-modal-custom{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(460px,92vw);background:#fff;border-radius:28px;padding:28px;box-shadow:0 34px 70px rgba(0,0,0,.32);z-index:2001;text-align:center;}.action-modal-custom.show{display:block;}
.modal-close{position:absolute;right:16px;top:16px;width:36px;height:36px;border:0;border-radius:50%;background:#f1f5f9;color:#0f172a;}.modal-icon{width:62px;height:62px;margin:0 auto 12px;border-radius:22px;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;}.action-modal-custom h4{font-weight:950;color:#0f172a;}.action-modal-custom p{color:#64748b;font-weight:650;}
.dashboard-view-label{display:inline-flex;align-items:center;gap:8px;padding:11px 14px;border-radius:999px;background:#fff;border:1px solid #dbe4f0;box-shadow:0 8px 20px rgba(15,23,42,.05);font-weight:800;color:#475569;}.dashboard-view-label strong{color:#0f172a;}

/* Login visual */
.login-visual-page{min-height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:34px;}
.login-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(2,6,23,.88),rgba(30,64,175,.72),rgba(6,182,212,.48));z-index:-1;}
.login-shell{width:min(1120px,96vw);display:grid;grid-template-columns:1.25fr .75fr;gap:26px;align-items:stretch;}
.login-brand-panel,.login-card-pro{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.12);backdrop-filter:blur(18px);box-shadow:0 30px 70px rgba(0,0,0,.28);border-radius:34px;}
.login-brand-panel{padding:46px;color:#fff;display:flex;flex-direction:column;justify-content:center;}
.login-brand-icon{width:72px;height:72px;border-radius:24px;background:linear-gradient(135deg,#22c55e,#38bdf8,#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:34px;margin-bottom:20px;box-shadow:0 20px 42px rgba(56,189,248,.26);}
.login-brand-panel h1{font-size:46px;line-height:1.05;font-weight:950;letter-spacing:-1.4px;margin:18px 0;color:#fff!important;}.login-brand-panel p{font-size:17px;color:rgba(255,255,255,.82)!important;max-width:650px;}
.login-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px;}.login-feature-grid div{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:16px;}.login-feature-grid i{font-size:24px;color:#67e8f9;}.login-feature-grid strong{display:block;margin-top:8px;color:#fff;font-weight:950;}.login-feature-grid span{display:block;color:rgba(255,255,255,.74);font-size:13px;}
.login-card-pro{padding:34px;background:rgba(255,255,255,.96);align-self:center;}.login-lock{width:62px;height:62px;margin:0 auto 14px;border-radius:22px;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;}.login-card-pro h3{font-size:28px;font-weight:950;color:#0f172a;margin:0;}.login-card-pro p{color:#64748b;font-weight:650;}
.input-icon-group{position:relative;}.input-icon-group label{font-weight:900;color:#0f172a;margin-bottom:8px;}.input-icon-group i{position:absolute;left:16px;bottom:14px;color:#2563eb;font-size:18px;}.input-icon-group .form-control{height:52px!important;border-radius:18px!important;padding-left:46px!important;}.login-submit{height:52px;border-radius:18px!important;font-size:16px;}
@media(max-width:992px){.login-shell{grid-template-columns:1fr}.login-brand-panel h1{font-size:34px}.login-feature-grid{grid-template-columns:1fr}.hero-filter-card,.dashboard-filter-card,.mini-search-wrap{min-width:100%;}.section-heading{flex-direction:column;align-items:flex-start;}.section-heading>div:first-child{grid-template-columns:auto 1fr;}.modern-booking-table{min-width:980px;}}

/* ===== School-level business advanced form ===== */
.section-title {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 6px;
}
.section-title > i {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    font-size: 21px;
    box-shadow: 0 12px 24px rgba(37,99,235,.22);
}
.section-title h5 { margin: 0; }
.section-title small { color: #64748b !important; font-weight: 600; }
.dynamic-area { display: grid; gap: 16px; }
.dynamic-row {
    position: relative;
    padding: 18px;
    border: 1px solid #dbeafe;
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    box-shadow: 0 12px 28px rgba(15,23,42,.06);
}
.remove-row {
    position: absolute;
    top: 10px;
    right: 10px;
    border-radius: 999px !important;
    z-index: 2;
}
.subject-class-picker {
    padding: 12px;
    border-radius: 18px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
}
.class-picker {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.class-box {
    min-width: 92px;
    text-align: center;
    padding: 10px 14px;
    border-radius: 16px;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #0f172a;
    font-weight: 800;
    cursor: pointer;
    transition: all .18s ease;
}
.class-box:hover { transform: translateY(-1px); border-color: #2563eb; box-shadow: 0 10px 20px rgba(37,99,235,.13); }
.btn-check:checked + .class-box {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    box-shadow: 0 12px 26px rgba(37,99,235,.25);
}
.sticky-submit-bar {
    position: sticky;
    bottom: 14px;
    z-index: 50;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 16px 18px;
    border-radius: 22px;
    background: rgba(255,255,255,.95);
    border: 1px solid rgba(148,163,184,.3);
    box-shadow: 0 18px 45px rgba(15,23,42,.16);
    backdrop-filter: blur(14px);
}
.sticky-submit-bar span { color: #64748b; font-weight: 600; }
.school-sales-table th, .school-sales-table td { vertical-align: middle !important; }
.school-cell { min-width: 210px; }
.subject-cell { min-width: 170px; max-width: 260px; white-space: normal !important; }
.classes-cell { min-width: 180px; max-width: 280px; white-space: normal !important; }
.contact-list { display: grid; gap: 12px; }
.contact-card-mini {
    padding: 14px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.contact-card-mini strong, .contact-card-mini span, .contact-card-mini small { display: block; }
.contact-card-mini strong { color: #0f172a; }
.contact-card-mini span { color: #2563eb; font-weight: 700; }
.contact-card-mini small { color: #64748b; margin-top: 3px; }
@media(max-width: 768px) {
    .sticky-submit-bar { position: static; flex-direction: column; align-items: stretch; }
    .class-box { min-width: calc(50% - 5px); }
}

/* =====================================================================
   Responsive compatibility layer
   Keeps the existing design and application logic unchanged.
   ===================================================================== */
html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
img, video, canvas, svg { max-width: 100%; height: auto; }
main, .app-container, .container, .container-fluid, .row, [class*="col-"] { min-width: 0; }

/* Navigation */
.navbar-toggler { border-color: rgba(255,255,255,.45) !important; padding: .45rem .6rem; }
.navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(255,255,255,.18) !important; }
.navbar-toggler-icon { filter: brightness(0) invert(1); }
@media (max-width: 991.98px) {
    .app-navbar .navbar-collapse {
        margin-top: 12px;
        padding: 14px;
        border-radius: 18px;
        background: rgba(15,23,42,.96);
        border: 1px solid rgba(255,255,255,.12);
        box-shadow: 0 18px 40px rgba(0,0,0,.22);
    }
    .app-navbar .navbar-nav { align-items: stretch !important; gap: 6px; }
    .app-navbar .nav-item, .app-navbar .nav-link, .welcome-chip, .btn-login, .btn-logout { width: 100%; }
    .app-navbar .nav-link, .btn-login, .btn-logout { display: flex; align-items: center; justify-content: flex-start; }
    .welcome-chip { justify-content: center; white-space: normal; text-align: center; }
    .app-navbar .ms-lg-2, .app-navbar .me-lg-2 { margin-left: 0 !important; margin-right: 0 !important; }
}

/* Page-level layout */
@media (max-width: 991.98px) {
    .app-container { padding-left: 12px !important; padding-right: 12px !important; }
    .pub-page-header, .page-hero { flex-direction: column; align-items: stretch; padding: 22px; }
    .pub-page-header > *, .page-hero > * { position: relative; z-index: 2; width: 100%; }
    .pub-actions { width: 100%; justify-content: flex-start; }
    .hero-filter-card, .dashboard-filter-card, .mini-search-wrap { width: 100%; min-width: 0 !important; }
    .section-heading { flex-direction: column; align-items: stretch; }
}

@media (max-width: 575.98px) {
    body { margin-bottom: 20px; }
    .app-container { padding-left: 8px !important; padding-right: 8px !important; }
    .pub-page-header, .page-hero { padding: 18px; border-radius: 20px; }
    .pub-page-header h2, .page-hero h1, .page-hero h2 { font-size: 25px; line-height: 1.2; overflow-wrap: anywhere; }
    .pub-card, .soft-card { padding: 16px; border-radius: 18px !important; }
    .pub-stat-card, .dash-stat-card, .live-stat-card { min-height: 105px; padding: 18px; border-radius: 18px; }
    .pub-stat-card strong, .dash-stat-card strong, .live-stat-card strong { font-size: 25px; }
    .pub-actions, .pub-actions .btn, .page-hero .btn, .pub-page-header > .btn { width: 100%; }
    .d-flex.justify-content-between.align-items-center { align-items: stretch !important; }
}

/* Forms and action groups */
.form-control, .form-select, .btn { max-width: 100%; }
.input-group { flex-wrap: nowrap; }
@media (max-width: 575.98px) {
    .form-control, .form-select { font-size: 16px; } /* prevents iOS zoom */
    .btn-lg { font-size: 1rem; }
    .sticky-submit-bar { padding: 14px; }
    .sticky-submit-bar .btn, .sticky-submit-bar > div, .sticky-submit-bar > span { width: 100%; }
    .sticky-submit-bar > div { display: grid; gap: 8px; }
    .dynamic-row { padding: 16px 12px; padding-top: 48px; }
    .class-picker { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
    .class-box { min-width: 0 !important; width: 100%; padding: 10px 8px; }
}

/* Tables remain the same visually and scroll safely on small screens */
.table-responsive, .modern-table-wrap { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-responsive > .table, .modern-table-wrap > .table { margin-bottom: 0; }
@media (max-width: 991.98px) {
    .pub-table, .modern-booking-table, .school-sales-table { min-width: 900px; }
    .table-responsive { border-radius: 14px; }
}
@media (max-width: 575.98px) {
    .pub-table, .modern-booking-table, .school-sales-table { min-width: 760px; }
    .pub-table th, .pub-table td, .modern-booking-table th, .modern-booking-table td { padding: 11px 10px !important; font-size: 12px; }
}

/* Login */
@media (max-width: 991.98px) {
    .login-visual-page { min-height: 100dvh; height: auto; overflow-y: auto; padding: 22px 14px; }
    .login-shell { width: min(680px,100%); grid-template-columns: 1fr; }
    .login-brand-panel { padding: 30px; }
    .login-feature-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 575.98px) {
    .login-visual-page { align-items: flex-start; padding: 14px 10px; }
    .login-shell { gap: 14px; }
    .login-brand-panel, .login-card-pro { border-radius: 22px; }
    .login-brand-panel { padding: 22px; }
    .login-brand-panel h1 { font-size: 29px; }
    .login-brand-panel p { font-size: 15px; }
    .login-feature-grid { grid-template-columns: 1fr; margin-top: 18px; }
    .login-card-pro { padding: 22px 16px; }
}

/* Small utility fixes for existing pages */
.booking-success-card { width: min(400px,100%); }
.school-cell, .subject-cell, .classes-cell { max-width: none; }
.contact-card-mini { overflow-wrap: anywhere; }
.alert { overflow-wrap: anywhere; }
@media (max-width: 575.98px) {
    .text-end.mobile-text-start { text-align: left !important; }
    .action-modal-custom { padding: 24px 16px; border-radius: 22px; }
}
/* Small utility fixes for existing pages */
.booking-success-card {
    width: min(400px, 100%);
}

.school-cell,
.subject-cell,
.classes-cell {
    max-width: none;
}

.contact-card-mini,
.alert {
    overflow-wrap: anywhere;
}

/* =========================
   FIXED RESPONSIVE HEADER
========================= */

.app-header {
    position: relative;
    z-index: 1100;
}

.app-navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    min-height: 64px;
    z-index: 1100;
    background: linear-gradient(135deg, #081f4d, #123b86);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.18);
}

body {
    padding-top: 74px;
}

.app-navbar .container-fluid {
    min-height: 64px;
}

/* Navbar toggle button */
.navbar-toggler {
    width: 42px;
    height: 38px;
    padding: 0 !important;
    margin-left: auto;
    border: 1px solid rgba(255, 255, 255, 0.45) !important;
    border-radius: 6px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.08) !important;
    box-shadow: none !important;
    flex-shrink: 0;
}

    .navbar-toggler:focus {
        box-shadow: none !important;
    }

/* Custom white hamburger icon */
.navbar-toggler-icon {
    width: 24px;
    height: 18px;
    background-image: none !important;
    position: relative;
    display: block;
    border-top: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
}

    .navbar-toggler-icon::before {
        content: "";
        position: absolute;
        left: 0;
        top: 6px;
        width: 100%;
        height: 2px;
        background: #ffffff;
    }

/* Tablet and mobile */
@media (max-width: 991.98px) {

    body {
        padding-top: 66px;
    }

    .app-navbar {
        min-height: 56px;
    }

        .app-navbar .container-fluid {
            min-height: 56px;
            padding-left: 12px !important;
            padding-right: 12px !important;
            flex-wrap: nowrap;
        }

        /* Dropdown menu below fixed header */
        .app-navbar .navbar-collapse {
            position: absolute;
            top: 56px;
            left: 0;
            right: 0;
            width: 100%;
            flex-basis: auto;
            margin-top: 0;
            padding: 12px;
            background: linear-gradient(135deg, #081f4d, #123b86);
            border-top: 1px solid rgba(255, 255, 255, 0.12);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.22);
            max-height: calc(100vh - 56px);
            overflow-y: auto;
        }

        .app-navbar .navbar-nav {
            width: 100%;
            align-items: stretch !important;
            gap: 4px;
        }

        .app-navbar .nav-item {
            width: 100%;
            margin-left: 0 !important;
            margin-right: 0 !important;
        }

        .app-navbar .nav-link {
            display: flex;
            align-items: center;
            width: 100%;
            padding: 11px 10px !important;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        }

    .welcome-chip {
        display: flex;
        justify-content: center;
        width: 100%;
        margin-bottom: 5px;
        padding: 10px;
        border-radius: 8px;
    }

    .btn-login,
    .btn-logout {
        width: 100%;
        margin-top: 6px;
        padding: 10px 14px;
    }
}

/* Small mobile */
@media (max-width: 575.98px) {

    body {
        padding-top: 62px;
    }

    .text-end.mobile-text-start {
        text-align: left !important;
    }

    .action-modal-custom {
        padding: 24px 16px;
        border-radius: 22px;
    }

    .navbar-toggler {
        width: 38px;
        height: 34px;
    }

    .navbar-toggler-icon {
        width: 21px;
        height: 16px;
    }
}

/* =========================================================
   GLOBAL FIX: keep every page below the fixed navigation bar
   The desktop navbar becomes taller because of the welcome chip
   and action buttons, so reserve enough space for its real height.
========================================================= */
body {
    padding-top: 92px !important;
}

.app-container {
    margin-top: 16px !important;
}

@media (max-width: 991.98px) {
    body {
        padding-top: 72px !important;
    }

    .app-container {
        margin-top: 12px !important;
    }
}

@media (max-width: 575.98px) {
    body {
        padding-top: 68px !important;
    }

    .app-container {
        margin-top: 10px !important;
    }
}

/* Reusable table pagination */
.auto-table-pagination {
    padding: 10px 4px 2px;
}
.auto-table-pagination .btn {
    min-width: 84px;
    border-radius: 10px;
}
