/* TickTockMaths Creator 2 — alpha 1 shell */
:root{--creator-ribbon-h:116px;--creator-tab-h:34px}
body.creator2-ready header{height:48px;padding:0 16px;gap:12px}
body.creator2-ready header .header-label{font-size:.76rem;letter-spacing:.06em}
body.creator2-ready header .teach-btn,
body.creator2-ready header .download-menu-wrap,
body.creator2-ready header>.download-btn,
body.creator2-ready header>.import-btn,
body.creator2-ready header>#pptx-file-input{display:none!important}
body.creator2-ready .main{height:calc(100vh - 48px - var(--creator-ribbon-h))}
body.creator2-ready .bottom-strips{display:none}
body.creator2-ready .slide-counter,body.creator2-ready .slide-nav-label{font-family:'Noto Sans',sans-serif}

.creator-ribbon{height:var(--creator-ribbon-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;user-select:none}
.creator-tabs{height:var(--creator-tab-h);display:flex;align-items:flex-end;padding:0 14px;gap:3px;border-bottom:1px solid var(--border)}
.creator-tab{height:33px;padding:0 15px;border:0;border-bottom:3px solid transparent;background:transparent;font:700 .75rem 'Noto Sans',sans-serif;color:#666;cursor:pointer;border-radius:5px 5px 0 0;letter-spacing:.025em}
.creator-tab:hover{background:var(--bg);color:var(--text)}
.creator-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-light)}
.creator-tab:focus-visible,.ribbon-command:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.creator-panels{height:calc(var(--creator-ribbon-h) - var(--creator-tab-h));overflow:hidden}
.creator-panel{height:100%;display:none;align-items:stretch;padding:6px 12px 5px;gap:8px;overflow-x:auto;overflow-y:hidden}
.creator-panel.active{display:flex}
.ribbon-group{display:flex;align-items:stretch;gap:3px;padding:0 9px 14px 0;border-right:1px solid var(--border);position:relative;flex-shrink:0}
.ribbon-group:last-child{border-right:0}
.ribbon-group-label{position:absolute;bottom:0;left:0;right:9px;text-align:center;font-size:.59rem;font-weight:600;color:var(--muted);white-space:nowrap}
.ribbon-command{min-width:58px;height:62px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-family:'Noto Sans',sans-serif;cursor:pointer;padding:4px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative}
.ribbon-command:hover{background:var(--accent-light);border-color:#d6e1f3}
.ribbon-command:active{transform:translateY(1px)}
.ribbon-command svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ribbon-command .cmd-label{font-size:.67rem;font-weight:650;line-height:1.05;text-align:center;white-space:nowrap}
.ribbon-command.large{min-width:70px}
.ribbon-command.primary{color:var(--accent)}
.ribbon-command.ai{color:#68439a}
.ribbon-command[disabled]{opacity:.38;cursor:not-allowed}
.ribbon-command[disabled]:hover{background:transparent;border-color:transparent}

/* Mini slide-type pictures: deliberately diagrammatic rather than generic icons. */
.slide-thumb{width:36px;height:27px;border:1.5px solid currentColor;border-radius:3px;position:relative;background:#fff;color:var(--accent);overflow:hidden;flex:none}
.slide-thumb:before,.slide-thumb:after{content:'';position:absolute;background:currentColor;opacity:.72;border-radius:1px}
.slide-thumb.title:before{left:7px;right:7px;top:7px;height:3px}.slide-thumb.title:after{left:11px;right:11px;top:14px;height:2px;opacity:.35}
.slide-thumb.epp:before{left:3px;top:5px;width:13px;height:16px;border:1px solid currentColor;background:transparent}.slide-thumb.epp:after{right:3px;top:5px;width:13px;height:16px;border:1px dashed currentColor;background:transparent}
.slide-thumb.qs:before{left:5px;right:5px;top:6px;height:2px;box-shadow:0 5px 0 currentColor,0 10px 0 currentColor}.slide-thumb.qs:after{width:3px;height:3px;left:2px;top:5px;box-shadow:0 5px 0 currentColor,0 10px 0 currentColor}
.slide-thumb.mwb:before{width:9px;height:9px;border:2px solid currentColor;background:transparent;border-radius:50%;left:12px;top:5px}.slide-thumb.mwb:after{width:8px;height:2px;left:13px;bottom:5px}
.slide-thumb.mc:before{left:4px;right:4px;top:4px;height:2px}.slide-thumb.mc:after{left:5px;top:10px;width:10px;height:5px;border:1px solid currentColor;background:transparent;box-shadow:14px 0 0 -1px white,14px 0 0 0 currentColor,0 8px 0 -1px white,0 8px 0 0 currentColor,14px 8px 0 -1px white,14px 8px 0 0 currentColor}
.slide-thumb.grid4:before{inset:4px;background:linear-gradient(90deg,transparent 47%,currentColor 47%,currentColor 53%,transparent 53%),linear-gradient(transparent 47%,currentColor 47%,currentColor 53%,transparent 53%);opacity:.55}.slide-thumb.grid4:after{display:none}
.slide-thumb.grid9:before{inset:4px;background:linear-gradient(90deg,transparent 31%,currentColor 31%,currentColor 35%,transparent 35%,transparent 65%,currentColor 65%,currentColor 69%,transparent 69%),linear-gradient(transparent 31%,currentColor 31%,currentColor 35%,transparent 35%,transparent 65%,currentColor 65%,currentColor 69%,transparent 69%);opacity:.55}.slide-thumb.grid9:after{display:none}
.slide-thumb.exam:before{left:5px;right:5px;top:5px;height:2px;box-shadow:0 5px 0 currentColor,0 10px 0 currentColor}.slide-thumb.exam:after{content:'[4]';background:transparent;right:2px;bottom:1px;font:600 5px 'Noto Sans';opacity:.8}
.slide-thumb.graph:before{left:6px;bottom:4px;width:1px;height:18px;box-shadow:11px 0 0 rgba(42,92,170,.18),22px 0 0 rgba(42,92,170,.18)}.slide-thumb.graph:after{left:3px;bottom:7px;width:28px;height:12px;background:transparent;border-bottom:2px solid currentColor;transform:skewY(-22deg);border-radius:50%}

/* TTM tooltip system — useful descriptions, not duplicated labels. */
.ribbon-command[data-tooltip]:after{content:attr(data-tooltip);position:fixed;z-index:5000;max-width:260px;padding:7px 9px;border-radius:6px;background:#222;color:#fff;font:400 .72rem/1.35 'Noto Sans',sans-serif;box-shadow:0 3px 12px rgba(0,0,0,.22);pointer-events:none;opacity:0;transform:translate(-50%,6px);transition:opacity .12s,transform .12s;white-space:normal;text-align:left}
.ribbon-command.tooltip-open:after{opacity:1;transform:translate(-50%,0)}
@media(max-width:800px){:root{--creator-ribbon-h:124px}.creator-tab{padding:0 11px}.ribbon-command{min-width:64px;height:68px}.creator-panel{padding-left:8px;padding-right:8px}}


/* TickTockMaths Creator 2 — alpha 2 context + taxonomy */
.ribbon-command:disabled,
.ribbon-command[aria-disabled="true"]{opacity:.34;cursor:not-allowed;filter:grayscale(.65)}
.ribbon-command:disabled:hover{background:transparent;border-color:transparent}
.math-thumb{width:42px;height:38px;display:flex;align-items:center;justify-content:center;font-family:'Noto Sans',sans-serif;font-size:28px;font-weight:600;line-height:1;color:currentColor}
.math-thumb.frac{flex-direction:column;gap:2px}
.math-thumb.frac i{font-style:normal;font-size:11px;width:25px;text-align:center}
.math-thumb.frac i:first-child{border-bottom:2px solid currentColor;padding-bottom:2px}
.math-thumb.root{font-family:Georgia,serif;font-size:30px}
.math-thumb.root i{font-family:'Noto Sans',sans-serif;font-style:normal;font-size:11px;border-top:2px solid currentColor;padding:2px 5px 0}
.math-thumb.power sup,.math-thumb.power sub{font-size:11px;margin-left:2px}
.math-thumb.symbol{font-size:31px}
.creator-more-menu{display:none;position:fixed;z-index:5000;width:310px;padding:7px;background:#fff;border:1px solid var(--border,#e2e0d8);border-radius:9px;box-shadow:0 12px 30px rgba(24,35,52,.18)}
.creator-more-menu.open{display:block}
.creator-more-menu button{width:100%;border:0;background:transparent;border-radius:6px;padding:8px 10px;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;font-family:'Noto Sans',sans-serif;color:var(--text,#1a1916)}
.creator-more-menu button:hover{background:var(--accent-light,#eef2fa)}
.creator-more-menu strong{display:block;font-size:.82rem}
.creator-more-menu small{display:block;margin-top:1px;color:var(--muted,#8a8780);font-size:.69rem;line-height:1.3}
.creator-more-menu .slide-thumb.mini{width:36px;height:27px;flex:0 0 36px}


/* Creator 2 alpha 3 — canonical modal language */
.ttm-creator-modal-overlay{
  position:fixed !important;inset:0 !important;z-index:6000 !important;
  align-items:center !important;justify-content:center !important;
  padding:24px !important;background:rgba(26,25,22,.42) !important;
  backdrop-filter:blur(2px);
}
.ttm-creator-modal{
  background:var(--surface,#fff) !important;color:var(--text,#1a1916) !important;
  border:1px solid var(--border,#e2e0d8) !important;border-radius:10px !important;
  box-shadow:0 18px 55px rgba(26,25,22,.22) !important;
  font-family:'Noto Sans',sans-serif !important;overflow:hidden !important;
}
.ttm-creator-modal--medium{width:min(760px,96vw) !important}
.ttm-creator-modal--wide{width:min(980px,96vw) !important}
.ttm-creator-modal__header{
  min-height:72px;padding:16px 20px;border-bottom:1px solid var(--border,#e2e0d8);
  display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;
}
.ttm-creator-modal__header h2{margin:0;font-size:1rem;font-weight:750;letter-spacing:-.01em}
.ttm-creator-modal__header p{margin:3px 0 0;color:var(--muted,#8a8780);font-size:.78rem}
.ttm-creator-modal__close{
  width:38px;height:38px;border:1px solid var(--border,#e2e0d8);border-radius:7px;
  background:#fff;color:var(--muted,#8a8780);font-size:1.35rem;line-height:1;cursor:pointer;
}
.ttm-creator-modal__close:hover{background:var(--bg,#f7f6f2);color:var(--text,#1a1916)}
.ttm-creator-modal__body{padding:20px;min-height:0}
.ttm-creator-modal__footer{
  padding:12px 20px;border-top:1px solid var(--border,#e2e0d8);
  display:flex;justify-content:flex-end;gap:8px;background:#fff;
}
.ttm-modal-btn{
  min-height:40px;padding:8px 16px;border:1px solid var(--border,#e2e0d8);
  border-radius:7px;background:#fff;color:var(--text,#1a1916);font:650 .82rem 'Noto Sans',sans-serif;cursor:pointer;
}
.ttm-modal-btn:hover{background:var(--bg,#f7f6f2)}
.ttm-modal-btn--primary{border-color:var(--accent,#2a5caa);background:var(--accent,#2a5caa);color:#fff}
.ttm-modal-btn--primary:hover{background:#234f94}
.ttm-field{display:flex;flex-direction:column;gap:6px;font-size:.78rem;font-weight:650;color:#555}
.ttm-field input,.ttm-field select{
  width:100%;box-sizing:border-box;min-height:42px;padding:8px 10px;
  border:1px solid var(--border,#e2e0d8);border-radius:7px;background:#fff;
  color:var(--text,#1a1916);font:500 .9rem 'Noto Sans',sans-serif;outline:none;
}
.ttm-field input:focus,.ttm-field select:focus{border-color:var(--accent,#2a5caa);box-shadow:0 0 0 3px var(--accent-light,#eef2fa)}
.ttm-field small{font-weight:400;color:var(--muted,#8a8780);line-height:1.35}
.ttm-field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ttm-modal-note{padding:10px 12px;border:1px solid var(--border,#e2e0d8);border-radius:7px;background:var(--bg,#f7f6f2);font-size:.75rem;line-height:1.45;color:var(--muted,#8a8780)}
.ttm-graph-sketch-layout{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:22px}
.ttm-creator-modal__controls{display:flex;flex-direction:column;gap:14px}
.ttm-creator-modal__preview{min-width:0}
.ttm-creator-modal__preview-label{margin-bottom:7px;font-size:.75rem;font-weight:700;color:#555}
.ttm-graph-preview{height:270px;border:1px solid var(--border,#e2e0d8);border-radius:8px;overflow:hidden;background:#fff}
.ttm-graph-preview svg{display:block;width:100%;height:100%}
#graph-sketch-source{display:block;margin-top:8px;padding:8px 10px;border-radius:6px;background:var(--bg,#f7f6f2);color:#555;font:500 .76rem 'DM Mono',monospace;white-space:pre-wrap}

/* Bring the two biggest legacy builders into the same shell immediately.
   Their internal tools remain untouched for now. */
#shape-modal-overlay,#geo-modal-overlay{background:rgba(26,25,22,.42) !important}
#shape-modal,#geo-modal{border:1px solid var(--border,#e2e0d8) !important;border-radius:10px !important;box-shadow:0 18px 55px rgba(26,25,22,.22) !important}
#shape-modal>div:first-child,#geo-modal>div:first-child{background:#fff !important;border-bottom:1px solid var(--border,#e2e0d8) !important;min-height:48px}
#shape-modal>div:last-child,#geo-modal>div:last-child{background:#fff !important;border-top:1px solid var(--border,#e2e0d8) !important}
#shape-modal button,#geo-modal button{font-family:'Noto Sans',sans-serif !important}
.slide-thumb.regular:before{content:"";position:absolute;left:7px;right:7px;top:8px;height:2px;background:currentColor;box-shadow:0 6px 0 currentColor,0 12px 0 currentColor}
.slide-thumb.regular:after{display:none}

@media(max-width:760px){
  .ttm-creator-modal-overlay{padding:8px !important}
  .ttm-graph-sketch-layout{grid-template-columns:1fr}
  .ttm-graph-preview{height:220px}
}

#graph-sketch-overlay{display:none}

/* Creator 2 alpha 4 — semantic graph sketch builder */
.ttm-sketch-preview{height:360px;display:flex;align-items:center;justify-content:center;background:#fff}
.ttm-sketch-preview canvas{display:block;width:100%;height:100%;max-width:760px}
.ttm-switch-row{display:flex;align-items:flex-start;gap:10px;padding:10px 11px;border:1px solid var(--border,#e2e0d8);border-radius:7px;background:#fff;cursor:pointer}
.ttm-switch-row input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--accent,#2a5caa);flex:0 0 auto}
.ttm-switch-row span{display:flex;flex-direction:column;gap:2px;font-size:.78rem}
.ttm-switch-row strong{font-weight:650}
.ttm-switch-row small{font-weight:400;color:var(--muted,#8a8780);line-height:1.3}
.ttm-field span em{font-style:normal;font-weight:400;color:var(--muted,#8a8780)}
.sketch-type-fields{display:flex;flex-direction:column;gap:12px}
.sketch-type-fields[hidden]{display:none}
.ttm-sketch-advanced{border-top:1px solid var(--border,#e2e0d8);padding-top:10px}
.ttm-sketch-advanced summary{cursor:pointer;font-size:.78rem;font-weight:700;color:#555;user-select:none}
.ttm-sketch-advanced__body{display:flex;flex-direction:column;gap:12px;padding-top:12px}

/* Creator 2 alpha 5 — per-root controls */
.ttm-root-editor{display:flex;flex-direction:column;gap:8px}
.ttm-root-editor__heading{display:grid;grid-template-columns:1fr 76px;gap:10px;align-items:end;color:#555;font-size:.78rem}
.ttm-root-editor__heading span{text-align:center;color:var(--muted,#8a8780);font-weight:600}
.ttm-root-row{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:10px;align-items:end}
.ttm-root-label-toggle{min-height:42px;display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--border,#e2e0d8);border-radius:7px;background:#fff;cursor:pointer;font-size:.72rem;font-weight:650;color:#555}
.ttm-root-label-toggle input{width:17px;height:17px;margin:0;accent-color:var(--accent,#2a5caa)}

.ttm-value-label-row{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:10px;align-items:end}

/* Creator 2 alpha 7 — Shape Builder */
.ttm-shape-builder{width:min(1120px,96vw)!important}
.ttm-shape-layout{display:grid;grid-template-columns:minmax(360px,430px) minmax(0,1fr);gap:24px;max-height:min(720px,76vh);overflow:hidden}
.ttm-shape-controls{overflow:auto;padding-right:4px}
.ttm-shape-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:14px}
.ttm-shape-choice{min-height:76px;padding:8px 5px;border:1px solid var(--border,#e2e0d8);border-radius:8px;background:#fff;color:#555;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;font:650 .68rem 'Noto Sans',sans-serif}
.ttm-shape-choice:hover{background:var(--bg,#f7f6f2)}
.ttm-shape-choice.is-active{border-color:var(--accent,#2a5caa);background:var(--accent-light,#eef2fa);color:var(--accent,#2a5caa);box-shadow:inset 0 0 0 1px var(--accent,#2a5caa)}
.ttm-shape-icon{width:31px;height:25px;display:block;position:relative;color:currentColor}
.ttm-shape-icon:before,.ttm-shape-icon:after{content:"";position:absolute;box-sizing:border-box}
.shape-circle:before{width:25px;height:25px;border:2px solid currentColor;border-radius:50%;left:3px}
.shape-annulus:before{width:27px;height:27px;border:2px solid currentColor;border-radius:50%;left:2px;top:-1px}.shape-annulus:after{width:13px;height:13px;border:2px solid currentColor;border-radius:50%;left:9px;top:6px}
.shape-sector:before{width:26px;height:26px;border:2px solid currentColor;border-radius:50% 0 0 0;clip-path:polygon(0 0,100% 0,0 100%);left:3px}
.shape-triangle:before{width:29px;height:25px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:skew(-28deg);left:6px}
.shape-rectangle:before{width:30px;height:20px;border:2px solid currentColor;left:1px;top:3px}.shape-square:before{width:23px;height:23px;border:2px solid currentColor;left:4px;top:1px}
.shape-trapezium:before{width:27px;height:21px;border:2px solid currentColor;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);background:transparent;left:2px;top:2px}
.shape-parallelogram:before{width:27px;height:20px;border:2px solid currentColor;transform:skew(-18deg);left:3px;top:3px}
.shape-polygon:before,.shape-regular:before{width:27px;height:25px;border:2px solid currentColor;clip-path:polygon(50% 0,96% 35%,80% 100%,20% 100%,4% 35%);left:2px}
.shape-lineangle:before{width:30px;height:2px;background:currentColor;left:1px;top:18px}.shape-lineangle:after{width:18px;height:2px;background:currentColor;left:15px;top:18px;transform:rotate(-48deg);transform-origin:left}
.shape-aroundpoint:before{width:4px;height:4px;background:currentColor;border-radius:50%;left:14px;top:12px;box-shadow:-10px -9px 0 -1px currentColor,11px -7px 0 -1px currentColor,-7px 11px 0 -1px currentColor}
.ttm-shape-fields{display:flex;flex-direction:column;gap:10px}
.ttm-shape-fields>.ttm-field{margin:0}
.ttm-shape-advanced{margin-top:14px;border-top:1px solid var(--border,#e2e0d8);padding-top:11px}
.ttm-shape-advanced summary{cursor:pointer;font-size:.78rem;font-weight:700;color:#555}
.ttm-shape-options{display:flex;flex-direction:column;gap:10px;padding-top:12px}
.ttm-range-row{display:grid;grid-template-columns:1fr 48px;gap:10px;align-items:center}
.ttm-range-row input{padding:0;border:0;box-shadow:none!important;accent-color:var(--accent,#2a5caa)}
.ttm-range-row output{text-align:right;font:600 .76rem 'Noto Sans',sans-serif;color:var(--accent,#2a5caa)}
.ttm-shape-preview-pane{display:flex;flex-direction:column;min-width:0}
.ttm-shape-preview-frame{flex:1;min-height:420px;border:1px solid var(--border,#e2e0d8);border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ttm-shape-preview-frame canvas{display:block;width:100%;height:100%;max-height:560px}
#shape-preview-tag{display:block;margin-top:8px;padding:8px 10px;border-radius:6px;background:var(--bg,#f7f6f2);color:#555;font:500 .73rem 'DM Mono',monospace;white-space:pre-wrap}
@media(max-width:850px){.ttm-shape-layout{grid-template-columns:1fr;max-height:78vh;overflow:auto}.ttm-shape-picker{grid-template-columns:repeat(4,1fr)}.ttm-shape-preview-frame{min-height:300px}}

/* Creator 2 alpha 7.1 — Shape modal viewport/scroll fix */
.ttm-shape-builder{height:min(900px,94vh)!important;max-height:94vh!important;display:flex!important;flex-direction:column!important}
.ttm-shape-builder>.ttm-creator-modal__header,.ttm-shape-builder>.ttm-creator-modal__footer{flex:0 0 auto}
.ttm-shape-builder>.ttm-shape-layout{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow:hidden!important}
.ttm-shape-controls{min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain;padding-right:10px}
.ttm-shape-preview-pane{min-height:0!important}
.ttm-shape-preview-frame{min-height:0!important;height:100%!important}
@media(max-width:850px){
 .ttm-shape-builder{height:94vh!important}
 .ttm-shape-builder>.ttm-shape-layout{overflow-y:auto!important}
 .ttm-shape-controls{overflow:visible!important;padding-right:0}
 .ttm-shape-preview-frame{min-height:300px!important;height:300px!important}
}

/* Creator 2 alpha 10 — robust Shape picker icons */
.ttm-shape-icon{width:36px!important;height:30px!important;display:block!important;position:relative!important}
.ttm-shape-icon:before,.ttm-shape-icon:after{content:none!important;display:none!important}
.ttm-shape-icon svg{display:block;width:36px;height:30px;overflow:visible}
.ttm-shape-icon svg *{fill:none;stroke:currentColor;stroke-width:2.15;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.ttm-shape-icon svg .fill{fill:currentColor;stroke:none}

/* Creator 2 compact ribbon: 36px tabs + 92px commands/group captions.
   This is the authoritative sizing model; the main panes use the same variable. */
:root { --creator-ribbon-h:128px; --creator-tab-h:36px; }
.creator-ribbon { height:var(--creator-ribbon-h); overflow:visible; }
.creator-tabs { height:var(--creator-tab-h); flex:0 0 var(--creator-tab-h); align-items:flex-end; }
.creator-tab { height:35px; }
.creator-panels { height:calc(var(--creator-ribbon-h) - var(--creator-tab-h)); min-height:0; overflow:hidden; }
.creator-panel { height:100%; padding:3px 12px 3px; gap:0; overflow-x:auto; overflow-y:hidden; align-items:stretch; }
.creator-panel.active { display:flex; }
.creator-panel .ribbon-group {
  display:flex; flex-flow:row nowrap; align-items:center; justify-content:center;
  position:relative; flex:0 0 auto; gap:4px; padding:2px 10px 19px;
  min-height:0; height:100%; border-right:1px solid var(--border);
}
.creator-panel .ribbon-group-label {
  position:absolute; bottom:2px; left:8px; right:8px;
  height:16px; line-height:16px; margin:0; padding:0;
  text-align:center; font:400 11px/16px 'Noto Sans',sans-serif;
  color:var(--muted); white-space:nowrap; pointer-events:none;
}
.creator-panel .ribbon-command {
  flex:0 0 auto; height:63px; min-width:72px; max-width:110px;
  padding:3px 6px; gap:4px; align-self:center;
}
.creator-panel .ribbon-command .cmd-label {
  font:500 12px/1.2 'Noto Sans',sans-serif; white-space:normal;
}
.creator-panel .ribbon-command svg { flex-shrink:0; }
.creator-panel[data-panel="options"] .creator-options-context:not([hidden]) {
  display:flex; flex-direction:row; align-items:stretch; width:max-content;
}
.creator-panel[data-panel="options"] .creator-options-context[hidden],
.creator-panel[data-panel="options"] .creator-options-empty[hidden] {display:none!important;}
.creator-panel[data-panel="options"] .creator-options-context > .ribbon-group {height:100%;}
.creator-panel[data-panel="options"] .creator-theme-picker {align-self:center;}
@media(max-width:800px) { :root {--creator-ribbon-h:128px;} }

/* Creator 2 — MathLive Formula Builder (modal only; ribbon height unchanged) */
.ttm-formula-overlay{z-index:6500!important}
.ttm-formula-modal{width:min(780px,95vw)!important;max-height:90vh;display:flex;flex-direction:column}
.ttm-formula-modal .ttm-creator-modal__body{overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.ttm-formula-status{font-size:.85rem;color:var(--muted,#777);padding:16px 0}
.ttm-formula-field-wrap{min-height:110px;border:1px solid var(--border,#ddd);border-radius:8px;background:#fff;padding:12px}
.ttm-formula-field-wrap[hidden]{display:none}
.ttm-formula-mathfield{display:block;width:100%;min-height:82px;font-size:1.6rem;--caret-color:var(--accent,#2a5caa)}
.ttm-formula-source-label{font:700 .76rem 'Noto Sans',sans-serif;color:#555}
#ttm-formula-source{box-sizing:border-box;width:100%;padding:11px 12px;resize:vertical;border:1px solid var(--border,#ddd);border-radius:7px;font:500 .85rem/1.5 'DM Mono',monospace;color:var(--text,#222)}
.ttm-formula-hint{margin:0;color:var(--muted,#777);font-size:.74rem}

/* Formula Builder: MathLive keyboard is embedded inside this modal, not body. */
.ttm-formula-overlay{z-index:6500!important}
.ttm-formula-modal{width:min(920px,96vw)!important;height:min(790px,94vh);max-height:94vh;display:flex;flex-direction:column}
.ttm-formula-modal .ttm-creator-modal__header,
.ttm-formula-modal .ttm-creator-modal__footer{flex:0 0 auto}
.ttm-formula-modal .ttm-creator-modal__body{flex:1 1 auto;min-height:0;overflow-y:auto;gap:10px;padding:14px 20px}
.ttm-formula-field-wrap{min-height:82px;padding:9px}
.ttm-formula-mathfield{min-height:60px;font-size:1.7rem}
.ttm-formula-keyboard-host{position:relative;isolation:isolate;display:block;width:100%;min-height:260px;flex:1 0 auto;overflow:hidden;border:1px solid var(--border,#ddd);border-radius:8px;background:#f7f8fb}
.ttm-formula-keyboard-host[hidden]{display:none!important}
.ttm-formula-keyboard-host math-virtual-keyboard{position:relative!important;inset:auto!important;left:auto!important;right:auto!important;bottom:auto!important;top:auto!important;transform:none!important;width:100%!important;max-width:100%!important;z-index:1!important;box-shadow:none!important}
.ttm-formula-modal #ttm-formula-source{min-height:52px;max-height:95px;resize:vertical}
@media(max-height:720px){.ttm-formula-keyboard-host{min-height:210px}.ttm-formula-modal .ttm-creator-modal__body{padding:9px 16px}}

/* Creator 2 modal audit: keep the close action in the top-right corner. */
#tbl-modal-overlay > div, #ineq-modal-overlay > div, #geo-modal, #draw-modal {position:relative!important;}
#tbl-modal-overlay .ttm-unified-modal-close, #ineq-modal-overlay .ttm-unified-modal-close,
#geo-modal .ttm-unified-modal-close, #draw-modal .ttm-unified-modal-close {
 position:absolute!important;top:12px!important;right:14px!important;z-index:8!important;
 width:36px!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important;
 border:1px solid #dedbd3!important;border-radius:8px!important;background:#fff!important;
 color:#777!important;font-size:22px!important;line-height:1!important;padding:0!important;cursor:pointer!important;
}
#draw-modal .ttm-unified-modal-close{background:#303030!important;color:#eee!important;border-color:#555!important;}
#geo-modal > div:first-child,#draw-modal > div:first-child,#tbl-modal-overlay > div > div:first-child{padding-right:60px!important;}


/* INSERT modal layout v3 — targeted fixes, no renderer changes. */
/* Sketch: fixed-height modal, independent controls scrolling, bounded preview. */
.ttm-creator-modal:has(.ttm-graph-sketch-layout){height:min(650px,88vh)!important;max-height:88vh!important;display:flex!important;flex-direction:column!important}
.ttm-creator-modal:has(.ttm-graph-sketch-layout)>.ttm-creator-modal__header,
.ttm-creator-modal:has(.ttm-graph-sketch-layout)>.ttm-creator-modal__footer{flex:0 0 auto}
.ttm-graph-sketch-layout{flex:1 1 auto!important;min-height:0!important;overflow:hidden!important;align-items:start}
.ttm-graph-sketch-layout>.ttm-creator-modal__controls{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:8px}
.ttm-graph-sketch-layout>.ttm-creator-modal__preview{min-height:0;max-height:100%;overflow:auto}
.ttm-graph-sketch-layout .ttm-graph-preview{height:clamp(220px,34vh,350px)!important;flex:none}
.ttm-graph-sketch-layout #graph-sketch-source{overflow-wrap:anywhere;max-height:76px;overflow:auto}
/* Shape: remove the forced full-height stretch introduced by alpha 7.1. */
.ttm-shape-builder{height:min(690px,89vh)!important;max-height:89vh!important}
.ttm-shape-builder>.ttm-shape-layout{align-items:start!important}
.ttm-shape-preview-pane{height:auto!important;align-self:start!important}
.ttm-shape-preview-frame{height:clamp(260px,38vh,390px)!important;max-height:390px!important;flex:none!important;min-height:0!important}
.ttm-shape-preview-frame canvas{max-height:100%!important;object-fit:contain!important}
#shape-preview-tag{overflow-wrap:anywhere;max-height:76px;overflow:auto}
/* Drawing: light shell, preserve canvas/background controls and all tools. */
#draw-modal{background:#fff!important;border:1px solid #e2e0d8!important;border-radius:10px!important;box-shadow:0 18px 55px rgba(26,25,22,.22)!important}
#draw-modal>div:first-child{background:#fff!important;border-bottom:1px solid #e2e0d8!important;padding-right:66px!important}
#draw-modal>div:first-child>span{color:#242424!important}
#draw-modal>div:first-child>div[style*="background:#444"]{background:#dedbd3!important}
#draw-modal #draw-size-label,#draw-modal>div:first-child div>span{color:#555!important}
#draw-modal .draw-tool-btn{background:#f7f6f2;border-color:#dedbd3;color:#333}
#draw-modal .draw-tool-btn.active{background:#2a5caa;border-color:#2a5caa;color:#fff}
#draw-modal .ttm-unified-modal-close{background:#fff!important;color:#777!important;border-color:#dedbd3!important}
#draw-modal>div:last-child{background:#fff!important;border-top:1px solid #e2e0d8!important}
#draw-modal>div:last-child>span{color:#777!important}
#draw-modal>div:last-child button:first-child{background:#fff!important;color:#444!important;border-color:#dedbd3!important}
#draw-modal>div:first-child>button:not(.ttm-unified-modal-close){background:#fff!important;color:#444!important;border-color:#dedbd3!important}
@media(max-width:850px){
 .ttm-creator-modal:has(.ttm-graph-sketch-layout){height:min(760px,94vh)!important}
 .ttm-graph-sketch-layout{overflow:auto!important;display:block!important}
 .ttm-graph-sketch-layout>.ttm-creator-modal__controls{height:auto;max-height:45vh}
 .ttm-shape-builder>.ttm-shape-layout{overflow:auto!important}
 .ttm-shape-preview-frame{height:300px!important}
}

/* Authoring-only validation: never rendered in the lesson player or slide canvas. */
.ttm-creator-validation[hidden] { display:none !important; }
.ttm-creator-validation { display:flex; align-items:flex-start; gap:10px; padding:11px 14px; margin:0;
  background:#fff5e5; border-bottom:1px solid #e6bd79; color:#744700; font-size:13px; line-height:1.45; }
.ttm-creator-validation__body { flex:1; min-width:0; }
.ttm-creator-validation__close { flex:none; background:transparent; border:0; color:#744700;
  cursor:pointer; font-size:20px; line-height:1; padding:0 4px; }
.ttm-creator-validation__close:hover { background:#f6e3c6; border-radius:4px; }
