:root{--bg:#07111f;--panel:#0e1b2d;--panel2:#12243a;--line:#233750;--text:#eaf4ff;--muted:#91a6bf;--cyan:#35d5ff;--green:#65e6ad;--amber:#ffc45c;--red:#ff6b75;--shadow:0 18px 50px rgba(0,0,0,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 10% 0%,#123453 0,transparent 32%),linear-gradient(145deg,#06101d,#091728 55%,#06111e);color:var(--text);font-family:Inter,system-ui,sans-serif;min-height:100vh}button,input{font:inherit}.app-shell{display:grid;grid-template-columns:255px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;background:rgba(6,14,26,.94);border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 25px}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--cyan),var(--green));color:#04131d;font-size:22px;font-weight:900}.brand h1{font-size:21px;margin:0}.eyebrow{font-size:10px;letter-spacing:.14em;color:var(--cyan);font-weight:800}.student-mini{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid var(--line);background:var(--panel);border-radius:16px;margin-bottom:20px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#34d5ff,#6debb2);color:#062033;font-weight:900}.student-mini strong,.student-mini small{display:block}.student-mini small{color:var(--muted);font-size:11px;margin-top:3px}.nav{display:grid;gap:6px}.nav-item{border:1px solid transparent;background:transparent;color:var(--muted);padding:11px 13px;border-radius:11px;text-align:left;cursor:pointer;display:flex;gap:11px;align-items:center}.nav-item span{width:18px;text-align:center}.nav-item:hover,.nav-item.active{background:#10243a;border-color:#25415f;color:var(--text)}.nav-item.active{box-shadow:inset 3px 0 var(--cyan)}.sidebar-bottom{margin-top:auto}.progress-mini{padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--panel);margin-bottom:10px}.progress-mini>div:first-child{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:8px}.progress-mini strong{color:var(--text)}.track{height:6px;background:#1b2d44;border-radius:10px;overflow:hidden}.track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--green));border-radius:inherit}.main{min-width:0}.topbar{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;background:rgba(7,17,31,.82);backdrop-filter:blur(16px);z-index:20}.crumb{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--muted)}.crumb b{color:#415875}.crumb strong{color:var(--text)}.top-actions{display:flex;gap:9px;align-items:center}.search{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:0 11px;width:min(330px,35vw)}.search input{border:0;outline:0;background:transparent;color:var(--text);padding:10px 0;width:100%;font-size:12px}.icon-btn,.mobile-menu{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:9px 11px;cursor:pointer}.mobile-menu{display:none}.view{max-width:1420px;margin:auto;padding:30px}.toast{position:fixed;right:25px;bottom:25px;z-index:100;background:#12283e;border:1px solid #31516f;border-radius:12px;padding:12px 16px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.hero{display:grid;grid-template-columns:1fr auto;gap:24px;padding:27px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,rgba(18,44,68,.96),rgba(12,28,47,.94));box-shadow:var(--shadow)}h2,h3,h4,p{margin-top:0}.hero h2{font-size:clamp(28px,4vw,46px);margin:5px 0 12px;letter-spacing:-.035em}.hero p{color:var(--muted);line-height:1.65;max-width:720px}.hero-actions{display:flex;gap:10px;margin-top:18px}.btn{border:0;border-radius:10px;padding:11px 15px;font-weight:800;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--cyan),var(--green));color:#03121d}.btn.secondary{background:#162b42;border:1px solid var(--line);color:var(--text)}.ring{width:126px;height:126px;border-radius:50%;background:conic-gradient(var(--cyan) var(--p),#1a3048 0);display:grid;place-items:center;position:relative}.ring:after{content:"";position:absolute;inset:11px;border-radius:50%;background:#0b1a2b}.ring strong{position:relative;z-index:1;font-size:24px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.stat,.card{background:rgba(14,27,45,.9);border:1px solid var(--line);border-radius:17px;padding:17px}.stat small,.muted{color:var(--muted)}.stat strong{display:block;font-size:28px;margin:7px 0}.stat.accent{background:linear-gradient(145deg,#103c46,#102638)}.grid2{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;margin-bottom:18px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-head h3{margin:0;font-size:17px}.section-head span{font-size:11px;color:var(--muted)}.module{display:grid;grid-template-columns:45px 1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);background:#0a1727;border-radius:13px;margin:9px 0}.module-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:12px;background:#112b42;font-size:20px}.module h4{margin:0 0 5px;font-size:14px}.module small{color:var(--muted)}.meter{width:105px;height:7px;background:#1b2d44;border-radius:9px;overflow:hidden}.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--green))}.check{display:flex;gap:10px;padding:11px;border:1px solid var(--line);border-radius:12px;margin:8px 0;align-items:flex-start;color:#dbe8f5;font-size:13px;line-height:1.45}.check input{accent-color:var(--cyan);margin-top:2px}.skill{display:grid;grid-template-columns:145px 1fr 42px;gap:10px;align-items:center;margin:14px 0;font-size:12px}.skill .meter{width:auto}.pill{font-size:10px;padding:5px 8px;border-radius:999px;border:1px solid var(--line);color:var(--cyan);white-space:nowrap}.pill.green{color:var(--green)}.pill.amber{color:var(--amber)}.quiz-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:#0a1727;margin:9px 0}.quiz-card p{font-weight:700;font-size:13px;line-height:1.5}.answers{display:grid;gap:7px}.answer{border:1px solid var(--line);background:#0f2033;color:var(--text);border-radius:9px;padding:9px;text-align:left;cursor:pointer;font-size:12px}.answer.correct{border-color:var(--green);background:rgba(101,230,173,.1)}.answer.wrong{border-color:var(--red);background:rgba(255,107,117,.1)}.answer:disabled{cursor:default}.catalog{display:grid;gap:10px}.catalog-item{display:flex;justify-content:space-between;gap:12px;padding:15px;border:1px solid var(--line);border-radius:13px;background:#0a1727;cursor:pointer}.catalog-item:hover{border-color:#3a5c7d}.catalog-item strong{font-size:13px}.catalog-item small{display:block;color:var(--muted);line-height:1.5;margin-top:5px}.safety-gate{padding:18px;border-radius:16px;border:1px solid #6a4e1e;background:rgba(78,55,17,.22);margin-bottom:14px}.safety-gate h3{margin:0 0 6px}.rule{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:13px;background:#0a1727;margin:8px 0}.rule-num{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#17314b;color:var(--cyan);font-weight:900}.rule p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.lab-card{border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#0d1d30,#091523);padding:18px}.lab-card h3{margin:0 0 7px}.lab-card p{color:var(--muted);font-size:12px;line-height:1.55}.terminal{font-family:"JetBrains Mono",monospace;background:#06101b;border:1px solid #20364d;border-radius:12px;padding:14px;color:#9fecc7;font-size:12px;line-height:1.7;margin:12px 0}.calc{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.field label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.field input,.field select{width:100%;background:#0a1727;border:1px solid var(--line);color:var(--text);border-radius:9px;padding:10px;outline:none}.result{margin-top:12px;padding:14px;border-radius:12px;background:#0c2430;border:1px solid #205b5a}.term{padding:13px;border-bottom:1px solid var(--line)}.term:last-child{border:0}.term strong{color:var(--cyan)}.term p{color:var(--muted);font-size:12px;line-height:1.5;margin:4px 0 0}.empty{text-align:center;padding:50px 20px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:18px;background:#0b1a2b;color:var(--text);width:min(700px,92vw);box-shadow:0 30px 100px #000}dialog::backdrop{background:rgba(0,0,0,.7)}.modal{padding:24px}.modal h2{margin:0 0 10px}.modal p,.modal li{color:var(--muted);line-height:1.65}.modal-close{float:right}.search-results{position:absolute;top:60px;right:100px;width:min(430px,60vw);background:#0b1a2b;border:1px solid var(--line);border-radius:14px;padding:8px;z-index:50;box-shadow:var(--shadow)}.search-results button{display:block;width:100%;text-align:left;background:transparent;border:0;color:var(--text);padding:10px;border-radius:8px;cursor:pointer}.search-results button:hover{background:#142b43}@media(max-width:1050px){.app-shell{grid-template-columns:220px 1fr}.stats{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.grid3{grid-template-columns:1fr 1fr}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;z-index:40;left:-280px;transition:.25s;width:255px}.sidebar.open{left:0}.main{width:100%}.topbar{padding:0 16px}.mobile-menu{display:block}.crumb span,.crumb b{display:none}.search{width:160px}.view{padding:18px}.hero{grid-template-columns:1fr}.ring{display:none}.stats,.grid3,.lab-grid{grid-template-columns:1fr}.module{grid-template-columns:42px 1fr}.module .module-progress{grid-column:2}.calc{grid-template-columns:1fr}.top-actions{gap:5px}.search-results{right:10px;width:calc(100vw - 30px)}}
/* ===== 2026 learning UI expansion ===== */
.chat-log{display:grid;gap:8px;max-height:360px;overflow:auto;padding:10px;background:#081421;border:1px solid var(--line);border-radius:12px;margin:14px 0}.chat{padding:10px 12px;border-radius:11px;font-size:12px;line-height:1.55}.chat.user{background:#15324b;margin-left:18%}.chat.tutor{background:#102a27;margin-right:10%}.chat-input{display:grid;grid-template-columns:1fr auto;gap:8px}.chat-input input{background:#0a1727;border:1px solid var(--line);color:var(--text);border-radius:9px;padding:11px;outline:none}.animation-card{display:flex;gap:12px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,#10263b,#0a1a29);margin:14px 0}.animation-card small{display:block;color:var(--muted);margin-top:4px}.pulse-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#12374b;animation:voltPulse 1.8s infinite}.upload-box{display:grid;gap:7px;place-items:center;text-align:center;padding:32px 18px;margin-top:18px;border:1px dashed #3b607e;border-radius:16px;background:#0a1727;cursor:pointer}.upload-box input{display:none}.upload-box span{font-weight:800;color:var(--cyan)}.upload-box small{color:var(--muted)}.meter-sim{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.meter-sim button{border:1px solid var(--line);background:#102239;color:var(--text);border-radius:10px;padding:12px 18px;cursor:pointer}.meter-sim button.selected{border-color:var(--cyan);box-shadow:0 0 0 2px rgba(53,213,255,.15)}.diagram-bridge{font-family:"JetBrains Mono",monospace;text-align:center;padding:25px;border:1px solid var(--line);border-radius:15px;background:#06101b;margin:16px 0;color:#a7eecb;line-height:2}.diagram-bridge .arrow{font-size:25px;color:var(--cyan)}@keyframes voltPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(53,213,255,.25)}50%{transform:scale(1.08);box-shadow:0 0 0 12px rgba(53,213,255,0)}}
@media(max-width:760px){.chat-input{grid-template-columns:1fr}.chat.user{margin-left:5%}.chat.tutor{margin-right:5%}}

/* Responsive layout hardening */
html,body{width:100%;max-width:100%;overflow-x:hidden}
.app-shell,.main,.view,.topbar,.top-actions,.hero,.grid2,.grid3,.lab-grid,.stats,.module,.card{min-width:0}
.view{width:100%}
.hero>*{min-width:0}
.module{overflow:hidden}
.module>div:nth-child(2){min-width:0}
.module small,.module h4,.catalog-item,.term,.check,.rule{overflow-wrap:anywhere}
.catalog-item,.term,.check,.rule{min-width:0}
@media (max-width:1100px){
  .app-shell{grid-template-columns:210px minmax(0,1fr)}
  .sidebar{padding:18px 12px}
  .view{padding:22px}
  .topbar{padding:0 20px}
  .hero{padding:22px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .app-shell{grid-template-columns:190px minmax(0,1fr)}
  .brand{padding-bottom:18px}
  .student-mini{padding:10px}
  .nav-item{padding:9px 10px}
  .view{padding:18px}
  .topbar{padding:0 14px}
  .search{width:min(260px,32vw)}
  .grid3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  html,body{overflow-x:hidden}
  .app-shell{display:block;min-height:100vh}
  .sidebar{width:min(280px,86vw);height:100dvh;max-height:100dvh;overflow-y:auto;overflow-x:hidden}
  .main{min-height:100vh;width:100%;overflow-x:hidden}
  .topbar{height:auto;min-height:64px;gap:8px;flex-wrap:nowrap;padding:10px 12px}
  .crumb{min-width:0;flex:1}
  .crumb strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .top-actions{min-width:0;max-width:70%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
  .search{flex:0 1 180px;min-width:120px;width:180px}
  .view{padding:14px;width:100%;max-width:none}
  .hero{grid-template-columns:minmax(0,1fr);padding:18px;border-radius:16px}
  .hero h2{font-size:clamp(25px,8vw,38px)}
  .hero-actions{flex-wrap:wrap}
  .stats,.grid2,.grid3,.lab-grid,.calc{grid-template-columns:minmax(0,1fr)}
  .module{grid-template-columns:42px minmax(0,1fr);align-items:start}
  .module .module-progress{grid-column:2;min-width:0}
  .rule{grid-template-columns:30px minmax(0,1fr)}
  .rule .pill{grid-column:2;justify-self:start}
  .catalog-item{flex-wrap:wrap}
  .skill{grid-template-columns:minmax(0,1fr) 42px}
  .skill .meter{grid-column:1 / -1}
  .chat.user,.chat.tutor{margin-left:0;margin-right:0}
  dialog{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px);overflow:auto}
}
@media (max-width:430px){
  .top-actions .search{display:none}
  .top-actions{max-width:none}
  .topbar{justify-content:flex-start}
  .icon-btn{padding:8px 9px}
  .view{padding:10px}
  .stat,.card,.lab-card{padding:14px}
  .module{padding:11px}
  .hero{padding:15px}
  .btn{padding:10px 12px}
}
