*{box-sizing:border-box;margin:0;padding:0}
body{background:#f0f4f8;color:#1a2332;font-family:Georgia,serif;font-size:17px;line-height:1.7}
body *{font-family:inherit}
code,pre,.mono{font-family:monospace}

/* Header */
header{background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 100%);color:white;padding:22px 18px 0}
.wrap{max-width:1080px;margin:0 auto}
.hero{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;gap:16px;flex-wrap:wrap}
.hero-text h1{font-size:36px;font-weight:900;letter-spacing:-.5px;margin-bottom:4px}
.hero-text p{color:#bfdbfe;font-size:15px;max-width:480px}
.exam-badge{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:14px 18px;text-align:center;min-width:160px}
.exam-badge small{color:#93c5fd;font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:bold;display:block}
.exam-badge .date{font-size:20px;font-weight:900;color:#fde68a;display:block;margin:4px 0}
.exam-badge .countdown{color:#cbd5e1;font-size:13px}

/* Nav */
nav{display:flex;gap:2px;overflow-x:auto;padding-top:4px}
nav button{border:0;background:transparent;color:#94a3b8;padding:11px 16px;border-radius:10px 10px 0 0;font-size:15px;font-weight:bold;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
nav button:hover{background:rgba(255,255,255,.08);color:white}
nav button.active{background:#f0f4f8;color:#0f172a}

/* Main layout */
main{max-width:1080px;margin:0 auto;padding:24px 18px 60px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid3col{display:grid;grid-template-columns:220px 1fr;gap:16px}

/* Cards */
.card{background:white;border:1px solid #dde3ed;border-radius:20px;padding:22px;box-shadow:0 4px 18px rgba(15,23,42,.06)}
.card h2{font-size:24px;margin-bottom:10px;color:#0f172a}
.card h3{font-size:18px;margin:16px 0 8px;color:#1e293b}
.card p{color:#374151;margin-bottom:8px}

/* Buttons */
button,.btn{border:0;border-radius:12px;padding:12px 18px;font-size:15px;font-weight:bold;cursor:pointer;font-family:Georgia,serif;transition:opacity .15s,transform .1s}
button:active{transform:scale(.98)}
.btn-primary{background:#0f172a;color:white}
.btn-secondary{background:#e8edf5;color:#1a2332}
.btn-danger{background:#dc2626;color:white}
.btn-success{background:#16a34a;color:white}
.btn-sm{padding:8px 14px;font-size:13px}
.btn-ai{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:white;display:flex;align-items:center;gap:8px}
.btn-ai::before{content:"✦"}

/* Pills & chips */
.pill{display:inline-block;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:bold;letter-spacing:.05em;text-transform:uppercase}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.chip{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:999px;padding:6px 13px;font-size:14px;font-weight:bold}

/* Callout boxes */
.callout{border-left:5px solid var(--accent,#1e3a8a);background:#f8fafc;border-radius:0 12px 12px 0;padding:14px 16px;margin:12px 0}
.callout b{display:block;color:#0f172a;margin-bottom:4px}
.box-warn{background:#fef2f2;border:1px solid #fca5a5;border-radius:14px;padding:14px;color:#7f1d1d}
.box-good{background:#f0fdf4;border:1px solid #86efac;border-radius:14px;padding:14px;color:#14532d}
.box-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;padding:14px;color:#1e3a8a}
.box-yellow{background:#fefce8;border:1px solid #fde68a;border-radius:14px;padding:14px;color:#713f12}
.readiness-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.readiness-tile{background:#f8fafc;border:1px solid #dde3ed;border-radius:14px;padding:14px;text-align:center}
 .readiness-tile b{font-size:24px;display:block;color:#0f172a}
.readiness-meter{height:14px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin:12px 0}
.readiness-fill{height:100%;background:linear-gradient(90deg,#dc2626,#f59e0b,#16a34a);border-radius:999px;transition:width .25s}
.readiness-action{background:#f8fafc;border:1px solid #dde3ed;border-radius:14px;padding:14px;margin:10px 0}
.readiness-action b{display:block;color:#0f172a;margin-bottom:4px}
.readiness-checks{display:grid;gap:8px;margin:12px 0}
.check-btn{width:100%;text-align:left;background:white;border:2px solid #dde3ed;border-radius:12px;padding:12px 14px;color:#1a2332}
.check-btn.done{background:#f0fdf4;border-color:#22c55e;color:#14532d}
.check-btn.notyet{background:#fff7ed;border-color:#fdba74;color:#9a3412}
.mini-progress-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0;font-size:14px;color:#475569}
.starter-bank{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.starter-card{background:#f8fafc;border:1px solid #cbd5e1;border-radius:14px;padding:12px;font-size:14px;color:#374151}
.checklist-good{color:#166534;font-weight:bold}
.checklist-bad{color:#991b1b;font-weight:bold}

/* Emergency hero */
.emergency-hero{background:linear-gradient(135deg,#0f172a,#1e3a8a);color:white;border-radius:20px;padding:22px;margin-bottom:18px}
.emergency-hero h2{color:white;font-size:22px;margin-bottom:8px}
.emergency-hero p,.emergency-hero li{color:#bfdbfe;line-height:1.7}
.emergency-hero ol{padding-left:20px}
.emergency-hero .frames{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.emergency-hero .frame-chip{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:6px 14px;font-size:14px;color:white;font-weight:bold}

/* Home start paths */
.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.path-card{border-radius:16px;padding:16px;text-align:center;cursor:pointer;border:2px solid transparent;transition:transform .15s,border-color .15s}
.path-card:hover{transform:translateY(-2px)}
.path-card b{display:block;font-size:16px;margin-bottom:6px}
.path-card p{font-size:13px;line-height:1.5}
.path-red{background:#fef2f2;border-color:#fca5a5}
.path-yellow{background:#fefce8;border-color:#fde68a}
.path-green{background:#f0fdf4;border-color:#86efac}

/* Quiz */
.quiz-question{background:#f8fafc;border:1px solid #dde3ed;border-radius:16px;padding:18px;margin:12px 0}
.quiz-question h3{font-size:18px;margin-bottom:14px;color:#0f172a;line-height:1.5}
.choice-btn{display:block;width:100%;text-align:left;background:white;border:2px solid #dde3ed;border-radius:12px;margin:8px 0;padding:13px 16px;font-size:15px;color:#1a2332;transition:border-color .15s,background .15s}
.choice-btn:hover:not(:disabled){border-color:#6366f1;background:#f8f7ff}
.choice-btn.correct{background:#f0fdf4;border-color:#22c55e;color:#14532d}
.choice-btn.wrong{background:#fef2f2;border-color:#ef4444;color:#991b1b}
.choice-btn:disabled{cursor:default}
.explain-box{border-radius:14px;padding:14px;margin:10px 0;font-size:15px;line-height:1.6}
.explain-good{background:#f0fdf4;border:1px solid #86efac;color:#14532d}
.explain-bad{background:#fff7ed;border:1px solid #fdba74;color:#9a3412}
.quiz-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0}
.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.filter-btn{background:white;border:1px solid #cbd5e1;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:bold;color:#374151;cursor:pointer}
.filter-btn.active{background:#0f172a;color:white;border-color:#0f172a}
.score-badge{background:#e8edf5;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:bold;color:#1e293b}

/* FRQ */
.frq-select{width:100%;border:2px solid #dde3ed;border-radius:14px;padding:12px 14px;font-size:16px;font-family:Georgia,serif;background:white;cursor:pointer;color:#1a2332}
.scenario-box{background:#f0f9ff;border:1px solid #7dd3fc;border-radius:14px;padding:16px;margin:14px 0}
.scenario-box p{color:#0c4a6e}
.rubric-row{border:1px solid #dde3ed;background:#f8fafc;border-radius:14px;padding:14px;margin:8px 0}
.rubric-row b{color:#0f172a;display:block;margin-bottom:4px}
.rubric-rule{color:#475569;font-size:14px;margin:4px 0}
.frame-hint{color:#6366f1;font-style:italic;font-size:14px;margin-top:6px}
.scaffold-grid{display:grid;gap:10px;margin:12px 0}
.scaffold-box{background:#f8fafc;border:1px solid #cbd5e1;border-radius:14px;padding:14px}
.scaffold-box label{display:block;font-weight:900;color:#0f172a;margin-bottom:8px;font-size:15px}
.scaffold-box textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font-size:15px;font-family:Georgia,serif;background:white;resize:vertical;min-height:80px;line-height:1.6}
.answer-textarea{width:100%;border:2px solid #cbd5e1;border-radius:14px;padding:14px;font-size:16px;font-family:Georgia,serif;min-height:200px;line-height:1.7;resize:vertical;background:white}
.answer-textarea:focus{outline:none;border-color:#6366f1}

/* rubric feedback */
.ai-loading{text-align:center;padding:30px;color:#6366f1}
.ai-loading::before{content:"✦ ";animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.ai-result{animation:fadein .4s ease}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.part-result{border-radius:14px;padding:14px;margin:8px 0;border:2px solid transparent}
.part-earned{background:#f0fdf4;border-color:#22c55e}
.part-review{background:#fffbeb;border-color:#f59e0b}
.part-missing{background:#fef2f2;border-color:#fca5a5}
.part-result .verdict{font-size:18px;font-weight:900;margin-bottom:6px}
.part-result .part-fix{background:white;border-radius:10px;padding:10px;margin-top:8px;font-size:14px;color:#374151}
.score-circle{width:110px;height:110px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:16px auto;font-size:40px;font-weight:900;border:8px solid;line-height:1}
.score-circle small{font-size:14px;font-weight:normal}
.model-answer{background:#ecfeff;border:1px solid #67e8f9;border-radius:14px;padding:16px;margin:12px 0;color:#164e63}
.model-answer mark{background:#fde68a;border-radius:4px;padding:1px 4px}

/* Terms */
.term-row{background:#f8fafc;border:1px solid #dde3ed;border-radius:16px;padding:16px;margin:10px 0}
.term-row .term-name{font-size:18px;font-weight:900;color:#0f172a;margin-bottom:4px}
.term-row .plain{color:#374151;margin-bottom:6px}
.term-row .example{background:#eff6ff;border-radius:10px;padding:10px;font-size:14px;color:#1e3a8a;font-style:italic}


/* Flashcards */
.flashcard-panel{background:#f8fafc;border:1px solid #dde3ed;border-radius:18px;padding:18px;margin:12px 0}
.flashcard-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.flashcard{min-height:260px;background:white;border:2px solid #cbd5e1;border-radius:24px;padding:26px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;cursor:pointer;box-shadow:0 8px 22px rgba(15,23,42,.08);transition:transform .15s,border-color .15s}
.flashcard:hover{transform:translateY(-2px);border-color:#6366f1}
.flashcard .label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#64748b;margin-bottom:10px}
.flashcard .front{font-size:32px;font-weight:900;color:#0f172a;line-height:1.25}
.flashcard .back{font-size:19px;color:#1e293b;line-height:1.65;max-width:760px}
.flashcard .example{margin-top:16px;background:#eff6ff;border-radius:14px;padding:12px 14px;color:#1e3a8a;font-size:15px;font-style:italic}
.flashcard-controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px}
.flashcard-progress{font-weight:bold;color:#475569;font-size:14px}
.flashcard-hint{color:#64748b;font-size:14px;text-align:center;margin-top:10px}

/* Units */
.unit-btn{width:100%;display:flex;gap:10px;align-items:center;text-align:left;background:white;border:1px solid #dde3ed;border-radius:12px;padding:11px 14px;margin:4px 0;color:#374151;font-size:14px;font-weight:bold;cursor:pointer;transition:background .15s}
.unit-btn.active{color:white}
.unit-btn .num{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#f1f5f9;font-weight:900;font-size:14px;flex-shrink:0}
.unit-btn.active .num{background:rgba(255,255,255,.25);color:white}
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.review-box{background:#f8fafc;border:1px solid #dde3ed;border-radius:14px;padding:14px}
.review-box b{display:block;color:#0f172a;margin-bottom:8px;font-size:15px}
.review-box ul{padding-left:18px;color:#374151;line-height:1.8}
.mini-practice{background:#fefce8;border:1px solid #fde68a;border-radius:14px;padding:14px;margin-top:14px}

/* Study Plan */
.plan-day{background:#f8fafc;border-left:6px solid #0f172a;border-radius:0 14px 14px 0;padding:16px;margin:10px 0}
.plan-day.today{border-left-color:#dc2626;background:#fff0f0}
.plan-day b{display:block;font-size:16px;color:#0f172a;margin-bottom:2px}
.plan-day .focus{font-weight:bold;color:#1e3a8a;margin-bottom:4px}
.plan-day p{color:#374151;font-size:15px}

/* Drills */
.drill-prompt{font-size:20px;font-weight:900;color:#0f172a;margin:10px 0;line-height:1.4}

/* Reflection */
.reflection{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;padding:14px;margin:10px 0}
.reflection .why-label{font-weight:bold;color:#1e3a8a;margin-bottom:8px;display:block}
.reflection .why-btns{display:flex;flex-wrap:wrap;gap:8px}
.why-btn{background:white;border:1px solid #93c5fd;border-radius:999px;padding:7px 14px;font-size:13px;color:#1e3a8a;cursor:pointer;font-weight:bold}

/* Timer */
.timer-bar{background:#0f172a;color:white;border-radius:14px;padding:12px 18px;font-weight:bold;text-align:center;font-size:18px;margin:10px 0}

/* Footer */
footer{text-align:center;color:#94a3b8;font-size:13px;padding:24px}


/* Flashcard FRQ + Practice Exams */
.frq-generator-box,.exam-card,.exam-frq{background:#f8fafc;border:1px solid #cbd5e1;border-radius:18px;padding:18px;margin-top:16px}
.frq-generator-box textarea,.exam-frq textarea{width:100%;min-height:120px;border:2px solid #cbd5e1;border-radius:14px;padding:12px;font-size:15px;line-height:1.6;resize:vertical;background:white}
.exam-question{background:white;border:1px solid #dde3ed;border-radius:14px;padding:14px;margin:10px 0}
.exam-choice{display:block;width:100%;text-align:left;background:#f8fafc;border:2px solid #dde3ed;border-radius:12px;margin:7px 0;padding:11px 13px;color:#1a2332}
.exam-choice.selected{border-color:#6366f1;background:#eef2ff}
.exam-choice.correct{border-color:#22c55e;background:#f0fdf4;color:#14532d}
.exam-choice.wrong{border-color:#ef4444;background:#fef2f2;color:#991b1b}
.exam-result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.exam-result-tile{background:#f8fafc;border:1px solid #cbd5e1;border-radius:14px;padding:14px;text-align:center}
.exam-result-tile b{font-size:24px;color:#0f172a;display:block}
.exam-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.score-estimate{font-size:42px;font-weight:900;color:#0f172a;text-align:center;line-height:1}


/* Models & Maps Preview */
.model-map-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.model-card-grid{display:grid;grid-template-columns:260px 1fr;gap:18px}
.model-list{display:grid;gap:8px}
.model-list button{text-align:left;background:white;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;color:#1e293b}
.model-list button.active{background:#0f172a;color:white;border-color:#0f172a}
.diagram-wrap{background:#f8fafc;border:1px solid #cbd5e1;border-radius:18px;padding:14px;margin:12px 0;overflow:auto}
.diagram-wrap svg{max-width:100%;height:auto;display:block;margin:auto}
.model-notes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.source-note{font-size:12px;color:#64748b;border-top:1px solid #e2e8f0;margin-top:12px;padding-top:10px}
.scale-map-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}
.map-practice-card{background:#f8fafc;border:1px solid #cbd5e1;border-radius:16px;padding:14px}
.map-practice-card h3{margin-top:0}
.map-question{background:#fff7ed;border:1px solid #fdba74;border-radius:14px;padding:14px;margin:12px 0;color:#7c2d12}
@media(max-width:720px){.model-card-grid,.model-notes,.scale-map-grid,.frq-steps{display:block}.model-list{margin-bottom:14px}}

/* Clearer FRQ + GIS scale practice */
.frq-task-card{background:#f8fafc;border:1px solid #dde3ed;border-radius:14px;padding:14px;margin:8px 0}
.frq-task-card b{display:block;color:#0f172a;margin-bottom:4px}
.frq-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.frq-step{background:white;border:1px solid #cbd5e1;border-radius:14px;padding:12px;font-size:14px}
.gis-legend{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0;font-size:13px}
.legend-chip{display:inline-flex;align-items:center;gap:5px}
.legend-swatch{width:18px;height:12px;border:1px solid #334155;border-radius:3px;display:inline-block}
.map-layer-note{background:#f8fafc;border:1px dashed #94a3b8;border-radius:12px;padding:10px;margin-top:10px;font-size:14px;color:#334155}



/* Full AP Simulator */
.sim-hero{background:linear-gradient(135deg,#111827,#3730a3);color:white;border-radius:22px;padding:22px;margin-bottom:18px}
.sim-hero h2{color:white;margin-bottom:8px}
.sim-hero p,.sim-hero li{color:#e0e7ff}
.sim-status{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.sim-status span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:bold;color:white}
.sim-timer{position:sticky;top:0;z-index:5;background:#0f172a;color:white;border-radius:16px;padding:12px 16px;margin:12px 0;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;box-shadow:0 8px 24px rgba(15,23,42,.16)}
.sim-timer b{font-size:20px;color:#fde68a}
.sim-nav-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:12px 0}
.sim-bubble{border-radius:10px;border:1px solid #cbd5e1;background:white;padding:8px;font-size:12px;color:#334155}
.sim-bubble.done{background:#dcfce7;border-color:#22c55e;color:#14532d}
.sim-stimulus{background:#f8fafc;border:1px solid #cbd5e1;border-radius:16px;padding:14px;margin:10px 0}
.sim-stimulus b{color:#0f172a}
.sim-frq-part{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:12px;margin:8px 0}
.sim-report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}
.sim-report-card{background:#f8fafc;border:1px solid #dde3ed;border-radius:16px;padding:16px;text-align:center}
.sim-report-card b{font-size:28px;display:block;color:#0f172a}
@media(max-width:720px){.sim-nav-grid{grid-template-columns:repeat(4,1fr)}.sim-report-grid{grid-template-columns:1fr 1fr}}


/* Adaptive coach */
.coach-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.coach-card{background:#f8fafc;border:1px solid #dde3ed;border-radius:16px;padding:14px}
.coach-card b{display:block;color:#0f172a;font-size:20px}
.coach-card span{font-size:13px;color:#64748b}
.plan-step{background:#fff;border:1px solid #dde3ed;border-radius:14px;padding:14px;margin:10px 0}
.plan-step .tag{display:inline-block;border-radius:999px;background:#e0e7ff;color:#3730a3;font-size:12px;font-weight:bold;padding:3px 9px;margin-bottom:6px}
.mastery-row{display:grid;grid-template-columns:110px 1fr 90px;gap:10px;align-items:center;margin:8px 0}
.mastery-bar{height:12px;background:#e2e8f0;border-radius:999px;overflow:hidden}
.mastery-fill{height:100%;background:linear-gradient(90deg,#dc2626,#f59e0b,#16a34a)}
.difficulty-chip{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:bold;margin-left:6px;background:#f1f5f9;color:#334155}
@media(max-width:720px){.coach-grid{grid-template-columns:1fr 1fr}.mastery-row{grid-template-columns:80px 1fr}}

/* Responsive */
@media(max-width:720px){
  .grid2,.grid3col{display:block}
  .path-grid{grid-template-columns:1fr}
  .review-grid{grid-template-columns:1fr}
  .readiness-grid,.starter-bank{grid-template-columns:1fr}
  nav button{padding:10px 12px;font-size:13px}
  .hero-text h1{font-size:28px}
  .card{padding:16px}
}

.real-map-img{width:100%;max-height:520px;object-fit:contain;border-radius:14px;border:1px solid #cbd5e1;background:#020617;display:block;margin:0 auto}.real-map-compare{display:grid;grid-template-columns:1fr;gap:12px}
.real-map-frame{width:100%;height:520px;border:1px solid #cbd5e1;border-radius:14px;background:white}
.real-map-wrap{background:#f8fafc;padding:10px}
@media(max-width:720px){.real-map-frame{height:420px}}

/* AP Mastery additions */
.mastery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0}
.mastery-tile{background:#f8fafc;border:1px solid #dde3ed;border-radius:16px;padding:16px}
.mastery-tile b{display:block;color:#0f172a;font-size:18px;margin-bottom:6px}
.mastery-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.pyramid-practice-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pyramid-visual{background:#fff;border:1px solid #dde3ed;border-radius:18px;padding:12px;overflow:hidden}
.pyramid-svg{width:100%;max-height:430px;display:block}
.mastery-choice{width:100%;text-align:left;background:white;border:2px solid #dde3ed;border-radius:12px;margin:8px 0;padding:12px 14px;color:#1a2332}
.mastery-choice.selected{border-color:#6366f1;background:#eef2ff}
.mastery-choice.correct{border-color:#22c55e;background:#f0fdf4;color:#14532d}
.mastery-choice.wrong{border-color:#ef4444;background:#fef2f2;color:#991b1b}
.model-example-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.mastery-mini-nav{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
@media(max-width:720px){.mastery-grid,.pyramid-practice-layout,.model-example-grid{grid-template-columns:1fr;display:block}.mastery-tile{margin-bottom:10px}}


/* FINAL POLISH */
.home-cta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.home-cta{border-radius:18px;padding:18px;text-align:left;min-height:120px;border:2px solid #dde3ed;background:#fff;box-shadow:0 4px 16px rgba(15,23,42,.06)}.home-cta b{display:block;font-size:18px;margin-bottom:6px;color:#0f172a}.home-cta span{font-size:14px;color:#475569;line-height:1.5}.home-cta.primary{background:linear-gradient(135deg,#0f172a,#1e3a8a);color:white}.home-cta.primary b,.home-cta.primary span{color:white}.ap-recipe{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.ap-step{background:#f8fafc;border:1px solid #cbd5e1;border-radius:14px;padding:12px}.ap-step b{display:block;color:#0f172a}.label-practice{background:#f8fafc;border:1px dashed #94a3b8;border-radius:16px;padding:14px;margin:12px 0}.mini-label-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.mini-label-grid button{background:white;border:1px solid #cbd5e1;color:#1a2332}.mini-label-grid button:hover{border-color:#1e3a8a}.polish-note{font-size:13px;color:#64748b;margin-top:8px}.student-rule{background:#ecfeff;border:1px solid #67e8f9;border-radius:14px;padding:12px;color:#164e63;margin:10px 0}.student-rule b{display:block;margin-bottom:4px}.model-checklist{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.model-checklist div{border-radius:12px;background:#f8fafc;border:1px solid #dde3ed;padding:10px;font-size:14px}.map-source-link{word-break:break-word}
.interactive-scale-panel{background:#ffffff;border:1px solid #cbd5e1;border-radius:18px;padding:16px;margin:16px 0}
.scale-toggle-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.scale-toggle-row button.active{background:#0f172a;color:#fff;border-color:#0f172a}
.scale-view-card{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;align-items:start}
.scale-insight{background:#f8fafc;border:1px solid #dde3ed;border-radius:14px;padding:14px}
.scale-insight h3{margin-top:0}.scale-insight ul{padding-left:20px;color:#374151;line-height:1.7}
.scale-map-svg{width:100%;border-radius:14px;border:1px solid #cbd5e1;background:white;display:block}
.scale-question-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.scale-question-grid div{background:#f8fafc;border:1px solid #dde3ed;border-radius:12px;padding:10px;font-size:14px}
@media(max-width:800px){.scale-view-card,.scale-question-grid{grid-template-columns:1fr}}

@media(max-width:900px){.home-cta-grid,.ap-recipe,.model-checklist{grid-template-columns:1fr 1fr}}@media(max-width:620px){.home-cta-grid,.ap-recipe,.model-checklist,.mini-label-grid{grid-template-columns:1fr}}
