.cad-desk { display:flex; flex-direction:column; min-width:0; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:clip; }
.cad-menu { position:absolute; z-index:20; right:0; top:calc(100% + 8px); width:270px; max-width:calc(100vw - 32px); display:grid; gap:8px; padding:14px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 4px 16px #142b2020; }
.cad-menu .button { width:100%; text-align:left; justify-content:flex-start; min-height:40px; }
.cad-menu a { font-size:14px; padding:4px 0; }
.cad-menu p { margin:4px 0 0; font-size:14px; line-height:1.5; color:var(--muted); }
.cad-feedback { overflow-wrap:anywhere; }
.cad-stage { min-height:640px; height:min(76dvh,960px); position:relative; flex:1 1 auto; background:#232a32; }
#cadcraft_canvas { width:100%; height:100%; position:absolute; inset:0; display:block; outline:none; touch-action:none; }
#cadcraft_canvas:focus-visible { outline:3px solid var(--green); outline-offset:-3px; }
.cad-empty { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:18px; text-align:center; min-height:640px; height:100%; padding:48px 24px; background:var(--surface); }
.cad-empty h2 { font-size:clamp(26px,3vw,40px); margin:0; text-wrap:balance; }
.cad-empty p { max-width:46ch; font-size:17px; line-height:1.7; margin:0; text-wrap:pretty; color:var(--muted); }
.cad-empty>span:last-child { font-size:14px; color:var(--muted); }
.cad-start-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.cad-start-actions .button,.cad-empty .text-link { min-height:44px; }
.cad-footnote { justify-content:space-between; }
.cad-footnote #cad-count { font-variant-numeric:tabular-nums; }
.cad-footnote details { position:relative; }
.cad-footnote summary { display:flex; align-items:center; min-height:44px; list-style:none; cursor:pointer; }
.cad-footnote summary::-webkit-details-marker { display:none; }
.cad-footnote .cad-menu { top:auto; bottom:calc(100% + 8px); right:0; max-height:calc(100dvh - 100px); overflow:auto; }
.cad-export-dialog { width:min(480px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:24px; border:1px solid var(--line); border-radius:var(--radius); color:var(--ink); background:var(--surface); overflow:auto; }
.cad-export-dialog::backdrop { background:#173e3355; }
.cad-export-dialog h2 { font-size:28px; margin:0 0 12px; }
.cad-export-dialog p { font-size:15px; line-height:1.6; margin:0 0 20px; }
.cad-export-dialog form { display:grid; gap:16px; }
.cad-export-dialog label { display:grid; gap:6px; font-size:14px; }
.cad-export-dialog :is(input,select) { width:100%; min-height:44px; font-size:16px; }
.cad-export-dialog form p { margin:0; color:var(--muted); }
.cad-export-dialog #cad-export-error { color:#8f3d22; }
.cad-dialog-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.cad-dialog-actions .button { min-height:44px; }
.cad-desk.viewer-expanded { border:0; border-radius:0; overflow:auto; }
.cad-desk.viewer-expanded .cad-stage { min-height:180px; height:auto; }
.cad-desk.viewer-expanded .cad-empty { min-height:0; }
.cad-desk [hidden] { display:none!important; }
@media(max-width:700px) {
  .cad-menu .button { min-height:44px; font-size:15px; }
  .cad-stage { min-height:460px; height:70dvh; }
  .cad-empty { min-height:460px; padding:32px 16px; }
}
