/* ═══════════════════════════════════════════════════
   CONTROLS  v1.0.0
═══════════════════════════════════════════════════ */

.left{
  width:192px;
  background:#13161f;
  border-right:1px solid #1e2235;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  flex-shrink:0;
}
.sec{
  padding:12px;
  border-bottom:1px solid #1e2235;
}
.sec h3{
  font-size:.6rem;
  text-transform:uppercase;
  letter-spacing:2px;
  color:#3a3f55;
  margin-bottom:8px;
}

/* ── cut type buttons ── */
.cbt{
  width:100%;
  padding:7px 9px;
  margin-bottom:5px;
  border-radius:5px;
  border:1px solid #2a2d3e;
  background:#1a1d2a;
  color:#999;
  cursor:pointer;
  font-size:.73rem;
  text-align:left;
  transition:all .2s;
  display:flex;
  align-items:flex-start;
  gap:7px;
}
.cbt:hover,
.cbt.on{
  border-color:#7c9ef8;
  background:#1a2040;
  color:#7c9ef8;
}
.cbt .ico{
  font-size:.95rem;
  line-height:1;
  margin-top:1px;
  flex-shrink:0;
}
.cbt .lbl{
  display:flex;
  flex-direction:column;
}
.cbt .sub{
  font-size:.62rem;
  color:#444;
  margin-top:2px;
  line-height:1.3;
}
.cbt.on .sub{ color:#4a6ab8; }

/* ── action buttons ── */
.abtn{
  width:100%;
  padding:7px;
  border-radius:5px;
  border:1px solid #2a2d3e;
  background:transparent;
  color:#777;
  cursor:pointer;
  font-size:.73rem;
  transition:all .2s;
  margin-bottom:5px;
  text-align:left;
}
.abtn:hover        { border-color:#7c9ef8; color:#7c9ef8; }
.abtn.gen          { border-color:#2a4a2a; color:#7cf87c; background:#0a140a; font-weight:600; }
.abtn.gen:hover    { border-color:#7cf87c; background:#0f200f; }
.abtn.warn:hover   { border-color:#f8a87c; color:#f8a87c; }
.abtn.danger:hover { border-color:#f87c7c; color:#f87c7c; }

/* ── view buttons ── */
.view-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4px;
}
.vbtn{
  padding:6px 4px 5px;
  border-radius:5px;
  border:1px solid #2a2d3e;
  background:#1a1d2a;
  color:#666;
  cursor:pointer;
  font-size:.66rem;
  transition:all .2s;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  line-height:1.2;
}
.vbtn:hover{
  border-color:#7c9ef8;
  background:#1a2040;
  color:#7c9ef8;
}
.vbtn.active{
  border-color:#7c9ef8;
  background:#1a2040;
  color:#7c9ef8;
  font-weight:700;
}
.vico{
  font-size:1rem;
  line-height:1;
}

/* ── display toggles ── */
.trow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:7px;
}
.trow label{ font-size:.72rem; color:#777; cursor:pointer; }
.tog{
  width:30px; height:15px;
  border-radius:8px;
  background:#2a2d3e;
  cursor:pointer;
  position:relative;
  transition:background .2s;
  border:none;
  flex-shrink:0;
}
.tog.on{ background:#7c9ef8; }
.tog::after{
  content:'';
  position:absolute;
  width:11px; height:11px;
  border-radius:50%;
  background:#fff;
  top:2px; left:2px;
  transition:left .2s;
}
.tog.on::after{ left:17px; }

/* ── sliders ── */
.srow{ margin-bottom:8px; }
.srow label{
  font-size:.7rem;
  color:#666;
  display:flex;
  justify-content:space-between;
  margin-bottom:3px;
}
.srow label span{ color:#7c9ef8; }
input[type=range]{ width:100%; accent-color:#7c9ef8; cursor:pointer; }

/* ── version badge ── */
.ver-block{
  margin-top:auto;
  padding:10px 12px 12px;
  border-top:1px solid #1e2235;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.ver-name{
  font-size:.6rem;
  text-transform:uppercase;
  letter-spacing:1.5px;
  color:#2a3a4a;
}
.ver-num{
  font-size:.82rem;
  color:#7c9ef8;
  font-family:monospace;
  font-weight:700;
}
.ver-date{
  font-size:.62rem;
  color:#1e2a38;
}


/* ── ortho view button SVG icon ──────────────────────────────────── */
.ovsvg {
  width:        32px;
  height:       24px;
  display:      block;
  flex-shrink:  0;
}
.ovbtn {
  min-height: 48px;
  gap:        3px;
}
.ovbtn:hover  .ovsvg polygon { opacity: 1 !important; }
.ovbtn.active .ovsvg polygon { opacity: 1 !important; }

/* ── projection diagram mini cube ───────────────────────────────── */
.proj-mini {
  width:       22px;
  height:      16px;
  display:     block;
  flex-shrink: 0;
}
.proj-cell {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  justify-content:center;
  gap:            2px;
  border-radius:  2px;
}
.proj-lbl {
  font-size:   7px;
  font-family: monospace;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.04em;
}
.proj-top-cell   { border-color: #a0f84a44 !important; }
.proj-front-cell { border-color: #4a9ef844 !important; }
.proj-right-cell { border-color: #c04af844 !important; }