
:root {
  --fs-scale: 1;                 /* 老师选的档位：标准 1 · 大 1.12 · 特大 1.25 · 超大 1.4 */
  --fs-caption:  .75rem;         /* 12 说明：时间、角标旁的小字、图下注 */
  --fs-footnote: .8125rem;       /* 13 辅助：标题下面那行灰字、分组名 */
  --fs-callout:  .9375rem;       /* 15 次正文：按钮、标签、常用组合、次要行 */
  --fs-body:     1rem;           /* 16 正文：消息、说明段落、输入框（iOS 小于 16 一点就放大页面） */
  --fs-headline: 1.0625rem;      /* 17 列表标题：班级名、联系人、每条记录、顶栏小标题 */
  --fs-title3:   1.25rem;        /* 20 小标题：卡片标题、面板标题 */
  --fs-title2:   1.5rem;         /* 24 页标题：首页 / 消息 / 同事 / 我的 */
  --fs-title1:   1.875rem;       /* 30 大标题：空状态、邀请码、大数字 */
  /* 跟着放大、但有上限的（位置固定的东西） */
  --fs-tab:   calc(.75rem * min(var(--fs-scale), 1.17) / var(--fs-scale));   /* 底部页签：最大 14 */
  --fs-badge: calc(.6875rem * min(var(--fs-scale), 1.18) / var(--fs-scale)); /* 红色角标数字 11，最大 13 */
  --lh-tight: 1.25; --lh-title: 1.35; --lh-body: 1.55;
}
html { font-size: calc(100% * var(--fs-scale)); }
body { font-size: var(--fs-body); line-height: var(--lh-body); }

:root {
  --space-related:8px; --space-page:16px; --page-x:var(--space-page); --page-start:8px;
  --control-sm:max(44px,2.75rem); --control-md:max(48px,3rem); --control-lg:max(56px,3.5rem);
  --radius-pill:999px; --row-h:3.25rem; --top-h:max(56px,3.5rem);
}
/* One navigation height for the host, tasks and all nested miniapp pages.
   Safe-area space belongs either to the page or to its bar, never both. */
.topbar,.cpg>.cpg-top,.dx-top,.tls .tls-top {
  height:calc(var(--top-h) + env(safe-area-inset-top,0px));
  min-height:calc(var(--top-h) + env(safe-area-inset-top,0px));
  flex-shrink:0;box-sizing:border-box;
}
/* A page theme belongs to its complete host surface, including opaque edges
   sampled by Safari. The page's capsule uses its local appearance too. */
