/* =========================================================
   OlymPhyX V3 — functional product layer
   ========================================================= */
.dashboard-body.phi-open #dashAskPhi{display:none}
@media(min-width:1180px){
  .dashboard-body.phi-open .side-nav a,.dashboard-body.phi-open .studio-link{position:relative}
  .dashboard-body.phi-open .side-nav a:hover::after,.dashboard-body.phi-open .studio-link:hover::after{
    content:attr(data-tooltip);position:absolute;left:58px;top:50%;transform:translateY(-50%);white-space:nowrap;
    background:#17324f;color:#fff;padding:7px 10px;border-radius:8px;font-size:10px;font-weight:700;box-shadow:0 8px 20px rgba(25,55,89,.16);z-index:80
  }
  .dashboard-body.phi-open .side-nav a:hover::before{content:"";position:absolute;left:52px;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:#17324f}
}
.phi-drawer{border-left:1px solid #cbdde9!important;box-shadow:-12px 0 34px rgba(43,76,111,.12)!important}
.phi-drawer .phi-input{position:sticky;bottom:0;z-index:4;box-shadow:0 -9px 20px rgba(38,68,102,.05)}
.phi-drawer .quick-prompts{background:#fbfdff;position:sticky;bottom:69px;z-index:3;padding-top:8px}

/* shared internal app pages */
.v3-page .dashboard-content{max-width:1280px}
.v3-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}
.v3-page-header h1{font:650 clamp(32px,4vw,46px)/1.08 Space Grotesk;margin:6px 0;color:#102a4b;letter-spacing:-.025em}
.v3-page-header p{margin:0;color:#667a91;max-width:720px}
.v3-kicker{color:#078aa6;font-size:10px;font-weight:800;letter-spacing:.13em}
.v3-card{background:#fff;border:1px solid #d9e5ee;border-radius:20px;box-shadow:0 12px 34px rgba(45,78,112,.065)}
.v3-grid{display:grid;gap:16px}
.v3-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.v3-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.v3-section{margin-top:28px}
.v3-section-title{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:0 0 14px}
.v3-section-title h2{font:620 24px Space Grotesk;margin:4px 0;color:#17324f}
.v3-section-title p{margin:0;color:#75869a;font-size:12px}
.v3-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #d6e5ee;background:#f7fbfd;color:#49647d;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:700}
.v3-badge.good{background:#effaf7;color:#13866d;border-color:#ccece3}.v3-badge.blue{background:#eef7ff;color:#2c68bb;border-color:#d4e5f8}.v3-badge.purple{background:#f4f1ff;color:#7055c3;border-color:#e0d9fb}
.v3-progress{height:8px;border-radius:999px;background:#e9f0f5;overflow:hidden}.v3-progress>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1cbfd3,#5e72ef)}

/* learn */
.path-card{padding:22px;position:relative;overflow:hidden;cursor:pointer;transition:.2s transform,.2s border-color,.2s box-shadow}.path-card:hover{transform:translateY(-3px);border-color:#badce9;box-shadow:0 18px 38px rgba(45,78,112,.09)}
.path-card .path-num{position:absolute;right:18px;top:16px;color:#b1c0cf;font:700 18px Space Grotesk}.path-icon{width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,#e8fbfd,#edf1ff);display:grid;place-items:center;color:#148da7;font-size:22px;margin-bottom:24px}.path-card h3{font:600 20px Space Grotesk;color:#15304f;margin:0 0 8px}.path-card p{font-size:12px;color:#6b7e92;min-height:57px}.path-card-footer{border-top:1px solid #e4ecf2;padding-top:14px;margin-top:18px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#718398}.path-card.featured{background:linear-gradient(145deg,#f4fcff,#f6f7ff);border-color:#c6e3ed}.path-card.locked{opacity:.72}.path-card.locked:hover{transform:none}
.learning-roadmap{padding:24px}.roadmap-row{display:grid;grid-template-columns:44px 1fr auto;gap:15px;align-items:center;padding:17px 0;border-bottom:1px solid #e7eef4}.roadmap-row:last-child{border-bottom:0}.roadmap-dot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#edf5fa;border:1px solid #d7e5ee;color:#5a7189;font-weight:800}.roadmap-row.active .roadmap-dot{background:linear-gradient(145deg,#dff9fb,#e9efff);color:#0b91aa;border-color:#b8e3ea}.roadmap-row.done .roadmap-dot{background:#e8f8f3;color:#138469;border-color:#c5e8dd}.roadmap-row h3{font-size:14px;color:#17324f;margin:0 0 3px}.roadmap-row p{font-size:10px;color:#77899d;margin:0}.roadmap-actions{display:flex;gap:8px;align-items:center}

/* lesson */
.lesson-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.lesson-main{padding:26px}.lesson-side{padding:20px;position:sticky;top:92px}.lesson-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:20px;border-bottom:1px solid #e2ebf2}.lesson-head h1{font:650 31px Space Grotesk;color:#14304f;margin:5px 0}.lesson-head p{font-size:12px;color:#6b7d91;margin:0;max-width:650px}.lesson-completion{min-width:110px;text-align:right}.lesson-completion b{display:block;font:700 28px Space Grotesk;color:#163552}.lesson-completion small{font-size:9px;color:#7d8ea1}
.lesson-flow-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:22px 0}.lesson-flow-nav button{border:1px solid #d8e5ee;background:#f8fbfd;border-radius:12px;padding:10px 8px;text-align:left;color:#64788f;cursor:pointer}.lesson-flow-nav button b{display:block;color:#8fa1b5;font-size:9px}.lesson-flow-nav button span{font-size:11px;font-weight:700}.lesson-flow-nav button.active{background:linear-gradient(145deg,#eafbfd,#edf2ff);border-color:#bfe0ec;color:#1a5574}.lesson-flow-nav button.done{background:#eef9f5;border-color:#caeae0;color:#18735f}.lesson-flow-nav button.done b{color:#17866d}
.lesson-step{display:none;animation:fadeUp .25s ease}.lesson-step.active{display:block}@keyframes fadeUp{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:none}}
.step-label{color:#078ca7;font-size:10px;font-weight:800;letter-spacing:.12em}.lesson-step h2{font:620 26px Space Grotesk;color:#15314f;margin:7px 0 9px}.lesson-step>p{color:#63768b;font-size:13px;max-width:760px}.scenario{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;margin:24px 0;padding:24px;border:1px solid #d7e6ef;background:linear-gradient(145deg,#f6fbfe,#f7f8ff);border-radius:17px}.cart{padding:16px;border:1px solid #d0e0ea;background:#fff;border-radius:14px;text-align:center}.cart strong{display:block;color:#183653}.cart span{font-size:11px;color:#668097}.collision-arrow{font-size:28px;color:#1aa3bc}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.choice{border:1px solid #d5e3ed;background:#fff;border-radius:13px;padding:14px;text-align:left;color:#38536c;cursor:pointer;transition:.18s}.choice:hover,.choice.selected{border-color:#36b3c5;background:#effbfd;box-shadow:0 0 0 3px rgba(41,174,194,.08)}.choice.correct{border-color:#41b597;background:#edf9f5}.choice.wrong{border-color:#e19494;background:#fff3f3}.choice b{display:block;font-size:12px;margin-bottom:3px}.choice small{font-size:10px;color:#73869a}.lesson-feedback{display:none;margin:12px 0;padding:12px 14px;border-radius:12px;font-size:11px}.lesson-feedback.show{display:block}.lesson-feedback.good{background:#edf9f5;border:1px solid #c9eade;color:#176c59}.lesson-feedback.bad{background:#fff4f4;border:1px solid #f0d3d3;color:#9a4949}
.step-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}.step-actions .right{display:flex;gap:8px}.formula-panel{margin:22px 0;padding:22px;border-radius:17px;border:1px solid #d7e6ef;background:#f7fbfe;text-align:center;color:#173550}.formula-panel .formula{font:italic 27px Georgia;margin:8px 0}.model-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.model-option{padding:16px;border:1px solid #d6e4ed;border-radius:13px;background:#fff;cursor:pointer}.model-option.selected{border-color:#2bb2c7;background:#f0fbfc}.answer-line{display:flex;gap:9px;align-items:center;margin:18px 0}.answer-line input{width:160px;padding:12px 13px;border:1px solid #cfdfea;background:#fff;border-radius:11px;color:#17324f;outline:none}.answer-line input:focus{border-color:#28abc0;box-shadow:0 0 0 3px rgba(40,171,192,.1)}
.coach-note-v3{padding:14px;border-radius:14px;background:linear-gradient(145deg,#effbfc,#f4f5ff);border:1px solid #d3e7ee}.coach-note-v3 h3{font-size:13px;color:#173853;margin:0 0 6px}.coach-note-v3 p{font-size:10px;color:#6c8094;margin:0}.lesson-side h3{font:600 16px Space Grotesk;color:#17324f;margin:18px 0 8px}.lesson-side ul{padding-left:17px;color:#667b91;font-size:10px}.lesson-side li{margin:7px 0}.lesson-side .v3-progress{margin-top:9px}
.completion-panel{display:none;padding:22px;border:1px solid #c7e7dd;background:linear-gradient(145deg,#eefaf6,#f4fbff);border-radius:17px;margin-top:18px}.completion-panel.show{display:block}.completion-panel h3{font:620 21px Space Grotesk;color:#135447;margin:0 0 6px}.completion-panel p{color:#5d7a73;font-size:12px}.award-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}

/* problems */
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.filter-bar button{border:1px solid #d6e4ed;background:#fff;color:#5c7188;border-radius:999px;padding:8px 12px;font-size:10px;font-weight:700;cursor:pointer}.filter-bar button.active{background:#173d68;color:#fff;border-color:#173d68}.problem-library-card{padding:20px;display:flex;flex-direction:column;min-height:235px}.problem-library-card .problem-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#edf9fc;color:#1094ae;font-size:20px}.problem-library-card h3{font:600 17px Space Grotesk;color:#17324f;margin:15px 0 7px}.problem-library-card p{font-size:11px;color:#718398;flex:1}.problem-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.problem-card-meta span{font-size:8px;padding:5px 7px;border-radius:999px;background:#f5f8fb;border:1px solid #dce6ee;color:#61758b}.problem-library-card .text-link{font-size:10px}
.problem-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}.problem-work-main{padding:26px}.problem-aside{padding:19px;position:sticky;top:92px}.problem-work-main h1{font:650 30px Space Grotesk;color:#14304f;margin:7px 0 12px}.problem-work-main .statement{font-size:13px;color:#60758b;line-height:1.7}.given-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:19px 0}.given-grid div{padding:12px;border:1px solid #dbe6ee;border-radius:12px;background:#f8fbfd}.given-grid small{display:block;color:#8192a4;font-size:8px}.given-grid b{color:#183653;font-size:12px}.hint-stack{display:grid;gap:9px}.hint-item{display:none;padding:12px;border:1px solid #d8e6ef;background:#f7fbfd;border-radius:12px;font-size:10px;color:#5d738a}.hint-item.show{display:block}.answer-box{margin-top:20px;padding:18px;border:1px solid #d9e5ee;border-radius:16px;background:#fbfdff}.answer-box input{width:150px;padding:10px;border:1px solid #cfdde8;border-radius:10px}.result-box{display:none;margin-top:12px;padding:12px;border-radius:11px;font-size:11px}.result-box.show{display:block}.result-box.good{background:#edf9f5;color:#166c58;border:1px solid #cae9df}.result-box.bad{background:#fff4f4;color:#944848;border:1px solid #efd3d3}

/* progress */
.progress-hero{padding:24px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}.progress-score{width:140px;height:140px;border-radius:50%;display:grid;place-items:center;text-align:center;background:conic-gradient(#22bcd1 var(--score,76%),#e5edf3 0);position:relative}.progress-score::after{content:"";position:absolute;inset:10px;background:#fff;border-radius:50%}.progress-score>div{position:relative;z-index:1}.progress-score b{display:block;font:700 30px Space Grotesk;color:#17324f}.progress-score span{font-size:9px;color:#788a9e}.stat-card-v3{padding:20px}.stat-card-v3 b{display:block;font:650 28px Space Grotesk;color:#17324f;margin:8px 0}.stat-card-v3 small{color:#72859a}.mastery-table{padding:20px}.mastery-row-v3{display:grid;grid-template-columns:150px 1fr 42px;gap:13px;align-items:center;padding:10px 0}.mastery-row-v3 span{font-size:11px;color:#415b74}.mastery-row-v3 b{font-size:10px;color:#63788e}

/* lab V3 */
.lab-workspace{display:grid;grid-template-columns:minmax(0,1.25fr) .75fr;gap:20px}.lab-stage-card{padding:20px}.lab-stage-v3{height:390px;border:1px solid #d7e5ee;border-radius:17px;background:linear-gradient(#f8fcff,#eef6fb);position:relative;overflow:hidden}.lab-stage-v3 svg{width:100%;height:100%}.lab-side-v3{padding:20px}.lab-readout{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:14px 0}.lab-readout div{padding:11px;border:1px solid #dbe6ee;border-radius:11px;background:#f8fbfd}.lab-readout small{display:block;font-size:8px;color:#7c8fa3}.lab-readout b{font-size:13px;color:#173650}.range-group{margin:15px 0}.range-group label{display:flex;justify-content:space-between;font-size:10px;color:#576e85;margin-bottom:5px}.range-group input{width:100%;accent-color:#1ca9bf}

/* arena */
.arena-card-v3{padding:22px}.arena-card-v3 h3{font:600 19px Space Grotesk;color:#17324f;margin:13px 0 7px}.arena-card-v3 p{font-size:11px;color:#6c8095}.arena-topline{display:flex;align-items:center;justify-content:space-between}.arena-flag{font-size:26px}.exam-topics{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.exam-topics span{font-size:8px;border:1px solid #d9e5ee;background:#f7fafc;color:#62768c;border-radius:999px;padding:5px 7px}

/* toast */
.v3-toast{position:fixed;right:22px;bottom:22px;background:#173b5f;color:#fff;padding:12px 15px;border-radius:12px;font-size:11px;font-weight:700;box-shadow:0 16px 36px rgba(24,55,88,.22);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:100}.v3-toast.show{opacity:1;transform:none}

@media(max-width:1000px){.lesson-shell,.problem-workspace,.lab-workspace{grid-template-columns:1fr}.lesson-side,.problem-aside{position:static}.v3-grid.cols-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.v3-page-header{align-items:flex-start;flex-direction:column}.v3-grid.cols-3,.v3-grid.cols-2{grid-template-columns:1fr}.lesson-main,.problem-work-main{padding:18px}.lesson-flow-nav{grid-template-columns:repeat(2,1fr)}.choice-grid,.model-grid{grid-template-columns:1fr}.scenario{grid-template-columns:1fr}.collision-arrow{transform:rotate(90deg);text-align:center}.given-grid{grid-template-columns:1fr 1fr}.progress-hero{grid-template-columns:1fr}.progress-score{margin:auto}.mastery-row-v3{grid-template-columns:105px 1fr 35px}.lab-stage-v3{height:300px}}
@media(max-width:980px){
  .topbar{position:relative}
  .topbar .desktop-nav.mobile-open{display:flex!important;position:absolute;top:68px;left:0;right:0;z-index:90;flex-direction:column;gap:0;background:rgba(255,255,255,.98);border:1px solid #d9e5ee;border-radius:16px;padding:10px;box-shadow:0 18px 45px rgba(37,70,104,.15);color:#334f69}
  .topbar .desktop-nav.mobile-open a{padding:11px 12px;border-radius:9px}
  .topbar .desktop-nav.mobile-open a:hover{background:#eef6fb;color:#173b5f}
}
