@font-face{font-family:'ManropeLocal';src:url('./fonts/manrope-extrabold.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'SourceSansLocal';src:url('./fonts/sourcesans3-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'SourceSansLocal';src:url('./fonts/sourcesans3-semibold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'SourceSansLocal';src:url('./fonts/sourcesans3-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}

:root{--navy:#16326E;--teal:#14B8A6;--amber:#F5A800;--orange:#F07818;--ink:#0E2148;--muted:#53627d;--line:#dce6f2;--tint:#f3f8fc;--white:#fff;--success:#1f7a50;--soft-green:#eef7f6;--shadow:0 10px 28px rgba(22,50,110,.08)}
*{box-sizing:border-box}
body{margin:0;font-family:'SourceSansLocal',system-ui,sans-serif;color:var(--ink);background:radial-gradient(900px 520px at 8% -8%,rgba(20,184,166,.15),transparent 62%),radial-gradient(820px 460px at 96% 8%,rgba(31,164,220,.11),transparent 64%),linear-gradient(180deg,#eef7f6 0%,#f3f8fc 48%,#fff7ed 100%);background-attachment:fixed;min-height:100vh}
h1,h2,h3,h4,strong,.kicker,.tab,.btn,.unlock-title{font-family:'ManropeLocal','SourceSansLocal',sans-serif}
a{color:inherit}
.l2c-main{max-width:760px;margin:20px auto 0;padding:24px 18px 108px;background:rgba(255,255,255,.58);border:1px solid rgba(220,230,242,.82);border-radius:28px 28px 0 0;box-shadow:0 18px 50px rgba(22,50,110,.06);backdrop-filter:blur(5px)}
.hero{display:grid;grid-template-columns:94px 1fr;gap:18px;align-items:center;padding:10px 0 18px}
.hero img{width:94px;height:136px;object-fit:cover;border-radius:10px;box-shadow:0 9px 24px rgba(14,33,72,.16)}
.hero h1{font-size:clamp(1.7rem,6vw,2.35rem);line-height:1.06;letter-spacing:-.035em;color:var(--navy);margin:.35rem 0 .55rem}
.hero p{margin:0;color:var(--muted);line-height:1.48}
.kicker{display:inline-block;color:var(--teal);font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;font-weight:800}
.status-pill{display:inline-flex;margin-top:10px;background:var(--soft-green);color:var(--success);border-radius:999px;padding:5px 9px;font:800 .67rem 'Lexend',sans-serif}
.gate{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 5px 18px rgba(22,50,110,.04);margin-top:10px}
.gate h2{margin:.2rem 0 .45rem;color:var(--navy)}
.gate p{color:var(--muted);line-height:1.48}
.unlock-row{display:flex;gap:8px;margin-top:12px}.unlock-row input{flex:1;border:1px solid var(--line);border-radius:13px;padding:12px 13px;font:inherit}.unlock-row input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(20,184,166,.12)}
.btn{border:1px solid var(--line);border-radius:12px;padding:10px 13px;font-weight:750;background:#fff;color:var(--navy)}
.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.teal{background:var(--teal);border-color:var(--teal);color:#fff}.btn.soft{background:var(--tint)}
.note{font-size:.75rem;color:var(--muted)}.error{color:#a52d2d;font-size:.78rem}.test-code{margin-top:12px;padding:10px;border-radius:12px;background:#fff7ed;color:#7a5200;font-size:.75rem}
.workspace[hidden],.gate[hidden]{display:none}
.tabs{position:sticky;top:62px;z-index:15;display:flex;gap:7px;overflow:auto;background:rgba(238,247,246,.94);backdrop-filter:blur(8px);padding:8px 0 10px;margin:0 -2px 12px;scrollbar-width:none}
.tab{white-space:nowrap;border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:999px;padding:8px 11px;font-weight:700;font-size:.72rem}
.tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.panel{display:none}.panel.active{display:block}
.card{display:block;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 5px 18px rgba(22,50,110,.04);margin-top:14px}
.card h2,.card h3{color:var(--navy);margin:0 0 7px}.card p{color:var(--muted);line-height:1.5}
.field{display:block;margin:13px 0}.field>span{display:block;font:700 .72rem 'Lexend',sans-serif;color:var(--navy);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px 13px;font:inherit;color:var(--ink);outline:none}.field textarea{min-height:82px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(20,184,166,.12)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.duration-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.duration{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:11px;padding:9px 8px;font:700 .72rem 'Lexend',sans-serif}.duration.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.lesson{white-space:pre-wrap;background:var(--tint);border:1px solid var(--line);border-radius:16px;padding:16px;line-height:1.52;font-size:.86rem;min-height:230px}
.empty{text-align:center;color:var(--muted);padding:44px 15px}
.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.export{border:1px solid var(--line);background:#fff;border-radius:15px;padding:14px;text-align:left;color:var(--navy)}.export strong{display:block}.export small{display:block;color:var(--muted);margin-top:4px;line-height:1.35}.export.wide{grid-column:1/-1;background:var(--navy);color:#fff;border-color:var(--navy)}.export.wide small{color:#dbe7f5}
.upload-box{border:1px dashed #bfcfe0;border-radius:16px;padding:24px;text-align:center;background:#fff}.upload-box input{display:block;margin:13px auto}.file-preview{white-space:pre-wrap;background:var(--tint);border-radius:14px;padding:14px;margin-top:12px;max-height:320px;overflow:auto;font-size:.78rem;color:var(--muted)}
.checks{display:grid;gap:8px}.check{display:flex;gap:9px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}.dot{width:10px;height:10px;border-radius:50%;margin-top:4px;background:#d6a126}.check.ok .dot{background:#2c9b71}.check span{color:var(--muted);font-size:.76rem;line-height:1.35}
.bottom-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.98);backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:7px 8px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -7px 24px rgba(14,33,72,.08)}
.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;text-decoration:none;color:var(--muted);font-size:.61rem;font-weight:650;border-radius:11px}.bottom-nav a.active{color:var(--navy);background:var(--tint)}.nav-ico{font-size:1.1rem}
@media(min-width:760px){.l2c-main{padding-bottom:46px}.bottom-nav{left:50%;right:auto;transform:translateX(-50%);bottom:18px;width:auto;min-width:460px;border:1px solid var(--line);border-radius:18px;padding:6px;box-shadow:0 10px 30px rgba(14,33,72,.12)}.bottom-nav a{min-width:82px}.hero{grid-template-columns:116px 1fr}.hero img{width:116px;height:168px}}
@media(max-width:460px){.l2c-main{padding-left:14px;padding-right:14px}.hero{grid-template-columns:78px 1fr}.hero img{width:78px;height:113px}.hero h1{font-size:1.52rem}.two{grid-template-columns:1fr}.duration-grid{grid-template-columns:1fr 1fr}.export-grid{grid-template-columns:1fr}.export.wide{grid-column:auto}}
@media print{.tabs,.actions,.bottom-nav,.v3-topbar,.gate{display:none!important}.l2c-main{max-width:none;margin:0;padding:0;border:0;background:#fff}.panel{display:none!important}#lessonPanel{display:block!important}.card{border:0;box-shadow:none}.lesson{background:#fff;border:0}}

.actions select.btn{max-width:100%;font-family:'SourceSansLocal',system-ui,sans-serif}.export:disabled{cursor:not-allowed;filter:grayscale(.25)}#promptText{min-height:260px;font-size:.82rem;line-height:1.48}

.material-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.material-meta div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;display:grid;gap:4px}
.material-meta strong{font-size:.68rem;color:var(--navy)}.material-meta span{font-size:.76rem;color:var(--muted)}
.rubric-note{margin-top:14px;padding:12px;border-radius:12px;background:#fff8df;color:#6d5720;font-size:.76rem;line-height:1.45}
.timer-box{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}
.timer-box>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}
#timerClock{font:800 1.7rem 'Lexend',sans-serif;color:var(--navy)}
.version-list{display:grid;gap:8px;margin-top:14px}.version-item{border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff;display:flex;justify-content:space-between;gap:10px;align-items:center}
.version-item small{color:var(--muted);display:block;margin-top:3px}.version-item button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:9px;padding:7px 9px;font-weight:700}
@media(max-width:520px){.material-meta{grid-template-columns:1fr}.timer-box>div:first-child{align-items:flex-start;flex-direction:column}}

.release-hold{border-left:5px solid var(--amber);background:linear-gradient(180deg,#fff 0%,#fffaf0 100%)}
.release-hold .unlock-title{margin-bottom:.55rem}
/* Wave 1.2: compact task-based UDA navigation */
.workspace-intro{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:6px 2px 12px}
.workspace-intro h2{margin:.2rem 0 .25rem;color:var(--navy);font-size:1.2rem}.workspace-intro p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.4;max-width:52ch}.workspace-save{flex:0 0 auto}
.tabs.task-grid{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;overflow:visible;background:transparent;backdrop-filter:none;padding:0;margin:0 0 12px}
.task-card{white-space:normal;min-height:92px;border-radius:17px;padding:13px;display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;text-align:left;box-shadow:0 4px 14px rgba(22,50,110,.04)}
.task-card .task-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:var(--tint);color:var(--teal);font-size:1rem}
.task-card span:last-child{display:grid;gap:3px}.task-card strong{font-size:.86rem}.task-card small{font-family:'SourceSansLocal',system-ui,sans-serif;font-size:.69rem;font-weight:600;line-height:1.25;color:var(--muted)}
.task-card.active{background:var(--navy);color:#fff}.task-card.active .task-icon{background:rgba(255,255,255,.14);color:#fff}.task-card.active small{color:#dbe7f5}
.secondary-tools{margin:4px 0 10px;border:1px solid var(--line);background:rgba(255,255,255,.7);border-radius:14px;padding:0 12px}.secondary-tools summary{cursor:pointer;padding:10px 0;font-weight:700;color:var(--navy);font-size:.78rem}.secondary-grid{display:flex;gap:7px;flex-wrap:wrap;padding:0 0 11px}.secondary-tab{border-radius:10px;padding:7px 10px;font-size:.7rem}
.panel.active{animation:l2fade .16s ease-out}@keyframes l2fade{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
#testPanel .card{border-style:dashed}.l2c-main{max-width:900px}.hero{padding-bottom:12px}.card{margin-top:10px}
@media(max-width:700px){.tabs.task-grid{grid-template-columns:1fr 1fr}.workspace-intro{align-items:flex-start;flex-direction:column}.workspace-save{display:none}.task-card{min-height:82px}}
@media(max-width:420px){.task-card{grid-template-columns:32px 1fr;padding:11px}.task-card .task-icon{width:32px;height:32px}.task-card small{display:none}}

/* WAVE30 guided UDA fields */
.field-help{display:block;margin-top:6px;color:var(--muted);font-size:.69rem;line-height:1.35}.guide-grid{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 8px}.guide-chip{border:1px solid var(--line);background:var(--tint);color:var(--navy);border-radius:999px;padding:7px 10px;font:700 .68rem 'SourceSansLocal',system-ui,sans-serif;cursor:pointer}.guide-chip:hover,.guide-chip:focus{border-color:var(--teal);box-shadow:0 0 0 2px rgba(20,184,166,.10);outline:none}
/* WAVE31 guided source/material/assessment flow */
.source-material-box{margin-top:14px;padding:14px;border:1px solid rgba(22,50,110,.16);border-radius:14px;background:rgba(255,255,255,.55)}
.ai-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.ai-chip{border:1px solid rgba(22,50,110,.2);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}.ai-chip:hover{background:#eef5ff}
.current-phase-card{padding:18px;border-radius:16px;background:#f7fbff;border:1px solid rgba(22,50,110,.14);white-space:pre-wrap;line-height:1.55}.phase-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
