/* ZEIM CAD workspace — original styling on the ZEIM theme variables. */
body.cadws{margin:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);color:var(--txt);font-family:var(--font);-webkit-user-select:none;user-select:none}
.cw-top{display:flex;align-items:center;gap:8px;padding:6px 10px;padding-top:max(6px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--panel)}
.cw-title{background:transparent;border:1px solid transparent;color:var(--txt);font:inherit;font-weight:700;font-size:16px;padding:6px 8px;border-radius:8px;min-width:0;width:220px}
.cw-title:hover,.cw-title:focus{border-color:var(--line)}
.cw-mode{font-size:12px;color:var(--mut);padding:3px 8px;border-radius:999px;background:var(--panel2)}
.cw-sp{flex:1}
.cw-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--txt);font:inherit;cursor:pointer;text-decoration:none}
.cw-btn.wide{padding:0 12px}
.cw-btn svg,.cw-pill svg,.cw-tool svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cw-btn:disabled{opacity:.4;cursor:default}
.cw-btn:focus-visible,.cw-tool:focus-visible,.cw-pill:focus-visible,.cw-chip:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.cw-menu{position:relative}
.cw-pop{position:absolute;right:0;top:48px;z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px;min-width:240px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.cw-pop a{display:block;padding:12px;border-radius:8px;color:var(--txt);text-decoration:none}
.cw-pop a:hover,.cw-pop a:focus{background:var(--panel2)}
.cw-units{display:flex;white-space:nowrap;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;color:var(--txt)}
.cw-units select{min-height:40px;min-width:110px;font:inherit;background:var(--panel2);color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:0 8px}
.cw-units-help{display:block;padding:0 12px 6px;color:var(--mut,#9aa4b8);font-size:12px;max-width:260px}
.cw-main{flex:1;display:grid;grid-template-columns:auto 1fr 300px;min-height:0}
.cw-rail{display:flex;flex-direction:column;gap:4px;padding:8px 6px;border-right:1px solid var(--line);background:var(--panel);overflow-y:auto}
.cw-rail h3{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:8px 4px 2px}
.cw-tool{position:relative;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--txt);font:inherit;font-size:14px;cursor:pointer;text-align:left;white-space:nowrap}
.cw-tool:hover{background:var(--panel2)}
.cw-tool[aria-pressed=true]{background:var(--tint);border-color:var(--accink);color:var(--accink)}
.cw-tool:disabled{opacity:.35;cursor:default}
.cw-tool kbd{margin-left:auto;font:600 11px/1 var(--font);padding:3px 6px;border-radius:6px;background:var(--panel2);color:var(--mut);border:1px solid var(--line)}
.cw-tool .sub{display:block;font-size:11px;color:var(--mut)}
.cw-tool[data-tip]:hover::after{content:attr(data-tip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--panel);border:1px solid var(--line);color:var(--txt);padding:6px 10px;border-radius:8px;font-size:12px;white-space:normal;width:220px;z-index:40;box-shadow:0 6px 20px rgba(0,0,0,.3);pointer-events:none}
.cw-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:0 10px;font-size:13px}
.cw-stage{position:relative;min-width:0;min-height:0;background:radial-gradient(ellipse at 50% 40%,var(--stage1),var(--stage2));touch-action:none}
.cw-stage canvas{display:block;width:100%;height:100%}
/* compact single-line coach pill, top-left, clear of the view cube + chips (right ~110px); tap to expand */
.cw-hint{position:absolute;left:8px;top:8px;z-index:5;display:flex;gap:6px;align-items:baseline;background:color-mix(in srgb,var(--panel) 90%,transparent);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12px;line-height:1.3;max-width:min(520px,calc(100% - 120px));white-space:nowrap;overflow:hidden;cursor:pointer}
.cw-hint b{flex:none}
.cw-hint span{color:var(--mut);overflow:hidden;text-overflow:ellipsis}
.cw-hint.open{white-space:normal;border-radius:12px}
.cw-hint[hidden],.cw-empty[hidden]{display:none}
.cw-cubewrap{position:absolute;right:14px;top:12px;width:84px;height:84px;perspective:400px;z-index:5}
.cw-cube{position:relative;width:60px;height:60px;margin:12px;transform-style:preserve-3d}
.cw-cube button{position:absolute;width:60px;height:60px;border:1px solid var(--ctl);background:color-mix(in srgb,var(--panel) 88%,transparent);color:var(--txt);font:700 10px/1 var(--font);cursor:pointer;backface-visibility:hidden;padding:0}
.cw-cube button:hover{background:var(--tint);color:var(--accink)}
.cw-chips{position:absolute;right:12px;top:104px;display:flex;flex-direction:column;gap:6px;z-index:5}
.cw-chip{min-height:36px;min-width:64px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--txt);font:600 12px var(--font);cursor:pointer}
.cw-chip[aria-pressed=false]{color:var(--mut);border-style:dashed}
.cw-bl{position:absolute;left:10px;bottom:10px;display:flex;flex-direction:column;gap:6px;z-index:5}
.cw-pill{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--txt);font:inherit;font-size:13px;cursor:pointer}
.cw-pill[aria-pressed=true]{background:var(--tint);color:var(--accink);border-color:var(--accink)}
.cw-section{position:absolute;right:12px;bottom:12px;max-width:calc(100% - 190px);flex-wrap:wrap;display:flex;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px;z-index:6;font-size:13px}
.cw-section input[type=range]{width:min(320px,40vw)}
.cw-panel{position:absolute;left:12px;top:60px;z-index:7;width:300px;max-height:calc(100% - 200px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 10px 30px rgba(0,0,0,.35);font-size:14px}
.cw-panel h2{font-size:15px;margin:0 0 8px}
.cw-panel .f{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:center;margin:6px 0}
.cw-panel .f3{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:4px;align-items:center;margin:6px 0}
.cw-panel input,.cw-panel select,.cw-hist input,.cw-hist select{min-height:36px;border-radius:8px;border:1px solid var(--line);background:var(--sunk);color:var(--txt);font:inherit;padding:4px 8px;min-width:0;width:100%;box-sizing:border-box}
.cw-panel .help{font-size:12px;color:var(--mut);margin:6px 0}
.cw-row{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.cw-row button,.cw-seg button{min-height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--txt);font:inherit;cursor:pointer}
.cw-row button.primary{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}
.cw-seg{display:flex;gap:4px;flex-wrap:wrap}
.cw-seg button[aria-pressed=true]{background:var(--tint);color:var(--accink);border-color:var(--accink)}
.cw-side{display:flex;flex-direction:column;border-left:1px solid var(--line);background:var(--panel);min-height:0}
.cw-tabs{display:flex;padding:6px;gap:4px;border-bottom:1px solid var(--line)}
.cw-tabs button{flex:1;min-height:40px;border-radius:8px;border:0;background:transparent;color:var(--mut);font:600 14px var(--font);cursor:pointer}
.cw-tabs button[aria-selected=true]{background:var(--panel2);color:var(--txt)}
.cw-hist{list-style:none;margin:0;padding:6px;overflow:auto;flex:1}
.cw-hist li{border-radius:10px;margin-bottom:3px;border:1px solid transparent}
.cw-hist li.future{opacity:.45}
.cw-hist li.open{background:var(--panel2);border-color:var(--accink)}
.cw-hist .hrow{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 8px;cursor:pointer}
.cw-hist .hrow .ic{width:22px;height:22px;flex:none;color:var(--accink)}
.cw-hist .hrow .ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7}
.cw-hist .hrow .nm{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cw-hist .hbody{padding:4px 10px 10px}
.cw-hist .kv{display:grid;grid-template-columns:1fr 1.2fr;gap:6px;align-items:center;margin:4px 0;font-size:13px}
.cw-hist .kv span{color:var(--mut)}
.cw-hist .hbtns{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.cw-hist .hbtns button{min-height:36px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--txt);font:inherit;font-size:13px;cursor:pointer}
.cw-hist .hbtns button.primary{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}
.cw-items{padding:8px;overflow:auto;flex:1}
.cw-items h3{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:10px 4px 4px}
.cw-item{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 8px;border-radius:10px}
.cw-item.sel{background:var(--tint)}
.cw-item .sw{width:16px;height:16px;border-radius:5px;border:1px solid var(--ctl)}
.cw-item .nm{flex:1;font-size:14px}
.cw-item small{color:var(--mut)}
.cw-eye{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--txt);cursor:pointer;border-radius:8px}
.cw-eye[aria-pressed=false]{color:var(--mut);opacity:.6}
.cw-eye svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
.cw-msg{margin:0;padding:8px 12px;font-size:13px;color:var(--warn);min-height:20px}
.cw-labels{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden}
.cw-dim{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:inline-flex;align-items:center;gap:4px;background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:999px;padding:3px 9px;font:600 12px var(--font);cursor:text;white-space:nowrap;min-height:28px}
.cw-dim.locked{border-color:var(--accink);color:var(--accink)}
.cw-dim svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2}
.cw-dim input{width:70px;min-height:24px;border:0;background:transparent;color:inherit;font:inherit;padding:0}
.cw-con{min-height:0!important;min-width:0;height:20px;line-height:16px;position:absolute;transform:translate(-50%,-50%);pointer-events:auto;background:var(--warmtint);color:var(--warm);border:1px solid var(--warm);border-radius:6px;padding:1px 5px;font:700 11px var(--font);cursor:pointer;min-width:18px;text-align:center}
.cw-con:hover{background:var(--badbg);color:var(--bad);border-color:var(--bad)}
.cw-meas{position:absolute;transform:translate(-50%,-130%);background:var(--acc);color:var(--on-acc);border-radius:8px;padding:3px 8px;font:700 12px var(--font);white-space:nowrap}
.cw-busy{position:absolute;inset:0;display:flex;gap:10px;align-items:center;justify-content:center;background:rgba(0,0,0,.25);z-index:20;color:#fff}
.cw-empty{position:absolute;left:8px;top:38px;z-index:4;display:flex;gap:6px;align-items:baseline;font-size:12px;line-height:1.3;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--panel) 80%,transparent);color:var(--mut);pointer-events:none;max-width:calc(100% - 120px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-empty b{color:var(--txt);font-size:12px}
.cw-search{border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--txt);padding:10px;width:min(420px,90vw)}
.cw-search::backdrop{background:rgba(0,0,0,.4)}
.cw-search input{width:100%;box-sizing:border-box;min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--sunk);color:var(--txt);font:inherit;padding:0 12px}
.cw-search ul{list-style:none;padding:0;margin:8px 0 0;max-height:50vh;overflow:auto}
.cw-search li{padding:10px 12px;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between}
.cw-search li[aria-selected=true],.cw-search li:hover{background:var(--panel2)}
@media (max-width:1100px){.cw-main{grid-template-columns:auto 1fr 260px}}
@media (max-width:820px){
  .cw-main{grid-template-columns:auto 1fr;grid-template-rows:1fr auto}
  .cw-tool .lbl,.cw-tool kbd,.cw-rail h3,.cw-toggle span{display:none}
  .cw-side{grid-column:1/-1;max-height:34dvh;border-left:0;border-top:1px solid var(--line)}
  .cw-panel{width:min(300px,calc(100% - 24px))}
  .cw-title{width:120px}
  .cw-bl .cw-pill span{display:none}
}
.cw-ctx{position:absolute;z-index:8;transform:translate(-50%,calc(-100% - 18px));display:flex;gap:4px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:5px;box-shadow:0 8px 24px rgba(0,0,0,.35);font-size:13px;white-space:nowrap}
.cw-ctx button{min-height:40px;min-width:40px;padding:0 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--txt);font:inherit;cursor:pointer}
.cw-ctx button.primary{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}
.cw-ctx input{width:64px;min-height:36px;border-radius:8px;border:1px solid var(--line);background:var(--sunk);color:var(--txt);font:inherit;padding:0 6px}
.cw-handle{position:absolute;z-index:8;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;border:2px solid #29b6ff;background:rgba(41,182,255,.25);color:#fff;font:700 18px/40px var(--font);text-align:center;cursor:grab;touch-action:none}

.cw-modepop{position:absolute;left:50%;bottom:72px;transform:translateX(-50%);display:flex;gap:6px;align-items:center;padding:8px 10px;border-radius:14px;background:var(--panel,#1c2130);box-shadow:0 6px 24px #0008;z-index:30;font-size:14px}
.cw-modepop button{min-height:40px;padding:0 12px;border-radius:10px}
.cw-modepop button[aria-pressed=true]{background:var(--acc,#2b63ff);color:#fff}

/* ---- phones: no page scroll/zoom fighting the canvas; 44px tap targets at 390/320 */
html:has(body.cadws){overscroll-behavior:none;height:100%}
body.cadws{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
.cw-stage canvas{touch-action:none;-webkit-user-select:none;user-select:none}
.cw-cubewrap{touch-action:none}
@media (pointer:coarse){
  .cw-chip,.cw-row button,.cw-seg button,.cw-tabs button,.cw-hist .hbtns button,.cw-ctx button,.cw-modepop button{min-height:44px}
  .cw-chip{min-width:44px}
  .cw-cubewrap{transform:scale(1.35);transform-origin:top right}   /* faces stay >=44px even when seen at an angle */
  .cw-chips{top:130px}
  .cw-ctx button{min-width:44px}
  .cw-panel input,.cw-panel select,.cw-hist input,.cw-hist select,.cw-ctx input,.cw-search input{font-size:16px}  /* stop iOS focus-zoom */
}
@media (max-width:480px){
  /* top bar wraps to a second row instead of pushing Export/theme off-screen */
  .cw-top{flex-wrap:wrap;gap:4px;padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}
  .cw-top>*{flex:none}
  .cw-title{flex:1 1 80px;width:auto;min-width:60px;font-size:15px;padding:6px 4px}
  .cw-sp{display:none}
  .cw-pop{right:auto;left:0;max-width:calc(100vw - 16px);min-width:0;box-sizing:border-box}
  .cw-menu:last-of-type .cw-pop{left:auto;right:0}
  .cw-mode{display:none}
  .cw-btn.wide{padding:0 8px}
  .cw-rail{padding:6px 4px;gap:2px}
  .cw-tool{padding:0 8px;min-width:44px;justify-content:center}
  .cw-side{max-height:30dvh}
  .cw-panel{left:6px;top:56px;width:calc(100% - 12px);max-height:calc(100% - 140px);box-sizing:border-box}
  .cw-section{left:6px;right:6px;max-width:none;bottom:64px}
  .cw-section input[type=range]{width:100%}
  .cw-modepop{max-width:calc(100% - 16px);flex-wrap:wrap;justify-content:center;box-sizing:border-box}
  .cw-cubewrap{right:6px;top:6px}
  .cw-chips{right:6px}
}
@media (max-width:340px){
  .cw-hint,.cw-empty{max-width:calc(100% - 100px)}
  .cw-panel .f{grid-template-columns:1fr}
}

/* Text & emboss: Advanced fold + dismissible print tip */
.cw-adv summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
.cw-warn{position:absolute;left:50%;bottom:72px;transform:translateX(-50%);z-index:9;display:flex;gap:8px;align-items:flex-start;width:min(420px,calc(100% - 16px));box-sizing:border-box;padding:8px 8px 8px 12px;border-radius:12px;background:var(--panel);border:1px solid var(--line);box-shadow:0 6px 20px rgba(0,0,0,.3);font-size:13px}
.cw-warn p{margin:4px 0 0}
.cw-warn button{flex:none}

/* Beginner shapes palette + lessons card */
.cw-shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}
.cw-shapes button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;min-width:44px;padding:4px 2px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--txt);font:inherit;font-size:12px;cursor:pointer}
.cw-shapes button:disabled{opacity:.4;cursor:default}
.cw-shapes svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.cw-lesson{position:absolute;right:12px;bottom:12px;z-index:8;width:min(340px,calc(100% - 84px));box-sizing:border-box;background:var(--panel);border:1px solid var(--accink,var(--line));border-radius:14px;box-shadow:0 8px 26px rgba(0,0,0,.3);font-size:14px;max-height:calc(100% - 24px);overflow:auto}
.cw-lesson[hidden]{display:none}
.cw-lhead{display:flex;align-items:center;gap:6px;padding:4px 4px 4px 12px}
.cw-lhead>b{flex:1}
.cw-lt{flex:1;display:flex;flex-direction:column;align-items:flex-start;min-height:44px;background:none;border:0;color:var(--txt);font:inherit;text-align:left;cursor:pointer;padding:0}
.cw-lt small{color:var(--mut);font-size:12px}
.cw-lx{flex:none;min-width:44px;min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--txt);font:inherit;cursor:pointer}
.cw-lbody{padding:0 12px 10px}
.cw-lesson.mini .cw-lbody{display:none}
.cw-lsay{margin:4px 0 8px;line-height:1.4}
.cw-lesson .cw-row button{min-height:44px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--txt);font:inherit;cursor:pointer}
.cw-lesson .cw-row button.primary{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}
.cw-llist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cw-llist button{width:100%;min-height:48px;display:flex;flex-direction:column;align-items:flex-start;padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--txt);font:inherit;text-align:left;cursor:pointer}
.cw-llist small{color:var(--mut);font-size:12px}
.cw-pulse{outline:3px solid var(--acc) !important;outline-offset:2px;animation:cwPulse 1.2s ease-in-out 3}
@keyframes cwPulse{50%{outline-color:transparent}}
@media (prefers-reduced-motion:reduce){.cw-pulse{animation:none}}
.cw-panel .cw-toggle{padding:0}
.cw-panel .cw-toggle input{width:22px;height:22px;min-height:0;flex:none}
@media (pointer:coarse){.cw-panel .cw-toggle{min-height:44px}}
/* phones: the card leaves the stage and sits in the page flow above History, so it never covers the model,
   the tool panel or the pills; while a tool panel is open it shows just the step text */
