:root {
  --ink:#241820; --muted:#766974; --paper:#fff; --cream:#fff9f4;
  --pink:#e768a2; --deep-pink:#b63f76; --soft-pink:#f9d7e6;
  --gold:#b89246; --soft-gold:#fff0c7; --purple:#8662b5;
  --soft-purple:#eee4ff; --blue:#dff1ff; --green:#e6f4df;
  --success:#276b4c; --danger:#9d3645; --line:#eadde3;
  --dark:#271923; --shadow:0 20px 55px rgba(63,25,48,.14);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;min-height:100vh;color:var(--ink);
  background:radial-gradient(circle at top left,rgba(231,104,162,.2),transparent 34%),
  linear-gradient(145deg,#fff7fb,#f6efe9);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.58}
[hidden]{display:none!important}

.eyebrow{margin:0;color:var(--deep-pink);font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.primary-btn,.secondary-btn,.text-btn{border:0;border-radius:13px;padding:12px 17px;font-weight:850}
.primary-btn{color:#fff;background:linear-gradient(135deg,var(--pink),var(--deep-pink));box-shadow:0 10px 24px rgba(182,63,118,.24)}
.secondary-btn{color:var(--deep-pink);background:var(--soft-pink)}
.text-btn{color:var(--deep-pink);background:transparent}
.full-btn{width:100%}

input,textarea,select{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fff;outline:none}
textarea{min-height:140px;resize:vertical;line-height:1.65}
input:focus,textarea:focus,select:focus{border-color:var(--pink);box-shadow:0 0 0 4px var(--soft-pink)}

.welcome-screen{display:grid;min-height:100vh;place-items:center;padding:28px}
.welcome-card{width:min(720px,100%);padding:clamp(30px,6vw,60px);border:1px solid rgba(184,146,70,.28);border-radius:30px;background:rgba(255,255,255,.96);box-shadow:var(--shadow);text-align:center}
.lexi-image{display:block;width:145px;max-width:42%;height:auto;margin:0 auto 18px;object-fit:contain}
.lexi-fallback{display:grid;width:86px;height:86px;margin:0 auto 18px;place-items:center;border-radius:25px;color:#fff;background:linear-gradient(145deg,var(--pink),var(--deep-pink));font-family:Georgia,serif;font-size:2.5rem;font-weight:800}
.welcome-card h1{margin:8px 0 12px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.3rem,6vw,4.1rem)}
.welcome-copy{max-width:600px;margin:0 auto 25px;color:var(--muted);font-size:1.05rem;line-height:1.65}
.welcome-card label{display:block;width:min(390px,100%);margin:0 auto 7px;text-align:left;font-weight:800}
.welcome-card input{display:block;width:min(390px,100%);margin:0 auto 16px}
.training-note{max-width:560px;margin:18px auto 0;color:var(--muted);font-size:.78rem;line-height:1.5}

.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:25px 18px;color:#fff;background:linear-gradient(180deg,#261820,#442337);overflow-y:auto}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 20px}
.brand-mark{display:grid;flex:0 0 47px;width:47px;height:47px;place-items:center;border-radius:15px;color:var(--dark);background:linear-gradient(145deg,#f8d7e7,#d8b36a);font-size:1.35rem}
.brand h2{margin:2px 0 0;font-family:Georgia,serif;font-size:1.18rem}
.brand .eyebrow{color:#ef9fc5}
.sidebar-nav{display:grid;gap:5px}
.nav-btn{width:100%;padding:11px 12px;border:0;border-radius:12px;color:rgba(255,255,255,.78);background:transparent;text-align:left;font-weight:750}
.nav-btn:hover,.nav-btn.active{color:#fff;background:rgba(255,255,255,.11)}
.sidebar-footer{display:grid;gap:5px;margin-top:auto;padding-top:20px}
.sidebar-footer .text-btn{color:#efb4d0}

.main-shell{min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px clamp(22px,4vw,48px);border-bottom:1px solid rgba(234,221,227,.85);background:rgba(255,255,255,.78);backdrop-filter:blur(12px)}
.topbar h1{margin:3px 0 0;font-family:Georgia,serif;font-size:clamp(1.55rem,3vw,2.35rem)}
.top-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.top-stats span{padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.82rem}
.mobile-menu-btn{display:none;border:0;background:transparent;font-size:1.6rem}
.main-content{width:min(1180px,100%);margin:0 auto;padding:clamp(24px,4vw,48px)}
.app-footer{padding:20px 30px 35px;color:var(--muted);font-size:.75rem;text-align:center}

.hero-panel,.content-card,.question-card,.lesson-card,.exam-card,.professor-card{
  border:1px solid rgba(184,146,70,.22);border-radius:23px;background:rgba(255,255,255,.96);box-shadow:0 13px 38px rgba(63,25,48,.09)
}
.hero-panel{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;padding:clamp(25px,4vw,42px);color:#fff;background:linear-gradient(140deg,#2d1b26,#5c2a45)}
.hero-panel h2{margin:8px 0 12px;font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.3rem)}
.hero-panel p{max-width:680px;color:rgba(255,255,255,.75);line-height:1.65}
.hero-panel .eyebrow{color:#ef9fc5}
.hero-side{align-self:center;padding:20px;border:1px solid rgba(255,255,255,.15);border-radius:18px;background:rgba(255,255,255,.08)}
.hero-side strong{display:block;margin-bottom:8px}
.hero-actions,.inline-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}

.dashboard-grid,.mode-grid,.topic-grid,.trial-grid,.lab-grid,.analytics-grid,.achievement-grid{display:grid;gap:15px}
.dashboard-grid{grid-template-columns:repeat(4,1fr);margin-top:22px}
.mode-grid{grid-template-columns:repeat(3,1fr);margin-top:26px}
.topic-grid{grid-template-columns:repeat(4,1fr)}
.trial-grid,.lab-grid{grid-template-columns:repeat(3,1fr)}
.analytics-grid{grid-template-columns:repeat(3,1fr)}
.achievement-grid{grid-template-columns:repeat(4,1fr)}

.stat-card,.mode-card,.topic-card,.trial-card,.lab-card,.achievement-card,.metric-card{padding:19px;border:1px solid var(--line);border-radius:18px;background:#fff}
.stat-card .big-number{display:block;margin:8px 0 3px;font-family:Georgia,serif;font-size:2rem;font-weight:800}
.stat-card p,.mode-card p,.topic-card p,.trial-card p,.lab-card p,.achievement-card p,.metric-card p{margin:6px 0 0;color:var(--muted);font-size:.86rem;line-height:1.5}
.mode-card,.topic-card,.trial-card,.lab-card{display:flex;flex-direction:column;min-height:210px}
.mode-icon,.topic-icon,.lab-icon{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;background:var(--soft-pink);font-size:1.35rem}
.mode-card h3,.topic-card h3,.trial-card h3,.lab-card h3{margin:13px 0 4px;font-family:Georgia,serif;font-size:1.32rem}
.mode-card button,.topic-card button,.trial-card button,.lab-card button{margin-top:auto;align-self:flex-start}

.section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:34px 0 16px}
.section-heading h2,.section-heading h3{margin:4px 0 0;font-family:Georgia,serif}
.section-heading h2{font-size:2rem}
.content-card,.lesson-card,.exam-card,.professor-card{padding:clamp(22px,4vw,38px)}
.lesson-card h2,.exam-card h2,.professor-card h2,.question-card h2{margin:7px 0 12px;font-family:Georgia,serif;font-size:clamp(1.8rem,4vw,2.7rem)}
.rule-chips{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0}
.rule-chip,.tag{padding:6px 9px;border-radius:999px;color:var(--deep-pink);background:var(--soft-pink);font-size:.76rem;font-weight:850}
.lesson-copy,.question-fact,.exam-facts{line-height:1.72}
.lesson-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:20px}
.lesson-box{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--cream)}
.lesson-box h3{margin-top:0;font-family:Georgia,serif}
.lesson-box ol,.lesson-box ul{padding-left:22px;line-height:1.65}
.language-bank{display:grid;gap:9px;margin-top:14px}
.language-line{padding:12px;border-left:4px solid var(--gold);border-radius:10px;background:#fff;line-height:1.55}

.setup-grid,.form-grid,.professor-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-group{margin-bottom:16px}
.form-group label{display:block;margin-bottom:6px;font-weight:800}
.checkbox-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.checkbox-item{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--cream)}
.checkbox-item input{width:auto;margin:0}

.question-card{max-width:900px;margin:0 auto;padding:clamp(24px,4vw,42px)}
.question-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:15px}
.progress-track{height:9px;margin:14px 0 22px;overflow:hidden;border-radius:999px;background:var(--line)}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--pink),var(--gold))}
.question-fact{padding:17px;border-left:5px solid var(--gold);border-radius:13px;background:var(--cream)}
.option-list{display:grid;gap:10px;margin-top:18px}
.option-btn{width:100%;padding:14px 15px;border:1px solid var(--line);border-radius:14px;color:var(--ink);background:#fff;text-align:left}
.option-btn:hover{border-color:var(--pink);transform:translateY(-1px)}
.option-btn.selected{border-color:var(--pink);background:var(--soft-pink)}
.option-btn.correct{border-color:var(--success);background:#e8f5ed}
.option-btn.incorrect{border-color:var(--danger);background:#fbe9ec}
.feedback-box{margin-top:18px;padding:17px;border-radius:14px;line-height:1.62}
.feedback-box.good{color:#20583f;background:#e8f5ed}
.feedback-box.bad{color:#74313c;background:#fbe9ec}
.rule-reference{display:inline-block;margin-top:9px;font-weight:850}
.timer-shell{display:flex;align-items:center;gap:9px}
.timer{display:grid;width:48px;height:48px;place-items:center;border:5px solid var(--soft-pink);border-top-color:var(--deep-pink);border-radius:50%;font-weight:900}

.session-results{max-width:850px;margin:0 auto;padding:34px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow);text-align:center}
.score-ring{display:grid;width:145px;height:145px;margin:20px auto;place-items:center;border:12px solid var(--soft-pink);border-top-color:var(--pink);border-right-color:var(--gold);border-radius:50%;font-family:Georgia,serif;font-size:1.8rem;font-weight:900}
.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:22px 0}
.result-grid div{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--cream)}
.result-grid span{display:block;color:var(--muted);font-size:.76rem}

.rulebook-search{margin-bottom:18px}
.rulebook-list,.custom-list,.bar-list{display:grid;gap:13px}
.rulebook-entry,.custom-item{padding:19px;border:1px solid var(--line);border-radius:17px;background:#fff}
.rulebook-entry summary{cursor:pointer;font-family:Georgia,serif;font-size:1.25rem;font-weight:800}
.rulebook-body{padding-top:14px;line-height:1.65}

.lab-workspace{max-width:900px;margin:20px auto 0;padding:25px;border:1px solid var(--line);border-radius:20px;background:#fff}
.range-row{display:grid;grid-template-columns:170px 1fr 45px;align-items:center;gap:10px;margin:15px 0}
input[type=range]{padding:0;box-shadow:none}
.sequence-list{display:grid;gap:9px;margin-top:15px}
.sequence-item{display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--cream)}
.sequence-number{display:grid;flex:0 0 29px;width:29px;height:29px;place-items:center;border-radius:50%;color:#fff;background:var(--dark);font-weight:900}
.sequence-item button{margin-left:auto;border:0;border-radius:9px;padding:7px 9px;color:var(--deep-pink);background:var(--soft-pink);font-weight:850}

.exam-facts{padding:18px;border-left:5px solid var(--purple);border-radius:14px;background:var(--soft-purple)}
.exam-answer{min-height:340px;margin-top:18px}
.rubric-list{display:grid;gap:9px;padding:0;list-style:none}
.rubric-item{display:flex;gap:10px;padding:11px 12px;border-radius:11px;line-height:1.5}
.rubric-item.pass{color:#20583f;background:#e8f5ed}
.rubric-item.fail{color:#74313c;background:#fbe9ec}
.model-outline{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--cream)}
.model-outline ol{line-height:1.65}

.custom-item{padding:13px;background:var(--cream)}
.bar-row{display:grid;grid-template-columns:minmax(135px,.7fr) 2fr 55px;align-items:center;gap:10px}
.bar-track{height:10px;overflow:hidden;border-radius:999px;background:var(--line)}
.bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--pink),var(--gold))}
.data-table{width:100%;border-collapse:collapse}
.data-table th,.data-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;font-size:.83rem}
.data-table th{color:var(--muted)}
.achievement-card{text-align:center}
.achievement-card.locked{opacity:.45;filter:grayscale(1)}
.achievement-icon{display:grid;width:48px;height:48px;margin:0 auto 8px;place-items:center;border-radius:15px;background:var(--soft-pink);font-size:1.4rem}
.empty-state{padding:30px;border:1px dashed var(--line);border-radius:17px;color:var(--muted);text-align:center}
.inline-message{margin-top:13px;padding:12px;border-radius:11px}
.inline-message.good{color:#20583f;background:#e8f5ed}
.inline-message.bad{color:#74313c;background:#fbe9ec}

@media(max-width:1050px){
  .app-shell{grid-template-columns:235px 1fr}
  .dashboard-grid,.topic-grid,.achievement-grid{grid-template-columns:repeat(2,1fr)}
  .mode-grid,.trial-grid,.lab-grid,.analytics-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:820px){
  .app-shell{display:block}
  .sidebar{position:fixed;z-index:30;left:-290px;width:280px;transition:left .2s ease}
  .sidebar.open{left:0}
  .mobile-menu-btn{display:block}
  .topbar{align-items:flex-start}
  .top-stats{display:none}
  .hero-panel,.lesson-grid,.professor-columns{grid-template-columns:1fr}
}
@media(max-width:620px){
  .main-content{padding:20px 14px 35px}
  .topbar{padding:18px 15px}
  .dashboard-grid,.mode-grid,.topic-grid,.trial-grid,.lab-grid,.analytics-grid,.achievement-grid,.setup-grid,.form-grid,.result-grid,.checkbox-grid{grid-template-columns:1fr}
  .section-heading{align-items:flex-start;flex-direction:column}
  .range-row,.bar-row{grid-template-columns:1fr}
  .data-table{display:block;overflow-x:auto}
  .lexi-image{width:115px}
}
