/* Mi Grado — luminous glass, local and dependency-free. */
:root {
  --ink:#173449; --muted:#526b7d; --line:rgba(72,107,130,.13);
  --paper:rgba(255,255,255,.64); --bg:#edf3f7;
  --green:#146c66; --pale:rgba(221,241,234,.8); --amber:#9a651d;
  --a:#166c63; --f:#315f9e; --m:#94621c; --p:#974f49;
  --glass:linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,255,255,.44));
  --glass-border:rgba(255,255,255,.88);
  --shadow:0 12px 35px -16px rgba(27,62,87,.18),0 2px 5px rgba(27,62,87,.025),inset 0 1px 0 rgba(255,255,255,.98),inset 0 -1px 0 rgba(255,255,255,.28);
  --ease:cubic-bezier(.22,.8,.25,1); --spring:cubic-bezier(.2,.9,.25,1.16);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-synthesis:none; font-size:15px; color:var(--ink); background:var(--bg);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; isolation:isolate; }
button,input,select,textarea { font:inherit; color:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; border:0; }
a { color:var(--green); text-decoration:none; text-underline-offset:4px; }
a:hover { text-decoration:underline; }
button:focus-visible,a:focus-visible,summary:focus-visible {
  outline:3px solid #498bbe; outline-offset:4px;
}
button:disabled { opacity:.5; cursor:wait; transform:none!important; }
svg { width:20px; height:20px; vertical-align:middle; fill:none; stroke:currentColor;
  stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
h1,h2,h3,p { margin:0; }
h1 { font-size:clamp(34px,3.25vw,47px); line-height:1.09; letter-spacing:-1.9px; font-weight:650; }
h2 { font-size:23px; font-weight:620; letter-spacing:-.6px; }
h3 { font-size:17px; line-height:1.4; letter-spacing:-.2px; font-weight:620; }
p { line-height:1.65; }
::selection { color:#103d43; background:#bce4dc; }
.muted { color:var(--muted); } .small { font-size:13px; }
.eyebrow { letter-spacing:2px; font-size:10px; font-weight:700; text-transform:uppercase;
  color:var(--green); margin-bottom:14px; }
.ambient { position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none;
  background:radial-gradient(ellipse at 9% 0%,#dae9f7 0,transparent 44%),
    radial-gradient(ellipse at 100% 24%,#d5e9e4 0,transparent 48%),
    radial-gradient(ellipse at 70% 100%,#e4e8f7 0,transparent 46%),
    linear-gradient(135deg,#edf3f8,#f5f7fa 48%,#e9f1f2); }
.ambient::before { content:""; position:absolute; width:800px; height:800px; left:9%; top:22%;
  border-radius:50%; background:radial-gradient(circle,rgba(247,218,195,.28),transparent 66%);
  animation:ambient-arrive 1.6s ease-out both; }
.ambient::after { content:""; position:absolute; inset:0; opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.3' filter='url(%23n)'/%3E%3C/svg%3E"); }
.sidebar { position:fixed; inset:20px auto 20px 20px; width:226px; border:1px solid var(--glass-border);
  border-radius:27px; padding:27px 13px 20px; display:flex; flex-direction:column; z-index:4;
  background:linear-gradient(165deg,rgba(255,255,255,.76),rgba(248,253,255,.43));
  -webkit-backdrop-filter:blur(32px) saturate(160%); backdrop-filter:blur(32px) saturate(160%);
  box-shadow:0 18px 70px -35px rgba(29,66,93,.3),inset 0 1px 0 #fff,inset 1px 0 0 rgba(255,255,255,.45);
}
.brand { display:flex; gap:12px; align-items:center; padding:0 13px 35px; }
.brandmark { display:grid; place-items:center; width:43px; height:47px; border-radius:14px;
  color:white; font-family:Georgia,serif; font-size:30px; line-height:1; padding-bottom:4px;
  background:radial-gradient(ellipse at 28% 5%,rgba(196,245,230,.6),transparent 65%),linear-gradient(145deg,#4d9b92,#1c6c68 70%,#145556);
  border:1px solid rgba(255,255,255,.7); box-shadow:0 7px 15px -6px #185e6b66,inset 0 1px 1px #dcfff0aa,inset 0 -2px 3px #123a4155;
}
.brand strong { font-size:21px; font-weight:650; letter-spacing:-.9px; }
.brand small { display:block; color:var(--muted); font-size:9px; letter-spacing:1.7px; margin-top:5px; line-height:1.5; }
.nav { display:grid; gap:6px; }
.nav button { position:relative; display:flex; align-items:center; gap:12px; text-align:left;
  padding:13px 14px; min-height:47px; background:transparent; border:1px solid transparent;
  border-radius:15px; color:var(--muted); font-size:13px; line-height:1.45;
  transition:background .22s,border-color .22s,color .22s,box-shadow .22s,transform .25s var(--ease); }
.nav button.active { color:#175d5d; font-weight:650; border-color:rgba(255,255,255,.9);
  background:linear-gradient(125deg,rgba(255,255,255,.97),rgba(243,252,252,.62));
  box-shadow:0 4px 12px -5px #1a4a6529,inset 0 1px 0 white; }
.nav button.active::after { content:""; width:4px; height:17px; border-radius:4px;
  background:linear-gradient(#7bb6b0,#267672); position:absolute; left:0; box-shadow:0 0 11px #8fcac580; }
.nav button:hover { color:var(--ink); background:rgba(255,255,255,.55); transform:translateX(2px); }
.nav button:active { transform:translateX(2px) scale(.98); }
.nav svg { width:19px; height:19px; stroke-width:1.65; }
.side-bottom { margin-top:auto; padding:18px 12px 0; }
.save-indicator { display:flex; align-items:center; gap:8px; font-size:11px; color:var(--muted); line-height:1.5; }
.dot { height:6px; width:6px; border-radius:50%; background:#307e68; box-shadow:0 0 0 3px #c8e6d653; flex-shrink:0; }
.side-bottom p { font-size:10px; color:var(--muted); margin-top:12px; line-height:1.8; }
.main { position:relative; margin-left:264px; padding:33px 44px 55px; max-width:1530px; }
.topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:43px; gap:18px; min-height:43px; }
.breadcrumbs { font-size:10px; color:var(--muted); letter-spacing:1px; display:flex; align-items:center; gap:10px; }
.breadcrumbs::before { content:""; display:block; width:5px; height:5px; border-radius:50%; background:#367d79; box-shadow:0 0 0 4px #ffffff77; }
.breadcrumbs>span { opacity:.35; padding:0 3px; }
.top-actions { display:flex; gap:9px; }
.btn { position:relative; min-height:42px; padding:11px 17px; border:1px solid rgba(255,255,255,.65);
  border-radius:13px; color:white; font-weight:600; font-size:12px; display:inline-flex;
  gap:8px; align-items:center; justify-content:center; line-height:1.4; text-decoration:none!important;
  background:linear-gradient(160deg,#438d83,#1b6e68 67%,#145b5e);
  box-shadow:0 5px 13px -5px rgba(17,79,77,.35),inset 0 1px 0 rgba(218,255,241,.58),inset 0 -1px 0 rgba(8,57,62,.24);
  transition:transform .22s var(--spring),box-shadow .22s,background .2s,filter .2s; }
.btn::after { content:""; position:absolute; inset:1px; border-radius:inherit;
  background:linear-gradient(120deg,rgba(255,255,255,.17),transparent 40%); pointer-events:none; }
.btn:hover { transform:translateY(-2px); box-shadow:0 8px 20px -7px #185b6559,inset 0 1px 0 #e6fff2aa; }
.btn:active { transform:translateY(0) scale(.97); }
.btn svg { width:17px; height:17px; transition:transform .25s var(--ease); }
.btn:hover svg { transform:translateX(2px); }
.btn.secondary { color:var(--ink); border-color:rgba(255,255,255,.95);
  background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,255,255,.49));
  box-shadow:0 3px 9px -4px rgba(28,62,82,.18),inset 0 1px 0 white; }
.btn.light { color:#155f5c; border-color:#ffffffb3;
  background:linear-gradient(145deg,rgba(233,250,244,.92),rgba(223,242,237,.62));
  box-shadow:0 3px 10px -5px #1a615927,inset 0 1px 0 #fff; }
.btn.link { background:transparent; border-color:transparent; color:var(--green); padding-left:0; box-shadow:none; }
.btn.link::after { display:none; }
.btn.link:hover { box-shadow:none; }
.btn.wide { width:100%; } .btn.icon { padding:9px; }
.top-actions .btn { border-radius:999px; padding:10px 16px; min-height:40px; font-size:11px;
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }
.hero { display:flex; justify-content:space-between; gap:30px; align-items:flex-end; margin-bottom:32px; }
.hero p { max-width:660px; color:var(--muted); margin-top:15px; font-size:14px; }
.pill { font-size:10px; font-weight:550; padding:6px 10px; border-radius:999px;
  background:linear-gradient(145deg,#e8f6efcc,#e0f1ec80); color:#21665e; display:inline-flex;
  align-items:center; gap:6px; white-space:nowrap; border:1px solid #ffffffb3; box-shadow:inset 0 1px 0 #ffffff80; }
.pill.warning { background:#fff2d9; color:#785324; border-color:#fff8e8; }
.pill.neutral { background:rgba(238,244,248,.8); color:var(--muted); }
.layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(285px,1fr); gap:22px; margin-bottom:32px; }
.card,.area-card { position:relative; isolation:isolate; border:1px solid var(--glass-border); border-radius:23px;
  background:var(--glass); box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(24px) saturate(150%); backdrop-filter:blur(24px) saturate(150%); }
.card { padding:27px; }
.card::before,.area-card::before { content:""; position:absolute; inset:0; z-index:-1;
  border-radius:inherit; pointer-events:none; background:linear-gradient(125deg,rgba(255,255,255,.27),transparent 48%,rgba(255,255,255,.08)); }
.card-title { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:18px; }
.next-card { position:relative; overflow:hidden; min-height:279px; padding:29px 30px 24px;
  background:radial-gradient(ellipse at 100% 0%,rgba(165,215,218,.25),transparent 55%),var(--glass); }
.next-card::after { content:""; pointer-events:none; position:absolute; left:35px; top:0; width:44%; height:1px;
  background:linear-gradient(90deg,transparent,#fff 45%,transparent); }
.next-card h2 { position:relative; z-index:1; font-size:26px; letter-spacing:-.8px; max-width:510px; margin:17px 0 13px; line-height:1.25; }
.next-card .reason { font-size:12px; color:var(--muted); max-width:570px; line-height:1.8; }
.next-card .actions { display:flex; gap:11px; flex-wrap:wrap; margin-top:23px; }
.focus-orbit { position:absolute; width:145px; height:145px; top:-50px; right:-20px; border-radius:50%;
  border:1px solid rgba(255,255,255,.6); box-shadow:0 0 0 17px rgba(255,255,255,.11),0 0 0 34px rgba(255,255,255,.13);
  background:radial-gradient(circle at 30% 25%,#ffffff73,transparent 60%);
  pointer-events:none; animation:orbit-arrive 1.2s var(--ease) both; }
.focus-orbit::after { content:""; position:absolute; inset:19px; border-radius:50%; border:1px solid #ffffff70; }
.continue { padding-top:18px; margin-top:23px; border-top:1px solid var(--line); font-size:10px;
  color:var(--muted); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.continue .btn { font-size:11px; min-height:29px; padding-top:4px; padding-bottom:4px; }
.progress-card { display:flex; flex-direction:column; justify-content:center; }
.progress-top { display:flex; align-items:center; gap:23px; }
.ring { --pct:0; --color:#2e8279; width:115px; height:115px; border-radius:50%;
  background:conic-gradient(from -90deg,var(--color) calc(var(--pct)*1%),rgba(176,198,208,.2) 0);
  display:grid; place-items:center; flex-shrink:0; border:1px solid #ffffffcf;
  box-shadow:0 6px 18px -10px #204f6738,inset 0 0 0 1px #ffffff38;
  transition:--pct .65s var(--ease); }
.ring-inner { width:95px; height:95px; border:1px solid rgba(255,255,255,.9); border-radius:50%;
  background:radial-gradient(ellipse at 20% 0%,#fff,#f1f7f8ed 85%); display:flex; flex-direction:column; align-items:center; justify-content:center;
  box-shadow:0 2px 8px -5px #20445a40,inset 0 1px 2px #fff; }
.ring b { font-size:31px; letter-spacing:-1.8px; font-weight:650; }
.ring small { font-size:8px; letter-spacing:1.2px; color:var(--muted); margin-top:4px; }
.metric { font-size:32px; letter-spacing:-1.7px; font-weight:650; font-variant-numeric:tabular-nums; }
.progress-top .eyebrow { font-size:9px; letter-spacing:1.6px; }
.progress-top .small { font-size:11px; margin-top:3px; }
.metrics-mini { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px; padding-top:19px; border-top:1px solid var(--line); }
.metrics-mini strong { display:block; font-size:22px; font-weight:600; letter-spacing:-.7px; }
.metrics-mini span { font-size:10px; color:var(--muted); }
.section-head { display:flex; justify-content:space-between; align-items:center; gap:15px; margin:31px 0 17px; }
.section-head p { font-size:12px; color:var(--muted); margin-top:6px; }
.area-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.area-card { padding:21px; text-align:left; overflow:hidden;
  transition:transform .3s var(--spring),box-shadow .3s,border-color .25s; }
.area-card::after { content:""; position:absolute; right:-30px; top:-40px; width:130px; height:130px;
  border-radius:50%; pointer-events:none; z-index:-1;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 11%,transparent),transparent 70%);
  opacity:.9; transition:opacity .25s,transform .4s; }
.area-card:hover { transform:translateY(-5px); border-color:#fff;
  box-shadow:0 18px 35px -20px color-mix(in srgb,var(--accent) 38%,transparent),inset 0 1px 0 white; }
.area-card:hover::after { opacity:1; transform:scale(1.25); }
.area-card:active { transform:translateY(-1px) scale(.985); }
.area-code { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.area-badge { width:35px; height:35px; border-radius:12px; display:grid; place-items:center;
  background:linear-gradient(135deg,#ffffffd9,color-mix(in srgb,var(--accent) 12%,#fff));
  border:1px solid #ffffffd9; color:var(--accent); font-weight:700; font-size:10px;
  box-shadow:0 3px 8px -4px color-mix(in srgb,var(--accent) 25%,transparent),inset 0 1px 0 white; }
.area-code span { color:var(--muted); font-size:10px; }
.area-card h3 { font-size:14px; min-height:22px; letter-spacing:-.3px; }
.area-card .percentage { font-size:31px; letter-spacing:-1.3px; font-weight:600; margin:12px 0 13px; font-variant-numeric:tabular-nums; }
.bar { height:5px; background:rgba(153,180,190,.18); border-radius:5px; overflow:hidden; box-shadow:inset 0 1px 1px #17344908; }
.bar div { height:100%; background:linear-gradient(90deg,color-mix(in srgb,var(--accent,var(--green)) 70%,white),var(--accent,var(--green)));
  border-radius:5px; transition:width .6s var(--ease); }
.area-card .muted { font-size:10px; margin-top:12px; }
.summary-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:22px; margin-top:23px; }
.empty { padding:27px 17px; text-align:center; color:var(--muted); line-height:1.8; font-size:12px;
  border:1px solid #ffffffb3; border-radius:15px; background:rgba(255,255,255,.25); box-shadow:inset 0 1px 0 #fff6; }
.empty svg { display:block; margin:0 auto 11px; width:24px; height:24px; stroke-width:1.4; color:#4e7a8e; }
.list-row { display:flex; justify-content:space-between; gap:15px; align-items:center; padding:15px 0;
  border-bottom:1px solid var(--line); font-size:12px; }
.list-row:last-child { border-bottom:0; }
.list-row button { background:none; color:var(--green); text-align:left; padding:0; line-height:1.6; font-weight:500; }
.list-row button:hover { text-decoration:underline; text-underline-offset:3px; }
.list-row small { display:block; color:var(--muted); margin-top:4px; font-size:10px; }
.notice { background:linear-gradient(130deg,rgba(235,249,245,.77),rgba(235,246,248,.57));
  border:1px solid rgba(255,255,255,.8); box-shadow:inset 0 1px 0 #ffffffb3; padding:15px 18px;
  border-radius:15px; color:#375e68; font-size:12px; line-height:1.8; margin:18px 0; }
.notice svg { margin-right:5px; width:16px; height:16px; }
.notice.amber { background:#fff7e9d9; border-color:#fffdf3; color:#795b2d; }
.tabs { display:flex; gap:4px; flex-wrap:wrap; margin:25px 0 20px; padding:5px; width:fit-content;
  border:1px solid #ffffffb3; border-radius:17px; background:rgba(232,240,244,.6);
  box-shadow:0 3px 10px -7px #1b4a662e,inset 0 1px 0 #ffffffbf; }
.tabs button { position:relative; background:transparent; border:1px solid transparent; padding:10px 16px;
  border-radius:12px; font-size:12px; color:var(--muted); min-height:40px;
  transition:color .2s,background .2s,box-shadow .25s,transform .2s var(--ease); }
.tabs button.active { color:var(--ink); background:linear-gradient(145deg,#fffffff0,#ffffff96);
  border-color:#fff; font-weight:600; box-shadow:0 3px 8px -3px #264a6124,inset 0 1px 0 white; }
.tabs button:hover { background:#ffffff73; color:var(--ink); }
.tabs button:active { transform:scale(.97); }
.toolbar { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin:15px 0 22px; }
.input,select,textarea { background:rgba(255,255,255,.64); border:1px solid rgba(255,255,255,.94); border-radius:12px;
  padding:12px 13px; font-size:13px; min-width:0; min-height:43px;
  box-shadow:0 2px 5px -4px #19374b2e,inset 0 1px 3px #244d6b05;
  transition:background .2s,border-color .2s,box-shadow .2s; }
input[type=search] { flex:1; min-width:210px; }
input::placeholder,textarea::placeholder { color:#5d7484; opacity:1; }
textarea { width:100%; resize:vertical; min-height:100px; line-height:1.8; }
input:focus,select:focus,textarea:focus { outline:2px solid #51968b; outline-offset:2px; background:rgba(255,255,255,.94); }
input[type=checkbox] { position:relative; -webkit-appearance:none; appearance:none; width:19px; height:19px; min-width:19px;
  min-height:19px; margin:0; border-radius:6px; border:1px solid #6e8d9c;
  background:linear-gradient(145deg,#ffffffef,#eff5f6b3); cursor:pointer; flex-shrink:0;
  box-shadow:inset 0 1px 1px #fff,0 1px 2px #1d46620a;
  transition:background .18s,border-color .18s,box-shadow .18s,transform .22s var(--spring); }
input[type=checkbox]::after { content:""; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0;
  position:absolute; left:6px; top:3px; transform:rotate(45deg) scale(.5); opacity:0;
  transition:opacity .16s,transform .23s var(--spring); }
input[type=checkbox]:checked { background:linear-gradient(150deg,#539a8c,#17695f); border-color:#327f7273;
  box-shadow:0 3px 7px -3px #17655f4d,inset 0 1px 0 #ffffff5e; }
input[type=checkbox]:checked::after { opacity:1; transform:rotate(45deg) scale(1); }
input[type=checkbox]:hover { border-color:#377e79; box-shadow:0 0 0 3px #ffffff94; }
input[type=checkbox]:active { transform:scale(.9); }
.stage { position:relative; background:linear-gradient(140deg,#ffffffbd,#ffffff78); border:1px solid #ffffffe6;
  box-shadow:var(--shadow); border-radius:18px; margin-bottom:13px; overflow:hidden;
  transition:box-shadow .25s,border-color .25s; }
.stage:hover { box-shadow:0 13px 35px -22px #2451724d,inset 0 1px 0 #fff; }
.stage summary { list-style:none; cursor:pointer; padding:20px 22px; display:flex; align-items:center; gap:15px;
  transition:background .22s; }
.stage summary:hover { background:#ffffff40; }
.stage summary::-webkit-details-marker { display:none; }
.stage-no { border:1px solid #ffffffe6; border-radius:12px; height:35px; width:35px; display:grid; place-items:center;
  color:var(--green); background:linear-gradient(145deg,#ffffffd9,#eaf4f2b3); font-size:11px; font-weight:650; flex-shrink:0;
  box-shadow:0 2px 5px -3px #26505e29,inset 0 1px 0 #fff; }
.stage-no svg { width:17px; height:17px; }
.stage.complete .stage-no { background:linear-gradient(145deg,#f1fff5,#d1e9dc); }
.stage-title { flex:1; }
.stage-title strong { display:block; font-size:14px; font-weight:580; letter-spacing:-.2px; }
.stage-title small { display:block; color:var(--muted); font-size:10px; margin-top:5px; }
.stage-summary { font-size:11px; color:var(--muted); display:flex; gap:16px; align-items:center; }
.stage-summary .chevron { transition:transform .3s var(--ease); }
.stage-summary svg { width:16px; height:16px; }
.stage[open] .chevron { transform:rotate(90deg); }
.stage[open] summary { border-bottom:1px solid var(--line); background:#ffffff30; }
.topic-row { display:flex; align-items:center; gap:14px; padding:15px 23px;
  border-bottom:1px solid rgba(82,115,133,.08); transition:background .2s; }
.topic-row:last-child { border:0; }
.topic-row:hover { background:rgba(255,255,255,.44); }
.topic-open { background:transparent; flex:1; display:block; text-align:left; line-height:1.5; padding:0; }
.topic-open strong { font-weight:500; font-size:13px; }
.topic-open small { display:block; font-size:10px; color:var(--muted); margin-top:4px; padding-left:35px; }
.topic-row.done .topic-open strong { color:#4a6a70; }
.topic-open .code { font-size:10px; color:var(--muted); display:inline-block; width:35px; font-variant-numeric:tabular-nums; }
.topic-tags { display:flex; gap:6px; align-items:center; }
.topic-tags svg { width:15px; height:15px; color:var(--green); }
.topic-row .close { opacity:.65; transition:opacity .2s,transform .2s; }
.topic-row:hover .close { opacity:1; transform:translateX(2px); }
.table-wrap { overflow-x:auto; background:linear-gradient(135deg,#ffffffbd,#ffffff8c); border:1px solid #ffffffe6;
  border-radius:20px; box-shadow:var(--shadow); }
table { border-collapse:collapse; width:100%; font-size:12px; }
th { text-align:left; color:var(--muted); font-weight:550; background:rgba(255,255,255,.35);
  padding:16px 19px; border-bottom:1px solid var(--line); white-space:nowrap; font-size:11px; }
td { padding:17px 19px; border-bottom:1px solid var(--line); line-height:1.65; }
tr:last-child td { border:0; }
tbody tr { transition:background .2s; }
tbody tr:hover { background:rgba(255,255,255,.4); }
td .bar { min-width:80px; margin-top:7px; }
.area-text { color:var(--accent); }
.modal-backdrop { position:fixed; inset:0; background:rgba(31,55,73,.21); z-index:10; display:flex;
  justify-content:flex-end; padding:14px; -webkit-backdrop-filter:blur(8px) saturate(.9); backdrop-filter:blur(8px) saturate(.9);
  animation:veil-in .24s ease both; }
.drawer { position:relative; background:linear-gradient(150deg,#f4fbfff0,#edf5f6f5 65%,#ecf3f6f5);
  border:1px solid rgba(255,255,255,.85); border-radius:26px; width:min(760px,100%); height:100%; overflow-y:auto;
  box-shadow:-12px 0 70px -30px #17344973,inset 0 1px 0 #fff;
  animation:drawer-in .42s var(--ease) both; overscroll-behavior:contain; }
.drawer-top { position:sticky; top:0; background:linear-gradient(145deg,#f5fbffdd,#f0f8f8bd);
  -webkit-backdrop-filter:blur(22px) saturate(160%); backdrop-filter:blur(22px) saturate(160%);
  display:flex; justify-content:space-between; align-items:center; padding:17px 27px;
  border-bottom:1px solid #ffffffd9; box-shadow:0 3px 12px -10px #1d4c6640; z-index:2; }
.drawer-content { padding:27px; }
.drawer h2 { font-size:28px; letter-spacing:-.9px; line-height:1.25; margin:15px 0 19px; }
.drawer h3 { margin-bottom:14px; font-size:16px; }
.drawer .card { margin-top:18px; padding:23px; border-radius:20px; background:linear-gradient(145deg,#ffffffcf,#ffffff94);
  -webkit-backdrop-filter:none; backdrop-filter:none; }
.close { background:rgba(255,255,255,.35); color:var(--muted); padding:8px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center; transition:background .2s,transform .22s; }
.close:hover { background:#ffffffc4; color:var(--ink); transform:rotate(4deg); }
.close:active { transform:scale(.92); }
.checklist { display:grid; gap:2px; }
.checkline { display:flex; gap:12px; padding:12px 0; align-items:flex-start; cursor:pointer; line-height:1.45; font-size:13px; }
.checkline input { margin:0; }
.checkline small { display:block; font-size:11px; color:var(--muted); margin-top:5px; }
.resource { border-top:1px solid var(--line); padding:16px 0; }
.resource:first-of-type { border-top:0; }
.resource h4 { font-size:13px; font-weight:550; margin:0 0 8px; overflow-wrap:anywhere; line-height:1.6; }
.resource small { color:var(--muted); font-size:11px; line-height:1.8; display:block; }
.resource-actions { display:flex; gap:18px; flex-wrap:wrap; margin-top:11px; font-size:12px; }
.resource-actions svg { width:14px; height:14px; margin-left:3px; }
.warning-note { padding:11px 13px; margin-top:11px; border-radius:11px; font-size:11px; line-height:1.8;
  background:rgba(255,243,218,.78); border:1px solid #fffaf0; color:#795623; }
.field { display:grid; gap:8px; margin:17px 0; }
.field label { font-size:12px; font-weight:600; }
.field small { font-size:11px; color:var(--muted); line-height:1.7; }
.inline { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.inline input[type=number] { width:100px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.chat-layout { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.chat-presets { display:flex; gap:7px; flex-wrap:wrap; margin:17px 0; }
.chat-presets button { border:1px solid #ffffffd9; background:#ffffff73; border-radius:11px;
  padding:10px 13px; font-size:12px; min-height:39px; transition:transform .2s,background .2s,box-shadow .2s; }
.chat-presets button.active { background:linear-gradient(140deg,#ffffffed,#e2f2ecbf); color:var(--green);
  box-shadow:0 3px 8px -4px #285b642e,inset 0 1px 0 white; border-color:white; }
.chat-presets button:hover { background:#ffffffc4; transform:translateY(-1px); }
.context-preview { font:11px/1.85 ui-monospace,SFMono-Regular,monospace; min-height:310px;
  background:rgba(247,252,252,.71); color:#3d596c; border-color:#ffffffd9; padding:16px; }
.reveal { font-size:12px; color:var(--muted); margin-top:17px; }
.reveal summary { cursor:pointer; padding:4px 0; line-height:1.6; }
.reveal p { margin-top:11px; font-size:12px; }
.footer-note { font-size:10px; color:var(--muted); line-height:1.9; margin-top:30px; max-width:950px; }
.footer-note a { color:#28686d; }
.loading { padding:18vh 10%; font-size:21px; letter-spacing:-.5px; }
.loading::before { content:""; display:inline-block; height:12px; width:12px; border:2px solid #b2d5d0;
  border-top-color:#367f77; border-radius:50%; margin-right:14px; animation:loading-spin .8s linear infinite; }
#toast { position:fixed; bottom:27px; left:calc(50% + 110px); transform:translate(-50%,12px) scale(.98);
  z-index:30; color:#1f544e; background:linear-gradient(145deg,#f6fff9f5,#eefbf4d9); padding:13px 20px;
  border:1px solid #fffffff0; border-radius:999px; box-shadow:0 12px 40px -16px #153f4959,inset 0 1px 0 #fff;
  -webkit-backdrop-filter:blur(25px); backdrop-filter:blur(25px); max-width:90vw; font-size:12px; line-height:1.6;
  opacity:0; pointer-events:none; transition:opacity .23s,transform .3s var(--spring); }
#toast.show { opacity:1; transform:translate(-50%,0) scale(1); }
#toast.error { color:#7c3530; background:linear-gradient(145deg,#fff9f7f5,#fff0ebeb); border-color:#fffaf8; }
.import-preview { background:linear-gradient(140deg,#f6fff8cc,#e9f5ed99); border:1px solid #fff;
  padding:15px; border-radius:13px; font-size:12px; line-height:1.9; margin:16px 0; }
.hidden { display:none!important; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); }
.linklist { display:grid; gap:11px; margin:19px 0; }
.linklist a { padding:15px 17px; border:1px solid #ffffffc4; border-radius:13px; display:flex;
  justify-content:space-between; align-items:center; gap:15px; font-size:13px; background:#ffffff59;
  transition:background .2s,transform .22s var(--ease),box-shadow .2s; }
.linklist a:hover { background:#ffffffb3; transform:translateX(3px); text-decoration:none; box-shadow:0 3px 10px -6px #204d6b29; }
.mobile-name { display:none; } .session-count { font-size:11px; color:var(--muted); }
.error-page { padding:60px; max-width:750px; }
.spacer { height:14px; } .minor { font-size:11px; line-height:1.8; color:var(--muted); }
/* Entry animations are scoped to navigation, never to a note keystroke or a checkbox update. */
.main.view-enter .hero,.main.view-enter .layout,.main.view-enter>.tabs,.main.view-enter>.card,
.main.view-enter>.table-wrap,.main.view-enter>.chat-layout,.main.view-enter>.toolbar {
  animation:surface-in .48s var(--ease) both;
}
.main.view-enter .layout,.main.view-enter>.card,.main.view-enter>.table-wrap { animation-delay:.04s; }
.main.view-enter .area-card { animation:surface-in .55s var(--ease) both; }
.main.view-enter .area-card:nth-child(2) { animation-delay:.045s; }
.main.view-enter .area-card:nth-child(3) { animation-delay:.09s; }
.main.view-enter .area-card:nth-child(4) { animation-delay:.135s; }
.main.view-enter .stage { animation:surface-in .4s var(--ease) both; }
.main.view-enter .stage:nth-child(2) { animation-delay:.035s; }
.main.view-enter .stage:nth-child(3) { animation-delay:.07s; }
.main.view-enter .stage:nth-child(n+4) { animation-delay:.105s; }
.sidebar { animation:rail-in .65s var(--ease) both; }
/* Prevent the fixed navigation from restarting its entrance on every render. */
body.ui-ready .sidebar { animation:none; }
@keyframes surface-in { from { opacity:0; transform:translateY(12px) scale(.995); } to { opacity:1; transform:none; } }
@keyframes rail-in { from { opacity:0; transform:translateX(-12px); } to { opacity:1; transform:none; } }
@keyframes drawer-in { from { opacity:.35; transform:translateX(28px) scale(.985); } to { opacity:1; transform:none; } }
@keyframes veil-in { from { opacity:0; } to { opacity:1; } }
@keyframes ambient-arrive { from { opacity:0; transform:scale(.92); } to { opacity:1; transform:scale(1); } }
@keyframes orbit-arrive { from { opacity:0; transform:rotate(-12deg) scale(.85); } to { opacity:1; transform:rotate(0) scale(1); } }
@keyframes loading-spin { to { transform:rotate(360deg); } }
@media(min-width:1600px) { .main { margin-right:auto; padding-left:65px; padding-right:65px; } }
@media(max-width:1200px) {
  .sidebar { width:205px; inset:16px auto 16px 16px; padding:26px 10px 18px; }
  .brand { padding-left:9px; gap:10px; } .brand strong { font-size:19px; }
  .brandmark { width:38px; height:43px; font-size:27px; }
  .nav button { padding:12px 12px; font-size:12px; gap:11px; }
  .main { margin-left:235px; padding:28px; }
  .area-grid { grid-template-columns:1fr 1fr; }
  .layout { grid-template-columns:1.35fr 1fr; gap:18px; }
  .card { padding:23px; } .next-card { padding:25px; }
  .progress-top { gap:15px; } .ring { width:100px; height:100px; } .ring-inner { width:83px; height:83px; }
  .ring b { font-size:28px; } .metric { font-size:29px; }
  .top-actions .label { display:none; } .top-actions .btn { padding:10px 12px; }
  .next-card h2 { font-size:24px; }
}
@media(max-width:980px) {
  .sidebar { position:sticky; top:12px; width:calc(100% - 28px); height:auto; margin:12px 14px 0;
    padding:9px 12px; display:flex; flex-direction:row; align-items:center; gap:15px; border-radius:22px; }
  .brand { padding:0; flex-shrink:0; gap:9px; } .brandmark { width:31px; height:35px; font-size:23px; border-radius:11px; }
  .brand strong { font-size:16px; } .brand small { display:none; }
  .nav { display:flex; gap:3px; overflow-x:auto; margin-left:auto; }
  .nav button { padding:10px; gap:7px; font-size:11px; white-space:nowrap; min-height:39px; border-radius:13px; }
  .nav button.active::after { left:calc(50% - 6px); bottom:2px; width:12px; height:2px; }
  .nav button:hover { transform:translateY(-1px); }
  .nav svg { width:17px; height:17px; }
  .side-bottom { display:none; } .main { margin-left:0; padding:28px; }
  .topbar { margin-bottom:30px; }
  .layout,.summary-grid,.chat-layout { grid-template-columns:1fr; }
  .progress-card { display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:26px; }
  .progress-top { gap:24px; } .ring { width:110px; height:110px; } .ring-inner { width:92px; height:92px; }
  .metrics-mini { border-top:0; border-left:1px solid var(--line); margin:0; padding:0 0 0 26px; flex:1; }
  .hero h1 { font-size:36px; } #toast { left:50%; }
}
@media(max-width:680px) {
  .main { padding:25px 17px 45px; } .sidebar { top:8px; width:calc(100% - 18px); margin:8px 9px 0; gap:9px; padding:7px; border-radius:20px; }
  .brand strong { display:none; } .brandmark { width:29px; height:33px; font-size:22px; border-radius:10px; }
  .nav { gap:2px; } .nav button { padding:10px; font-size:0; gap:0; min-height:39px; }
  .nav button svg { width:19px; height:19px; }
  .nav button.active::after { bottom:2px; }
  .nav button.active::before { content:attr(data-label); font-size:10px; order:2; margin-left:6px; }
  .breadcrumbs { font-size:8px; letter-spacing:.8px; gap:5px; }
  .top-actions { gap:6px; } .top-actions .btn { padding:9px; min-height:36px; }
  .topbar { margin-bottom:28px; gap:10px; }
  .hero { display:block; margin-bottom:26px; } .hero p { font-size:13px; margin-top:13px; }
  .hero h1 { font-size:34px; letter-spacing:-1.35px; } .hero .pill { margin-top:14px; }
  .eyebrow { font-size:9px; letter-spacing:1.6px; }
  .area-grid { gap:12px; } .area-card { padding:17px; border-radius:19px; }
  .area-card h3 { font-size:13px; } .area-code { margin-bottom:15px; } .area-code span { font-size:9px; }
  .area-badge { width:31px; height:31px; border-radius:11px; font-size:9px; }
  .area-card .percentage { font-size:28px; } .area-card .muted { font-size:9px; }
  .card { padding:22px; border-radius:21px; } .next-card { padding:25px 24px 20px; }
  .next-card h2 { font-size:25px; letter-spacing:-.7px; }
  .next-card .reason { font-size:12px; } .continue { font-size:10px; }
  .next-card .actions { gap:8px; } .next-card .btn { padding:11px 14px; }
  .progress-card { display:block; } .progress-top { gap:25px; }
  .metrics-mini { border-left:0; border-top:1px solid var(--line); margin-top:23px; padding:18px 0 0; }
  .summary-grid { gap:16px; } .section-head h2 { font-size:22px; }
  .notice { font-size:11px; border-radius:13px; } .footer-note { font-size:10px; }
  .stage { border-radius:16px; } .stage summary { padding:17px 15px; gap:12px; }
  .stage-title strong { font-size:13px; } .stage-summary .chevron { display:none; }
  .stage-no { width:32px; height:32px; border-radius:10px; }
  .topic-row { padding:14px; gap:11px; } .topic-open strong { font-size:12px; }
  .topic-tags .pill { display:none; } .topic-open small { padding-left:0; font-size:10px; }
  .topic-open .code { width:32px; }
  .modal-backdrop { padding:7px; } .drawer { border-radius:23px; }
  .drawer-content { padding:19px; } .drawer-top { padding:13px 19px; }
  .drawer h2 { font-size:25px; } .drawer .card { padding:20px; border-radius:18px; }
  .form-grid { grid-template-columns:1fr; gap:0; }
  .tabs { gap:3px; padding:4px; border-radius:16px; }
  .tabs button { padding:9px 11px; font-size:11px; min-height:37px; border-radius:11px; }
  th,td { padding:13px; } .inline .btn { padding:10px 12px; }
  .table-wrap { border-radius:16px; } .card-title { gap:10px; } .card-title .btn { font-size:10px; }
  .error-page { padding:35px 23px; } #toast { font-size:11px; border-radius:18px; padding:12px 17px; }
}
@media(max-width:390px) {
  .nav button { padding:8px; } .nav button.active::before { display:none; }
  .brandmark { width:27px; height:31px; }
  .main { padding-left:13px; padding-right:13px; } .hero h1 { font-size:30px; }
  .breadcrumbs { font-size:7px; } .area-code span { font-size:8px; }
  .top-actions .btn { padding:8px; } .top-actions svg { width:15px; height:15px; }
}
@supports not ((backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px))) {
  .sidebar,.card,.area-card,.drawer-top { background:rgba(249,253,255,.96); }
}
@media(prefers-reduced-transparency:reduce) {
  .sidebar,.card,.area-card,.drawer,.drawer-top,.stage,.table-wrap,#toast { background:#f9fcfd; -webkit-backdrop-filter:none; backdrop-filter:none; }
  .ambient::after { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .btn:hover,.area-card:hover,.nav button:hover,.linklist a:hover { transform:none; }
  .loading::before { border-color:#367f77; }
}
@media print {
  .sidebar,.topbar,.btn,.modal-backdrop,#toast,.ambient,.focus-orbit { display:none!important; }
  .main { margin:0; padding:0; } .card,.area-card { break-inside:avoid; background:white; box-shadow:none; }
  body,:root { background:white; } .card::before,.area-card::before,.area-card::after { display:none; }
}

/* Short exits preserve the saved state and respect reduced motion. */
.modal-backdrop.leaving{animation:veil-out .16s ease both;pointer-events:auto}
.modal-backdrop.leaving .drawer{animation:drawer-out .16s ease both;pointer-events:none}
.main.view-enter .bar div{transform-origin:left;animation:bar-reveal .7s var(--ease) both;animation-delay:.1s}
@keyframes bar-reveal{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes veil-out{from{opacity:1}to{opacity:0}}
@keyframes drawer-out{from{transform:translateX(0);opacity:1}to{transform:translateX(16px);opacity:.5}}
@media(prefers-reduced-motion:reduce){.modal-backdrop.leaving,.modal-backdrop.leaving .drawer,.main.view-enter .bar div{animation:none!important}}
.entry-main{max-width:1000px;margin:7vh auto;padding:28px 32px 55px}
.entry-brand{display:flex;gap:12px;align-items:center;margin-bottom:47px;font-size:20px;font-weight:650;letter-spacing:-.7px}
.entry-brand small{display:block;font-size:9px;font-weight:500;letter-spacing:1.8px;color:var(--muted);margin-top:4px}
.entry-main .hero{animation:surface-in .5s var(--ease) both}
.entry-main .card{animation:surface-in .6s var(--ease) both;animation-delay:.08s}
.entry-main .card:nth-child(2){animation-delay:.15s}
@media(max-width:680px){.entry-main{margin:3vh auto;padding:20px 18px 40px}.entry-brand{margin-bottom:35px}.entry-main .hero h1{font-size:38px}.entry-main .summary-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.entry-main .hero,.entry-main .card{animation:none!important}}

/* A book at the heart of the study space. */
.brandmark { padding-bottom:0; flex-shrink:0; }
.brandmark svg { width:67%; height:67%; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 1px 1px #174d5a40); }
/* Welcome guide: real, read-only views underneath an accessible dialog. */
#tour-root[hidden] { display:none; }
#tour-root { position:fixed; inset:0; z-index:50; isolation:isolate; }
.tour-shade { position:absolute; inset:0; background:rgba(16,42,54,.43); }
.tour-spotlight { position:fixed; border:2px solid #ecfffa; border-radius:19px; box-shadow:0 0 0 9999px rgba(16,42,54,.43),0 0 0 5px #9ee1cc70; pointer-events:none; }
.tour-card { position:fixed; width:370px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain;
 padding:23px; border:1px solid #ffffffed; border-radius:25px; color:#173449;
 background:linear-gradient(140deg,rgba(255,255,255,.98),rgba(238,249,246,.96));
 -webkit-backdrop-filter:blur(28px); backdrop-filter:blur(28px);
 box-shadow:0 25px 90px -24px #092f4e99,inset 0 1px 0 #fff; animation:tour-arrive .2s ease both; }
.tour-card:focus { outline:none; }
.tour-top { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:16px; }
.tour-count { color:#536d7b; font-size:10px; letter-spacing:1px; font-weight:650; }
.tour-skip.btn { padding:6px 0 6px 10px; min-height:30px; white-space:nowrap; font-size:12px; color:#3e6567; }
.tour-symbol { display:grid; place-items:center; width:39px; height:39px; border:1px solid #d6e8e2; border-radius:13px; color:#1f7168; background:linear-gradient(140deg,#fff,#dff1ea); margin-bottom:14px; }
.tour-symbol svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.tour-card h2 { font-size:24px; line-height:1.15; letter-spacing:-.7px; margin:0 0 12px; }
.tour-card p { font-size:14px; line-height:1.65; color:#3c5768; margin:0; }
.tour-tip { margin-top:16px; padding:12px 13px; font-size:12px; line-height:1.6; color:#315d5b; background:#e8f3ef; border:1px solid #d9eae4; border-radius:13px; }
.tour-dots { display:flex; gap:5px; margin:20px 0; }
.tour-dots span { height:4px; flex:1; border-radius:4px; background:#d7e3e4; }
.tour-dots span.active { background:#257a70; } .tour-dots span.passed { background:#8db8ab; }
.tour-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.tour-actions .btn { min-height:42px; padding:11px 15px; font-size:13px; }
body.tour-active .main.view-enter > *,body.tour-active .main.view-enter .area-card,body.tour-active .main.view-enter .stage,body.tour-active .sidebar,body.tour-active .modal-backdrop,body.tour-active .drawer { animation:none!important; }
body.tour-active .modal-backdrop { background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none; }
body.tour-active .main,body.tour-active .drawer { scroll-behavior:auto; }
body.tour-active .main * { scroll-margin-top:110px; }
body.tour-active .drawer * { scroll-margin-top:85px; }
@keyframes tour-arrive { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:680px) {
 .tour-card { width:calc(100vw - 24px); padding:18px; border-radius:23px; max-height:calc(100dvh - 24px); }
 .tour-card h2 { font-size:21px; margin-bottom:9px; }
 .tour-card p { font-size:13px; line-height:1.55; }
 .tour-tip { font-size:11px; padding:10px 12px; margin-top:12px; }
 .tour-symbol { display:none; } .tour-top { margin-bottom:13px; } .tour-dots { margin:15px 0; }
}
@media(prefers-reduced-motion:reduce) { .tour-card { animation:none!important; } }
@media(prefers-reduced-transparency:reduce) { .tour-card { background:#f4faf8; -webkit-backdrop-filter:none; backdrop-filter:none; } }
@media print { #tour-root { display:none!important; } }
.cloud-entry { max-width:1000px; }.cloud-entry-card{max-width:600px;padding:32px}.cloud-entry-card h2{font-size:27px;letter-spacing:-.8px;margin:20px 0 14px}.cloud-entry-card p{color:var(--muted);font-size:14px;line-height:1.75;margin:14px 0 22px}.cloud-entry-card form{display:grid;gap:14px;margin-top:20px}.cloud-entry-card label{font-size:13px;font-weight:600}.cloud-entry-card .minor{font-size:12px;margin-bottom:0}.entry-features{display:flex;flex-wrap:wrap;gap:20px;color:var(--muted);font-size:12px;margin-top:30px}.cloud-account{border-top:1px solid #c5d7da66;padding-top:12px;margin-top:12px}.cloud-account small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}.cloud-account a{font-size:11px;color:var(--green)}.context-status{margin-top:14px}.chat-attachments{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.invite-result{font-size:12px;word-break:break-all;line-height:1.7;padding:16px;background:#edf7f3;border-radius:14px;margin-top:14px}.cloud-invite-card{margin-top:22px}.cloud-migrate{margin:18px 0}.cloud-entry .hero h1{font-size:clamp(38px,6vw,64px)}

.download-link{font-size:12px;white-space:nowrap;color:var(--green);margin-left:8px;text-decoration:underline;text-underline-offset:3px}

/* Learning places the explanation and active recall ahead of tracking. */
.modal-backdrop.study-backdrop{padding:0}
.learning-drawer{width:100%;max-width:none;height:100%;height:100dvh;border:0;border-radius:0;box-shadow:none;background:linear-gradient(145deg,#f5fbff,#eef6f7 65%,#edf4f6);animation:study-in .3s var(--ease) both}
.learning-drawer .drawer-top{padding:15px clamp(20px,3vw,40px)}
.learning-drawer .drawer-content{width:100%;max-width:none;margin-inline:0;padding:30px clamp(20px,3vw,40px) 40px}
.learning-drawer h2{font-size:clamp(26px,3vw,38px);line-height:1.25}
.study-close{gap:9px;border-radius:12px;font-size:12px;font-weight:600;padding:10px 12px}
.study-close:hover{transform:none}.study-close svg{width:18px;height:18px}
@keyframes study-in{from{opacity:.25;transform:translateY(10px)}to{opacity:1;transform:none}}
body.tour-active .learning-drawer *{scroll-margin-top:150px}
@media(max-width:680px){.learning-drawer .drawer-content{padding-top:22px}.study-close{font-size:11px;padding:8px}.learning-drawer .drawer-top{padding-block:12px}}
@media(prefers-reduced-motion:reduce){.learning-drawer{animation:none!important}}
.lesson-tabs{position:sticky;top:70px;z-index:1;display:flex;gap:5px;padding:6px;margin:22px 0;background:rgba(231,242,243,.9);border:1px solid #ffffffc9;border-radius:16px;backdrop-filter:blur(20px);box-shadow:0 7px 24px -18px #254b5a77}
.lesson-tabs button{flex:1;padding:12px 8px;border-radius:11px;font-weight:650;font-size:13px;color:var(--muted);transition:background .2s,box-shadow .2s,color .2s}
.lesson-tabs button[aria-pressed=true]{color:var(--teal);background:#fffffff0;box-shadow:0 2px 8px #234f5a12,inset 0 1px white}
[data-lesson-panel][hidden]{display:none!important}
.lesson-meta{display:flex;gap:16px;justify-content:space-between;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:26px 0 18px}
.lesson-meta span:first-child{display:flex;gap:8px;align-items:center}.lesson-meta svg{width:17px;height:17px}
.lesson-reading{font-size:16px;line-height:1.85;color:#284655;overflow-wrap:anywhere}
.lesson-reading p{margin:0 0 18px}.lesson-reading .lesson-intro{font-size:18px;line-height:1.8;color:#294d5c}
.learning-goals{margin:25px 0;padding:22px 26px;background:#ffffff88;border:1px solid #fff;border-radius:18px}
.drawer .learning-goals h3{font-size:14px;text-transform:uppercase;letter-spacing:.8px;color:var(--teal)}
.learning-goals ul{padding-left:20px;margin:0}.learning-goals li{padding-left:5px;margin:7px 0;font-size:14px;line-height:1.65}
.lesson-outline{display:grid;gap:7px;margin:30px 0;padding:0 0 27px;border-bottom:1px solid #acc2ca5c}
.lesson-outline .eyebrow{margin-bottom:9px}.lesson-outline button{display:flex;gap:14px;text-align:left;align-items:baseline;padding:6px 0;color:var(--ink);font-size:14px;line-height:1.5}.lesson-outline button span{color:var(--teal);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.lesson-outline button:hover{color:var(--teal)}
.lesson-section{position:relative;padding:12px 0 20px;scroll-margin-top:145px;outline-offset:5px}
.lesson-section-no{color:var(--teal);font-size:11px;letter-spacing:2px;font-weight:700}
.drawer .lesson-section h3{font-size:22px;letter-spacing:-.45px;line-height:1.4;margin:6px 0 16px}
.worked-example{padding:28px;border-radius:22px;background:linear-gradient(135deg,#e1f2edcc,#f8fcfbf0);border:1px solid #fff;box-shadow:0 8px 25px -22px #28685a66;margin:15px 0 35px}
.drawer .worked-example h3{font-size:21px;line-height:1.4;margin:12px 0 17px}.worked-example ol{padding-left:22px}.worked-example li{padding-left:7px;margin:13px 0}.worked-example .example-conclusion{margin:20px 0 0;padding-top:17px;border-top:1px solid #aecdc477;font-weight:600}
.drawer .lesson-mistakes h3{font-size:20px}.lesson-mistakes>div{padding:15px 0;border-bottom:1px solid #acc2ca44}.lesson-mistakes h4{font-size:15px;line-height:1.6;margin-bottom:7px;color:#8b5e36}.lesson-mistakes p{font-size:14px;line-height:1.8;margin:0}
.lesson-takeaway{padding:25px 0;margin:12px 0 22px}.lesson-takeaway p{font-size:19px;line-height:1.7;color:var(--teal);margin:10px 0 0;font-weight:500}
.lesson-references{padding-top:20px;border-top:1px solid #acc2ca55}.lesson-source{padding:16px 0;font-size:12px;border-bottom:1px solid #acc2ca44}.lesson-source strong{display:block;overflow-wrap:anywhere;font-size:13px}.lesson-source small{display:block;color:var(--muted);margin:5px 0}.lesson-source .resource-actions{gap:10px;flex-wrap:wrap;line-height:1.7}
.lesson-next{padding:25px;margin:30px 0;border-radius:20px;border:1px solid #fff;background:#ffffff99}.lesson-next p{font-size:14px;margin-bottom:18px}.lesson-ask{margin:25px 0 5px}.lesson-ask label{display:block;font-size:14px;font-weight:650;margin-bottom:12px}.lesson-ask textarea{font-size:14px;min-height:90px}
.lesson-bottom{display:flex;flex-wrap:wrap;gap:10px;padding-top:23px;margin-top:16px;border-top:1px solid #b7cbd166}.lesson-bottom .btn{font-size:12px;line-height:1.5}
.quiz-intro{padding:20px 0}.drawer .quiz-intro h3{font-size:25px;line-height:1.35;margin:10px 0 15px}.quiz-intro p{line-height:1.75;font-size:14px;margin-bottom:12px}.quiz-stats{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.quiz-stats span{font-size:11px;padding:7px 10px;background:#ffffff99;border-radius:20px}
.quiz-score{display:flex;align-items:center;gap:24px;padding:25px;background:#e0f2edbb;border:1px solid #fff;border-radius:20px;margin:8px 0 25px}.quiz-score>div{min-width:120px}.quiz-score span{font-size:11px;color:var(--teal);display:block}.quiz-score strong{display:block;font-size:38px;letter-spacing:-1px;color:var(--teal);margin-top:8px}.quiz-score small{font-size:18px;font-weight:400}.quiz-score p{font-size:13px;line-height:1.75}
.quiz-question{min-width:0;border:1px solid #ffffffd6;background:#ffffff91;border-radius:20px;padding:25px;margin:24px 0}.quiz-question legend{float:left;width:100%;font-size:16px;font-weight:600;line-height:1.7;padding:0 0 16px}.quiz-question legend>span:first-child{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.9px;font-weight:650;color:var(--muted);margin-bottom:9px}.quiz-options{clear:both;display:grid;gap:9px}.quiz-option{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border-radius:13px;border:1px solid #c9dce17a;background:#ffffff75;font-size:14px;line-height:1.6;cursor:pointer}.quiz-option input{flex:none;margin-top:4px}.quiz-option b{font-weight:600}.quiz-option:has(input:checked){border-color:#4e9897;background:#e7f4f1}.quiz-option.correct-option{border-color:#7fae99;background:#e3f2eacc}.quiz-option.wrong-option{border-color:#c59b78;background:#fff0e4cc}.quiz-option:has(input:disabled){cursor:default}.quiz-option input:disabled{opacity:.8}.quiz-feedback{clear:both;font-size:13px;line-height:1.8;margin-top:18px;padding-top:18px;border-top:1px solid #c4d6d877}.quiz-feedback strong{font-size:13px}.quiz-feedback p{margin:9px 0}.quiz-feedback .btn{font-size:12px;white-space:normal;text-align:left}.quiz-error{color:#955b32;margin:15px 0}.quiz-history{margin-top:25px}
@media(max-width:680px){.lesson-tabs{top:62px;gap:2px;margin:17px 0}.lesson-tabs button{font-size:11px;padding:11px 4px}.lesson-reading{font-size:15px;line-height:1.85}.lesson-reading .lesson-intro{font-size:17px}.worked-example{padding:21px}.learning-goals{padding:18px}.quiz-question{padding:19px}.quiz-score{gap:15px;align-items:flex-start;flex-direction:column}.quiz-option{padding:12px;font-size:13px}.lesson-bottom .btn{width:100%;justify-content:center}.lesson-section{scroll-margin-top:135px}.lesson-source .resource-actions{display:flex}}
@media(prefers-reduced-transparency:reduce){.lesson-tabs,.quiz-question,.learning-goals,.lesson-next{background:#f9fcfd;backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){.lesson-tabs button{transition:none}}
.lesson-plain{padding:23px 26px;border:1px solid #fff;border-radius:20px;background:linear-gradient(135deg,#e0f0edc9,#f6fcfad9);margin:20px 0 27px}.lesson-reading .lesson-plain p{margin:9px 0 0;font-size:19px;line-height:1.7;color:#24544f;font-weight:500}@media(max-width:680px){.lesson-plain{padding:19px}.lesson-reading .lesson-plain p{font-size:17px}}

/* Private feedback inbox, matching the study space. */
.feedback-layout { display:grid; grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr); gap:28px; align-items:start; }
.feedback-compose h2 { font-size:24px; margin-bottom:12px; }
.feedback-compose .field:first-child { margin-top:24px; }
.feedback-compose textarea { min-height:155px; }
.feedback-result { color:var(--teal-dark,#176665); font-size:14px; margin-top:14px; line-height:1.6; }
.feedback-inbox { min-width:0; }
.feedback-inbox .section-head { margin-top:0; align-items:flex-start; }
.feedback-scopes { display:flex; gap:8px; margin:0 0 20px; flex-wrap:wrap; }
.feedback-item { margin-bottom:18px; }
.feedback-meta { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:14px; }
.feedback-item h3,.feedback-message,.feedback-response p { overflow-wrap:anywhere; }
.feedback-item h3 { line-height:1.4; }
.feedback-author { margin-top:6px; }
.feedback-message,.feedback-response p { white-space:pre-wrap; margin:15px 0; line-height:1.75; font-size:14px; }
.feedback-response { border-left:3px solid #5b9b94; padding:14px 18px; border-radius:0 15px 15px 0; background:rgba(214,238,231,.5); margin-top:18px; }
.feedback-response strong { font-size:13px; }
.feedback-response p { margin:8px 0; }
.feedback-manage { margin-top:20px; border-top:1px solid var(--line); padding-top:15px; }
.feedback-manage summary { cursor:pointer; font-size:13px; font-weight:650; color:#246e69; }
.feedback-manage textarea { min-height:100px; }
.feedback-pagination { justify-content:flex-end; }
.feedback-inbox .empty h3 { margin:10px 0; }
.feedback-inbox .empty p { line-height:1.7; }
@media(max-width:1100px) { .feedback-layout { grid-template-columns:1fr; } }
@media(max-height:760px) and (min-width:801px) { .sidebar { overflow-y:auto; } .sidebar .side-bottom { padding-top:16px; } .nav button { padding-top:10px; padding-bottom:10px; } }

.feedback-fields { border:0; padding:0; margin:0; min-width:0; }

.study-plan { margin:0 0 25px; }
.summary-grid + .study-plan { margin-top:23px; }
.pace-heading { display:flex; justify-content:space-between; align-items:center; gap:22px; margin-bottom:22px; }
.pace-heading h2 { font-size:24px; }
.pace-date { margin:0; width:225px; flex-shrink:0; }
.pace-date small { margin-top:7px; }
.pace-stats { display:grid; grid-template-columns:minmax(0,2fr) minmax(100px,.65fr) minmax(100px,.65fr); gap:22px; align-items:center; }
.pace-main strong { display:block; color:#216e69; font-size:clamp(25px,2.8vw,37px); letter-spacing:-1.1px; line-height:1.25; }
.pace-main p { font-size:13px; color:var(--muted); margin-top:8px; line-height:1.6; }
.pace-count { border-left:1px solid var(--line); padding-left:22px; }
.pace-count strong { display:block; font-size:30px; font-weight:650; letter-spacing:-1px; font-variant-numeric:tabular-nums; }
.pace-count span { color:var(--muted); font-size:12px; line-height:1.5; }
.pace-average { font-size:13px; line-height:1.7; margin-top:22px; }
.pace-areas { display:flex; flex-wrap:wrap; gap:8px; margin:17px 0; }
.pace-areas span { border:1px solid var(--line); border-radius:12px; background:#ffffff66; padding:8px 12px; font-size:11px; color:var(--muted); }
.pace-areas b { color:var(--ink); margin-left:7px; }
.pace-method { line-height:1.8; }
.pace-empty { display:flex; align-items:flex-start; gap:15px; padding:8px 0; }
.pace-empty > svg { width:26px; height:26px; color:#3f8781; flex-shrink:0; }
.pace-empty h3 { font-size:17px; line-height:1.5; }
.pace-empty p { color:var(--muted); font-size:13px; line-height:1.8; margin-top:8px; }
.study-plan .notice { margin:0; }.study-plan .notice p { margin-top:8px; }
@media(max-width:680px) { .pace-heading { align-items:flex-start; flex-direction:column; }.pace-date { width:100%; }.pace-stats { grid-template-columns:1fr 1fr; gap:20px; }.pace-main { grid-column:1/-1; }.pace-count { padding-left:14px; }.pace-areas span { font-size:10px; }.pace-heading h2 { font-size:23px; } }

.group-explainer p,#feedback-explainer p { margin-top:8px; line-height:1.8; }
.group-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.group-member { min-width:0; }
.group-member-top { display:flex; gap:13px; align-items:center; margin-bottom:22px; }
.group-member-top h3 { font-size:18px; overflow-wrap:anywhere; line-height:1.5; }
.group-avatar { display:grid; place-items:center; width:43px; height:43px; flex-shrink:0; background:#d7ece8aa; color:#26706a; border-radius:15px; font-size:20px; font-weight:650; }
.group-member-top .minor { margin-top:5px; }
.group-progress { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:11px; }
.group-progress strong { font-size:29px; color:#266c66; letter-spacing:-1px; }
.group-progress strong small { font-size:11px; letter-spacing:0; margin-left:3px; font-weight:500; }
.group-progress > span { font-size:12px; color:var(--muted); }
.group-practice { margin-top:12px; line-height:1.8; }
.group-area-list { margin-top:18px; border-top:1px solid var(--line); padding-top:12px; }
.group-area-list > div { display:flex; justify-content:space-between; gap:15px; margin:8px 0; font-size:12px; line-height:1.6; }
.group-area-list span { color:var(--muted); }.group-area-list b { font-weight:600; white-space:nowrap; }
.group-private { display:flex; gap:12px; align-items:center; border-radius:15px; padding:18px; background:#edf3f5aa; color:var(--muted); }
.group-private > svg { width:20px; height:20px; flex-shrink:0; }.group-private p { font-size:14px; }.group-private small { display:block; margin-top:5px; line-height:1.7; font-size:12px; }
.group-settings { margin-bottom:23px; }.group-settings h2 { font-size:22px; margin-bottom:12px; }
.group-settings .minor { margin:10px 0; line-height:1.8; }.group-settings form .btn { margin-top:15px; }
.group-pagination { justify-content:flex-end; margin-top:20px; }
#group-invite-url { margin:14px 0; font-size:12px; }
.group-invite-history { margin-top:25px; padding-top:18px; border-top:1px solid var(--line); }.group-invite-history summary { cursor:pointer; font-weight:600; font-size:13px; }
@media(max-width:800px){.group-grid { grid-template-columns:1fr; }}
@media(max-height:820px) and (min-width:801px){.sidebar{overflow-y:auto}.nav{gap:4px}.nav button{min-height:42px;padding-top:9px;padding-bottom:9px}.brand{padding-bottom:24px}.side-bottom{padding-top:14px}}

.group-shortcuts { margin:-12px 0 22px; flex-wrap:wrap; }
#group-sharing,#group-invitations,#group-members { scroll-margin-top:30px; }

/* Compact the home rhythm and heading spacing without changing text size. */
.topbar { margin-bottom:28px; }
.home-hero { margin-bottom:22px; }
.home-hero .eyebrow { margin-bottom:8px; }
.home-hero p { margin-top:10px; }
.pace-heading { align-items:flex-start; gap:18px; margin-bottom:15px; }
.pace-heading .eyebrow { margin-bottom:6px; }
.pace-heading h2 { line-height:1.2; }
.pace-main .eyebrow { display:block; margin-bottom:6px; }
.pace-date label { margin-bottom:6px; }
.pace-average { margin-top:15px; }
.pace-areas { margin:13px 0; }
.exam-teaser { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:18px 20px; margin:18px 0 25px; border:1px solid #b7d7d2; border-radius:17px; background:linear-gradient(120deg,#e4f4eecc,#edf5f8aa); }
.exam-teaser strong { font-size:14px; }.exam-teaser p { font-size:12px; margin:6px 0 0; color:var(--muted); }.exam-teaser .btn { flex-shrink:0; }
.exam-examples-intro { margin:8px 0 24px; }.exam-examples-intro h3 { font-size:25px; margin-bottom:12px; }.exam-examples-intro p { font-size:14px; line-height:1.85; color:var(--muted); }
.exam-example { margin-bottom:20px; }.exam-reference-meta { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:15px; }
.exam-example h4 { font-size:19px; line-height:1.4; margin:0 0 12px; }.exam-example > p { font-size:14px; line-height:1.85; }
.exam-match { margin:18px 0 14px; padding-left:15px; border-left:3px solid #7baba3; }.exam-match strong { font-size:13px; }.exam-match p { font-size:14px; line-height:1.8; margin:6px 0 0; }
.exam-limit { color:#526676; font-size:13px!important; }
.exam-document-links { display:flex; gap:10px; flex-wrap:wrap; margin:20px 0 14px; }
.exam-example .minor { font-size:11px; line-height:1.8; color:var(--muted); }
.exam-no-match h4 { margin:0 0 12px; font-size:18px; }.exam-no-match p { margin:12px 0; font-size:14px; line-height:1.85; }
.exam-review-note { line-height:1.85; margin:22px 0; }.quiz-real-link { margin:18px 0 26px; }
@media(max-width:680px) { .exam-teaser { flex-direction:column; align-items:stretch; padding:17px; }.exam-examples-intro h3 { font-size:22px; }.lesson-tabs button { min-width:0; font-size:10px; padding:11px 3px; }.exam-document-links .btn { width:100%; }.pace-heading { gap:13px; }.home-hero { margin-bottom:20px; } }
.pace-date { display:flex; align-items:center; gap:12px; width:auto; }
.pace-date label { margin:0; white-space:nowrap; }
.pace-date .input { width:170px; }
.pace-heading { align-items:center; }
.exam-unpaired { margin-top:22px; }.exam-unpaired > h4 { margin:14px 0 10px; font-size:19px; }.exam-unpaired .resource h4 { margin:10px 0; }.exam-unpaired .resource p { font-size:14px; line-height:1.8; }
@media(max-width:680px){.pace-heading{align-items:stretch}.pace-date{width:100%;justify-content:space-between}.pace-date .input{width:185px;max-width:65%}}

/* Focus on one action; supporting explanations unfold on demand. */
.quiet-details { color:var(--muted); font-size:12px; line-height:1.75; }
.quiet-details > summary { cursor:pointer; display:flex; align-items:center; gap:8px; width:fit-content; list-style:none; min-height:36px; font-weight:550; }
.quiet-details > summary::-webkit-details-marker,.chapter > summary::-webkit-details-marker,.lesson-references > summary::-webkit-details-marker { display:none; }
.quiet-details > summary > svg { width:14px; height:14px; transition:transform .2s var(--ease); }
.quiet-details[open] > summary > svg { transform:rotate(90deg); }
.detail-body { font-size:13px; color:var(--muted); line-height:1.8; padding:9px 0 4px; }
.detail-body p + p { margin-top:10px; }
.quiet-details[open] > .detail-body { animation:detail-arrive .22s var(--ease) both; }
.footer-note { margin-top:28px; padding-top:16px; border-top:1px solid var(--line); }
.footer-note .detail-body { max-width:750px; font-size:11px; }
.hero { margin-bottom:25px; }.hero h1 { font-size:clamp(32px,3vw,44px); line-height:1.12; }
.hero .eyebrow { margin-bottom:10px; }.hero p { margin-top:8px; font-size:14px; }
.home-hero { align-items:center; }.home-status { display:flex; align-items:center; gap:7px; font-size:12px; color:var(--muted); white-space:nowrap; padding:9px 13px; border:1px solid #ffffffb0; border-radius:999px; background:#ffffff66; }.home-status svg{width:15px;height:15px;color:var(--green)}
.home-dashboard { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr); gap:20px; align-items:stretch; }
.home-dashboard .next-card { min-height:308px; padding:28px; display:flex; flex-direction:column; }
.next-top { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }.next-top .minor{font-size:11px}
.home-dashboard .next-card h2 { font-size:clamp(26px,2.4vw,34px); line-height:1.2; margin:24px 0 12px; max-width:550px; }
.next-hint { font-size:13px; color:var(--muted); }
.home-dashboard .next-card .actions { margin-top:23px; }.primary-start { min-height:48px; padding:13px 22px; font-size:13px; }
.next-why { margin-top:12px; }.next-why .detail-body{font-size:12px}.home-dashboard .continue{margin-top:12px;padding-top:10px}
.home-dashboard .study-plan { margin:0; padding:24px; }
.pace-heading { margin-bottom:14px; }.pace-heading h2 { font-size:18px; letter-spacing:-.35px; }.pace-heading > svg { width:19px; height:19px; color:#5e8a87; }
.pace-date { display:flex; width:100%; gap:12px; justify-content:space-between; margin-bottom:20px; }.pace-date label{font-size:11px}.pace-date .input{width:158px;min-height:39px;padding:8px 10px;font-size:12px}
.pace-main strong { display:block; color:#1d7068; font-size:45px; line-height:1.15; font-weight:650; letter-spacing:-1.8px; }.pace-main strong span { font-size:20px; letter-spacing:-.5px; font-weight:600; }
.pace-facts { display:flex; gap:15px; flex-wrap:wrap; margin:15px 0 6px; font-size:11px; color:var(--muted); }.pace-facts span{display:flex;align-items:center;gap:5px}.pace-facts svg{width:13px;height:13px}.pace-facts b{color:var(--ink);font-weight:600}
.pace-details .detail-body{font-size:11px}.pace-areas { margin:0 0 12px;gap:5px; }.pace-areas span{font-size:10px;padding:5px 7px}
.home-exams { margin-top:25px; }.home-exams .section-head{margin:0 0 13px}.home-exams h2{font-size:20px}.home-exams .area-card{padding:18px;min-height:160px}.home-exams .area-code{margin-bottom:14px}.home-exams .area-percent{font-size:25px;font-weight:650;letter-spacing:-1px;color:var(--accent)}.home-exams .area-card h3{font-size:16px;min-height:42px}.home-exams .bar{height:5px;margin:10px 0}.area-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center;color:var(--muted);font-size:10px}.area-bottom svg{width:15px;height:15px}
.home-bottom{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:22px}.review-strip{margin-top:20px;padding:14px 18px;border:1px solid #e7d9b6;border-radius:16px;background:#fff7e6aa}.review-strip>span{display:flex;gap:8px;align-items:center;color:#8c642c;font-size:12px;font-weight:600}.review-strip>div{display:flex;gap:10px;flex-wrap:wrap;margin-top:9px}.review-strip button{display:flex;gap:7px;align-items:center;text-align:left;background:transparent;font-size:12px;padding:8px 0}.review-strip button svg{width:15px;height:15px}
.view-enter .home-dashboard > .card { animation:detail-arrive .5s var(--ease) both; }.view-enter .home-dashboard > .card:nth-child(2){animation-delay:.07s}
.route-hint { display:flex; align-items:center; gap:7px; }.route-hint svg { width:15px; height:15px; }
.topic-row { min-height:66px; }.topic-open strong{line-height:1.5}
.lesson-plain { margin-bottom:17px; }.lesson-meta{font-size:11px}.lesson-reading{width:100%;max-width:none}.exam-teaser{padding:12px 16px;margin:14px 0;gap:12px}.exam-teaser p{margin-top:3px;font-size:11px}.exam-teaser strong{font-size:13px}
.lesson-overview { display:grid; grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:clamp(24px,3vw,48px); border-bottom:1px solid var(--line); margin:0 0 25px; padding:23px 0; }.lesson-overview h3 { font-size:16px; margin:0 0 12px; }.lesson-overview p { font-size:15px; line-height:1.85; margin:0; }.lesson-objectives ul { margin:0; padding-left:20px; }.lesson-objectives li { font-size:14px; line-height:1.75; margin:0 0 8px; }.reader-toolbar { display:flex; justify-content:space-between; align-items:center; gap:15px; margin:25px 0 14px; }.reader-toolbar h3{font-size:19px}.reader-toolbar .btn{font-size:11px;min-height:34px;padding-top:5px;padding-bottom:5px}
.lesson-section.chapter { padding:0; margin:10px 0; border:1px solid #dbe7e8; border-radius:16px; background:#ffffff80; overflow:hidden; }
.chapter > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:13px; padding:18px; min-height:65px; }
.chapter > summary .lesson-section-no { position:static; display:grid; place-items:center; flex-shrink:0; margin:0; border:1px solid #d7e8e3; border-radius:9px; width:28px; height:28px; background:#e6f1ee; color:#408079; font-size:10px; }
.chapter > summary h3 { margin:0; font-size:17px; line-height:1.45; flex:1; }.chapter > summary > svg{width:16px;height:16px;transition:transform .2s var(--ease);color:var(--muted)}.chapter[open] > summary > svg { transform:rotate(90deg); }
.chapter[open] > summary { border-bottom:1px solid var(--line); }.chapter-body { padding:8px 23px 22px; }.chapter-body p{margin:14px 0 0;font-size:15px;line-height:1.9}.chapter[open] .chapter-body{animation:detail-arrive .22s var(--ease) both}
.lesson-references { margin:25px 0; padding:17px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.lesson-references > summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;gap:10px}.lesson-references > summary svg{width:16px;height:16px}.lesson-references[open] > summary{margin-bottom:18px}.lesson-references[open] > summary svg{transform:rotate(90deg)}
.exam-examples-intro{margin-bottom:18px}.exam-examples-intro h3{font-size:25px;margin-bottom:8px}.exam-example{padding:23px}.exam-match{margin:12px 0;border:0;padding:0}.exam-match .detail-body{font-size:13px}.exam-reference-meta{margin-bottom:10px}.exam-limit{font-size:12px!important;background:#f0f5f7b0;padding:10px 12px;border-radius:10px;line-height:1.75!important}.exam-document-links{margin:17px 0 12px}.exam-review-note{margin:17px 0}
.context-status { margin-top:12px; }.context-text { margin:12px 0; }.context-preview { margin-top:10px; }.chat-layout .card>h3{font-size:19px}.library-help{margin:0 0 15px}#feedback-explainer,.group-explainer{margin:0 0 18px}#feedback-explainer .detail-body,.group-explainer .detail-body{max-width:640px}.group-area-list{margin-top:12px}.group-area-list summary{font-size:11px}.group-area-list > div{font-size:11px}
@keyframes detail-arrive { from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)} }
@media(max-width:1050px) and (min-width:801px){.home-dashboard{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr)}.home-dashboard .card{padding:22px}.home-exams .area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-exams .area-card h3{min-height:0}.home-status{display:none}}
@media(max-width:800px){.home-dashboard{grid-template-columns:1fr}.home-dashboard .next-card{min-height:0}.home-dashboard .study-plan{margin:0}.home-dashboard .pace-date{max-width:340px}.home-dashboard .pace-facts{gap:22px}.home-status{display:none}.home-exams .area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.hero h1{font-size:32px}.home-dashboard .next-card{padding:22px}.home-dashboard .next-card h2{font-size:28px;margin-top:20px}.home-exams .area-card{padding:15px;min-height:153px}.home-exams .area-card h3{font-size:14px}.home-bottom{gap:10px}.home-bottom .btn{font-size:11px}.pace-date .input{max-width:65%}.chapter>summary{padding:14px;gap:10px}.chapter>summary h3{font-size:15px}.chapter-body{padding:5px 17px 18px}.reader-toolbar{align-items:flex-start}.reader-toolbar .btn{max-width:125px;text-align:right}.exam-example{padding:19px}.exam-teaser .btn{min-height:39px}.lesson-reading{font-size:15px}.lesson-tabs button{font-size:11px}.chapter-body p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.quiet-details[open]>.detail-body,.chapter[open] .chapter-body,.view-enter .home-dashboard>.card{animation:none}.quiet-details>summary>svg,.chapter>summary>svg{transition:none}}
.backup-lead{font-size:13px;color:var(--muted);margin:12px 0 20px}.backup-bottom{display:flex;gap:20px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-top:22px}.backup-bottom>span{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.backup-bottom>span svg{width:16px;height:16px}.context-ready{display:flex;align-items:center;gap:12px;padding:24px 15px;margin:18px 0;border:1px solid #dae8e5;border-radius:15px;background:#edf6f3aa;font-size:13px;color:var(--muted)}.context-ready>svg{width:25px;height:25px;color:#579087}.chat-layout .btn:disabled{cursor:default;box-shadow:none}.home-dashboard .next-card{min-height:300px}.home-dashboard .next-card h2{margin-top:20px}.home-dashboard .next-why{margin-top:8px}.home-dashboard .next-why>summary{min-height:30px}.home-dashboard .continue{padding-top:8px;margin-top:8px}
.chapter>summary:hover{background:#eaf4f080}.quiet-details>summary:hover{color:var(--green)}.chapter:focus-within{border-color:#96bbb3}.stage summary:hover{background:#f4faf8b0}

@media(max-width:900px){.lesson-overview{grid-template-columns:1fr;gap:22px}}

.podcast-purpose { display:flex; align-items:center; gap:14px; border:1px solid #b9d8cf; border-radius:17px; padding:17px 20px; background:#e8f5efb3; margin-bottom:22px; }.podcast-purpose>svg{width:26px;height:26px;color:var(--green)}.podcast-purpose p{font-size:13px;color:#3d655d;line-height:1.75}
.podcast-detail{margin-bottom:26px}.podcast-detail-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}.podcast-detail h2{font-size:27px;margin:18px 0 10px;line-height:1.3}.podcast-focus{font-size:14px;color:var(--muted);max-width:780px}.podcast-listen{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0}.podcast-listen>.minor{width:100%;font-size:11px}.podcast-pending{font-size:13px;color:var(--muted);border-left:3px solid #b4cbc5;padding-left:13px;margin:18px 0}
.podcast-topic-list{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}.podcast-topic-list h3{font-size:14px;margin-bottom:12px}.podcast-topic-list button{width:100%;display:flex;align-items:center;gap:13px;text-align:left;border-bottom:1px solid var(--line);padding:13px 2px;background:transparent;font-size:13px;line-height:1.65}.podcast-topic-list button>span:nth-child(2){flex:1}.podcast-topic-list button>svg{width:16px;height:16px;color:var(--green)}.podcast-generate{margin-top:18px}.podcast-generate ol{padding-left:20px}.podcast-generate li{margin:10px 0}.podcast-generate .minor{margin-top:12px}.podcast-upload{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.podcast-upload form{max-width:680px;margin:12px 0}.podcast-upload progress{width:100%;height:9px;margin:15px 0}.podcast-upload small{line-height:1.65}
.podcast-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.podcast-card{position:relative;min-width:0;text-align:left;padding:20px 22px;border:1px solid #ffffffd9;border-radius:19px;background:var(--glass);box-shadow:var(--shadow);transition:border-color .2s,transform .2s}.podcast-card:hover{transform:translateY(-2px);border-color:#8dbdb2}.podcast-card.selected{border-color:#5d9e90;background:#e8f5eec4}.podcast-card-meta{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:15px}.podcast-card-meta>span:first-child{color:var(--muted);font-size:10px;letter-spacing:1px;font-weight:650}.podcast-card h3{font-size:17px;line-height:1.5;padding-right:16px;margin-bottom:12px}.podcast-card>.minor{font-size:11px}.podcast-card>svg{position:absolute;right:20px;bottom:20px;width:16px;height:16px;color:var(--green)}
.lesson-meta .lesson-podcast{font-size:11px;min-height:31px;padding-block:4px;margin-left:auto}.lesson-meta .lesson-podcast svg{width:15px;height:15px}
.podcast-player{position:fixed;z-index:50;bottom:15px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:15px;padding:15px 17px;width:calc(100% - 30px);max-width:1050px;border:1px solid #ffffffee;border-radius:22px;background:#edf8f5f0;backdrop-filter:blur(25px);box-shadow:0 15px 60px -12px #1d4d5766}.podcast-player-title{flex:1;min-width:0}.podcast-player-title strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.podcast-player-title small{display:block;color:var(--muted);font-size:10px;line-height:1.6;margin-top:5px}.podcast-player audio{width:340px;max-width:45%;height:42px}.podcast-speed{font-size:9px;color:var(--muted)}.podcast-speed select{display:block;margin-top:4px;font-size:11px;min-height:29px;padding:3px 5px;border-radius:8px;min-width:59px}.podcast-playing .main{padding-bottom:150px}.podcast-playing .learning-drawer .drawer-content{padding-bottom:150px}
@media(max-width:680px){.podcast-grid{grid-template-columns:1fr}.podcast-detail h2{font-size:23px}.podcast-detail-top .minor{font-size:11px}.podcast-purpose{padding:15px;align-items:flex-start}.podcast-player{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:13px;bottom:10px}.podcast-player audio{grid-column:1/-1;grid-row:2;width:100%;max-width:100%}.podcast-player-title small{font-size:9px}.podcast-player-title strong{font-size:11px}.lesson-meta .lesson-podcast{margin-left:0}.podcast-listen .btn{flex:1}.podcast-detail .inline{align-items:stretch;flex-direction:column}.podcast-generate .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.podcast-card{transition:none}}

.pace-calendar-link{margin-top:18px;width:100%}
.calendar-config{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:22px;padding:22px 26px}.calendar-config .field{margin:0;min-width:220px}.calendar-config label{font-size:12px}.calendar-config .input{margin-top:9px}.calendar-facts{display:flex;gap:35px;flex-wrap:wrap}.calendar-facts>span{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.calendar-facts b{font-size:28px;letter-spacing:-1px;color:var(--ink);font-weight:650}
.calendar-layout{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);gap:22px;align-items:start}.calendar-layout .card{padding:23px;min-width:0}.calendar-month-head{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:22px}.calendar-month-head h2{font-size:19px;text-transform:capitalize;letter-spacing:-.3px}.calendar-month-head .btn{padding:8px;min-width:37px;min-height:37px}.calendar-month-head .calendar-prev svg{transform:rotate(180deg)}.calendar-month-head .calendar-prev:hover svg{transform:translateX(-2px) rotate(180deg)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{margin-bottom:9px;font-size:10px;font-weight:600;color:var(--muted);text-align:center}.calendar-weekdays span{padding:5px}.calendar-day{min-width:0;min-height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid transparent;border-radius:12px;background:#ffffff66;transition:background .18s,border-color .18s,transform .18s}.calendar-day>span:first-child{font-size:14px;font-weight:600}.calendar-day small{font-size:8px;line-height:1.2;color:var(--muted)}.calendar-day:hover{background:#e2f3ec;transform:translateY(-1px)}.calendar-day.is-today{border-color:#7ba99d}.calendar-day.selected{background:var(--green);border-color:var(--green);color:white;box-shadow:0 4px 12px #24645422}.calendar-day.selected small{color:#e1f2ed}.calendar-day.selected .calendar-dots{background:#ffffffcc;border-radius:5px;padding-inline:3px}.calendar-day.is-past{opacity:.55}.calendar-day.is-target:not(.selected){background:#fff1dba8;border-color:#dec59d}.calendar-dots{min-height:5px;display:flex;gap:3px;align-items:center;justify-content:center}.calendar-dots i{display:block;width:4px;height:4px;border-radius:50%}.calendar-legend{display:flex;justify-content:center;gap:9px;margin-top:20px;flex-wrap:wrap}.calendar-area{display:inline-flex;align-items:center;gap:5px;color:var(--area-color);font-size:9px;font-weight:700;letter-spacing:.3px;white-space:nowrap}.calendar-area:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--area-color)}
.calendar-agenda-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:3px 0 20px}.calendar-agenda-heading .eyebrow{margin-bottom:8px;font-size:9px;letter-spacing:1.5px}.calendar-agenda-heading h2{font-size:25px;text-transform:capitalize}.calendar-agenda-heading .pill{font-size:10px;white-space:nowrap}.calendar-task{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:16px 0}.calendar-check{display:flex;flex-shrink:0;align-items:center;justify-content:center;min-width:32px;min-height:40px;cursor:pointer}.calendar-check input{width:19px;height:19px;accent-color:var(--green);cursor:pointer}.calendar-topic{display:flex;align-items:center;gap:13px;flex:1;min-width:0;text-align:left;background:transparent;padding:0}.calendar-topic>.calendar-area{min-width:36px}.calendar-topic>span:nth-child(2){flex:1;min-width:0}.calendar-topic small{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.calendar-topic strong{display:block;font-size:14px;font-weight:550;line-height:1.5}.calendar-topic>svg{width:16px;height:16px;color:var(--green)}.calendar-task.done .calendar-topic strong{color:var(--muted)}.calendar-day-note{font-size:12px;color:var(--muted);padding-top:15px;border-top:1px solid var(--line)}.calendar-day-empty{text-align:center;padding:30px 10px;color:var(--muted)}.calendar-day-empty>svg{width:30px;height:30px;color:var(--green);margin-bottom:16px}.calendar-day-empty h3{font-size:18px}.calendar-day-empty p{font-size:13px;margin:10px 0 22px}.calendar-reviews{margin-top:25px;border-top:1px solid var(--line);padding-top:20px}.calendar-reviews h3{font-size:14px;margin-bottom:12px}.calendar-reviews h3 svg{width:16px;height:16px}.calendar-reviews .btn{width:100%;justify-content:flex-start;text-align:left;font-size:12px;padding-inline:3px;gap:10px}.calendar-reviews small{display:block;font-size:11px;color:var(--muted);margin-top:12px}.calendar-explanation{font-size:11px;color:var(--muted);line-height:1.8;margin-top:20px;max-width:950px}.calendar-finished>h2{margin-block:25px 15px}.calendar-finished>p{color:var(--muted);font-size:14px;margin-bottom:20px}
@media(max-width:1050px){.calendar-layout{grid-template-columns:1fr}.calendar-month{max-width:none}.calendar-day{min-height:76px}.calendar-config{gap:18px}.calendar-facts{gap:24px}}
@media(max-width:680px){.calendar-config{align-items:stretch;flex-direction:column;padding:20px}.calendar-config .field{min-width:0}.calendar-facts{justify-content:space-between;gap:10px}.calendar-facts b{font-size:25px}.calendar-layout .card{padding:17px}.calendar-layout{gap:16px}.calendar-day{min-height:64px;border-radius:9px}.calendar-day small{font-size:7px}.calendar-grid,.calendar-weekdays{gap:3px}.calendar-agenda-heading h2{font-size:21px}.calendar-topic{gap:9px}.calendar-task{gap:6px}.calendar-topic strong{font-size:13px}.calendar-topic>.calendar-area{min-width:31px;font-size:8px}.calendar-task .calendar-check{min-width:27px}}
@media(prefers-reduced-motion:reduce){.calendar-day{transition:none}}

/* Keep the calendar useful within an ordinary laptop window. */
.main:has(.calendar-layout) .topbar{margin-bottom:16px}.calendar-hero{margin-bottom:18px}.calendar-config{padding:16px 24px}.calendar-config .field{gap:6px}.calendar-config .input{margin-top:0}.calendar-day{min-height:48px}.calendar-task{padding-block:12px}.calendar-month-head{margin-bottom:16px}.calendar-layout .card{padding:20px}.calendar-agenda-heading{margin-bottom:16px}
@media(max-width:1050px){.calendar-day{min-height:55px}}
@media(max-width:680px){.calendar-layout .card{padding:17px}.calendar-day{min-height:46px}.calendar-config{padding:18px}.calendar-agenda-heading{scroll-margin-top:105px}}

/* Grado Admin: four clear destinations and one shared reading rhythm. */
:root{--muted:#4c6475;--content-gap:24px}
html{scroll-padding-top:24px}
.main{margin-left:242px;max-width:none;padding:28px clamp(24px,3.3vw,60px) 48px}
.sidebar{width:210px;inset:18px auto 18px 18px;padding:25px 13px 20px}
.brand{padding:0 8px 32px;gap:10px}.brand strong{font-size:20px;letter-spacing:-.7px;white-space:nowrap}.brand strong span{color:var(--green)}.brand small{font-size:10px;letter-spacing:0;margin-top:5px}
.brandmark{height:42px;width:38px;padding:0;border-radius:13px}.brandmark svg{width:23px;height:23px}
.nav{display:grid;gap:10px}.nav button{min-height:52px;padding:14px;font-size:14px;gap:12px}.nav button span{display:inline}.nav button.active::before{content:none}.nav button:hover{transform:none}.nav button.active{color:#155f5c}
.side-bottom{padding:18px 7px 0}.side-bottom p{font-size:12px;margin-top:14px}.save-indicator{font-size:11px}
.topbar,.main:has(.calendar-layout) .topbar{margin-bottom:24px;min-height:42px;gap:14px}
.breadcrumbs{font-size:12px;letter-spacing:0;gap:10px}.breadcrumbs>span{opacity:1;padding:0}.breadcrumbs time{color:var(--muted);padding-left:10px;border-left:1px solid #9eafb755}.mobile-brand{display:none}
.top-actions{align-items:center;gap:9px}.top-actions .btn{min-height:42px;padding:10px 13px;font-size:12px}
.account-menu{position:relative}.account-menu>summary{list-style:none;display:flex;gap:7px;align-items:center;cursor:pointer;padding:10px 12px;min-height:42px;border-radius:999px;border:1px solid #fff;background:#ffffff99;font-size:12px;font-weight:600}.account-menu>summary::-webkit-details-marker{display:none}.account-menu>summary>svg{width:16px;height:16px}.account-menu>summary>svg:last-child{width:12px;transform:rotate(90deg)}
.account-popover{position:absolute;right:0;top:calc(100% + 9px);z-index:15;display:grid;gap:9px;min-width:225px;padding:19px;border:1px solid #fff;border-radius:18px;background:#f5faf9;box-shadow:0 15px 45px #183d5326}.account-popover>strong{font-size:13px;overflow-wrap:anywhere;padding-bottom:9px;border-bottom:1px solid var(--line)}.account-popover>.btn{justify-content:flex-start}.account-popover>a{font-size:13px;padding:8px 0}
.section-nav{display:flex;gap:6px;align-items:center;width:fit-content;max-width:100%;padding:5px;border:1px solid #ffffffeb;border-radius:17px;background:#dceae780;box-shadow:inset 0 1px 0 #fff;margin:0 0 26px}
.section-nav button{min-height:43px;padding:10px 19px;border-radius:12px;background:transparent;font-size:13px;font-weight:550;white-space:nowrap;color:var(--muted);transition:background .18s,color .18s,box-shadow .18s}.section-nav button:hover{background:#ffffff66;color:var(--ink)}.section-nav button[aria-current=page]{color:var(--green);background:#fffffff2;font-weight:650;box-shadow:0 3px 10px #24485612}
.page-content{min-width:0}.hero{align-items:center;margin-bottom:25px;gap:20px}.hero h1{font-size:clamp(30px,3.1vw,45px);line-height:1.15;letter-spacing:-1.35px;text-wrap:balance}.hero p{font-size:14px;line-height:1.6;margin-top:10px;max-width:72ch}.accent{color:var(--green)}.hero .eyebrow{display:none}
h2{font-size:22px}h3{font-size:17px}.eyebrow{letter-spacing:1.4px}.minor{font-size:12px;line-height:1.65}
.card{padding:25px;border-radius:22px}.summary-grid,.chat-layout,.feedback-layout{gap:24px}
.btn{font-size:13px;min-height:44px}.btn svg{width:17px;height:17px}
.input,select,textarea{font-size:14px}.field label{font-size:13px}.field small,.checkline small{font-size:12px}.field{gap:8px;margin:18px 0}.input,select{min-height:44px}
.section-head h2{font-size:20px}.section-head p{font-size:13px;line-height:1.6}.section-head{gap:14px}
.home-dashboard .next-card{min-height:300px;padding:28px}.home-dashboard .next-card h2{font-size:clamp(25px,2.3vw,33px);max-width:24ch}.home-dashboard .next-card .actions{gap:10px;margin-top:22px}.home-status{font-size:12px}.home-bottom{gap:18px}.home-exams .area-card{min-height:165px;padding:20px}.home-exams .area-card h3{font-size:17px}.area-bottom{font-size:12px}.home-exams .area-percent{font-size:28px}
.study-plan .pace-date{align-items:flex-start;flex-direction:column;gap:8px}.study-plan .pace-date .input{width:100%;max-width:none;font-size:14px;min-height:44px}.pace-date label{font-size:13px}.pace-facts{font-size:12px}.pace-main strong{font-size:43px}.pace-main strong span{font-size:19px}.pace-details .detail-body{font-size:12px}.pace-areas span{font-size:12px}
.tabs{margin-bottom:20px;gap:6px;flex-wrap:wrap}.tabs button{font-size:13px;min-height:44px;padding:10px 15px}.toolbar{gap:10px;align-items:center;margin:20px 0}.toolbar .input{min-width:0}.toolbar select{font-size:13px}
.topic-open strong{font-size:14px;line-height:1.55}.topic-row{min-height:64px}.stage summary{padding:19px 21px}.stage-title strong{font-size:16px}.stage-title small{font-size:12px}.code{font-size:12px}
.table-wrap{margin-bottom:24px}table{font-size:13px}th{font-size:11px;letter-spacing:.3px}td{line-height:1.55;padding:15px 17px}.table-wrap .btn{font-size:13px}.table-wrap .download-link{display:inline-block;margin-top:8px;font-size:12px}
.calendar-config{padding:19px 24px;margin-bottom:24px}.calendar-config .field{min-width:240px;gap:8px}.calendar-config .input{font-size:14px}.calendar-facts{gap:30px}.calendar-facts>span{font-size:12px}.calendar-facts b{font-size:30px}.calendar-layout{gap:24px}.calendar-day small{font-size:10px}.calendar-day{min-height:54px}.calendar-area{font-size:10px}.calendar-topic strong{font-size:14px}.calendar-explanation{font-size:12px;max-width:none}.calendar-explanation strong{color:var(--ink)}.calendar-month-head .btn{min-height:44px;min-width:44px}
.privacy-note{display:flex;gap:9px;align-items:center;padding:13px 17px;border-radius:13px;background:#e4f1edb3;color:#2d645c;font-size:13px;line-height:1.65;margin-bottom:24px}.privacy-note svg{width:17px;height:17px;flex-shrink:0}
.group-shortcuts{margin:0 0 18px}.group-explainer{margin-bottom:24px}.group-settings{margin-top:25px}.group-settings .minor{font-size:12px}.group-member-top .minor{font-size:12px}.group-area-list{font-size:12px}.feedback-compose h2{font-size:21px;margin-bottom:5px}.feedback-compose>.minor{margin-top:9px}.feedback-compose>form{margin-top:18px}.feedback-inbox .section-head p{max-width:40ch}.feedback-fields .field{margin-top:0;margin-bottom:18px}.feedback-fields .field label{font-size:13px}.feedback-list .empty,.feedback-inbox .empty{padding:30px 23px}.empty p{font-size:13px;line-height:1.7}
.chat-layout h3{font-size:20px;margin-bottom:22px}.chat-presets{gap:7px}.chat-presets button{font-size:13px;min-height:40px}.context-ready{font-size:14px;padding:20px;line-height:1.5}.reveal p{font-size:13px}.chat-layout>.card>h3{color:var(--green)}.backup-lead{font-size:14px;line-height:1.65}
.podcast-purpose{padding:15px 19px;margin-bottom:24px}.podcast-purpose p{font-size:13px}.podcast-purpose strong{font-weight:650;color:#235f57}
.podcast-workspace{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:26px;align-items:start}.podcast-workspace>*{min-width:0}.podcast-catalog .section-head{margin:0 0 15px}.podcast-catalog .section-head h2{font-size:18px}.podcast-catalog .toolbar{display:grid;grid-template-columns:1fr;margin:0 0 14px}.podcast-catalog .toolbar .input,.podcast-catalog .toolbar select{width:100%}
.podcast-catalog .podcast-grid{display:grid;grid-template-columns:1fr;gap:10px;max-height:calc(100dvh - 280px);min-height:220px;overflow:auto;padding:2px 5px 10px 2px;overscroll-behavior:contain;scrollbar-width:thin}
.podcast-catalog .podcast-card{padding:16px;border-radius:16px;box-shadow:0 4px 15px #244a5608}.podcast-card-meta{margin-bottom:8px}.podcast-catalog .podcast-card h3{font-size:14px;line-height:1.45;margin-bottom:8px;padding-right:0}.podcast-catalog .podcast-card>.minor{font-size:11px;padding-right:18px}.podcast-catalog .pill{font-size:10px;padding:4px 7px}.podcast-catalog .podcast-card-meta>span:first-child{font-size:10px}.podcast-card.selected{box-shadow:inset 3px 0 0 #267b70}.podcast-card>svg{width:15px;height:15px;bottom:16px;right:15px}.podcast-card.selected h3{color:var(--green)}
.podcast-detail{padding:27px;margin-bottom:0}.podcast-detail h2{font-size:27px;max-width:29ch}.podcast-topic-list h3{font-size:15px}.podcast-topic-list button{font-size:14px;line-height:1.5;min-height:56px}.podcast-topic-list .code{color:var(--green)}.podcast-pending{font-size:14px}.podcast-generate summary,.podcast-upload summary{font-size:13px}.podcast-upload .btn{min-width:140px}
.learning-drawer .drawer-content{width:100%;max-width:none;padding:24px clamp(20px,4vw,68px) 65px}.learning-drawer .drawer-top{padding:16px clamp(20px,4vw,68px)}.learning-drawer #topic-title{font-size:clamp(26px,2.8vw,39px);max-width:48ch;margin-block:17px 24px}.lesson-tabs{margin-bottom:25px}.lesson-tabs button{min-height:46px;font-size:14px}.lesson-plain{padding:24px 28px}.lesson-plain p{font-size:clamp(19px,1.8vw,25px);line-height:1.6;letter-spacing:-.3px}.lesson-overview{gap:32px}.lesson-overview h3,.reader-toolbar h3{color:var(--green);font-size:19px}.lesson-overview p,.lesson-overview li{font-size:16px;line-height:1.85}.chapter>summary h3{font-size:18px;color:var(--ink)}.chapter-body p{font-size:16px;line-height:1.85}.chapter .lesson-section-no{color:var(--green)}.worked-example{border-left:4px solid #bc944f}.worked-example .eyebrow{color:#866020}.worked-example h3,.lesson-mistakes h3{font-size:21px}.worked-example p,.worked-example li,.lesson-mistakes p{font-size:16px;line-height:1.8}.lesson-mistakes h4{font-size:16px;color:#8b4846}.lesson-takeaway{border-left:4px solid var(--green)}.lesson-takeaway p{font-size:18px;line-height:1.75}.lesson-meta{font-size:12px}.quiz-intro p{font-size:14px;line-height:1.75;max-width:90ch}.quiz-intro h3{font-size:25px}.quiz-question{border-radius:18px}.quiz-options{gap:9px}.quiz-option{min-height:48px;font-size:15px}.exam-match .detail-body{font-size:14px}.exam-teaser{margin-block:21px}.exam-teaser strong{color:var(--green);font-size:15px}.resource h4{font-size:15px}.resource small{font-size:12px}.lesson-bottom{gap:12px;flex-wrap:wrap}.checkline{font-size:14px;padding-block:14px}.quiet-details>summary{font-size:13px;min-height:42px}.quiet-details .detail-body{font-size:13px}.footer-note{margin-top:30px}.footer-note .detail-body{font-size:12px}
button:disabled{cursor:not-allowed}
.view-enter .page-content{animation:detail-arrive .28s var(--ease) both}
.cloud-entry{max-width:1000px;padding-top:38px}.entry-brand span{font-size:24px;font-weight:650}.entry-brand span b{color:var(--green)}.cloud-entry .hero{margin-top:38px}.cloud-entry .hero h1{font-size:clamp(34px,5vw,55px);max-width:18ch}.cloud-entry-card{max-width:620px}.cloud-entry-card>p{font-size:14px;line-height:1.7;margin-block:15px}.entry-features{font-size:13px;gap:20px}.entry-features>span{display:inline-flex;gap:7px;align-items:center}.entry-features>span:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green)}
@media(max-width:1200px) and (min-width:981px){.main{margin-left:225px;padding-inline:25px}.sidebar{width:195px;padding-inline:10px}.brand strong{font-size:18px}.brand small{font-size:9px}.podcast-workspace{grid-template-columns:260px minmax(0,1fr);gap:20px}.home-dashboard{grid-template-columns:minmax(0,1.25fr) minmax(245px,1fr)}}
@media(max-width:980px){
 .sidebar{position:fixed;top:auto;bottom:10px;left:12px;right:12px;inset:auto 12px 10px;width:calc(100% - 24px);margin:0;height:auto;padding:7px;display:block;border-radius:23px;z-index:20}
 .sidebar .brand,.sidebar .side-bottom{display:none}.nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0;overflow:visible}.nav button{display:flex;flex-direction:column;gap:5px;justify-content:center;align-items:center;padding:8px 4px;min-height:58px;font-size:11px;text-align:center}.nav button span{font-size:11px;display:inline;line-height:1.2}.nav button svg{width:20px;height:20px}.nav button.active::before,.nav button.active::after{content:none}.nav button:hover,.nav button:active{transform:none}
 .main{margin:0;padding:22px 24px 105px;max-width:none}.topbar{margin-bottom:22px}.desktop-crumb{display:none}.mobile-brand{display:inline;font-weight:650;font-size:15px;white-space:nowrap}.mobile-brand b{color:var(--green)}.breadcrumbs:before{display:none}.breadcrumbs time{font-size:11px}.top-actions .btn{padding:10px 12px}.top-actions .btn span{display:inline}.section-nav{margin-bottom:24px}.hero h1{font-size:34px}.hero p{font-size:14px}.summary-grid,.chat-layout,.feedback-layout{grid-template-columns:1fr}.podcast-player{bottom:91px}.podcast-playing .main{padding-bottom:235px}.calendar-layout{grid-template-columns:1fr}.calendar-day{min-height:60px}.home-dashboard{grid-template-columns:minmax(0,1.3fr) minmax(235px,1fr)}
}
@media(max-width:900px){.podcast-workspace{grid-template-columns:1fr;gap:24px}.podcast-catalog .podcast-grid{max-height:280px;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr))}#podcast-title{scroll-margin-top:24px}.podcast-catalog .toolbar{grid-template-columns:1.5fr 1fr}.lesson-overview{grid-template-columns:1fr}.home-dashboard{grid-template-columns:1fr}.home-dashboard .next-card{min-height:270px}.home-dashboard .study-plan{padding:24px}.study-plan .pace-date{flex-direction:row;align-items:center}.study-plan .pace-date .input{width:180px}.home-dashboard .study-plan .pace-main{display:inline-block}.home-dashboard .pace-facts{margin-block:13px}.pace-calendar-link{width:auto;min-width:200px}.home-hero{display:flex;align-items:flex-start;flex-wrap:wrap}.home-status{margin-top:0}}
@media(max-width:600px){
 .main{padding:20px 17px 108px}.topbar{gap:8px;align-items:center}.breadcrumbs{display:block}.breadcrumbs time{display:block;border:0;padding:0;margin-top:4px;font-size:10px}.top-actions{gap:7px}.top-actions .btn{min-height:40px;font-size:11px;padding:9px 11px}.account-menu>summary{min-height:40px;font-size:11px;padding:9px 11px}.account-menu>summary>svg:first-child{display:none}.account-popover{right:0;min-width:220px}.hero{display:flex;align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:22px}.hero h1{font-size:31px;letter-spacing:-1px}.hero p{font-size:13px}.card{padding:21px}.section-nav{width:100%;gap:3px;padding:4px;margin-bottom:22px;border-radius:15px}.section-nav button{flex:1;min-height:43px;padding:10px 8px;font-size:12px}.section-nav[aria-label="Secciones de Estudiar"]{display:grid;grid-template-columns:1fr 1fr}.page-content{width:100%}.home-hero{gap:14px}.home-dashboard .next-card{padding:24px;min-height:280px}.home-dashboard .next-card h2{font-size:27px}.home-status{font-size:11px}.home-exams .area-card{padding:17px;min-height:155px}.home-exams .area-card h3{font-size:15px}.home-exams .area-percent{font-size:26px}.area-bottom{font-size:11px}.home-bottom{gap:12px}.home-bottom .btn{font-size:12px}
 .toolbar{display:flex;flex-wrap:wrap}.toolbar>.input{flex-basis:100%;width:100%}.toolbar>select{flex:1;min-width:0}.tabs button{padding:10px;font-size:12px}.stage summary{padding:17px 15px}.stage-title strong{font-size:15px}.topic-row{gap:10px;padding-inline:13px}.topic-open strong{font-size:14px}.topic-tags{gap:3px}.topic-tags .pill{font-size:9px;padding:4px 6px}.calendar-config .field{min-width:0}.calendar-config{gap:18px}.calendar-facts{gap:18px}.calendar-day{min-height:52px}.calendar-day small{font-size:9px}.calendar-legend{gap:13px}.calendar-agenda-heading h2{font-size:23px}.calendar-task{padding-block:15px}.calendar-topic>.calendar-area{font-size:9px}.calendar-explanation{font-size:12px}
 .podcast-catalog .toolbar{display:flex}.podcast-catalog .podcast-grid{grid-template-columns:1fr;max-height:240px}.podcast-detail{padding:22px}.podcast-detail h2{font-size:25px}.podcast-listen .btn{min-width:0;flex:auto;font-size:12px}.podcast-purpose{align-items:flex-start;padding:15px}.podcast-purpose p{font-size:12px}.podcast-detail .inline{flex-direction:row;align-items:center}.podcast-generate .inline .btn{width:auto}.podcast-topic-list button{font-size:14px}.podcast-card-meta{gap:6px}
 .learning-drawer .drawer-top{padding:14px 18px}.learning-drawer .drawer-content{padding:21px 18px 70px}.learning-drawer #topic-title{font-size:28px}.lesson-tabs button{font-size:12px;min-height:46px;padding-inline:4px}.lesson-plain{padding:23px}.lesson-plain p{font-size:20px}.lesson-overview p,.lesson-overview li{font-size:15px}.chapter>summary h3{font-size:16px}.chapter-body p{font-size:15px}.worked-example p,.worked-example li,.lesson-mistakes p{font-size:15px}.lesson-takeaway p{font-size:17px}.lesson-bottom>.btn{width:100%}.learning-drawer .form-grid{grid-template-columns:1fr}.quiz-option{font-size:14px}.quiz-intro h3{font-size:23px}.exam-document-links>.btn{width:100%}.resource-actions{gap:12px}.group-shortcuts{gap:9px}.group-shortcuts>.btn{font-size:12px}.privacy-note{font-size:12px}.cloud-entry{padding:28px 20px 45px}.cloud-entry .hero{margin-top:30px}.cloud-entry .hero h1{font-size:38px}.entry-features{gap:14px}
}
@media(prefers-reduced-motion:reduce){.view-enter .page-content,.sidebar,.section-nav button{animation:none;transition:none}.btn:hover{transform:none}.calendar-month-head .calendar-prev:hover svg{transform:rotate(180deg)}}

@media(max-width:900px){.pace-heading{flex-direction:row;align-items:center;justify-content:space-between}}

/* A visible listening entry point without competing with the daily study task. */
.home-podcasts{display:flex;align-items:center;gap:17px;padding:18px 22px;margin:0 0 24px;border:1px solid #b9d9d1;border-radius:21px;background:linear-gradient(115deg,#e1f1ebc9,#f5fbf8b3 72%);box-shadow:inset 0 1px 0 #fff,0 5px 18px #245e5308}
.home-podcasts-icon{display:grid;place-items:center;flex-shrink:0;width:47px;height:47px;border:1px solid #fff;border-radius:15px;background:#ffffff99;color:var(--green)}
.home-podcasts-icon svg{width:26px;height:26px}.home-podcasts-copy{flex:1;min-width:0}.home-podcasts h2{font-size:19px;line-height:1.4;letter-spacing:-.35px}.home-podcasts p{font-size:12px;line-height:1.6;color:var(--muted);margin-top:4px}.home-podcasts-button{min-height:46px;flex-shrink:0;font-size:13px;padding:12px 18px}
.section-nav .podcast-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#1f7066;background:#e6f3ed80}.section-nav .podcast-tab svg{width:17px;height:17px}.section-nav .podcast-tab[aria-current=page]{background:#f7fffb;box-shadow:inset 0 0 0 1px #b1d2c7,0 3px 10px #24485612}
.lesson-meta .lesson-podcast{font-size:13px;min-height:41px;padding:9px 14px;font-weight:600;gap:8px}.lesson-meta .lesson-podcast svg{width:18px;height:18px}.podcast-listen>.btn:first-child{min-height:49px;padding:12px 23px;font-size:14px}
@media(max-width:700px){.home-podcasts{padding:17px;gap:12px;flex-wrap:wrap}.home-podcasts h2{font-size:18px}.home-podcasts-copy{flex-basis:calc(100% - 62px)}.home-podcasts-icon{width:43px;height:43px}.home-podcasts-button{margin-left:55px;min-height:44px;padding:10px 16px}.home-podcasts p{font-size:12px}.lesson-meta .lesson-podcast{margin-left:0;min-height:42px}.podcast-listen>.btn:first-child{min-height:48px}}

/* Cohesive calendar blocks: one introduction followed by its study topics. */
.calendar-block-list{display:grid;gap:22px}.calendar-block{border:1px solid rgba(51,133,123,.18);background:rgba(255,255,255,.28);border-radius:20px;padding:19px;min-width:0}.calendar-block-heading{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.calendar-block-heading>div{min-width:0}.calendar-block-heading h3{font-size:19px;line-height:1.3;margin:6px 0 8px;text-wrap:balance;overflow-wrap:anywhere}.calendar-block-code{font-size:11px;letter-spacing:.06em;font-weight:650;color:var(--green)}.calendar-block-audio{flex-shrink:0;min-height:44px;font-size:12px}.calendar-block-intro{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 20px}.calendar-block-intro strong{color:var(--green);font-weight:600}.calendar-block .calendar-task:last-child{border-bottom:0}.calendar-block .calendar-topic strong{font-size:13px}.pace-topic-count{font-size:13px;color:var(--muted);margin:8px 0 0}
@media(max-width:680px){.calendar-block{padding:15px}.calendar-block-heading{flex-direction:column;gap:12px}.calendar-block-heading h3{font-size:19px}.calendar-block-audio{width:100%;justify-content:center}.calendar-block .calendar-topic{padding:0;gap:8px}.calendar-block .calendar-task{padding-block:13px}.calendar-agenda-heading{align-items:flex-start;gap:10px}.calendar-agenda-heading .pill{font-size:10px;white-space:normal;text-align:right}.calendar-facts{gap:14px}.calendar-facts>span{max-width:110px}.pace-topic-count{font-size:12px}}

/* Account-linked seasonal access. */
.access-card{padding:clamp(22px,4vw,42px);border:1px solid rgba(20,115,109,.2);border-radius:28px;background:linear-gradient(125deg,rgba(226,246,240,.8),rgba(255,255,255,.82));margin:22px 0}.access-card h2{margin:18px 0 12px;font-size:clamp(26px,3vw,40px);line-height:1.2}.access-card p{max-width:75ch}.access-price{display:flex;gap:20px;align-items:center;margin:26px 0 14px}.access-price strong{font-size:clamp(34px,4vw,50px);letter-spacing:-.04em;color:var(--teal,#146f69)}.access-price span{line-height:1.6;color:var(--muted,#536e7c)}.access-free-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:26px 0}.access-free-grid svg{width:30px;height:30px;color:var(--teal,#146f69)}.access-free-grid h3{margin:12px 0 8px}.access-active{margin-bottom:24px}.access-active h2{margin:16px 0}.access-active p{margin-bottom:20px}.access-card .minor{margin:14px 0}.access-card .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}@media(max-width:700px){.access-free-grid{grid-template-columns:1fr;gap:20px}.access-price{align-items:flex-start;flex-direction:column;gap:4px}.access-card{border-radius:22px}.access-card .actions .btn{width:100%}}
.home-access{border-color:#e3d6b8;background:linear-gradient(115deg,#fbf5e7d9,#fdfaf2b3 72%)}.home-access .home-podcasts-icon{color:#8a6a2f}
.group-identity{margin-bottom:24px}.group-identity-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.group-identity h2{font-size:22px;margin:8px 0 4px}.group-identity .inline{flex-wrap:wrap;gap:9px}
.group-code{font:600 22px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;padding:14px 18px;border:1px solid #b9d9d1;border-radius:15px;background:#ffffffb3;color:var(--green);white-space:nowrap}
.group-code-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:700px){.group-identity-top{flex-direction:column;align-items:flex-start}.group-code{font-size:20px}}

.exam-scope{font-size:.85rem;line-height:1.5;color:var(--muted);margin:12px 0 0}.footer-exam-scope{font-size:12px;line-height:1.6;margin:0 0 10px}.footer-exam-scope strong{font-weight:600}
.back-to-topic { margin:0 0 14px; display:inline-flex; align-items:center; gap:8px; max-width:100%; text-align:left; }
.icon-back { display:inline-flex; transform:rotate(180deg); }
.ai-links { margin-top:12px; }
.ai-links a { font-weight:550; }
.context-help { margin-top:16px; padding:14px 16px; border-radius:16px; background:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.85); }
.context-help h4 { margin:0 0 6px; font-size:14px; }
.context-help p { margin:0 0 8px; font-size:13.5px; line-height:1.6; }
.context-help p:last-child { margin-bottom:0; }
.chapter-body .lesson-list { margin:14px 0 0; padding-left:22px; display:grid; gap:7px; list-style:disc; font-size:16px; }
@media(max-width:680px){.chapter-body .lesson-list{font-size:15px}}
.chapter-body .lesson-list li { display:list-item; font-size:inherit; line-height:1.75; padding-left:2px; }
.chapter-body .lesson-list li::marker { color:var(--a); }
.chapter-body strong { font-weight:650; }
.lesson-takeaway{padding:24px 28px;border-radius:0 16px 16px 0;background:rgba(255,255,255,.35)}
.quiz-next{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:26px 0 8px;padding:20px 22px;border-radius:18px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.85)}
.quiz-next p{margin:6px 0 0;font-size:14.5px}
@media(max-width:680px){.lesson-takeaway{padding:20px 18px}.quiz-next{padding:18px}}
.track-card .field{margin-top:16px}
.field-label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip-row .chip{border:1px solid rgba(23,56,75,.14);background:rgba(255,255,255,.7);border-radius:999px;padding:8px 14px;font-size:13.5px;cursor:pointer;color:inherit;min-height:38px}
.chip-row .chip.active{background:var(--a);border-color:var(--a);color:#fff}
.chip-row .chip b{font-weight:700;margin-right:3px}
.chip-input{width:96px;min-height:38px;padding:8px 12px}
.track-card textarea{min-height:90px}
.notes-line{margin-top:6px;gap:10px}
.track-card > .btn{margin-top:18px}
.track-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:12px 0 16px}
.track-facts div{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.85)}
.track-facts dt{font-size:12px;color:var(--muted,#5b7383);margin-bottom:4px}
.track-facts dd{margin:0;font-weight:600;font-size:14px}
.track-actions{gap:12px;align-items:flex-start;flex-wrap:wrap}
.track-review .inline{margin-top:10px}
.track-help{margin-top:14px}
.track-help .detail-body p{margin:0 0 8px;font-size:13.5px;line-height:1.6}
.quiz-next-hint{margin-top:10px}
.stage-podcast{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 18px 6px}
.stage-podcast small{color:var(--muted,#5b7383);font-size:12.5px}

/* Private reading annotations: semantic emphasis and selection remain visible. */
.reading-block{min-width:0}.reading-block p+p{margin-top:1em}.reading-block strong{font-weight:750;color:var(--ink,#17384b)}.reading-block ul{padding-left:1.35em}.reading-block li{margin:.55em 0}.reading-block li p{margin:0}.reader-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:.9rem;color:var(--muted,#547080);padding:8px 0 16px}.reader-tools .btn{font-size:inherit}.reader-highlights{margin:0 0 24px;padding:18px 22px;background:rgba(255,255,255,.65);border:1px solid rgba(24,111,106,.16);border-radius:20px}.reader-highlights summary{font-weight:700;cursor:pointer}.saved-highlight{border-top:1px solid rgba(24,111,106,.12);padding:12px 0}.saved-highlight blockquote{margin:0 0 8px;padding-left:14px;border-left:3px solid #c4a83c;white-space:pre-wrap;overflow-wrap:anywhere}.highlight-toolbar{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:80;max-width:calc(100vw - 24px);display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:rgba(255,255,255,.97);border:1px solid #b9d7d4;border-radius:18px;box-shadow:0 8px 40px #16364c26;color:#17384b}.highlight-toolbar[hidden],.reader-highlights[hidden]{display:none}.highlight-color{border:1px solid #c5cccd;border-radius:10px;padding:10px 14px;cursor:pointer;color:#17384b;font-weight:650}.reading-block mark{color:inherit;border-radius:3px;padding:0;box-decoration-break:clone;-webkit-box-decoration-break:clone}.highlight-yellow{background:#fff0a2}.highlight-mint{background:#b9edce}.highlight-rose{background:#f9ccdb}.reading-block::selection,.reading-block *::selection{background:#9fd9df;color:#102f40}.topic-block-path{margin:12px 0 22px;padding:16px 20px;border:1px solid #b8d9d6;border-radius:18px;background:#e4f4f18c}.topic-block-path strong{display:block}.topic-block-path .block-steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.block-steps button{border:1px solid #b7d6d2;background:#fff9;border-radius:10px;padding:7px 12px;color:inherit;cursor:pointer}.block-steps button[aria-current=step]{background:#176f6a;color:white;border-color:#176f6a}.block-steps span{color:#62807c}.topic-block-path .minor{margin:4px 0 0}.lesson-takeaway .reading-block{margin-top:12px}.reader-tools,.reader-highlights{scroll-margin-top:18px}@media(max-width:600px){.highlight-toolbar{bottom:10px;padding:10px;font-size:.85rem}.highlight-color{padding:9px}.topic-block-path{padding:14px}.reader-tools{align-items:flex-start}}

.ai-connection{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.ai-connection h4{font-size:16px;color:var(--green);margin:0 0 8px}.ai-connection>p{font-size:14px;line-height:1.65}.ai-connect-guide{margin:10px 0}.ai-connect-guide ol{padding-left:22px;font-size:14px;line-height:1.7}.ai-connect-guide li{margin-bottom:10px}.ai-connect-guide p{margin:12px 0}.ai-tutorial-link{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600}.ai-tutorial-link svg{width:15px;height:15px}.ai-connection .ai-connection-privacy{font-size:12px;color:var(--muted);margin:12px 0 0}

.nowrap{white-space:nowrap}
.file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.file-pick{cursor:pointer;display:inline-flex}
.file-input:focus-visible+.file-pick,.file-pick:focus-within{outline:2px solid var(--a);outline-offset:2px}
.link-reminder{margin:0 0 20px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--pale)}
.link-reminder p{margin:6px 0 12px}
.link-reminder b{overflow-wrap:anywhere}
.math .katex{font-size:1.08em}
.math-block{display:block;margin:12px 0;padding:10px 12px;border-radius:12px;background:var(--pale);overflow-x:auto;overflow-y:hidden;text-align:center}
.math-block .katex-display{margin:0}
.quiz-option .math-block,.quiz-feedback .math-block{margin:6px 0}
.highlight-yellow .math-block{background:#fff0a2}
.highlight-mint .math-block{background:#b9edce}
.highlight-rose .math-block{background:#f9ccdb}

/* Reader highlight controls live beside the scrolling drawer, in its overlay. */
.study-backdrop>.highlight-toolbar{position:fixed;inset:auto auto calc(var(--nav-space,0px) + var(--player-height,0px) + max(12px,env(safe-area-inset-bottom,0px))) 50%;transform:translateX(-50%);z-index:10;width:max-content;max-width:calc(100vw - 24px);max-height:calc(100dvh - 100px);overflow:auto;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:18px;animation:none;transition:none;box-shadow:0 8px 32px #16364c30;background:#f9fdfdfc;backdrop-filter:blur(18px)}
.study-backdrop>.highlight-toolbar[hidden],.highlight-toolbar [hidden]{display:none!important}
.highlight-caption{font-size:12px;font-weight:650}.highlight-colors{display:flex;gap:6px;align-items:center}.highlight-toolbar .btn,.highlight-toolbar .highlight-color{min-height:44px;min-width:44px;margin:0;font-size:13px;white-space:nowrap}.highlight-toolbar .btn:hover,.highlight-toolbar .highlight-color:hover{transform:none}.highlight-toolbar .highlight-remove{border:1px solid #b6d3d0;background:#e3f2ee;color:#145c58}.reading-block mark[data-highlight-id]{cursor:pointer;user-select:text;-webkit-user-select:text}.reading-block mark[data-highlight-id]:focus-visible{outline:2px solid #176f6a;outline-offset:3px}.saved-highlight .highlight-remove{min-height:44px;color:#9a3541}.saved-highlight blockquote{border-radius:6px;padding:8px 12px}.highlight-toolbar:focus-within{outline:1px solid #78a8a2}
@media(max-width:600px){.study-backdrop>.highlight-toolbar{width:calc(100vw - 24px);padding:8px;gap:4px 8px}.highlight-caption{flex-basis:100%;text-align:center}.highlight-toolbar .highlight-color{padding:8px 12px}.highlight-toolbar .highlight-cancel{padding-inline:10px}}

/* Reading first; both practice routes belong after the explanation. */
.lesson-practice{margin:28px 0 24px;scroll-margin-top:150px}
.lesson-practice>h3{font-size:21px;line-height:1.35;margin:0 0 16px;color:var(--ink)}
.lesson-practice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.lesson-practice-options>.lesson-next,.lesson-practice-options>.exam-teaser{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px;min-width:0;margin:0;padding:22px;border-radius:18px}
.lesson-practice-options h4{font-size:17px;line-height:1.4;margin:0;color:var(--ink)}
.lesson-practice-options p{font-size:14px;line-height:1.6;margin:7px 0 0;color:var(--muted)}
.lesson-practice-options .btn{min-height:44px;max-width:100%;margin-top:auto;white-space:normal;text-align:center;justify-content:center}