html .cpg[data-page-mode]>.cpg-top,html .cpg[data-page-mode]>.cpg-foot{background:var(--bg);}
.cpg[data-page-mode] .capsule{background:var(--fill-2);color:var(--label);box-shadow:inset 0 0 0 .5px var(--sep);}
.cpg[data-page-mode] .capsule i{background:var(--label-3);}
.cp-page>.cp-head,.atp>.atp-h,.rs-page>.nc-top,.ui-content-page>.fe-top {
  height:var(--top-h);min-height:var(--top-h);flex-shrink:0;box-sizing:border-box;
}
/* 工具栏（呼叫 · 图片 · 听写…）：放得下就平分；放不下就横着滑（右边淡出），字不挤、不截 */
.tbar { overflow-x: auto; scrollbar-width: none; -webkit-mask: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask: linear-gradient(90deg, #000 calc(100% - 28px), transparent); padding-right: 20px; }
.tbar button { flex: 1 0 auto; min-width: 60px; padding-inline: 4px; line-height: 1.2; white-space: nowrap; }
/* 页签：字最大 14，图标不变；页签条跟着长一点 */
.tabbar button { line-height: 1.2; }
/* 列表：行高跟字走（最少 52），标题、说明都可以换行，不出省略号 */
.cl-row { min-height: 4.5rem; }
.cl-row .gl-main small, .cl-row .cl-sub, .gl-row .gl-main small { white-space: normal; overflow: visible; text-overflow: clip; }
.cl-av { width: max(48px, 3rem); height: max(48px, 3rem); }
.hls .hl { grid-template-columns: 2rem minmax(0, 1fr) auto; }
.hl-ic { width: 2rem; height: 2rem; }
/* 常用组合（可以横滑的胶囊）：跟字一起变高 */
.cmp-quick button { height: auto; min-height: 2rem; padding-block: .3rem; }

body { line-height:1.55; }
.gl-main b,.cl-main b,.hl-m b,.ct-name b { font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
.gl-main small,.hl-m small,.cl-sub,.ct-name small { white-space:normal !important; overflow:visible; text-overflow:clip; line-height:1.55; }
.gl-row { min-height:3.5rem; padding-block:.85rem; gap:12px; }
.glist { border-radius:16px; } .sect { margin-top:24px; margin-bottom:10px; letter-spacing:.02em; }
.nav-lt { font-weight:600; font-size:min(var(--fs-title2),32px); }
.me-card { margin-bottom:0; }
.cp-input textarea,.sh-in,.wb-ta { font-size:max(16px,var(--fs-body)); line-height:1.6; }
.mini-seg { flex-wrap:wrap; } .mini-seg button { height:auto; min-height:2.1rem; padding:.4rem .7rem; line-height:1.3; }
.rk-k,.cn-act,.btn-lg { height:auto !important; min-height:48px; padding:12px 16px; line-height:1.4; }
.rk-k small,.cn-act small { white-space:normal; font-size:var(--fs-footnote); }
.rk-t span { font-size:var(--fs-caption); } .rk-t { min-height:44px; gap:5px; }
.wb-grid { grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }
.wb { min-height:76px;padding:12px 8px;gap:4px;box-shadow:inset 0 0 0 .5px var(--sep); }
.wb small,.wb .py { white-space:normal; overflow:visible; text-overflow:clip;line-height:1.45; }
html[data-font-step="3"] .wb-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
html[data-font-step="3"] .wb.s3 { grid-column:1/-1; }
.wb-mini { width:112px; } .wb-head { gap:12px; } .wb-head .t b { font-size:min(var(--fs-title2),30px); }
.cn-row { min-height:64px; height:auto; padding-block:14px; } .cn-main b { white-space:normal;line-height:1.4; }
.rqz .cl,.rq-q1 span { white-space:normal; } .rqz .qw { line-height:2; } .rqz .pl,.rqz .gv { font-size:var(--fs-body);line-height:1.9; }
.dx-body.pv .wb-head,.cn-tx .wb-head { display:block; }
.dx-body.pv .wb-mini,.cn-tx .wb-mini { width:100%;margin-top:14px; }
.rq-prep-reference .cl.selected { outline:1.5px solid var(--accent,#a77b27);border-radius:5px; }
.font-entry { margin-top:12px; } .font-entry .gl-ic { background:var(--fill);border-radius:10px;width:34px;height:34px;font:600 17px var(--serif);display:grid;place-items:center;color:var(--label-2); }
.font-entry .value { margin-left:auto; font-size:var(--fs-footnote);color:var(--label-3);white-space:nowrap; }
.font-page{background:var(--bg)!important}
.font-page>.fe-body{display:flex;flex-direction:column;gap:16px;padding-top:var(--page-start)!important}
.font-preview-label{margin:0 0 12px;font-size:var(--fs-footnote);color:var(--label-2);line-height:1.5}
.font-preview{min-height:220px;padding:16px;border:0;border-radius:18px;background:var(--card)}
.font-preview-head strong{display:block;font-size:var(--fs-headline);font-weight:600;line-height:1.45}
.font-preview-head small{display:block;margin-top:6px;font-size:var(--fs-caption);color:var(--label-2);line-height:1.6}
.font-preview-body{padding-top:16px}.font-preview-body p{margin:0;font-size:var(--fs-body);line-height:1.75;overflow-wrap:anywhere}
.font-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.font-label b{font-size:var(--fs-headline);font-weight:500}.font-label [data-font-value]{font-size:var(--fs-footnote);color:var(--label-2)}
.font-range-wrap{display:flex;align-items:center;gap:16px;min-height:44px}.font-size-small{font-size:14px}.font-size-large{font-size:26px}.font-range-wrap>span{color:var(--label-2);flex:none}
.font-range{flex:1;min-width:0;width:100%;height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;appearance:none;-webkit-appearance:none;accent-color:var(--label);cursor:pointer}
.font-range::-webkit-slider-runnable-track{height:2px;border-radius:2px;background:var(--fill-2)}.font-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:0;border-radius:50%;margin-top:-8px;background:var(--label)}
.font-range::-moz-range-track{height:2px;border-radius:2px;background:var(--fill-2)}.font-range::-moz-range-thumb{width:18px;height:18px;border:0;border-radius:50%;background:var(--label)}
.font-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:4px}
.font-choices button{min-height:44px;padding:8px 0;border:0;border-radius:0;background:none;color:var(--label-2);font-size:var(--fs-footnote);line-height:1.5}
.font-choices button.on{background:none;color:var(--label);font-weight:600;box-shadow:none}
.font-note{margin:16px 0 0;font-size:var(--fs-footnote);line-height:1.7;color:var(--label-2)}
.iv-row .m small,.sh-sub { line-height:1.6; }

/* 公共内容页：头、可滚动内容、底部动作分开布局。 */
.ui-content-page { padding:env(safe-area-inset-top) 0 0; display:flex;flex-direction:column;overflow:hidden; }
.ui-content-page>.fe-top {flex:none;width:100%;max-width:none;padding-inline:20px;grid-template-columns:56px minmax(0,1fr) 56px;}
.ui-content-page>.fe-body {flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;width:100%;padding:20px;max-width:var(--content-w);}
.ui-content-page .fe-body .sh-acts,.ui-content-page .fe-body [data-done] {display:none!important;}
.ui-content-page>.fe-footer {flex:none;width:100%;max-width:var(--content-w);padding:16px 20px max(20px,env(safe-area-inset-bottom));border-top:1px solid var(--sep);display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px;background:var(--bg);}
.ui-content-page>.fe-footer[hidden]{display:none;}
.fe-action {padding:12px 8px;min-height:48px;border-radius:12px;background:var(--fill);color:var(--label);font-size:var(--fs-body);line-height:1.4;overflow-wrap:anywhere;}
.fe-action.pri{background:var(--accent);color:var(--on-accent);font-weight:600;}.fe-action:disabled{opacity:.4;}
.ui-content-page .rs-x{height:44px;width:44px;}.ui-content-page .rs-x svg{width:20px;height:20px;}
.ui-content-page .sh-title,.ui-content-page .as-h b{display:none;}
.ui-content-page .fe-top .nc-t b {white-space:normal;line-height:1.3;font-size:var(--fs-headline);}
.ui-content-page.ui-miniapp-page>.fe-top {grid-template-columns:96px minmax(0,1fr) 96px;}
.learning-row{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:16px 0;min-height:64px;border-bottom:1px solid var(--sep);}
.learning-no{font-size:var(--fs-footnote);color:var(--label-3);width:32px;flex:none;}
.learning-main{flex:1;min-width:0;}.learning-main b{display:block;font-size:var(--fs-headline);line-height:1.4;overflow-wrap:anywhere;}
.learning-main small,.learning-main em{display:block;font-size:var(--fs-footnote);font-style:normal;color:var(--label-3);line-height:1.5;margin-top:4px;}
.learning-check{width:24px;height:24px;border:0;background:none;flex:none;display:grid;place-items:center;color:var(--label);}
.learning-check.on{background:none;border:0}.learning-check:after{display:none}
.learning-selection{font-size:var(--fs-footnote);color:var(--label-2);padding:8px 0;line-height:1.5;}.learning-selection button{color:var(--link);margin-left:10px;}
.my-materials .sh-sub {margin:0 0 20px;}
.my-materials [data-material-tabs] {flex:none;gap:8px;}
.my-materials [data-material-list] {margin-top:24px;}
.my-materials-empty {display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 12px 32px;color:var(--label-3);}
.my-materials-empty svg {width:40px;height:40px;margin-bottom:18px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
.my-materials-empty b {font-size:var(--fs-headline);font-weight:500;color:var(--label-2);}
.my-materials-empty p {margin:10px 0 0;font-size:var(--fs-footnote);line-height:1.7;}
.my-upload-status {margin-top:20px;font-size:var(--fs-footnote);color:var(--label-2);line-height:1.6;overflow-wrap:anywhere;}
.learning-continue{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 0;color:var(--link);font-size:var(--fs-body);text-align:left;border-bottom:1px solid var(--sep);}
@media(min-width:800px){.ui-content-page{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(580px,90vw);height:min(760px,90dvh);border-radius:20px;box-shadow:0 24px 100px #0004;animation:none;}.ui-content-page>.fe-body{max-width:none;}}
@media(prefers-reduced-motion:reduce){.ui-content-page{animation:none;}}

.ui-content-page .sh-list>.cancel,.ui-content-page .fe-body>[data-cancel],.ui-content-page .sh-body>[data-cancel]{display:none!important}.ui-content-page .gift-card img{max-height:calc(100dvh - 250px);object-fit:contain;}.ui-content-page .gift-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ui-content-page .gift-acts button{font-size:var(--fs-footnote);min-height:44px;}.ui-content-page .iv-tk{display:flex;flex-direction:column;align-items:center;gap:16px;}.ui-content-page .iv-tk .qr{width:min(240px,75vw);height:auto;aspect-ratio:1}.ui-content-page .iv-tk .qr svg{width:100%;height:100%;}.ui-content-page .iv-acts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ui-content-page .iv-acts .sec{order:0}.ui-content-page .iv-acts .pri{order:1}.ui-content-page{height:var(--vvh,100dvh);top:var(--vvt,0px);bottom:auto;}@media(min-width:800px){.ui-content-page{top:50%;height:min(760px,90dvh)}}

.cp-cancel svg,.nav-back.rs-x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;}
.font-choices .label{font-size:var(--fs-footnote);}

.rec-back svg{width:20px;height:20px;}
.ui-pending{display:flex;gap:12px;align-items:center;padding:28px 0;color:var(--label-2);font-size:var(--fs-body);line-height:1.6;}
.ui-retry{padding:12px 24px;border-radius:12px;background:var(--fill);color:var(--label);}
.ui-response{position:fixed;z-index:1100;left:50%;transform:translateX(-50%);bottom:calc(90px + env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center;max-width:calc(100vw - 40px);padding:12px 18px;border-radius:14px;background:var(--card);color:var(--label);box-shadow:0 3px 24px #0002;font-size:var(--fs-body);pointer-events:none;}

/* Book switchers share the spacing used by classroom materials. */
.learning-book-list { display: grid; gap: 8px; }

/* Student selection: keep avatars and names aligned; selection is at the right. */
.atp.multi .ct-row { padding-right: var(--page-x,16px); }
.atp.multi .ct-row .atp-ck { order: 3; margin-left: auto; }
.atp.multi .ct-row + .ct-row::before { left: 72px; right: var(--page-x,16px); }
.atp-chip .avatar { border-radius: 50%; flex: none; overflow: hidden; }
.atp-edit { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; }
.atp-edit svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.atp-complete { flex: none; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: .5px solid var(--sep); background: var(--bg); }
.atp-complete button { width: 100%; height: 48px; border-radius: 14px; background: var(--accent); color: var(--on-accent); font: inherit; font-weight: 600; }
.atp-complete button:disabled { background: var(--fill-2); color: var(--label-3); }

/* Fit existing page layouts to the visible viewport. Business layout, toolbar,
   type scale, spacing, colors, and component shapes remain with their owners. */
.ui-task-panel {
  position:fixed!important;inset:auto!important;left:var(--surface-x)!important;top:var(--surface-y)!important;
  width:var(--surface-w)!important;height:var(--surface-h)!important;max-height:none!important;
  transform:none!important;margin:0!important;box-sizing:border-box;border-radius:0;box-shadow:none;
}
.ui-page-covered {visibility:hidden!important;pointer-events:none!important;}
/* Legacy Chinese action bars are viewport-fixed. Keep them in their owning
   task region so the left navigation and the host content column align. */
.ui-task-panel .cn-acts {position:absolute;left:0;right:0;bottom:0;}
.desk-composer-panel {width:100%;max-width:var(--content-w);margin-inline:auto;overflow:hidden;}
.desk-composer-panel .cp-caps {margin:8px var(--page-x) 0;overflow-y:auto;overscroll-behavior:contain;}
/* Media controls share one centered row inside their existing content column. */
.cpg.dc .rc-dock .rc-tools,.cpg.pic-rm .rk-tools {width:100%;max-width:520px;margin-inline:auto;}
/* Remote subpages use the owning miniapp's navigation bar and full right
   region on tablets/desktops. The existing phone sheets keep their layout. */
@media(min-width:768px) {
  .cpg.dc:has(.rc-layer)>.cpg-body,.cpg.pic-rm:has(.pk-layer)>.cpg-body {position:static;overflow:visible;}
  .cpg.dc .rc-layer,.cpg.pic-rm .pk-layer {position:absolute;inset:calc(var(--top-h) + env(safe-area-inset-top,0px)) 0 0;display:flex;align-items:stretch;background:var(--bg);animation:none;}
  .cpg.dc .rc-sheet,.cpg.pic-rm .pk-sheet {width:100%;max-width:none;height:100%;max-height:none;border-radius:0;box-shadow:none;box-sizing:border-box;padding:20px max(var(--page-x),calc((100% - var(--content-w)) / 2 + var(--page-x))) max(20px,env(safe-area-inset-bottom));overflow:auto;animation:none;}
  .cpg.dc .rc-sh-h,.cpg.pic-rm .pk-sh-h {display:none;}
  .cpg.dc .rc-pad,.cpg.dc .rc-quick,.cpg.pic-rm .pk-pad,.cpg.pic-rm .pk-quick {width:100%;max-width:420px;margin-inline:auto;}
}
/* Full-window task containers retain the existing PC content column. */
@media(min-width:600px) {
  .cp-page>.cp-foot {width:100%;max-width:var(--content-w);margin-inline:auto;box-sizing:border-box;}
  .cp-page .cp-box,.cp-page .cp-caps {margin-inline:var(--page-x);}
  .cp-page>.cp-prev {width:100%;max-width:var(--content-w);margin-inline:auto;padding-inline:var(--page-x);box-sizing:border-box;}
  .cp-page .cp-prev .mirror {max-width:100%;}
  .ui-content-page>.fe-top,.ui-content-page>.fe-body,.ui-content-page>.fe-footer {width:100%;max-width:var(--content-w);margin-inline:auto;padding-inline:var(--page-x);}
  .atp-h,.atp-chips,.atp-tools,.atp-wrap,.atp-complete {width:100%;max-width:var(--content-w);margin-inline:auto;box-sizing:border-box;}
  .atp-chips,.atp-tools,.atp-complete {padding-inline:var(--page-x);}
  .atp-list .ct-row {padding-left:var(--page-x);}
  .atp .mt-search {width:calc(100% - 2 * var(--page-x));max-width:calc(var(--content-w) - 2 * var(--page-x));margin-inline:auto;box-sizing:border-box;}
  .ui-task-panel.rs-page .rs-top,.ui-task-panel.rs-page .rs-sheet {max-width:var(--content-w);}
  .ui-task-panel.rs-page .rs-in,.ui-task-panel.rs-page .rs-undo {max-width:calc(var(--content-w) - 2 * var(--page-x));}
  .ui-task-panel.cpg>.cpg-top,.ui-task-panel.cpg>.cpg-foot {width:100%;max-width:var(--content-w);margin-inline:auto;box-sizing:border-box;}
  .ui-task-panel.cpg>.cpg-top,.ui-task-panel.cpg>.cpg-foot,.ui-task-panel .dx-foot {padding-inline:var(--page-x);}
  .ui-task-panel .cn-acts {padding-inline:max(var(--page-x),calc((100% - var(--content-w)) / 2 + var(--page-x)));}
  .ui-task-panel.cpg:not(.dxh)>.cpg-body,.ui-task-panel .dx-body {padding-inline:max(var(--page-x),calc((100% - var(--content-w)) / 2 + var(--page-x)));}
  .ui-task-panel .dx-scroll,.ui-task-panel .dx-recent {margin-inline:calc(-1 * var(--page-x));}
}
/* Menus keep their existing appearance and intrinsic size. Overflow alone scrolls. */
[data-ui-surface="menu"] .pm {max-width:calc(100vw - 16px);overflow-y:auto;overscroll-behavior:contain;}
.sheet-bg[data-ui-surface="dialog"] {left:var(--surface-x,0px);}
.ui-host-panel {left:var(--surface-x,0px)!important;right:0!important;}

/* Bottom controls v1: classroom toolbar is the icon reference.
   Leaf footers own safe-area padding; nested rows never add it again.
   Viewport/keyboard ownership and host-column widths remain in their runtimes. */
:root {
  --bottom-icon:24px; --bottom-icon-box:26px; --bottom-icon-gap:4px;
  --bottom-tool-min:56px; --bottom-button-min:var(--control-md);
  --bottom-row-gap:16px; --bottom-top:8px; --bottom-space:16px;
  --bottom-keyboard-space:8px; --bottom-label:var(--fs-tab);
}
.tbar button,.tabbar button,.cpg .rk-tools .rk-t,.cpg.dc .rc-dock .rc-t {
  min-height:var(--bottom-tool-min);gap:var(--bottom-icon-gap);padding-block:6px;align-content:center;
}
.tbar i,.cpg .rk-tools .rk-t i,.cpg.dc .rc-dock .rc-t i,.cpg .wb-plus .rk-t i {
  width:var(--bottom-icon-box);height:var(--bottom-icon-box);display:grid;place-items:center;
}
.tbar svg,.tabbar button svg,.cpg .rk-tools .rk-t i svg,.cpg.dc .rc-dock .rc-t i svg,.cpg .wb-plus .rk-t i svg,
.cp-caps .cap svg,.playbar .cap-ic svg {
  width:var(--bottom-icon);height:var(--bottom-icon);
}
.cp-foot .cmp-plus svg,.cp-foot .cmp-send svg,.cp-foot .cp-ic svg,.cp-foot .cp-pill .ic,
.tls-foot .cmp-plus svg,.tls-foot .cmp-send svg,.tls-foot .cp-ic svg,.dock .cmp-plus svg,.dock .cmp-send svg {
  width:var(--bottom-icon);height:var(--bottom-icon);
}
.tbar button,.tabbar button,.cpg .rk-tools .rk-t span,.cpg.dc .rc-dock .rc-t span,.cpg .wb-plus .rk-t span {
  font-size:var(--bottom-label);line-height:1.3;
}
.cpg .rk-tools .rk-t span,.cpg.dc .rc-dock .rc-t span {white-space:nowrap;text-align:center;}
.cpg .rk-tools,.cpg.dc .rc-dock .rc-tools {padding:var(--bottom-top) 0 2px;}
.cpg .cn-tools button {min-height:var(--bottom-tool-min);gap:var(--bottom-icon-gap);padding-block:6px;}
.cpg .cn-tools i {width:var(--bottom-icon-box);height:var(--bottom-icon-box);display:grid;place-items:center;}
.cpg .cn-tools svg,.ip-acts .ip-a svg {width:var(--bottom-icon);height:var(--bottom-icon);}
.cpg .cn-tools b,.cpg .cn-tools span {font-size:var(--bottom-label);line-height:1.3;white-space:nowrap;text-align:center;}
.cpg .cn-acts {gap:var(--bottom-row-gap);padding-block:var(--bottom-top) calc(var(--bottom-space) + env(safe-area-inset-bottom,0px));}
/* Footer-owned actions stay in flow so flex reserves their actual height.
   Body-owned legacy actions retain their separate layout. */
.ui-task-panel.cpg>.cpg-foot>.cn-acts {position:static;width:100%;box-sizing:border-box;padding-inline:0;}
.cpg>.cpg-foot:has(>.cn-acts) {padding-block:0;}
.cpg>.cpg-foot,.cpg .dx-foot,.ui-content-page>.fe-footer,.rs-page>.rs-foot,.atp>.atp-complete {
  padding-inline:var(--page-x,16px);
  padding-block:var(--bottom-top) calc(var(--bottom-space) + env(safe-area-inset-bottom,0px));
  gap:var(--bottom-row-gap);box-sizing:border-box;
}
.cpg .cn-txf,.cpg.dc .rc-dock {display:grid;gap:var(--bottom-row-gap);}
.cpg .rk-keys,.cpg.dc .dc-keys {gap:var(--bottom-row-gap);}
.cpg .rk-k,.cpg.dc .dc-k,.cpg .cn-act,.cpg .dc-primary,.fe-footer .fe-action,.rs-page .rs-foot .btn-lg,.atp-complete button {
  height:auto;min-height:var(--bottom-button-min);padding:12px 16px;line-height:1.4;
}
.cp-page>.cp-foot,.tls>.tls-foot {padding-bottom:calc(var(--bottom-space) + env(safe-area-inset-bottom,0px));}
.cp-page.kb>.cp-foot,.tls.kb>.tls-foot,.rs-page.kb>.rs-foot,.ui-content-page.kb>.fe-footer,.cpg.kb>.cpg-foot,.cpg.kb .dx-foot,.atp.kb>.atp-complete {
  padding-bottom:var(--bottom-keyboard-space);
}
.cpg.kb .cn-acts {padding-bottom:var(--bottom-keyboard-space);}
@media(prefers-reduced-motion:reduce){.cpg .dx-ans .wb{animation:none!important;}}
@media(min-width:768px) {
  .tls.ui-host-panel>.tls-top,.tls.ui-host-panel .tls-page>.tls-top {padding-inline:max(var(--page-x),calc((100% - var(--content-w)) / 2 + var(--page-x)));}
  .tls.ui-host-panel>.tls-list,.tls.ui-host-panel>.tls-foot {padding-inline:max(var(--page-x),calc((100% - var(--content-w)) / 2 + var(--page-x)));}
  .tls.ui-host-panel>.tls-foot .cp-box {margin-inline:0;max-width:none;}
}

/* Icon captions never wrap or grow a toolbar row. */
.tbar button,.tabbar button,.cpg .rk-t,.cpg .rc-t,.cpg .cn-tools button,.cpg .wb-plus .rk-t{min-width:0;}
.tbar button>.tool-caption,.tabbar button>.tool-caption,.cpg .rk-t>span,.cpg .rc-t>span,.cpg .cn-tools button>b,.cpg .cn-tools button>span,.cpg .wb-plus .rk-t>span{display:block;max-width:100%;width:100%;min-width:0;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
/* One file directory for personal materials, initial selection and session switching. */
.material-filters{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 18px}.material-filters>div:first-child{display:flex;gap:4px;padding:4px;background:var(--fill);border-radius:12px}.material-filters button{min-height:36px;padding:0 13px;font-size:14px;border-radius:9px;white-space:nowrap}.material-filters>div:first-child .on{background:var(--card);box-shadow:0 1px 4px #24211b09}.material-filters .material-sort{display:flex;gap:10px}.material-filters .material-sort button{min-height:44px;padding:0;font-size:12px;color:var(--label-3)}.material-filters .material-sort .on{color:var(--label)}
.material-search{display:flex;align-items:center;gap:10px;background:var(--fill);border-radius:12px;height:44px;padding:0 12px;margin-bottom:24px}.material-search svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;color:var(--label-3);flex:none}.material-search input{width:100%;min-width:0;border:0;background:none;outline:none;font-size:16px;color:var(--label)}
.material-row{display:flex;align-items:center;min-height:84px;gap:14px;padding:12px 0;border-bottom:1px solid var(--sep);box-sizing:border-box;cursor:pointer}.material-row.pdf{min-height:102px}.material-cover{width:44px;height:52px;flex:none;background:var(--fill);border-radius:8px;overflow:hidden;display:grid;place-items:center;color:var(--label-3)}.pdf .material-cover{width:58px;height:78px;border-radius:5px;box-shadow:0 2px 6px #24211b18}.material-cover svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.material-cover img{display:block;width:100%;height:100%;object-fit:cover}.material-main{flex:1;min-width:0}.material-main b{display:block;font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-main small{display:block;margin-top:4px;font-size:12px;line-height:18px;color:var(--label-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-tail,.dc .material-row .dc-go{flex:none;min-width:44px;min-height:44px;display:grid;place-items:center;color:var(--label-2);font-size:12px;white-space:nowrap;text-align:right;padding:0;background:none;box-shadow:none;border:0}.material-empty{padding:36px 16px;text-align:center;color:var(--label-3);margin-top:24px}.material-empty b{display:block;font-size:15px;font-weight:500;color:var(--label)}.material-empty p{font-size:12px;line-height:1.8;margin:8px 0 0}.material-empty button{min-height:44px;margin-top:12px;font-size:14px;color:var(--label)}.material-upload-status{font-size:13px;margin:20px 0;color:var(--label-2)}.material-detail .material-row{margin:12px 0 24px;border:0}.material-detail .pdf .material-cover{width:70px;height:94px}.material-detail .material-row{cursor:default}.material-detail [data-room]{display:flex;justify-content:space-between}.my-materials [data-material-list]{margin-top:24px}.my-materials .sh-sub{margin-bottom:24px}
@media(max-width:350px){.material-filters{gap:6px}.material-filters button{padding:0 9px;font-size:13px}.material-filters .material-sort{gap:8px}.material-filters .material-sort button{font-size:11px}}

/* File separators align with the title, leaving the cover column clear. */
.material-row{position:relative;border-bottom:0}.material-row::after{content:"";position:absolute;bottom:0;left:58px;right:0;height:1px;background:var(--sep)}.material-row.pdf::after{left:72px}.material-detail .material-row::after{display:none}

.material-group-title{margin:26px 0 8px;font-size:13px;font-weight:500;color:var(--label-3)}.class-materials .pcf-grp{background:none;border-radius:0;box-shadow:none}.class-materials .pcf-row{padding:12px 0;gap:14px;min-height:84px}.class-materials .pcf-row+.pcf-row::before{left:52px}.class-materials .cm-empty{padding:18px 0;font-size:13px;color:var(--label-3)}.class-materials .sh-acts button{white-space:nowrap}

.material-row.material-add{width:100%;text-align:left;background:none;color:var(--label);margin-top:12px}.material-add .material-cover{box-shadow:none;background:var(--fill);height:44px}.material-add .material-cover svg{width:24px;height:24px}.material-add::after{display:none}

/* One leading navigation slot. Keep each page's existing height, safe area,
   title and trailing controls; only align the back/close target to the host. */
:root{--nav-control-size:44px;}
html body :is(.cpg>.cpg-top,.cpg .dx-top,.cp-page>.cp-head,.atp>.atp-h,.rs-page>.nc-top,.ui-content-page>.fe-top,.nc-page>.nc-top){
  width:100%;max-width:var(--content-w);margin-inline:auto;padding-inline:var(--page-x);box-sizing:border-box;
}
html body .tls .tls-top{padding-inline:max(var(--page-x),calc((100% - var(--content-w)) / 2 + var(--page-x)));}
html body :is(.topbar .nav-back,.topbar .rec-back,.cpg .mp-back,.cp-head>.cp-cancel,.atp-h>.atp-x,.nc-top>.nav-back,.tls-top>.tls-back,.dx-top>button:first-child){
  width:var(--nav-control-size);min-width:var(--nav-control-size);height:var(--nav-control-size);max-width:none;
  padding:0;margin:0;display:flex;align-items:center;justify-content:center;justify-self:start;flex-shrink:0;box-sizing:border-box;
}
html body .cpg .mp-back.bl{width:auto;justify-content:flex-start;gap:8px;}
html body .cpg .mp-back.bl svg{margin-left:0;}
html body .dc:is(.rc-blind,.rc-music,.rc-link-layer) .mp-back{width:var(--nav-control-size);justify-content:center;}
/* The class and call page share the same preview slot, including the class
   page's 8px top inset. Opening a call must not move that persistent frame. */
.cp-page.class-origin {animation:none;}
@media(min-width:768px) {.cp-page.class-origin>.cp-prev {padding-top:22px;}}
.page.addcaps>.sect:first-child {margin-top:8px;}
/* 编辑行的操作留在列表内侧，不贴页面边缘；加减和排序左右各留 16px。 */
.page.addcaps .glist.big>.be-row {padding-inline:16px;}
.page.addcaps .be-h {margin-right:0;}
.page.addcaps .glist.big>.be-row+.be-row::before {left:108px;right:16px;}

/* 身份图标淡彩底：同一能力在首页、记录、编辑和能力目录保持同色。 */
.tool-icon {--tool-hue:38;}
.tool-icon[data-tool="call"] {--tool-hue:38;}
.tool-icon[data-tool="img"] {--tool-hue:150;}
.tool-icon[data-tool="dictation"] {--tool-hue:212;}
.tool-icon[data-tool="chinese"] {--tool-hue:18;}
.tool-icon[data-tool="ppt"] {--tool-hue:268;}
.tool-icon[data-tool="pdf"] {--tool-hue:175;}
.tool-icon[data-tool="web"] {--tool-hue:225;}
.tool-icon[data-tool="guide"] {--tool-hue:38;}
.tool-icon[data-tool="update"] {--tool-hue:212;}
html body :is(.glist.big .gl-ic,.dl-m>i,.hls .hl .hl-av,.playbar .cap-ic).tool-icon {
  background:color-mix(in srgb,hsl(var(--tool-hue) 48% 52%) 18%,var(--card));
  color:hsl(var(--tool-hue) 44% 34%);
}
html.dark body :is(.glist.big .gl-ic,.dl-m>i,.hls .hl .hl-av,.playbar .cap-ic).tool-icon {
  background:color-mix(in srgb,hsl(var(--tool-hue) 55% 65%) 20%,var(--card));
  color:hsl(var(--tool-hue) 48% 78%);
}
html body .tool-icon>svg {width:24px;height:24px;}

/* 客服身份色：消息入口与聊天中的客服头像共用，老师头像仍按人配色。 */
:root {--support-avatar-bg:color-mix(in srgb,hsl(175 48% 52%) 18%,var(--card));--support-avatar-ink:hsl(175 44% 34%);}
html.dark {--support-avatar-bg:color-mix(in srgb,hsl(175 55% 65%) 20%,var(--card));--support-avatar-ink:hsl(175 48% 78%);}

/* Personal library: one quiet upload row, filters and list share the same inset. */
.my-materials .material-filters{flex-wrap:wrap;row-gap:8px;margin-top:12px}
.my-materials .material-filters>div:first-child{flex-wrap:wrap;max-width:100%}
.my-materials .material-filters button{padding-inline:11px}
.my-materials .material-sort{margin-left:auto}
.my-materials [data-material-add]{margin-top:24px}
.my-materials .material-add{margin-top:0;padding-block:18px}
.my-materials .material-add .material-cover{background:var(--fill-2);color:var(--label)}
.my-materials [data-material-list]{margin-top:12px}
.material-row.audio .material-cover,.material-row.video .material-cover{width:52px;height:52px}
.material-row.audio::after,.material-row.video::after{left:66px}
/* Reviewed 89: C material list, A screen page; all surfaces use the host's right column. */
.materials-upload-top{width:44px;height:44px;display:grid;place-items:center;color:var(--label);background:none;border:0}.materials-upload-top svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.materials-c .fe-body{padding-top:18px}.materials-c .material-search{margin:0 0 22px}.materials-c-tabs{display:flex;gap:24px;border:0}.materials-c-tabs button{position:relative;padding:0 0 12px;min-height:36px;font-size:13px;color:var(--label-3);white-space:nowrap;background:none}.materials-c-tabs button.on{color:var(--label);font-weight:500}.materials-c-tabs .on:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;border-radius:3px;background:var(--label)}.materials-c-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--label-3);margin-top:12px}.materials-c-meta button{height:36px;font-size:12px;color:var(--label-3);background:none}.materials-c [data-material-list]{margin-top:3px}.materials-c-row{display:flex;gap:13px;align-items:flex-start;padding:16px 0 9px;position:relative}.materials-c-row:after{content:'';position:absolute;bottom:0;left:57px;right:0;height:.5px;background:var(--sep)}.materials-c-row .material-cover{border:0;margin-top:3px;width:44px;height:44px;cursor:pointer;border-radius:5px}.materials-c-row.ppt .material-cover{height:33px;background:color-mix(in srgb,var(--theme-accent) 7%,var(--bg))}.materials-c-row.pdf .material-cover{height:59px;border-radius:3px;width:44px;box-shadow:0 2px 5px #00000010}.materials-c-row .material-cover svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linejoin:round;stroke-linecap:round}.materials-c-row .material-main{display:block}.materials-c-title{text-align:left;display:block;width:100%;font-size:14px;font-weight:500;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none}.materials-c-bottom{display:flex;align-items:center;justify-content:space-between;min-height:44px;gap:4px}.materials-c-bottom small{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.materials-c-actions{display:flex;gap:2px;margin-right:-6px;flex:none}.materials-c-actions button{height:44px;width:40px;background:none;display:grid;place-items:center;color:var(--label-3);border:0}.materials-c-actions button:first-child{color:var(--label)}.materials-c-actions svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.materials-c-actions button:disabled{opacity:.3}.materials-c .my-materials-empty .pri{margin-top:22px;min-height:44px;padding:0 28px;border-radius:9px;background:var(--accent);color:var(--on-accent);font-size:14px}.material-rename .sheet{padding:24px;max-width:360px;margin:auto}.material-rename input{margin-top:12px;width:100%;box-sizing:border-box}.material-rename .sh-msg{min-height:20px}.material-rename .sh-acts{margin-top:16px}.material-class-picker .sh-sub{padding:0;margin:4px 0 24px;text-align:left}.material-class-picker .sh-list button{display:flex;align-items:center;gap:12px;justify-content:space-between}.material-class-picker .sh-list button>span{flex:1}.material-class-picker .sh-list small{display:block;font-size:12px;color:var(--label-3);font-weight:400}.material-class-picker .sh-list i{font-style:normal;color:var(--theme-accent);width:20px}.materials-result-title{font-size:23px;font-weight:500;margin:32px 0 12px}
.screen-settings-page #scrSheet{max-width:780px;margin:auto}.screen-a-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0 20px}.screen-a-head h2{margin:0 0 3px;font-size:23px;font-weight:600}.screen-a-head small{font-size:12px;color:var(--label-3)}.screen-a-head .scr-st{font-size:11px;display:flex;align-items:center;gap:5px}.screen-a-preview .msw{width:100%;display:block;box-shadow:none;border-radius:10px;overflow:hidden}.screen-a-preview .ms{width:100%;display:block;aspect-ratio:16/9;border-radius:10px}.screen-a-caption{display:flex;justify-content:space-between;margin-top:9px;font-size:11px;color:var(--label-3)}.screen-a-body .sect{margin:25px 0 7px;padding:0}.screen-a-body .glist{background:none;border:0;border-radius:0;overflow:visible}.screen-a-body .gl-row{padding-inline:0;min-height:61px}.screen-a-body .gl-main b{font-size:15px;font-weight:500}.screen-a-body .gl-main small{font-size:12px}.screen-a-body .gl-val{font-size:12px;max-width:47%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen-a-body .phones.scr{padding:10px 0;gap:12px}.screen-a-body .phones.scr .msw{height:44px;box-shadow:none}.screen-a-body .phones.scr em{display:none}.screen-a-body .ph-themes.scr{padding:12px 0;gap:14px 12px}.screen-a-body .ph-themes.scr .msw{height:42px}.screen-a-body .ph-themes.scr button{font-size:11px}.screen-a-body .ms-q{height:2px;bottom:6%;width:26%;left:37%}
.saver-settings .fe-body{padding-top:14px}.saver-note{font-size:12px;line-height:1.8;color:var(--label-3);margin:12px 0 20px}.saver-preview{position:relative;margin:14px 0 18px}.saver-preview .msw{display:block;width:100%;box-shadow:none}.saver-preview .ms{display:block;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden}.saver-preview .ms-t{transform:translateY(-25%)}.saver-word{position:absolute;top:53%;left:12px;right:12px;display:flex;justify-content:center;align-items:center;gap:12px;pointer-events:none;color:var(--label-3)}.saver-word b{font:22px Georgia,serif;color:var(--label-2)}.saver-word small{font-size:12px}.saver-preview:has(.saver-board){--label-2:color-mix(in srgb,var(--label) 90%,var(--bg))}.saver-mode{display:flex;background:var(--fill);border-radius:9px;padding:4px;margin:18px 0}.saver-mode button{height:34px;flex:1;background:none;font-size:13px;border-radius:6px;color:var(--label-3)}.saver-mode button.on{background:var(--bg);color:var(--label);box-shadow:0 1px 4px #00000008}.saver-settings .glist{background:none;border-radius:0}.saver-settings .gl-row{padding-inline:0;min-height:61px}.saver-settings .gl-val{max-width:55%;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saver-settings .sect{padding:0;font-size:12px;margin-top:24px}.saver-switch{width:37px;height:22px;border-radius:15px;background:var(--fill-2);position:relative}.saver-switch:after{position:absolute;content:'';width:16px;height:16px;background:var(--bg);border-radius:50%;top:3px;left:3px}.saver-switch.on{background:var(--theme-accent)}.saver-switch.on:after{left:18px}.saver-book-row{width:100%;display:flex;align-items:center;gap:14px;text-align:left;min-height:82px;border-bottom:1px solid var(--sep);background:none;color:var(--label)}.saver-book-cover{width:43px;height:58px;background:var(--fill);border-radius:3px;display:grid;place-items:center;font:15px Georgia,serif;color:var(--label-2)}.saver-book-row>span:nth-child(2){flex:1;min-width:0}.saver-book-row b{font-size:15px;font-weight:500;display:block}.saver-book-row small{font-size:11px;color:var(--label-3);display:block;margin-top:5px}.saver-book-row i{color:var(--theme-accent);font-style:normal}.saver-unit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.saver-unit-grid button{display:flex;align-items:center;justify-content:space-between;gap:8px;background:none;min-height:58px;text-align:left;border:1px solid var(--sep);border-radius:8px;padding:10px 12px;font-size:13px;color:var(--label)}.saver-unit-grid button.on{border-color:var(--theme-accent);background:color-mix(in srgb,var(--theme-accent) 5%,transparent)}.saver-unit-grid i{font-style:normal;color:var(--theme-accent)}.saver-preview-action{width:100%;min-height:46px;border-radius:9px;background:var(--fill);font-size:14px;color:var(--label);margin:10px 0 20px}
@media(max-width:360px){.materials-c-tabs{gap:18px}.materials-c-actions button{width:36px}.materials-c-row{gap:11px}.materials-c-row:after{left:55px}}

.saver-word b,.saver-word small{color:inherit}.saver-word small{opacity:.65}

.screen-a-preview .ms-q,.saver-preview .ms-q{height:2px;width:26%;left:37%;bottom:6%}

/* Quiet library actions share the 24px / 1.8px classroom toolbar language. */
.materials-c-actions{gap:6px;margin-right:0}.materials-c-actions button{width:40px;color:var(--label-2)}.materials-c-actions svg{width:24px;height:24px;stroke-width:1.8}
.materials-c-row.audio .material-cover{background:color-mix(in srgb,var(--theme-accent) 10%,var(--bg));color:var(--theme-accent)}
.materials-c-row.video .material-cover{background:color-mix(in srgb,var(--theme-accent) 10%,var(--bg));color:var(--label-2)}
.materials-c-row .material-cover svg{stroke-width:1.8}.screen-theme-settings .fe-body{padding-top:22px}.screen-theme-settings .sect{padding:0;margin:30px 0 14px;font-size:12px;color:var(--label-3)}
.screen-appearance{display:flex;background:var(--fill);padding:4px;border-radius:10px;gap:4px}.screen-appearance button{flex:1;min-height:40px;background:none;color:var(--label-3);border-radius:7px;font-size:14px}.screen-appearance button.on{background:var(--bg);color:var(--label);box-shadow:0 1px 4px #00000008}
.screen-palettes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 12px;margin:22px 0 32px}.screen-palettes button{display:flex;flex-direction:column;align-items:center;gap:10px;min-height:76px;background:none;color:var(--label-3)}.screen-palettes button>span{width:42px;height:42px;border:1px solid var(--sep);border-radius:50%;background:linear-gradient(135deg,var(--swatch-light) 0 50%,var(--swatch-dark) 50% 100%);position:relative}.screen-palettes button.on>span{outline:1.5px solid var(--label);outline-offset:4px}.screen-palettes button>span>i{position:absolute;bottom:-2px;right:-2px;width:16px;height:16px;display:grid;place-items:center;border-radius:50%;font-size:10px;font-style:normal;background:var(--label);color:var(--bg)}.screen-palettes button:not(.on)>span>i{display:none}.screen-palettes button b{font-size:12px;font-weight:400}.screen-palettes button.on{color:var(--label)}
@media(max-width:360px){.materials-c-actions{gap:2px}.materials-c-actions button{width:36px}}

.materials-c-actions svg{stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.materials-c-row .material-cover{border-radius:8px}.materials-c-row.pdf .material-cover{border-radius:6px}.materials-c-row .material-cover svg{stroke-linecap:round;stroke-linejoin:round}

/* Content selection follows the standard neutral button/check palette. */
.saver-unit-grid button.on{border-color:var(--label);background:var(--fill);color:var(--label)}.saver-unit-grid i,.saver-book-row i{color:var(--label)}.saver-switch.on{background:var(--label)}

/* 2026-10-18 · approved existing-page system. No changes to host widths or TAB. */
.unified-mark{width:40px;height:40px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--label-2);background:var(--fill)}
.unified-mark svg,.unified-nav-action svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.unified-nav-action{width:44px;height:44px;display:grid;place-items:center;padding:0;background:none;color:var(--label);border:0}
.saver-entry{gap:14px;min-height:76px;padding:14px 0;position:relative;background:none}
.saver-entry+.saver-entry:before{content:'';position:absolute;top:0;left:54px;right:0;height:1px;background:var(--sep)}
.saver-entry .gl-main b{font-size:1rem;font-weight:500;line-height:1.45}.saver-entry .gl-main small{font-size:.75rem;line-height:1.5;color:var(--label-3);margin-top:4px}.saver-entry .gl-val{font-size:.8125rem}
.saver-list-page .fe-body,.personal-saver-editor .fe-body{padding-top:18px}.saver-context{display:flex;flex-direction:column;gap:5px;padding:20px 0 16px}.saver-context>b{font-size:1.25rem;font-weight:500}.saver-context small{color:var(--label-3);font-size:.75rem}
.unified-heading{font-size:1.5rem;font-weight:500;line-height:1.5;margin:18px 0 8px}.unified-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:46px 12px;gap:14px}.unified-empty>b{font-size:1.125rem;font-weight:500}.unified-empty p{color:var(--label-3);font-size:.875rem;line-height:1.7;margin:0}.unified-empty button{font:inherit;color:var(--label);background:var(--fill);padding:10px 18px;border-radius:10px;min-height:44px}
.saver-true-preview{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:var(--fill)}.saver-true-preview iframe{position:absolute;left:0;top:0;width:1280px;height:720px;border:0;transform-origin:top left;pointer-events:none}
.has-header-search{position:relative}.has-header-search>.header-search-control{position:absolute;left:52px;right:52px;top:50%;transform:translateY(-50%);margin:0!important;height:38px;min-width:0;width:auto;display:flex;padding:0 10px;border-radius:10px;background:var(--fill);box-shadow:none;z-index:1}.cpg-top.has-header-search>.header-search-control{right:110px}.has-header-search>.header-search-control input{font:inherit;font-size:.9375rem;min-width:0;width:100%;height:38px;flex:1;border:0;outline:0;background:transparent;color:var(--label)}.has-header-search>.header-search-control svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}.has-header-search>.header-search-control button{flex:none}
.materials-c-tabs{border:0!important;box-shadow:none!important;margin-top:4px}.materials-c-tabs:after{display:none!important}.materials-c-meta{padding:14px 0;color:var(--label-3)}
.materials-c-actions{gap:12px!important}.materials-c-actions button{width:40px!important;height:40px!important;min-width:40px;display:grid;place-items:center;background:none!important;color:var(--label-2)!important;border-radius:10px}.materials-c-actions button svg{width:24px;height:24px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke:currentColor}
.material-row,.materials-c-row{position:relative;gap:16px!important;padding:14px 0!important;border:0!important;min-height:80px}.material-row+.material-row:before,.materials-c-row+.materials-c-row:before{content:'';position:absolute;left:72px;right:0;top:0;background:var(--sep);height:1px}.material-row .material-cover,.materials-c-row .material-cover{width:58px;height:44px;flex:none;border-radius:8px;background:var(--fill);overflow:hidden;display:flex;justify-content:center;align-items:center;align-self:center}.material-row.pdf .material-cover{width:58px;height:78px;border-radius:5px}.materials-c-row.pdf .material-cover{width:44px;height:59px;border-radius:5px;margin-right:14px}.material-cover img{width:100%;height:100%;object-fit:cover}.material-cover svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.material-row.audio .material-cover,.materials-c-row.audio .material-cover{border-radius:50%;width:44px;height:44px;margin-right:14px;background:repeating-radial-gradient(circle,var(--label-2) 0 1px,var(--label) 2px 3px);position:relative}.material-row.audio .material-cover:after,.materials-c-row.audio .material-cover:after{content:'';width:15px;height:15px;border-radius:50%;background:var(--card);border:4px solid var(--accent,var(--label-3));position:absolute}.material-row.audio .material-cover svg,.materials-c-row.audio .material-cover svg{display:none}
.material-main{min-width:0}.material-main b,.materials-c-title{font-size:1rem!important;line-height:1.5;font-weight:500!important}.material-main small{font-size:.75rem!important;line-height:1.5}.material-group-title{display:flex;align-items:center;justify-content:space-between}.material-group-title button{font:inherit;background:none;color:var(--label-2);min-height:40px;font-size:.8125rem}.material-add{margin:8px 0 16px}.material-add .material-cover{background:var(--fill);width:40px;height:40px;margin-right:18px}
.screen-a-head{display:flex;align-items:center;gap:14px}.screen-a-head .unified-mark{width:44px;height:44px}.screen-a-head>div{flex:1;min-width:0}.screen-a-head h2{font-size:1.375rem;font-weight:500}.screen-a-head small{font-size:.75rem}.screen-a-body .gl-row{gap:12px}.screen-a-body .gl-main b{font-size:1rem;font-weight:500}.screen-a-body .sect{font-size:.75rem;margin-top:28px}.screen-a-body .glist{background:none}
.cl-class-number{font-variant-numeric:tabular-nums;font-size:1.6875rem;line-height:1;font-weight:500;letter-spacing:-1px}.hl .hl-av{align-self:flex-start;margin-top:1px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:11px}.hl .hl-av svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hl .hl-m{padding-top:0}.hl .hl-m>b{line-height:24px;min-height:24px}
.materials-c-row:after{display:none!important}.materials-c-actions{margin-right:0}.materials-c-tabs .on:after{bottom:1px;height:2px;width:12px;left:calc(50% - 6px);right:auto;border-radius:2px}.my-materials-empty .material-add{width:100%;text-align:left}.my-materials-empty .material-main{text-align:left}
/* Student search stays in its existing parent to preserve selection bindings. */
.atp .atp-t{visibility:hidden}.atp .mt-search{position:absolute;left:54px;right:58px;top:calc(env(safe-area-inset-top,0px) + (var(--top-h) - 38px)/2);margin:0!important;height:38px;padding:0 10px;min-width:0}.atp .mt-search input{font-size:.875rem}.atp.pop .mt-search{top:calc((var(--top-h) - 38px)/2)}
.fe-top.has-header-search>[data-fe-x]{grid-column:1}.fe-top.has-header-search>.nc-t{grid-column:2}.fe-top.has-header-search>.materials-upload-top,.fe-top.has-header-search>.unified-nav-action,.fe-top.has-header-search>.fe-reserved,.fe-top.has-header-search>.capsule{grid-column:3;justify-self:end;z-index:2}.has-header-search>.nc-t,.has-header-search>.nav-lt,.has-header-search>.nav-t,.has-header-search>.atp-t{visibility:hidden;pointer-events:none}.has-header-search>.header-search-control{box-sizing:border-box}.has-header-search>.header-search-control[hidden]{display:none!important}
.saver-secondary-actions{display:flex;justify-content:space-between;gap:20px;margin-top:28px}.saver-secondary-actions button{min-height:44px;background:none;font:inherit;font-size:.8125rem;color:var(--label-3)}.saver-secondary-actions .danger{color:var(--danger,#a54439)}.dc .pcf-ic.ppt,.dc .pcf-ic.video{width:58px;height:44px;border-radius:8px}.dc .pcf-ic.audio{width:44px;height:44px;margin-right:14px;border-radius:50%;background:repeating-radial-gradient(circle,var(--label-2) 0 1px,var(--label) 2px 3px);position:relative}.dc .pcf-ic.audio svg{display:none}.dc .pcf-ic.audio:after{content:'';position:absolute;inset:15px;background:var(--card);border-radius:50%}.dc .pcf-row+.pcf-row:before{left:72px}.all-class-books .material-row>button{min-width:52px;min-height:44px;border:0;background:none;color:var(--label-2);font:inherit;font-size:.8125rem}
.cpg-top.has-header-search>b{visibility:hidden;pointer-events:none}
.cpg-top.has-header-search>.cpg-l{grid-column:1}.cpg-top.has-header-search>.capsule{grid-column:3;z-index:2}.cpg-top.has-header-search>.cpg-l .cpg-r,.cpg-top.has-header-search .mp-bl{display:none}.ui-miniapp-page .fe-top.has-header-search{grid-template-columns:44px minmax(0,1fr) 96px}.ui-miniapp-page .fe-top.has-header-search>.header-search-control{right:110px}

.has-header-search>.header-search-control input,.atp .mt-search input{font-size:max(16px,1rem)}

/* 2026-10-18: approved all-page roles. Shared geometry only; no lifecycle or transport. */
:root{--d-edge:var(--page-x);--d-icon:24px;--d-hit:44px;--d-row:76px;--d-round:12px;--top-h:max(56px,3.5rem);--d-line:color-mix(in srgb,var(--label) 9%,transparent);--d-soft:color-mix(in srgb,var(--label) 5%,var(--bg));--d-muted:var(--label-2);--fs-headline:1rem;--fs-title2:1.5rem;--fs-body:1rem;--fs-footnote:.8125rem;--fs-caption:.75rem}
html{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-text-size-adjust:100%}body{line-height:1.5;letter-spacing:0}
button,input,textarea,select{font-family:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--theme-accent,var(--label));outline-offset:3px}button:disabled{opacity:.38}
.topbar,.fe-top,.cpg>.cpg-top,.cp-page>.cp-head,.atp>.atp-h,.rs-page>.nc-top,.tls .tls-top{height:var(--top-h)!important;min-height:var(--top-h)!important;box-sizing:border-box;border-bottom:0!important;background:var(--bg)}
.ui-content-page>.fe-top{padding:0 var(--page-x,16px)!important;grid-template-columns:44px minmax(0,1fr) 44px!important;gap:8px!important}
.fe-top .nc-t b,.cpg-top .mp-ttl,.tls-name,.nav-t,.rs-page .nc-t b{font-size:min(1.0625rem,22px)!important;line-height:1.5rem!important;font-weight:600!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
.nav-back,.fe-top>[data-fe-x],.fe-top>.unified-nav-action,.materials-upload-top,.mp-back,.nav-add,.nav-icon{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;border-radius:12px!important;display:grid;place-items:center;background:transparent!important}
.nav-back svg,.materials-upload-top svg,.mp-back svg,.nav-add svg{width:24px!important;height:24px!important;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.header-search-control{left:64px!important;right:64px!important;top:calc((var(--top-h) - 42px)/2)!important;height:42px!important;transform:none!important;margin:0!important;border-radius:12px!important;background:var(--d-soft)!important;border:0!important;box-shadow:none!important}
.header-search-control input{font-size:1rem!important;line-height:1.5rem!important}.header-search-control svg{width:18px!important;height:18px!important;stroke-width:1.8}
.ui-miniapp-page .fe-top.has-header-search{grid-template-columns:44px minmax(0,1fr) 96px!important}.ui-miniapp-page .header-search-control,.cpg-top .header-search-control{right:116px!important}
.ui-content-page>.fe-body{padding:var(--page-start) var(--d-edge) var(--space-page)!important;scroll-padding-bottom:var(--space-page)}.cpg-body{scroll-padding-bottom:24px}
.ui-content-page>.fe-footer{padding:8px var(--page-x) calc(var(--space-page) + env(safe-area-inset-bottom))!important;gap:var(--space-page)!important;border:0!important;background:var(--bg)}
.fe-action,.sh-acts button,.btn-lg{border-radius:12px!important;min-height:48px;font-size:1rem!important;line-height:1.5rem;font-weight:550;box-shadow:none!important}
.gl-row,.saver-settings .gl-row{padding:16px 0!important;min-height:56px;gap:16px}.gl-main{min-width:0}.gl-main b,.cl-main b,.ct-name b{font-size:1rem!important;font-weight:550!important;line-height:1.5rem!important}.gl-main small,.cl-sub,.ct-name small{font-size:.8125rem!important;line-height:1.25rem!important;margin-top:4px!important;color:var(--label-2)!important}.gl-val{font-size:.8125rem!important;line-height:1.25rem!important}
.glist,.group,.cl-list{background:transparent!important;border:0!important;box-shadow:none!important}.glist .gl-row::before,.cl-row::before,.saver-entry::before{display:none!important}
.sect,.material-group-title,.pcf-h,.cnx-h{font-size:.8125rem!important;line-height:1.25rem;font-weight:550;color:var(--label-2);letter-spacing:0;margin-top:var(--space-page)!important;margin-bottom:8px!important}
.unified-mark,.gl-ic:not(.tool-icon){width:40px!important;height:40px!important;min-width:40px!important;border-radius:11px!important;background:var(--d-soft)!important;color:var(--label-2)!important;box-shadow:none!important}.unified-mark svg,.gl-ic svg{width:24px!important;height:24px!important;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gl-row.saver-entry{min-height:84px!important;align-items:center}.saver-entry .gl-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saver-entry .gl-main small{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.saver-context{padding:0 0 16px!important;gap:4px!important}.saver-context>b{font-size:1.25rem!important;line-height:1.75rem;font-weight:600}.saver-context small,.saver-note,.sh-sub,.sh-note{font-size:.8125rem!important;line-height:1.3125rem!important;color:var(--label-2)!important}.saver-note{margin:16px 0!important}
.saver-true-preview,.screen-a-preview{border:1px solid color-mix(in srgb,var(--label) 22%,var(--bg))!important;border-radius:14px!important;box-shadow:0 6px 18px #0000000a!important;overflow:hidden}.saver-true-preview iframe{border:0!important}.screen-a-caption{font-size:.75rem!important;color:var(--label-2)}
.screen-a-head{padding:0 0 16px!important;gap:16px!important;border:0!important}.screen-a-head h2{font-size:1.25rem!important;line-height:1.75rem!important}.screen-a-head small{font-size:.8125rem!important}.screen-a-body .sect{margin-top:16px!important}.screen-a-body .gl-row{min-height:64px}.screen-a-body .glist{padding:0!important}.screen-a-head .unified-mark{background:var(--d-soft)!important}
.screen-palettes{gap:16px 12px!important}.screen-palettes button>span{border-radius:12px!important;box-shadow:none!important}.screen-palettes b{font-size:.8125rem!important}.screen-palettes button.on>span{outline:1.5px solid var(--label);outline-offset:3px}.screen-appearance button{min-height:44px;border-radius:10px!important}.screen-voices .vo-pick{min-height:68px!important}.vo-pick b{font-size:1rem!important}.vo-pick small{font-size:.8125rem!important}
/* One classification treatment. Options continue to belong to each real page. */
.materials-c-tabs,.lib-kind,.bk-seg,.material-filters>div:first-child,.cn-tabs{display:flex!important;gap:16px!important;align-items:center!important;justify-content:flex-start!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;min-height:48px!important;overflow:auto;scrollbar-width:none}
.materials-c-tabs button,.lib-kind button,.bk-seg button,.material-filters>div:first-child button,.cn-tabs button{position:relative;flex:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:none!important;font-size:.9375rem!important;line-height:1.5rem;min-height:44px!important;padding:8px 0!important;color:var(--label-2)!important;white-space:nowrap}
.materials-c-tabs button.on,.lib-kind button.on,.bk-seg button.on,.material-filters>div:first-child button.on,.cn-tabs button.on{color:var(--label)!important;font-weight:600!important}
.materials-c-tabs button.on:after,.lib-kind button.on:after,.bk-seg button.on:after,.material-filters>div:first-child button.on:after,.cn-tabs button.on:after{content:''!important;position:absolute!important;left:calc(50% - 7px)!important;right:auto!important;bottom:1px!important;width:14px!important;height:2px!important;border-radius:2px;background:currentColor!important}
.materials-c-tabs::after,.lib-kind::after,.bk-seg::after{display:none!important}.materials-c-meta{padding:12px 0 6px!important;min-height:38px}.materials-c-meta,.materials-c-meta button{font-size:.75rem!important;color:var(--label-2)!important}.material-filters{border:0!important;box-shadow:none!important}.material-sorts button{font-size:.8125rem!important;min-height:40px}
/* Same visual column, truthful aspect ratios. */
.material-row,.materials-c-row,.pcf-row{position:relative!important;display:flex!important;align-items:center!important;gap:16px!important;border:0!important;padding:16px 0!important;min-height:88px!important;background:none!important}.material-row::before,.material-row::after,.materials-c-row::before,.materials-c-row::after,.pcf-row::before,.pcf-row::after{display:none!important}
.material-cover,.materials-c-row .material-cover,.pcf-ic{width:58px!important;min-width:58px!important;height:44px!important;margin:0!important;border-radius:8px!important;background:var(--d-soft)!important;display:grid!important;place-items:center!important;box-shadow:none!important;flex:none!important}.material-cover svg,.pcf-ic svg{width:28px!important;height:28px!important;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.material-row.pdf .material-cover,.materials-c-row.pdf .material-cover{height:78px!important;border-radius:4px 7px 7px 4px!important}.material-row.pdf,.materials-c-row.pdf{min-height:110px!important}
.pcf-ic.pdf{height:78px!important;border-radius:4px 7px 7px 4px!important}.pcf-ic.audio{width:48px!important;min-width:48px!important;height:48px!important;margin-inline:5px!important;border-radius:50%!important}.pcf-dir .pcf-ic{background:none!important}.pcf-dir .pcf-ic svg{width:32px!important;height:32px!important}
.material-row.audio .material-cover,.materials-c-row.audio .material-cover{width:48px!important;min-width:48px!important;height:48px!important;margin-inline:5px!important;border-radius:50%!important;background:repeating-radial-gradient(circle,#282621 0 1.2px,#49453c 1.5px 2.2px)!important}.material-row.audio .material-cover::after,.materials-c-row.audio .material-cover::after{width:18px!important;height:18px!important;border:5px solid #b6ac94!important;background:#ded5be!important}
.material-main,.pcf-m{min-width:0;flex:1}.material-main b,.materials-c-title,.pcf-m b{font-size:1rem!important;font-weight:550!important;line-height:1.5rem!important;display:block;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:left}.material-main small,.pcf-m small{display:block;font-size:.8125rem!important;line-height:1.25rem!important;margin-top:4px!important;color:var(--label-2)!important}.materials-c-bottom{display:block!important}.materials-c-bottom>small{margin-top:4px!important}.materials-c-actions{margin:0!important;position:absolute!important;right:0;top:calc(50% - 22px);gap:0!important}.materials-c-row .material-main{padding-right:54px!important}.materials-c-actions button{width:44px!important;height:44px!important;background:none!important;color:var(--label)!important}.materials-c-actions svg{width:24px!important;height:24px!important;stroke-width:1.8}.material-tail,.pcf-go{min-width:24px;font-size:1.25rem;color:var(--label-2)}
.material-add .material-cover,.pcf-add .pcf-ic{width:44px!important;min-width:44px!important;height:44px!important;margin:0 7px!important;border:0!important;background:var(--d-soft)!important;border-radius:11px!important}.material-add .material-cover svg{width:24px!important;height:24px!important}.material-add{margin:8px 0 16px!important}.material-add .material-main small{font-size:.8125rem!important}.my-materials-empty{padding:32px 0!important}.my-materials-empty>b{font-size:18px!important}.my-materials-empty>p{font-size:.8125rem!important;line-height:1.3125rem!important}.my-materials-empty>.material-add{margin-top:16px!important}
.bk-row{min-height:106px!important;gap:16px!important;padding:14px 0!important;border:0!important}.bk-row .bk-cover,.bk-cover{width:58px!important;min-width:58px!important;height:78px!important;border-radius:4px 7px 7px 4px!important}.bk-row b{font-size:1rem!important;font-weight:550!important;line-height:1.5rem}.bk-row small{font-size:.8125rem!important;line-height:1.25rem}.book-cover{width:58px;height:78px;border-radius:4px 7px 7px 4px;object-fit:cover;flex:none;box-shadow:0 2px 5px #00000010}
/* Toolbars share icon geometry with the classroom toolbar; no colored pills. */
.tbar,.rk-tools,.cn-tools,.rc-tools,.pic-tools,.wb-tools{gap:6px;box-shadow:none!important}.tbar button,.rk-t,.cn-tools button,.rc-t{min-width:44px;min-height:64px;padding:8px 4px!important;background:none!important;border:0!important;border-radius:0!important;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px!important;box-shadow:none!important}.tbar svg,.rk-t svg,.cn-tools svg,.rc-t svg{width:24px!important;height:24px!important;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tbar button span,.rk-t span,.rc-t span{font-size:.75rem!important;line-height:18px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cn-tools button b{font-size:.75rem!important;line-height:18px!important}.rk-tools .on,.cn-tools .on,.rc-tools .on{color:var(--label)!important}
.cn-row{min-height:72px!important;padding:16px 0!important;border:0!important}.cn-main b{font-size:1rem!important;line-height:1.5rem!important}.cn-main small{font-size:.8125rem!important;line-height:1.25rem!important}.cn-book{padding-block:16px!important}.cn-book b{font-size:1.25rem!important}.cn-book small{font-size:.8125rem!important}
.sh-in,.cp-input textarea{font-size:1rem!important;border-radius:12px!important}.sh-in{min-height:48px!important;padding:12px 14px!important;background:var(--d-soft)!important;border:0!important}.sh-title{font-size:1.25rem!important;line-height:1.75rem!important;font-weight:600!important}.sh-list button{min-height:56px!important;font-size:1rem!important;border-color:var(--d-line)!important;padding:14px 0!important}.sh-list small{font-size:.8125rem!important;line-height:1.25rem!important}.sheet-bg>.sheet{border-radius:22px 22px 0 0!important;padding:16px var(--page-x) calc(16px + env(safe-area-inset-bottom))!important;box-shadow:none!important}.sh-sub{margin:8px 0 16px!important}
.cl-row{min-height:84px!important;padding:16px 0!important;gap:16px!important}.cl-av{width:44px!important;height:44px!important;border-radius:13px!important}.cl-class-number{font-size:25px!important;font-weight:550!important}.cl-sub{margin-top:4px!important}.nav-lt{font-size:min(var(--fs-title2),32px)!important;font-weight:600!important;letter-spacing:0}.hl{padding:14px 0!important;gap:12px!important}.hl-m b{font-size:1rem!important;line-height:1.5rem!important;font-weight:550!important}.hl-m small{font-size:.8125rem!important;line-height:1.25rem!important}.hl-av{width:40px!important;height:40px!important;border-radius:11px!important}.hl-av:not(.tool-icon){background:var(--d-soft)!important}.hl-av svg{width:24px!important;height:24px!important}.hls .hl::before,.hl::after{display:none!important}.me-card{border:0!important;padding-bottom:16px!important}.gift{border:0!important;padding-top:16px!important}
.ed-preview{margin-top:0!important}.ed-list .ed-row{padding:14px 16px!important;gap:16px!important}.ed-list .ed-row::after{left:72px!important}.ed-preview .tbar{padding:8px!important}.ed-list .ed-row .ed-minus,.ed-list .ed-row .ed-plus{margin-left:0!important}
.r65-tools svg{width:24px!important;height:24px!important;stroke-width:1.8}.r65-tools button{min-height:44px;gap:7px!important}.rs-page .rs-foot{border:0!important}.atp .mt-search{height:42px!important;border-radius:12px!important;top:calc((var(--top-h) - 42px)/2)!important;left:64px!important;right:64px!important}.atp .mt-search input{font-size:1rem!important}
/* Keep media art, practice grids and true renderer intact. */
.rc-player .rc-track-head{gap:12px}.rc-player .rc-track-title{font-size:1.25rem!important;line-height:1.75rem!important;font-weight:600!important}.rc-audio-meta{font-size:.8125rem!important;line-height:1.25rem!important;color:var(--label-2)!important}.rc-player .rc-record{box-shadow:none!important}.rc-player .rc-media-timeline{margin-top:32px!important}.rc-player .rc-media-keys{margin-top:16px!important}


/* Reading pages use the same navigation origin; reading hierarchy stays distinct. */

/* Revision 6: retain the agreed quiet actions; list actions are not CTAs. */
.pl,.hl-acts button,.row .act.strong,.todo-row .pl.pri,.dc .material-row .dc-go,.all-class-books .material-row>button{height:auto!important;min-height:44px!important;min-width:44px!important;padding:8px 10px!important;border:0!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;color:var(--label-2)!important;font-size:.8125rem!important;line-height:1.25rem!important;font-weight:500!important;white-space:nowrap}
.pl:active,.hl-acts button:active,.row .act.strong:active,.dc .material-row .dc-go:active{background:var(--d-soft)!important;color:var(--label)!important;opacity:1}
.btn-sm,.dl-add,.rm-add{border-radius:12px!important;min-height:44px!important;line-height:1.25rem!important}.hl-acts{gap:12px!important}.dc .material-row .material-list-play{width:44px!important;padding:10px!important}.material-list-play svg{width:24px;height:24px;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
/* All book pickers share the materials cover silhouette, not tiny tool icons. */
.bk-row>img,.pc-book>img,.cb-row>img,.saver-book-row>.saver-book-cover{width:58px!important;min-width:58px!important;height:78px!important;object-fit:cover!important;border-radius:4px 7px 7px 4px!important;box-shadow:0 2px 4px #0000000b!important;flex:none!important}
.bk-row,.pc-book,.cb-row,.saver-book-row,[data-published-book]{display:flex!important;align-items:center!important;gap:16px!important;min-height:106px!important;margin:0!important;padding:14px 0!important;width:100%!important;box-sizing:border-box!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:none!important;text-align:left!important}
.bk-row.on,.cb-row.on,.pc-book.on{background:none!important;box-shadow:none!important}.cb-row>span,.pc-book>span{flex:1;min-width:0}.cb-row b,.pc-book b{display:block!important;font-size:1rem!important;line-height:1.5rem!important;font-weight:550!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cb-row small,.pc-book small{display:block!important;font-size:.8125rem!important;line-height:1.25rem!important;color:var(--label-2)!important;margin:4px 0 0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cb-row u,.bk-ck{width:24px!important;min-width:24px!important;text-align:center;color:var(--label)!important;text-decoration:none!important;font-size:20px!important;font-weight:500!important}.learning-book-list,.cb-list{gap:0!important}
.bk-stage,.cb-stage{display:flex!important;align-items:center!important;gap:16px!important;padding:0!important;margin:4px 0 0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;min-height:48px!important}.bk-stage button,.cb-stage button{position:relative!important;flex:none!important;min-height:44px!important;padding:8px 0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;font-size:.9375rem!important;font-weight:400!important;color:var(--label-2)!important}.bk-stage button.on,.cb-stage button.on{color:var(--label)!important;font-weight:600!important}.bk-stage button.on::after,.cb-stage button.on::after{content:'';position:absolute;left:calc(50% - 7px);bottom:1px;width:14px;height:2px;border-radius:2px;background:currentColor}
[data-published-book]{min-height:106px!important}[data-published-book] .gl-main{flex:1}.saver-entry>.chev{flex:none;width:8px;height:13px;color:var(--label-3)}
/* Recovery stays in the content column, with one clear next action. */
.playback-error{display:flex!important;flex-direction:column!important;align-items:stretch!important;padding:8px var(--page-x) 16px!important;overflow:auto!important}.playback-recovery{width:100%;max-width:380px;margin:0 auto}.playback-error-copy{padding:0!important;min-height:0!important;text-align:left!important;align-items:flex-start!important;gap:0!important;display:flex!important;flex-direction:column!important}.playback-error-copy>svg{width:40px!important;height:40px!important;margin:0 0 22px!important;color:var(--label-3)!important}.playback-error-copy>b{font-size:1.375rem!important;line-height:1.875rem!important;margin:0!important;font-weight:600!important;color:var(--label)!important}.playback-error-copy>small{max-width:100%!important;margin:12px 0 0!important;font-size:.9375rem!important;line-height:1.625rem!important;overflow-wrap:anywhere!important;color:var(--label-2)!important;display:block!important}.playback-error .rc-alt{margin:16px 0 0!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;text-align:left!important}.playback-error .rc-alt>small{grid-column:1/-1;font-size:.8125rem!important;margin:0 0 2px!important}.playback-error .rc-alt>button{min-height:48px!important;min-width:0!important;padding:10px 12px!important;border:1px solid var(--d-line)!important;border-radius:12px!important;background:none!important;color:var(--label)!important;font-size:.9375rem!important;line-height:1.5rem!important;margin:0!important}.playback-error .dc-tools{display:flex!important;flex-direction:column!important;gap:8px!important;margin:16px 0 0!important;padding:0!important}.playback-error .dc-tools>button{flex:none!important;width:100%!important;min-height:48px!important;height:auto!important;margin:0!important;padding:12px 16px!important;border-radius:12px!important;line-height:24px!important;font-size:1rem!important;font-weight:550!important;white-space:nowrap!important}.playback-error .dc-tools>.dc-primary{background:var(--label)!important;color:var(--bg)!important}.playback-error .dc-tools>[data-end]{background:none!important;color:var(--label-2)!important;font-weight:400!important}
@media(max-height:600px){.playback-recovery{margin-top:28px}.playback-error-copy>svg{margin-bottom:14px!important}.playback-error .dc-tools{margin-top:18px!important}}

/* A book-switch label is an action, not the narrow selection-check column. */
.cb-row[data-switch-book]>u,.cn-book>u{width:auto!important;min-width:44px!important;font-size:.8125rem!important;line-height:1.25rem!important;font-weight:400!important;white-space:nowrap!important;text-decoration:none!important;color:var(--label-2)!important}.cb-row[data-switch-book]>.dx-chev{flex:none;width:8px;height:13px}
.screen-voices .vo-try{min-width:52px!important;min-height:44px!important;height:auto!important;padding:8px!important;border:0!important;border-radius:8px!important;background:none!important;color:var(--label-2)!important;font-size:.8125rem!important;white-space:nowrap}
.screen-palettes{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important}.screen-palettes button{min-width:0!important;min-height:78px!important}.screen-palettes button>span{position:relative!important;display:block!important;width:100%!important;height:auto!important;aspect-ratio:1.6!important;border:1px solid var(--d-line)!important;border-radius:8px!important;background:var(--swatch-light)!important}.screen-palettes[data-appearance=dark] button>span{background:var(--swatch-dark)!important}.screen-palettes button>span::before{content:''!important;position:absolute!important;left:30%!important;right:30%!important;top:34%!important;height:1px!important;background:var(--swatch-accent)!important;opacity:.6}.screen-palettes button>span::after{content:''!important;position:absolute!important;left:34%!important;right:34%!important;bottom:4px!important;height:3px!important;border-radius:3px!important;background:var(--swatch-accent)!important}.screen-palettes button>span>i{display:none!important}.screen-palettes button>b{display:block!important;margin-top:8px!important;font-size:.8125rem!important;font-weight:400!important;line-height:1.25rem!important}.screen-palettes button.on>b{font-weight:600!important}.screen-palettes button.on>span{outline:1.5px solid var(--label)!important;outline-offset:3px!important}
.unified-empty>button{min-height:48px!important;padding:12px 22px!important;border:0!important;border-radius:12px!important;font-size:1rem!important;line-height:24px!important;background:var(--label)!important;color:var(--bg)!important}.material-detail>.fe-body .material-row>.material-tail{display:none!important}
.ink-btn,.ink-ghost{min-height:48px!important;border-radius:12px!important;font-size:1rem!important;line-height:1.5rem!important}
.topbar,.cpg>.cpg-top,.tls .tls-top{height:calc(var(--top-h) + env(safe-area-inset-top,0px))!important;min-height:calc(var(--top-h) + env(safe-area-inset-top,0px))!important}
.first-class{padding:0 0 16px}.first-class h2{font-size:1.375rem;line-height:1.875rem;font-weight:600;margin:0 0 8px}.first-class p{font-size:.8125rem;line-height:1.3125rem;color:var(--label-2);margin:0}.book-cover{width:58px;min-width:58px;height:78px;object-fit:cover;border-radius:4px 7px 7px 4px;flex:none}

.personal-saver-editor .glist{margin-top:20px}.saver-secondary-actions{margin-top:16px!important;padding-top:0!important;border:0!important}.saver-secondary-actions button{min-height:44px;font-size:.8125rem}.saver-unit-grid{gap:10px!important;margin:16px 0!important}.saver-unit-grid button{min-height:58px!important;border-radius:10px!important;font-size:.875rem!important;border-color:var(--d-line)!important}.saver-unit-grid button.on{border-color:color-mix(in srgb,var(--label) 45%,transparent)!important;background:var(--d-soft)!important;color:var(--label)!important}

.gl-ic.tool-icon{width:40px!important;height:40px!important;min-width:40px!important;border-radius:11px!important}
.be-row.gl-row{padding:14px 16px!important}.be-prev{margin-top:0!important}

/* A header search uses the remaining navigation slots, never a body-width field. */
.header-search-control{width:auto!important;max-width:none!important}
.atp .mt-search{width:auto!important;max-width:none!important;box-sizing:border-box!important;left:calc(max(var(--page-x), (100% - var(--content-w))/2 + var(--page-x)) + 52px)!important;right:calc(max(var(--page-x), (100% - var(--content-w))/2 + var(--page-x)) + 52px)!important;top:calc(env(safe-area-inset-top,0px) + (var(--top-h) - 42px)/2)!important}
.atp.pop .mt-search{top:calc((var(--top-h) - 42px)/2)!important}
@media(min-width:600px){.ui-content-page>.fe-body{padding-inline:var(--page-x)!important}.ui-content-page>.fe-footer{padding-inline:var(--page-x)!important}}

/* Navigation rows share one two-line rhythm; in-editor value rows stay compact. */
.navigation-entry,.gl-row[data-my-materials],.gl-row[data-call-habits],.gl-row[data-my-theme],.font-entry .gl-row{min-height:84px!important;align-items:center!important}
.class-context{display:flex;align-items:center;gap:16px;margin:0;padding:0 0 16px}
.class-context>div{flex:1;min-width:0}.class-context h2{margin:0;font-size:1.25rem;line-height:1.75rem;font-weight:600}
.class-context small{display:block;margin-top:4px;font-size:.8125rem;line-height:1.25rem;color:var(--label-2)}
.class-context .scr-st{display:flex;align-items:center;gap:5px;font-size:.75rem;white-space:nowrap;color:var(--label-2)}
.screen-a-body .navigation-entry{min-height:84px!important}.screen-a-body .gl-main small{margin-top:4px!important}
.material-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.material-section-heading>b{flex:1;min-width:0;white-space:nowrap}
.material-section-heading .material-sort{display:flex;align-items:center;gap:16px;flex:none}
.material-section-heading .material-sort button{background:none;border:0;border-radius:0;min-height:44px;padding:0;font-size:.8125rem;line-height:1.25rem;color:var(--label-2);white-space:nowrap}
.material-section-heading .material-sort button.on{color:var(--label);font-weight:600}
@media(max-width:350px){.material-section-heading{gap:8px}.material-section-heading .material-sort{gap:12px}}

.screen-settings-page>.fe-body,.saver-list-page>.fe-body{padding-inline:var(--page-x,16px)!important}
.dc .lib-kind{margin:0!important}.dc .lib-kind .material-filters{width:100%;margin:0!important}
.dc .lib-note:empty,.dc .lib-up:empty,.dc .lib-recent:empty{display:none}
.dc .lib-recent:not(:empty){margin-bottom:22px}
.dc .lib-recent>.pcf-h2{margin-top:0}
.dc .lib-recent>.pcf-h2,.dc .lib-pc .pcf-main>.pcf-h2{margin-inline:0}
.dc .lib-recent>.pcf-h2 b,.dc .lib-pc .pcf-main>.pcf-h2 b{font-size:13px;font-weight:500;color:var(--label-3)}
.dc .lib-list>.material-section-heading>b{text-align:left}
.dc .lib-list>.material-section-heading{margin:0 0 4px!important;align-items:center}
.dc .lib-note:not(:empty){margin:0 0 8px}.dc .lib-note>*{margin-top:0!important}.dc .lib-note .dc-note{margin:0}

.my-settings-entries>.glist{margin:0!important}.my-settings-entries .gl-row{min-height:84px!important}
.class-context .rt-dot{display:inline-block;width:6px;height:6px;flex:none;border-radius:50%;background:var(--label-3)}.class-context .rt-dot.on{background:var(--green,#5d8058)}

/* Capability actions are quiet, equally sized text controls, never colored pills. */
.dl-list .dl-row{padding-right:0;gap:12px}.dl-list .dl-row::before{display:none}
.dl-list .dl-add,.dl-list .dl-add.on{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;flex:none;min-width:82px;height:44px;min-height:44px!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;color:var(--label)!important;font-size:.8125rem;font-weight:500;white-space:nowrap}
.dl-list .dl-add.on{color:var(--label-2)!important}.dl-list .dl-add svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dl-list .dl-fix{width:82px;text-align:right;padding:0;background:none;color:var(--label-3);font-size:.8125rem}

/* Home's install invitation and capability list share the same quiet action. */
.a2-tip [data-a2go],.a2-row em{background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;min-height:44px;padding:0 8px!important;color:var(--label)!important;font-size:.8125rem!important;line-height:1.25rem!important;font-weight:500!important}

.my-settings-entries .unified-mark{background:none!important;color:var(--label-2)!important}
.navigation-entry>.unified-mark{background:none!important;color:var(--label-2)!important}
#scrPage{padding-top:4px}.class-context .rt-dot{position:static;box-shadow:none}
/* The bezel remains visible on both page appearances; the inner renderer owns content. */
:root{--preview-bezel:#0a0a0a;--preview-edge:#000}
.mr-scr,.saver-true-preview,.screen-a-preview{box-shadow:0 0 0 5px var(--preview-bezel),0 0 0 6px var(--preview-edge),0 12px 32px #00000073!important;outline:1px solid color-mix(in srgb,var(--label) 14%,transparent);outline-offset:6px}
.saver-true-preview,.screen-a-preview{border:0!important;border-radius:1px!important;background:var(--preview-bezel)!important;margin-block:6px 20px}

.voice-settings>.fe-body{padding-top:var(--page-start)!important;padding-bottom:max(24px,env(safe-area-inset-bottom))!important}
.voice-settings .sh-sub{margin:0 0 12px!important;padding:0!important;text-align:left}
.voice-help{font-size:.8125rem;line-height:1.5;color:var(--label-2);margin:0 0 16px}
.voice-settings .screen-voices{padding:0;gap:0}.voice-settings .vo{min-height:64px;padding:0;border:0;gap:12px}
.voice-settings .vo-pick{display:flex;align-items:center;gap:12px;min-height:64px!important;padding:12px 0}
.voice-settings .vo-pick>span:first-child{min-width:0;flex:1}.voice-settings .vo-pick b{display:block;line-height:1.5}.voice-settings .vo-pick small{display:block;margin-top:4px;line-height:1.25}
.voice-settings .vo.on .vo-pick b::after{display:none}.voice-check{display:grid;place-items:center;flex:none;width:24px;height:24px;color:var(--label)}
.voice-check svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Navigation cues share a secondary tone; alerts keep their semantic state. */
.help-btn:not(.alert),.gl-row>.chev,.help-card>.chev{color:var(--label-2)!important}

.cpg>.cpg-top>.doc-library-add[hidden]{display:none!important}
.doc-library-add{width:44px;height:44px;display:grid;place-items:center;grid-column:3;grid-row:1;border:0;background:none;color:var(--label);padding:0}
.doc-library-add svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cpg.catalog-library>.cpg-top>.capsule{display:none!important}.cpg.catalog-library>.cpg-top{grid-template-columns:44px minmax(0,1fr) 44px!important}
.cpg.catalog-library>.cpg-top>.header-search-control{right:64px!important}.cpg.catalog-library .cpg-r{display:none}
.materials-c-meta.material-section-heading{padding:8px 0 4px!important;min-height:44px}

.my-call-habits>.fe-body{padding-top:var(--page-start)!important}.my-call-habits .sh-sub{margin:0 0 24px!important;text-align:left;padding:0!important}
.habit-setting{margin:0 0 28px}.habit-setting h2{font-size:1rem;line-height:1.5rem;font-weight:550;margin:0 0 12px}
.habit-setting .mini-seg{display:flex;gap:8px;padding:0;background:none;border:0;border-radius:0}
.habit-setting .mini-seg button{flex:1;min-width:64px;min-height:44px;border:0;border-radius:10px;padding:10px 12px;font-size:.9375rem;line-height:1.5rem;background:none;color:var(--label-2);box-shadow:none;text-align:left;white-space:nowrap}
.habit-setting .mini-seg button.on{background:var(--d-soft);color:var(--label);font-weight:600}.habit-setting p{font-size:.8125rem;line-height:1.25rem;color:var(--label-2);margin:8px 0 0}

.my-materials .materials-c-row{width:100%;text-align:left;color:var(--label)}
.my-materials .materials-c-actions{width:24px;height:44px;display:grid;place-items:center;color:var(--label-2)}
.my-materials .materials-c-actions .chev{width:8px!important;height:13px!important;stroke-width:1.8}
.my-materials .materials-c-row .material-main{padding-right:30px!important}.my-materials .materials-c-title{font-weight:550;margin:0}

.material-class-picker .sh-sub{margin:0 0 16px!important;font-size:.8125rem!important;color:var(--label-2);overflow-wrap:anywhere}
.material-class-picker [data-class-list]{margin:0;padding:0}.material-class-picker [data-play-room]{display:flex;gap:14px;padding:16px 0!important;border:0;min-height:84px;text-align:left;color:var(--label)}
.material-class-picker [data-play-room]>.gl-main{flex:1}.material-class-picker [data-play-room]:disabled{opacity:1;color:var(--label-2)}
.material-class-picker [data-play-room]:disabled>.chev{opacity:.3}.class-choice-number{font-size:24px;font-weight:550;font-variant-numeric:tabular-nums}
.class-choice-status{display:inline-block;vertical-align:middle;margin-right:6px;width:6px;height:6px;border-radius:50%;background:var(--label-3)}.class-choice-status.on{background:var(--green,#5d8058)}
.cp-head .cp-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-head .cp-room{flex-shrink:0;min-width:44px;min-height:44px;height:44px;max-width:38%;box-sizing:border-box;padding:0 10px;border-radius:10px}
.cp-head .cp-room b{min-width:0;line-height:1.5rem}.cp-head .cp-room svg{width:12px;height:12px;flex-shrink:0}
:root{--chat-out-bg:color-mix(in srgb,var(--theme-accent) 10%,var(--card));--chat-out-ink:var(--label);--chat-in-bg:var(--card);--chat-in-ink:var(--label)}
html.dark{--chat-out-bg:color-mix(in srgb,var(--theme-accent) 10%,var(--card));--chat-out-ink:color-mix(in srgb,var(--label) 76%,white);--chat-in-ink:color-mix(in srgb,var(--label) 76%,white)}
.tls .tls-row.me .tls-b{background:var(--chat-out-bg)!important;color:var(--chat-out-ink)!important}
.tls .tls-row:not(.me) .tls-b{background:var(--chat-in-bg)!important;color:var(--chat-in-ink)!important}

@media(max-width:350px){.habit-setting #set-hold{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}

.home-utility-list .gl-ic{background:none!important;color:var(--label-2)!important}.home-utility-list .gl-ic svg{width:24px!important;height:24px!important;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.dc .pcf-file .pcf-m,.dc .material-row .material-main{flex:1 1 0;min-width:0;overflow:hidden}
.dc .pcf-file .pcf-go,.dc .material-row>.dc-go{flex:0 0 auto;min-width:52px!important;min-height:44px!important;padding:8px 10px!important;font-size:.8125rem!important;white-space:nowrap;line-height:1.25rem;text-align:right;background:none!important;border-radius:0!important;color:var(--label-2)!important}
.dc .pcf-file .pcf-m small,.dc .material-row .material-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.folder-sorts{display:flex;align-items:center;gap:16px;flex:none}.folder-sorts button{min-height:44px;padding:0;border:0;background:none;border-radius:0;font-size:.8125rem;color:var(--label-2);white-space:nowrap}.folder-sorts button.on{color:var(--label);font-weight:600}
.pcf-bar{gap:12px}.pcf-bar>span{min-width:0;font-size:.75rem;color:var(--label-2)}
@media(max-width:350px){.folder-sorts{gap:12px}.pcf-bar{flex-wrap:wrap}}

/* Screen identity is shared with the outer device entry; class membership stays in class pages. */
.screen-context .unified-mark{background:none!important;color:var(--label-2)!important}
.screen-context small.scr-st{justify-content:flex-start;margin-top:4px;line-height:20px}
.screen-identifier{text-align:center;padding:28px 0 20px;color:var(--label-3);font-size:.8125rem;line-height:1.25rem;font-variant-numeric:tabular-nums;letter-spacing:.04em}
/* Readable phone-sized connectivity, independent of the 1280px classroom renderer. */
.mr-connection{position:absolute;left:8px;top:8px;display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:5px;background:none;color:var(--i);font-size:12px;line-height:18px;white-space:nowrap}
.mr-connection i{width:6px;height:6px;border-radius:50%;flex:none;background:color-mix(in srgb,var(--i) 45%,var(--p))}.mr-connection i.on{background:#3fb950}
/* Recent and all records use the same compact functional icon, not a colored tile. */
html body .hls .hl .hl-av.record-kind-icon{width:40px;height:40px;min-width:40px;align-self:flex-start;margin-top:1px;background:none!important;color:var(--label-2)!important;border:0;border-radius:0;box-shadow:none}
.hl .hl-av.record-kind-icon svg{width:24px!important;height:24px!important;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.saver-cover-fallback{display:grid;place-items:center;width:58px;height:78px;flex:none;border-radius:4px 7px 7px 4px;background:var(--d-soft);color:var(--label-2)}.saver-cover-fallback svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Folder silhouettes share the file visual column, rounded line and secondary ink. */
.dc .pcf-dir .pcf-ic,.dc .pcf-addrow .pcf-ic{width:58px!important;min-width:58px!important;height:44px!important;margin:0!important;background:none!important;color:var(--label-2)!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.dc .pcf-dir .pcf-ic.fd svg,.dc .pcf-dir .pcf-ic.main svg{width:36px!important;height:28px!important;fill:var(--d-soft);stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.dc .pcf-dir .pcf-ic.usb svg,.dc .pcf-addrow .pcf-ic svg{width:28px!important;height:28px!important;fill:none;stroke-width:1.8}

.screen-entry>.screen-context{flex:1;min-width:0;padding:0;pointer-events:none}.screen-entry{min-height:84px!important;gap:12px!important}.screen-entry>.chev{flex:none}.screen-entry .screen-context h2{font-variant-numeric:tabular-nums}

/* Local comparison: restored lower rail ends 17px below the preview; content starts 32px after it. */
.mirror.home .mr-tray{display:block}
#roomMates>.now-h{margin-top:calc(17px + 32px)}

.screen-context>.rt-scr{position:relative;width:72px;height:45px;flex:none;padding:0;margin:0}.screen-context .mw-dot{display:none}

/* Visible navigation marks are quiet; their 44px touch targets remain unchanged. */
:root{--nav-icon-size:20px}
html body :is(.nav-back,.rec-back,.mp-back,.cp-cancel,.atp-x,.tls-back,.me-back,.dx-top>button:first-child)>svg{width:var(--nav-icon-size)!important;height:var(--nav-icon-size)!important;min-width:0;fill:none;stroke:currentColor;stroke-width:1.8!important;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* Colleague class invitations: transparent QR quiet zones and transparent exported art. */
.ui-content-page .iv-tk,.ui-content-page .iv-tk .qr,.inv-qr{background:transparent!important;box-shadow:none!important;border:0!important}.ui-content-page .iv-tk::before,.ui-content-page .iv-tk::after{display:none!important}.ui-content-page .iv-tk .qr{padding:0!important;color:var(--label)}
.inv-img{background:none;box-shadow:none;border-radius:0}html.dark .inv-img.inv-transparent{filter:brightness(0) invert(1)}

.gift-card{position:relative;container-type:inline-size}.gift-card>.invite-layout{position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden;text-align:left;color:#1d1b18}.gift-card .invite-brand{position:absolute;left:6.6667%;top:5.4054%;display:flex;align-items:center;gap:1.6667cqw}.gift-card .invite-brand img{width:5.6667cqw!important;height:5.3333cqw!important;max-height:none}.gift-card .invite-brand b{font:600 4.3333cqw/1.3 -apple-system,"PingFang SC",sans-serif}.gift-card .invite-heading{position:absolute;right:6.6667%;top:6.2%;font:400 2.8333cqw/1.4 -apple-system,"PingFang SC",sans-serif;max-width:58%;text-align:right;color:#70685b}.gift-card .invite-art{position:absolute;left:0;top:12.1622%;width:100%!important;height:auto!important;max-height:none!important;opacity:.58}.gift-card .invite-headline{position:absolute;left:6.6667%;top:46.3%;font:600 7.3333cqw/1.2727 var(--serif);letter-spacing:0}.gift-card .invite-dedication{position:absolute;left:6.6667%;top:62.5%;font:400 3.3333cqw/1.5 -apple-system,"PingFang SC",sans-serif;color:#70685b}.gift-card .invite-state{position:absolute;left:6.6667%;bottom:5.4054%;display:flex;align-items:center;gap:2cqw;max-width:60%;font-size:2.8333cqw;color:#70685b}.gift-card .invite-known-code{position:absolute;left:6.6667%;top:69.5%;display:grid;gap:1.5cqw}.gift-card .invite-known-code small{font-size:2.8333cqw}.gift-card .invite-known-code b{font:600 5.8333cqw/1.2 -apple-system,"PingFang SC",sans-serif}.gift-card .invite-known-qr{position:absolute;right:6.6667%;bottom:5.4054%;width:25.3333%;color:#1d1b18}.gift-card .invite-known-qr svg{display:block;width:100%;height:auto}.class-invite-poster .gift-card{background:transparent;box-shadow:none}.class-invite-poster .code{font-size:1rem}.class-invite-poster .code em{margin-left:8px;font-size:.8125rem}.class-invite-image{background:none!important}html.dark .class-invite-poster .gift-card{filter:brightness(0) invert(1)}

/* Both invitations share one code row, quiet copy actions, and two fixed footer actions. */
.ui-content-page .gift-acts{grid-template-columns:repeat(2,minmax(0,1fr));max-width:300px;width:100%;margin:8px auto 0;gap:20px}.gift-acts button{background:none;border:0;border-radius:0;padding:0;min-height:44px;color:var(--label-2)}.gift-code{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:300px;width:100%;font-size:.8125rem}.gift-code strong{font-size:1rem;white-space:nowrap}.gift-code button{white-space:nowrap;min-height:44px;padding:0;margin:0;font-size:.8125rem}.gift-code.invite-code-loading{min-height:44px;color:var(--label-2)}.ui-content-page .class-invite-poster{gap:0;padding:0;margin:0}.class-invite-poster .gift-card{flex:none;margin-bottom:0}.gift-card .invite-art{left:6.6667%;width:86.6667%!important}.class-invite-poster .code{font-family:inherit;letter-spacing:normal}.class-invite-poster .code strong{font-variant-numeric:tabular-nums;letter-spacing:.08em}

/* Device connectivity uses the same colors on home and the classroom preview. */
:root{--screen-online:#3fb950;--screen-offline:#8a8580}
.cl-list .cl-dot.green,.mr-connection i.on{background:var(--screen-online)}
.cl-list .cl-dot.red,.mr-connection i:not(.on){background:var(--screen-offline)}
/* The class picker is a quiet text action; its full hit target stays intact. */
.cp-head .cp-room{background:none!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding-inline:0!important}

/* Selected display palette borrows the real preview's black bezel. */
.screen-palettes button{container-type:inline-size}
.screen-palettes button.on>span{outline:0!important;box-shadow:0 0 0 1px var(--preview-bezel)!important}
/* Text entry focus stays neutral and follows the page text color. */
html body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),textarea,select):focus{outline:none!important;box-shadow:none!important;caret-color:var(--label)}

/* Device thumbnail and palette thumbnails share a low home indicator. */
.msk:not(.none){background:var(--preview-bezel,#0a0a0a)}
.msk-face{padding-bottom:7%}
.msk-face>.sk-home{position:absolute;left:34%;right:34%;bottom:4px;height:3px;border-radius:3px;background:var(--a);opacity:1}

/* The palette and device identity now render the very same miniWall component. */
.screen-palettes button>.screen-theme-mini{background:none!important;border:0!important;border-radius:8px!important}
.screen-palettes button>.screen-theme-mini::before,.screen-palettes button>.screen-theme-mini::after{content:none!important}
.screen-theme-mini>.msk,.rt-scr>.msk:not(.none){box-shadow:0 0 0 1px var(--preview-edge),0 2px 8px #00000040}

/* Typed content has no extra selected frame or focus fill. */
.rec-q:focus-within,.mt-search:focus-within,.as-new:focus-within,.rs-add:focus-within,.rs-addbar:focus-within,.wl-try:focus-within,.wl-new input:focus,textarea.roster:focus{background:var(--field)!important;box-shadow:none!important}

/* The player and resource covers share the same record markup and visual base. */
.media-record{display:block;position:relative;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle,#202326 0px,#202326 1px,#25292b 2px,#202326 3px)}
.media-record-cover{position:absolute;inset:18%;border-radius:50%;overflow:hidden;background:radial-gradient(ellipse at 30% 20%,color-mix(in srgb,var(--accent) 42%,var(--bg)),transparent 64%),linear-gradient(145deg,var(--fill-2),color-mix(in srgb,var(--accent) 25%,var(--bg)));display:grid;place-items:center}
.media-record-plain .media-record-cover{inset:32%}.media-record-cover img{width:100%;height:100%;object-fit:cover;display:block}
.media-record>i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:2.5%;height:2.5%;border-radius:50%;background:#d9dede80}
html body :is(.material-row.audio .material-cover,.materials-c-row.audio .material-cover,.pcf-ic.audio){width:48px!important;min-width:48px!important;height:48px!important;padding:0!important;margin-inline:5px!important;display:grid!important;place-items:center;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;overflow:visible!important;flex:none}
html body :is(.material-row.audio .material-cover,.materials-c-row.audio .material-cover,.pcf-ic.audio)::after{content:none!important}
html body :is(.material-row.audio .material-cover,.materials-c-row.audio .material-cover,.pcf-ic.audio)>.media-record{width:44px;height:44px;animation:none;box-shadow:0 0 0 1px #77777755}
/* Folder and add actions occupy the same 58px visual column as every resource. */
:is(.dc,.class-materials) .pcf-dir .pcf-ic,:is(.dc,.class-materials) .pcf-addrow .pcf-ic,.material-add .material-cover{width:58px!important;min-width:58px!important;height:44px!important;margin:0!important;background:none!important;color:var(--label-2)!important;border:0!important;box-shadow:none!important;border-radius:0!important}
:is(.dc,.class-materials) .pcf-dir .pcf-ic.fd svg{width:36px!important;height:28px!important;fill:var(--d-soft);stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
:is(.dc,.class-materials) .pcf-addrow .pcf-ic svg,.material-add .material-cover svg{width:24px!important;height:24px!important;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.class-materials .pcf-row{display:flex;align-items:center;gap:14px;padding:14px 0;min-height:80px}.class-materials .pcf-chev{width:8px;height:13px;flex:none;fill:none;stroke:var(--label-3);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* First use: two direct actions, using the same quiet navigation rows. */
.first-class-actions{margin-top:20px;display:flex;flex-direction:column;gap:0}
.first-class-actions>button{display:flex;align-items:center;gap:14px;width:100%;min-height:80px;padding:14px 0;text-align:left;border:0;background:none;color:var(--label)}
.first-class-actions>button>span:not(.unified-mark){flex:1;min-width:0}
.first-class-actions b{display:block;font-size:1rem;line-height:1.5;font-weight:500}
.first-class-actions small{display:block;margin-top:4px;font-size:.8125rem;line-height:1.5;color:var(--label-2)}
.first-class-actions>button>.chev{flex:none;color:var(--label-3)}
.screen-device-summary button.scr-row{width:100%;text-align:left;color:var(--label);border:0;background:none;cursor:pointer}

.first-class-actions .unified-mark svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Classroom selector reuses the call header's quiet text + chevron. */
.cpg.has-class-picker>.cpg-top,.ui-content-page.has-class-picker>.fe-top{grid-template-columns:44px minmax(0,1fr) minmax(44px,38%);gap:8px}
.has-class-picker .class-picker{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:44px;min-height:44px;max-width:100%;padding:0;border:0;background:none;box-shadow:none;color:var(--label);justify-self:end}
.has-class-picker .class-picker b{font-size:.9375rem;line-height:1.5rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.has-class-picker .class-picker svg{width:12px;height:12px;color:var(--label-2);flex:none}
.has-class-picker .cpg-r{display:none}
/* Fixed control geometry keeps the slider underneath the dragging finger as the preview grows. */
.font-page .font-preview-label{font-size:13px;line-height:20px}
.font-page .font-preview{height:240px;min-height:240px;box-sizing:border-box;overflow:auto}
.font-page .font-label b{font-size:16px;line-height:24px}.font-page .font-label [data-font-value]{font-size:13px;line-height:20px}
.font-page .font-choices button,.font-page .font-note{font-size:13px;line-height:20px}
.font-range-wrap{min-height:56px}.font-range{height:56px;touch-action:none}
.font-range::-webkit-slider-runnable-track{height:4px;background:linear-gradient(to right,var(--label) var(--font-progress,0%),var(--fill-2) var(--font-progress,0%))}
.font-range::-webkit-slider-thumb{width:24px;height:24px;margin-top:-10px;box-shadow:0 1px 4px #0002}
.font-range::-moz-range-track{height:4px}.font-range::-moz-range-thumb{width:24px;height:24px}
.font-page>.fe-body{font-size:16px;line-height:24px}.font-page .font-label{font-size:16px;line-height:24px;height:24px}
.font-page{--top-h:56px}

/* Teachers use the shared 16/13px text hierarchy, row spacing and navigation marks. */
.room-teachers{padding-top:0}
.teacher-class{margin:0 0 12px;font-size:var(--fs-footnote);line-height:1.25rem;color:var(--label-2)}
.room-teachers .glist{background:none;border:0;box-shadow:none;border-radius:0}
.room-teachers .gl-row,.teacher-successors .gl-row{min-height:64px;text-align:left}
.room-teachers .teacher-members .gl-row,.teacher-successors .gl-row{min-height:80px}
.room-teachers .gl-main>b,.teacher-successors .gl-main>b{display:block;font-size:var(--fs-body)!important;line-height:1.5rem!important;font-weight:550!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-teachers .gl-main small{font-size:var(--fs-footnote)!important;line-height:1.25rem!important;margin-top:4px!important;color:var(--label-2)!important}
.room-teachers .avatar,.teacher-successors .avatar{width:40px;height:40px;flex:none;font-size:1rem}
.room-teachers .teacher-members .gl-row+.gl-row::before{display:none}
.room-teachers .sect{padding-inline:0;margin-top:24px;font-size:var(--fs-footnote);line-height:1.25rem}
.room-teachers .teacher-class-heading{margin-top:0!important}
.room-teachers .teacher-class-heading .teacher-class{margin:0;color:var(--label-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}
.room-teachers .teacher-actions{margin-top:24px}
.teacher-exit-note{margin:0;font-size:var(--fs-footnote);color:var(--label-3);line-height:1.25rem}
.teacher-successor-page>.fe-body{padding-top:var(--page-start)!important}.teacher-successor-page .teacher-class{margin-bottom:16px}
.teacher-members .gl-tag{display:inline;margin-left:8px;padding:0;background:none;border-radius:0;color:var(--label-3);font-size:var(--fs-footnote);font-weight:400}
/* Class people sections share a 42px group avatar and the same text / arrow alignment. */
#roomMates .rm-mates,#roomStudents .rm-mates{padding:0 0 8px;min-height:64px;width:100%;background:none;border:0;text-align:left;color:var(--label)}
#roomMates .rm-txt,#roomStudents .rm-txt{min-height:44px;align-content:center}
#roomMates .rm-txt b,#roomStudents .rm-txt b{font-size:var(--fs-body);line-height:1.5rem;font-weight:550}
#roomMates .rm-txt small,#roomStudents .rm-txt small{font-size:var(--fs-footnote);line-height:1.25rem}
#roomMates .rm-n,#roomStudents .rm-n{min-width:44px;min-height:44px;justify-content:flex-end}
.rm-student-empty{width:42px;height:42px;border-radius:50%;background:var(--fill-2);display:grid;place-items:center;color:var(--label-2)}
.rm-student-empty svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Getting started uses the home page's quiet 13px actions with 44px hit targets. */
.gs-s .gs-action{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;padding-inline:0!important}
#roomMates .rm-txt .rm-invite-hint{white-space:normal}

.gs>.gs-s{width:100%;text-align:left;background:none;color:var(--label);border-inline:0;border-bottom:0;border-radius:0;cursor:pointer}
.gs>.gs-s:first-of-type{border-top:0}
.gs>.gs-s:active{opacity:.65}
#roomStudents .rm-student-empty{position:relative;background:hsl(var(--h) 45% 88%);color:hsl(var(--h) 40% 34%)}
#roomStudents .rm-student-empty>.gav{position:absolute;inset:0;width:42px;height:42px}

html.dark #roomStudents .rm-student-empty{background:hsl(var(--h) 22% 26%);color:hsl(var(--h) 45% 78%)}

#roomStudents .rm-student-empty .gp{stroke:none}

/* Add badges: canvas-colored separation, matching avatar fill and matching glyph ink. */
.gav .gp{fill:var(--bg);stroke:none;stroke-width:1px}
.gav .gpr{fill:hsl(var(--h) 45% 88%);stroke:none}
.gav .gpl{fill:none;stroke:hsl(var(--h) 40% 34%)}
html.dark .gav .gpr{fill:hsl(var(--h) 22% 26%)}
html.dark .gav .gpl{stroke:hsl(var(--h) 45% 78%)}

/* Class teacher / student circles use tint alone; no outer outline. */
.gav .grim{display:none}

/* Record glyph and two-line text form one vertically centered row. */
.hls .hl{align-items:center}
html body .hls .hl .hl-av.record-kind-icon{height:40px!important;min-height:40px;margin-top:0;align-self:center;align-items:center}
.hls .hl .hl-m{align-self:center}
/* Header → content uses the shared 8px once. Section spacing belongs
   between groups; first-row wrappers must not add a second page-start gap. */
.page>.sect:first-child,.page>.cl-list:first-child,
.page>#mtList:first-child>.sect:first-child,
.page>[data-search-anchor]:first-child+#mtList>.sect:first-child{margin-top:0!important}
.ui-content-page>.fe-body>.sect:first-child,.ui-content-page>.fe-body>.sh-title+.sect{margin-top:0!important}
.ui-content-page>.fe-body>.sh-title+.sh-sub,
.ui-content-page>.fe-body>[data-material-toolbar] .materials-c-tabs{margin-top:0!important}
.page.mates>.gift:first-child{padding-top:0!important}
/* Invitation images always use the light palette paired with the active theme. */
.gift-card,.class-invite-poster .gift-card{background:var(--invite-paper,#F4EFE4)!important;filter:none!important}
html.dark .class-invite-poster .gift-card,html.dark .inv-img.inv-transparent{filter:none!important}
.inv-img.inv-transparent{background:var(--invite-paper,#F4EFE4)}
.gift-card>.invite-layout,.gift-card .invite-known-qr{color:var(--invite-ink,#1F1D1A)}
.gift-card :is(.invite-heading,.invite-dedication,.invite-state,.invite-known-code small){color:var(--invite-muted,#5d574d)}

/* Management actions explain classroom work; destructive action stays at the page end. */
.room-teachers{display:flex;flex-direction:column;min-height:calc(100dvh - var(--top-h) - env(safe-area-inset-top,0px) - 40px)}
.room-teachers>*{flex-shrink:0}
.room-teachers .teacher-delete-actions{margin-top:auto!important;padding-top:32px}
.room-teachers .teacher-delete-row,.room-teachers .teacher-delete-row .gl-main{text-align:center;color:var(--label)}
.room-teachers .teacher-management .gl-main small{white-space:normal;overflow:visible;text-overflow:clip}

.home-utility-list .logo-ic{position:static;width:24px;height:24px;color:var(--label)}

.room-teachers .teacher-delete-row{display:grid!important;place-items:center;width:100%;font-size:var(--fs-body);line-height:1.5rem;font-weight:500}

.cl-av.sup-av{border-radius:50%!important}

.room-screen-state.online{color:#3fb950}.room-screen-state.offline{color:var(--label-3)}

/* Class management follows the same member row geometry. */
#roomSavers .rm-mates{padding:0 0 8px;min-height:64px;width:100%;background:none;border:0;text-align:left;color:var(--label)}
#roomSavers .rm-txt{min-height:44px;align-content:center}
#roomSavers .rm-txt b{font-size:var(--fs-body);line-height:1.5rem;font-weight:550}
#roomSavers .rm-txt small{font-size:var(--fs-footnote);line-height:1.25rem}
#roomSavers .rm-n{min-width:44px;min-height:44px;justify-content:flex-end}
.rm-saver-icon{display:grid;place-items:center;width:42px;height:42px;background:none;color:var(--label-2)}
.rm-saver-icon svg{width:28px;height:28px}
#scrSheet>.screen-appearance-heading{margin-top:8px!important;margin-bottom:8px;padding:0}
.screen-device-summary .scr-row{gap:14px;min-height:76px}
.screen-device-summary .scr-row .unified-mark{flex:none;width:40px;height:40px}
.screen-device-summary .scr-row .gl-main{flex:1;min-width:0}
.screen-device-summary .scr-row .gl-main>b{font-size:var(--fs-body);font-weight:500}
.screen-device-summary .scr-row .scr-st{font-size:var(--fs-footnote);gap:5px;white-space:nowrap}
.screen-device-summary .scr-row .rt-scr{width:72px;height:45px;flex:none}
.screen-device-summary .scr-row .chev{flex:none}
.pc-edit-name{display:block;margin:4px 16px 12px;text-align:left}
.pc-edit-name>span{display:block;font-size:var(--fs-footnote);color:var(--label-3);margin-bottom:4px}
.pc-edit-name input{display:block;width:100%;min-height:48px;padding:8px 0;border:0;background:none;color:var(--label);font:550 1.25rem/1.5 var(--apple-font,inherit)}
.pc-edit-name button{padding:4px 0;color:var(--label-2);font-size:var(--fs-footnote);text-align:left}
.pc-edit-name button[hidden]{display:none}



/* Standard colored navigation tile; the shared screensaver glyph remains 24px. */
.saver-navigation-mark,.navigation-entry>.saver-navigation-mark{--saver-paper:hsl(var(--h) 45% 88%);color:hsl(var(--h) 40% 34%)!important;background:var(--saver-paper)!important;border-radius:11px!important;width:40px!important;min-width:40px!important;height:40px!important}
.saver-navigation-mark svg{width:24px!important;height:24px!important;stroke-width:1.65!important;fill:var(--saver-paper)!important}
html.dark .saver-navigation-mark,.navigation-entry>.saver-navigation-mark{--saver-paper:hsl(var(--h) 22% 26%);color:hsl(var(--h) 45% 78%)!important}
#roomSavers .rm-gw{display:grid;place-items:center}

/* Device settings use plain line icons; the class management tile stays colored. */
.screen-settings-page .saver-navigation-mark,#scrPage .saver-navigation-mark{background:none!important;border-radius:0!important;color:var(--label-2)!important;--saver-paper:var(--bg)}
/* Multi-book screensavers: existing page typography and content-column widths. */
.saver-subject-icon{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;width:40px;height:40px;min-width:40px;border-radius:8px;overflow:hidden;flex:none}
.saver-subject-icon i{display:grid;place-items:center;font:550 12px/20px -apple-system,"PingFang SC",sans-serif;font-style:normal;background:hsl(210 45% 88%);color:hsl(210 40% 34%)}
.saver-subject-icon i:nth-child(2){background:hsl(28 45% 88%);color:hsl(28 40% 34%)}.saver-subject-icon i:nth-child(3){background:hsl(150 45% 88%);color:hsl(150 40% 34%)}.saver-subject-icon i:nth-child(4){background:hsl(40 30% 88%);color:hsl(40 25% 38%)}
.saver-subject-icon svg{width:13.6px!important;height:13.6px!important;fill:none;stroke:currentColor;stroke-linecap:round}
html.dark .saver-subject-icon i{background:hsl(210 22% 26%);color:hsl(210 45% 78%)}html.dark .saver-subject-icon i:nth-child(2){background:hsl(28 22% 26%);color:hsl(28 45% 78%)}html.dark .saver-subject-icon i:nth-child(3){background:hsl(150 22% 26%);color:hsl(150 45% 78%)}html.dark .saver-subject-icon i:nth-child(4){background:hsl(40 16% 26%);color:hsl(40 30% 78%)}
.saver-name{display:block;width:100%;height:50px;border:0;border-bottom:1px solid var(--sep);background:none;outline:none;color:var(--label);font-size:1.25rem;font-weight:550;padding:4px 0;margin-bottom:20px}
.saver-source-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.8125rem;color:var(--label-3);margin:20px 0 4px}.saver-source-heading button{min-height:44px;background:none;color:var(--label);font-size:.8125rem}
.saver-source-row{display:flex;gap:6px;align-items:center}.saver-source-row>.gl-row{flex:1;min-width:0}.saver-remove{display:grid;place-items:center;width:38px;height:44px;flex:none;background:none;color:var(--label-3)}.saver-remove svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.saver-settings .book-cover{width:50px;height:68px;flex:none;object-fit:contain;border-radius:3px}.saver-mosaic{width:40px;height:40px;flex:none;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;align-content:center;border-radius:6px;overflow:hidden}.saver-mosaic .book-cover{width:19px;height:19px;object-fit:cover}.saver-mosaic:has(img:only-child){display:flex;align-items:center;justify-content:center}.saver-mosaic img:only-child{width:28px;height:40px;object-fit:contain}
.saver-settings .gl-row{gap:14px}.saver-settings .gl-row>span:not(.gl-main):last-child{font-size:.8125rem;color:var(--label-3)}.saver-book-tabs{display:flex;gap:24px;margin-bottom:10px}.saver-book-tabs button{background:none;color:var(--label-3);font-size:.875rem;min-height:44px;padding:0}.saver-book-tabs button.on{color:var(--label);font-weight:550}
.saver-range-group{margin-top:12px}.saver-range-group>div:first-child{display:flex;align-items:center;gap:12px}.saver-range-group>div>button{background:none;color:var(--label);min-height:46px;text-align:left}.saver-range-group [data-unit]{flex:1;display:flex;align-items:center;gap:12px;font-size:.9375rem}.saver-range-group small{font-size:.75rem;color:var(--label-3);margin-left:auto}.saver-range-group [data-unit-expand]{font-size:.8125rem;color:var(--label-3)}.saver-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:6px 0 14px}.saver-entry-grid button{border:1px solid var(--sep);border-radius:8px;background:none;min-height:48px;text-align:left;padding:9px;color:var(--label);overflow-wrap:anywhere}.saver-entry-grid button.on{background:var(--fill);border-color:var(--label-3)}.saver-entry-grid b{font-size:.875rem;font-weight:500}.saver-entry-grid small{display:block;font-size:.75rem;margin:3px 0 0}.personal-saver-editor .saver-true-preview{margin:16px 0!important;width:100%}

/* 2026-10-19: search is one compact navigation group; plus retains a 44px target. */
.has-header-search>.header-search-control{left:60px!important;right:68px!important;top:calc((var(--top-h) - 42px)/2)!important;border-radius:24px!important;padding:0 14px!important;align-items:center;background:var(--field,var(--d-soft))!important}
/* Colleagues mount search inside the centered inner row, not the full bar. */
.topbar .in.has-header-search{position:relative}
.topbar .in.has-header-search>.header-search-control{top:50%!important;transform:translateY(-50%)!important}
.topbar #mGift{width:44px;min-width:44px;height:44px;min-height:44px;display:grid;place-items:center;padding:0}
.has-header-search>.unified-nav-action,.has-header-search>.materials-upload-top{position:relative;border-radius:50%!important;isolation:isolate;color:var(--label)!important}
.has-header-search>.unified-nav-action:before,.has-header-search>.materials-upload-top:before{content:'';position:absolute;width:32px;height:32px;border-radius:50%;background:var(--fill);z-index:-1}
.has-header-search>.unified-nav-action svg,.has-header-search>.materials-upload-top svg{width:22px!important;height:22px!important}
.ui-miniapp-page .fe-top.has-header-search>.header-search-control,.cpg-top.has-header-search>.header-search-control{right:116px!important}
.has-header-search>[data-fe-x] svg,.has-header-search .mp-back svg{width:22px!important;height:22px!important}
.saver-mosaic.subjects{width:44px;height:44px;flex:none;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;border-radius:10px;padding:3px;box-sizing:border-box;overflow:hidden;background:var(--fill);color:var(--label)}
.saver-mosaic.subjects i{display:grid;place-items:center;font-size:12px;font-weight:550;line-height:1;font-style:normal;border-radius:3px;background:color-mix(in srgb,var(--theme-accent,var(--label)) 12%,var(--bg));color:var(--label)}
.saver-mosaic.subjects [data-subject=en]{background:color-mix(in srgb,#c0915b 20%,var(--bg))}.saver-mosaic.subjects [data-subject=cn]{background:color-mix(in srgb,#b96d72 18%,var(--bg))}.saver-mosaic.subjects [data-subject=math]{background:color-mix(in srgb,#689c88 20%,var(--bg))}
.saver-mosaic.subjects.mosaic-2 i{grid-row:1/3}.saver-mosaic.subjects.mosaic-3 i:first-child{grid-row:1/3}.saver-mosaic.subjects.mosaic-1 i{grid-area:1/1/3/3}.saver-mosaic.subjects .saver-book-count{background:var(--bg);color:var(--label);font-variant-numeric:tabular-nums}
.saver-entry[aria-readonly=true]{opacity:1;color:var(--label)}
.saver-empty-books{display:flex;align-items:center;gap:16px;text-align:left;width:100%;padding:20px 0;background:none;color:var(--label)}.saver-empty-book{display:grid;place-items:center;width:52px;height:70px;flex:none;border:1px dashed var(--label-3);border-radius:5px;font-size:13px;color:var(--label-2)}.saver-empty-books>span:nth-child(2){flex:1;min-width:0}.saver-empty-books b,.saver-empty-books small{display:block}.saver-empty-books b{font-size:1rem;font-weight:550}.saver-empty-books small{font-size:.8125rem;margin-top:4px;color:var(--label-2)}.saver-empty-books i{font-size:24px;font-style:normal}
.duration-presets{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.duration-presets button{flex:1;min-width:58px;min-height:44px;padding:10px 8px;border-radius:10px;background:var(--fill);color:var(--label-2);font-size:.875rem}.duration-presets button.on{background:var(--label);color:var(--bg)}.duration-custom{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;color:var(--label)}.duration-custom[hidden]{display:none}.duration-custom input{width:120px;min-height:44px;border:0;border-radius:22px;background:var(--field);padding:8px 16px;text-align:right;color:var(--label);font-size:1rem}
.rq-setup .rq-prep-preview:not(:empty){margin-top:16px!important;margin-bottom:24px!important}.rq-setup .rq-prep-head{margin-bottom:16px}
/* Footer actions never split the page with a rule. Screen preview borders are unaffected. */
.fe-footer,.cpg-foot,.dx-foot,.rs-foot,.cp-foot,.tls-foot,.atp-complete,.sh-acts{border-top:0!important;box-shadow:none!important}
@media(hover:none),(pointer:coarse){
 .cl-row:active,.cl-row:hover,.cl-row:focus,.navigation-entry:active,.navigation-entry:hover,.navigation-entry:focus,button.gl-row:active,button.row:active{background-color:transparent!important;box-shadow:none}
 .cl-row,.navigation-entry{-webkit-user-select:none;user-select:none;touch-action:manipulation}
}
/* Search controls that already live in their headers keep their original nodes. */
.rec-in .rec-q{height:42px!important;border-radius:24px!important;padding-inline:14px;background:var(--field)!important}.rec-in .rec-back{margin-right:-4px}
.atp .mt-search{left:60px!important;right:68px!important;height:42px!important;border-radius:24px!important;padding-inline:14px;background:var(--field)!important;top:calc(env(safe-area-inset-top,0px) + (var(--top-h) - 42px)/2)}.atp.pop .mt-search{top:calc((var(--top-h) - 42px)/2)}
.atp-h>.atp-edit,.has-header-search>#mGift{position:relative;background:none!important;border-radius:50%!important;isolation:isolate}
.atp-h>.atp-edit:before,.has-header-search>#mGift:before{content:'';position:absolute;width:32px;height:32px;border-radius:50%;background:var(--fill);z-index:-1}
.atp-h>.atp-edit svg,.has-header-search>#mGift svg{width:22px!important;height:22px!important}
.has-header-search:not(:has(.nav-back,.rec-back,[data-fe-x],.mp-back))>.header-search-control{left:0!important}
.atp-h>.atp-edit{width:44px!important;height:44px!important;min-width:44px!important;flex:none}
.atp .mt-search{left:calc(max(0px,(100% - var(--content-w,720px))/2) + 64px)!important;right:calc(max(0px,(100% - var(--content-w,720px))/2) + 68px)!important}

/* Full canvas, smaller usable content area: keyboard never reveals another route. */
.ui-task-panel:not([data-surface-viewport="layout"]){padding-bottom:var(--surface-inset-bottom,0px)!important;animation:none!important;background-color:var(--bg)}
.teacher-actions .teacher-leave-row{justify-content:center!important;text-align:center!important;color:var(--label)!important;font-size:1rem;font-weight:400}
.duration-custom{position:relative;display:block;width:100%;margin-top:16px;min-height:52px}
.duration-custom input{box-sizing:border-box;width:100%!important;min-height:52px!important;padding:12px 54px 12px 16px!important;text-align:left!important;border-radius:16px!important;appearance:textfield;-moz-appearance:textfield}
.duration-custom input::-webkit-inner-spin-button,.duration-custom input::-webkit-outer-spin-button{appearance:none;margin:0}
.duration-custom .duration-unit{position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--label-2);pointer-events:none}
html body .cpg.has-class-picker>.cpg-top,html body .ui-content-page.has-class-picker>.fe-top{grid-template-columns:44px minmax(32px,1fr) minmax(0,max-content)!important;gap:8px!important}
html body .has-class-picker .class-picker{min-width:0;width:max-content;max-width:100%}
html body .has-class-picker .class-picker b{flex:0 1 auto;font-size:1rem;min-width:0}
.personal-saver-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}

/* Learning catalog / preparation: one inset, no row dividers, no duplicate screen. */
.cpg[data-cap-id="chinese"]>.cpg-body{padding:0!important}
.cpg[data-cap-id="chinese"] .cn{box-sizing:border-box;width:100%;max-width:var(--content-w,720px);margin-inline:auto;padding:var(--page-start) var(--d-edge,16px) 16px}
.cpg[data-cap-id="chinese"] .cn-tabs{margin:0 0 8px!important}
.learning-page>.fe-body{padding:var(--page-start) var(--d-edge,16px) 16px!important}
.learning-picker .learning-row{min-height:72px;padding:14px 0;border:0}
.learning-picker .learning-row::before,.learning-picker .learning-row::after,.learning-picker .cn-row::before,.learning-picker .cn-row::after{display:none!important}
.learning-picker .learning-continue{border:0}
.learning-picker .glist{background:none;box-shadow:none;border:0;border-radius:0}
.learning-picker .sect{padding:0;margin:20px 0 8px}
.learning-picker .learning-book{margin:0!important;padding:12px 0!important;border:0;box-shadow:none;background:none}
.learning-picker .learning-book b{font-size:1.25rem!important;line-height:1.5!important}
.learning-picker .cn-chev{margin:0;flex:none}
.learning-page .cb-row::before,.learning-page .cb-row::after{display:none!important}
.cpg[data-cap-id="chinese"] .cn-tx{padding-top:0;--wb-x:var(--d-edge,16px)}
.cpg[data-cap-id="chinese"] .cn-tx .wb-striprow,.dxh .dx-body.pv .wb-striprow{margin-top:0}
.dxh .dx-body.pv{padding-top:0;--wb-x:var(--d-edge,16px)}
.cpg[data-cap-id="chinese"] .rq-setup{padding-top:0}
.learning-picker .learning-check{border:0;background:none;box-shadow:none;border-radius:0;color:var(--label)}
.learning-picker .learning-check.on{border:0;background:none}
.learning-picker .learning-check.on::after{color:currentColor;font-size:20px}
.cpg .cn-tools{border-top:0!important}
.dx-answer-pages{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-size:var(--fs-footnote);color:var(--label-2)}
.dx-answer-pages button{min-height:44px;min-width:80px;padding:8px 0;border:0;background:none;color:var(--label);font-size:var(--fs-body)}
.dx-answer-pages span{font-variant-numeric:tabular-nums;text-align:center}
.dx-ans [hidden]{display:none!important}
/* Recitation preparation shares the quiet word-preparation hierarchy. */
.cpg[data-cap-id="chinese"] .rq-prep-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;margin:0 0 12px}
.rq-prep-summary{min-width:0;flex:1}.rq-prep-summary>b{display:block;font-size:1rem;line-height:1.5;font-weight:600}.rq-prep-summary>b>span{margin-left:8px;font-size:.8125rem;font-weight:400;color:var(--label-2)}
.rq-prep-summary>small{display:block;font-size:.8125rem;line-height:1.5;color:var(--label-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.rq-prepared-questions{display:grid;gap:24px;padding-top:8px!important}
.rq-prepared-question{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:start}
.rq-question-no,.rq-clause-no{font:500 .8125rem/1.8 -apple-system,sans-serif;font-variant-numeric:tabular-nums;color:var(--label-3)}
.rq-question-line{font:400 1.125rem/2 "Kaiti SC","STKaiti","KaiTi",serif;overflow-wrap:anywhere}
.rq-question-blanks{display:inline;line-height:2}.rq-question-blanks>i{display:inline-block;width:1em;height:1.25em;vertical-align:-.1em;border-bottom:1px solid var(--label-2);margin:0 2px 0 0}
.rq-question-answer{color:var(--label-2);font:400 .875rem/1.7 "Kaiti SC","STKaiti","KaiTi",serif;margin-top:6px}
.rq-question-answer:before{content:'答案 · ';font:400 .75rem/1.7 -apple-system,sans-serif;color:var(--label-3)}
.rqz .rq-prepared-blank{color:var(--label-3);border-bottom:1px solid var(--label-2);border-radius:0!important;background:none!important;box-shadow:none!important}
.rqz .rq-clause-no{position:relative;top:0;align-self:end;font-size:.6875rem;margin-right:4px;vertical-align:baseline}
.rq-prep-reference .cl.selected{background:none;border-radius:0}
.rq-prep-reference .rqz .qs{margin-bottom:20px}
.rq-prep-settings .gl-row{padding-inline:0;border:0}.rq-prep-settings .gl-row::before,.rq-prep-settings .gl-row::after{display:none!important}
.rq-prep-range:empty{display:none}.rq-prep-range:not(:empty){margin:0 0 20px}
.rq-range-heading{display:flex;align-items:center;justify-content:space-between;min-height:40px;font-size:.8125rem;color:var(--label-2)}
.rq-range-heading b{font-weight:500}.rq-range-heading button{min-height:44px;background:none;border:0;color:var(--link);font-size:.8125rem}
.rq-range-options{display:flex;flex-wrap:wrap;gap:4px 20px}.rq-range-options button{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 0;background:none;border:0;color:var(--label-2);font-size:1rem;text-align:left}
.rq-range-options button[aria-pressed="true"]{color:var(--label)}.rq-range-options i{font-style:normal;width:18px;text-align:center}
.rq-prep-settings:not(:empty){margin:0 0 16px}.rq-prep-settings .cn-set{margin:0;border:0;background:none;box-shadow:none}
.rq-prep-settings .gl-row{display:flex;gap:12px;align-items:center;min-height:44px;padding:0!important}
.rq-prep-settings .gl-main{flex:1;min-width:0}.rq-prep-settings .gl-main b{font-size:.8125rem;font-weight:400;color:var(--label-2)}
.rq-prep-settings .mini-seg{display:flex;gap:16px;background:none;padding:0;border:0;box-shadow:none}
.rq-prep-settings .mini-seg button{position:relative;min-height:44px;padding:6px 0;border:0;border-radius:0;background:none;color:var(--label-2);font-size:.875rem;white-space:nowrap;box-shadow:none}
.rq-prep-settings .mini-seg button.on{background:none;color:var(--label);font-weight:600;box-shadow:none}
.rq-prep-settings .mini-seg button.on:after{content:'';position:absolute;bottom:3px;left:calc(50% - 6px);width:12px;height:2px;border-radius:2px;background:currentColor}
/* Preparation and the in-progress phone list share DictUI's compact blocks.
   Only preparation binds selection; classroom Chinese animation is independent. */
.cpg .wb-foot-tools,.cpg .wb-tools,.cpg .rq-mode-tools,.cpg .cn-acts{border-top:0!important;box-shadow:none!important}
.rq-setup[data-mode="fill"] .rq-clause-no,.rq-setup[data-mode="fill"] .rq-prepared-blank{color:var(--link);border-color:var(--link)}
.cpg .rk-tools{border-top:0!important;box-shadow:none!important}
.rq-setup[data-mode="fill"] .cl.selected{outline-color:var(--link)}
.rq-question-blanks{display:inline-flex;flex-wrap:wrap;max-width:100%;vertical-align:baseline}

/* Chinese words and recitation share the same two-line catalog row. */
.cn.learning-picker .cn-row{min-height:72px!important;padding:16px 0!important;gap:12px;color:var(--label)}
.cn.learning-picker .cn-row>.cn-no{width:24px;font-size:.9375rem;font-weight:700;color:var(--label-2);text-align:center}
.cn.learning-picker .cn-row>.cn-no.yd{font-size:.75rem;font-weight:600}
.cn.learning-picker .cn-main{display:grid;gap:1px}
.cn.learning-picker .cn-main>b{font-family:inherit;font-size:1rem;font-weight:600;line-height:1.5rem;color:var(--label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn.learning-picker .cn-main>small{font-family:inherit;font-size:.8125rem;line-height:1.25rem;color:var(--label-3);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn.learning-picker .cn-word-check::after{display:none!important}
.cn.learning-picker .cn-word-check{width:24px;height:24px;font:600 20px sans-serif;color:var(--label);border:0;background:none}
.cpg .cn-lesson-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cn-lesson-actions>.rk-k{width:100%;min-width:0}

.cpg .cn-lesson-actions.single{grid-template-columns:minmax(0,1fr)}

/* Shared selection check: same round-ended vector as the voice selector. */
.learning-check svg,.cn-word-check svg,.learning-page .cb-row u svg,.rq-range-options i svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.learning-page .cb-row u{display:grid;place-items:center;min-width:24px}
.rq-range-options i{display:grid;place-items:center;width:24px;height:24px}
.learning-page .cn-add-lessons{padding:0;margin:0;max-width:none}.cn-add-lessons .cnx-ls{padding:0;margin:0;border:0;border-radius:0}

/* Teacher controls: one sizing contract, reused by existing page components.
   Heights are minima so large type or a wrapped label never gets clipped.
   Navigation, text links, selection tiles and media canvases keep their roles. */
.ui-pill,.fe-action,.sh-acts button,.btn-lg,.btn-sm,.gift-btn,.ink-btn,.ink-ghost,
.ui-retry,.unified-empty>button,.dl-add,.rm-add,.duration-presets button,
.cpg .rk-k,.cpg .dc-k,.cpg .cn-act,.cpg .dc-primary,.atp-complete button,
.cp-pill,.cmp-quick button,.cpg .dx-pill,.cpg .dx-recent button,.cpg .wb-strip button {
  --action-height:var(--control-md);--action-font:var(--fs-body);
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  gap:8px;min-height:var(--action-height)!important;height:auto!important;
  padding:8px 16px!important;border-radius:var(--radius-pill)!important;
  font-size:var(--action-font)!important;line-height:1.5!important;font-weight:600;
  text-align:center;vertical-align:middle;
}
.ui-pill[data-size="sm"],.btn-sm,.gift-btn,.dl-add,.rm-add,.duration-presets button,
.cp-pill,.cmp-quick button,.cpg .dx-pill,.cpg .dx-recent button,.cpg .wb-strip button {
  --action-height:var(--control-sm);--action-font:var(--fs-footnote);
}
.ui-pill[data-size="lg"],.ink-btn,.ink-ghost{--action-height:var(--control-lg)}
.ui-pill svg,.fe-action svg,.btn-lg svg,.btn-sm svg,.gift-btn svg,.ui-retry svg {
  width:20px;height:20px;flex:none;
}
.ui-pill{border:0;background:var(--fill);color:var(--label)}
.ui-pill[data-variant="primary"]{background:var(--accent);color:var(--on-accent)}
.ui-pill[data-variant="outline"]{background:none;box-shadow:inset 0 0 0 1px var(--sep)}
.ui-pill:disabled,.ui-pill[aria-disabled="true"]{opacity:.38;cursor:default}
.ui-pill:not(:disabled):active{opacity:.72}
.ui-pill[hidden]{display:none!important}

/* Related text uses 8px; independent sections and page edges use 16px.
   The outer surface owns insets once, including bottom safe-area space. */
.ui-content-page>.fe-body>.sh-sub:first-child{margin-top:0!important}
.ui-content-page>.fe-body>.sh-title+.sh-sub{margin-top:0!important}
.ui-content-page>.fe-body>.glist:first-child{margin-top:0!important}
.sheet>.sh-title,.sheet>.sh-sub,.sheet>.sh-acts{padding-inline:0}
.sheet>.sh-title{padding-top:0}
.sheet>.sh-acts{gap:16px;padding-bottom:0}
.font-preview-label,.font-label{margin-bottom:8px}
.font-label,.screen-palettes,.material-section-heading,.my-materials [data-material-list],
.saver-book-tabs,.saver-source-heading,.rq-prepared-questions{gap:16px}
.my-materials [data-material-list]{margin-top:16px}
.my-call-habits .sh-sub{margin:0 0 16px!important}
.personal-saver-editor .glist{margin-top:16px}
.saver-source-heading{margin-top:16px}
.saver-name{margin-bottom:16px}
.rq-prep-range:not(:empty){margin-bottom:16px}
.learning-picker .sect{margin-top:16px}
.cpg .dx-body{padding-inline:max(var(--page-x),calc((100% - var(--content-w))/2 + var(--page-x)))}
.cpg .dx-body.pv{padding-top:var(--page-start)}
.voice-settings>.fe-body{padding-bottom:16px!important}
.ui-content-page .sh-body{padding:0}
.ui-content-page .sh-note{margin:0 0 16px}
.ui-content-page .sh-in{display:block;min-height:var(--control-md)!important;padding:8px 16px!important;margin-top:16px}
.ui-content-page .sh-body>.sh-in:first-child,.ui-content-page .sh-note+.sh-in{margin-top:0}
.ui-content-page .pc-name{margin:0 0 16px}
.ui-content-page #scrSheet>.sect:first-child,.ui-content-page #scrSheet>.screen-a-body>.sect:first-child{margin-top:0!important}
.ink-f{border-radius:12px}

.cpg .cn-lesson-actions.listening{grid-template-columns:repeat(3,minmax(0,1fr))}.cpg .cn-lesson-actions.listening.single{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Navigation edges refer to the icon box, not the invisible 44px hit area.
   Leading targets extend inward; trailing targets extend inward from the right.
   Text actions and the visible miniapp capsule already use the 16px column edge. */
html body :is(.topbar .nav-back,.topbar .rec-back,.cpg .mp-back,.cp-head>.cp-cancel,
  .atp-h>.atp-x,.nc-top>.nav-back,.tls-top>.tls-back,.dx-top>button:first-child) {
  justify-content:flex-start!important;justify-items:start!important;
}
html body .cpg .mp-back.bl svg{margin-left:0!important}
html body .topbar :is(.nav-act,.nav-act.plain){
  width:44px;height:44px;min-width:44px;margin-right:0;padding:0;
  display:flex;align-items:center;justify-content:flex-end;
}
html body .topbar .nav-act svg{width:var(--nav-icon-size);height:var(--nav-icon-size)}
html body .nc-top>:is(.unified-nav-action,.materials-upload-top),
html body .atp-h>.atp-edit{justify-items:end;padding:0}
/* Filled circular controls keep their visible 32px circle within the column. */
html body .has-header-search>:is(.unified-nav-action,.materials-upload-top):before,
html body .atp-h>.atp-edit:before{right:0}
html body .has-header-search>:is(.unified-nav-action,.materials-upload-top) svg,
html body .atp-h>.atp-edit svg{margin-right:5px}


/* User-confirmed list rhythm: 16px above and below each item. */
.row,.gl-row,.hl,.cl-row,.material-row,.materials-c-row,.pcf-row,.bk-row,
.pc-book,.cb-row,.saver-book-row,.learning-row,.cn-row{height:auto;padding-block:16px!important}
.room-teachers .gl-row,.teacher-successors .gl-row,
.room-teachers .teacher-members .gl-row,.first-class-actions>button,
.class-materials .pcf-row,.voice-settings .vo-pick{padding-block:16px!important}
.cpg .cn-lesson-actions.listening{grid-template-columns:repeat(3,minmax(0,1fr))}.cpg .cn-lesson-actions.listening.single{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Mini-app chrome retains its compact 32px visual height. */
:root{--miniapp-pill-height:32px}
.cpg .dx-pill,.cpg .wb-strip button{--action-height:var(--miniapp-pill-height);min-height:var(--miniapp-pill-height)!important;height:var(--miniapp-pill-height)!important;padding-block:4px!important}
.cpg :is(.rk-on,.cn-status){min-height:var(--miniapp-pill-height);display:inline-flex;align-items:center;box-sizing:border-box}
.tbar [data-bar="ppt"]>i svg{width:28px!important;height:28px!important}
/* 选课本：导航栏下第一行内容 8px */
.book-picker .bk-stage{margin-top:0!important}
/* 全部能力：和标准列表一致——40px 图标贴 16px 边距，上下 16px，16/13px 文字 */
.dl-list .dl-m{padding:16px 0!important;gap:16px!important}
.dl-list .dl-m>i{width:40px!important;height:40px!important;border-radius:12px!important}
.dl-list .dl-m b{font-size:1rem!important;line-height:1.5rem!important;font-weight:600!important}
.dl-list .dl-m small{font-size:.8125rem!important;line-height:1.25rem!important;margin-top:0!important}
