@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root { --primary:#176b5b; --primary-dark:#0d4f43; --primary-soft:#e3f3ed; --accent:#f2a23a; --accent-soft:#fff3df; --bg:#f5f7f4; --surface:#fff; --surface-muted:#eef2ee; --text:#172522; --text-muted:#61716d; --text-light:#899692; --border:#dce5e0; --success:#16805b; --danger:#c74b4b; --shadow-sm:0 2px 8px rgba(23,58,50,.05); --shadow:0 12px 30px rgba(23,58,50,.09); --shadow-lg:0 22px 55px rgba(23,58,50,.14); --radius:14px; --radius-sm:9px; --radius-lg:22px; }
* { box-sizing:border-box; margin:0; padding:0; }
body { min-height:100vh; background:var(--bg); color:var(--text); font-family:'DM Sans',sans-serif; line-height:1.6; }
body::before { content:''; position:fixed; inset:0; pointer-events:none; opacity:.28; background-image:linear-gradient(rgba(23,107,91,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,107,91,.035) 1px,transparent 1px); background-size:32px 32px; z-index:-1; }
h1,h2,h3,.navbar-brand,.auth-title { font-family:'Space Grotesk',sans-serif; }
a { color:var(--primary); }
.navbar { min-height:74px; padding:0 max(24px,calc((100% - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; gap:20px; position:sticky; top:0; z-index:20; background:rgba(255,255,255,.9); border-bottom:1px solid var(--border); backdrop-filter:blur(14px); }
.navbar-brand { display:inline-flex; align-items:center; gap:10px; color:var(--primary-dark); font-size:21px; font-weight:700; text-decoration:none; }
.navbar-brand::before { content:'MA'; display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#fff; background:var(--primary); font:700 13px 'Space Grotesk',sans-serif; letter-spacing:.4px; }
.nav-links { display:flex; align-items:center; gap:5px; flex-wrap:wrap; justify-content:flex-end; }
.nav-links a { padding:8px 12px; border-radius:8px; color:var(--text-muted); font-size:14px; font-weight:600; text-decoration:none; }
.nav-links a:hover { color:var(--primary); background:var(--primary-soft); }
.hero-section { position:relative; overflow:hidden; padding:76px 24px 66px; text-align:center; background:linear-gradient(135deg,#e1f1eb 0%,#f8faf5 55%,#fff0d9 100%); border-bottom:1px solid var(--border); }
.hero-section::after { content:''; position:absolute; right:-90px; bottom:-120px; width:330px; height:330px; border:55px solid rgba(242,162,58,.16); border-radius:50%; }
.hero-section h1 { position:relative; z-index:1; margin-bottom:10px; color:var(--primary-dark); font-size:clamp(32px,5vw,52px); line-height:1.1; }
.hero-section p { position:relative; z-index:1; max-width:540px; margin:auto; color:var(--text-muted); font-size:17px; }
.filter-container { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-top:27px; position:relative; z-index:1; }
.category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-bottom:42px; }
.category-heading { margin-bottom:16px; }
.category-tile { min-height:128px; display:flex; flex-direction:column; justify-content:space-between; padding:27px 30px; border-radius:14px; color:#fff; background:linear-gradient(135deg,#ef5350,#f15b59); box-shadow:0 8px 18px rgba(209,73,72,.16); text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.category-tile:nth-child(3n) { background:linear-gradient(135deg,#176b5b,#218b74); }
.category-tile:nth-child(3n+1) { background:linear-gradient(135deg,#e98d2c,#f2a23a); }
.category-tile:hover,.category-tile.active { color:#fff; transform:translateY(-3px); box-shadow:0 14px 24px rgba(23,58,50,.18); }
.category-tile span { font:700 24px 'Space Grotesk',sans-serif; }
.category-tile strong { align-self:flex-end; font-size:13px; font-weight:600; opacity:.9; }
.btn-filter { padding:8px 14px; border:1px solid rgba(23,107,91,.2); border-radius:99px; color:var(--primary-dark); background:rgba(255,255,255,.58); font-size:13px; font-weight:600; text-decoration:none; }
.btn-filter:hover,.btn-filter.active { color:#fff; background:var(--primary); border-color:var(--primary); }
.main-content,.container,.admin-content { width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:52px 0; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(265px,1fr)); gap:22px; }
.card,.premium-card,.form-container,.material-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-sm); }
.card,.premium-card { display:flex; flex-direction:column; overflow:hidden; transition:transform .25s ease,box-shadow .25s ease; }
.card:hover,.premium-card:hover,.material-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.premium-card { position:relative; padding:28px; animation:fadeUp .45s ease both; }
.card-body { flex:1; padding:21px; display:flex; flex-direction:column; height:auto; }
.package-cta { display:block; padding:0 21px 21px; }
.package-cta .modern-btn { display:flex; min-height:44px; visibility:visible; opacity:1; }
.card-thumb { width:100%; height:170px; object-fit:cover; background:var(--surface-muted); }
.ad-media { display:block; width:100%; height:auto; max-height:520px; object-fit:contain; background:#101514; }
.card-title,.section-title { color:var(--text); }
.card-title { margin:0 0 8px; font:700 19px/1.25 'Space Grotesk',sans-serif; }
.card-desc,.card-meta { color:var(--text-muted); font-size:14px; }
.card-footer { margin-top:auto; padding-top:18px; }
.card-tag,.tag,.material-type-badge,.modern-badge { display:inline-flex; align-items:center; width:max-content; padding:5px 10px; border-radius:99px; color:var(--primary-dark); background:var(--primary-soft); font-size:11px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; }
.tag { margin-bottom:14px; }
.tag-free { color:var(--success); background:#e4f5ec; }
.tag-paid { color:#a86416; background:var(--accent-soft); }
.modern-btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; width:100%; padding:12px 18px; border:1px solid transparent; border-radius:var(--radius-sm); color:#fff; background:var(--primary); font:600 14px 'DM Sans',sans-serif; text-decoration:none; cursor:pointer; transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.modern-btn:hover { color:#fff; background:var(--primary-dark); box-shadow:0 7px 16px rgba(23,107,91,.2); transform:translateY(-2px); }
.modern-btn.btn-outline { color:var(--primary); background:transparent; border-color:var(--primary); box-shadow:none; }
.modern-btn.btn-outline:hover { color:var(--primary-dark); background:var(--primary-soft); }
.modern-btn.btn-success { background:var(--success); }
.modern-btn.btn-danger { background:var(--danger); }
.btn-primary { color:#fff!important; background:var(--primary)!important; }
.btn-secondary { color:var(--text)!important; background:var(--surface-muted); }
.form-container { padding:30px; animation:fadeUp .45s ease both; }
.form-group { margin-bottom:19px; }
.form-group label { display:block; margin-bottom:7px; color:var(--text); font-size:13px; font-weight:700; }
.modern-input,.modern-select,select.modern-input { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text); background:#fbfcfa; font:15px 'DM Sans',sans-serif; }
.modern-input:focus,select.modern-input:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(23,107,91,.12); background:#fff; }
.checkbox-label { display:flex; align-items:center; gap:10px; color:var(--text-muted); font-size:14px; }
.checkbox-label input { width:18px; height:18px; accent-color:var(--primary); }
.auth-page { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:28px 20px; background:linear-gradient(135deg,#dcefe8,#f8faf5 56%,#fff0d9); }
.auth-card,.auth-container { width:100%; max-width:445px; padding:43px 40px; border:1px solid var(--border); border-radius:var(--radius-lg); background:rgba(255,255,255,.94); box-shadow:var(--shadow-lg); animation:fadeUp .5s ease both; }
.auth-logo { display:flex; align-items:center; justify-content:center; width:100%; height:128px; margin:0 auto 14px; }
.auth-logo img { display:block; width:150px; height:115px; object-fit:contain; }
.auth-title,.auth-header h1 { margin-bottom:7px; text-align:center; color:var(--primary-dark); font-size:29px; }
.auth-subtitle,.auth-header p { margin-bottom:28px; text-align:center; color:var(--text-muted); font-size:14px; }
.auth-footer { margin-top:21px; color:var(--text-muted); text-align:center; font-size:14px; }
.auth-footer a { font-weight:700; text-decoration:none; }
.alert { margin-bottom:19px; padding:11px 14px; border-radius:var(--radius-sm); font-size:14px; font-weight:600; }
.alert-error { color:var(--danger); background:#fff0f0; border:1px solid #f2c8c8; }
.alert-success { color:var(--success); background:#eaf8f0; border:1px solid #c4ead3; }
.submit-btn { width:100%; padding:12px; border:0; border-radius:var(--radius-sm); color:#fff; background:var(--primary); font:600 15px 'DM Sans',sans-serif; cursor:pointer; }
.admin-header { padding:39px max(24px,calc((100% - 1180px)/2)); color:#fff; background:linear-gradient(120deg,#123f38,#176b5b); }
.admin-header h1 { margin-bottom:4px; font-size:31px; }
.admin-header p { color:#c5e2d8; font-size:14px; }
.admin-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-bottom:30px; }
.category-admin-panel { margin-bottom:24px; }
.category-create-form,.category-admin-row { display:grid; gap:10px; align-items:center; }
.category-create-form { grid-template-columns:1.2fr 1fr 1.4fr 1fr auto; }
.category-admin-list { display:grid; gap:10px; margin-top:18px; }
.category-admin-row { grid-template-columns:1.2fr 1fr 1.4fr 1fr auto auto; }
.section-title { display:flex; align-items:center; gap:9px; margin-bottom:22px; padding-bottom:13px; border-bottom:2px solid var(--primary-soft); font:700 19px 'Space Grotesk',sans-serif; }
.data-table { width:100%; border-collapse:collapse; overflow:hidden; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface); }
.data-table th { padding:13px 15px; color:var(--text-muted); background:var(--surface-muted); font-size:11px; letter-spacing:.6px; text-align:left; text-transform:uppercase; }
.data-table td { padding:14px 15px; border-top:1px solid var(--border); color:var(--text); font-size:14px; }
.data-table tbody tr:hover td { background:#f5faf7; }
.course-header { padding:45px max(24px,calc((100% - 900px)/2)); border-bottom:1px solid var(--border); background:linear-gradient(135deg,#e1f1eb,#fff9ee); }
.course-header h1 { margin-bottom:7px; color:var(--primary-dark); font-size:38px; line-height:1.15; }
.material-card { margin-bottom:22px; padding:26px; animation:fadeUp .45s ease both; }
.video-container video,video { width:100%; border-radius:var(--radius-sm); background:#15201d; }
.price-box { padding:20px; margin-top:18px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface-muted); }
.price-label { color:var(--text-muted); font-size:12px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; }
.price-value { margin:4px 0 17px; color:var(--primary); font:700 28px 'Space Grotesk',sans-serif; }
.back-link { display:inline-flex; margin-bottom:23px; color:var(--text-muted); font-size:14px; font-weight:600; text-decoration:none; }
.back-link:hover { color:var(--primary); }
.divider { height:1px; margin:28px 0; background:var(--border); }
.modal { display:none; position:fixed; inset:0; align-items:center; justify-content:center; padding:20px; background:rgba(13,40,34,.48); z-index:50; }
.modal-content { width:min(100%,430px); padding:28px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow-lg); }
.modal-header { margin-bottom:14px; color:var(--primary-dark); font-size:21px; }
.modal-actions { display:flex; gap:10px; margin-top:16px; }
@keyframes fadeUp { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:820px) { .admin-grid { grid-template-columns:1fr; } .navbar { height:auto; min-height:70px; padding-top:12px; padding-bottom:12px; } .nav-links { gap:2px; } }
@media (max-width:560px) { .navbar { align-items:flex-start; flex-direction:column; } .nav-links { width:100%; justify-content:flex-start; } .hero-section { padding:55px 18px 48px; } .main-content,.container,.admin-content { width:min(100% - 32px,1180px); padding:34px 0; } .auth-card,.auth-container,.form-container { padding:29px 22px; } .course-header { padding:34px 18px; } .course-header h1 { font-size:29px; } .material-card { padding:19px; } .data-table { min-width:680px; } .category-grid { grid-template-columns:1fr; gap:14px; } .category-tile { min-height:112px; padding:22px; } .category-tile span { font-size:21px; } .category-create-form,.category-admin-row { grid-template-columns:1fr; } }

.home-hero {
    position:relative;
    overflow:hidden;
    background:linear-gradient(112deg,#102b52 0%,#173e72 62%,#1d5ca8 100%);
    border-bottom:1px solid var(--border);
}
.home-hero::before,
.home-hero::after {
    content:"";
    position:absolute;
    width:480px;
    height:480px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    filter:blur(10px);
    pointer-events:none;
}
.home-hero::before { top:-200px; right:-120px; }
.home-hero::after { bottom:-240px; left:-140px; }
.home-hero-inner {
    position:relative;
    z-index:1;
    width:min(1180px,calc(100% - 48px));
    margin:0 auto;
    padding:76px 0 86px;
    display:grid;
    grid-template-columns:1.15fr .85fr;
    align-items:center;
    gap:46px;
}
.home-hero-copy { max-width:570px; position:relative; z-index:1; }
.home-eyebrow { margin:0 0 10px; color:var(--primary); font-size:11px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; }
.home-hero h1 { max-width:530px; margin-bottom:18px; color:#fff; font-size:clamp(42px,6vw,76px); line-height:.98; }
.home-hero-copy > p:not(.home-eyebrow) { max-width:560px; color:#d9e6f6; font-size:clamp(16px,2vw,20px); }
.home-hero-actions { display:flex; align-items:center; gap:23px; margin-top:27px; flex-wrap:wrap; }
.home-hero-actions .modern-btn { width:auto; min-width:176px; }
.home-text-link { color:#fff; font-size:14px; font-weight:700; text-decoration:none; }
.home-text-link:hover,.home-social-links a:hover { color:#8ed9e7; }
.home-stat-wrap { display:flex; flex-wrap:wrap; gap:14px; margin-top:28px; }
.home-stat {
    min-width:162px;
    padding:16px 18px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:16px;
    background:rgba(255,255,255,.04);
    box-shadow:0 22px 40px rgba(6,16,28,.12);
    color:#d9e6f6;
    font-size:13px;
}
.home-stat strong { display:block; color:#fff; font:700 24px 'Space Grotesk',sans-serif; }
.home-hero-visual { display:flex; justify-content:center; align-items:center; }
.home-hero-visual-card {
    width:min(100%,520px);
    padding:18px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:30px;
    background:rgba(9,24,43,.22);
    box-shadow:0 24px 60px rgba(4,14,28,.35);
}
.home-hero-carousel { width:100%; margin:0; border:0; border-radius:18px; transform:none; }
.home-hero-carousel .home-banner-slide > a,
.home-hero-carousel .home-banner-slide > div { aspect-ratio:auto; }
.home-hero-carousel .home-banner-slide img,
.home-hero-carousel .home-banner-slide video { object-fit:contain; }
.home-hero-carousel .home-banner-title { left:16px; bottom:16px; max-width:calc(100% - 32px); font-size:14px; }
.home-hero-carousel .home-banner-controls { right:auto; bottom:16px; left:16px; }
.home-banner-placeholder {
    width:100%;
    aspect-ratio:1.15;
    background:linear-gradient(160deg,rgba(255,255,255,.18),rgba(255,255,255,.08));
    border:1px solid rgba(255,255,255,.25);
    border-radius:18px;
}
.home-section { width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:76px 0; }
.home-section-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:26px; }
.home-section-heading h2,.home-community h2,.home-contact h2 { color:var(--primary-dark); font-size:32px; line-height:1.15; }
.home-section-heading > p { max-width:380px; color:var(--text-muted); font-size:14px; }
.home-class-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.home-class-link { min-height:120px; display:flex; justify-content:space-between; align-items:flex-end; gap:15px; padding:20px; color:#fff; background:var(--primary); border-radius:8px; text-decoration:none; transition:transform .2s ease,background .2s ease; }
.home-class-link:nth-child(3n+2) { background:#c66b28; }
.home-class-link:nth-child(3n) { background:#354e48; }
.home-class-link:hover { color:#fff; background:var(--primary-dark); transform:translateY(-3px); }
.home-class-link span { font:700 19px 'Space Grotesk',sans-serif; }
.home-class-link strong { font-size:20px; }
.home-about { display:grid; grid-template-columns:.65fr 1.8fr auto; align-items:center; gap:35px; padding:40px max(24px,calc((100% - 1180px)/2)); color:#fff; background:var(--primary-dark); }
.home-about-label { color:#f3bf74; font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
.home-about h2 { margin-bottom:8px; font-size:28px; }
.home-about p { max-width:660px; color:#d2e2dc; font-size:14px; }
.home-about .modern-btn { width:auto; white-space:nowrap; color:#fff; border-color:rgba(255,255,255,.7); }
.home-live-section { padding-top:63px; }
.home-live-list { border-top:1px solid var(--border); }
.home-live-row { display:grid; grid-template-columns:110px minmax(0,1fr) auto; align-items:center; gap:20px; padding:19px 0; border-bottom:1px solid var(--border); }
.home-live-status { width:max-content; padding:5px 8px; color:#8c5a1e; background:var(--accent-soft); border-radius:4px; font-size:10px; font-weight:700; text-transform:uppercase; }
.home-live-status.is-live { color:var(--success); background:#e4f5ec; }
.home-live-row h3,.home-update h3 { margin-bottom:3px; color:var(--text); font:700 17px 'Space Grotesk',sans-serif; }
.home-live-row p,.home-update p { color:var(--text-muted); font-size:13px; }
.home-update-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.home-update { min-width:0; overflow:hidden; border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.home-update > div { padding:18px; }
.home-update-media { display:block; width:100%; height:190px; object-fit:cover; background:var(--surface-muted); }
.home-community { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:58px; padding:62px max(24px,calc((100% - 1180px)/2)); background:#e3f3ed; }
.home-community-copy > p:last-child { max-width:410px; margin-top:13px; color:var(--text-muted); font-size:14px; }
.home-group-list { display:grid; gap:9px; }
.home-group-link { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:15px 17px; color:var(--primary-dark); background:#fff; border:1px solid rgba(23,107,91,.14); border-radius:6px; text-decoration:none; transition:transform .2s ease,border-color .2s ease; }
.home-group-link:hover { color:var(--primary-dark); border-color:var(--primary); transform:translateX(3px); }
.home-group-link span:first-child { display:grid; gap:3px; }
.home-group-link small { color:var(--text-muted); font-size:9px; font-weight:700; letter-spacing:1px; }
.home-group-link strong { font:700 15px 'Space Grotesk',sans-serif; }
.home-group-link > span:last-child { font-size:20px; }
.home-contact { display:flex; justify-content:space-between; align-items:center; gap:36px; }
.home-contact > div:first-child { max-width:690px; }
.home-contact p:not(.home-eyebrow) { margin-top:10px; color:var(--text-muted); font-size:14px; }
.home-contact-details,.home-social-links { display:flex; flex-wrap:wrap; gap:9px 20px; margin-top:17px; color:var(--text-muted); font-size:13px; }
.home-contact-details a,.home-social-links a { color:var(--primary-dark); font-weight:600; text-decoration:none; }
.home-social-links a { font-size:12px; }
.home-contact-actions { display:grid; gap:10px; width:min(100%,230px); flex:none; }
.home-footer { min-height:100px; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px max(24px,calc((100% - 1180px)/2)); background:#fff; border-top:1px solid var(--border); }
.home-footer .navbar-brand { font-size:17px; }
.home-footer .navbar-brand::before { width:29px; height:29px; }
.home-footer > span { color:var(--text-muted); font-size:12px; }
.home-footer > a:last-child { font-size:12px; font-weight:700; text-decoration:none; }
.home-teacher-feature { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr); align-items:center; gap:clamp(28px,5vw,70px); padding:52px max(24px,calc((100% - 1180px)/2)) 0; overflow:hidden; color:#fff; background:var(--primary-dark); }
.home-teacher-feature-copy { max-width:720px; padding-bottom:45px; }
.home-teacher-eyebrow { margin:0 0 12px; color:#8ed9e7; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
.home-teacher-message p { max-width:720px; margin:0 0 15px; color:#e1ebf7; font-size:14px; line-height:1.85; }
.home-teacher-promise { margin-top:22px; padding-left:16px; border-left:3px solid #f3bf74; }
.home-teacher-promise p { margin:0 0 8px; color:#fff; font-size:14px; line-height:1.7; }
.home-teacher-promise p:first-child { color:#f3bf74; font-weight:700; }
.home-teacher-promise strong { display:block; margin:8px 0; color:#8ed9e7; font:700 27px/1.15 'Space Grotesk',sans-serif; }
.home-teacher-signature { margin:24px 0 4px; color:#fff; font-size:20px; font-weight:700; }
.home-teacher-credentials { margin:0; color:#d9e6f6; font-size:12px; line-height:1.7; }
.home-teacher-credentials span { display:inline-block; margin-top:5px; color:#fff; font-weight:700; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.home-teacher-portrait { display:grid; justify-items:center; align-self:end; margin:0; }
.home-teacher-portrait img { display:block; width:min(100%,360px); height:360px; object-fit:contain; object-position:center bottom; }
.home-teacher-portrait figcaption { width:100%; padding:12px 10px 15px; color:#8ed9e7; font-size:12px; font-weight:700; text-align:center; }
@media (max-width:700px) { .home-teacher-feature { grid-template-columns:1fr; gap:0; padding:38px 22px 0; } .home-teacher-feature-copy { padding-bottom:12px; } .home-teacher-message p { font-size:13px; line-height:1.8; } .home-teacher-promise { margin-top:18px; } .home-teacher-portrait img { height:310px; } }
.whatsapp-float { position:fixed; right:23px; bottom:22px; z-index:30; width:54px; aspect-ratio:1; display:grid; place-items:center; color:#fff; background:#16805b; border:3px solid #fff; border-radius:50%; box-shadow:0 4px 16px rgba(23,58,50,.25); text-decoration:none; }
.whatsapp-float span { font:700 13px 'Space Grotesk',sans-serif; }
.site-settings-panel { margin-bottom:24px; }
.site-settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.site-group-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:6px 0 13px; }
.site-group-heading h3 { font-size:16px; }
.site-group-heading .modern-btn { width:auto; padding:8px 12px; }
.site-group-list { display:grid; gap:10px; }
.site-group-row { display:grid; grid-template-columns:1fr 1.5fr auto; gap:9px; align-items:center; }
.site-group-row .modern-btn { width:auto; padding:10px 12px; }
.site-settings-save { max-width:230px; margin-top:18px; }
.zoom-join-panel { display:grid; justify-items:start; gap:10px; padding:28px 8px; }
.zoom-join-panel h2 { color:var(--primary-dark); font-size:25px; }
.zoom-join-panel p { color:var(--text-muted); font-size:14px; }
.zoom-join-panel .modern-btn { width:auto; margin-top:5px; }
@media (max-width:900px) { .home-hero { min-height:470px; grid-template-columns:1fr .75fr; gap:25px; padding-top:55px; padding-bottom:55px; } .home-hero-art { min-height:300px; } .home-class-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .home-about { grid-template-columns:1fr 2fr; gap:20px; } .home-about .modern-btn { grid-column:2; justify-self:start; } .home-community { gap:28px; } }
@media (max-width:600px) { .home-hero { grid-template-columns:1fr; gap:22px; padding:43px 22px 35px; } .home-hero h1 { font-size:42px; } .home-hero-copy > p:not(.home-eyebrow) { font-size:15px; } .home-hero-art { min-height:245px; } .home-art-frame { width:77%; aspect-ratio:1.25; } .home-art-caption { right:3%; bottom:0; } .home-section { width:calc(100% - 36px); padding:48px 0; } .home-section-heading { display:block; } .home-section-heading h2,.home-community h2,.home-contact h2 { font-size:26px; } .home-section-heading > p { margin-top:10px; } .home-class-grid { gap:9px; } .home-class-link { min-height:98px; padding:14px; } .home-class-link span { font-size:16px; } .home-about { grid-template-columns:1fr; gap:14px; padding:30px 22px; } .home-about h2 { font-size:23px; } .home-about .modern-btn { grid-column:auto; } .home-live-row { grid-template-columns:1fr auto; gap:9px 12px; } .home-live-status { grid-column:1 / -1; } .home-live-row .home-text-link { font-size:12px; text-align:right; } .home-update-grid { grid-template-columns:1fr; } .home-community { grid-template-columns:1fr; gap:22px; padding:40px 22px; } .home-contact { display:grid; align-items:start; gap:22px; } .home-contact-actions { width:100%; } .home-footer { align-items:flex-start; flex-direction:column; gap:10px; padding:22px; } .site-settings-grid { grid-template-columns:1fr; } .site-group-row { grid-template-columns:1fr; padding:12px; border:1px solid var(--border); border-radius:8px; } .site-group-row .modern-btn { width:100%; } .whatsapp-float { right:15px; bottom:15px; } }

.home-social-links { align-items:center; }
.home-social-links a { display:inline-flex; align-items:center; gap:7px; min-height:38px; padding:4px 9px 4px 4px; border-radius:20px; animation:socialEnter .45s ease both; transition:transform .2s ease,background .2s ease,color .2s ease; }
.home-social-links a:nth-child(2) { animation-delay:.06s; }
.home-social-links a:nth-child(3) { animation-delay:.12s; }
.home-social-links a:nth-child(4) { animation-delay:.18s; }
.home-social-links a:hover { color:var(--primary-dark); background:#fff; transform:translateY(-3px); }
.home-social-icon { width:29px; aspect-ratio:1; display:grid; place-items:center; color:#fff; background:var(--primary); border-radius:50%; font:700 14px 'Space Grotesk',sans-serif; }
.home-social-links a:nth-child(2) .home-social-icon { background:#bd4b72; }
.home-social-links a:nth-child(3) .home-social-icon { background:#c7473e; font-size:12px; }
.home-social-links a:nth-child(4) .home-social-icon { background:#25312e; }
.whatsapp-float { isolation:isolate; transition:transform .2s ease,background .2s ease; animation:whatsappEnter .5s .25s ease both; }
.whatsapp-float::after { content:''; position:absolute; inset:-4px; z-index:-1; border:2px solid #16805b; border-radius:50%; animation:whatsappPulse 2.2s ease-out 1s infinite; }
.whatsapp-float:hover { color:#fff; background:#0d6848; transform:scale(1.08) rotate(-6deg); }
.whatsapp-float svg { width:27px; height:27px; fill:none; stroke:#fff; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.whatsapp-float svg path + path { fill:#fff; stroke:none; }
.admin-quick-nav { position:sticky; top:0; z-index:19; display:flex; gap:6px; overflow-x:auto; padding:10px max(24px,calc((100% - 1180px)/2)); background:rgba(255,255,255,.95); border-bottom:1px solid var(--border); backdrop-filter:blur(12px); scrollbar-width:thin; }
.admin-quick-nav a { flex:none; padding:8px 11px; color:var(--text-muted); border-radius:6px; font-size:12px; font-weight:700; text-decoration:none; transition:background .2s ease,color .2s ease; }
.admin-quick-nav a:hover,.admin-quick-nav a:focus-visible { color:var(--primary-dark); background:var(--primary-soft); }
.admin-overview { display:grid; grid-template-columns:minmax(190px,.7fr) minmax(0,1.7fr); align-items:center; gap:30px; margin-bottom:30px; padding:27px; background:#fff; border:1px solid var(--border); border-radius:8px; box-shadow:var(--shadow-sm); }
.admin-overview-heading h2 { margin-bottom:5px; color:var(--primary-dark); font:700 25px 'Space Grotesk',sans-serif; }
.admin-overview-heading > p:last-child { color:var(--text-muted); font-size:13px; }
.admin-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.admin-metric { min-height:76px; display:flex; flex-direction:column; justify-content:center; gap:4px; padding:12px; background:var(--bg); border-left:3px solid var(--primary); }
.admin-metric:nth-child(2) { border-color:var(--accent); }
.admin-metric:nth-child(3) { border-color:#c66b28; }
.admin-metric:nth-child(4) { border-color:#52645e; }
.admin-metric span { color:var(--text-muted); font-size:11px; }
.admin-metric strong { color:var(--text); font:700 22px 'Space Grotesk',sans-serif; }
.site-group-row { grid-template-columns:minmax(120px,1fr) minmax(190px,1.4fr) 100px auto auto; }
.site-group-public { display:flex; align-items:center; gap:6px; color:var(--text-muted); font-size:12px; font-weight:600; white-space:nowrap; }
.site-group-public input { width:16px; height:16px; accent-color:var(--primary); }
@keyframes whatsappPulse { 0% { transform:scale(.94); opacity:.8; } 75%,100% { transform:scale(1.55); opacity:0; } }
@keyframes whatsappEnter { from { opacity:0; transform:translateY(12px) scale(.85); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes socialEnter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:820px) { .admin-overview { grid-template-columns:1fr; gap:18px; } .admin-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .admin-quick-nav { padding-right:16px; padding-left:16px; } .admin-overview { padding:20px; } .admin-metric { min-height:67px; } .site-group-row { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .home-social-links a,.whatsapp-float,.whatsapp-float::after { animation:none; transition:none; } }

:root { --primary:#0f766e; --primary-dark:#115e59; --primary-soft:#dff3ee; --accent:#e47a36; --accent-soft:#fff0df; --bg:#f3f7f6; --surface:#fff; --surface-muted:#eaf1ef; --text:#172a27; --text-muted:#5f716d; --text-light:#82928e; --border:#d7e3df; --radius:11px; --radius-sm:7px; --radius-lg:16px; --shadow-sm:0 2px 9px rgba(15,60,53,.06); --shadow:0 12px 30px rgba(15,60,53,.11); --shadow-lg:0 24px 60px rgba(15,60,53,.16); }
.admin-header { background:linear-gradient(112deg,#123e39,#0f766e 78%,#338b78); }
.admin-content { padding-top:30px; }
.form-container,.card,.material-card,.premium-card { border-radius:8px; }
.form-container { box-shadow:0 3px 14px rgba(15,60,53,.055); }
.modern-btn { min-height:42px; border-radius:7px; }
.modern-input,.modern-select,select.modern-input { border-radius:7px; background:#fbfdfc; }
.admin-quick-nav { box-shadow:0 4px 14px rgba(15,60,53,.06); }
.home-banner-carousel { position:relative; width:min(1180px,calc(100% - 48px)); margin:28px auto 0; overflow:hidden; background:#172a27; border-radius:8px; box-shadow:var(--shadow); }
.home-banner-slide[hidden] { display:none; }
.home-banner-slide > a,.home-banner-slide > div { position:relative; display:block; width:100%; height:auto; aspect-ratio:auto; overflow:hidden; }
.home-banner-slide img { display:block; width:100%; height:auto; object-fit:contain; }
.home-banner-slide video { display:block; width:100%; height:auto; aspect-ratio:16 / 9; object-fit:contain; background:#102b52; }
.home-banner-title { position:absolute; left:clamp(16px,4vw,42px); bottom:clamp(16px,4vw,38px); max-width:min(70%,620px); padding:10px 15px; color:#fff; background:rgba(17,54,48,.82); border-left:3px solid #f0a35a; font:600 17px 'Space Grotesk',sans-serif; }
.home-banner-controls { position:absolute; right:17px; bottom:18px; z-index:2; display:flex; gap:7px; }
.home-banner-controls button { width:9px; height:9px; padding:0; background:rgba(255,255,255,.55); border:0; border-radius:50%; cursor:pointer; }
.home-banner-controls button[aria-current="true"] { width:24px; background:#fff; border-radius:6px; }
.watermarked-player { position:relative; isolation:isolate; overflow:hidden; background:#0b1211; border-radius:8px; }
.watermarked-player video,.watermarked-player iframe { display:block; width:100%; aspect-ratio:16 / 9; border:0; background:#0b1211; }
.youtube-click-shield { position:absolute; inset:0; z-index:2; background:transparent; }
.lesson-video-controls { display:flex; align-items:center; gap:12px; margin-top:9px; }
.lesson-video-controls .modern-btn { width:auto; min-width:84px; }
.lesson-video-controls span { color:var(--text-muted); font-size:13px; }
.video-watermark { position:absolute; top:12px; right:12px; z-index:2; max-width:calc(100% - 24px); overflow:hidden; padding:5px 9px; color:rgba(255,255,255,.84); background:rgba(11,25,23,.46); border:1px solid rgba(255,255,255,.18); border-radius:4px; font:600 11px 'DM Sans',sans-serif; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; pointer-events:none; text-shadow:0 1px 3px #000; animation:watermarkPosition 28s steps(1,end) infinite; }
.video-fullscreen-btn { position:absolute; right:10px; bottom:10px; z-index:3; width:35px; height:35px; display:grid; place-items:center; color:#fff; background:rgba(11,25,23,.7); border:1px solid rgba(255,255,255,.42); border-radius:5px; font-size:20px; cursor:pointer; }
.video-fullscreen-btn:hover { background:var(--primary-dark); }
.watermarked-player:fullscreen { display:grid; place-items:center; width:100vw; height:100vh; background:#000; border-radius:0; }
.watermarked-player:fullscreen video,.watermarked-player:fullscreen iframe { width:100vw; height:100vh; max-height:100vh; aspect-ratio:auto; }
.course-assignments { margin:34px 0; }
.course-assignment-list,.admin-assignment-list,.admin-submission-list { display:grid; gap:12px; }
.course-assignment { padding:20px; background:#fff; border:1px solid var(--border); border-left:3px solid var(--primary); border-radius:7px; box-shadow:var(--shadow-sm); }
.course-assignment-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; }
.course-assignment-heading h3 { margin-top:8px; color:var(--text); font:700 18px 'Space Grotesk',sans-serif; }
.course-assignment-heading time { color:var(--text-muted); font-size:12px; }
.course-assignment-description { margin-top:12px; color:var(--text-muted); font-size:14px; white-space:pre-wrap; }
.assignment-submit-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:end; gap:12px; margin-top:16px; }
.assignment-submit-form label,.admin-review-form label { display:grid; gap:6px; color:var(--text-muted); font-size:12px; font-weight:700; }
.assignment-submission-state { display:grid; gap:8px; margin-top:14px; padding:12px; background:var(--primary-soft); border-radius:6px; color:var(--text); font-size:13px; }
.assignment-submission-state a { font-weight:700; }
.assignment-submission-state p { color:var(--text-muted); white-space:pre-wrap; }
.admin-banner-panel,.admin-work-section { margin-bottom:24px; scroll-margin-top:76px; }
.banner-create-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.banner-create-form > button { align-self:end; margin-bottom:19px; }
.admin-banner-list { display:grid; gap:9px; margin-top:20px; }
.admin-banner-row,.admin-assignment-row { display:grid; grid-template-columns:120px minmax(0,1fr) auto auto; align-items:center; gap:14px; padding:12px; border:1px solid var(--border); border-radius:6px; }
.admin-banner-row img,.admin-banner-row video { width:120px; aspect-ratio:16 / 6; object-fit:cover; border-radius:4px; background:var(--surface-muted); }
.admin-banner-row > div,.admin-assignment-row > div { display:grid; gap:4px; }
.admin-banner-row span,.admin-assignment-row span { color:var(--text-muted); font-size:12px; }
.admin-banner-row .modern-btn,.admin-assignment-row .modern-btn { width:auto; min-width:76px; padding:8px 11px; }
.admin-empty-state { padding:15px 0; color:var(--text-muted); font-size:14px; }
.admin-submission-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,.8fr); gap:18px; padding:16px; border:1px solid var(--border); border-radius:7px; }
.admin-submission-summary { display:grid; align-content:start; gap:5px; min-width:0; }
.admin-submission-summary strong { color:var(--text); }
.admin-submission-summary span,.admin-submission-summary p { color:var(--text-muted); font-size:12px; }
.admin-submission-summary a { width:fit-content; color:var(--primary); font-size:13px; font-weight:700; overflow-wrap:anywhere; }
.admin-review-form { display:grid; gap:10px; }
.admin-review-form .modern-btn { width:auto; }
.form-hint { display:block; margin:7px 0 15px; color:var(--text-muted); font-size:12px; }
.status-ready { color:var(--success); }
.status-missing { color:var(--danger); }
@keyframes watermarkPosition { 0%,24% { top:12px; right:12px; bottom:auto; left:auto; } 25%,49% { top:auto; right:12px; bottom:42px; left:auto; } 50%,74% { top:auto; right:auto; bottom:42px; left:12px; } 75%,99% { top:12px; right:auto; bottom:auto; left:12px; } }
@media (max-width:900px) { .admin-metric-grid { grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); } .admin-banner-row { grid-template-columns:90px minmax(0,1fr) auto auto; } .admin-banner-row img,.admin-banner-row video { width:90px; } .assignment-submit-form { grid-template-columns:1fr 1fr; } .assignment-submit-form button { grid-column:1 / -1; } }
@media (max-width:600px) { .home-banner-carousel { width:calc(100% - 32px); margin-top:18px; } .home-banner-title { max-width:calc(100% - 32px); padding:7px 9px; font-size:13px; } .home-banner-controls { right:10px; bottom:11px; } .assignment-submit-form,.banner-create-form,.admin-submission-row { grid-template-columns:1fr; } .assignment-submit-form button { grid-column:auto; } .course-assignment { padding:15px; } .course-assignment-heading { display:grid; } .admin-banner-row,.admin-assignment-row { grid-template-columns:72px minmax(0,1fr) auto; gap:9px; } .admin-banner-row img,.admin-banner-row video { width:72px; } .admin-banner-row form:last-child,.admin-assignment-row form { grid-column:2 / -1; justify-self:end; } .admin-banner-row .modern-btn,.admin-assignment-row .modern-btn { min-width:70px; } .admin-submission-row { gap:12px; } .video-watermark { top:8px; right:8px; max-width:calc(100% - 16px); padding:4px 6px; font-size:9px; } }
@media (prefers-reduced-motion:reduce) { .watermarked-player .video-watermark,.home-banner-slide img { animation:none; transition:none; } }

:root { --primary:#2058a8; --primary-dark:#102c58; --primary-soft:#e8f0fc; --accent:#42a9c3; --accent-soft:#e5f6fa; --bg:#f3f6fb; --surface:#fff; --surface-muted:#eaf0f8; --text:#182943; --text-muted:#5c6b80; --text-light:#8996a9; --border:#d9e2ef; --success:#16856c; --danger:#c54856; --shadow-sm:0 3px 12px rgba(17,45,87,.055); --shadow:0 13px 34px rgba(17,45,87,.11); --shadow-lg:0 26px 64px rgba(17,45,87,.16); }
body { background:#f3f6fb; color:var(--text); }
body::before { opacity:.42; background-image:linear-gradient(rgba(32,88,168,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(32,88,168,.025) 1px,transparent 1px); }
a { color:var(--primary); }
.navbar { background:rgba(255,255,255,.94); border-color:#e1e8f1; box-shadow:0 4px 16px rgba(16,44,88,.045); }
.navbar-brand { color:var(--primary-dark); }
.navbar-brand::before { background:var(--primary-dark); border-radius:8px; }
.nav-links a:hover { color:var(--primary-dark); background:var(--primary-soft); }
.home-hero { color:#fff; background:linear-gradient(112deg,#102c58 0%,#153d76 63%,#2058a8 100%); border-bottom:0; }
.home-hero h1 { color:#fff; }
.home-hero-copy > p:not(.home-eyebrow) { color:#d8e6fa; }
.home-hero .home-eyebrow { color:#8dd9ea; }
.home-stat { color:#d8e6fa; border-color:rgba(255,255,255,.22); }
.home-stat strong { color:#fff; }
.home-text-link { color:var(--primary-dark); }
.home-hero .home-text-link { color:#fff; }
.home-art-frame { border-color:rgba(255,255,255,.55); }
.home-art-caption { color:#fff; background:#1b64ae; }
.hero-section { background:linear-gradient(120deg,#102c58,#2058a8); border-color:#1d4d8d; }
.hero-section h1 { color:#fff; }
.hero-section p { color:#d8e6fa; }
.hero-section::after { border-color:rgba(116,197,223,.14); }
.admin-header { background:linear-gradient(112deg,#102c58,#174b91 76%,#2467b4); }
.admin-header p { color:#d0e0f5; }
.home-about { background:#102c58; }
.home-about-label { color:#8dd9ea; }
.home-class-link,.home-class-link:nth-child(3n),.home-class-link:nth-child(3n+2) { background:#2058a8; }
.home-class-link:nth-child(3n+2) { background:#167f9b; }
.home-class-link:nth-child(3n) { background:#243f69; }
.home-class-link:hover { background:#102c58; }
.home-community { background:#e9f1fc; }
.category-tile { background:linear-gradient(140deg,#174b91,#286bc0); }
.category-tile:nth-child(3n),.category-tile:nth-child(3n+1) { background:linear-gradient(140deg,#174b91,#286bc0); }
.category-tile:nth-child(3n+2) { background:linear-gradient(140deg,#147b97,#249fba); }
.btn-filter:hover,.btn-filter.active { background:var(--primary-dark); border-color:var(--primary-dark); }
.modern-btn { background:var(--primary); }
.modern-btn:hover { background:var(--primary-dark); box-shadow:0 8px 18px rgba(32,88,168,.21); }
.modern-btn.btn-outline { color:var(--primary); border-color:var(--primary); }
.modern-btn.btn-outline:hover { color:var(--primary-dark); background:var(--primary-soft); }
.modern-btn.btn-success { background:#167c68; }
.btn-primary { background:var(--primary-dark)!important; }
.modern-input:focus,select.modern-input:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(32,88,168,.14); }
.auth-page { background:linear-gradient(135deg,#e5edf9 0%,#f7f9fc 58%,#eaf4fa 100%); }
.auth-card,.auth-container { border-color:#dae4f0; border-radius:14px; box-shadow:0 24px 62px rgba(16,44,88,.14); }
.auth-title,.auth-header h1 { color:var(--primary-dark); }
.section-title { border-color:#e1e9f4; }
.admin-quick-nav { border-color:#dbe4f0; }
.admin-quick-nav a:hover,.admin-quick-nav a:focus-visible { color:var(--primary-dark); background:var(--primary-soft); }
.admin-overview { border-color:#dbe4f0; }
.admin-metric { border-color:var(--primary); }
.admin-metric:nth-child(2),.admin-metric:nth-child(3),.admin-metric:nth-child(4) { border-color:var(--accent); }
.home-social-links a { animation: socialEnter .5s ease both; }
.home-social-links a:hover { color:var(--primary-dark); background:#eaf1fc; }
.home-social-icon { background:#2058a8; }
.home-social-links a:nth-child(2) .home-social-icon { background:#2877a9; }
.home-social-links a:nth-child(3) .home-social-icon { background:#d14855; }
.home-social-links a:nth-child(4) .home-social-icon { background:#24344b; }
.whatsapp-float { background:#148268; box-shadow:0 8px 24px rgba(17,45,87,.24); }
.whatsapp-float::after { border-color:#148268; }
.whatsapp-float:hover { background:#0d684f; }
.home-banner-title { background:rgba(16,44,88,.88); border-color:#55c0d5; }
.home-banner-controls button[aria-current="true"] { background:#fff; }
.review-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:28px; align-items:start; }
.review-list { display:grid; gap:12px; }
.review-item { padding:19px 20px; background:#fff; border:1px solid var(--border); border-radius:8px; box-shadow:var(--shadow-sm); }
.review-item-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:8px; }
.review-item-heading strong { color:var(--primary-dark); font:700 15px 'Space Grotesk',sans-serif; }
.review-item > p { color:var(--text-muted); font-size:14px; white-space:pre-wrap; }
.review-stars { color:#e3a62f; font-size:16px; letter-spacing:1px; white-space:nowrap; }
.review-empty,.gallery-empty { padding:22px; color:var(--text-muted); background:#fff; border:1px dashed #c8d5e5; border-radius:8px; }
.review-form { display:grid; gap:13px; padding:22px; background:#fff; border:1px solid var(--border); border-top:3px solid var(--primary); border-radius:8px; box-shadow:var(--shadow-sm); }
.review-form h3 { color:var(--primary-dark); font:700 20px 'Space Grotesk',sans-serif; }
.review-form .form-group { display:grid; gap:7px; margin:0; color:var(--text-muted); font-size:12px; font-weight:700; }
.review-rating { padding:0; border:0; }
.review-rating legend { margin-bottom:5px; color:var(--text-muted); font-size:12px; font-weight:700; }
.star-rating { display:inline-flex; flex-direction:row-reverse; justify-content:flex-end; gap:3px; }
.star-rating input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.star-rating label { color:#c9d2df; font-size:32px; line-height:1.2; cursor:pointer; transition:color .15s ease,transform .15s ease; }
.star-rating label:hover,.star-rating label:hover ~ label,.star-rating input:checked ~ label { color:#e3a62f; }
.star-rating label:hover { transform:translateY(-2px) scale(1.08); }
.star-rating input:focus-visible + label { outline:2px solid var(--primary); outline-offset:3px; border-radius:3px; }
.review-notice { padding:10px 12px; color:#0f6b58; background:#e4f5ef; border:1px solid #bfe5d7; border-radius:6px; font-size:13px; }
.review-author { color:var(--text-muted); font-size:13px; }
.auth-resource-links { display:flex; justify-content:center; gap:12px 20px; flex-wrap:wrap; margin-top:18px; font-size:13px; }
.auth-resource-links a { font-weight:700; text-decoration:none; }
.home-gallery-preview { padding-top:28px; }
.gallery-preview-grid,.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.gallery-preview-item,.gallery-item { min-width:0; overflow:hidden; background:#fff; border:1px solid var(--border); border-radius:8px; box-shadow:var(--shadow-sm); }
.gallery-preview-item > img,.gallery-preview-item video,.gallery-preview-item iframe,.gallery-media img,.gallery-media video,.gallery-media iframe { display:block; width:100%; aspect-ratio:16 / 10; object-fit:cover; border:0; background:#102c58; }
.gallery-preview-item > div,.gallery-item-copy { padding:14px 16px; }
.gallery-preview-item h3,.gallery-item-copy h2 { margin-bottom:4px; color:var(--primary-dark); font:700 16px 'Space Grotesk',sans-serif; }
.gallery-preview-item p,.gallery-item-copy p { color:var(--text-muted); font-size:13px; }
.gallery-header { padding:56px 24px 45px; color:#fff; background:linear-gradient(112deg,#102c58,#2058a8); text-align:center; }
.gallery-header .home-eyebrow { color:#8dd9ea; }
.gallery-header h1 { margin:0 0 8px; font:700 38px 'Space Grotesk',sans-serif; }
.gallery-header p:last-child { color:#d8e6fa; }
.gallery-page { width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:38px 0 70px; }
.gallery-item-copy { min-height:85px; }
.gallery-item-copy h2 { font-size:17px; }
.gallery-admin { margin-top:52px; padding:25px; background:#fff; border:1px solid var(--border); border-radius:8px; box-shadow:var(--shadow-sm); scroll-margin-top:84px; }
.gallery-upload-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.gallery-upload-form .form-group { display:grid; gap:7px; color:var(--text-muted); font-size:12px; font-weight:700; }
.gallery-upload-form > .modern-btn { align-self:end; margin-bottom:19px; }
.gallery-admin-list { display:grid; gap:8px; margin-top:18px; }
.gallery-admin-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:12px; border:1px solid var(--border); border-radius:6px; }
.gallery-admin-row > div { display:grid; gap:4px; }
.gallery-admin-row span { color:var(--text-muted); font-size:12px; }
.gallery-admin-row .modern-btn { width:auto; min-width:82px; padding:8px 11px; }
.admin-review-list { display:grid; gap:10px; }
.admin-review-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:15px; padding:15px; border:1px solid var(--border); border-radius:7px; }
.admin-review-heading { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:7px; }
.admin-review-heading strong { color:var(--primary-dark); }
.admin-review-item p { color:var(--text-muted); font-size:13px; white-space:pre-wrap; }
.admin-review-item small { display:block; margin-top:7px; color:var(--text-light); font-size:11px; }
.review-status { padding:4px 7px; color:#95521e; background:#fff1dd; border-radius:4px; font-size:10px; font-weight:700; text-transform:uppercase; }
.review-status.is-published { color:#0f6b58; background:#e4f5ef; }
.admin-review-actions { display:flex; align-items:center; gap:7px; }
.admin-review-actions .modern-btn { width:auto; padding:8px 11px; }
@media (max-width:850px) { .review-layout { grid-template-columns:1fr; } .gallery-preview-grid,.gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .review-layout { gap:18px; } .review-form { padding:18px; } .gallery-preview-grid,.gallery-grid { grid-template-columns:1fr; } .gallery-page { width:calc(100% - 32px); padding-top:24px; } .gallery-header { padding:42px 18px 34px; } .gallery-header h1 { font-size:31px; } .gallery-admin { padding:16px; } .gallery-upload-form { grid-template-columns:1fr; } .gallery-admin-row { grid-template-columns:minmax(0,1fr) auto; } .gallery-admin-row form:last-child { grid-column:2; justify-self:end; } .admin-review-item { grid-template-columns:1fr; } .admin-review-actions { justify-content:flex-end; } }
@media (prefers-reduced-motion:reduce) { .home-social-links a,.star-rating label { animation:none; transition:none; } }

:root { --primary:#176b5b; --primary-dark:#0d4f43; --primary-soft:#e3f3ed; --accent:#f2a23a; --accent-soft:#fff3df; --bg:#f5f7f4; --surface:#fff; --surface-muted:#eef2ee; --text:#172522; --text-muted:#61716d; --text-light:#899692; --border:#dce5e0; --success:#16805b; --danger:#c74b4b; --shadow-sm:0 2px 8px rgba(23,58,50,.05); --shadow:0 12px 30px rgba(23,58,50,.09); --shadow-lg:0 22px 55px rgba(23,58,50,.14); --radius:14px; --radius-sm:9px; --radius-lg:22px; }
* { box-sizing:border-box; margin:0; padding:0; }
body { min-height:100vh; background:var(--bg); color:var(--text); font-family:'DM Sans',sans-serif; line-height:1.6; }
body::before { content:''; position:fixed; inset:0; pointer-events:none; opacity:.28; background-image:linear-gradient(rgba(23,107,91,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,107,91,.035) 1px,transparent 1px); background-size:32px 32px; z-index:-1; }
h1,h2,h3,.navbar-brand,.auth-title { font-family:'Space Grotesk',sans-serif; }
a { color:var(--primary); }
.navbar { min-height:74px; padding:0 max(24px,calc((100% - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; gap:20px; position:sticky; top:0; z-index:20; background:rgba(255,255,255,.9); border-bottom:1px solid var(--border); backdrop-filter:blur(14px); }
.navbar-brand { display:inline-flex; align-items:center; gap:10px; color:var(--primary-dark); font-size:21px; font-weight:700; text-decoration:none; }
.navbar-brand::before { content:'MA'; display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#fff; background:var(--primary); font:700 13px 'Space Grotesk',sans-serif; letter-spacing:.4px; }
.nav-links { display:flex; align-items:center; gap:5px; flex-wrap:wrap; justify-content:flex-end; }
.nav-links a { padding:8px 12px; border-radius:8px; color:var(--text-muted); font-size:14px; font-weight:600; text-decoration:none; }
.nav-links a:hover { color:var(--primary); background:var(--primary-soft); }
.hero-section { position:relative; overflow:hidden; padding:76px 24px 66px; text-align:center; background:linear-gradient(135deg,#e1f1eb 0%,#f8faf5 55%,#fff0d9 100%); border-bottom:1px solid var(--border); }
.hero-section::after { content:''; position:absolute; right:-90px; bottom:-120px; width:330px; height:330px; border:55px solid rgba(242,162,58,.16); border-radius:50%; }
.hero-section h1 { position:relative; z-index:1; margin-bottom:10px; color:var(--primary-dark); font-size:clamp(32px,5vw,52px); line-height:1.1; }
.hero-section p { position:relative; z-index:1; max-width:540px; margin:auto; color:var(--text-muted); font-size:17px; }
.filter-container { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-top:27px; position:relative; z-index:1; }
.category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-bottom:42px; }
.category-heading { margin-bottom:16px; }
.category-tile { min-height:128px; display:flex; flex-direction:column; justify-content:space-between; padding:27px 30px; border-radius:14px; color:#fff; background:linear-gradient(135deg,#ef5350,#f15b59); box-shadow:0 8px 18px rgba(209,73,72,.16); text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.category-tile:nth-child(3n) { background:linear-gradient(135deg,#176b5b,#218b74); }
.category-tile:nth-child(3n+1) { background:linear-gradient(135deg,#e98d2c,#f2a23a); }
.category-tile:hover,.category-tile.active { color:#fff; transform:translateY(-3px); box-shadow:0 14px 24px rgba(23,58,50,.18); }
.category-tile span { font:700 24px 'Space Grotesk',sans-serif; }
.category-tile strong { align-self:flex-end; font-size:13px; font-weight:600; opacity:.9; }
.btn-filter { padding:8px 14px; border:1px solid rgba(23,107,91,.2); border-radius:99px; color:var(--primary-dark); background:rgba(255,255,255,.58); font-size:13px; font-weight:600; text-decoration:none; }
.btn-filter:hover,.btn-filter.active { color:#fff; background:var(--primary); border-color:var(--primary); }
.main-content,.container,.admin-content { width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:52px 0; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(265px,1fr)); gap:22px; }
.card,.premium-card,.form-container,.material-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-sm); }
.card,.premium-card { display:flex; flex-direction:column; overflow:hidden; transition:transform .25s ease,box-shadow .25s ease; }
.card:hover,.premium-card:hover,.material-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.premium-card { position:relative; padding:28px; animation:fadeUp .45s ease both; }
.card-body { flex:1; padding:21px; display:flex; flex-direction:column; height:auto; }
.package-cta { display:block; padding:0 21px 21px; }
.package-cta .modern-btn { display:flex; min-height:44px; visibility:visible; opacity:1; }
.card-thumb { width:100%; height:170px; object-fit:cover; background:var(--surface-muted); }
.card-title,.section-title { color:var(--text); }
.card-title { margin:0 0 8px; font:700 19px/1.25 'Space Grotesk',sans-serif; }
.card-desc,.card-meta { color:var(--text-muted); font-size:14px; }
.card-footer { margin-top:auto; padding-top:18px; }
.card-tag,.tag,.material-type-badge,.modern-badge { display:inline-flex; align-items:center; width:max-content; padding:5px 10px; border-radius:99px; color:var(--primary-dark); background:var(--primary-soft); font-size:11px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; }
.tag { margin-bottom:14px; }
.tag-free { color:var(--success); background:#e4f5ec; }
.tag-paid { color:#a86416; background:var(--accent-soft); }
.modern-btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; width:100%; padding:12px 18px; border:1px solid transparent; border-radius:var(--radius-sm); color:#fff; background:var(--primary); font:600 14px 'DM Sans',sans-serif; text-decoration:none; cursor:pointer; transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.modern-btn:hover { color:#fff; background:var(--primary-dark); box-shadow:0 7px 16px rgba(23,107,91,.2); transform:translateY(-2px); }
.modern-btn.btn-outline { color:var(--primary); background:transparent; border-color:var(--primary); box-shadow:none; }
.modern-btn.btn-outline:hover { color:var(--primary-dark); background:var(--primary-soft); }
.modern-btn.btn-success { background:var(--success); }
.modern-btn.btn-danger { background:var(--danger); }
.btn-primary { color:#fff!important; background:var(--primary)!important; }
.btn-secondary { color:var(--text)!important; background:var(--surface-muted); }
.form-container { padding:30px; animation:fadeUp .45s ease both; }
.form-group { margin-bottom:19px; }
.form-group label { display:block; margin-bottom:7px; color:var(--text); font-size:13px; font-weight:700; }
.modern-input,.modern-select,select.modern-input { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text); background:#fbfcfa; font:15px 'DM Sans',sans-serif; }
.modern-input:focus,select.modern-input:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(23,107,91,.12); background:#fff; }
.checkbox-label { display:flex; align-items:center; gap:10px; color:var(--text-muted); font-size:14px; }
.checkbox-label input { width:18px; height:18px; accent-color:var(--primary); }
.auth-page { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:28px 20px; background:linear-gradient(135deg,#dcefe8,#f8faf5 56%,#fff0d9); }
.auth-card,.auth-container { width:100%; max-width:445px; padding:43px 40px; border:1px solid var(--border); border-radius:var(--radius-lg); background:rgba(255,255,255,.94); box-shadow:var(--shadow-lg); animation:fadeUp .5s ease both; }
.auth-logo { display:flex; align-items:center; justify-content:center; width:100%; height:128px; margin:0 auto 14px; }
.auth-logo img { display:block; width:150px; height:115px; object-fit:contain; }
.auth-title,.auth-header h1 { margin-bottom:7px; text-align:center; color:var(--primary-dark); font-size:29px; }
.auth-subtitle,.auth-header p { margin-bottom:28px; text-align:center; color:var(--text-muted); font-size:14px; }
.auth-footer { margin-top:21px; color:var(--text-muted); text-align:center; font-size:14px; }
.auth-footer a { font-weight:700; text-decoration:none; }
.alert { margin-bottom:19px; padding:11px 14px; border-radius:var(--radius-sm); font-size:14px; font-weight:600; }
.alert-error { color:var(--danger); background:#fff0f0; border:1px solid #f2c8c8; }
.alert-success { color:var(--success); background:#eaf8f0; border:1px solid #c4ead3; }
.submit-btn { width:100%; padding:12px; border:0; border-radius:var(--radius-sm); color:#fff; background:var(--primary); font:600 15px 'DM Sans',sans-serif; cursor:pointer; }
.admin-header { padding:39px max(24px,calc((100% - 1180px)/2)); color:#fff; background:linear-gradient(120deg,#123f38,#176b5b); }
.admin-header h1 { margin-bottom:4px; font-size:31px; }
.admin-header p { color:#c5e2d8; font-size:14px; }
.admin-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-bottom:30px; }
.category-admin-panel { margin-bottom:24px; }
.category-create-form,.category-admin-row { display:grid; gap:10px; align-items:center; }
.category-create-form { grid-template-columns:1.2fr 1fr 1.4fr 1fr auto; }
.category-admin-list { display:grid; gap:10px; margin-top:18px; }
.category-admin-row { grid-template-columns:1.2fr 1fr 1.4fr 1fr auto auto; }
.section-title { display:flex; align-items:center; gap:9px; margin-bottom:22px; padding-bottom:13px; border-bottom:2px solid var(--primary-soft); font:700 19px 'Space Grotesk',sans-serif; }
.data-table { width:100%; border-collapse:collapse; overflow:hidden; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface); }
.data-table th { padding:13px 15px; color:var(--text-muted); background:var(--surface-muted); font-size:11px; letter-spacing:.6px; text-align:left; text-transform:uppercase; }
.data-table td { padding:14px 15px; border-top:1px solid var(--border); color:var(--text); font-size:14px; }
.data-table tbody tr:hover td { background:#f5faf7; }
.course-header { padding:45px max(24px,calc((100% - 900px)/2)); border-bottom:1px solid var(--border); background:linear-gradient(135deg,#e1f1eb,#fff9ee); }
.course-header h1 { margin-bottom:7px; color:var(--primary-dark); font-size:38px; line-height:1.15; }
.material-card { margin-bottom:22px; padding:26px; animation:fadeUp .45s ease both; }
.video-container video,video { width:100%; border-radius:var(--radius-sm); background:#15201d; }
.price-box { padding:20px; margin-top:18px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface-muted); }
.price-label { color:var(--text-muted); font-size:12px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; }
.price-value { margin:4px 0 17px; color:var(--primary); font:700 28px 'Space Grotesk',sans-serif; }
.back-link { display:inline-flex; margin-bottom:23px; color:var(--text-muted); font-size:14px; font-weight:600; text-decoration:none; }
.back-link:hover { color:var(--primary); }
.divider { height:1px; margin:28px 0; background:var(--border); }
.modal { display:none; position:fixed; inset:0; align-items:center; justify-content:center; padding:20px; background:rgba(13,40,34,.48); z-index:50; }
.modal-content { width:min(100%,430px); padding:28px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow-lg); }
.modal-header { margin-bottom:14px; color:var(--primary-dark); font-size:21px; }
.modal-actions { display:flex; gap:10px; margin-top:16px; }
@keyframes fadeUp { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:820px) { .admin-grid { grid-template-columns:1fr; } .navbar { height:auto; min-height:70px; padding-top:12px; padding-bottom:12px; } .nav-links { gap:2px; } }
@media (max-width:560px) { .navbar { align-items:flex-start; flex-direction:column; } .nav-links { width:100%; justify-content:flex-start; } .hero-section { padding:55px 18px 48px; } .main-content,.container,.admin-content { width:min(100% - 32px,1180px); padding:34px 0; } .auth-card,.auth-container,.form-container { padding:29px 22px; } .course-header { padding:34px 18px; } .course-header h1 { font-size:29px; } .material-card { padding:19px; } .data-table { min-width:680px; } .category-grid { grid-template-columns:1fr; gap:14px; } .category-tile { min-height:112px; padding:22px; } .category-tile span { font-size:21px; } .category-create-form,.category-admin-row { grid-template-columns:1fr; } }
