/* =============================================
   SIR GAMAH PAINTING ACADEMY — DESIGN SYSTEM
   ============================================= */
:root {
  --navy-900: #0a1525;
  --navy-800: #0f1e33;
  --navy-700: #152b47;
  --navy-600: #1a3354;
  --navy-500: #1e3a5f;
  --gold-500: #c9a84c;
  --gold-400: #d4b96a;
  --gold-300: #e5cf96;
  --gold-200: #f0e4be;
  --gold-100: #faf3dc;
  --white: #fff;
  --off-white: #fafaf8;
  --gray-50: #f9fafb;
  --gray-100: #f3f4f6;
  --gray-200: #e5e7eb;
  --gray-600: #4b5563;
  --gray-700: #374151;
  --success: #16a34a;
  --error: #dc2626;
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Jost', system-ui, sans-serif;
  --shadow-gold: 0 4px 20px rgba(201,168,76,.25);
  --shadow-gold-lg: 0 8px 40px rgba(201,168,76,.35);
  --shadow-navy: 0 4px 20px rgba(15,30,51,.25);
  --shadow-navy-lg: 0 8px 40px rgba(15,30,51,.35);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--white);color:var(--navy-800);overflow-x:hidden;line-height:1.6}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
button{cursor:pointer;font-family:var(--font-body)}
input,textarea,select{font-family:var(--font-body)}

/* Scrollbar */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--navy-900)}
::-webkit-scrollbar-thumb{background:var(--gold-500);border-radius:3px}
::selection{background:rgba(201,168,76,.25);color:var(--navy-800)}

/* ── Typography ── */
.font-display{font-family:var(--font-display)}
.text-gold-gradient{background:linear-gradient(135deg,#c9a84c,#f5d98b 50%,#c9a84c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.shimmer-gold{background:linear-gradient(90deg,#c9a84c,#f5d98b 25%,#c9a84c 50%,#f5d98b 75%,#c9a84c);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s linear infinite}
@keyframes shimmer{0%{background-position:200% center}100%{background-position:-200% center}}

.premium-badge{background:linear-gradient(135deg,#c9a84c,#f5d98b,#c9a84c);background-size:200% auto;animation:shimmer 3s linear infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:600;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase}
.divider-gold{width:80px;height:3px;background:linear-gradient(90deg,transparent,#c9a84c,transparent);margin:0 auto}

/* ── Nav ── */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:all .4s;background:transparent}
.site-nav.scrolled{background:rgba(10,21,37,.95);backdrop-filter:blur(12px);box-shadow:0 2px 20px rgba(0,0,0,.3)}
.nav-inner{max-width:1280px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:70px}
.nav-logo{display:flex;align-items:center;gap:.75rem}
.nav-logo-icon{width:42px;height:42px;border-radius:50%;background:var(--navy-800);border:2px solid var(--gold-500);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--gold-500)}
.nav-logo-text .name{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--white)}
.nav-logo-text .sub{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-300)}
.nav-links{display:flex;align-items:center;gap:.25rem}
.nav-links a{padding:.5rem .75rem;font-size:.85rem;font-weight:500;border-radius:.5rem;transition:all .2s;color:rgba(255,255,255,.9)}
.nav-links a:hover,.nav-links a.active{color:var(--gold-500);background:rgba(255,255,255,.08)}
.nav-actions{display:flex;align-items:center;gap:.75rem}
.btn-signin{font-size:.85rem;font-weight:500;color:rgba(255,255,255,.9);transition:color .2s}
.btn-signin:hover{color:var(--white)}
.btn-getstarted{padding:.6rem 1.25rem;background:linear-gradient(135deg,#c9a84c,#f5d98b 50%,#c9a84c);color:var(--navy-900);font-size:.85rem;font-weight:600;border-radius:.75rem;box-shadow:var(--shadow-gold);transition:all .3s}
.btn-getstarted:hover{box-shadow:var(--shadow-gold-lg);transform:scale(1.04)}
.nav-mobile-toggle{display:none;padding:.5rem;border-radius:.5rem;border:none;background:transparent;color:var(--white);cursor:pointer}
.nav-mobile-menu{display:none;position:absolute;top:70px;left:0;right:0;background:rgba(10,21,37,.98);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.1);padding:1rem 1.5rem;flex-direction:column;gap:.25rem}
.nav-mobile-menu.open{display:flex}
.nav-mobile-menu a{padding:.75rem 1rem;font-size:.9rem;font-weight:500;border-radius:.5rem;color:rgba(255,255,255,.85);transition:all .2s}
.nav-mobile-menu a:hover{background:rgba(255,255,255,.08);color:var(--gold-400)}
.nav-mobile-menu .mobile-auth{display:flex;gap:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.1);margin-top:.5rem}
.nav-mobile-menu .mobile-auth a{flex:1;text-align:center}

@media(max-width:1024px){.nav-links,.nav-actions{display:none}.nav-mobile-toggle{display:block}}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.75rem;font-size:.9rem;font-weight:600;border-radius:.75rem;transition:all .3s;border:none;cursor:pointer}
.btn-primary{background:linear-gradient(135deg,#c9a84c,#f5d98b 50%,#c9a84c);color:var(--navy-900);box-shadow:var(--shadow-gold)}
.btn-primary:hover{box-shadow:var(--shadow-gold-lg);transform:scale(1.03)}
.btn-outline{border:2px solid rgba(201,168,76,.5);color:var(--gold-400);background:transparent}
.btn-outline:hover{background:rgba(255,255,255,.05);border-color:var(--gold-500)}
.btn-navy{background:var(--navy-700);color:var(--white)}
.btn-navy:hover{background:var(--navy-600)}
.btn-danger{background:#dc2626;color:#fff}
.btn-danger:hover{background:#b91c1c}
.btn-sm{padding:.45rem 1rem;font-size:.8rem}

/* ── Cards ── */
.card{background:var(--white);border-radius:1rem;box-shadow:0 2px 16px rgba(15,30,51,.08);border:1px solid var(--gray-100);overflow:hidden;transition:all .3s}
.card:hover{box-shadow:0 8px 32px rgba(15,30,51,.12);transform:translateY(-2px)}

/* ── Section layout ── */
.section{padding:5rem 0}
.section-light{background:var(--off-white)}
.container{max-width:1280px;margin:0 auto;padding:0 1.5rem}
.section-header{text-align:center;margin-bottom:3.5rem}
.section-header .premium-badge{margin-bottom:.75rem}
.section-header h2{font-family:var(--font-display);font-size:2.5rem;font-weight:700;color:var(--navy-800);margin-bottom:1rem}
.section-header p{color:var(--gray-600);max-width:600px;margin:0 auto}
.divider-gold-left{width:60px;height:3px;background:linear-gradient(90deg,#c9a84c,transparent);margin:.75rem 0}

/* ── Hero ── */
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy-900),var(--navy-700));position:relative;overflow:hidden;padding-top:70px}
.hero-bg-orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none}
.hero-content{position:relative;z-index:1;text-align:center;max-width:900px;margin:0 auto;padding:3rem 1.5rem}
.hero h1{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4.5rem);font-weight:700;color:var(--white);line-height:1.1;margin-bottom:1.5rem}
.hero p{font-size:1.15rem;color:rgba(255,255,255,.75);max-width:620px;margin:0 auto 2.5rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}
.hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.4);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.5rem;animation:bounce 2s infinite}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(6px)}}

