/* Prototype styles, copied verbatim from indigenous-youth-launchpad-v4 - FUNDING.html */
:root {
  --teal:#06B188;--teal-dark:#048f6e;--teal-light:#e0f7f2;
  --charcoal:#333030;--cream:#faf8f4;
  --amber:#F59E0B;--amber-light:#FEF3C7;--sky:#0EA5E9;
  --purple:#8B5CF6;--rose:#F43F5E;
  --shadow:0 4px 24px rgba(51,48,48,0.10);--shadow-lg:0 8px 40px rgba(51,48,48,0.15);
  --radius:16px;--radius-sm:10px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Lato',sans-serif;background:var(--cream);color:var(--charcoal);min-height:100vh;overflow-x:hidden;}
.app-shell{display:flex;min-height:100vh;}

/* SIDEBAR */
.sidebar{width:270px;background:var(--charcoal);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;}
.sb-header{padding:24px 22px 18px;border-bottom:1px solid rgba(255,255,255,0.08);background:linear-gradient(135deg,#1a1818,var(--charcoal));}
.logo-row{display:flex;align-items:center;gap:10px;margin-bottom:3px;}
.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--teal),#04d4a8);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;}
.logo-text{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;color:white;line-height:1.15;}
.logo-sub{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--teal);padding-left:46px;margin-top:2px;}
.user-chip{margin:14px 22px 0;background:rgba(255,255,255,0.06);border-radius:10px;padding:10px 13px;display:flex;align-items:center;gap:10px;}
.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--teal),#04d4a8);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:white;flex-shrink:0;}
.user-name{font-size:13px;font-weight:700;color:white;}
.user-level{font-size:11px;color:rgba(255,255,255,0.45);}
.nav-section{padding:16px 14px 0;flex:1;overflow-y:auto;}
.nav-label{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.28);padding:0 8px;margin-bottom:6px;margin-top:14px;}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:all 0.2s;margin-bottom:3px;border:none;background:none;width:100%;text-align:left;}
.nav-item:hover{background:rgba(255,255,255,0.07);}
.nav-item.active{background:rgba(6,177,136,0.18);}
.nav-icon{font-size:16px;width:20px;text-align:center;}
.nav-text{font-size:13px;color:rgba(255,255,255,0.65);flex:1;}
.nav-item.active .nav-text{color:var(--teal);font-weight:700;}
.nav-badge{font-size:10px;font-weight:700;background:var(--teal);color:white;border-radius:10px;padding:2px 7px;}
.nav-badge.gold{background:var(--amber);color:#7c2d12;}
.xp-wrap{padding:16px 22px;border-top:1px solid rgba(255,255,255,0.08);}
.xp-row{display:flex;justify-content:space-between;margin-bottom:6px;}
.xp-row span{font-size:11px;color:rgba(255,255,255,0.45);}
.xp-row strong{font-size:11px;color:var(--teal);}
.xp-track{height:5px;background:rgba(255,255,255,0.1);border-radius:3px;overflow:hidden;}
.xp-fill{height:100%;background:linear-gradient(90deg,var(--teal),#04d4a8);border-radius:3px;transition:width 0.7s;}

/* MAIN */
.main{margin-left:270px;flex:1;}
.topbar{background:white;border-bottom:1px solid rgba(0,0,0,0.07);padding:14px 30px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;}
.page-title{font-family:'Playfair Display',serif;font-size:21px;font-weight:700;}
.topbar-right{display:flex;gap:8px;align-items:center;}
.chip{border-radius:20px;padding:5px 13px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:5px;}
.chip.teal{background:var(--teal-light);color:var(--teal-dark);}
.chip.amber{background:var(--amber-light);color:#92400E;}
.content{padding:28px 30px;}

/* SCREENS */
.screen{display:none;animation:fadeIn 0.3s ease;}
.screen.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* HERO */
.hero{background:linear-gradient(135deg,var(--charcoal) 0%,#1a1818 50%,#0d2e26 100%);border-radius:var(--radius);padding:32px 36px;margin-bottom:24px;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;top:-40px;right:-40px;width:260px;height:260px;background:radial-gradient(circle,rgba(6,177,136,0.22) 0%,transparent 70%);border-radius:50%;}
.hero::after{content:'';position:absolute;bottom:-50px;left:25%;width:180px;height:180px;background:radial-gradient(circle,rgba(6,177,136,0.08) 0%,transparent 70%);border-radius:50%;}
.hero-content{position:relative;z-index:1;}
.hero-label{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--teal);margin-bottom:7px;}
.hero-title{font-family:'Playfair Display',serif;font-size:30px;font-weight:900;color:white;line-height:1.2;margin-bottom:10px;}
.hero-title span{color:var(--teal);}
.hero-sub{font-size:14px;color:rgba(255,255,255,0.58);line-height:1.65;max-width:500px;}
.hero-stats{display:flex;gap:26px;margin-top:22px;}
.hs-num{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:white;}
.hs-num em{color:var(--teal);font-style:normal;font-size:15px;}
.hs-label{font-size:10px;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:1px;margin-top:1px;}

/* WEEK INDICATOR STRIP */
.week-strip{display:flex;gap:6px;margin-bottom:24px;overflow-x:auto;padding-bottom:4px;}
.week-dot{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;}
.week-dot-circle{width:36px;height:36px;border-radius:50%;border:2px solid #ddd;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#bbb;transition:all 0.2s;background:white;}
.week-dot.done .week-dot-circle{background:var(--teal);border-color:var(--teal);color:white;}
.week-dot.current .week-dot-circle{border-color:var(--teal);color:var(--teal);box-shadow:0 0 0 3px rgba(6,177,136,0.2);}
.week-dot.bonus .week-dot-circle{border-color:var(--amber);background:var(--amber-light);color:#92400E;}
.week-dot.bonus.done .week-dot-circle{background:var(--amber);color:white;}
.week-dot-label{font-size:10px;color:#aaa;font-weight:700;text-align:center;white-space:nowrap;}
.week-dot.done .week-dot-label{color:var(--teal);}
.week-dot.current .week-dot-label{color:var(--charcoal);}
.week-connector{height:2px;background:#eee;flex:1;align-self:center;margin-bottom:18px;min-width:8px;}
.week-connector.done{background:var(--teal);}

/* STAT CARDS */
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px;}
.stat-card{background:white;border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);border-left:4px solid transparent;transition:transform 0.2s;}
.stat-card:hover{transform:translateY(-2px);}
.stat-card.teal{border-left-color:var(--teal);}
.stat-card.amber{border-left-color:var(--amber);}
.stat-card.sky{border-left-color:var(--sky);}
.stat-icon{font-size:22px;margin-bottom:7px;}
.stat-val{font-family:'Playfair Display',serif;font-size:28px;font-weight:700;}
.stat-desc{font-size:12px;color:#888;margin-top:2px;}

/* TWO COL */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.card{background:white;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.card-head h3{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;}
.see-all{font-size:11px;color:var(--teal);cursor:pointer;font-weight:700;text-transform:uppercase;letter-spacing:1px;background:none;border:none;}

/* MODULE ROWS (dashboard) */
.mod-row{display:flex;align-items:center;gap:12px;padding:10px 8px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:all 0.15s;border-radius:8px;}
.mod-row:last-child{border-bottom:none;}
.mod-row:hover:not(.mod-row-locked){background:var(--teal-light);}
.mod-row-locked{cursor:default;opacity:0.45;}
.mod-row-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.mod-row-info{flex:1;min-width:0;}
.mod-row-name{font-size:13px;font-weight:700;}
.mod-row-meta{font-size:11px;color:#999;margin-top:1px;}
.mod-row-pct{font-size:11px;font-weight:700;text-align:right;margin-bottom:3px;}
.mini-track{width:72px;height:4px;background:#eee;border-radius:2px;overflow:hidden;}
.mini-fill{height:100%;background:linear-gradient(90deg,var(--teal),#04d4a8);border-radius:2px;}

/* BADGES */
.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.badge-item{text-align:center;padding:12px 6px;border-radius:10px;border:2px solid #eee;transition:all 0.2s;}
.badge-item.earned{border-color:var(--teal);background:var(--teal-light);}
.badge-item.bonus-earned{border-color:var(--amber);background:var(--amber-light);}
.badge-item.locked{opacity:0.28;filter:grayscale(1);}
.badge-emoji{font-size:24px;display:block;margin-bottom:5px;}
.badge-name{font-size:10px;font-weight:700;line-height:1.3;}

/* MODULES GRID */
.section-intro{margin-bottom:22px;}
.section-intro h2{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;margin-bottom:5px;}
.section-intro p{font-size:14px;color:#888;}

/* SECTION DIVIDER */
.section-divider{display:flex;align-items:center;gap:14px;margin:8px 0 16px;}
.section-divider-line{flex:1;height:1px;background:#e8e8e8;}
.section-divider-label{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#bbb;white-space:nowrap;}

.modules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:10px;}
.mod-card{background:white;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);cursor:pointer;transition:all 0.2s;position:relative;overflow:hidden;border:2px solid transparent;}
.mod-card:hover:not(.mod-locked){transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--teal);}
.mod-card.mod-locked{opacity:0.5;cursor:not-allowed;}
.mod-card.mod-bonus{border:2px dashed #e8d5a3;}
.mod-card.mod-bonus:hover:not(.mod-locked){border-color:var(--amber);}
.mod-accent{position:absolute;top:0;right:0;width:90px;height:90px;border-radius:0 16px 0 100%;opacity:0.13;}
.mod-week-tag{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#bbb;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.mod-week-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.mod-card-title{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;line-height:1.3;margin-bottom:7px;}
.mod-card-desc{font-size:12px;color:#888;line-height:1.6;margin-bottom:14px;}
.mod-card-takeaway{font-size:11px;color:var(--teal-dark);font-weight:700;background:var(--teal-light);border-radius:6px;padding:6px 10px;margin-bottom:14px;line-height:1.5;}
.mod-card.mod-bonus .mod-card-takeaway{background:var(--amber-light);color:#92400E;}
.mod-card-footer{display:flex;align-items:center;justify-content:space-between;}
.pill{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:4px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:0.5px;}
.pill.complete{background:var(--teal-light);color:var(--teal-dark);}
.pill.inprogress{background:var(--amber-light);color:#92400E;}
.pill.todo{background:#ede9fe;color:#5b21b6;}
.pill.locked{background:#f0f0f0;color:#999;}
.pill.bonus{background:var(--amber-light);color:#92400E;}
.mod-xp{font-size:11px;font-weight:700;color:#bbb;}
.mod-xp.earned{color:var(--teal);}

/* QUIZ */
.quiz-wrap{max-width:660px;margin:0 auto;}
.quiz-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.quiz-mod-label{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--teal);}
.quiz-mod-title{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;}
.quiz-header{background:linear-gradient(135deg,var(--charcoal),#1a1818);border-radius:var(--radius);padding:26px 30px;margin-bottom:20px;position:relative;overflow:hidden;}
.quiz-header::before{content:'';position:absolute;top:-30px;right:-30px;width:150px;height:150px;background:radial-gradient(circle,rgba(6,177,136,0.28) 0%,transparent 70%);border-radius:50%;}
.quiz-step{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--teal);margin-bottom:7px;}
.quiz-q{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:white;line-height:1.45;position:relative;z-index:1;}
.quiz-dots{display:flex;gap:5px;margin-top:18px;position:relative;z-index:1;}
.qdot{flex:1;height:4px;background:rgba(255,255,255,0.18);border-radius:2px;transition:background 0.3s;}
.qdot.done{background:var(--teal);}
.qdot.cur{background:rgba(6,177,136,0.55);}
.quiz-opts{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.quiz-opt{background:white;border:2px solid #eee;border-radius:var(--radius-sm);padding:14px 18px;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:12px;font-size:14px;color:var(--charcoal);box-shadow:0 2px 8px rgba(0,0,0,0.04);}
.quiz-opt:hover:not(.opt-disabled){border-color:var(--teal);background:var(--teal-light);transform:translateX(4px);}
.quiz-opt.opt-selected{border-color:var(--teal);background:var(--teal-light);}
.quiz-opt.opt-correct{border-color:#16a34a;background:#f0fdf4;}
.quiz-opt.opt-wrong{border-color:#dc2626;background:#fef2f2;}
.quiz-opt.opt-disabled{cursor:default;}
.opt-letter{width:30px;height:30px;border-radius:50%;background:#f0f0f0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;color:#888;transition:all 0.2s;}
.quiz-opt.opt-selected .opt-letter{background:var(--teal);color:white;}
.quiz-opt.opt-correct .opt-letter{background:#16a34a;color:white;}
.quiz-opt.opt-wrong .opt-letter{background:#dc2626;color:white;}
.quiz-fb{border-radius:var(--radius-sm);padding:14px 18px;margin-bottom:18px;font-size:13px;line-height:1.65;display:none;}
.quiz-fb.show{display:flex;align-items:flex-start;gap:10px;}
.quiz-fb.correct{background:#f0fdf4;border-left:4px solid #16a34a;color:#14532d;}
.quiz-fb.wrong{background:#fef2f2;border-left:4px solid #dc2626;color:#7f1d1d;}
.quiz-session-tip{background:rgba(6,177,136,0.08);border:1px solid rgba(6,177,136,0.2);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:18px;font-size:12px;color:var(--teal-dark);line-height:1.6;}
.quiz-session-tip strong{display:block;margin-bottom:3px;font-size:11px;text-transform:uppercase;letter-spacing:1px;}

/* QUIZ COMPLETE */
.quiz-done{background:linear-gradient(135deg,var(--charcoal),#0d2e26);border-radius:var(--radius);padding:36px;text-align:center;margin-bottom:20px;}
.qd-icon{font-size:52px;margin-bottom:14px;}
.qd-title{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:white;margin-bottom:7px;}
.qd-sub{font-size:14px;color:rgba(255,255,255,0.55);margin-bottom:22px;}
.qd-stats{display:flex;justify-content:center;gap:30px;margin-bottom:22px;}
.qds{text-align:center;}
.qds-val{font-family:'Playfair Display',serif;font-size:30px;font-weight:700;color:var(--teal);}
.qds-label{font-size:11px;color:rgba(255,255,255,0.38);text-transform:uppercase;letter-spacing:1px;}
.badge-unlock{background:rgba(6,177,136,0.13);border:2px solid rgba(6,177,136,0.35);border-radius:12px;padding:14px 22px;display:inline-flex;align-items:center;gap:12px;margin-bottom:22px;}
.bu-emoji{font-size:30px;}
.bu-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--teal);}
.bu-name{font-size:15px;font-weight:700;color:white;}
.next-session-box{background:rgba(255,255,255,0.07);border-radius:10px;padding:14px 18px;margin-bottom:10px;text-align:left;}
.nsb-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,0.35);margin-bottom:5px;}
.nsb-text{font-size:13px;color:rgba(255,255,255,0.75);line-height:1.6;}

/* CANVAS */
.canvas-meter{background:white;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:22px;}
.canvas-meter-title{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;margin-bottom:16px;}
.meter-rows{display:flex;flex-direction:column;gap:10px;}
.meter-row{display:flex;align-items:center;gap:12px;}
.meter-label{font-size:12px;font-weight:700;width:150px;flex-shrink:0;}
.meter-track{flex:1;height:9px;background:#eee;border-radius:4px;overflow:hidden;}
.meter-fill{height:100%;border-radius:4px;transition:width 0.8s;}
.meter-fill.hi{background:linear-gradient(90deg,var(--teal),#04d4a8);}
.meter-fill.mid{background:linear-gradient(90deg,var(--amber),#fbbf24);}
.meter-fill.lo{background:#ddd;}
.meter-pct{font-size:11px;font-weight:700;color:#aaa;width:34px;text-align:right;}
.canvas-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px;}
.cblock{background:white;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);position:relative;}
.cblock.full{grid-column:1/-1;}
.cblock-title{display:flex;align-items:center;gap:9px;font-family:'Playfair Display',serif;font-size:14px;font-weight:700;margin-bottom:12px;}
.cblock-icon{width:30px;height:30px;border-radius:7px;background:var(--teal-light);display:flex;align-items:center;justify-content:center;font-size:15px;}
.cblock-week{font-size:10px;color:var(--teal);font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;}
.cinput{width:100%;border:2px solid #eee;border-radius:7px;padding:9px 12px;font-family:'Lato',sans-serif;font-size:13px;color:var(--charcoal);transition:border-color 0.2s;resize:none;background:#fafafa;outline:none;}
.cinput:focus{border-color:var(--teal);background:white;}
.cselect{width:100%;border:2px solid #eee;border-radius:7px;padding:9px 12px;font-family:'Lato',sans-serif;font-size:13px;color:var(--charcoal);background:#fafafa;cursor:pointer;outline:none;transition:border-color 0.2s;appearance:none;margin-bottom:10px;}
.cselect:focus{border-color:var(--teal);background:white;}

/* CANVAS LOCK */
.cblock.cb-locked{opacity:0.55;}
.cblock.cb-locked .cinput,.cblock.cb-locked .cselect{pointer-events:none;background:#f5f5f5;color:#bbb;border-color:#eee;cursor:not-allowed;}
.cb-lock-banner{display:none;align-items:center;gap:7px;background:#f5f5f5;border:1.5px dashed #ddd;border-radius:7px;padding:9px 12px;margin-bottom:11px;font-size:11px;color:#aaa;font-weight:700;}
.cblock.cb-locked .cb-lock-banner{display:flex;}

/* RESUME BANNER */
.resume-banner{background:white;border-radius:var(--radius);padding:16px 22px;margin-bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:var(--shadow);border-left:4px solid var(--teal);}
.resume-banner-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--teal);margin-bottom:3px;}
.resume-banner-title{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;}
.resume-banner-sub{font-size:12px;color:#888;margin-top:1px;}

/* PRINT */
@media print{
  .sidebar,.topbar,.btn,.btn-row,.cb-lock-banner,.canvas-meter,.resume-banner{display:none!important;}
  .main{margin-left:0!important;}
  .screen{display:none!important;}
  #screen-canvas{display:block!important;}
  .content{padding:0!important;}
  body{background:white!important;}
  .cblock{box-shadow:none!important;border:1px solid #ddd!important;break-inside:avoid;opacity:1!important;}
  .cblock.cb-locked{opacity:1!important;}
  .canvas-grid{display:grid!important;grid-template-columns:1fr 1fr!important;}
  .cblock.full{grid-column:1/-1!important;}
  .cinput,.cselect{border:1px solid #ccc!important;background:white!important;color:#333!important;pointer-events:auto!important;}
  .print-header{display:block!important;}
}
.print-header{display:none;}

/* ADMIN */
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;}
.adstat{background:white;border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);text-align:center;}
.adstat-val{font-family:'Playfair Display',serif;font-size:32px;font-weight:700;}
.adstat-label{font-size:11px;color:#999;margin-top:3px;text-transform:uppercase;letter-spacing:1px;}
.adstat-trend{font-size:11px;color:var(--teal);font-weight:700;margin-top:3px;}
.admin-two{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin-bottom:20px;}
.chart-card{background:white;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);}
.chart-title{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;margin-bottom:16px;}
.bar-chart{display:flex;align-items:flex-end;gap:10px;height:130px;}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;}
.bar{width:100%;border-radius:5px 5px 0 0;background:linear-gradient(180deg,var(--teal),var(--teal-dark));}
.bar-val{font-size:11px;font-weight:700;}
.bar-lbl{font-size:9px;color:#aaa;}
.donut-wrap{display:flex;flex-direction:column;align-items:center;}
.legend-item{display:flex;align-items:center;gap:7px;margin-bottom:7px;font-size:12px;}
.leg-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.admin-table{background:white;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);overflow-x:auto;}
table{width:100%;border-collapse:collapse;}
thead tr{border-bottom:2px solid #f0f0f0;}
th{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#aaa;padding:7px 11px;text-align:left;}
td{padding:12px 11px;font-size:13px;border-bottom:1px solid #f7f7f7;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:var(--teal-light);}
.spill{display:inline-block;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:700;text-transform:uppercase;}
.spill.active{background:#dcfce7;color:#166534;}
.spill.new{background:#ede9fe;color:#5b21b6;}
.spill.stalled{background:#fee2e2;color:#991b1b;}

/* BUTTONS */
.btn{background:linear-gradient(135deg,var(--teal),var(--teal-dark));color:white;border:none;border-radius:9px;padding:13px 26px;font-family:'Lato',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:all 0.2s;letter-spacing:0.5px;text-transform:uppercase;}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(6,177,136,0.38);}
.btn.sec{background:white;color:var(--charcoal);border:2px solid #e0e0e0;box-shadow:none;}
.btn.sec:hover{border-color:var(--teal);color:var(--teal);box-shadow:none;transform:translateY(-1px);}
.btn.amber-btn{background:linear-gradient(135deg,var(--amber),#d97706);}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;}

/* TOAST */
.toast{position:fixed;bottom:26px;right:26px;background:var(--charcoal);color:white;border-radius:11px;padding:13px 18px;font-size:13px;font-weight:700;box-shadow:var(--shadow-lg);z-index:999;display:flex;align-items:center;gap:9px;transform:translateY(80px);transition:transform 0.3s ease;max-width:310px;}
.toast.show{transform:translateY(0);}

/* ONBOARDING */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:200;display:flex;align-items:center;justify-content:center;}
.modal-box{background:white;border-radius:var(--radius);padding:38px;max-width:420px;width:90%;box-shadow:var(--shadow-lg);text-align:center;}

@media(max-width:900px){
  .sidebar{width:200px;}.main{margin-left:200px;}
  .two-col,.canvas-grid,.admin-two{grid-template-columns:1fr;}
  .admin-stats{grid-template-columns:repeat(2,1fr);}
  .modules-grid{grid-template-columns:1fr;}
}

/* ───────────── Additions for the working app (not in the prototype) ───────────── */
[hidden]{display:none!important;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
:focus-visible{outline:3px solid rgba(6,177,136,0.55);outline-offset:2px;}
.nav-item.signout .nav-text{color:rgba(255,255,255,0.4);}
.main{min-width:0;}
.page-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.menu-btn{display:none;background:none;border:none;font-size:22px;cursor:pointer;margin-right:10px;color:var(--charcoal);}

/* Auth + gate screens */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,var(--charcoal) 0%,#1a1818 50%,#0d2e26 100%);}
.auth-card{background:white;border-radius:var(--radius);padding:38px;max-width:440px;width:100%;box-shadow:var(--shadow-lg);text-align:center;}
.auth-card h1{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;margin-bottom:8px;}
.auth-card p{font-size:13px;color:#888;line-height:1.65;margin-bottom:18px;}
.auth-card .cinput{text-align:center;font-size:15px;padding:12px;margin-bottom:14px;}
.auth-icon{font-size:46px;margin-bottom:14px;}
.auth-msg{font-size:13px;border-radius:8px;padding:10px 12px;margin-top:14px;line-height:1.5;}
.auth-msg.ok{background:var(--teal-light);color:var(--teal-dark);}
.auth-msg.err{background:#fef2f2;color:#7f1d1d;}
.gate-card{text-align:left;max-width:560px;}
.gate-card h1{text-align:center;}
.terms-box{background:var(--cream);border:1px solid #eee;border-radius:10px;padding:16px 18px;max-height:300px;overflow:auto;margin-bottom:16px;}
.terms-box p{color:var(--charcoal);font-size:13px;margin-bottom:10px;}
.terms-draft{font-size:11px;color:#92400E;background:var(--amber-light);border-radius:6px;padding:6px 10px;margin-bottom:12px;}
.check-row{display:flex;gap:10px;align-items:flex-start;font-size:13px;margin-bottom:16px;cursor:pointer;}
.check-row input{margin-top:3px;width:16px;height:16px;accent-color:var(--teal);}
.btn:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none;}
.btn.full{width:100%;}
.btn.small{padding:7px 14px;font-size:11px;}
.btn.danger{background:linear-gradient(135deg,#dc2626,#991b1b);}

/* Loading */
.loading{display:flex;align-items:center;justify-content:center;padding:60px;color:#aaa;font-size:13px;gap:10px;}
.spinner{width:18px;height:18px;border:2px solid #ddd;border-top-color:var(--teal);border-radius:50%;animation:spin 0.8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* Purge countdown */
.purge-note{font-size:12px;color:#92400E;background:var(--amber-light);border-radius:10px;padding:10px 14px;margin-bottom:18px;line-height:1.5;}

/* Staff */
.cohort-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:24px;}
.cohort-card{background:white;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);cursor:pointer;border:2px solid transparent;transition:all 0.2s;text-align:left;font:inherit;color:inherit;}
.cohort-card:hover{border-color:var(--teal);transform:translateY(-2px);}
.cohort-card h3{font-family:'Playfair Display',serif;font-size:17px;margin-bottom:6px;}
.cohort-meta{font-size:12px;color:#888;line-height:1.7;}
.spill.draft{background:#f0f0f0;color:#666;}
.spill.completed{background:#e0f2fe;color:#075985;}
.spill.purged{background:#f5f5f5;color:#999;}
.spill.waiting{background:var(--amber-light);color:#92400E;}
.spill.removed{background:#f5f5f5;color:#999;}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:12px;}
.form-grid label,.field-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#999;display:block;margin-bottom:4px;}
.panel{background:white;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:20px;}
.panel h3{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;margin-bottom:14px;}
.panel-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.link-btn{background:none;border:none;color:var(--teal-dark);font-weight:700;cursor:pointer;font:inherit;font-size:13px;padding:0;text-align:left;}
.link-btn:hover{text-decoration:underline;}
.muted{color:#999;font-size:12px;}
.consent-box{border:1.5px dashed #ddd;border-radius:10px;padding:14px;margin-top:10px;}
.dialog{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:300;display:flex;align-items:center;justify-content:center;padding:16px;}
.dialog-box{background:white;border-radius:var(--radius);padding:26px;max-width:460px;width:100%;box-shadow:var(--shadow-lg);}
.dialog-box h3{font-family:'Playfair Display',serif;font-size:18px;margin-bottom:8px;}
.dialog-box p{font-size:13px;color:#666;line-height:1.6;margin-bottom:16px;}
.q-editor{border:1px solid #eee;border-radius:10px;padding:14px;margin-bottom:10px;}
.q-editor .cinput{margin-bottom:6px;}
.opt-row{display:flex;gap:8px;align-items:center;margin-bottom:6px;}
.opt-row input[type=radio]{accent-color:var(--teal);}
.canvas-readonly .cinput,.canvas-readonly .cselect{pointer-events:none;background:#fafafa;}
.empty{text-align:center;color:#aaa;font-size:13px;padding:30px;}

/* Phones */
@media(max-width:640px){
  .sidebar{transform:translateX(-100%);transition:transform 0.25s;width:250px;}
  .sidebar.open{transform:translateX(0);box-shadow:var(--shadow-lg);}
  .main{margin-left:0;}
  .menu-btn{display:inline-block;}
  .topbar{padding:12px 16px;gap:8px;}
  .page-title{font-size:17px;}
  .topbar-right{gap:5px;flex-shrink:0;}
  .topbar-right .chip{padding:4px 8px;font-size:11px;}
  .hero-stats > div{min-width:40%;}
  .two-col,.canvas-grid,.admin-two{grid-template-columns:1fr;}
  .admin-table table{min-width:640px;}
  .content{padding:18px 16px;}
  .stats-row,.admin-stats{grid-template-columns:1fr;}
  .hero{padding:24px 20px;}
  .hero-title{font-size:24px;}
  .hero-stats{gap:16px;flex-wrap:wrap;}
  .badge-grid{grid-template-columns:repeat(3,1fr);}
  .meter-label{width:110px;}
  .quiz-header{padding:20px;}
  .quiz-q{font-size:17px;}
  .qd-stats{gap:18px;}
}
@media print{
  .toast,.dialog,.menu-btn,.muted,.purge-note{display:none!important;}
  .app-shell{display:block!important;}
}
/* Keep the toast fully hidden until shown (it could peek out on tall pages). */
.toast{opacity:0;visibility:hidden;transition:transform 0.3s ease,opacity 0.3s ease,visibility 0.3s;}
.toast.show{opacity:1;visibility:visible;}
