:root{color-scheme:dark;--bg:#061015;--panel:#0d1c23;--panel2:#10242c;--line:#203941;--text:#f2f7f4;--muted:#91a7ae;--green:#52e09c;--green2:#2fca82;--danger:#ff8d8d;--warn:#ffd16e;--safe-bottom:max(16px,env(safe-area-inset-bottom));--safe-top:max(12px,env(safe-area-inset-top));font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% -20%,#11352e 0,transparent 38%),var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.pupil-shell{min-height:100dvh;padding:var(--safe-top) 16px calc(92px + var(--safe-bottom));max-width:820px;margin:auto}.topbar{position:sticky;top:0;z-index:12;display:flex;align-items:center;justify-content:space-between;padding:10px 0 15px;background:linear-gradient(var(--bg) 68%,transparent)}.brand{display:flex;align-items:center;gap:11px}.brand img{width:42px;height:42px;border-radius:14px;background:var(--green);padding:8px}.brand strong{display:block;font-size:1.1rem}.brand small{display:block;margin-top:2px;color:var(--muted)}.avatar{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:15px;background:var(--panel2);color:var(--green);font-weight:900}.page{display:grid;gap:14px}.eyebrow{margin:0;color:var(--green);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.13em}.page-title{margin:4px 0 0;font-size:1.8rem}.card{border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,rgba(17,39,47,.98),rgba(9,25,31,.98));box-shadow:0 16px 45px rgba(0,0,0,.18)}.card-pad{padding:17px}.hero{padding:22px;background:radial-gradient(circle at 100% 0,rgba(82,224,156,.12),transparent 35%),linear-gradient(145deg,#14342f,#0c211e)}.hero-label{color:var(--muted);font-size:.78rem}.hero h2{margin:11px 0 5px;font-size:2rem}.hero p{margin:0;color:var(--muted)}.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:20px}.mini-stat{padding:12px;border:1px solid rgba(132,206,174,.17);border-radius:15px;background:rgba(4,17,19,.34)}.mini-stat span,.mini-stat strong{display:block}.mini-stat span{color:var(--muted);font-size:.68rem}.mini-stat strong{margin-top:4px;font-size:.95rem}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.action{min-height:58px;border:1px solid var(--line);border-radius:17px;background:var(--panel);color:var(--text);font-weight:800}.action.primary{border-color:transparent;background:linear-gradient(135deg,#5ce6a6,#2bc87e);color:#04140d}.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px}.section-head h2{margin:0;font-size:1.12rem}.section-head p{margin:4px 0 0;color:var(--muted);font-size:.78rem}.list{display:grid;gap:9px}.lesson-card,.message-card,.shared-card,.request-card{padding:14px;border:1px solid var(--line);border-radius:17px;background:var(--panel)}.lesson-card{display:grid;grid-template-columns:70px 1fr auto;gap:11px;align-items:center}.lesson-time strong,.lesson-time small{display:block}.lesson-time strong{font-size:1.18rem}.lesson-time small,.lesson-copy small{color:var(--muted)}.lesson-copy strong,.lesson-copy small{display:block}.lesson-copy small{margin-top:4px;line-height:1.4}.pill{padding:7px 9px;border-radius:999px;background:rgba(82,224,156,.11);color:var(--green);font-size:.68rem;font-weight:900}.pill.warn{background:rgba(255,209,110,.13);color:var(--warn)}.empty{padding:24px;text-align:center;color:var(--muted)}.progress-summary{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}.progress-score{padding:20px}.progress-score strong{display:block;font-size:2.6rem;color:var(--green)}.progress-score span{color:var(--muted)}.progress-legend{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-top:13px}.progress-legend span{padding:8px 3px;border:1px solid var(--line);border-radius:10px;text-align:center;font-size:.64rem;color:var(--muted)}.progress-legend b{display:block;color:var(--green);font-size:.9rem}.skill-groups{display:grid;gap:10px}.skill-group{border:1px solid var(--line);border-radius:18px;background:var(--panel);overflow:hidden}.skill-group summary{display:flex;justify-content:space-between;align-items:center;padding:15px;cursor:pointer;list-style:none}.skill-group summary::-webkit-details-marker{display:none}.skill-group summary strong{font-size:.9rem}.skill-group summary span{color:var(--green);font-weight:900}.skill-list{display:grid;gap:1px;border-top:1px solid var(--line)}.skill-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 15px;background:rgba(255,255,255,.012)}.skill-row strong{font-size:.82rem}.level{display:grid;place-items:center;width:38px;height:34px;border:1px solid rgba(82,224,156,.4);border-radius:10px;color:var(--green);font-weight:900}.message-card{max-width:85%}.message-card.instructor{justify-self:start}.message-card.pupil{justify-self:end;border-color:rgba(82,224,156,.35);background:rgba(40,140,95,.12)}.message-card p{margin:0;line-height:1.45}.message-card small{display:block;margin-top:6px;color:var(--muted)}.message-list{display:grid;gap:8px}.composer{display:grid;grid-template-columns:1fr auto;gap:8px}.composer textarea{min-height:52px;resize:none}.field{display:grid;gap:7px}.field label{color:var(--muted);font-size:.75rem;font-weight:800}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:13px;background:#09171c;color:var(--text);padding:12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.full{grid-column:1/-1}.bank-grid{display:grid;gap:7px;margin:13px 0}.bank-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px}.bank-row span,.bank-row strong{display:block}.bank-row span{color:var(--muted);font-size:.68rem}.copy{border:0;background:transparent;color:var(--green);font-weight:900}.shared-card strong,.shared-card p,.shared-card small{display:block}.shared-card p{margin:8px 0;line-height:1.5}.shared-card small{color:var(--muted)}.bottom-nav{position:fixed;left:50%;bottom:calc(8px + var(--safe-bottom));z-index:30;transform:translateX(-50%);display:grid;grid-template-columns:repeat(5,1fr);gap:3px;width:min(calc(100% - 20px),790px);padding:7px;border:1px solid var(--line);border-radius:23px;background:rgba(9,25,31,.96);box-shadow:0 18px 40px rgba(0,0,0,.45);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.nav-btn{display:grid;place-items:center;gap:4px;min-height:58px;border:0;border-radius:17px;background:transparent;color:var(--muted)}.nav-btn.active{background:rgba(82,224,156,.11);color:var(--green)}.nav-btn b{font-size:1.1rem}.nav-btn small{font-size:.68rem;font-weight:800}.pair-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.pair-card{width:min(100%,440px);padding:24px;border:1px solid var(--line);border-radius:26px;background:var(--panel);text-align:center}.pair-logo{width:68px;height:68px;border-radius:22px;background:var(--green);padding:14px}.pair-card h1{margin:18px 0 7px}.pair-card p{margin:0 0 20px;color:var(--muted);line-height:1.5}.pair-code{font-size:1.25rem;text-transform:uppercase;letter-spacing:.08em;text-align:center}.primary-button,.secondary-button{min-height:48px;padding:0 17px;border-radius:14px;font-weight:900}.primary-button{border:0;background:linear-gradient(135deg,#5ce6a6,#2bc87e);color:#04140d}.secondary-button{border:1px solid var(--line);background:var(--panel2);color:var(--text)}.pair-card .primary-button{width:100%;margin-top:10px}.pair-error{min-height:22px;margin-top:10px;color:var(--danger);font-size:.8rem}.reader{display:grid;gap:10px}.reader-head{display:flex;align-items:center;gap:9px}.reader-head button{flex:0 0 auto}.reader-controls{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}.reader-frame{width:100%;height:70dvh;border:1px solid var(--line);border-radius:18px;background:#fff}.reader-search-results{display:grid;gap:7px;max-height:240px;overflow:auto}.reader-result{padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-align:left}.reader-result strong,.reader-result small{display:block}.reader-result small{margin-top:4px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast{position:fixed;left:50%;bottom:calc(100px + var(--safe-bottom));z-index:50;transform:translate(-50%,20px);padding:11px 15px;border-radius:13px;background:#eafbf2;color:#092016;font-weight:800;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:700px){.pupil-shell{padding-left:24px;padding-right:24px}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.dashboard-grid>.hero{grid-row:span 2}.skill-groups{grid-template-columns:1fr 1fr}.bottom-nav{width:600px}}
@media(max-width:500px){.pupil-shell{padding-left:12px;padding-right:12px}.topbar{padding-top:7px}.hero{padding:18px}.hero h2{font-size:1.7rem}.hero-meta{grid-template-columns:repeat(3,1fr)}.mini-stat{padding:10px 8px}.quick-actions{grid-template-columns:1fr 1fr}.lesson-card{grid-template-columns:58px 1fr}.lesson-card>.pill{grid-column:2;justify-self:start}.progress-summary{grid-template-columns:1fr}.progress-legend span{font-size:.55rem}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.reader-frame{height:63dvh}}

/* Real-device acceptance polish — v0.8.1 */
:root{--mobile-browser-bottom:0px}
.pupil-shell{padding-bottom:calc(104px + var(--safe-bottom) + var(--mobile-browser-bottom))}
.bottom-nav{bottom:calc(8px + var(--safe-bottom) + var(--mobile-browser-bottom));will-change:transform;transform:translate3d(-50%,0,0)}
.topbar-actions{display:flex;align-items:center;gap:9px}
.connection-pill{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:rgba(5,18,23,.8);color:var(--muted);font-size:.66rem;font-weight:900}
.connection-pill i{width:7px;height:7px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 3px rgba(255,209,110,.08)}
.connection-pill.online{color:var(--green);border-color:rgba(82,224,156,.25)}
.connection-pill.online i{background:var(--green);box-shadow:0 0 0 3px rgba(82,224,156,.09)}
.connection-pill.offline{color:var(--warn)}
.connection-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid rgba(255,209,110,.25);border-radius:16px;background:rgba(255,209,110,.07)}
.connection-banner.critical{border-color:rgba(255,141,141,.25);background:rgba(255,141,141,.06)}
.connection-banner strong,.connection-banner p{display:block}
.connection-banner p{margin:4px 0 0;color:var(--muted);font-size:.75rem;line-height:1.4}
.connection-banner button{flex:0 0 auto}
.offline-form-note{margin:10px 0 0;color:var(--warn);font-size:.75rem}
button:disabled,input:disabled,textarea:disabled,select:disabled{cursor:not-allowed;opacity:.5}
.empty strong,.empty span{display:block}
.empty strong{color:var(--text);font-size:.92rem}
.empty span{margin-top:5px;color:var(--muted);font-size:.76rem}
.compact-empty p{margin:7px 0 0;color:var(--muted);line-height:1.45}
.muted-copy{color:var(--muted);line-height:1.5}
.qr-ready{margin:0 0 12px;padding:9px 11px;border:1px solid rgba(82,224,156,.28);border-radius:12px;background:rgba(82,224,156,.08);color:var(--green);font-size:.75rem;font-weight:900}
.disconnect-secondary{width:100%;margin-top:9px}
.install-card{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start}
.install-card h2{margin:3px 0 6px;font-size:1rem}
.install-card p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}
.install-card small{display:block;margin-top:8px;color:var(--muted);font-size:.68rem;line-height:1.4}
.install-card button{margin-top:12px}
.install-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(82,224,156,.28);border-radius:13px;background:rgba(82,224,156,.09);color:var(--green);font-size:1.3rem;font-weight:900}
.install-card.installed .install-icon{background:rgba(82,224,156,.14)}
@media(max-width:500px){.connection-pill{padding:7px}.connection-pill{font-size:0}.connection-pill i{margin:0}.connection-banner{align-items:flex-start}.connection-banner button{min-height:40px}.topbar-actions{gap:7px}}