/* ── Stats bar ── */
.stats-bar{background:linear-gradient(135deg,var(--navy-800),var(--navy-600));padding:2.5rem 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center}
.stat-item .value{font-family:var(--font-display);font-size:2.25rem;font-weight:700;color:var(--gold-400);line-height:1}
.stat-item .label{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:.35rem}
@media(max-width:640px){.stats-grid{grid-template-columns:repeat(2,1fr)}}

/* ── Learning path (curriculum) ── */
.curriculum-section{background:var(--gray-50)}
.level-card{border-radius:1.25rem;overflow:hidden;border:2px solid transparent;transition:all .3s;margin-bottom:1.5rem}
.level-card.beginner{border-color:rgba(22,163,74,.3);background:rgba(22,163,74,.03)}
.level-card.intermediate{border-color:rgba(201,168,76,.3);background:rgba(201,168,76,.03)}
.level-card.advanced{border-color:rgba(220,38,38,.3);background:rgba(220,38,38,.03)}
.level-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;cursor:pointer;user-select:none}
.level-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .9rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.badge-beginner{background:rgba(22,163,74,.15);color:#15803d}
.badge-intermediate{background:rgba(201,168,76,.15);color:#92700a}
.badge-advanced{background:rgba(220,38,38,.15);color:#b91c1c}
.level-header-right{display:flex;align-items:center;gap:.75rem}
.subject-count{font-size:.8rem;color:var(--gray-600)}
.level-chevron{transition:transform .3s;color:var(--gray-600)}
.level-chevron.open{transform:rotate(180deg)}
.level-body{padding:0 1.5rem 1.5rem}
.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
.subject-card{background:var(--white);border:1px solid var(--gray-200);border-radius:.875rem;padding:1.25rem;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;transition:all .3s;text-decoration:none;cursor:pointer}
.subject-card:hover{border-color:var(--gold-400);box-shadow:0 4px 20px rgba(201,168,76,.15);transform:translateY(-2px)}
.subject-icon{font-size:1.75rem}
.subject-name{font-weight:600;font-size:.9rem;color:var(--navy-800)}
.subject-count-badge{font-size:.75rem;color:var(--gray-600);display:flex;align-items:center;gap:.3rem}

/* ── Tutorials list ── */
.tutorials-header{background:linear-gradient(135deg,var(--navy-900),var(--navy-700));padding:7rem 0 3.5rem;text-align:center}
.filter-bar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:2rem}
.filter-btn{padding:.45rem 1rem;border-radius:999px;font-size:.82rem;font-weight:500;border:1.5px solid var(--gray-200);background:var(--white);color:var(--gray-700);cursor:pointer;transition:all .2s}
.filter-btn.active,.filter-btn:hover{border-color:var(--gold-500);color:var(--gold-600);background:var(--gold-100)}
.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}
.resource-card{background:var(--white);border:1.5px solid var(--gray-100);border-radius:1rem;overflow:hidden;transition:all .3s;display:flex;flex-direction:column}
.resource-card:hover{box-shadow:0 8px 32px rgba(15,30,51,.12);border-color:var(--gold-300);transform:translateY(-3px)}
.resource-thumb{height:180px;background:var(--gray-100);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.resource-thumb img{width:100%;height:100%;object-fit:cover}
.resource-thumb-icon{font-size:3rem;opacity:.4}
.resource-type-badge{position:absolute;top:.75rem;left:.75rem;padding:.25rem .65rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.type-video{background:rgba(239,68,68,.15);color:#dc2626}
.type-document{background:rgba(59,130,246,.15);color:#2563eb}
.type-image{background:rgba(16,185,129,.15);color:#059669}
.resource-body{padding:1.25rem;flex:1;display:flex;flex-direction:column}
.resource-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;margin-bottom:.5rem}
.resource-level{padding:.2rem .6rem;border-radius:999px;font-weight:600}
.resource-subject{color:var(--gray-600)}
.resource-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--navy-800);margin-bottom:.5rem;line-height:1.3}
.resource-desc{font-size:.85rem;color:var(--gray-600);flex:1;margin-bottom:1rem}
.resource-footer{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--gray-100)}
.resource-duration{font-size:.78rem;color:var(--gray-600);display:flex;align-items:center;gap:.3rem}
.resource-open-btn{padding:.4rem .9rem;background:linear-gradient(135deg,#c9a84c,#f5d98b);color:var(--navy-900);border:none;border-radius:.5rem;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .2s}
.resource-open-btn:hover{transform:scale(1.05)}

/* ── Viewer modal ── */
.viewer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:999;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .3s}
.viewer-overlay.open{opacity:1;pointer-events:all}
.viewer-box{background:var(--white);border-radius:1.25rem;width:100%;max-width:960px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}
.viewer-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--gray-200);flex-shrink:0}
.viewer-title{font-weight:600;font-size:1rem;color:var(--navy-800)}
.viewer-close{width:34px;height:34px;border-radius:50%;border:none;background:var(--gray-100);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:all .2s}
.viewer-close:hover{background:var(--gray-200)}
.viewer-content{flex:1;overflow:auto;min-height:0}
.viewer-content iframe,.viewer-content video,.viewer-content img{width:100%;height:100%;min-height:500px;border:none;display:block}
.viewer-content img{object-fit:contain;max-height:70vh;margin:auto}

/* ── Admin ── */
.admin-layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.admin-sidebar{background:var(--navy-900);color:var(--white);padding:2rem 1.25rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.admin-sidebar-logo{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}
.admin-nav a{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;border-radius:.625rem;font-size:.87rem;font-weight:500;color:rgba(255,255,255,.7);transition:all .2s;margin-bottom:.25rem}
.admin-nav a:hover,.admin-nav a.active{background:rgba(201,168,76,.12);color:var(--gold-400)}
.admin-main{background:var(--gray-50);padding:2.5rem}
.admin-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem}
.admin-topbar h1{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--navy-800)}
.admin-card{background:var(--white);border-radius:1rem;padding:1.75rem;border:1px solid var(--gray-100);box-shadow:0 2px 12px rgba(15,30,51,.06);margin-bottom:1.5rem}
.admin-card h3{font-weight:600;font-size:1rem;color:var(--navy-800);margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem}
.form-group{margin-bottom:1.25rem}
.form-label{display:block;font-size:.82rem;font-weight:600;color:var(--navy-700);margin-bottom:.4rem;letter-spacing:.03em}
.form-input,.form-select,.form-textarea{width:100%;padding:.65rem 1rem;border:1.5px solid var(--gray-200);border-radius:.625rem;font-size:.9rem;font-family:var(--font-body);background:var(--white);color:var(--navy-800);transition:border-color .2s;outline:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--gold-500)}
.form-textarea{resize:vertical;min-height:80px}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
.resource-table{width:100%;border-collapse:collapse}
.resource-table th{text-align:left;padding:.65rem 1rem;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-600);border-bottom:2px solid var(--gray-200);background:var(--gray-50)}
.resource-table td{padding:.85rem 1rem;font-size:.85rem;border-bottom:1px solid var(--gray-100);vertical-align:middle}
.resource-table tr:hover td{background:var(--gray-50)}
.table-actions{display:flex;gap:.5rem}
.tag{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.04em}
.tag-beginner{background:rgba(22,163,74,.1);color:#15803d}
.tag-intermediate{background:rgba(201,168,76,.1);color:#92700a}
.tag-advanced{background:rgba(220,38,38,.1);color:#b91c1c}
.tag-video{background:rgba(239,68,68,.1);color:#dc2626}
.tag-document{background:rgba(59,130,246,.1);color:#2563eb}
.tag-image{background:rgba(16,185,129,.1);color:#059669}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}
.stat-card{background:var(--white);border-radius:.875rem;padding:1.25rem 1.5rem;border:1px solid var(--gray-100);box-shadow:0 2px 8px rgba(15,30,51,.06)}
.stat-card .s-value{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--navy-800)}
.stat-card .s-label{font-size:.8rem;color:var(--gray-600);margin-top:.25rem}
.stat-card .s-icon{font-size:1.75rem;float:right;opacity:.6}
@media(max-width:768px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:fixed;left:-280px;top:0;height:100vh;width:260px;z-index:200;transition:left .3s}.admin-sidebar.open{left:0}.admin-mobile-toggle{display:flex}.stats-row{grid-template-columns:1fr 1fr}.form-grid-2,.form-grid-3{grid-template-columns:1fr}}
.admin-mobile-toggle{display:none;padding:.5rem;border:none;background:var(--navy-700);color:var(--white);border-radius:.5rem;cursor:pointer;align-items:center;justify-content:center}

/* ── Auth ── */
.auth-page{min-height:100vh;background:linear-gradient(135deg,var(--navy-900),var(--navy-700));display:flex;align-items:center;justify-content:center;padding:5rem 1rem 2rem}
.auth-box{background:var(--white);border-radius:1.5rem;padding:2.5rem;width:100%;max-width:440px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.auth-logo{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:2rem;text-align:center}
.auth-logo-icon{width:56px;height:56px;border-radius:50%;background:var(--navy-800);border:2px solid var(--gold-500);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--gold-500)}
.auth-logo h2{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--navy-800)}
.auth-logo p{font-size:.85rem;color:var(--gray-600)}
.auth-tabs{display:flex;border-radius:.75rem;border:2px solid var(--gray-200);overflow:hidden;margin-bottom:2rem}
.auth-tab{flex:1;padding:.7rem;font-size:.875rem;font-weight:600;border:none;background:transparent;cursor:pointer;transition:all .2s;color:var(--gray-600)}
.auth-tab.active{background:var(--navy-800);color:var(--white)}
.auth-error{background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.3);color:#dc2626;padding:.75rem 1rem;border-radius:.625rem;font-size:.85rem;margin-bottom:1rem}
.auth-success{background:rgba(22,163,74,.1);border:1px solid rgba(22,163,74,.3);color:#15803d;padding:.75rem 1rem;border-radius:.625rem;font-size:.85rem;margin-bottom:1rem}
.auth-footer-text{text-align:center;font-size:.82rem;color:var(--gray-600);margin-top:1.5rem}
.auth-footer-text a{color:var(--gold-600);font-weight:600}

/* ── Dashboard ── */
.dash-layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh;background:var(--gray-50)}
.dash-sidebar{background:var(--navy-900);padding:1.5rem 1rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.dash-user{text-align:center;padding:1rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1.25rem}
.dash-user-icon{width:52px;height:52px;border-radius:50%;background:var(--gold-500);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1.3rem;color:var(--navy-900);margin:0 auto .5rem}
.dash-user-name{font-weight:600;font-size:.9rem;color:var(--white)}
.dash-user-role{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-400);margin-top:.15rem}
.dash-nav a{display:flex;align-items:center;gap:.65rem;padding:.6rem .875rem;border-radius:.5rem;font-size:.85rem;color:rgba(255,255,255,.65);transition:all .2s;margin-bottom:.15rem}
.dash-nav a:hover,.dash-nav a.active{background:rgba(201,168,76,.1);color:var(--gold-400)}
.dash-nav .section-sep{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);padding:.75rem .875rem .25rem;font-weight:700}
.dash-content{padding:2.5rem}
.dash-welcome{background:linear-gradient(135deg,var(--navy-800),var(--navy-600));border-radius:1.25rem;padding:2rem;margin-bottom:2rem;color:var(--white);position:relative;overflow:hidden}
.dash-welcome h2{font-family:var(--font-display);font-size:1.6rem;margin-bottom:.35rem}
.dash-welcome p{font-size:.9rem;color:rgba(255,255,255,.7)}
.progress-card{background:var(--white);border-radius:1rem;padding:1.25rem;border:1px solid var(--gray-100)}
.progress-card h4{font-size:.85rem;font-weight:600;color:var(--navy-800);margin-bottom:.75rem}
.progress-bar-wrap{background:var(--gray-100);border-radius:999px;height:8px;overflow:hidden}
.progress-bar-fill{height:100%;background:linear-gradient(90deg,#c9a84c,#f5d98b);border-radius:999px;transition:width .6s}
.recent-list a{display:flex;align-items:center;gap.75rem;padding:.75rem 0;border-bottom:1px solid var(--gray-100);font-size:.875rem;color:var(--navy-800);text-decoration:none}
.recent-list a:hover{color:var(--gold-600)}
@media(max-width:768px){.dash-layout{grid-template-columns:1fr}}

/* ── Footer ── */
footer.site-footer{background:var(--navy-900);color:var(--white)}
.footer-cta{background:linear-gradient(135deg,var(--navy-800),var(--navy-600));padding:4rem 0;text-align:center;border-bottom:1px solid rgba(255,255,255,.1)}
.footer-cta h2{font-family:var(--font-display);font-size:2.25rem;font-weight:700;margin-bottom:1rem}
.footer-cta p{color:rgba(255,255,255,.65);max-width:560px;margin:0 auto 2rem}
.footer-grid{max-width:1280px;margin:0 auto;padding:4rem 1.5rem;display:grid;grid-template-columns:2fr 1fr 1fr 1.25fr;gap:3rem}
.footer-brand p{font-size:.85rem;color:rgba(255,255,255,.55);line-height:1.7;margin:1rem 0 1.25rem}
.social-links{display:flex;gap:.625rem}
.social-link{width:36px;height:36px;border-radius:.5rem;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:.85rem}
.social-link:hover{background:var(--gold-500);color:var(--navy-900)}
.footer-col h4{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--white);margin-bottom:1.25rem}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:.625rem}
.footer-col a{font-size:.85rem;color:rgba(255,255,255,.55);transition:color .2s;display:flex;align-items:center;gap:.4rem}
.footer-col a:hover{color:var(--gold-400)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:1.5rem;max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}
.footer-bottom p,.footer-bottom a{font-size:.78rem;color:rgba(255,255,255,.35)}
.footer-bottom a:hover{color:var(--gold-400)}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column;text-align:center}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}

/* ── Misc ── */
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--navy-800);color:var(--white);padding:1rem 1.5rem;border-radius:.875rem;border-left:3px solid var(--gold-500);font-size:.875rem;z-index:9999;transform:translateX(120%);transition:transform .35s;box-shadow:0 8px 32px rgba(0,0,0,.25)}
.toast.show{transform:translateX(0)}
.toast.success{border-left-color:#16a34a}
.toast.error{border-left-color:#dc2626}
.empty-state{text-align:center;padding:4rem 2rem;color:var(--gray-600)}
.empty-state .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}
.empty-state p{font-size:.95rem}
.badge-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.bg-success{background:var(--success)}
.hidden{display:none!important}

/* ── Responsive ── */
@media(max-width:640px){
  .hero h1{font-size:2rem}
  .section-header h2{font-size:1.75rem}
  .resource-grid{grid-template-columns:1fr}
  .subjects-grid{grid-template-columns:1fr 1fr}
  .hero-actions{flex-direction:column;align-items:center}
}