/* short phone stages: the chip column scrolls instead of spilling under the panel below */
@media (max-width:820px){.cw-chips{max-height:calc(100% - 142px);overflow-y:auto;overscroll-behavior:contain}}
.cw-side>.cw-lesson{position:static;width:auto;max-height:none;margin:6px;box-shadow:none}
body:has(#cwTool:not([hidden])) .cw-side>.cw-lesson .cw-row{display:none}
body:has(#cwTool:not([hidden])) .cw-side>.cw-lesson .cw-lsay{margin:0 0 4px;font-size:13px;line-height:1.3}

/* ---- phone compact layout (cad-phone.js adds body.cw-phone). View ≥70% of the screen: one-row header,
   floating dockable tool rail + quick cluster, History/Items as a bottom sheet (right drawer in landscape). */
.cw-more,.cw-sheetbtn{display:none}
.cw-safe{position:fixed;left:0;top:0;width:0;height:0;visibility:hidden;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.cw-pop hr{border:0;border-top:1px solid var(--line);margin:4px 6px}
.cw-mi{display:flex;align-items:center;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--txt);font:inherit;text-align:left;cursor:pointer}
.cw-mi:hover,.cw-mi:focus{background:var(--panel2)}
.cw-mi[aria-checked=false]{color:var(--mut)}
body.cadws.cw-phone{height:var(--vvh,100dvh);padding:0}
.cw-phone .zws-p #cwSearch,.cw-phone .zws-p #cwLearn{display:none}
.cw-phone .cw-top{flex-wrap:nowrap;gap:4px;padding:4px max(6px,env(safe-area-inset-right)) 4px max(6px,env(safe-area-inset-left));padding-top:max(4px,env(safe-area-inset-top))}
.cw-phone .cw-top>*{flex:none}
.cw-phone .cw-title{flex:1 1 60px;width:auto;min-width:40px;font-size:15px;padding:6px 4px}
.cw-phone .cw-sp,.cw-phone .cw-mode,.cw-phone .cw-top>.cw-menu:not(.cw-more),.cw-phone .cw-top>#themeToggle,.cw-phone .cw-top>#lookBtn{display:none}
.cw-phone .cw-more{display:block}
.cw-phone #cwMoreMenu{left:auto;right:0;top:48px;min-width:240px;max-width:calc(100vw - 12px);max-height:calc(var(--vvh,100dvh) - 70px);overflow:auto;box-sizing:border-box;z-index:40}
.cw-phone .cw-main{display:block;position:relative;flex:1;min-height:0;--peek:calc(48px + env(safe-area-inset-bottom))}
.cw-phone .cw-stage{position:absolute;left:0;right:0;top:0;bottom:var(--peek)}
.cw-phone .cw-chips{display:none}
.cw-phone .cw-tool .lbl,.cw-phone .cw-tool kbd,.cw-phone .cw-rail h3,.cw-phone .cw-toggle span,.cw-phone .cw-bl .cw-pill span,.cw-phone .cw-tool[data-tip]:hover::after{display:none}
.cw-phone .cw-tool{padding:0;min-width:44px;justify-content:center;flex:none}
/* floats (wslayout.js wraps them in .zws-p) */
.cw-phone .cw-float-x{display:none}
/* panels on phones sit low, over the view but under the header, so the rail keeps its edge */

.cw-phone .cw-section{left:6px;right:6px;max-width:none;bottom:6px}
.cw-phone .cw-section input[type=range]{width:100%}
.cw-phone .cw-cubewrap{right:max(6px,env(safe-area-inset-right));top:6px}
/* sheet */
.cw-phone .cw-side{position:absolute;z-index:12;left:0;right:0;bottom:0;height:var(--drag,var(--peek));max-height:none;border:0;border-top:1px solid var(--line);border-radius:14px 14px 0 0;box-shadow:0 -6px 20px rgba(0,0,0,.25);padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;transition:height .18s ease,width .18s ease;overflow:hidden}
.cw-phone .cw-side.drag{transition:none}
.cw-phone .cw-side[data-sheet=half]{height:var(--drag,50%)}
.cw-phone .cw-side[data-sheet=full]{height:var(--drag,100%)}
.cw-phone .cw-tabs{flex:none;height:48px;box-sizing:border-box;padding:2px 6px;align-items:center;touch-action:none;border-bottom:1px solid var(--line)}
.cw-phone .cw-tabs button[role=tab]{min-height:44px}
.cw-phone .cw-sheetbtn{display:flex;flex:none;width:44px;height:44px;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;cursor:pointer;padding:0}
.cw-phone .cw-sheetbtn span{display:block;width:28px;height:5px;border-radius:3px;background:var(--mut)}
.cw-phone .cw-side[data-sheet=peek]>:not(.cw-tabs):not(.cw-msg):not(#cwLesson){visibility:hidden}
/* peek: a lesson card floats just above the tabs, so the step is always in view */
.cw-phone .cw-side[data-sheet=peek]>#cwLesson:not([hidden]){position:absolute;left:6px;right:6px;bottom:calc(100% + 6px);height:auto;max-height:40vh;overflow:auto;margin:0}
.cw-phone .cw-msg{position:absolute;left:8px;right:8px;bottom:calc(100% + 6px);min-height:0;padding:0;pointer-events:none}
.cw-phone .cw-side{overflow:visible}
.cw-phone .cw-side>.cw-hist,.cw-phone .cw-side>.cw-items{overflow:auto}
.cw-phone .cw-msg:not(:empty){padding:6px 10px;border-radius:10px;background:var(--panel);border:1px solid var(--line)}
.cw-phone .cw-side[data-sheet=peek] .cw-msg:not(:empty){bottom:calc(100% + 60px)}
/* landscape phones: the sheet becomes a right-hand drawer, 48px wide when closed */
@media (orientation:landscape){
  .cw-phone .cw-main{--peek:calc(48px + env(safe-area-inset-right))}
  .cw-phone .cw-stage{bottom:0;right:var(--peek)}
  .cw-phone .cw-side{left:auto;top:0;height:auto;width:var(--drag,var(--peek));border-top:0;border-left:1px solid var(--line);border-radius:14px 0 0 14px;padding:0 env(safe-area-inset-right) 0 0}
  .cw-phone .cw-side[data-sheet=half]{height:auto;width:var(--drag,min(340px,55%))}
  .cw-phone .cw-side[data-sheet=full]{height:auto;width:var(--drag,100%)}
  .cw-phone .cw-side[data-sheet=peek] .cw-tabs{flex-direction:column;height:auto;width:48px;border-bottom:0;padding:2px}
  .cw-phone .cw-side[data-sheet=peek] .cw-tabs button[role=tab]{flex:none;width:44px;writing-mode:vertical-rl;min-height:72px;font-size:12px}
  .cw-phone .cw-cubewrap{right:6px;top:2px}
  @media (pointer:coarse){.cw-phone .cw-cubewrap{transform:scale(1.1)}}
  .cw-phone .cw-top{padding-top:max(2px,env(safe-area-inset-top));padding-bottom:2px}
}

/* ---- every CAD panel floats over a full-size view (desktop and phone) */
.cw-main.zws{display:block;position:relative;flex:1;min-height:0}
.cw-main.zws>.cw-stage{position:absolute;inset:0}
.cw-phone .cw-main.zws>.cw-stage{bottom:var(--peek)}
@media (orientation:landscape){.cw-phone .cw-main.zws>.cw-stage{bottom:0;right:var(--peek)}}
.zws-p>.zws-body>.cw-rail,.zws-p>.zws-body>.cw-bl,.zws-p>.zws-body>.cw-chips,.zws-p>.zws-body>.cw-panel,.zws-p>.zws-body>.cw-side{position:static;inset:auto;display:flex;gap:2px;padding:2px;border:0;background:none;box-shadow:none;min-width:0;min-height:0;max-height:none;width:auto;overflow:visible;transform:none}
.zws-p>.zws-body>.cw-panel{display:block;padding:10px;width:300px;max-width:100%;box-sizing:border-box}
.zws-p.user-size>.zws-body>.cw-panel,.zws-p.user-size>.zws-body>.cw-side{width:100%;max-width:100%;min-width:0}
.zws-p>.zws-body>.cw-panel[hidden]{display:none}
.zws-p>.zws-body>.cw-side{flex-direction:column;width:300px;max-width:100%;height:100%;min-height:240px}
.zws-p.v>.zws-body>.cw-rail,.zws-p.v>.zws-body>.cw-bl,.zws-p.v>.zws-body>.cw-chips,.zws-p.free>.zws-body>.cw-rail{flex-direction:column}
.zws-p.h>.zws-body>.cw-rail,.zws-p.h>.zws-body>.cw-bl,.zws-p.h>.zws-body>.cw-chips{flex-direction:row}
.zws-p .cw-tool{flex:none}
.cw-phone .zws-p .cw-tool{padding:0;min-width:44px;justify-content:center}
.zws-p .cw-pill,.zws-p .cw-chip{flex:none;min-width:44px;min-height:44px}
.cw-phone .zws-p .cw-pill{padding:0;justify-content:center}
.cw-phone .cw-top>.zws-cust{display:none}
.zws-cw .lbl{display:none}