/* InstructorLane v0.8.3 — real-device stability polish */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: auto;
  background: var(--bg);
}
body {
  min-width: 320px;
  overflow-x: hidden;
  font-size: 16px;
}
button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
.ui-icon { width: 22px; height: 22px; display: block; }
.pupil-shell {
  width: 100%;
  max-width: 880px;
  padding-inline: clamp(14px, 3vw, 28px);
  padding-top: var(--safe-top);
}
.topbar {
  min-height: 72px;
  padding: 10px 2px 12px;
  background: rgba(6,16,21,.96);
  border-bottom: 1px solid rgba(82,224,156,.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.brand { min-width: 0; gap: 12px; }
.brand img { flex: 0 0 auto; width: 46px; height: 46px; padding: 8px; border-radius: 15px; box-shadow: 0 10px 28px rgba(34,195,121,.18); }
.brand span { min-width: 0; }
.brand strong { font-size: 1.05rem; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brand small { font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar-actions { flex: 0 0 auto; }
.avatar { width: 44px; height: 44px; border-radius: 14px; }
.page { gap: 18px; padding-top: 16px; }
.page > div:first-child { min-width: 0; }
.page-title { margin-top: 5px; font-size: clamp(1.65rem, 7vw, 2.1rem); line-height: 1.08; letter-spacing: -.025em; }
.card { min-width: 0; overflow: hidden; border-color: rgba(118,158,168,.22); border-radius: 22px; box-shadow: 0 12px 35px rgba(0,0,0,.16); }
.card-pad { padding: clamp(18px, 4.5vw, 24px); }
.hero { padding: clamp(22px, 5vw, 30px); border-color: rgba(82,224,156,.23); }
.hero h2 { font-size: clamp(1.75rem, 8vw, 2.4rem); line-height: 1.08; letter-spacing: -.035em; overflow-wrap: anywhere; }
.hero p { line-height: 1.48; }
.hero-meta { gap: 10px; }
.mini-stat { min-width: 0; padding: 13px 11px; border-radius: 15px; }
.mini-stat span { font-size: .72rem; }
.mini-stat strong { font-size: .94rem; line-height: 1.2; overflow-wrap: anywhere; }
.section-head { align-items: flex-start; }
.section-head h2 { font-size: 1.2rem; line-height: 1.2; }
.section-head p { font-size: .8rem; line-height: 1.45; }
.quick-actions { gap: 11px; }
.action { min-width: 0; min-height: 58px; padding: 12px 14px; border-radius: 16px; font-size: .92rem; line-height: 1.25; }
.form-grid { gap: 15px; margin-top: 17px; }
.field { min-width: 0; gap: 8px; }
.field label { font-size: .78rem; color: #b4c3c7; }
input, select, textarea {
  min-width: 0;
  min-height: 52px;
  padding: 13px 14px;
  border-radius: 14px;
  border-color: rgba(118,158,168,.28);
  background: #08171d;
  font-size: 16px;
  line-height: 1.2;
  color: var(--text);
  -webkit-appearance: none;
  appearance: none;
}
input[type="date"], input[type="time"] { color-scheme: dark; }
input[type="date"]::-webkit-date-and-time-value,
input[type="time"]::-webkit-date-and-time-value { text-align: left; min-height: 1.2em; }
.primary-button, .secondary-button { min-height: 52px; border-radius: 15px; font-size: .92rem; }
.lesson-card { min-width: 0; border-radius: 17px; }
.lesson-copy { min-width: 0; }
.lesson-copy strong { line-height: 1.25; }
.lesson-copy small { overflow-wrap: anywhere; }
.message-card { max-width: min(88%, 560px); }
.composer { position: sticky; bottom: calc(92px + var(--safe-bottom) + var(--mobile-browser-bottom)); z-index: 8; padding: 10px; margin-inline: -2px; border: 1px solid rgba(118,158,168,.2); border-radius: 18px; background: rgba(7,17,22,.94); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.composer textarea { min-height: 52px; max-height: 120px; }
.progress-summary { gap: 12px; }
.progress-score { padding: 22px; }
.progress-legend { overflow-x: auto; scrollbar-width: none; }
.progress-legend::-webkit-scrollbar { display: none; }
.progress-legend span { min-width: 72px; }
.skill-group { border-radius: 18px; }
.skill-group summary { min-height: 60px; padding: 16px; }
.skill-row { min-width: 0; padding: 14px 16px; }
.skill-row strong { line-height: 1.35; }
.bank-row { min-width: 0; }
.bank-row div { min-width: 0; }
.bank-row strong { overflow-wrap: anywhere; }
.install-card { min-width: 0; }
.bottom-nav {
  width: min(calc(100% - 24px), 620px);
  padding: 6px;
  gap: 2px;
  border-radius: 22px;
  border-color: rgba(118,158,168,.25);
  background: rgba(7,20,26,.97);
}
.nav-btn { min-width: 0; min-height: 58px; gap: 5px; padding: 7px 3px; border-radius: 16px; }
.nav-btn .ui-icon { width: 21px; height: 21px; }
.nav-btn small { font-size: .67rem; white-space: nowrap; }
.nav-btn.active { background: linear-gradient(180deg,rgba(82,224,156,.15),rgba(82,224,156,.07)); box-shadow: inset 0 0 0 1px rgba(82,224,156,.08); }

/* Dedicated Highway Code reader */
.reader { display: grid; gap: 12px; min-width: 0; }
.reader-head { position: sticky; top: 0; z-index: 18; min-height: 66px; padding: 8px 0 10px; background: rgba(6,16,21,.96); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.reader-head .page-title { font-size: 1.55rem; }
.icon-button, .reader-tool, .reader-zoom-value {
  display: grid;
  place-items: center;
  min-width: 44px;
  height: 44px;
  padding: 0 10px;
  border: 1px solid rgba(118,158,168,.28);
  border-radius: 13px;
  background: #0d2028;
  color: var(--text);
  font-weight: 850;
}
.icon-button { flex: 0 0 44px; }
.reader-toolbar {
  position: sticky;
  top: 66px;
  z-index: 17;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 9px;
  border: 1px solid rgba(118,158,168,.22);
  border-radius: 17px;
  background: rgba(9,24,30,.97);
  box-shadow: 0 10px 25px rgba(0,0,0,.22);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.reader-page-controls, .reader-zoom-controls { display: flex; align-items: center; gap: 6px; min-width: 0; }
.reader-page-field { display: flex; align-items: center; gap: 6px; min-width: 108px; height: 44px; padding: 0 10px; border: 1px solid rgba(118,158,168,.25); border-radius: 13px; background: #08171d; color: var(--muted); font-size: .72rem; }
.reader-page-field input { width: 42px; min-height: 34px; height: 34px; padding: 4px; border: 0; background: transparent; text-align: center; font-weight: 900; color: var(--text); }
.reader-page-field b { white-space: nowrap; font-size: .72rem; }
.reader-zoom-value { min-width: 58px; }
.reader-tool.text-tool { font-size: .75rem; }
.reader-search { position: relative; z-index: 16; }
.reader-search input { min-height: 50px; padding-left: 16px; }
.reader-search-results { position: absolute; left: 0; right: 0; top: calc(100% + 7px); z-index: 25; max-height: min(45dvh,360px); padding: 7px; border: 1px solid var(--line); border-radius: 15px; background: rgba(7,20,26,.98); box-shadow: 0 18px 40px rgba(0,0,0,.4); }
.reader-search-results:empty { display: none; }
.reader-result { width: 100%; text-align: left; }
.reader-viewport {
  position: relative;
  width: 100%;
  height: min(68dvh,820px);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
  border: 1px solid rgba(118,158,168,.26);
  border-radius: 18px;
  background: #d7d9d8;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 16px 36px rgba(0,0,0,.2);
}
.reader-stage { min-width: 100%; min-height: 100%; display: flex; align-items: flex-start; justify-content: center; padding: 10px; }
.reader-page-image { display: block; max-width: none; height: auto; min-width: 75%; border-radius: 4px; background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.25); transition: opacity .16s ease; user-select: none; -webkit-user-drag: none; }
.reader-page-image.loading { opacity: .35; }
.reader-loading { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); display: none; padding: 10px 13px; border-radius: 12px; background: rgba(6,16,21,.88); color: var(--text); font-weight: 800; }
.reader-loading.show { display: block; }
.reader-hint { margin: 0; color: var(--muted); font-size: .73rem; text-align: center; }
.reader:fullscreen, .reader.is-fullscreen, .reader.reader-expanded { width: 100vw; height: 100dvh; max-width: none; padding: max(8px,env(safe-area-inset-top)) 10px max(8px,env(safe-area-inset-bottom)); background: var(--bg); }
.reader:fullscreen .reader-viewport, .reader.is-fullscreen .reader-viewport, .reader.reader-expanded .reader-viewport { height: calc(100dvh - 190px); }
.reader.reader-expanded { position: fixed; inset: 0; z-index: 100; overflow: auto; }

@media (max-width: 600px) {
  .pupil-shell { padding-inline: 14px; }
  .topbar { margin-inline: -14px; padding-inline: 14px; }
  .connection-pill { width: 34px; height: 34px; justify-content: center; padding: 0; }
  .connection-pill > span { display: none; }
  .brand strong { font-size: 1rem; }
  .brand small { font-size: .72rem; }
  .page { gap: 16px; }
  .hero-meta { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .mini-stat { padding: 11px 8px; }
  .quick-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .form-grid { grid-template-columns: 1fr; }
  .full { grid-column: auto; }
  .lesson-card { grid-template-columns: 64px minmax(0,1fr) auto; gap: 10px; padding: 14px; }
  .lesson-card > .pill { grid-column: auto; justify-self: end; }
  .progress-legend { grid-template-columns: repeat(6,72px); }
  .reader-toolbar { display: grid; grid-template-columns: 1fr; top: 66px; }
  .reader-page-controls, .reader-zoom-controls { justify-content: center; }
  .reader-zoom-controls { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); }
  .reader-tool, .reader-zoom-value { width: 100%; min-width: 0; padding-inline: 5px; }
  .reader-viewport { height: calc(100dvh - 330px); min-height: 420px; }
  .reader-stage { padding: 7px; }
}

@media (max-width: 380px) {
  .pupil-shell { padding-inline: 11px; }
  .topbar { margin-inline: -11px; padding-inline: 11px; }
  .brand img { width: 42px; height: 42px; }
  .avatar { width: 40px; height: 40px; }
  .brand strong { font-size: .94rem; }
  .hero-meta { grid-template-columns: 1fr; }
  .quick-actions { grid-template-columns: 1fr; }
  .lesson-card { grid-template-columns: 58px minmax(0,1fr); }
  .lesson-card > .pill { grid-column: 2; justify-self: start; }
  .bottom-nav { width: calc(100% - 14px); }
  .nav-btn small { font-size: .61rem; }
}
.pupil-shell.reader-shell { max-width: 1080px; padding-bottom: max(16px,var(--safe-bottom)); }
.reader-shell > .topbar { display: none; }
.reader-shell .page { padding-top: 0; }


/* v0.8.3: reliable actions on unstable mobile Wi-Fi */
button.is-busy { position: relative; cursor: progress; opacity: .78; }
button.is-busy::after {
  content: '';
  width: 14px;
  height: 14px;
  margin-left: 8px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  display: inline-block;
  vertical-align: -2px;
  animation: instructorlane-spin .75s linear infinite;
}
@keyframes instructorlane-spin { to { transform: rotate(360deg); } }


/* InstructorLane v0.8.4 — premium Pupil UI and Highway Code Reader+ */
:root{--surface:rgba(13,28,35,.96);--surface-strong:#10242c;--surface-soft:rgba(255,255,255,.025);--line-soft:rgba(125,164,173,.22);--shadow-card:0 18px 48px rgba(0,0,0,.2);--shadow-float:0 22px 60px rgba(0,0,0,.42);--field-bg:#08171d;--topbar-bg:rgba(6,16,21,.9);--nav-bg:rgba(7,20,26,.95);--reader-canvas:#cfd4d2;--green-soft:rgba(82,224,156,.11)}
:root[data-theme="light"]{color-scheme:light;--bg:#edf4f1;--panel:#fff;--panel2:#f6faf8;--surface:rgba(255,255,255,.97);--surface-strong:#fff;--surface-soft:rgba(16,61,46,.035);--line:#cfddd7;--line-soft:rgba(58,96,82,.18);--text:#11241d;--muted:#687a73;--green:#109a61;--green2:#17b873;--danger:#c93e46;--warn:#9a6900;--field-bg:#f8fbfa;--topbar-bg:rgba(237,244,241,.91);--nav-bg:rgba(255,255,255,.96);--reader-canvas:#d7ddda;--green-soft:rgba(16,154,97,.09);--shadow-card:0 15px 38px rgba(31,68,54,.09);--shadow-float:0 22px 55px rgba(31,68,54,.18)}
html,body{background:radial-gradient(circle at 78% -12%,rgba(44,197,125,.12),transparent 34%),var(--bg)}body{color:var(--text)}button{transition:border-color .18s,background .18s,color .18s,transform .18s,box-shadow .18s}button:active{transform:scale(.985)}.pupil-shell{max-width:780px}.topbar{background:linear-gradient(180deg,var(--topbar-bg) 0%,var(--topbar-bg) 78%,transparent 100%);border-bottom:0;padding-bottom:18px}.topbar-actions{gap:8px}.theme-toggle{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;padding:0;border:1px solid var(--line-soft);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 10px 24px rgba(0,0,0,.1)}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--green);color:var(--green)}.theme-toggle .ui-icon{width:19px;height:19px}.connection-pill,.avatar{background:var(--surface);border-color:var(--line-soft)}.page{gap:20px}.card{border-color:var(--line-soft);background:linear-gradient(150deg,var(--surface-strong),var(--surface));box-shadow:var(--shadow-card)}.hero{position:relative;background:radial-gradient(circle at 100% 0,rgba(82,224,156,.18),transparent 36%),linear-gradient(145deg,var(--panel2),var(--surface));border-color:rgba(82,224,156,.3);box-shadow:0 22px 55px rgba(38,198,120,.08),var(--shadow-card)}.hero::after{content:'';position:absolute;right:-70px;top:-70px;width:190px;height:190px;border:1px solid rgba(82,224,156,.13);border-radius:50%;pointer-events:none}.mini-stat,.action,.secondary-button,.lesson-card,.message-card,.shared-card,.request-card,.skill-group{border-color:var(--line-soft);background:var(--surface)}.action{box-shadow:0 10px 26px rgba(0,0,0,.08)}.action:hover,.action:focus-visible{border-color:var(--green)}.action.primary,.primary-button{background:linear-gradient(135deg,#5ce6a6,#27c97b);color:#04140d;box-shadow:0 14px 30px rgba(38,198,120,.19)}input,select,textarea{background:var(--field-bg);border-color:var(--line-soft);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--muted)}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(82,224,156,.1)}input[type="date"],input[type="time"]{color-scheme:inherit}.composer{background:var(--surface);border-color:var(--line-soft);box-shadow:var(--shadow-float)}.bank-row{border-color:var(--line-soft);background:var(--surface-soft)}.bottom-nav{border-color:var(--line-soft);background:var(--nav-bg);box-shadow:var(--shadow-float)}.nav-btn.active{color:var(--green);background:linear-gradient(180deg,rgba(82,224,156,.15),rgba(82,224,156,.07))}.pair-card{background:var(--surface);border-color:var(--line-soft);box-shadow:var(--shadow-float)}
.reader{gap:13px}.reader-head{display:grid;grid-template-columns:44px minmax(0,1fr) 42px;align-items:center;gap:10px;background:var(--topbar-bg)}.reader-heading{min-width:0}.reader-heading .page-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-primary-actions{display:grid;grid-template-columns:auto auto minmax(180px,1fr);gap:8px;align-items:center}.reader-library-button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:48px;padding:0 14px;border:1px solid var(--line-soft);border-radius:14px;background:var(--surface);color:var(--text);font-weight:850}.reader-library-button:hover,.reader-library-button:focus-visible{border-color:var(--green);color:var(--green)}.reader-library-button .ui-icon{width:19px;height:19px}.compact-search{min-width:0}.compact-search input{min-height:48px}.icon-button,.reader-tool,.reader-zoom-value{border-color:var(--line-soft);background:var(--surface-strong);color:var(--text)}.icon-button:hover,.reader-tool:hover,.reader-zoom-value:hover{border-color:var(--green);color:var(--green)}.reader-toolbar{border-color:var(--line-soft);background:var(--surface)}.reader-page-field{background:var(--field-bg);border-color:var(--line-soft)}.reader-viewport{background:var(--reader-canvas)}.reader-stage{display:block;min-width:100%;width:100%;padding:10px}.reader-page-image{margin:0 auto;transform-origin:top left}.reader-search-results{background:var(--surface-strong);border-color:var(--line-soft)}.reader-result{background:var(--surface);border-color:var(--line-soft)}.reader:fullscreen,.reader.is-fullscreen,.reader.reader-expanded{background:var(--bg)}
.reader-drawer{position:fixed;inset:0;z-index:150;display:grid;align-items:end}.reader-drawer-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(0,0,0,.54);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.reader-drawer-sheet{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(100%,820px);max-height:min(86dvh,900px);margin:0 auto;padding-bottom:max(10px,env(safe-area-inset-bottom));border:1px solid var(--line-soft);border-bottom:0;border-radius:28px 28px 0 0;background:var(--surface-strong);box-shadow:0 -24px 70px rgba(0,0,0,.35);overflow:hidden}.reader-drawer-sheet>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 18px 14px;border-bottom:1px solid var(--line-soft)}.reader-drawer-sheet h2{margin:4px 0 0;font-size:1.35rem}.reader-drawer-body{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:12px 14px 20px}.toc-list{display:grid;gap:7px}.toc-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:62px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:15px;background:var(--surface);color:var(--text);text-align:left}.toc-item:hover,.toc-item:focus-visible{border-color:var(--green)}.toc-item span,.toc-item strong,.toc-item small{display:block;min-width:0}.toc-item small{margin-top:4px;color:var(--muted);font-size:.73rem}.toc-item b{display:grid;place-items:center;min-width:38px;height:34px;border-radius:10px;background:var(--green-soft);color:var(--green)}.thumbnail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.thumbnail-card{min-width:0;padding:7px;border:1px solid var(--line-soft);border-radius:13px;background:var(--surface);color:var(--muted);text-align:center}.thumbnail-card.active{border-color:var(--green);color:var(--green);box-shadow:0 0 0 2px rgba(82,224,156,.09)}.thumbnail-card img{display:block;width:100%;aspect-ratio:1200/1705;object-fit:cover;border-radius:8px;background:#fff}.thumbnail-card span{display:block;padding:7px 2px 2px;font-size:.68rem;font-weight:850}
@media(min-width:700px){.reader-drawer{align-items:center;padding:24px}.reader-drawer-sheet{border-bottom:1px solid var(--line-soft);border-radius:28px}.thumbnail-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:600px){.pupil-shell{padding-inline:15px}.topbar{margin-inline:-15px;padding-inline:15px;min-height:76px}.brand img{width:45px;height:45px}.theme-toggle{width:38px;height:38px;flex-basis:38px}.connection-pill{width:34px;height:34px}.avatar{width:41px;height:41px}.hero{padding:22px 20px}.mini-stat{min-height:76px;display:flex;flex-direction:column;justify-content:space-between}.action{min-height:62px}.lesson-card{grid-template-columns:62px minmax(0,1fr)}.lesson-card>.pill{grid-column:2;justify-self:start}.reader-primary-actions{grid-template-columns:1fr 1fr}.reader-primary-actions .reader-search{grid-column:1/-1}.reader-toolbar{top:66px}.reader-viewport{height:calc(100dvh - 340px);min-height:390px}.reader-page-image{min-width:100%}}
@media(max-width:390px){.pupil-shell{padding-inline:12px}.topbar{margin-inline:-12px;padding-inline:12px}.brand{gap:9px}.brand strong{font-size:.92rem}.brand small{font-size:.68rem}.theme-toggle{width:35px;height:35px;flex-basis:35px}.connection-pill{width:32px;height:32px}.avatar{width:38px;height:38px}.hero-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.mini-stat{min-height:70px;padding:10px 7px}.mini-stat strong{font-size:.83rem}.quick-actions{grid-template-columns:1fr 1fr}.action{padding-inline:9px;font-size:.83rem}.thumbnail-grid{gap:7px}}

/* InstructorLane v0.8.5 — Pupil mobile-first redesign */
:root{
  --mobile-gutter:16px;
  --mobile-card-radius:22px;
  --mobile-control-radius:16px;
  --pupil-header-height:76px;
  --pupil-nav-height:72px;
  --line-strong:rgba(139,176,185,.34);
}
:root[data-theme="light"]{
  --bg:#e6eeea;
  --panel:#f7faf8;
  --panel2:#ffffff;
  --surface:#ffffff;
  --surface-strong:#ffffff;
  --surface-soft:#edf4f0;
  --line:#9db4aa;
  --line-soft:#b7c9c1;
  --line-strong:#809d91;
  --text:#10251c;
  --muted:#526b60;
  --green:#08784a;
  --green2:#0b9258;
  --green-soft:rgba(8,120,74,.10);
  --field-bg:#ffffff;
  --topbar-bg:rgba(230,238,234,.97);
  --nav-bg:rgba(248,251,249,.98);
  --shadow-card:0 12px 28px rgba(22,62,45,.09);
  --shadow-float:0 18px 42px rgba(22,62,45,.18);
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden}
.pupil-shell{
  width:100%;
  max-width:680px;
  min-height:100dvh;
  margin:0 auto;
  padding:var(--safe-top) var(--mobile-gutter) calc(var(--pupil-nav-height) + 36px + var(--safe-bottom) + var(--mobile-browser-bottom));
}
.pupil-shell:not(.reader-shell)>.topbar{
  position:relative;
  inset:auto;
  min-height:var(--pupil-header-height);
  margin:0 calc(var(--mobile-gutter) * -1) 14px;
  padding:8px var(--mobile-gutter) 12px;
  background:var(--topbar-bg);
  border-bottom:1px solid var(--line-soft);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.brand{min-width:0;gap:10px}.brand span{min-width:0}.brand img{flex:0 0 48px;width:48px;height:48px;border-radius:16px;padding:9px;box-shadow:0 10px 26px rgba(32,196,118,.18)}
.brand strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.06rem;line-height:1.15}.brand small{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-actions{flex:0 0 auto;gap:7px}.theme-toggle{width:40px;height:40px;flex-basis:40px;border-color:var(--line-strong);box-shadow:none}.connection-pill{width:36px;height:36px;min-width:36px;padding:0;justify-content:center;border-color:var(--line-strong)}.connection-pill>span{display:none}.avatar{width:42px;height:42px;border-radius:14px;border-color:var(--line-strong);font-size:.9rem}
.page{display:grid;gap:16px;min-width:0}.page>*{min-width:0}.page-title{font-size:clamp(1.65rem,7vw,2rem);line-height:1.08;overflow-wrap:anywhere}.card{border-color:var(--line-strong);border-radius:var(--mobile-card-radius);box-shadow:var(--shadow-card)}.card-pad{padding:18px}

/* Rebuilt Home */
.home-intro{padding:2px 2px 0}.home-intro h1{margin:5px 0 6px;font-size:clamp(1.75rem,8vw,2.25rem);line-height:1.05;letter-spacing:-.035em}.home-intro>p:last-child{margin:0;color:var(--muted);font-size:.88rem;line-height:1.45}
.home-next-card{position:relative;overflow:hidden;padding:20px;background:radial-gradient(circle at 105% -5%,rgba(82,224,156,.18),transparent 37%),linear-gradient(150deg,var(--surface-strong),var(--surface));border-color:rgba(82,224,156,.38)}
.home-next-card::after{content:'';position:absolute;right:-76px;top:-76px;width:190px;height:190px;border:1px solid rgba(82,224,156,.13);border-radius:50%;pointer-events:none}.home-card-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between}.home-card-top>div{display:flex;align-items:center;gap:9px}.home-kicker{color:var(--muted);font-size:.72rem;font-weight:850;letter-spacing:.03em}.home-status{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.65rem;font-weight:900}.muted-status{background:var(--surface-soft);color:var(--muted)}
.home-lesson-date{position:relative;z-index:1;display:flex;align-items:baseline;gap:10px;margin:19px 0 9px}.home-lesson-date strong{font-size:clamp(2.35rem,14vw,3.45rem);line-height:.95;letter-spacing:-.055em}.home-lesson-date span{color:var(--muted);font-size:.9rem;font-weight:750}.home-next-card>h2{position:relative;z-index:1;margin:0 0 8px;font-size:1.15rem;line-height:1.3}.home-location{position:relative;z-index:1;display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:.84rem}.home-location .ui-icon{flex:0 0 18px;width:18px;height:18px;color:var(--green)}.home-empty-lesson{position:relative;z-index:1;padding:25px 0 10px}.home-empty-lesson strong{display:block;font-size:1.65rem;line-height:1.15}.home-empty-lesson p{margin:8px 0 0;color:var(--muted);line-height:1.45}
.home-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:20px}.home-stat{min-width:0;min-height:76px;padding:11px 9px;border:1px solid var(--line-soft);border-radius:15px;background:var(--surface-soft);color:var(--text);text-align:left}.home-stat span,.home-stat strong{display:block;min-width:0}.home-stat span{color:var(--muted);font-size:.66rem}.home-stat strong{margin-top:7px;font-size:.88rem;line-height:1.15;overflow-wrap:anywhere}.home-stat:focus-visible,.home-stat:hover{border-color:var(--green)}
.home-update-card{padding:18px}.home-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.home-section-heading h2{margin:4px 0 0;font-size:1.15rem}.home-inline-link{flex:0 0 auto;padding:6px 0;border:0;background:transparent;color:var(--green);font-size:.73rem;font-weight:900}.home-message,.home-empty-message{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start;margin-top:16px;padding:14px;border:1px solid var(--line-soft);border-radius:16px;background:var(--surface-soft)}.home-message-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--green-soft);color:var(--green)}.home-message-icon .ui-icon{width:20px;height:20px}.home-message p,.home-empty-message p{margin:0;line-height:1.45}.home-message small{display:block;margin-top:7px;color:var(--muted);font-size:.7rem}.home-empty-message strong{display:block;margin-bottom:4px}.home-empty-message p{color:var(--muted);font-size:.8rem}
.home-actions{display:grid;gap:10px}.home-action{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;width:100%;min-width:0;min-height:68px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--mobile-control-radius);background:var(--surface);color:var(--text);text-align:left}.home-action>.ui-icon{width:23px;height:23px;justify-self:center;color:var(--green)}.home-action span,.home-action strong,.home-action small{display:block;min-width:0}.home-action strong{font-size:.93rem}.home-action small{margin-top:3px;color:var(--muted);font-size:.68rem}.home-action-primary{grid-template-columns:42px minmax(0,1fr);border-color:transparent;background:linear-gradient(135deg,var(--green),var(--green2));color:#fff;box-shadow:0 14px 30px rgba(18,140,83,.22)}.home-action-primary>.ui-icon,.home-action-primary small{color:rgba(255,255,255,.86)}.home-action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.home-action-row .home-action{grid-template-columns:34px minmax(0,1fr);min-height:64px;padding:10px 11px}.home-action-row .home-action>.ui-icon{width:20px;height:20px}.home-bank-link{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0;background:transparent;color:var(--green);font-size:.78rem;font-weight:850}.home-bank-link .ui-icon{width:17px;height:17px}

/* Stable phone navigation */
.bottom-nav{
  left:50%;
  bottom:calc(10px + var(--safe-bottom) + var(--mobile-browser-bottom));
  width:min(calc(100% - 24px),620px);
  min-height:var(--pupil-nav-height);
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:2px;
  padding:6px;
  border:1px solid var(--line-strong);
  border-radius:22px;
  background:var(--nav-bg);
  box-shadow:var(--shadow-float);
  overflow:hidden;
}
.nav-btn{position:relative;min-width:0;min-height:58px;padding:7px 2px;border-radius:15px;gap:4px}.nav-btn .ui-icon{width:21px;height:21px}.nav-btn small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;line-height:1;font-weight:850}.nav-btn.active{background:var(--green-soft);color:var(--green);box-shadow:inset 0 0 0 1px rgba(82,224,156,.12)}.nav-btn.active::before{content:'';position:absolute;top:3px;left:50%;width:18px;height:2px;border-radius:99px;background:var(--green);transform:translateX(-50%)}

/* Forms and secondary screens remain strictly single-column on phones */
.form-grid{grid-template-columns:1fr;gap:13px}.full{grid-column:auto}.field label{color:var(--muted)}input,select,textarea{min-height:54px;border-color:var(--line-strong);border-radius:15px}.primary-button,.secondary-button{border-radius:15px}.secondary-button{border-color:var(--line-strong)}.lesson-card{grid-template-columns:60px minmax(0,1fr);gap:10px}.lesson-card>.pill{grid-column:2;justify-self:start}.progress-summary{grid-template-columns:1fr}.message-card{max-width:92%}.section-head{align-items:flex-start}.section-head>*{min-width:0}

/* Stronger light mode */
:root[data-theme="light"] .card,
:root[data-theme="light"] .home-action,
:root[data-theme="light"] .lesson-card,
:root[data-theme="light"] .message-card,
:root[data-theme="light"] .shared-card,
:root[data-theme="light"] .request-card,
:root[data-theme="light"] .skill-group,
:root[data-theme="light"] .bottom-nav{border-color:var(--line-strong)}
:root[data-theme="light"] .home-next-card{border-color:#4b9b75;background:radial-gradient(circle at 105% -5%,rgba(8,120,74,.12),transparent 37%),linear-gradient(150deg,#ffffff,#f3f8f5)}
:root[data-theme="light"] .home-action-primary,
:root[data-theme="light"] .primary-button,
:root[data-theme="light"] .action.primary{background:linear-gradient(135deg,#08784a,#0a8e56);color:#fff;box-shadow:0 13px 26px rgba(8,120,74,.22)}
:root[data-theme="light"] .home-action-primary>.ui-icon,
:root[data-theme="light"] .home-action-primary small{color:rgba(255,255,255,.9)}
:root[data-theme="light"] input,
:root[data-theme="light"] select,
:root[data-theme="light"] textarea{border-color:var(--line-strong);background:#fff}
:root[data-theme="light"] .nav-btn.active{background:rgba(8,120,74,.12)}

@media(min-width:700px){
  .pupil-shell{max-width:720px;padding-inline:24px}.pupil-shell:not(.reader-shell)>.topbar{margin-inline:-24px;padding-inline:24px}.dashboard-grid{display:block}.skill-groups{grid-template-columns:1fr}.home-next-card{padding:24px}.home-action-row{grid-template-columns:1fr 1fr}.thumbnail-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(max-width:420px){
  :root{--mobile-gutter:13px}.brand img{width:44px;height:44px}.brand strong{max-width:150px;font-size:.97rem}.theme-toggle{width:37px;height:37px;flex-basis:37px}.connection-pill{width:33px;height:33px;min-width:33px}.avatar{width:39px;height:39px}.home-next-card{padding:18px}.home-lesson-date{display:block}.home-lesson-date span{display:block;margin-top:7px}.home-stats{gap:6px}.home-stat{padding:10px 7px}.home-stat strong{font-size:.8rem}.home-action-row{grid-template-columns:1fr 1fr;gap:8px}.home-action-row .home-action{grid-template-columns:28px minmax(0,1fr);padding-inline:9px}.home-action-row .home-action small{display:none}.bottom-nav{width:calc(100% - 16px);padding:5px}.nav-btn small{font-size:.59rem}
}
@media(max-width:350px){.home-stats{grid-template-columns:1fr}.home-stat{min-height:58px}.home-action-row{grid-template-columns:1fr}.nav-btn small{font-size:.54rem}}

/* v0.8.7 logo refresh */
.brand img,
.pair-logo {
  background: transparent !important;
  padding: 0 !important;
  object-fit: cover;
}
.brand img {
  width: 42px;
  height: 42px;
  border-radius: 14px;
}
.pair-logo {
  width: 68px;
  height: 68px;
  border-radius: 22px;
}


/* InstructorLane 1.0.3 FINAL — brighter, crisper Pupil light theme */
:root[data-theme="light"]{
  --bg:#f3f7f5;
  --panel:#ffffff;
  --panel2:#ffffff;
  --surface:#ffffff;
  --surface-strong:#ffffff;
  --surface-soft:#edf3f0;
  --line:#a5b9b0;
  --line-soft:#bdccc5;
  --line-strong:#708f82;
  --text:#0c2017;
  --muted:#496357;
  --green:#076f44;
  --green2:#09834f;
  --green-soft:rgba(7,111,68,.11);
  --field-bg:#ffffff;
  --topbar-bg:#f8fbf9;
  --nav-bg:#ffffff;
  --reader-canvas:#d9dfdc;
  --shadow-card:0 10px 26px rgba(18,52,39,.08);
  --shadow-float:0 17px 40px rgba(18,52,39,.16);
}
:root[data-theme="light"],
:root[data-theme="light"] body{
  background:linear-gradient(180deg,#f9fbfa 0%,#f1f6f3 58%,#edf3f0 100%);
}
:root[data-theme="light"] .pupil-shell:not(.reader-shell)>.topbar,
:root[data-theme="light"] .reader-head{
  background:#f8fbf9;
  border-bottom-color:var(--line-strong);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
:root[data-theme="light"] .card,
:root[data-theme="light"] .home-action,
:root[data-theme="light"] .lesson-card,
:root[data-theme="light"] .message-card,
:root[data-theme="light"] .shared-card,
:root[data-theme="light"] .request-card,
:root[data-theme="light"] .skill-group,
:root[data-theme="light"] .reader-toolbar,
:root[data-theme="light"] .reader-library-button,
:root[data-theme="light"] .reader-result,
:root[data-theme="light"] .reader-drawer-sheet,
:root[data-theme="light"] .toc-item,
:root[data-theme="light"] .thumbnail-card{
  border-color:var(--line-strong);
  background:#ffffff;
  box-shadow:var(--shadow-card);
}
:root[data-theme="light"] .home-next-card{
  border-color:#478e6d;
  background:
    radial-gradient(circle at 105% -5%,rgba(7,111,68,.08),transparent 38%),
    linear-gradient(150deg,#ffffff,#f4f8f6);
}
:root[data-theme="light"] .home-stat,
:root[data-theme="light"] .home-message,
:root[data-theme="light"] .home-empty-message,
:root[data-theme="light"] .bank-row{
  border-color:#9eb5aa;
  background:#eef4f1;
}
:root[data-theme="light"] input,
:root[data-theme="light"] select,
:root[data-theme="light"] textarea,
:root[data-theme="light"] .reader-page-field{
  border-color:#708f82;
  background:#ffffff;
  color:#0c2017;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
:root[data-theme="light"] input::placeholder,
:root[data-theme="light"] textarea::placeholder{color:#63796f}
:root[data-theme="light"] .secondary-button,
:root[data-theme="light"] .theme-toggle,
:root[data-theme="light"] .connection-pill,
:root[data-theme="light"] .avatar,
:root[data-theme="light"] .icon-button,
:root[data-theme="light"] .reader-tool,
:root[data-theme="light"] .reader-zoom-value{
  border-color:#78978a;
  background:#ffffff;
}
:root[data-theme="light"] .bottom-nav{
  border-color:#668779;
  background:#ffffff;
  box-shadow:0 16px 38px rgba(18,52,39,.18);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
:root[data-theme="light"] .nav-btn{color:#526a5f}
:root[data-theme="light"] .nav-btn.active{
  background:#e1eee7;
  color:#076f44;
  box-shadow:inset 0 0 0 1px rgba(7,111,68,.24);
}
:root[data-theme="light"] .home-action-primary,
:root[data-theme="light"] .primary-button,
:root[data-theme="light"] .action.primary{
  background:linear-gradient(135deg,#076f44,#09834f);
  color:#ffffff;
  box-shadow:0 12px 25px rgba(7,111,68,.22);
}
:root[data-theme="light"] .muted-copy,
:root[data-theme="light"] .section-head p,
:root[data-theme="light"] .home-intro>p:last-child,
:root[data-theme="light"] .home-location,
:root[data-theme="light"] .home-message small,
:root[data-theme="light"] .home-empty-message p{
  color:#496357;
}

/* v1.2.0 booking availability */
.page-lead{margin:-4px 0 18px;color:var(--muted);line-height:1.55}
.booking-request-card{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:linear-gradient(155deg,color-mix(in srgb,var(--accent) 7%,var(--surface)),var(--surface))}
.booking-availability{display:grid;gap:4px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;font-size:12px}
.booking-availability strong{font-size:13px}.booking-availability span{color:var(--muted)}
.booking-availability.available{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.booking-availability.available strong{color:var(--accent)}
.booking-availability.unavailable{border-color:color-mix(in srgb,#e45c68 52%,var(--line));background:color-mix(in srgb,#e45c68 9%,var(--surface))}
.booking-availability.unavailable strong{color:#e45c68}
.booking-availability.neutral{background:var(--surface-2)}
