:root{color-scheme:light;--ink:#14213d;--muted:#64748b;--brand:#2457d6;--brand-dark:#1b43ae;--brand-soft:#edf3ff;--teal:#0f766e;--line:#dbe3ef;--paper:#fff;--canvas:#f3f6fb;--danger:#b42318;--radius:18px;--shadow:0 8px 28px rgba(20,33,61,.07)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--canvas);color:var(--ink);font-size:16px;line-height:1.55}
button,input,textarea,select{font:inherit}
button{cursor:pointer;border:1px solid transparent;border-radius:11px;padding:11px 16px;background:var(--brand);color:#fff;font-weight:650;letter-spacing:.005em;box-shadow:0 2px 4px #14213d0d;transition:background .15s ease,transform .15s ease,box-shadow .15s ease;touch-action:manipulation;min-height:42px}
button:hover{background:var(--brand-dark);box-shadow:0 4px 12px #2457d626}
button:active{transform:translateY(1px)}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #8bb4ff;outline-offset:2px}
button:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}
.btn-secondary{background:#f1f5fb;color:#29405f;border-color:#d9e2f0;box-shadow:none}
.btn-secondary:hover{background:#e6edf8;color:#172f50;box-shadow:none}
.btn-danger,.delete-student,button[onclick*="deleteSubject"],button[onclick*="deleteChapter"],button[onclick*="deleteParagraph"],button[data-admin-delete]{background:#fff1f0;color:var(--danger);border-color:#ffd1cc;box-shadow:none}
.btn-danger:hover,.delete-student:hover,button[onclick*="deleteSubject"]:hover,button[onclick*="deleteChapter"]:hover,button[onclick*="deleteParagraph"]:hover,button[data-admin-delete]:hover{background:#ffe2df;color:#912018;box-shadow:none}
input,textarea,select{width:100%;padding:12px 13px;border:1px solid #cbd5e1;border-radius:11px;margin:6px 0 12px;background:#fff;color:var(--ink);min-height:46px;box-shadow:0 1px 2px #14213d05}
textarea{min-height:110px;resize:vertical;line-height:1.7}
input::placeholder,textarea::placeholder{color:#94a3b8}
label{display:block;color:#344563;font-size:.94rem;font-weight:700;margin:10px 0 2px}
hr{border:0;border-top:1px solid var(--line);margin:24px 0}
header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px clamp(14px,3vw,28px);background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;box-shadow:0 3px 12px #14213d08;backdrop-filter:blur(12px)}
header b{font-size:1rem;line-height:1.3}
header>div:last-child,.header-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
header button{margin:0;padding:9px 12px;min-height:38px;font-size:.9rem}
main{width:min(1120px,100%);margin:0 auto;padding:clamp(14px,3vw,28px)}
.center{width:100%;max-width:none;min-height:100dvh;margin:0;padding:24px 14px;display:grid;place-items:center;background:radial-gradient(ellipse at top left,#e1ebff 0,transparent 45%),var(--canvas)}
.card{min-width:0;background:var(--paper);border:1px solid #e2e8f0;border-radius:var(--radius);padding:clamp(16px,2.5vw,24px);margin:0 0 18px;box-shadow:var(--shadow)}
.card h2{font-size:1.22rem;line-height:1.35;letter-spacing:-.025em;margin:0 0 12px}
.card h3{font-size:1.05rem;line-height:1.4;margin:8px 0}
.card p{margin:8px 0 14px}
.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.auth-card{width:min(510px,100%);padding:clamp(22px,5vw,36px)}
.auth-brand,.brand-lockup{display:flex;align-items:center;gap:13px;min-width:0}
.auth-brand{margin:0 0 26px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.auth-brand img{width:64px;height:64px;flex:0 0 auto;border-radius:17px;box-shadow:0 8px 20px #2457d626}
.auth-brand h1{font-size:1.55rem;line-height:1.2;margin:0;letter-spacing:-.04em}
.auth-brand p{margin:4px 0 0;color:var(--muted);font-size:.9rem}
.brand-lockup img{width:42px;height:42px;flex:0 0 auto;border-radius:12px}
.brand-lockup div{display:flex;flex-direction:column;gap:1px}
.brand-lockup b{font-size:1.05rem;letter-spacing:-.025em}
.brand-lockup small{font-size:.78rem;color:var(--muted);font-weight:550}
.section-kicker,.header-eyebrow{font-size:.7rem;letter-spacing:.12em;font-weight:800;color:#61769b;text-transform:uppercase;margin:0 0 5px}
.header-title{display:flex;flex-direction:column;gap:2px;min-width:0}
.header-title b{max-width:min(70vw,680px);overflow-wrap:anywhere}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.section-heading h2{margin:0}
.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:5px 10px;border:1px solid #d7e4fb;border-radius:999px;background:var(--brand-soft);color:#234b9b;font-size:.82rem;font-weight:800;white-space:nowrap}
.muted,.student-row small,.chapter small{color:var(--muted);font-size:.9rem}
.empty-state{padding:16px;border-radius:12px;background:#f8fafc;border:1px dashed #d7e0ed;color:var(--muted)}
.list,.testrow{width:100%;text-align:left}
.list{background:#f4f7fc;color:#1d3557;border-color:#e3eaf5;box-shadow:none;text-align:left;font-weight:650;flex:1}
.list:hover{background:#eaf1fd;color:#183b83;box-shadow:none}
.result{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid #edf1f7}
.result:last-child{border-bottom:0}
.subject{border:1px solid #e2e8f0;border-left:4px solid #7ba2f7;border-radius:14px;padding:14px;margin:14px 0;background:#fbfcff}
.subject>h3{margin-top:0;font-size:1.12rem}
.book{margin:12px 0 4px;padding:12px;border:1px solid #e7edf6;border-radius:12px;background:#fff}
.chapter{padding:14px;margin:10px 0 0;border:1px solid #dce7f8;background:#f6f9ff;border-radius:12px}
.chapter>b{display:block;font-size:1rem;margin-bottom:3px;overflow-wrap:anywhere}
.chapter small{margin:3px 0 8px}
.chapter button,.book>button,.subject>button{margin:4px 5px 0 0}
.testrow{display:grid;grid-template-columns:minmax(100px,1fr) auto auto auto;gap:8px;align-items:center;border:1px solid #e2e8f0;border-radius:13px;padding:12px;margin:10px 0;background:#fff}
.testrow>span{color:var(--muted);font-size:.85rem}
.para{border:1px solid #e1e8f2;border-radius:14px;padding:14px;margin:12px 0;background:#fbfdff}
.para textarea{margin-top:3px}
.button-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.button-row button{margin:0}
.form-actions{padding-top:10px;margin-top:14px;border-top:1px solid #edf1f7}
.field-actions{margin-top:-4px;margin-bottom:12px}
.form-card{max-width:900px;margin-left:auto;margin-right:auto}
.progress{display:flex;justify-content:space-between;gap:12px;align-items:center}
.word-result{line-height:2.1;font-size:1.08rem;padding:14px;border:1px solid #dbe4f0;border-radius:13px;background:#fff;overflow-wrap:anywhere}
.word{padding:2px 4px}
.word.correct{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;font-weight:700}
.qa{border-top:1px solid #e6edf5;padding:14px 0}
.qa-number{font-size:.72rem;font-weight:800;color:#61769b;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.mic-panel{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0}
.mic-status{display:flex;align-items:center;gap:8px}
.mic-dot{width:12px;height:12px;border-radius:50%;background:#aaa;display:inline-block}
.mic-dot.active{background:#d33;box-shadow:0 0 0 6px #d3333318}
.live-box{border:1px solid #d8e2ee;border-radius:13px;padding:14px;margin-top:10px;background:#f8fafc;min-height:72px}
.live-label{font-size:.8rem;color:var(--muted);margin-bottom:6px}
.spoken-live{font-size:1.05rem;line-height:1.7;white-space:pre-wrap}
.spoken-live .interim{opacity:.65;font-style:italic}
.student-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #edf1f6;min-width:0}
.student-row:last-child{border-bottom:0}
.student-row .list{min-width:0}
.student-row>div:last-child{display:flex;gap:4px;flex-wrap:wrap}
.delete-student{white-space:nowrap}
.success-banner{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;border-radius:13px;padding:14px 16px;margin:0 0 16px}
.attempt-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;border-bottom:1px solid #edf1f7;padding:13px 0}
.attempt-row span{font-weight:800;color:#244b9c;font-variant-numeric:tabular-nums}
.attempt-question{background:#f5f8fd;border:1px solid #e2e8f0;border-radius:12px;padding:12px;margin:12px 0}
.pdf-report{font-family:Arial,"Noto Sans Devanagari",sans-serif;color:#111;background:#fff;padding:24px;font-size:14px;line-height:1.55}
.pdf-report h1{text-align:center;margin:0 0 12px}.pdf-section{break-inside:avoid-page;page-break-inside:avoid;border-top:2px solid #222;padding-top:12px;margin-top:20px}.pdf-original{border:1px solid #ddd;padding:12px;border-radius:6px}.pdf-attempt{border:1px solid #ccc;padding:10px;margin:10px 0;break-inside:avoid-page;page-break-inside:avoid}.pdf-words{line-height:2.1}.pdf-words .word.correct{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;font-weight:700}
.manual-word{cursor:pointer;border-radius:4px;touch-action:manipulation}.manual-word:focus{outline:2px solid #64748b;outline-offset:2px}.manual-word.correct{background:#f0fdf4}.manual-word.speech-detected{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:#15803d}.manual-word.manual-added{color:#1d4ed8;background:#eff6ff;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:#2563eb;font-weight:700}
.formula-original{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:700;overflow-wrap:anywhere}
.math-paragraph mjx-container{max-width:100%;overflow-x:auto;overflow-y:hidden}.math-paragraph{overflow-wrap:anywhere;line-height:1.8}
.camera-panel{margin:14px 0;padding:14px;border:1px solid #cfddf4;border-radius:15px;background:#f5f8ff}
.camera-panel[hidden],video[hidden],canvas[hidden]{display:none!important}
.camera-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.camera-panel-heading p{margin:4px 0 0;font-size:.88rem}
.camera-panel video,.camera-panel canvas{display:block;width:100%;max-height:48vh;object-fit:contain;border-radius:11px;background:#101828;margin:10px 0}
.camera-panel canvas{height:auto;background:#fff;border:1px solid #d7e0ed}
.camera-status{color:#405675;font-size:.9rem;margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e1e8f4;min-height:42px}
.camera-actions{margin-top:10px}
.word.manual-added{color:#1d4ed8;background:#eff6ff;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:#2563eb;font-weight:700}
@media(max-width:800px){main{padding:14px}.testrow{grid-template-columns:minmax(0,1fr) auto}.testrow b{grid-column:1/-1}.testrow button{width:100%}.grid{gap:12px}}
@media(max-width:600px){body{font-size:15px}header{align-items:flex-start;gap:10px;padding:10px 12px}.brand-lockup{gap:8px}.brand-lockup img{width:36px;height:36px}.brand-lockup b{font-size:.95rem}.brand-lockup small{font-size:.72rem}.header-actions{justify-content:flex-end;max-width:58%}header button{font-size:.8rem;padding:8px 9px;min-height:36px}.grid{grid-template-columns:1fr}.testrow{grid-template-columns:1fr}.testrow b{grid-column:auto}.testrow button{width:100%}.student-row{align-items:stretch;flex-direction:column}.student-row button{width:100%;margin:0}.attempt-row{grid-template-columns:1fr}.attempt-row button{width:100%}.mic-panel{align-items:stretch;flex-direction:column}.mic-panel button{width:100%;margin:0}.section-heading{align-items:flex-start}.auth-brand img{width:56px;height:56px}.auth-brand h1{font-size:1.35rem}.button-row button{max-width:100%}.camera-panel-heading{align-items:flex-start}.camera-panel-heading>button{flex:0 0 auto}.count-pill{font-size:.75rem}}
@media print{.pdf-report{padding:0}.pdf-section{break-inside:avoid-page}}

/* V48 visual-only refresh: inspired by the supplied reference screens.
   No application logic, API, authentication, or data styles are changed. */
:root{
  --ink:#182746;
  --muted:#71809a;
  --brand:#2867e8;
  --brand-dark:#194dbb;
  --brand-soft:#eaf1ff;
  --teal:#08a9c5;
  --line:#dce7f5;
  --paper:rgba(255,255,255,.88);
  --canvas:#edf4ff;
  --radius:22px;
  --shadow:0 10px 30px rgba(37,79,145,.075);
}
body{
  background:radial-gradient(ellipse at 10% 0%,rgba(115,157,255,.22),transparent 36%),
             radial-gradient(ellipse at 95% 32%,rgba(69,214,228,.17),transparent 34%),
             linear-gradient(145deg,#f3f6ff 0%,#eaf9ff 52%,#f2f0ff 100%);
  color:var(--ink);
}
header{
  background:rgba(248,251,255,.9);
  border-bottom-color:rgba(206,221,245,.8);
  box-shadow:0 5px 22px rgba(38,72,130,.07);
}
main{padding:clamp(14px,3vw,30px)}
.card{
  background:rgba(255,255,255,.78);
  border-color:rgba(255,255,255,.94);
  border-radius:24px;
  box-shadow:0 8px 26px rgba(38,72,130,.055);
  backdrop-filter:blur(10px);
}
.card h2{font-size:clamp(1.12rem,2.5vw,1.3rem);letter-spacing:-.02em}
button{
  background:linear-gradient(110deg,#3168ec 0%,#087fce 58%,#08abc3 100%);
  border-color:transparent;
  border-radius:999px;
  padding:11px 18px;
  box-shadow:0 5px 14px rgba(38,105,218,.16);
  transition:filter .16s ease,transform .16s ease,box-shadow .16s ease;
}
button:hover{background:linear-gradient(110deg,#2458d7,#0874bd 58%,#0798b1);box-shadow:0 7px 18px rgba(38,105,218,.2)}
button:active{transform:translateY(1px)}
.btn-secondary,.list{
  color:#465b7b;
  background:rgba(255,255,255,.72);
  border:1px solid #dce7f7;
  box-shadow:none;
}
.btn-secondary:hover,.list:hover{color:#234c9f;background:#edf4ff;box-shadow:none}
.btn-danger,.delete-student,button[onclick*="deleteSubject"],button[onclick*="deleteChapter"],button[onclick*="deleteParagraph"],button[data-admin-delete]{
  background:#fff1f0;color:var(--danger);border-color:#ffd1cc;box-shadow:none
}
input,textarea,select{
  border-color:#d4e0f0;
  border-radius:14px;
  background:rgba(255,255,255,.92);
}
input:focus,textarea:focus,select:focus{border-color:#7da6f5;box-shadow:0 0 0 3px rgba(49,104,236,.1);outline:none}
label{color:#344967}
.section-kicker,.header-eyebrow{color:#6b7f9e}
.count-pill{background:#eaf1ff;border-color:#d7e5ff;color:#2c57b5;border-radius:999px}
.subject{background:rgba(248,251,255,.88);border-color:#dce7f5;border-left-color:#5e91f4;border-radius:18px;padding:16px}
.book{background:rgba(255,255,255,.8);border-color:#e2eaf6;border-radius:15px;padding:14px}
.chapter{background:rgba(240,246,255,.9);border-color:#d9e6fb;border-radius:16px}
.para,.attempt-question{background:rgba(250,252,255,.9);border-color:#e0e9f6;border-radius:17px}
.testrow{border-color:#dfe8f5;border-radius:17px;box-shadow:0 3px 12px rgba(37,79,145,.035)}
.word-result,.live-box{border-color:#dce6f3;border-radius:16px}
.camera-panel{background:rgba(239,246,255,.92);border-color:#d4e3fa;border-radius:18px}
.camera-status{border-radius:13px}
.success-banner{border-radius:16px}
.empty-state{border-radius:15px}
.auth-card{background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.95);border-radius:26px;box-shadow:0 18px 50px rgba(37,79,145,.12)}
.auth-brand img{border-radius:18px}
.brand-lockup img{border-radius:14px}
.header-title b{letter-spacing:-.02em}
.student-row{padding:12px 0}
.result{padding:14px 0}
@media(max-width:600px){
  main{padding:12px}
  header{background:rgba(248,251,255,.94)}
  .card{padding:16px;margin-bottom:14px;border-radius:20px}
  .button-row{gap:7px}
  .button-row button{flex:0 1 auto}
  .chapter button,.book>button,.subject>button{margin:5px 4px 0 0}
  .section-heading{gap:8px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* V49: progressive, button-like navigation for learning material. */
.tree-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;font-weight:750;touch-action:manipulation;padding:10px 12px;border-radius:11px;background:#eef4ff;color:#1c3d78;border:1px solid #dce7f5;}
.tree-summary::-webkit-details-marker{display:none}
.tree-summary::after{content:'＋';font-size:1.15rem;flex:0 0 auto;color:#2867e8}
details[open]>.tree-summary::after{content:'−'}
.subject-summary{font-size:1.05rem;background:#eaf1ff}
.book-summary{font-size:.98rem;background:#f7faff}
.tree-hint{font-size:.76rem;font-weight:550;color:#71809a;text-align:right}
.tree-actions{display:flex;gap:7px;flex-wrap:wrap;padding:8px 0 2px}
.tree-actions button{margin:0}
.subject>summary{margin:-1px}
.book>summary{margin:0}
.subject>.book{margin-top:10px}

/* V50 compact mobile navigation and teacher profile menu */
.header-actions{position:relative}
.profile-button{display:flex;align-items:center;gap:7px;padding:5px 9px;background:#f2f6ff;color:#203d72;border:1px solid #dce7f7;box-shadow:none}
.profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#dfeaff;color:#234fae;font-weight:800}
.profile-name{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-menu{position:absolute;right:16px;top:calc(100% + 8px);z-index:20;min-width:230px;padding:14px;background:white;border:1px solid #dce5f2;border-radius:15px;box-shadow:0 12px 32px #14213d24;display:flex;flex-direction:column;gap:8px}
.profile-menu[hidden],.compact-grid[hidden]{display:none}
.profile-menu small{color:var(--muted);overflow-wrap:anywhere}
.compact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.compact-item{min-width:0;min-height:58px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;border-radius:13px;padding:9px 11px;overflow-wrap:anywhere}
.compact-item small{font-size:.76rem;color:var(--muted);font-weight:500}
.student-tile,.subject-tile{display:flex;min-width:0;gap:4px;align-items:stretch}
.student-tile .list,.subject-tile .list{min-width:0;flex:1}
.student-tile .delete-student{padding:6px;min-width:36px}
.subject-tile{flex-direction:column}
.result-link{background:transparent;color:#2457d6;box-shadow:none;border:1px solid #dce7f7;padding:5px 8px;min-height:32px;font-size:.84rem}
.result-link:hover{background:#edf3ff;color:#1b43ae;box-shadow:none}
.student-delete-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.student-delete-list button{font-size:.75rem;padding:5px 8px;min-height:30px}
.rank-tile{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid #e0e8f5;border-radius:12px;background:#f8faff;overflow-wrap:anywhere}
.rank-tile span{font-size:.8rem;color:var(--muted)}
.student-heading{display:flex;align-items:center;gap:8px;min-width:0}
.student-heading b{overflow-wrap:anywhere}
.student-heading .profile-avatar{width:32px;height:32px;flex-basis:32px}
.test-type-list{display:grid;gap:9px}
.test-type-list .list{width:100%;text-align:left;padding:14px}
@media(max-width:600px){
  header{gap:8px;padding:10px}
  .brand-lockup{gap:7px}
  .brand-lockup img{width:34px;height:34px}
  .brand-lockup small{font-size:.68rem}
  .profile-name{display:none}
  .compact-grid{gap:6px}
  .compact-item{padding:8px;min-height:54px;font-size:.86rem}
  .student-delete-list button{font-size:.68rem}
  .testrow{grid-template-columns:minmax(0,1fr) auto;}
  .testrow>*:nth-child(2){justify-self:end}
}
/* Keep student contact/export actions at the bottom of the student page. */
main:has(>#studentActions){display:flex;flex-direction:column}
#studentActions{order:99}
.test-type-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.test-type-row .list{width:100%;min-width:0}
.test-type-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.test-type-row .list{width:100%;min-width:0}

/* Student page polish: clearer avatar, more comfortable action buttons, and paragraph preview. */
.student-heading .profile-avatar{width:46px;height:46px;flex-basis:46px;font-size:1.2rem;background:linear-gradient(145deg,#e4edff,#c9dcff);box-shadow:0 3px 10px #234fae20;border:2px solid #fff}
.student-heading #studentMenu{min-width:44px;min-height:44px;font-size:1.35rem;border-radius:13px}
main:has(>#studentActions) #studentActions button:not(.delete-student){min-height:46px;padding:10px 14px;border-radius:13px;font-size:.96rem}
main:has(>#studentActions) #studentActions .student-action-button{display:inline-flex;align-items:center;gap:7px;font-weight:750}
.paragraph-preview{margin:14px 0;padding:13px 15px;border:1px solid #d5e3fb;border-left:4px solid #4778d0;border-radius:12px;background:linear-gradient(135deg,#f5f8ff,#fff)}
.paragraph-preview span{display:block;color:#55709a;font-size:.78rem;font-weight:800;margin-bottom:5px}
.paragraph-preview p{margin:0;color:#203d72;font-weight:700;line-height:1.55;overflow-wrap:anywhere}
@media(max-width:600px){
  .student-heading .profile-avatar{width:42px;height:42px;flex-basis:42px}
  main:has(>#studentActions) #studentActions button:not(.delete-student){font-size:.9rem;padding:10px}
}

/* Camera preview uses a document-friendly 4:3 frame. */
.camera-panel video,.camera-panel canvas{aspect-ratio:4/3;object-fit:contain;}
.student-heading{flex-wrap:wrap}.student-heading .delete-student{margin-left:auto;}

.auth-choice-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}.auth-choice-grid button{min-height:58px;font-size:1rem;text-align:left;padding:16px}.camera-actions{display:flex;flex-wrap:wrap;gap:8px}.camera-actions button{flex:1 1 auto}

/* Final polish: compact 3-column rank/subject layouts and a stronger app brand. */
.auth-brand h1{font-size:clamp(1.55rem,5vw,2rem);font-weight:900;letter-spacing:.01em}
.brand-lockup b{font-size:1.15rem;font-weight:900;letter-spacing:.01em}
.dashboard-rank-grid,.dashboard-subject-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dashboard-rank-grid .rank-tile,.dashboard-subject-grid .compact-item{min-width:0}
.dashboard-rank-grid .rank-tile{padding:10px 8px;font-size:.88rem}
.dashboard-rank-grid .rank-tile span{font-size:.76rem}
@media(max-width:600px){.dashboard-rank-grid,.dashboard-subject-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.dashboard-rank-grid .rank-tile{font-size:.76rem;padding:9px 5px}.dashboard-rank-grid .rank-tile span{font-size:.67rem}.dashboard-subject-grid .compact-item{font-size:.78rem;padding:10px 5px}.brand-lockup b{font-size:1.05rem}}

/* V63 teacher dashboard refresh: visual/dashboard presentation only. Existing actions and data flows are preserved. */
.teacher-dashboard{max-width:1120px;margin:0 auto;padding-top:18px;padding-bottom:34px}
.dash-header{position:sticky;top:0;z-index:30;min-height:72px;padding:10px clamp(12px,3vw,30px);display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(250,252,255,.96);backdrop-filter:blur(14px)}
.dash-brand{display:flex;align-items:center;gap:12px;min-width:0}.dash-menu{display:none!important}.dash-brand .brand-lockup{margin:0}.dash-brand .brand-lockup img{width:48px;height:48px}.dash-brand .brand-lockup b{font-size:1.2rem}.dash-brand .brand-lockup small{font-size:.78rem;color:#3972d8;font-weight:700}
.dash-profile{display:flex;align-items:center;gap:7px!important;background:#fff!important;color:#18315c!important;border:1px solid #dbe7f7!important;box-shadow:none!important;padding:7px 11px!important}.dash-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#2867e8,#08abc3);color:#fff;font-weight:800}.dash-logout{background:#eff4ff!important;color:#2454aa!important;border:1px solid #dbe6f8!important;box-shadow:none!important}
.dash-welcome{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:22px 24px;border-radius:26px;background:linear-gradient(105deg,#eaf7ff,#edf2ff 60%,#e8fff5);box-shadow:0 12px 32px rgba(38,87,151,.08);border:1px solid rgba(255,255,255,.95)}
.dash-welcome-person{display:flex;align-items:center;gap:16px}.dash-big-avatar{display:grid;place-items:center;width:82px;height:82px;border-radius:50%;background:linear-gradient(145deg,#fff,#dcecff);border:5px solid rgba(255,255,255,.9);box-shadow:0 7px 18px rgba(37,89,156,.13);color:#2458b6;font-size:1.55rem;font-weight:900}.dash-small-title{font-size:.95rem;color:#4c6588}.dash-welcome h1{margin:2px 0 4px;font-size:clamp(1.55rem,4vw,2.15rem);color:#172d59}.dash-welcome p{margin:0;color:#536b8d;font-weight:600}.dash-welcome p span{color:#22a7b9;margin:0 5px}.dash-progress{display:flex;align-items:center;gap:12px;min-width:230px;padding:15px 20px;border-radius:20px;background:rgba(210,255,231,.76);color:#08784f}.dash-progress>span{font-size:2rem}.dash-progress small{display:block;font-weight:700;color:#25825e}.dash-progress strong{display:block;font-size:1.9rem;line-height:1.05;margin-top:2px}
.dash-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:22px 2px 11px}.dash-section-head>div{display:flex;align-items:center;gap:9px}.dash-section-head h2{margin:0;font-size:1.28rem;color:#173a76}.dash-section-icon{font-size:1.35rem}.dash-link-action,.dash-stat-note{border:0!important;background:transparent!important;color:#176bd2!important;box-shadow:none!important;padding:6px 8px!important;font-weight:800}.dash-stat-note{color:#627796!important}
.dash-student-grid,.dash-subject-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dash-student-card,.dash-more-card{position:relative;display:flex;align-items:center;gap:10px;min-height:82px;text-align:left!important;padding:13px 14px!important;border-radius:19px!important;background:rgba(255,255,255,.92)!important;border:1px solid #dce8f6!important;box-shadow:0 5px 18px rgba(37,79,145,.055)!important;color:#1c3764!important}.dash-student-card:hover,.dash-more-card:hover{transform:translateY(-1px);border-color:#bcd2f2!important}.dash-student-avatar{display:grid;place-items:center;flex:0 0 45px;width:45px;height:45px;border-radius:50%;background:#e8f0ff;color:#2761bd;font-weight:900}.dash-student-info{min-width:0;display:flex;flex-direction:column;gap:3px}.dash-student-info b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-student-info small{color:#7486a0}.dash-arrow{margin-left:auto;font-size:1.65rem;color:#3970b7;line-height:1}.dash-more-card{background:linear-gradient(135deg,#eef4ff,#f7f3ff)!important;display:grid;grid-template-columns:auto 1fr auto;align-content:center}.dash-more-card span{font-size:1.3rem;color:#3970b7}.dash-more-card b{align-self:end}.dash-more-card small{grid-column:2;color:#71839e}.dash-extra{margin-top:12px}.dash-primary-action{margin:12px 0 4px!important}
.dash-subject-card{display:flex!important;align-items:center!important;gap:11px!important;min-height:112px;padding:14px!important;text-align:left!important;border-radius:21px!important;border:1px solid rgba(255,255,255,.95)!important;box-shadow:0 8px 20px rgba(37,79,145,.055)!important;color:#183c76!important}.dash-subject-card>span:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0}.dash-subject-card b{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-subject-card small{color:#617896}.dash-subject-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:50%;font-size:1.45rem;background:rgba(255,255,255,.78)}.dash-manage{margin-left:auto;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.8);font-size:.78rem;font-weight:800}.dash-pink{background:#ffeaf4!important}.dash-blue{background:#e4f3ff!important}.dash-green{background:#e6faef!important}.dash-purple{background:#f0eaff!important}.dash-orange{background:#fff3d9!important}.dash-subject-grid .dash-more-card{grid-template-columns:auto 1fr auto;min-height:112px}.dash-subject-grid .dash-more-card .dash-subject-icon{font-size:1.1rem}
.dash-results-card{overflow:hidden;border-radius:22px;background:rgba(255,255,255,.9);border:1px solid #deebf8;box-shadow:0 7px 22px rgba(37,79,145,.05)}.dash-result-row{width:100%;display:flex;align-items:center;gap:12px;text-align:left!important;padding:15px 17px!important;border:0!important;border-bottom:1px solid #e8eef7!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#193a73!important}.dash-result-row:last-child{border-bottom:0!important}.dash-result-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:13px;font-size:1.2rem}.dash-result-main{display:flex;flex-direction:column;gap:3px;min-width:0}.dash-result-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-result-main small{color:#70829b}.dash-result-row strong{margin-left:auto;padding:9px 15px;border-radius:999px;background:#dcf9e9;color:#087a50;font-size:1rem}.dash-result-row .dash-arrow{margin-left:0}.dash-keep-going{display:flex;align-items:center;gap:13px;margin-top:18px;padding:15px 17px;border-radius:21px;background:linear-gradient(100deg,#f3e9ff,#fff0fb);border:1px solid #eee2ff}.dash-keep-going>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#8c46d7;color:#fff;font-size:1.3rem}.dash-keep-going div{display:flex;flex-direction:column;gap:3px}.dash-keep-going b{font-size:1.1rem;color:#6733a7}.dash-keep-going small{color:#657795}.dash-keep-going button{margin-left:auto!important;background:linear-gradient(110deg,#7c3fd0,#a047db)!important}
.dash-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px}.dash-quick-grid button{display:flex;align-items:center;gap:9px;padding:13px!important;text-align:left!important;background:rgba(255,255,255,.88)!important;color:#1b3c70!important;border:1px solid #dce8f6!important;box-shadow:none!important;border-radius:17px!important}.dash-quick-grid button>span{font-size:1.3rem}.dash-quick-grid button b{font-size:.9rem}.dash-quick-grid button small{margin-left:auto;color:#73849d}.dash-empty{grid-column:1/-1;padding:24px;text-align:center;color:#71829c;background:rgba(255,255,255,.7);border:1px dashed #cad9ed;border-radius:18px}
@media(max-width:850px){.dash-student-grid,.dash-subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-quick-grid{grid-template-columns:repeat(2,1fr)}.dash-welcome{align-items:flex-start;flex-direction:column}.dash-progress{width:100%;min-width:0}.dash-header .profile-name{display:none}}
@media(max-width:600px){.teacher-dashboard{padding:10px 12px 28px}.dash-header{padding:8px 10px;gap:8px}.dash-brand .brand-lockup img{width:39px;height:39px}.dash-brand .brand-lockup b{font-size:1rem}.dash-brand .brand-lockup small{font-size:.66rem}.dash-logout{display:inline-flex!important}.dash-welcome{padding:17px;border-radius:21px}.dash-big-avatar{width:64px;height:64px;font-size:1.2rem}.dash-welcome h1{font-size:1.45rem}.dash-section-head h2{font-size:1.1rem}.dash-student-grid,.dash-subject-grid{grid-template-columns:1fr 1fr;gap:9px}.dash-student-card,.dash-more-card{min-height:76px;padding:10px!important}.dash-student-avatar{width:38px;height:38px;flex-basis:38px}.dash-student-info b{font-size:.9rem}.dash-subject-card{min-height:98px;padding:11px!important}.dash-subject-icon{width:40px;height:40px;flex-basis:40px;font-size:1.2rem}.dash-manage{display:none}.dash-quick-grid{gap:8px}.dash-quick-grid button{padding:11px!important;display:grid;grid-template-columns:auto 1fr}.dash-quick-grid button small{grid-column:2;margin:0}.dash-keep-going{align-items:flex-start;flex-wrap:wrap}.dash-keep-going button{margin-left:61px!important}.dash-result-row{padding:12px!important}.dash-result-icon{width:38px;height:38px;flex-basis:38px}.dash-result-row strong{padding:7px 11px;font-size:.9rem}}
/* V64 dashboard avatar refinement */
.dash-avatar,.dash-big-avatar,.dash-student-avatar{overflow:hidden;position:relative}.dash-avatar img,.dash-big-avatar img,.dash-student-avatar img{width:100%;height:100%;display:block;object-fit:cover}.dash-big-avatar{padding:0!important}.dash-student-avatar{padding:0!important;background:#eef5ff!important}.dash-avatar{padding:0!important;background:#eef5ff!important}
/* Preserve textbook paragraph line breaks/spacing in the display layer. The stored
   paragraph text remains unchanged; this only affects how the reader sees it. */
.math-paragraph.original-test-text,
.paragraph-preview.math-paragraph,
.math-paragraph.pdf-original { white-space: pre-wrap; }
.original-test-text { padding: 10px 0; overflow-x: auto; }
.paragraph-preview.math-paragraph > div { white-space: pre-wrap; }
.math-paragraph mjx-container { max-width: 100%; overflow-x: auto; }
.rich-paragraph-editor{min-height:150px;padding:12px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;line-height:1.7;white-space:pre-wrap;overflow:auto;font-size:16px;cursor:text;pointer-events:auto;user-select:text;-webkit-user-select:text;-webkit-user-modify:read-write;touch-action:manipulation;caret-color:#2563eb}
.rich-paragraph-editor:focus{outline:2px solid rgba(37,99,235,.22);border-color:#2563eb;-webkit-user-modify:read-write}
.rich-paragraph-editor:empty:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none}
.rich-paragraph-editor math{font-size:1.05em}
.rich-paragraph-editor sup,.rich-paragraph-editor sub{line-height:0}
.rich-paragraph-editor mfrac{display:inline-block;vertical-align:middle}
.rich-ocr-result{min-height:180px;max-height:55vh;overflow:auto;border:1px solid #cbd5e1;border-radius:12px;background:#fff;padding:14px;line-height:1.75;white-space:pre-wrap;outline:none}
.rich-ocr-result:empty:before{content:attr(data-placeholder);color:#94a3b8}
.rich-ocr-result .formula-source{display:inline-block;margin:.08em .12em;font-size:1.05em;white-space:nowrap}
.rich-paragraph-editor .formula-source,.math-paragraph .formula-source{white-space:nowrap}

/* V69: restore the original short pre-test preview and keep book-formula image lines visually exact. */
.test-start-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.test-start-row button{flex:1 1 150px}
.ocr-book-line{display:block;position:relative;margin:2px 0;line-height:1.5}
.ocr-book-line-text{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.ocr-formula-line-image{display:block;max-width:100%;height:auto;object-fit:contain}
/* V71 formula renderer: editable/book-paste formulas keep numerator/denominator and scripts readable. */
.formula-math{display:inline-flex;align-items:center;gap:.18em;vertical-align:middle;font-family:Georgia,'Times New Roman',serif;font-style:italic;line-height:1.05}
.math-frac{display:inline-flex;flex-direction:column;align-items:stretch;vertical-align:middle;line-height:1.02;margin:0 .08em;font-style:italic}
.math-frac-top{display:block;text-align:center;padding:0 .16em .08em;border-bottom:1.5px solid currentColor;min-width:1.25em}
.math-frac-bottom{display:block;text-align:center;padding:.08em .16em 0;min-width:1.25em}
.ocr-book-line{display:block;margin:.35em 0;line-height:1.75}
.formula-known{white-space:normal}
.math-sqrt{display:inline-flex;align-items:flex-start;vertical-align:middle;font-style:normal}
.math-sqrt-body{border-top:1.2px solid currentColor;margin-left:.06em;padding:0 .08em;font-style:italic}
.formula-source sup,.formula-source sub,.math-paragraph sup,.math-paragraph sub{font-size:.72em;line-height:0;position:relative}
.formula-source sup,.math-paragraph sup{top:-.25em}
.formula-source sub,.math-paragraph sub{top:.1em}

.formula-known{display:block;margin:7px 0;line-height:1.65}.formula-known .formula-math{font-size:1.08em}.formula-example{font-style:normal;font-family:inherit;margin-left:.25em}.rich-ocr-result .formula-known{user-select:text}

/* V80: reliable negative scientific exponents on Android/limited fonts. */
.formula-example .formula-exp{font-size:.72em;line-height:0;position:relative;top:-.35em;font-style:normal}
.formula-math .formula-exp{font-size:.72em;line-height:0;position:relative;top:-.35em}

/* Formula Editor: mobile-friendly insert/edit without changing stored paragraph/test logic */
.formula-source{cursor:pointer;border-radius:5px;}
.rich-paragraph-editor .formula-source{background:rgba(37,99,235,.06);padding:1px 3px;}
.rich-paragraph-editor .formula-source:active,.rich-paragraph-editor .formula-source:hover{outline:1px dashed #2563eb;background:rgba(37,99,235,.10);}
.formula-editor-modal{position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:14px;}
.formula-editor-modal[hidden]{display:none;}
.formula-editor-dialog{width:min(720px,100%);max-height:min(92vh,760px);overflow:auto;background:#fff;border-radius:18px;padding:16px;box-shadow:0 20px 60px rgba(15,23,42,.25);pointer-events:auto;position:relative;z-index:1;}
.formula-editor-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px;}
.formula-editor-preview{min-height:78px;display:flex;align-items:center;justify-content:center;border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc;padding:14px;margin-bottom:10px;font-size:1.35rem;overflow:auto;}
.formula-editor-input{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:12px;padding:12px;font-size:17px;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical;color:#172b4d;background:#fff;pointer-events:auto !important;user-select:text !important;-webkit-user-select:text !important;-webkit-touch-callout:default;touch-action:auto;caret-color:#2563eb;position:relative;z-index:2;touch-action:manipulation;-webkit-user-modify:read-write;outline:none;white-space:pre-wrap;overflow:auto;}
.formula-editor-input:focus{outline:2px solid rgba(37,99,235,.18);border-color:#2563eb;}
.formula-editor-contenteditable:empty:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none;}
.formula-editor-tools{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0;}
.formula-tool-btn{min-width:42px;min-height:40px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#29405f !important;font-size:16px;padding:7px 9px;cursor:pointer;pointer-events:auto;touch-action:manipulation;}
.formula-tool-btn:active{transform:translateY(1px);}
.formula-editor-hint{font-size:13px;color:#64748b;margin:4px 0 8px;line-height:1.5;}
.formula-insert-btn{white-space:nowrap;}
@media (max-width:520px){.formula-editor-modal{padding:8px;align-items:flex-end}.formula-editor-dialog{border-radius:18px 18px 0 0;padding:13px;max-height:94vh}.formula-editor-preview{min-height:66px;font-size:1.2rem}.formula-tool-btn{min-width:40px;min-height:40px}.formula-editor-input{font-size:16px;}}
/* Formula editor: keep the editor and its special-key palette usable while the
   Android keyboard is open. The visualViewport height is synchronized by app.js. */
.formula-editor-modal{height:100dvh;box-sizing:border-box;overflow:hidden;}
.formula-editor-dialog{max-height:calc(100dvh - 16px);}
.formula-editor-tools{max-height:34vh;overflow:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
.formula-tool-btn{flex:0 0 auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
@media (max-width:520px){.formula-editor-dialog{max-height:calc(100dvh - 8px);}.formula-editor-tools{max-height:28vh;}}
.progress-chart-btn{white-space:nowrap;font-weight:800;border:1px solid #cbd5e1;background:#f8fafc;color:#1e40af;border-radius:10px;padding:9px 11px;cursor:pointer;min-height:40px}
.progress-chart-card{overflow:hidden}.progress-chart-wrap{width:100%;overflow-x:auto;margin:8px 0 4px}.progress-chart-svg{display:block;width:100%;min-width:320px;height:auto;max-height:230px}.progress-grid-line{stroke:#e5e7eb;stroke-width:1}.progress-axis{stroke:#94a3b8;stroke-width:1.2}.progress-axis-label{font-size:9px;fill:#64748b}.progress-line{stroke:#2563eb;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.progress-dot{fill:#2563eb;stroke:#fff;stroke-width:2}.progress-trend{font-weight:800;text-align:center;margin:8px 0 12px}.progress-attempt-list{display:grid;gap:7px}.progress-attempt-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.progress-attempt-row span{display:flex;flex-direction:column}.progress-attempt-row small{font-weight:500;color:#64748b;margin-top:2px}.progress-attempt-row strong{font-size:1.02rem;color:#1d4ed8}@media(max-width:600px){.progress-chart-btn{width:100%}.progress-attempt-row{align-items:flex-start}}

/* V92: Option 2 — Fresh Green Education visual theme. Visual-only; no application logic/data changes. */
:root{
  --ink:#17352a;
  --muted:#64786e;
  --brand:#20a45a;
  --brand-dark:#168447;
  --brand-soft:#e8f8ef;
  --teal:#16a085;
  --line:#d8eadf;
  --paper:rgba(255,255,255,.94);
  --canvas:#eef9f2;
  --danger:#b42318;
  --radius:20px;
  --shadow:0 9px 26px rgba(31,91,57,.075);
}
body{
  background:radial-gradient(ellipse at 8% 0%,rgba(91,210,132,.18),transparent 38%),
             radial-gradient(ellipse at 96% 30%,rgba(75,190,166,.13),transparent 34%),
             linear-gradient(145deg,#f3fbf5 0%,#eaf8f0 52%,#f4fbf7 100%);
  color:var(--ink);
}
header{
  background:rgba(249,255,251,.94);
  border-bottom-color:rgba(203,229,212,.9);
  box-shadow:0 5px 20px rgba(31,91,57,.07);
}
main{padding:clamp(14px,3vw,30px)}
.card{
  background:rgba(255,255,255,.86);
  border-color:rgba(255,255,255,.96);
  border-radius:22px;
  box-shadow:0 8px 26px rgba(31,91,57,.06);
  backdrop-filter:blur(10px);
}
button{
  background:linear-gradient(110deg,#20a45a 0%,#18a878 58%,#159c86 100%);
  border-color:transparent;
  border-radius:999px;
  box-shadow:0 5px 13px rgba(24,148,88,.15);
}
button:hover{background:linear-gradient(110deg,#198f4d,#14946b 58%,#128a76);box-shadow:0 7px 17px rgba(24,148,88,.2)}
.btn-secondary,.list{
  color:#365848;
  background:rgba(255,255,255,.8);
  border-color:#d5e9dc;
  box-shadow:none;
}
.btn-secondary:hover,.list:hover{color:#167342;background:#edf9f1;box-shadow:none}
.btn-danger,.delete-student,button[onclick*="deleteSubject"],button[onclick*="deleteChapter"],button[onclick*="deleteParagraph"],button[data-admin-delete]{
  background:#fff2f0;color:var(--danger);border-color:#ffd1cc;box-shadow:none
}
input,textarea,select{border-color:#cfe3d5;background:rgba(255,255,255,.94)}
input:focus,textarea:focus,select:focus{border-color:#63bf86;box-shadow:0 0 0 3px rgba(32,164,90,.11);outline:none}
label{color:#315342}
.section-kicker,.header-eyebrow{color:#6b8275}
.count-pill{background:#e8f8ef;border-color:#cfead9;color:#187343}
.subject{background:rgba(247,253,249,.92);border-color:#d9ebe0;border-left-color:#39b76d;border-radius:18px;padding:16px}
.book{background:rgba(255,255,255,.84);border-color:#deeee4;border-radius:15px;padding:14px}
.chapter{background:rgba(239,250,243,.94);border-color:#d4eadc;border-radius:16px}
.para,.attempt-question{background:rgba(251,255,252,.94);border-color:#dcece2;border-radius:17px}
.testrow{border-color:#dcece2;border-radius:17px;box-shadow:0 3px 12px rgba(31,91,57,.04)}
.word-result,.live-box{border-color:#d9eae0;border-radius:16px}
.camera-panel{background:rgba(239,250,244,.94);border-color:#d1e8d8;border-radius:18px}
.camera-status{border-radius:13px}
.success-banner{background:#ecfdf3;border-color:#a7e7bf;color:#166534;border-radius:16px}
.empty-state{background:#f6fcf8;border-color:#d3e8da;border-radius:15px}
.auth-card{background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.98);box-shadow:0 18px 50px rgba(31,91,57,.12)}
.auth-brand img{box-shadow:0 8px 20px rgba(32,164,90,.18)}
.profile-button{background:#edf9f1;color:#1d6840;border-color:#d5e9dc}
.profile-avatar{background:#dff4e7;color:#187343}
.profile-menu{border-color:#d8e9de;box-shadow:0 12px 32px rgba(31,91,57,.14)}
.tree-summary{background:#e9f8ef;color:#1d6941;border-color:#d4eadd}
.tree-summary::after{color:#20a45a}
.subject-summary{background:#e3f6eb}
.book-summary{background:#f4fbf7}
.compact-item{border-color:#d9ebe0}
@media(max-width:600px){
  main{padding:12px}
  header{background:rgba(249,255,251,.96)}
  .card{padding:16px;margin-bottom:14px;border-radius:20px}
}

/* V93: Option 2 button/card layout refinement only — no feature/logic changes. */
button{
  border-radius:13px;
  min-height:44px;
  padding:10px 15px;
  font-weight:700;
  box-shadow:0 4px 10px rgba(24,148,88,.12);
}
button:hover{box-shadow:0 6px 14px rgba(24,148,88,.16)}
.btn-secondary,.list{
  border-radius:12px;
  background:#ffffff;
  border-color:#cfe7d8;
  color:#286044;
}
.btn-secondary:hover,.list:hover{background:#edf9f1;color:#167342}
.chapter button,.book>button,.subject>button{border-radius:12px}
.button-row{gap:8px}
.button-row button{border-radius:12px}
.tree-actions{gap:8px}
.tree-actions button{border-radius:12px}
.testrow{padding:13px;border-radius:15px;background:#fbfffc}
.para,.attempt-question{padding:15px;border-radius:16px}
.progress-chart-btn{
  border-radius:12px;
  border-color:#bfe1cb;
  background:#eaf8ef;
  color:#187343;
  box-shadow:none;
}
.progress-chart-btn:hover{background:#dff4e7;color:#12663a;box-shadow:none}
.result-link{border-radius:10px;color:#187343;border-color:#cfe7d8;background:#f4fbf7}
.result-link:hover{background:#e6f7ec;color:#12663a}
@media(max-width:600px){
  button{border-radius:12px}
  .button-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .button-row button{width:100%;min-width:0}
  .tree-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .tree-actions button{width:100%;margin:0}
}

/* V94 — Option A clean 2-column action grid for Test Type and Paragraph pages. */
.option-a-test-types{display:grid;gap:12px}
.test-type-card{border:1px solid #d7eadf;border-radius:17px;background:#fbfffc;padding:12px;box-shadow:0 3px 12px rgba(31,91,57,.04)}
.test-type-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;margin-bottom:9px}
.test-type-main{width:100%;min-width:0;text-align:left;font-size:1rem;font-weight:800;padding:13px 14px}
.test-type-score{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:7px 11px;border:1px solid #cfe7d8;border-radius:11px;background:#f4fbf7;color:#187343;font-weight:800;white-space:nowrap}
.test-type-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.test-type-actions button{width:100%;min-width:0;min-height:42px}
.paragraph-option-a{display:block;margin:12px 0;padding:13px;border:1px solid #d7eadf;border-radius:17px;background:#fbfffc;box-shadow:0 3px 12px rgba(31,91,57,.04)}
.paragraph-row-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding:1px 3px}
.paragraph-row-heading b{font-size:1.02rem;color:#203b30}
.paragraph-row-heading span{color:#6a7d73;font-size:.88rem;white-space:nowrap}

.paragraph-list-preview{display:grid;grid-template-columns:minmax(0,1fr);margin:0 0 9px;padding:7px 8px;border:1px solid #d7eadf;border-radius:11px;background:#f4fbf7;min-width:0}
.paragraph-list-preview-label{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;font-weight:700;font-size:.82rem;line-height:1.2;color:#244438;text-align:center;overflow:hidden}
.paragraph-list-preview-start,.paragraph-list-preview-end{display:inline-block;max-width:44%;padding:4px 7px;border-radius:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.paragraph-list-preview-start{background:#e7f3ff;color:#24527a}
.paragraph-list-preview-end{background:#f9e7fb;color:#713b78}
.paragraph-list-preview-ellipsis{color:#687a71;font-weight:900}
.paragraph-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.paragraph-action-grid button{width:100%;min-width:0;min-height:38px;padding:7px 8px;font-size:.78rem;line-height:1.15}
.paragraph-action-grid .primary-test-btn{grid-column:1/-1;background:linear-gradient(135deg,#17a56d,#12b07c);color:#fff;border:0;box-shadow:0 5px 12px rgba(18,176,124,.18);font-weight:800}
.paragraph-action-grid .primary-test-btn:hover{background:linear-gradient(135deg,#159b66,#0fa56f)}
.pronunciation-btn{border:1px solid #bfe1cb;background:#eaf8ef;color:#187343}
@media(max-width:600px){
  .test-type-card{padding:10px;border-radius:16px}
  .test-type-heading{grid-template-columns:minmax(0,1fr) auto;gap:7px}
  .test-type-main{font-size:.96rem;padding:12px 11px}
  .test-type-score{font-size:.82rem;min-height:38px;padding:6px 8px}
  .test-type-actions{gap:7px}
  .test-type-actions button{min-height:43px;padding:9px 8px;font-size:.82rem}
  .paragraph-option-a{padding:11px;border-radius:16px}
  .paragraph-row-heading{margin-bottom:8px}
  .paragraph-action-grid{gap:7px}
  .paragraph-action-grid button{min-height:38px;padding:7px 6px;font-size:.76rem;line-height:1.15}
}


/* V97 student selection/list layout: scrollable lists with stable navigation */
.student-flow-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 12px}
.student-flow-nav button{min-height:44px;font-weight:700}
.scroll-list{display:flex;flex-direction:column;gap:9px;max-height:58vh;overflow-y:auto;padding-right:3px;-webkit-overflow-scrolling:touch}
.scroll-list .compact-item{width:100%;text-align:left;min-height:48px}
@media (min-width:700px){.student-flow-nav{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* V98 — Exact requested selector/button layout: 4 top columns + 3 bottom columns. */
.student-flow-top-nav{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  margin:0 0 12px;
  align-items:stretch;
}
.student-flow-select{
  min-width:0;
  min-height:60px;
  padding:7px 5px;
  border:1px solid #cfe7d8;
  border-radius:13px;
  background:#ffffff;
  color:#205a3f;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  box-shadow:0 2px 8px rgba(31,91,57,.05);
}
.student-flow-select:hover{background:#f0faf4;color:#17643b}
.student-flow-select.is-selected{background:#f4fcf7;border-color:#9fd7b5;box-shadow:0 2px 9px rgba(31,91,57,.07)}
.student-flow-select:disabled{opacity:.7;cursor:not-allowed}
.student-flow-select-label{font-size:.67rem;font-weight:800;line-height:1.05;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.student-flow-select-value{font-size:.72rem;font-weight:700;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-flow-select:not(.is-selected) .student-flow-select-value{color:#7b8d84;font-weight:600}
.student-flow-bottom-nav{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin:14px 0 4px;
  padding-top:4px;
  background:transparent;
}
.student-flow-bottom-btn{
  min-width:0;
  min-height:52px;
  padding:8px 6px;
  border:1px solid transparent;
  border-radius:13px;
  color:#fff;
  font-weight:800;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  line-height:1.05;
  box-shadow:0 4px 10px rgba(31,91,57,.11);
}
.student-flow-bottom-btn span{font-size:.72rem;white-space:normal;text-align:center}
.student-flow-bottom-btn.paragraph{background:linear-gradient(135deg,#10a968,#0d9b73)}
.student-flow-bottom-btn.complete{background:linear-gradient(135deg,#1188e8,#1874db)}
.student-flow-bottom-btn.qa{background:linear-gradient(135deg,#9a4ee8,#cf2db9)}
.student-flow-bottom-btn:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}
.student-filter-card h2{margin-bottom:4px}
.student-filter-search{width:100%;min-height:44px;margin:8px 0 10px;padding:10px 12px;border:1px solid #cfe7d8;border-radius:12px;background:#fff;color:#24473a}
.student-filter-item{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}
.student-filter-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-filter-item small{flex:0 0 auto;color:#6f8578;font-size:.72rem}
.student-filter-item.is-selected{background:#ebf9f0;border-color:#9fd7b5;color:#17643b}
.student-chapter-hub{padding-bottom:12px}
.student-chapter-hub-note{padding:13px;border:1px solid #cfe7d8;border-radius:13px;background:#f4fbf7;color:#2a654a;font-weight:700;text-align:center}
.qa-question-preview{margin:7px 0 10px;padding:10px 11px;border:1px solid #d8ebe0;border-radius:11px;background:#f8fdf9;color:#27463a;line-height:1.45}
@media(max-width:600px){
  .student-flow-top-nav{gap:5px}
  .student-flow-select{min-height:58px;padding:6px 4px;border-radius:12px}
  .student-flow-select-label{font-size:.62rem}
  .student-flow-select-value{font-size:.68rem}
  .student-flow-bottom-nav{gap:6px;margin-top:12px}
  .student-flow-bottom-btn{min-height:50px;border-radius:12px;padding:7px 4px}
  .student-flow-bottom-btn span{font-size:.68rem}
  .student-filter-item{min-height:52px}
}

/* V107 — Keep student flow selectors and test-type controls fixed while the selected content scrolls.
   UI-only behavior; paragraph/Q&A/Complete Chapter data, test logic, history and scoring are untouched. */
.student-flow-top-nav{
  position:sticky;
  top:0;
  z-index:40;
  margin-top:-1px;
  padding:6px 0 8px;
  background:rgba(241,250,246,.97);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 4px 12px rgba(24,91,61,.08);
}
.student-flow-bottom-nav{
  position:sticky;
  bottom:0;
  z-index:40;
  margin:14px -1px 0;
  padding:8px 1px calc(8px + env(safe-area-inset-bottom, 0px));
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 -5px 14px rgba(24,91,61,.10);
}
@media(max-width:600px){
  .student-flow-top-nav{padding-top:5px;padding-bottom:7px}
  .student-flow-bottom-nav{padding-top:7px}
}

/* V100 — compact per-item Speaker ON/OFF control; existing action buttons unchanged. */
.list-speaker-btn{display:inline-flex!important;align-items:center;justify-content:center;width:42px!important;min-width:42px!important;height:38px;min-height:38px!important;padding:0!important;border:1px solid #bfe1cb;background:#eaf8ef;color:#187343;border-radius:10px;font-size:1.05rem;line-height:1;cursor:pointer;font-weight:800}
.list-speaker-btn:hover{background:#dff4e7}
@media(max-width:600px){.list-speaker-btn{width:40px!important;min-width:40px!important;height:36px;min-height:36px!important;font-size:1rem}}
/* V103 — Paragraph list compact one-row action layout, matching the approved reference image.
   UI-only change for the Paragraph selection list; test logic, history, scoring and data are untouched. */
.paragraph-list-preview > .paragraph-list-preview-label{
  display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;width:100%;
  font-weight:700;font-size:.82rem;line-height:1.15;color:#244438;text-align:center;overflow:hidden;
}
.paragraph-list-preview > .paragraph-list-preview-label .paragraph-list-preview-start,
.paragraph-list-preview > .paragraph-list-preview-label .paragraph-list-preview-end{
  flex:0 1 auto;max-width:44%;min-width:0;
}
.paragraph-list-preview > .paragraph-list-preview-label .paragraph-list-preview-start{text-align:left}
.paragraph-list-preview > .paragraph-list-preview-label .paragraph-list-preview-end{text-align:right}
.paragraph-list-actions{
  display:grid;
  grid-template-columns:minmax(46px,.75fr) minmax(78px,1.25fr) minmax(62px,1fr) minmax(96px,1.45fr) 40px;
  gap:5px;
  align-items:stretch;
}
.paragraph-list-actions button{
  width:100%;min-width:0;min-height:38px;height:38px;
  padding:3px 4px;font-size:.70rem;line-height:1.04;
  border-radius:10px;white-space:normal;overflow:hidden;
}
.paragraph-list-actions .primary-test-btn{
  grid-column:auto!important;min-height:38px;height:38px;
  padding:3px 5px;font-size:.74rem;
}
.paragraph-list-actions .list-speaker-btn{
  width:40px!important;min-width:40px!important;height:38px!important;min-height:38px!important;
  padding:0!important;font-size:1rem;
}
@media(max-width:600px){
  .paragraph-list-preview > .paragraph-list-preview-label{font-size:.78rem;gap:5px}
  .paragraph-list-actions{grid-template-columns:minmax(44px,.75fr) minmax(74px,1.25fr) minmax(58px,1fr) minmax(92px,1.45fr) 38px;gap:4px}
  .paragraph-list-actions button{min-height:36px;height:36px;padding:3px 3px;font-size:.66rem;line-height:1.02}
  .paragraph-list-actions .primary-test-btn{min-height:36px;height:36px;font-size:.70rem;padding:3px 4px}
  .paragraph-list-actions .list-speaker-btn{width:38px!important;min-width:38px!important;height:36px!important;min-height:36px!important;font-size:.96rem}
}


/* V106 — Attractive colorful visual theme only; no layout, feature, logic, API, scoring, history, or data changes. */
:root{
  --ink:#112b63;
  --muted:#6a7890;
  --brand:#2774e8;
  --brand-dark:#1959c6;
  --brand-soft:#eaf4ff;
  --teal:#12b8b0;
  --line:#dce8f7;
  --paper:rgba(255,255,255,.92);
  --canvas:#eef8ff;
  --shadow:0 10px 28px rgba(29,73,139,.09);
}
body{
  background:
    radial-gradient(ellipse at 8% 0%,rgba(77,157,255,.18),transparent 34%),
    radial-gradient(ellipse at 94% 18%,rgba(73,225,203,.16),transparent 31%),
    radial-gradient(ellipse at 55% 100%,rgba(177,132,255,.10),transparent 36%),
    linear-gradient(145deg,#f4f9ff 0%,#eafaff 50%,#f5f1ff 100%);
  color:var(--ink);
}
header{
  background:linear-gradient(100deg,#103f94 0%,#1681d6 48%,#18b8ae 100%);
  border-bottom-color:rgba(255,255,255,.28);
  box-shadow:0 5px 20px rgba(17,73,145,.20);
  color:#fff;
}
header b,.header-eyebrow,.section-kicker{color:inherit}
header button.btn-secondary{
  background:rgba(255,255,255,.96);
  color:#1e795f;
  border-color:rgba(255,255,255,.72);
  box-shadow:0 4px 12px rgba(7,51,91,.10);
}
header button.btn-secondary:hover{background:#fff;color:#16634f}
.card{
  background:rgba(255,255,255,.89);
  border-color:rgba(255,255,255,.96);
  box-shadow:0 10px 28px rgba(29,73,139,.075);
}
button{
  background:linear-gradient(110deg,#2f74ea 0%,#197fda 55%,#16b9b4 100%);
  color:#fff;
  box-shadow:0 5px 13px rgba(39,116,232,.18);
}
button:hover{background:linear-gradient(110deg,#255fcf 0%,#166fbe 55%,#129c99 100%);box-shadow:0 7px 17px rgba(39,116,232,.22)}
.btn-secondary,.list{
  background:rgba(255,255,255,.92);
  color:#29527c;
  border-color:#cfe1f3;
}
.btn-secondary:hover,.list:hover{background:#edf6ff;color:#164f9f}
.profile-button{background:rgba(255,255,255,.90);color:#1e4d86;border-color:#cfe1f3}
.profile-avatar{background:#dff1ff;color:#245eb8}
.profile-menu{border-color:#d5e4f2;box-shadow:0 12px 32px rgba(29,73,139,.15)}
.count-pill{background:#e8f3ff;border-color:#cfe3fb;color:#245bb4}
.empty-state{background:#f6fbff;border-color:#cfe0f2;color:#6a7890}
.success-banner{background:#ecfff7;border-color:#a8edd0;color:#147255}
.subject{background:rgba(246,251,255,.94);border-color:#d7e7f7;border-left-color:#4d92f3}
.book{background:rgba(255,255,255,.88);border-color:#dfebf7}
.chapter{background:rgba(242,248,255,.94);border-color:#d5e5f8}
.para,.attempt-question,.paragraph-option-a{background:rgba(255,255,255,.93);border-color:#dce8f7}
.testrow{background:rgba(255,255,255,.92);border-color:#d9e7f6;box-shadow:0 3px 12px rgba(29,73,139,.045)}
.word-result,.live-box{border-color:#d8e6f4;background:rgba(255,255,255,.90)}
.camera-panel{background:rgba(237,247,255,.95);border-color:#cfe2f7}
.camera-status{background:#fff;border-color:#dce8f5}
.student-flow-select{
  background:#fff;
  border-color:#cfe1f3;
  color:#153d72;
}
.student-flow-select:hover{background:#f4faff;color:#1858aa}
.student-flow-select.is-selected{background:#f7fbff;border-color:#8fc4ff;box-shadow:0 2px 9px rgba(33,112,200,.09)}
.student-flow-top-nav .student-flow-select:nth-child(1){background:linear-gradient(145deg,#edf7ff,#dff0ff);border-color:#b4ddff;color:#174f9d}
.student-flow-top-nav .student-flow-select:nth-child(2){background:linear-gradient(145deg,#fbf0ff,#f5ddff);border-color:#e7bcff;color:#6f2ab0}
.student-flow-top-nav .student-flow-select:nth-child(3){background:linear-gradient(145deg,#effff7,#def8ea);border-color:#a7e6c3;color:#1c7b57}
.student-flow-top-nav .student-flow-select:nth-child(4){background:linear-gradient(145deg,#fffaf0,#fff1c9);border-color:#f4d68a;color:#875d11}
.student-flow-bottom-btn.paragraph{background:linear-gradient(135deg,#19b77b,#10a86c)}
.student-flow-bottom-btn.complete{background:linear-gradient(135deg,#1d91ed,#2866db)}
.student-flow-bottom-btn.qa{background:linear-gradient(135deg,#a25aed,#d23cbd)}
.paragraph-list-preview{background:rgba(247,252,255,.96);border-color:#d7e6f5}
.paragraph-list-preview-start{background:#e2f1ff;color:#1f68a9}
.paragraph-list-preview-end{background:#fae5fb;color:#74407e}
.paragraph-list-preview-ellipsis{color:#71839b}
.paragraph-row-heading b{color:#163d73}
.paragraph-row-heading span{color:#718096}
.paragraph-list-actions .progress-chart-btn{
  background:linear-gradient(145deg,#e9fff3,#d9f8e8);
  border-color:#b8ebcd;
  color:#177552;
}
.paragraph-list-actions .progress-chart-btn:hover{background:#d6f5e4;color:#126546}
.paragraph-list-actions .history-underline-btn{
  background:linear-gradient(145deg,#6f4be8,#7542d9);
  border-color:#6540d0;
  color:#fff;
  box-shadow:0 5px 12px rgba(102,67,218,.18);
}
.paragraph-list-actions .history-underline-btn:hover{background:linear-gradient(145deg,#6240d3,#6736c7)}
.paragraph-list-actions .pronunciation-btn{
  background:linear-gradient(145deg,#dff8ff,#ccefff);
  border-color:#a9dff2;
  color:#1460ae;
}
.paragraph-list-actions .pronunciation-btn:hover{background:#c9effa;color:#0d4e95}
.paragraph-list-actions .list-speaker-btn{
  background:linear-gradient(145deg,#eef0ff,#e1e5ff);
  border-color:#cbd2ff;
  color:#2457ad;
}
.paragraph-list-actions .list-speaker-btn:hover{background:#dfe5ff;color:#18488f}
.paragraph-list-actions .primary-test-btn{
  background:linear-gradient(135deg,#18b678,#26c95f);
  box-shadow:0 5px 12px rgba(23,173,91,.20);
}
.paragraph-list-actions .primary-test-btn:hover{background:linear-gradient(135deg,#149f68,#20b650)}
.progress-chart-btn{color:#177552}
.result-link{background:#f1f8ff;color:#2b61ae;border-color:#cfe2f5}
.result-link:hover{background:#e4f1ff;color:#1c4f9a}
.tree-summary{background:#e8f4ff;color:#22589f;border-color:#d2e5f7}
.tree-summary::after{color:#2975df}
.subject-summary{background:#e6f6ff}
.book-summary{background:#f5fbff}
.student-filter-search{border-color:#cfe1f0;color:#254f76}
.student-filter-item.is-selected{background:#e6f5ff;border-color:#98cfff;color:#19589e}
.student-chapter-hub-note{background:#eef8ff;border-color:#cee3f7;color:#2c5e87}
.qa-question-preview{background:#f5f9ff;border-color:#d9e6f5;color:#2b4562}
.rich-paragraph-editor{border-color:#cbdff0;background:#fff;caret-color:#2470d9}
.rich-paragraph-editor:focus{outline-color:rgba(39,116,232,.22);border-color:#2f74ea}
.manual-word.correct{background:#ecfff4}
.manual-word.speech-detected{color:#168153;text-decoration-color:#168153}
.manual-word.manual-added{color:#215fba;background:#edf5ff;text-decoration-color:#2f74ea}
.formula-source{color:#1a4b88}
.camera-panel video,.camera-panel canvas{background:#102a52}
@media(max-width:600px){header{background:linear-gradient(100deg,#103f94 0%,#1681d6 48%,#18b8ae 100%)}}


/* V109 — Truly fixed student-flow controls.
   The 4 top selectors and 3 bottom choices are outside the scrolling middle card.
   Only the middle content card scrolls; selectors never drift even by 1px. */
main:has(.student-flow-top-nav){
  height:calc(100dvh - 62px);
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
main:has(.student-flow-top-nav) > .student-flow-top-nav{
  position:relative !important;
  top:auto !important;
  flex:0 0 auto;
  margin-top:0;
}
main:has(.student-flow-top-nav) > .card{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  margin-bottom:0;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
main:has(.student-flow-top-nav) > .student-flow-bottom-nav{
  position:relative !important;
  bottom:auto !important;
  flex:0 0 auto;
  margin-top:8px;
}
@media(max-width:600px){
  main:has(.student-flow-top-nav){height:calc(100dvh - 58px);}
}

/* V110 — Additive Read Content buttons only. Existing buttons and their handlers are unchanged. */
.read-content-btn{font-weight:800;cursor:pointer;}
.readable-content-card{padding-bottom:18px}
.readable-content-body{font-size:1rem;line-height:1.75;color:var(--ink);background:var(--brand-soft);border:1px solid var(--line);border-radius:12px;padding:14px;white-space:normal;overflow-wrap:anywhere}
.readable-content-body .formula-source,.readable-content-body .formula-math{max-width:100%;overflow-x:auto}


/* V111 — Read button compactness and single-row action layout. Existing buttons/features unchanged. */
.paragraph-action-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;align-items:stretch}
.paragraph-action-grid button{min-height:34px;height:34px;padding:2px 3px;font-size:.62rem;line-height:1.02;white-space:normal;border-radius:8px}
.paragraph-action-grid .read-content-btn{font-size:.70rem;font-weight:800;white-space:nowrap;padding:2px 4px}
.paragraph-action-grid .list-speaker-btn{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;font-size:.9rem}
.paragraph-action-grid .primary-test-btn{grid-column:auto!important;min-height:34px;height:34px;padding:2px 3px;font-size:.64rem}
@media(max-width:600px){
  .paragraph-action-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px}
  .paragraph-action-grid button{min-height:33px;height:33px;padding:2px;font-size:.57rem;line-height:1.0}
  .paragraph-action-grid .read-content-btn{font-size:.66rem;padding:2px 3px}
  .paragraph-action-grid .list-speaker-btn{width:33px!important;min-width:33px!important;height:33px!important;min-height:33px!important;font-size:.86rem}
  .paragraph-action-grid .primary-test-btn{min-height:33px;height:33px;font-size:.60rem;padding:2px}
}


/* V112: supplied-reference teacher dashboard presentation. Visual-only dashboard refresh. */
.v112-dash-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;padding:10px clamp(14px,4vw,30px);background:linear-gradient(100deg,#1269dc 0%,#167ee8 52%,#08a9d2 100%);border:0;box-shadow:0 8px 24px rgba(24,82,170,.18);color:#fff}
.v112-dash-brand{display:flex;align-items:center;gap:13px;min-width:0}.v112-logo-frame{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border-radius:16px;background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}.v112-logo-frame img{width:54px;height:54px;object-fit:cover;border-radius:14px}.v112-brand-copy{display:flex;flex-direction:column;gap:0;min-width:0}.v112-brand-copy b{font-size:clamp(1.2rem,3vw,1.8rem);line-height:1.1;letter-spacing:-.035em;color:#fff}.v112-brand-copy b span{color:#ffd84f}.v112-brand-copy small{font-size:.82rem;font-weight:700;opacity:.96;color:#fff}.v112-header-right{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.v112-ghost-btn{background:rgba(255,255,255,.1)!important;color:#fff!important;border:1px solid rgba(255,255,255,.38)!important;box-shadow:none!important}.v112-profile{display:flex!important;align-items:center!important;gap:9px!important;padding:6px 10px!important;background:rgba(255,255,255,.1)!important;color:#fff!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:none!important;text-align:left!important}.v112-avatar{width:45px;height:45px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#1558b6;font-weight:900;font-size:1.25rem;border:2px solid rgba(255,255,255,.9)}.v112-profile-copy{display:flex;flex-direction:column;gap:0;min-width:0}.v112-profile-copy b{font-size:.96rem;white-space:nowrap}.v112-profile-copy small{font-size:.68rem;opacity:.95;white-space:nowrap}.v112-logout{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.48)!important;box-shadow:none!important}.v112-profile-menu{right:18px!important;top:70px!important;min-width:220px;background:#fff!important;color:#18315e!important;border:1px solid #dce8f6!important;box-shadow:0 16px 38px rgba(25,74,149,.18)!important}
.v112-dashboard{width:min(1040px,100%);margin:0 auto;padding:20px clamp(12px,3.8vw,28px) 28px;background:linear-gradient(180deg,#f7fbff 0%,#f6fbff 45%,#fbfcff 100%)}
.v112-hero{position:relative;overflow:hidden;display:flex;align-items:stretch;justify-content:space-between;gap:14px;min-height:174px;margin-bottom:22px;padding:22px 25px;border-radius:28px;background:linear-gradient(110deg,#e8f8ff 0%,#e9f0ff 56%,#f8efff 100%);border:1px solid rgba(255,255,255,.95);box-shadow:0 14px 30px rgba(57,102,167,.08)}.v112-hero::after{content:"";position:absolute;inset:auto -14% -46px -9%;height:90px;background:radial-gradient(circle at 10% 35%,rgba(75,173,255,.12),transparent 32%),radial-gradient(circle at 65% 35%,rgba(198,132,255,.11),transparent 36%);pointer-events:none}.v112-hero-copy{position:relative;z-index:2;max-width:52%;display:flex;flex-direction:column;justify-content:center}.v112-hero-kicker{font-size:1.05rem;font-weight:700;color:#244f90}.v112-hero h1{margin:0 0 2px;font-size:clamp(2rem,5vw,3rem);line-height:1.05;letter-spacing:-.045em;color:#113b82}.v112-hero h1 span{font-size:.65em;vertical-align:middle}.v112-hero p{margin:7px 0 8px;color:#305e9e;font-size:1.02rem}.v112-dot{color:#13a7a6;margin:0 8px;font-size:1.15rem}.v112-tagline{font-size:.92rem;color:#2f66b5;font-weight:700}.v112-hero-line{display:block;width:64px;height:7px;margin-top:13px;border-radius:999px;background:linear-gradient(90deg,#7a45ef,#1789e8,#19bdb0)}.v112-hero-art{position:relative;z-index:2;flex:1;min-width:300px;display:flex;align-items:center;justify-content:center}.v112-art-plant{position:absolute;left:18%;bottom:26px;font-size:4rem;filter:drop-shadow(0 8px 12px rgba(40,100,90,.12))}.v112-art-pencils{position:absolute;right:23%;top:21px;font-size:2rem;transform:rotate(5deg)}.v112-books{width:255px;height:98px;position:relative;display:flex;flex-direction:column;gap:0;justify-content:flex-end;filter:drop-shadow(0 12px 18px rgba(41,88,151,.12))}.v112-books span{display:block;border-radius:7px 10px 9px 5px;border:1px solid rgba(25,68,130,.12)}.v112-books span:nth-child(1){height:24px;background:linear-gradient(90deg,#f0d29d,#e8b65d);transform:skewX(-6deg)}.v112-books span:nth-child(2){height:29px;background:linear-gradient(90deg,#74c8e8,#2299dc);transform:skewX(-4deg) translateX(10px);margin-top:-2px}.v112-books span:nth-child(3){height:34px;background:linear-gradient(90deg,#ff8db8,#ff4e86);transform:skewX(-4deg) translateX(-4px);margin-top:-1px}.v112-hero-message{position:absolute;right:0;top:22px;color:#143e93;font-size:1.02rem;font-weight:900;line-height:1.08;letter-spacing:.01em;text-align:left}
.v112-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:22px}.v112-feature-card{position:relative;min-height:432px;padding:18px 17px 25px!important;border-radius:25px!important;border:1px solid rgba(255,255,255,.78)!important;box-shadow:0 18px 32px rgba(46,81,145,.10)!important;text-align:left!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;color:#173c78!important}.v112-feature-card::after{content:"";position:absolute;left:-28px;right:-28px;bottom:-44px;height:122px;border-radius:50%;background:rgba(255,255,255,.16);transform:rotate(-7deg)}.v112-card-pink{background:linear-gradient(160deg,#ffd4ea 0%,#ffb7db 58%,#f89ec8 100%)!important}.v112-card-peach{background:linear-gradient(160deg,#ffe7ba 0%,#ffd08d 58%,#ffbd67 100%)!important}.v112-card-purple{background:linear-gradient(160deg,#e2d0ff 0%,#cfaffb 58%,#b892f5 100%)!important}.v112-feature-art{position:relative;align-self:center;width:160px;height:160px;border-radius:50%;display:grid;place-items:center;margin:3px auto 19px;background:rgba(255,255,255,.36);box-shadow:inset 0 0 0 6px rgba(255,255,255,.28),0 8px 16px rgba(75,82,150,.08)}.v112-feature-art span{font-size:3.7rem;filter:drop-shadow(0 6px 8px rgba(40,46,86,.12))}.v112-student-art span+span{margin-left:-32px}.v112-feature-art i{position:absolute;right:-2px;bottom:0;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;font-style:normal;background:#1f72ef;color:#fff;font-size:2rem;border:4px solid rgba(255,255,255,.7);box-shadow:0 8px 13px rgba(30,79,169,.16)}.v112-material-art i{background:#1679ef;font-size:1.6rem}.v112-performance-art span{font-size:2.2rem;letter-spacing:-.18em;color:#7138ca;font-weight:900}.v112-performance-art i{right:16px;top:9px;bottom:auto;width:auto;height:auto;background:transparent;border:0;box-shadow:none;color:#6e2cc7;font-size:3rem}.v112-book-stack{font-size:5rem!important}.v112-feature-title{position:relative;z-index:2;font-size:1.25rem;font-weight:900;line-height:1.15;color:#143875;margin:0 0 11px}.v112-feature-sub{position:relative;z-index:2;font-size:.95rem;line-height:1.42;color:#28558f;font-weight:650}.v112-open-circle{position:relative;z-index:3;align-self:flex-end;margin-top:auto;width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:1.9rem;font-weight:700;border:1px solid rgba(255,255,255,.34)}.v112-card-pink .v112-open-circle{background:#ef3b92}.v112-card-peach .v112-open-circle{background:#ff7b14}.v112-card-purple .v112-open-circle{background:#7c39ea}
.v112-activity{margin:0 0 22px!important;padding:0!important;border-radius:24px!important;background:rgba(255,255,255,.91)!important;border:1px solid #e0eaf6!important;box-shadow:0 13px 27px rgba(43,80,140,.07)!important;overflow:hidden}.v112-activity-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid #e5edf6}.v112-activity-title{display:flex;align-items:center;gap:12px}.v112-activity-title h2{margin:0;color:#143875;font-size:1.16rem}.v112-activity-title small{color:#7283a0}.v112-activity-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:50%;background:#1d7dec;color:#fff;font-size:1.55rem;box-shadow:0 7px 13px rgba(31,109,219,.18)}.v112-view-all{background:#eff7ff!important;color:#176bd1!important;border:1px solid #c8e0fb!important;box-shadow:none!important;border-radius:999px!important;padding:8px 14px!important}.v112-activity-list{padding:0 18px}.v112-activity-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:74px;border-bottom:1px solid #e8eef5}.v112-activity-row:last-child{border-bottom:0}.v112-activity-row>div{display:flex;flex-direction:column;gap:1px;min-width:0}.v112-activity-row b{color:#16418a;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v112-activity-row small{color:#6a7f9f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v112-row-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;font-weight:900;font-size:1.25rem}.v112-row-pink{background:#ffd4ec;color:#e82b8d}.v112-row-green{background:#cef9e8;color:#0b9a73}.v112-row-purple{background:#eadcff;color:#7240cf}.v112-row-time{font-size:.82rem;color:#667d9f;font-weight:700;text-align:right;white-space:nowrap}.v112-motivation{position:relative;overflow:hidden;display:flex;align-items:center;gap:18px;min-height:108px;padding:18px 24px;border-radius:22px;background:linear-gradient(105deg,#eaf8ff 0%,#edf4ff 46%,#f8ecff 100%);border:1px solid #e1eafa;box-shadow:0 10px 24px rgba(42,75,133,.06)}.v112-motivation::before,.v112-motivation::after{content:"";position:absolute;border-radius:50%;filter:blur(.2px);opacity:.44}.v112-motivation::before{width:160px;height:85px;left:-35px;bottom:-38px;background:#c2e9ff}.v112-motivation::after{width:220px;height:90px;right:-70px;bottom:-48px;background:#e3c8ff}.v112-lightbulb{font-size:2.7rem}.v112-motivation>div:nth-child(2){display:flex;flex-direction:column;gap:2px;position:relative;z-index:2}.v112-motivation b{font-size:1.25rem;color:#1e59ab;font-style:italic}.v112-motivation span{font-size:1.08rem;color:#2d65ac;font-weight:800;font-style:italic}.v112-motivation-books{margin-left:auto;font-size:3.4rem;position:relative;z-index:2;filter:drop-shadow(0 7px 12px rgba(37,88,147,.09))}
.v112-inner-header{position:sticky;top:0;z-index:35;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:linear-gradient(100deg,#1269dc 0%,#167ee8 52%,#08a9d2 100%);border:0;color:#fff}.v112-inner-brand{display:flex;align-items:center;gap:10px}.v112-inner-brand img{width:43px;height:43px;border-radius:12px}.v112-inner-brand b{font-size:1.08rem}.v112-hub-page{min-height:calc(100dvh - 68px)}.v112-hub-hero{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:18px 19px;border-radius:22px;background:linear-gradient(110deg,#edf8ff,#f0ecff);border:1px solid #e0ebf7}.v112-hub-icon{width:60px;height:60px;flex:0 0 60px;display:grid;place-items:center;border-radius:18px;font-size:2rem}.v112-hub-pink{background:#ffd4ec}.v112-hub-peach{background:#ffe1b2}.v112-hub-purple{background:#e3d2ff;color:#6c34c4;font-weight:900}.v112-hub-blue{background:#d9eeff;color:#1476da}.v112-hub-hero h1{margin:0;color:#173d7c;font-size:1.6rem}.v112-hub-hero p{margin:3px 0 0;color:#6c7f9e}.v112-hub-list,.v112-rank-list{display:flex;flex-direction:column;gap:10px}.v112-hub-item,.v112-rank-item{width:100%;display:flex!important;align-items:center!important;gap:12px!important;padding:13px 15px!important;text-align:left!important;border-radius:18px!important;background:#fff!important;color:#173d7c!important;border:1px solid #dfe9f5!important;box-shadow:0 6px 17px rgba(42,77,132,.06)!important}.v112-hub-index{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#edf4ff;color:#2768bd;font-weight:900}.v112-hub-person{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.v112-hub-person>span:last-child{display:flex;flex-direction:column;gap:1px;min-width:0}.v112-hub-person b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v112-hub-person small{color:#7a8ba5}.v112-mini-avatar,.v112-material-mini{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#eef4ff;color:#245cae;font-weight:900}.v112-material-mini{font-size:1.5rem}.v112-hub-arrow{font-size:1.7rem;color:#3876c2}.v112-hub-actions{margin-top:15px}.v112-hub-actions button{background:linear-gradient(110deg,#2867e8,#18b7b0)!important;color:#fff!important;border:0!important}.v112-empty-hub{padding:22px;text-align:center;color:#71819c;background:#fff;border:1px dashed #d3dfec;border-radius:17px}.v112-rank-item strong{margin-left:auto;min-width:56px;text-align:right;color:#1d4ca4}.v112-rank-medal{width:40px;text-align:center;font-weight:900}.v112-rank-main{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.v112-rank-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v112-rank-main small{color:#7b8da8}.v112-bar{display:block;height:7px;width:100%;border-radius:999px;background:#e8eef7;overflow:hidden;margin-top:4px}.v112-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2376ea,#17b7b3)}.v112-activity-page{padding:0 18px!important}.v112-activity-page .v112-activity-row{min-height:68px}
@media(max-width:860px){.v112-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.v112-feature-card{min-height:370px;padding:15px 12px 19px!important}.v112-feature-art{width:125px;height:125px;margin-bottom:15px}.v112-feature-art span{font-size:2.9rem}.v112-book-stack{font-size:4.1rem!important}.v112-feature-art i{width:40px;height:40px;font-size:1.6rem}.v112-feature-title{font-size:1.02rem}.v112-feature-sub{font-size:.82rem}.v112-open-circle{width:45px;height:45px;font-size:1.6rem}.v112-hero{min-height:156px}.v112-hero-art{min-width:260px}.v112-hero-message{font-size:.88rem}.v112-art-plant{font-size:3rem}}
@media(max-width:600px){.v112-dash-header{padding:8px 10px;gap:8px}.v112-logo-frame{width:46px;height:46px;flex-basis:46px;border-radius:12px}.v112-logo-frame img{width:43px;height:43px;border-radius:10px}.v112-brand-copy b{font-size:1.04rem}.v112-brand-copy small{font-size:.66rem}.v112-header-right{gap:5px}.v112-profile{padding:3px 4px!important}.v112-profile-copy{display:none}.v112-avatar{width:38px;height:38px}.v112-logout{padding:8px 9px!important;font-size:.77rem}.v112-dashboard{padding:11px 10px 22px}.v112-hero{min-height:166px;padding:17px 16px;border-radius:22px}.v112-hero-copy{max-width:60%}.v112-hero-kicker{font-size:.82rem}.v112-hero h1{font-size:2rem}.v112-hero p{font-size:.84rem}.v112-tagline{font-size:.68rem}.v112-hero-art{min-width:38%;}.v112-books{width:145px;height:63px}.v112-art-plant{left:4%;font-size:2.4rem;bottom:15px}.v112-art-pencils{right:14%;top:5px;font-size:1.3rem}.v112-hero-message{right:0;top:11px;font-size:.65rem}.v112-feature-grid{grid-template-columns:1fr 1fr 1fr;gap:7px}.v112-feature-card{min-height:252px;padding:10px 9px 12px!important;border-radius:17px!important}.v112-feature-art{width:82px;height:82px;margin-bottom:11px;box-shadow:inset 0 0 0 3px rgba(255,255,255,.28)}.v112-feature-art span{font-size:2rem}.v112-student-art span+span{margin-left:-17px}.v112-book-stack{font-size:2.65rem!important}.v112-performance-art span{font-size:1.35rem}.v112-performance-art i{font-size:1.7rem;right:10px;top:8px}.v112-feature-art i{width:29px;height:29px;font-size:1rem;border-width:2px}.v112-feature-title{font-size:.73rem;margin-bottom:5px}.v112-feature-sub{font-size:.62rem;line-height:1.3}.v112-open-circle{width:34px;height:34px;font-size:1.18rem}.v112-activity-head{padding:13px 11px 10px}.v112-activity-title{gap:9px}.v112-activity-title h2{font-size:.93rem}.v112-activity-title small{font-size:.68rem}.v112-activity-icon{width:36px;height:36px;font-size:1.2rem}.v112-view-all{font-size:.68rem!important;padding:7px 9px!important}.v112-activity-list{padding:0 10px}.v112-activity-row{grid-template-columns:37px minmax(0,1fr) auto;gap:8px;min-height:61px}.v112-row-icon{width:34px;height:34px;font-size:1rem}.v112-activity-row b{font-size:.73rem}.v112-activity-row small,.v112-row-time{font-size:.61rem}.v112-motivation{min-height:82px;padding:12px 13px;gap:9px;border-radius:18px}.v112-lightbulb{font-size:1.9rem}.v112-motivation b{font-size:.9rem}.v112-motivation span{font-size:.76rem}.v112-motivation-books{font-size:2.2rem}.v112-inner-header{padding:8px 10px}.v112-inner-brand img{width:37px;height:37px}.v112-inner-brand b{font-size:.93rem}.v112-hub-hero{padding:14px;border-radius:18px}.v112-hub-icon{width:50px;height:50px;flex-basis:50px;border-radius:15px;font-size:1.6rem}.v112-hub-hero h1{font-size:1.25rem}.v112-hub-hero p{font-size:.74rem}.v112-hub-item,.v112-rank-item{padding:10px 11px!important;border-radius:15px!important}.v112-mini-avatar,.v112-material-mini{width:37px;height:37px;font-size:.95rem}.v112-hub-item b,.v112-rank-item b{font-size:.84rem}.v112-hub-item small,.v112-rank-item small{font-size:.66rem}.v112-hub-index{width:26px;height:26px;font-size:.75rem}.v112-hub-arrow{font-size:1.4rem}.v112-rank-medal{width:31px;font-size:.84rem}.v112-rank-item strong{min-width:46px;font-size:.84rem}.v112-bar{height:6px}}

/* V113 careful dashboard fit + profile popover + universal Home control */
.v112-profile-menu{position:absolute;z-index:90;display:flex;flex-direction:column;gap:9px;padding:15px;border-radius:16px}
.v112-profile-menu[hidden]{display:none!important}
.v112-profile-menu small{display:block;overflow-wrap:anywhere;color:#63758f}
.v112-menu-logout{background:#fff1f1!important;color:#a52b37!important;border:1px solid #f3c5ca!important}
.ewl-global-home{margin-left:auto;flex:0 0 auto;width:42px;height:42px;display:inline-grid;place-items:center;border-radius:13px!important;border:1px solid rgba(255,255,255,.45)!important;background:rgba(255,255,255,.17)!important;color:#fff!important;font-size:1.55rem!important;line-height:1!important;box-shadow:none!important;padding:0!important}
.v112-dash-header .ewl-global-home{display:none}
@media(min-width:601px){.v112-dashboard{padding-top:12px;padding-bottom:14px}.v112-hero{min-height:132px;margin-bottom:12px;padding:15px 20px}.v112-feature-grid{gap:12px;margin-bottom:12px}.v112-feature-card{min-height:250px;padding:13px 14px 15px!important}.v112-feature-art{width:105px;height:105px;margin-bottom:10px}.v112-feature-art span{font-size:2.7rem}.v112-book-stack{font-size:3.4rem!important}.v112-feature-art i{width:36px;height:36px;font-size:1.45rem}.v112-feature-title{font-size:1.05rem;margin-bottom:6px}.v112-feature-sub{font-size:.82rem}.v112-open-circle{width:38px;height:38px;font-size:1.35rem}.v112-activity{margin-bottom:12px!important}.v112-activity-head{padding:11px 16px 9px}.v112-activity-row{min-height:49px}.v112-row-icon{width:33px;height:33px}.v112-motivation{min-height:65px;padding:10px 18px}.v112-lightbulb{font-size:1.9rem}.v112-motivation b{font-size:1rem}.v112-motivation span{font-size:.9rem}.v112-motivation-books{font-size:2.3rem}}
@media(max-width:600px){.v112-dash-header{min-height:58px}.v112-dashboard{padding:7px 8px 8px}.v112-hero{min-height:118px;margin-bottom:8px;padding:11px 12px}.v112-hero h1{font-size:1.45rem}.v112-hero p{margin:3px 0;font-size:.68rem}.v112-hero-kicker{font-size:.7rem}.v112-tagline{font-size:.56rem}.v112-hero-line{width:42px;height:4px;margin-top:6px}.v112-books{width:110px;height:50px}.v112-art-plant{font-size:1.6rem;bottom:10px}.v112-art-pencils{font-size:1rem}.v112-hero-message{font-size:.5rem;top:7px}.v112-feature-grid{gap:5px;margin-bottom:8px}.v112-feature-card{min-height:154px;padding:7px 6px 8px!important;border-radius:13px!important}.v112-feature-art{width:51px;height:51px;margin:0 auto 6px}.v112-feature-art span{font-size:1.35rem}.v112-student-art span+span{margin-left:-10px}.v112-book-stack{font-size:1.65rem!important}.v112-performance-art span{font-size:.9rem}.v112-feature-art i{width:20px;height:20px;font-size:.7rem;right:-2px;border-width:1px}.v112-feature-title{font-size:.59rem;margin-bottom:3px}.v112-feature-sub{font-size:.48rem;line-height:1.18}.v112-open-circle{width:23px;height:23px;font-size:.85rem}.v112-activity{margin-bottom:8px!important;border-radius:14px!important}.v112-activity-head{padding:7px 8px 6px}.v112-activity-title{gap:6px}.v112-activity-title h2{font-size:.76rem}.v112-activity-title small{font-size:.52rem}.v112-activity-icon{width:26px;height:26px;font-size:.9rem}.v112-view-all{font-size:.52rem!important;padding:4px 6px!important}.v112-activity-list{padding:0 7px}.v112-activity-row{grid-template-columns:25px minmax(0,1fr) auto;gap:6px;min-height:36px}.v112-row-icon{width:23px;height:23px;font-size:.7rem}.v112-activity-row b{font-size:.56rem}.v112-activity-row small,.v112-row-time{font-size:.46rem}.v112-motivation{min-height:44px;padding:6px 8px;gap:6px;border-radius:13px}.v112-lightbulb{font-size:1.25rem}.v112-motivation b{font-size:.65rem}.v112-motivation span{font-size:.58rem}.v112-motivation-books{font-size:1.45rem}.ewl-global-home{width:34px;height:34px;font-size:1.25rem!important}}

/* V114: reliable top Home button, visible logo fallback, and no-scroll dashboard fit */
.ewl-logo-fallback::before{content:"📘";display:grid;place-items:center;width:100%;height:100%;font-size:2rem;line-height:1;background:linear-gradient(145deg,#fff,#dcecff);border-radius:inherit}
.v112-dash-header{position:relative}
.v112-dash-header .ewl-global-home{display:inline-grid!important;margin-left:0;order:3;width:38px;height:38px;flex:0 0 38px}
.v112-dash-header .v112-header-right{order:2}
.v112-dash-brand{order:1;flex:1}
.v112-dash-header .ewl-global-home{background:rgba(255,255,255,.18)!important;color:#fff!important}
.v112-inner-header .ewl-global-home{order:5}
@media(max-width:600px){
  html:has(.v112-dash-header),body:has(.v112-dash-header){height:100%;min-height:100%;overflow:hidden}
  body:has(.v112-dash-header) #app{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
  .v112-dash-header{height:58px;min-height:58px;max-height:58px;flex:0 0 58px;padding:5px 8px;gap:6px;overflow:visible}
  .v112-logo-frame{width:39px;height:39px;flex-basis:39px;border-radius:10px}
  .v112-logo-frame img{width:37px;height:37px;border-radius:9px}
  .v112-dash-brand{gap:7px}
  .v112-brand-copy b{font-size:clamp(.84rem,4vw,1.04rem)}
  .v112-brand-copy small{font-size:.56rem}
  .v112-header-right{gap:4px}
  .v112-avatar{width:32px;height:32px;font-size:1rem}
  .v112-profile{padding:2px!important}
  .v112-dash-header .ewl-global-home{width:32px;height:32px;flex-basis:32px;font-size:1.1rem!important;border-radius:10px!important}
  .v112-dashboard{width:100%;height:calc(100dvh - 58px);min-height:0;flex:1;box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column;gap:clamp(5px,1.05dvh,10px);padding:clamp(5px,1dvh,9px) 8px clamp(5px,1dvh,9px);margin:0}
  .v112-hero{flex:0 0 clamp(88px,15dvh,125px);min-height:0;height:auto;margin:0;padding:8px 10px;border-radius:15px;box-sizing:border-box}
  .v112-hero-copy{max-width:59%;justify-content:center}
  .v112-hero-kicker{font-size:clamp(.56rem,2.5vw,.72rem)}
  .v112-hero h1{font-size:clamp(1.18rem,5.8vw,1.6rem);margin:1px 0}
  .v112-hero p{font-size:clamp(.56rem,2.7vw,.7rem);margin:2px 0}
  .v112-tagline{font-size:clamp(.45rem,2.15vw,.58rem);line-height:1.15}
  .v112-hero-line{width:32px;height:3px;margin-top:4px}
  .v112-hero-art{min-width:0;width:41%;flex:0 0 41%}
  .v112-books{width:90px;height:43px}
  .v112-art-plant{left:0;bottom:7px;font-size:1.35rem}
  .v112-art-pencils{right:8%;top:2px;font-size:.8rem}
  .v112-hero-message{right:0;top:4px;font-size:clamp(.4rem,1.8vw,.5rem)}
  .v112-feature-grid{flex:0 0 clamp(118px,22dvh,175px);min-height:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0}
  .v112-feature-card{min-height:0;height:100%;box-sizing:border-box;padding:7px 5px!important;border-radius:12px!important}
  .v112-feature-art{width:clamp(37px,10vw,55px);height:clamp(37px,10vw,55px);margin:0 auto 5px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.28)}
  .v112-feature-art span{font-size:clamp(1.05rem,4.8vw,1.55rem)}
  .v112-student-art span+span{margin-left:-9px}
  .v112-book-stack{font-size:clamp(1.35rem,6vw,1.8rem)!important}
  .v112-performance-art span{font-size:clamp(.75rem,3.4vw,1rem)}
  .v112-performance-art i{font-size:1rem;right:4px;top:3px}
  .v112-feature-art i{width:17px;height:17px;font-size:.58rem;right:-1px;bottom:0;border-width:1px}
  .v112-feature-title{font-size:clamp(.52rem,2.45vw,.68rem);line-height:1.12;margin-bottom:3px;overflow-wrap:anywhere}
  .v112-feature-sub{font-size:clamp(.43rem,2vw,.55rem);line-height:1.15;overflow-wrap:anywhere}
  .v112-open-circle{width:21px;height:21px;font-size:.78rem}
  .v112-activity{flex:1 1 0;min-height:0;margin:0!important;border-radius:13px!important;display:flex;flex-direction:column}
  .v112-activity-head{flex:0 0 auto;padding:6px 8px 5px;gap:5px}
  .v112-activity-title{gap:6px;min-width:0}
  .v112-activity-title h2{font-size:clamp(.68rem,3vw,.8rem)}
  .v112-activity-title small{font-size:clamp(.46rem,2vw,.54rem)}
  .v112-activity-icon{width:25px;height:25px;font-size:.82rem;flex:0 0 25px}
  .v112-view-all{font-size:.5rem!important;padding:4px 6px!important;white-space:nowrap}
  .v112-activity-list{flex:1;min-height:0;padding:0 7px;display:flex;flex-direction:column;justify-content:space-evenly}
  .v112-activity-row{grid-template-columns:25px minmax(0,1fr) auto;gap:5px;min-height:0;flex:1;padding:2px 0}
  .v112-row-icon{width:22px;height:22px;font-size:.68rem}
  .v112-activity-row b{font-size:clamp(.49rem,2.2vw,.59rem);line-height:1.1}
  .v112-activity-row small,.v112-row-time{font-size:clamp(.4rem,1.8vw,.49rem);line-height:1.1}
  .v112-row-time{max-width:64px;white-space:normal}
  .v112-motivation{flex:0 0 clamp(36px,7dvh,53px);min-height:0;box-sizing:border-box;margin:0;padding:5px 8px;gap:7px;border-radius:12px}
  .v112-lightbulb{font-size:1.25rem}
  .v112-motivation b{font-size:clamp(.56rem,2.6vw,.7rem);line-height:1.1}
  .v112-motivation span{font-size:clamp(.49rem,2.2vw,.6rem);line-height:1.1}
  .v112-motivation-books{font-size:1.35rem}
}

/* V115 precise dashboard refinement: Home is injected into the real #app header. */
.ewl-global-home{display:inline-grid!important;visibility:visible!important;opacity:1!important;cursor:pointer;z-index:5}
.v112-dash-header .ewl-global-home{display:inline-grid!important}
/* Keep the dashboard fixed to the screen while making the feature artwork and labels easier to read. */
@media(max-width:600px){
  .v112-dashboard{padding-top:clamp(9px,1.5dvh,15px)!important;gap:clamp(4px,.7dvh,7px)!important}
  .v112-feature-grid{flex-basis:clamp(142px,24dvh,190px)!important;gap:5px!important}
  .v112-feature-card{padding:7px 5px 6px!important;justify-content:flex-start!important}
  .v112-feature-art{width:clamp(52px,14vw,72px)!important;height:clamp(52px,14vw,72px)!important;margin:0 auto 5px!important}
  .v112-feature-art span{font-size:clamp(1.55rem,7vw,2.15rem)!important}
  .v112-book-stack{font-size:clamp(2rem,8vw,2.55rem)!important}
  .v112-performance-art span{font-size:clamp(1.05rem,4.6vw,1.4rem)!important}
  .v112-feature-art i{width:21px!important;height:21px!important;font-size:.75rem!important}
  .v112-feature-title{font-size:clamp(.66rem,3.1vw,.82rem)!important;line-height:1.12!important;margin-bottom:3px!important}
  .v112-feature-sub{font-size:clamp(.52rem,2.5vw,.65rem)!important;line-height:1.18!important}
  .v112-open-circle{width:25px!important;height:25px!important;font-size:.95rem!important;margin-top:auto!important}
  .v112-activity-head{padding:8px 9px 7px!important}
  .v112-activity-title h2{font-size:clamp(.82rem,3.8vw,.98rem)!important}
  .v112-activity-title small{font-size:clamp(.56rem,2.5vw,.65rem)!important}
  .v112-activity-icon{width:30px!important;height:30px!important;flex-basis:30px!important;font-size:1rem!important}
  .v112-view-all{font-size:clamp(.57rem,2.5vw,.66rem)!important;padding:5px 7px!important}
  .v112-activity-list{padding:0 8px!important;justify-content:space-evenly!important}
  .v112-activity-row{grid-template-columns:30px minmax(0,1fr) auto!important;gap:7px!important;padding:3px 0!important}
  .v112-row-icon{width:27px!important;height:27px!important;font-size:.82rem!important}
  .v112-activity-row b{font-size:clamp(.61rem,2.8vw,.73rem)!important;line-height:1.14!important}
  .v112-activity-row small,.v112-row-time{font-size:clamp(.51rem,2.25vw,.61rem)!important;line-height:1.14!important}
  .v112-row-time{max-width:76px!important}
  .v112-motivation{flex-basis:clamp(42px,7.5dvh,58px)!important;padding:5px 8px!important;gap:7px!important}
  .v112-motivation b{font-size:clamp(.65rem,3vw,.77rem)!important}
  .v112-motivation span{font-size:clamp(.55rem,2.5vw,.65rem)!important}
  .v112-motivation-books{font-size:1.55rem!important}
}

/* V116: dashboard-only visual correction against the approved reference.
   No application handlers, test logic, API calls, or stored data are changed. */
@media(max-width:600px){
  body:has(.v112-dash-header) #app{overflow:hidden!important}
  .v112-dashboard{height:calc(100dvh - 58px)!important;max-height:calc(100dvh - 58px)!important;overflow:hidden!important;box-sizing:border-box!important;justify-content:space-between!important;gap:clamp(4px,.65dvh,8px)!important;padding:clamp(6px,.9dvh,12px) 8px!important}
  .v112-hero{flex:0 0 clamp(105px,15.5dvh,170px)!important;min-height:0!important;margin:0!important;padding:10px 12px!important;border-radius:18px!important}
  .v112-feature-grid{flex:0 0 clamp(178px,27dvh,285px)!important;min-height:0!important;gap:6px!important;margin:0!important}
  .v112-feature-card{min-height:0!important;height:100%!important;padding:10px 7px 9px!important;border-radius:15px!important;justify-content:flex-start!important}
  .v112-feature-art{width:clamp(60px,17vw,88px)!important;height:clamp(60px,17vw,88px)!important;margin:2px auto 10px!important;box-shadow:inset 0 0 0 3px rgba(255,255,255,.34),0 5px 12px rgba(75,82,150,.08)!important}
  .v112-feature-art span{font-size:clamp(1.8rem,8vw,2.65rem)!important}
  .v112-student-art span+span{margin-left:-13px!important}
  .v112-book-stack{font-size:clamp(2.2rem,9vw,2.9rem)!important}
  .v112-performance-art span{font-size:clamp(1.2rem,5.2vw,1.7rem)!important}
  .v112-feature-art i{width:24px!important;height:24px!important;font-size:.84rem!important;right:-2px!important;bottom:0!important}
  .v112-feature-title{font-size:clamp(.72rem,3.45vw,.92rem)!important;line-height:1.16!important;margin-bottom:5px!important;overflow-wrap:normal!important}
  .v112-feature-sub{font-size:clamp(.59rem,2.8vw,.74rem)!important;line-height:1.22!important;overflow-wrap:normal!important}
  .v112-open-circle{width:28px!important;height:28px!important;font-size:1rem!important;margin-top:auto!important;flex:0 0 28px!important}
  .v112-activity{flex:0 0 clamp(205px,34dvh,360px)!important;min-height:0!important;margin:0!important;border-radius:17px!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
  .v112-activity-head{flex:0 0 auto!important;padding:9px 10px!important;gap:7px!important;border-bottom:1px solid #e5edf7!important}
  .v112-activity-title{gap:8px!important;min-width:0!important}
  .v112-activity-title h2{font-size:clamp(.92rem,4.1vw,1.12rem)!important;line-height:1.1!important;margin:0!important}
  .v112-activity-title small{font-size:clamp(.62rem,2.8vw,.75rem)!important;line-height:1.2!important;margin-top:3px!important}
  .v112-activity-icon{width:34px!important;height:34px!important;flex:0 0 34px!important;font-size:1.05rem!important}
  .v112-view-all{font-size:clamp(.62rem,2.8vw,.76rem)!important;padding:7px 9px!important;min-height:38px!important;border-radius:22px!important;white-space:nowrap!important}
  .v112-activity-list{flex:1 1 auto!important;min-height:0!important;padding:2px 9px!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;overflow:hidden!important}
  .v112-activity-row{flex:0 0 auto!important;min-height:clamp(48px,7.3dvh,70px)!important;grid-template-columns:30px minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;padding:7px 2px!important;border-bottom:1px solid #e6edf5!important}
  .v112-activity-row:last-child{border-bottom:0!important}
  .v112-row-icon{width:29px!important;height:29px!important;font-size:.86rem!important}
  .v112-activity-row b{font-size:clamp(.68rem,3vw,.8rem)!important;line-height:1.16!important}
  .v112-activity-row small,.v112-row-time{font-size:clamp(.56rem,2.45vw,.68rem)!important;line-height:1.18!important}
  .v112-row-time{max-width:86px!important;white-space:normal!important;text-align:right!important}
  .v112-motivation{flex:0 0 clamp(48px,8dvh,72px)!important;min-height:0!important;margin:0!important;padding:7px 10px!important;gap:8px!important;border-radius:15px!important;box-sizing:border-box!important}
  .v112-lightbulb{font-size:1.55rem!important}
  .v112-motivation b{font-size:clamp(.69rem,3.1vw,.82rem)!important;line-height:1.15!important}
  .v112-motivation span{font-size:clamp(.59rem,2.65vw,.72rem)!important;line-height:1.15!important}
  .v112-motivation-books{font-size:1.75rem!important}
  .v112-dashboard>.success-banner{flex:0 0 auto!important;max-height:38px!important;padding:5px 8px!important;margin:0!important;font-size:.7rem!important;overflow:hidden!important}
}

/* V117: attractive selectable cards for student, subject, performance and nested content choices.
   Visual-only styles; existing click handlers and data flows remain unchanged. */
.v117-card-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px!important;align-content:start;}
.v117-select-card{position:relative;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:9px!important;min-height:132px;padding:17px!important;border:1px solid #d8e8fa!important;border-radius:20px!important;background:linear-gradient(145deg,#fff 0%,#f1f7ff 100%)!important;color:#173a75!important;text-align:left!important;box-shadow:0 7px 18px rgba(31,89,157,.10)!important;white-space:normal!important;transition:transform .15s ease,box-shadow .15s ease;}
.v117-select-card:active,.v117-choice-card:active{transform:scale(.985)}
.v117-student-card{background:linear-gradient(145deg,#fff 0%,#ffe8f3 100%)!important;border-color:#f6c4dc!important}
.v117-subject-card{background:linear-gradient(145deg,#fff 0%,#fff0d7 100%)!important;border-color:#f6d9a3!important}
.v117-hub-list .v117-hub-person{display:flex;align-items:center;gap:11px;width:100%;min-width:0}
.v117-hub-list .v117-hub-person>span:last-child{display:flex;flex-direction:column;gap:4px;min-width:0}
.v117-hub-list .v117-hub-person b,.v117-hub-list .v117-hub-person small{white-space:normal;overflow-wrap:anywhere}
.v117-hub-list .v112-hub-index{position:absolute;right:12px;top:12px;background:#fff;border:1px solid rgba(35,102,180,.14);color:#2466ac}
.v117-hub-list .v112-hub-arrow{position:absolute;right:15px;bottom:13px;display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#e4f1ff;color:#176bc5}
.v117-hub-list .v117-hub-person .v112-mini-avatar,.v117-hub-list .v117-hub-person .v112-material-mini{width:54px;height:54px;flex:0 0 54px;border-radius:17px;font-size:1.45rem;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#dcecff);box-shadow:inset 0 0 0 2px rgba(255,255,255,.8),0 4px 10px rgba(36,95,160,.09)}
.v117-hub-list .v117-hub-person .v112-mini-avatar{font-size:1.45rem;font-weight:900;color:#1e67b8;background:linear-gradient(145deg,#fff,#ffd7e9)}
.v117-hub-list .v117-hub-person b{font-size:1.03rem;line-height:1.2;padding-right:22px}
.v117-hub-list .v117-hub-person small{font-size:.83rem;color:#54708f}
.v117-performance-grid .v117-performance-card{min-height:145px;background:linear-gradient(145deg,#fff 0%,#f0eaff 100%)!important;border-color:#d9cafa!important;padding:15px!important;display:grid!important;grid-template-columns:45px minmax(0,1fr) auto 22px!important;align-items:center!important;gap:10px!important}
.v117-performance-card .v112-rank-medal{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#fff;box-shadow:0 4px 10px rgba(93,55,164,.1);font-size:1.2rem}
.v117-performance-card .v112-rank-main{display:flex;flex-direction:column;gap:6px;min-width:0}
.v117-performance-card .v112-rank-main b{font-size:1rem;line-height:1.2;overflow-wrap:anywhere}
.v117-performance-card .v112-rank-main small{font-size:.8rem;color:#5c628c;line-height:1.2}
.v117-performance-card .v112-rank-item strong,.v117-performance-card strong{font-size:1.05rem;color:#6635bb;min-width:48px;text-align:right}
.v117-performance-card .v112-bar{grid-column:2/4;width:100%;height:7px;border-radius:9px;background:#e4dcf8;overflow:hidden}
.v117-performance-card .v112-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9b69f0,#6434bf)}
.v117-performance-card .v112-hub-arrow{color:#673ac0;font-size:1.35rem}
.v117-picker-panel{border-radius:22px!important;padding:18px!important;background:linear-gradient(145deg,#fff,#f5f8ff)!important;border:1px solid #e1eafa!important;box-shadow:0 8px 24px rgba(33,79,143,.08)!important}
.v117-choice-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px!important;margin:12px 0 16px}
.v117-choice-card{position:relative;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:10px!important;min-height:120px;padding:17px!important;border:1px solid #d7e7fb!important;border-radius:19px!important;background:linear-gradient(145deg,#fff,#eaf4ff)!important;color:#173a75!important;text-align:left!important;white-space:normal!important;box-shadow:0 6px 15px rgba(37,91,154,.09)!important}
.v117-book-choice{background:linear-gradient(145deg,#fff,#fff0d8)!important;border-color:#f5d9ad!important}
.v117-chapter-choice{background:linear-gradient(145deg,#fff,#e7f7f0)!important;border-color:#bfe9d9!important}
.v117-choice-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:rgba(255,255,255,.85);font-size:1.65rem;box-shadow:inset 0 0 0 1px rgba(40,95,150,.08)}
.v117-choice-card b{font-size:1rem;line-height:1.2;overflow-wrap:anywhere;padding-right:20px}
.v117-choice-arrow{position:absolute;right:13px;bottom:12px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#dcecff;color:#1b68b9;font-size:1.1rem;font-weight:800}
.v117-content-choice-grid .v117-choice-card:nth-child(1){background:linear-gradient(145deg,#fff,#ffe6f2)!important;border-color:#f3c5dc!important}
.v117-content-choice-grid .v117-choice-card:nth-child(2){background:linear-gradient(145deg,#fff,#fff0d9)!important;border-color:#f3d8a8!important}
.v117-content-choice-grid .v117-choice-card:nth-child(3){background:linear-gradient(145deg,#fff,#e8e1ff)!important;border-color:#d4c7f8!important}
@media(max-width:600px){
 .v117-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
 .v117-select-card{min-height:124px;padding:12px!important;border-radius:17px!important;gap:7px!important}
 .v117-hub-list .v117-hub-person{align-items:flex-start;flex-direction:column;gap:8px}
 .v117-hub-list .v117-hub-person .v112-mini-avatar,.v117-hub-list .v117-hub-person .v112-material-mini{width:46px;height:46px;flex-basis:46px;border-radius:14px;font-size:1.25rem}
 .v117-hub-list .v117-hub-person b{font-size:.9rem;padding-right:8px}
 .v117-hub-list .v117-hub-person small{font-size:.75rem}
 .v117-hub-list .v112-hub-index{width:24px;height:24px;right:8px;top:8px;font-size:.68rem}
 .v117-hub-list .v112-hub-arrow{right:9px;bottom:9px;width:26px;height:26px;font-size:1.15rem}
 .v117-performance-grid .v117-performance-card{grid-template-columns:32px minmax(0,1fr) auto!important;min-height:120px;padding:10px!important;gap:7px!important}
 .v117-performance-card .v112-rank-medal{width:30px;height:30px;border-radius:10px;font-size:.85rem}
 .v117-performance-card .v112-rank-main b{font-size:.8rem}
 .v117-performance-card .v112-rank-main small{font-size:.65rem}
 .v117-performance-card .v112-rank-item strong,.v117-performance-card strong{font-size:.83rem;min-width:39px}
 .v117-performance-card .v112-bar{grid-column:2/4;height:6px}
 .v117-performance-card .v112-hub-arrow{display:none}
 .v117-picker-panel{padding:12px!important}
 .v117-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
 .v117-choice-card{min-height:104px;padding:12px!important;border-radius:16px!important;gap:8px!important}
 .v117-choice-icon{width:39px;height:39px;border-radius:12px;font-size:1.35rem}
 .v117-choice-card b{font-size:.85rem;padding-right:8px}
 .v117-choice-arrow{width:24px;height:24px;right:8px;bottom:8px;font-size:.95rem}
}
