/* ==========================================================================
   Machinist Companion — design system
   Flat, high-contrast surfaces (Tesla) · engineering-grade steel/amber
   accent (Sandvik) · glassy elevation & precise micro-detail (Raycast)
   ========================================================================== */

:root{
  color-scheme:dark;
  font-family:"Inter",ui-sans-serif,system-ui,-apple-system,"SF Pro Display","Segoe UI",Roboto,sans-serif;

  --bg:#08090b;
  --bg-elev:#0d0f13;
  --panel:#101218;
  --panel-soft:#15181f;
  --field:#0a0c10;

  --line:rgba(255,255,255,.07);
  --line-strong:rgba(255,255,255,.15);
  --text:#f6f7f9;
  --muted:#8b93a1;
  --muted-2:#5a6270;

  --accent:#4f8cff;
  --accent-strong:#8ab4ff;
  --accent-soft:rgba(79,140,255,.13);

  --green:#39d98a;
  --amber:#f2a93b;
  --red:#f2555f;

  --shadow:0 24px 64px rgba(0,0,0,.5);
  --shadow-sm:0 10px 28px rgba(0,0,0,.35);
  --radius:13px;--radius-sm:9px;--radius-lg:16px;

  --mono:"JetBrains Mono","SF Mono","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.3,1);
}

:root[data-theme="light"]{
  color-scheme:light;
  --bg:#f7f7f8;
  --bg-elev:#ffffff;
  --panel:#ffffff;
  --panel-soft:#f4f5f6;
  --field:#fbfbfc;

  --line:rgba(13,17,23,.09);
  --line-strong:rgba(13,17,23,.16);
  --text:#0b0d10;
  --muted:#5b6472;
  --muted-2:#8991a0;

  --accent:#2266e3;
  --accent-strong:#0f4fc4;
  --accent-soft:rgba(34,102,227,.08);

  --green:#0f8a58;
  --amber:#a1660a;
  --red:#c23b45;

  --shadow:0 20px 50px rgba(15,23,42,.08);
  --shadow-sm:0 8px 22px rgba(15,23,42,.06);
}

/* ---------- reset / base ---------- */
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;min-height:100vh;background:var(--bg);color:var(--text);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-feature-settings:"cv11","ss01";
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(1100px 520px at 14% -8%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 60%),
    radial-gradient(900px 480px at 100% 0%, color-mix(in srgb, var(--amber) 5%, transparent), transparent 55%);
}
:root[data-theme="light"] body::before{
  background:
    radial-gradient(1100px 520px at 14% -8%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 60%),
    radial-gradient(900px 480px at 100% 0%, color-mix(in srgb, var(--amber) 4%, transparent), transparent 55%);
}
button,input,select{font:inherit}
button,select{cursor:pointer}
button{color:inherit}
::selection{background:var(--accent-soft);color:var(--text)}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px;border:3px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--muted-2)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hidden{display:none!important}
.app-shell{position:relative;z-index:1;min-height:100vh;display:flex}

/* ---------- sidebar ---------- */
.sidebar{
  width:272px;flex:0 0 272px;min-height:100vh;position:sticky;top:0;align-self:flex-start;
  display:flex;flex-direction:column;gap:4px;
  border-right:1px solid var(--line);
  background:color-mix(in srgb,var(--bg-elev) 88%,transparent);
  z-index:60;
}
.sidebar-head{display:flex;align-items:center;gap:12px;padding:22px 20px 18px}
.brand-mark{
  width:38px;height:38px;flex:0 0 auto;border:1px solid var(--line-strong);border-radius:10px;
  display:grid;place-items:center;font-size:19px;color:var(--accent-strong);
  background:linear-gradient(155deg,var(--panel-soft),var(--panel));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.brand-block{min-width:0}
.brand{font-weight:680;font-size:14.5px;letter-spacing:-.01em;white-space:nowrap}
.brand-tag{font-size:10.5px;color:var(--muted);margin-top:2px;letter-spacing:.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-close{
  margin-left:auto;width:30px;height:30px;flex:0 0 auto;border:1px solid var(--line);border-radius:8px;
  background:var(--panel);color:var(--muted);font-size:13px;display:none;place-items:center;
}
.sidebar-close:hover{color:var(--text);border-color:var(--line-strong)}

.sidebar-nav{flex:1;overflow-y:auto;padding:6px 14px 14px}
.nav-group+.nav-group{margin-top:16px}
.nav-group-label{padding:8px 10px 6px;color:var(--muted-2);font-size:9.5px;text-transform:uppercase;letter-spacing:.13em;font-weight:750}
.nav-link{
  min-height:41px;padding:0 11px;border-radius:9px;display:flex;align-items:center;gap:12px;
  color:var(--muted);font-size:13px;font-weight:570;text-decoration:none;
  transition:background .14s var(--ease),color .14s var(--ease);
}
.nav-link:hover{background:var(--panel-soft);color:var(--text)}
.nav-link.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:660}
.nav-icon{
  width:28px;height:28px;flex:0 0 auto;display:grid;place-items:center;border-radius:7px;
  font-size:10px;font-weight:750;letter-spacing:.01em;font-family:var(--mono);color:inherit;
  background:color-mix(in srgb,currentColor 10%,transparent);
}
.nav-link.active .nav-icon{background:color-mix(in srgb,var(--accent) 20%,transparent)}
.nav-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.sidebar-foot{display:flex;align-items:center;gap:11px;padding:16px 20px;border-top:1px solid var(--line)}
.sidebar-foot-label{font-size:12px;color:var(--muted);font-weight:600}
.sidebar-collapse-btn{
  width:28px;height:28px;flex:0 0 auto;margin-left:auto;border:1px solid var(--line);border-radius:7px;
  background:var(--panel);color:var(--muted);display:none;align-items:center;justify-content:center;
  transition:transform .2s var(--ease),border-color .16s var(--ease),background .16s var(--ease),color .16s var(--ease);
}
.sidebar-collapse-btn:hover{color:var(--text);border-color:var(--line-strong);background:var(--panel-soft)}

/* ---------- collapsed sidebar (desktop icon rail) ---------- */
@media(min-width:1024px){
  .sidebar-collapse-btn{display:flex}
  html.sidebar-collapsed .sidebar{width:76px;flex-basis:76px}
  html.sidebar-collapsed .sidebar-head{padding:20px 14px 14px;justify-content:center}
  html.sidebar-collapsed .brand-block,
  html.sidebar-collapsed .nav-group-label,
  html.sidebar-collapsed .nav-label,
  html.sidebar-collapsed .sidebar-foot-label{display:none}
  html.sidebar-collapsed .sidebar-close{display:none}
  html.sidebar-collapsed .nav-link{justify-content:center;padding:0}
  html.sidebar-collapsed .nav-group+.nav-group{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
  html.sidebar-collapsed .sidebar-foot{flex-direction:column;padding:14px 10px}
  html.sidebar-collapsed .sidebar-collapse-btn{margin-left:0;transform:rotate(180deg)}
}

.sidebar-backdrop{
  position:fixed;inset:0;background:rgba(4,5,7,.55);opacity:0;pointer-events:none;z-index:59;
  transition:opacity .2s var(--ease);
}
.sidebar-backdrop.open{opacity:1;pointer-events:auto}

/* ---------- app main / topbar ---------- */
.app-main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  height:64px;padding:0 28px;display:flex;align-items:center;gap:16px;
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--bg) 72%,transparent);
  position:sticky;top:0;z-index:40;
  backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
}
.topbar-context{display:flex;align-items:center;gap:8px;min-width:0;font-size:12.5px}
.crumb{color:var(--muted);white-space:nowrap}
.crumb-sep{color:var(--muted-2)}
.crumb.current{color:var(--text);font-weight:640;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.menu-trigger{
  display:none;width:34px;height:34px;flex:0 0 auto;border:1px solid var(--line);border-radius:8px;
  background:var(--panel);align-items:center;justify-content:center;gap:4px;flex-direction:column;
}
.menu-trigger:hover{border-color:var(--line-strong);background:var(--panel-soft)}
.menu-trigger-bar{width:15px;height:1.5px;background:var(--muted);border-radius:1px}

.top-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.segmented{display:flex;padding:2px;border:1px solid var(--line);border-radius:9px;background:var(--field)}
.unit-btn,.feed-unit-btn{
  border:0;background:transparent;border-radius:6px;padding:6px 11px;color:var(--muted);
  font-weight:600;font-size:11.5px;letter-spacing:.005em;transition:color .16s var(--ease),background .16s var(--ease);
}
.unit-btn:hover,.feed-unit-btn:hover{color:var(--text)}
.unit-btn.active,.feed-unit-btn.active{background:var(--panel-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}

.icon-btn{
  width:33px;height:33px;border:1px solid var(--line);border-radius:8px;background:var(--panel);
  font-size:15px;color:var(--muted);display:grid;place-items:center;
  transition:border-color .16s var(--ease),background .16s var(--ease),color .16s var(--ease),transform .08s var(--ease);
}
.icon-btn:hover{color:var(--text);border-color:var(--line-strong);background:var(--panel-soft)}
.icon-btn:active{transform:translateY(1px) scale(.97)}
.theme-icon{line-height:1}

@media(min-width:1024px){
  .sidebar{position:sticky}
}
@media(max-width:1023px){
  .app-shell{display:block}
  .sidebar{
    position:fixed;top:0;left:0;height:100vh;width:284px;max-width:82vw;
    transform:translateX(-100%);transition:transform .22s var(--ease);box-shadow:var(--shadow);
  }
  html.sidebar-collapsed .sidebar{width:284px;flex-basis:284px}
  .sidebar.open{transform:translateX(0)}
  .sidebar-close{display:grid}
  .menu-trigger{display:flex}
  .app-main{width:100%}
}

/* ---------- layout shells ---------- */
.workspace,.reference-workspace,.feeds-workspace{width:min(1100px,calc(100% - 40px));margin:28px auto 56px}
.tap-workspace{width:min(1100px,calc(100% - 40px));margin:28px auto 56px}

.panel{
  background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 100%,white 1%),var(--panel));
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;
  transition:border-color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease);
}
.panel:hover{border-color:var(--line-strong)}

.setup-panel,.tap-setup-panel{padding:20px}
.section-heading,.part-head,.diagram-head,.fit-summary,.drill-results-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
}
.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:9px;font-weight:730;color:var(--muted-2);margin-bottom:6px}
.setup-panel h1,.tap-setup-panel h1,.part-panel h2,.diagram-panel h2,.fit-panel h2,.drill-results-panel h2,.calc-result-panel h2{
  font-size:18px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.02em;
}
.standard-chip,.match-chip{
  font-size:10px;font-weight:650;color:var(--accent-strong);
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));background:var(--accent-soft);
  border-radius:999px;padding:5px 9px;white-space:nowrap;
}

/* ---------- size field / inputs ---------- */
.size-field{
  margin-top:16px;height:60px;border:1px solid var(--line-strong);border-radius:11px;background:var(--field);
  display:flex;align-items:center;transition:border-color .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease);
}
.size-field:hover{border-color:color-mix(in srgb,var(--accent) 22%,var(--line-strong))}
.size-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.size-field input{
  min-width:0;flex:1;height:100%;border:0;outline:0;background:transparent;color:var(--text);
  font-family:var(--mono);font-size:26px;font-weight:640;padding:0 16px;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
}
.size-unit{color:var(--muted);font-size:13px;font-weight:600;padding:0 16px 0 8px}
.helper{margin:10px 2px 0;color:var(--muted);font-size:12px;line-height:1.6}

.parts-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.part-panel{padding:18px;border-top-width:2px}
#holePanel{border-top-color:color-mix(in srgb,#5fa4ff 55%,var(--line))}
#shaftPanel{border-top-color:color-mix(in srgb,#c79bff 55%,var(--line))}
.zone-badge,.fit-symbol{
  min-width:52px;height:32px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:var(--field);
  display:grid;place-items:center;font-family:var(--mono);font-size:13px;font-weight:640;
}
.selector-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:10px;margin-top:16px}
.control{display:grid;gap:6px}
.control>span,.calc-field>span{font-size:9px;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:var(--muted-2)}
.control select,.calc-field input{
  appearance:none;-webkit-appearance:none;width:100%;height:40px;border:1px solid var(--line);border-radius:9px;
  background-color:var(--field);color:var(--text);font-weight:560;font-size:13.5px;outline:none;padding:0 32px 0 12px;
  transition:border-color .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease);
}
.control select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238b93a1' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:10px 6px;
}
:root[data-theme="light"] .control select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235b6472' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.control select:hover,.calc-field input:hover{border-color:var(--line-strong)}
.control select:focus,.calc-field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}

.results{
  margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;
}
.result-row{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--field)}
.result-row .label{color:var(--muted-2);font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:730}
.result-row .value{font-family:var(--mono);font-size:14px;font-weight:640;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}
.result-row.major .value{font-weight:640}
.muted{grid-column:1/-1;background:var(--field);color:var(--muted);font-size:12px;padding:12px 14px}

/* ---------- designation ---------- */
.designation-panel{margin-top:14px;padding:16px 18px}
.designation-main{display:flex;align-items:center;justify-content:space-between;gap:16px}
.designation-fit{font-family:var(--mono);font-size:20px;font-weight:660;letter-spacing:-.02em}
.designation-parts{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.designation-parts span{
  padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:var(--field);
  color:var(--muted);font-family:var(--mono);font-size:11.5px;font-weight:600;
}
.copy-btn{
  height:34px;padding:0 13px;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel-soft);
  font-size:12px;font-weight:620;transition:border-color .16s var(--ease),background .16s var(--ease),transform .08s var(--ease);
}
.copy-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}
.copy-btn:active{transform:translateY(1px)}
.copy-status{height:0;overflow:visible;font-size:10px;color:var(--green);text-align:right}

/* ---------- safety / invalid ---------- */
.safety-panel{
  margin-top:14px;padding:14px 16px;display:flex;gap:11px;align-items:flex-start;
  border-color:color-mix(in srgb,var(--red) 42%,var(--line));background:color-mix(in srgb,var(--red) 7%,var(--panel));
}
.safety-icon{
  width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  background:color-mix(in srgb,var(--red) 16%,transparent);color:var(--red);font-weight:800;font-size:12px;flex:0 0 auto;
}
.safety-title{font-size:12.5px;font-weight:680;color:var(--red)}
.safety-message{margin-top:3px;font-size:12px;color:var(--muted);line-height:1.45}
.results.invalid{border-color:color-mix(in srgb,var(--red) 40%,var(--line));background:color-mix(in srgb,var(--red) 30%,var(--line))}
.invalid-message{grid-column:1/-1;background:var(--field);color:var(--red);font-size:12px;padding:12px 14px;font-weight:600}

/* ---------- fit panel ---------- */
.fit-panel{margin-top:14px;padding:18px}
.fit-panel.clearance{border-color:color-mix(in srgb,var(--green) 36%,var(--line))}
.fit-panel.transition{border-color:color-mix(in srgb,var(--amber) 38%,var(--line))}
.fit-panel.interference{border-color:color-mix(in srgb,var(--red) 38%,var(--line))}
.fit-panel.clearance h2{color:var(--green)}
.fit-panel.transition h2{color:var(--amber)}
.fit-panel.interference h2{color:var(--red)}
.fit-results{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.metric{min-height:72px;padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--field)}
.metric-label{font-size:8.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.08em;font-weight:730}
.metric-value{margin-top:9px;font-family:var(--mono);font-size:16px;font-weight:640;font-variant-numeric:tabular-nums;line-height:1.1}
.metric-sub{margin-top:4px;font-size:9.5px;color:var(--muted-2)}

/* ---------- diagram ---------- */
.diagram-panel{margin-top:14px;padding:18px}
.diagram-note{font-size:11px;color:var(--muted)}
.zone-diagram{
  margin-top:14px;min-height:160px;border:1px solid var(--line);border-radius:11px;background:var(--field);
  padding:16px;position:relative;overflow:hidden;
}
.diagram-empty{height:130px;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:12px}
.diagram-scale{position:relative;height:154px;margin-left:52px;margin-right:8px}
.zero-line{position:absolute;left:0;right:0;border-top:1px solid var(--line-strong)}
.zero-label{position:absolute;right:0;transform:translateY(-100%);font-size:9px;color:var(--muted-2);padding-bottom:4px}
.axis-label{
  position:absolute;left:-52px;width:44px;text-align:right;transform:translateY(50%);
  font-family:var(--mono);font-size:9px;color:var(--muted-2);font-variant-numeric:tabular-nums;
}
.zone{position:absolute;width:34%;border-radius:6px;min-height:4px;border:1px solid currentColor;background:color-mix(in srgb,currentColor 13%,transparent)}
.zone.hole{left:10%;color:#5fa4ff}
.zone.shaft{right:10%;color:#c79bff}
.zone-name{position:absolute;top:50%;transform:translateY(-50%);left:9px;font-size:10px;font-weight:750;color:var(--text);white-space:nowrap}
.zone-legend{display:flex;gap:14px;margin-top:13px;font-size:10px;color:var(--muted)}
.legend-item{display:flex;align-items:center;gap:6px}
.legend-dot{width:8px;height:8px;border-radius:2px}
.legend-dot.hole{background:#5fa4ff}
.legend-dot.shaft{background:#c79bff}

.source-note{margin-top:14px;overflow:hidden}
.source-note summary{list-style:none;padding:14px 16px;cursor:pointer;font-size:12px;font-weight:600;color:var(--muted)}
.source-note summary::-webkit-details-marker{display:none}
.source-note summary:after{content:'+';float:right;font-size:15px;font-weight:300;color:var(--muted-2)}
.source-note[open] summary:after{content:'−'}
.source-copy{padding:0 16px 15px;border-top:1px solid var(--line);color:var(--muted);font-size:11.5px;line-height:1.65}
.source-copy p{margin:12px 0 0}

/* deviation visualization support */
.deviation-wrap{position:relative}
.deviation-band{
  position:absolute;border-radius:6px;border:1px solid currentColor;background:color-mix(in srgb,currentColor 13%,transparent);
  display:flex;align-items:center;justify-content:center;min-width:2px;
}
.deviation-band.hole{color:#5fa4ff}
.deviation-band.shaft{color:#c79bff}
.deviation-band span{font-size:10px;font-weight:750;color:var(--text);letter-spacing:.04em}
.nominal-line{position:absolute;border-left:1px solid var(--line-strong)}
.window-scale{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:9px;color:var(--muted-2)}
.window-reference-note{flex:1;text-align:center;font-family:"Inter",ui-sans-serif,system-ui,sans-serif;font-size:8px;font-style:italic;letter-spacing:.02em;color:var(--muted-2);padding:0 10px}

/* ---------- tap drill ---------- */
.tap-selector-grid{display:grid;grid-template-columns:1fr 1.5fr .7fr;gap:10px;margin-top:16px}
.tap-empty-state{
  margin-top:14px;padding:24px;display:flex;align-items:center;justify-content:center;gap:14px;
  min-height:110px;text-align:left;color:var(--muted);
}
.tap-empty-mark{
  width:40px;height:40px;border-radius:10px;border:1px solid var(--line);display:grid;place-items:center;
  font-size:12px;font-weight:730;font-family:var(--mono);color:var(--accent-strong);background:var(--field);
}
.tap-empty-title{font-size:14px;color:var(--text);font-weight:640}
.tap-empty-copy{font-size:11.5px;margin-top:4px}
.drill-results-panel{margin-top:14px;padding:18px}
.drill-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.drill-cards.exact{grid-template-columns:minmax(260px,480px);justify-content:center}
.drill-card{
  padding:15px;border:1px solid var(--line);border-radius:11px;background:var(--field);
  transition:transform .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease);
}
.drill-card:hover{border-color:color-mix(in srgb,var(--accent) 26%,var(--line-strong));transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.drill-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.drill-name{font-family:var(--mono);font-size:22px;line-height:1;font-weight:660;letter-spacing:-.02em}
.thread-percent-badge{
  min-width:48px;height:32px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));background:var(--accent-soft);
  color:var(--accent-strong);border-radius:8px;display:grid;place-items:center;font-family:var(--mono);font-weight:650;font-size:12.5px;
}
.drill-dimensions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:14px}
.drill-dimensions>div{padding:9px;border-top:1px solid var(--line)}
.drill-dimensions span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.09em;font-weight:730;color:var(--muted-2)}
.drill-dimensions strong{display:block;margin-top:5px;font-family:var(--mono);font-size:14px;font-variant-numeric:tabular-nums}
.drill-percent-caption{margin-top:7px;color:var(--muted);font-size:9px;text-align:right}

/* ---------- reference tables ---------- */
.reference-hero,.calculator-hero{padding:18px 20px}
.reference-hero h1,.calculator-hero h1{margin:0;font-size:19px;letter-spacing:-.02em}
.reference-hero .helper{max-width:760px;margin-top:9px}
.data-table-panel{margin-top:14px;padding:0;overflow:hidden}
.table-panel-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px 16px;padding:14px 16px 12px;flex-wrap:wrap;
  border-bottom:1px solid var(--line);background:var(--panel-soft);
}
.table-panel-head h2{margin:0;font-size:14px;font-weight:620;letter-spacing:-.01em}
.data-table-wrap{overflow-x:hidden;max-height:none}
.data-table{width:100%;min-width:0;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;table-layout:fixed}
.data-table th{
  position:sticky;top:0;z-index:3;background:var(--panel-soft);color:var(--muted);text-align:right;
  font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;padding:10px 14px;border-bottom:1px solid var(--line);
}
.data-table td{text-align:right;padding:9px 14px;border-bottom:1px solid var(--line);color:var(--text);font-family:var(--mono);font-size:12.5px}
.data-table td:first-child{font-weight:620}
.data-table tbody tr:last-child td{border-bottom:0}
.data-table tbody tr{transition:background .12s var(--ease)}
.data-table tbody tr:hover{background:var(--accent-soft)}
.data-table th,.data-table td{
  text-align:center!important;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none;line-height:1.2;
}

/* ---------- feeds and speeds ---------- */
.calc-tabs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:16px;padding:3px;
  border:1px solid var(--line);border-radius:10px;background:var(--field);
}
.calc-tab{height:34px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:12px;font-weight:610;transition:color .14s var(--ease),background .14s var(--ease)}
.calc-tab:hover{color:var(--text)}
.calc-tab.active{background:var(--panel-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}
.calculator-body{margin-top:12px;padding:18px}
.calc-unit-row{
  display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:14px;
  border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);font-weight:620;
}
.calc-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:11px;margin-top:16px}
.calc-field{display:grid;gap:6px}
.calc-field input{padding:0 12px;font-family:var(--mono);font-size:14px}
.calc-result-panel{padding:18px}
.calc-result{margin-top:14px;padding:16px;border-radius:10px;border:1px solid var(--line);background:var(--field)}
.calc-result-value{font-family:var(--mono);font-size:26px;font-weight:660;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.calc-result-unit{margin-top:4px;color:var(--muted);font-size:11px}
.calc-result.blank .calc-result-value{color:var(--muted-2)}

/* ---------- focus and motion ---------- */
a,button,summary,input,select{outline:none}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{
  box-shadow:0 0 0 4px var(--accent-soft),0 0 0 1px var(--accent);border-color:var(--accent)!important;
}
@media(prefers-reduced-motion:no-preference){
  .panel,.nav-link,.control select,.calc-field input,.copy-btn,.icon-btn,.unit-btn,.feed-unit-btn,.calc-tab,.drill-card,.sidebar{
    transition-duration:.16s;transition-timing-function:var(--ease);
  }
}

/* ---------- responsive ---------- */
@media(max-width:1023px){
  .topbar{height:60px;padding:0 16px;gap:12px}
  .crumb{display:none}
  .crumb-sep{display:none}
  .crumb.current{font-size:14px;font-weight:680}
  .workspace,.reference-workspace,.feeds-workspace,.tap-workspace{width:calc(100% - 24px);margin:14px auto 32px}
  .setup-panel,.tap-setup-panel,.part-panel,.fit-panel,.diagram-panel,.reference-hero,.calculator-hero,.calculator-body{padding:16px}
  .parts-grid{grid-template-columns:1fr;gap:10px;margin-top:10px}
  .fit-panel,.diagram-panel,.designation-panel,.safety-panel,.source-note,.drill-results-panel,.tap-empty-state,.data-table-panel,.calculator-body{margin-top:10px}
  .tap-selector-grid{grid-template-columns:1fr;gap:10px;margin-top:16px}
  .control select{height:50px;font-size:16px}
  .fit-results{grid-template-columns:1fr 1fr}
  .drill-cards,.drill-cards.exact{grid-template-columns:1fr}
  .calc-fields{grid-template-columns:1fr}
}
@media(max-width:480px){
  .topbar{padding:0 12px}
  .top-actions{gap:6px}
  .unit-btn{padding:6px 8px}
  .workspace,.reference-workspace,.feeds-workspace,.tap-workspace{width:calc(100% - 14px)}
  .size-field{height:54px}
  .size-field input{font-size:22px;padding-left:14px}
  .size-unit{padding-right:14px}
  .selector-grid{grid-template-columns:1fr .72fr}
  .designation-main{display:grid;grid-template-columns:1fr}
  .copy-btn{width:100%}
  .designation-parts{display:grid;grid-template-columns:1fr 1fr}
  .designation-parts span{text-align:center}
  .fit-results{gap:7px}
  .metric{padding:11px}
  .diagram-note{display:none}
  .diagram-scale{margin-left:44px}
  .axis-label{left:-44px;width:38px}
  .drill-dimensions{grid-template-columns:1fr}
  .data-table th,.data-table td{padding:9px 11px}
}

/* Calculated deviation visualization generated by app.js */
.deviation-view{padding-top:0;margin-top:2px;margin-bottom:8px}
.difference-caption{font-size:9px;text-transform:uppercase;letter-spacing:.12em;font-weight:750;color:var(--muted-2);margin-bottom:10px}
.deviation-axis{
  height:78px;position:relative;margin:0 68px;border-radius:10px;background:var(--bg-elev);
  border:1px solid var(--line);overflow:hidden;
}
.deviation-axis:before{content:'';position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--line)}
.deviation-zero{position:absolute;left:50%;top:0;bottom:0;border-left:1px solid var(--line-strong);z-index:3}
.deviation-zero span{position:absolute;top:4px;left:6px;white-space:nowrap;font-family:var(--mono);font-size:8px;color:var(--muted-2)}
.deviation-band{height:20px;z-index:2}
.deviation-band.shaft{top:15px;color:#c79bff;background:rgba(199,155,255,.14);border-color:rgba(199,155,255,.72)}
.deviation-band.hole{top:43px;color:#5fa4ff;background:rgba(95,164,255,.13);border-color:rgba(95,164,255,.72)}
.deviation-band span{text-shadow:none}
.window-scale-labels{
  display:flex;justify-content:space-between;align-items:center;margin:8px 68px 0;
  font-family:var(--mono);font-size:9px;color:var(--muted-2);font-variant-numeric:tabular-nums;
}
.diagram-invalid{height:148px;display:grid;place-items:center;text-align:center;color:var(--red);font-size:12px;padding:18px}

/* Feeds & speeds generated input wrappers */
.calc-input-wrap{
  height:47px;display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--field);
  overflow:hidden;transition:border-color .16s var(--ease),box-shadow .16s var(--ease);
}
.calc-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.calc-input-wrap input{height:100%;border:0!important;box-shadow:none!important;background:transparent;padding:0 12px;min-width:0;flex:1}
.calc-input-wrap>span{padding:0 12px;color:var(--muted);font-size:11px;font-weight:660;border-left:1px solid var(--line)}

@media(max-width:820px){.deviation-axis{margin-left:46px;margin-right:46px}.window-scale-labels{margin-left:46px;margin-right:46px}}
@media(max-width:480px){.deviation-axis{margin-left:32px;margin-right:32px}.window-scale-labels{margin-left:32px;margin-right:32px;font-size:8px}.window-reference-note{font-size:7px;padding:0 5px}}


/* ---------- requested UI refinements ---------- */
/* Navigation is deliberately opaque: content behind the drawer should never show through. */
.sidebar{background:var(--bg-elev)}

/* Feeds & Speeds segmented controls keep identical geometry when keyboard-focused. */
.calc-tab:focus-visible,.feed-unit-btn:focus-visible{
  box-shadow:inset 0 0 0 1px var(--accent)!important;
  outline:none;
  border-color:transparent!important;
  transform:none!important;
}

/* Reference tables: prefer wrapping/compact columns over horizontal overflow on phones. */
@media(max-width:600px){
  .data-table th,.data-table td{padding:8px 4px!important;line-height:1.18}
  .data-table th{font-size:9px;letter-spacing:.045em}
  .data-table td{font-size:10.5px}
  /* Prevent iOS focus zoom from making calculator controls appear to grow. */
  .calc-input-wrap input,.control select{font-size:16px}
}

/* Exact theoretical tap hole for interpolation/boring — matches the Available Drills result panel. */
.exact-hole-panel{margin-top:14px;padding:18px}
.exact-hole-panel h2{font-size:18px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.02em}
.exact-hole-card{max-width:none;margin-top:14px}
@media(max-width:1023px){
  .exact-hole-panel{margin-top:10px;padding:18px}
}

/* Exact hole card: percentage-only top row, aligned left. */
.exact-hole-card-top{justify-content:flex-start}
.exact-hole-percent-caption{text-align:left}

/* Shared dimension-line arrowheads for technical drawings */
.dim-arrow{fill:var(--muted-2)}
.dim-arrow-accent{fill:var(--accent-strong)}

.wire-calc-btn,.primary-btn{min-height:38px;padding:9px 14px;border-radius:9px;border:1px solid var(--line);background:var(--accent);color:#fff;font-size:12px;font-weight:700;letter-spacing:.01em;transition:opacity .12s ease,border-color .12s ease,background .12s ease}
.wire-calc-btn:hover,.primary-btn:hover{opacity:.92}
.wire-calc-btn.calculated{background:var(--field);color:var(--muted);border-color:var(--line)}
.geometry-input-grid .primary-btn{width:100%}
.geometry-input-grid.hardness-fields{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1023px){.geometry-input-grid.hardness-fields{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.geometry-input-grid.hardness-fields{grid-template-columns:1fr}}

/* Result stat tiles inside a geometry-result-grid */
.geometry-result-item{padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--field);display:flex;flex-direction:column;gap:6px}
.geometry-result-item span{font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);font-weight:730}
.geometry-result-item strong{font-family:var(--mono);font-size:16px;font-weight:650;color:var(--text);font-variant-numeric:tabular-nums}

/* Inline status message inside a result grid (empty state / out-of-range notice) */
.callout{grid-column:1/-1;padding:14px 16px;border-radius:10px;border:1px dashed var(--line-strong);background:var(--field);color:var(--muted);font-size:12.5px;line-height:1.55;text-align:center}
.callout.info{border-style:solid}

/* Standalone legal / static content card (Sources, Privacy, Terms) */
.card{padding:20px}
.card h1{font-size:19px;margin:0 0 4px;font-weight:650;letter-spacing:-.02em}
.card h2{font-size:14px;margin:20px 0 6px;font-weight:650;letter-spacing:-.01em;color:var(--text)}
.card h2:first-of-type{margin-top:16px}
.card p{margin:0 0 10px;color:var(--muted);font-size:13px;line-height:1.65}
.card p:last-child{margin-bottom:0}
.card a{color:var(--accent-strong);text-decoration:none}
.card a:hover{text-decoration:underline}
.legal-links-panel{padding:18px 20px;margin-top:14px}
.legal-links-panel h2{font-size:14px;margin:0 0 6px;font-weight:650}
.legal-links-panel p{margin:0;color:var(--muted);font-size:13px}
.legal-links-panel a{color:var(--accent-strong);text-decoration:none}
.legal-links-panel a:hover{text-decoration:underline}

/* ---------- three-wire measurement ---------- */
.three-wire-workspace{width:min(1100px,calc(100% - 40px));margin:28px auto 56px}
.three-wire-setup-panel,.wire-panel{padding:20px}
.three-wire-setup-panel h1,.wire-panel h2{font-size:18px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.02em}
.three-wire-selector-grid{display:grid;grid-template-columns:1fr 1.55fr .7fr;gap:10px;margin-top:16px}
.wire-panel{margin-top:14px}
.wire-info-grid,.wire-target-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}
.wire-input-card{margin-top:14px;max-width:520px}
.wire-reference-row{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:10px;border:1px solid var(--line);background:var(--line);border-radius:10px;overflow:hidden}
.wire-reference-row>div{background:var(--field);padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.wire-reference-row span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);font-weight:730}
.wire-reference-row strong{font-family:var(--mono);font-size:12px;font-weight:640;text-align:right;font-variant-numeric:tabular-nums}
.inspection-grid{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(280px,1.15fr);gap:12px;align-items:stretch;margin-top:14px}
.inspection-result{min-height:84px;border:1px solid var(--line);border-radius:10px;background:var(--field);padding:13px 14px;display:flex;flex-direction:column;justify-content:center}
.inspection-pd{margin-top:7px;font-family:var(--mono);font-size:20px;font-weight:650;font-variant-numeric:tabular-nums}
.inspection-status{margin-top:5px;font-size:10.5px;color:var(--muted)}
.inspection-result.pass{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.inspection-result.pass .inspection-status{color:var(--green);font-weight:650}
.inspection-result.high,.inspection-result.low{border-color:color-mix(in srgb,var(--red) 45%,var(--line))}
.inspection-result.high .inspection-status,.inspection-result.low .inspection-status{color:var(--red);font-weight:650}
@media(max-width:1023px){
  .three-wire-workspace{width:calc(100% - 24px);margin:14px auto 32px}
  .three-wire-setup-panel,.wire-panel{padding:16px}
  .three-wire-selector-grid{grid-template-columns:1fr;gap:10px}
  .inspection-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  .three-wire-workspace{width:calc(100% - 14px)}
  .wire-info-grid,.wire-target-grid{grid-template-columns:1fr 1fr;gap:7px}
  .wire-reference-row{grid-template-columns:1fr}
  .wire-reference-row>div{min-width:0}
  .wire-reference-row strong{font-size:11px}
}

.wire-calc-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.wire-calc-btn{min-height:38px;padding:9px 14px;border-radius:9px;border:1px solid var(--line);background:var(--accent);color:#fff;font-size:12px;font-weight:700;letter-spacing:.01em;transition:opacity .12s ease,border-color .12s ease,background .12s ease}
.wire-calc-btn:hover{opacity:.92}
.wire-calc-btn.calculated{background:var(--field);color:var(--muted);border-color:var(--line)}
.wire-validation{font-size:11px;color:var(--red);font-weight:620}

/* ---------- bolt circle / shop geometry ---------- */
.bolt-workspace{width:min(1100px,calc(100% - 40px));margin:28px auto 56px}
.bolt-setup-panel,.bolt-visual-panel,.bolt-info-panel,.bolt-coord-panel{padding:20px}
.bolt-setup-panel h1,.bolt-visual-panel h2,.bolt-info-panel h2,.bolt-coord-panel h2{font-size:18px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.02em}
.bolt-mode-row{display:grid;grid-template-columns:1.2fr .65fr 1fr;gap:10px;margin-top:16px}
.bolt-input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.bolt-control-input{appearance:none;-webkit-appearance:none;width:100%;height:40px;border:1px solid var(--line);border-radius:9px;background:var(--field);color:var(--text);font-weight:560;font-size:13.5px;outline:none;padding:0 12px;transition:border-color .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease)}
.bolt-control-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.bolt-visual-panel,.bolt-info-panel,.bolt-coord-panel{margin-top:14px}
.bolt-visual{margin:14px auto 0;max-width:480px;min-height:320px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--field);overflow:hidden}
.bolt-visual svg{display:block;width:min(100%,420px);height:auto;padding:12px}
.bolt-axis{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:5 5}
.bolt-circle-line{fill:none;stroke:var(--muted-2);stroke-width:1.25;stroke-dasharray:3 4}
.bolt-center{fill:var(--accent)}
.bolt-start-line{stroke:color-mix(in srgb,var(--accent) 60%,var(--line-strong));stroke-width:1.2}
.bolt-hole{fill:var(--panel);stroke:var(--accent);stroke-width:2}
.bolt-hole-label,.bolt-axis-label,.bolt-direction-label{fill:var(--muted);font-family:var(--mono);font-size:10px;text-anchor:middle}
.bolt-axis-label{font-size:9px}.bolt-direction-label{font-weight:700;letter-spacing:.08em}
.bolt-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:14px}
.bolt-coordinate-head{align-items:center}
.bolt-table-wrap{margin-top:14px;border:1px solid var(--line);border-radius:11px;overflow:auto}
.bolt-table{width:100%;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}
.bolt-table th,.bolt-table td{padding:9px 10px;text-align:center;border-bottom:1px solid var(--line);font-family:var(--mono);white-space:nowrap}
.bolt-table th{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);background:var(--panel-soft);font-weight:730}
.bolt-table td{font-size:12px;color:var(--text)}
.bolt-table tr:last-child td{border-bottom:0}
@media(max-width:1023px){
  .bolt-workspace{width:calc(100% - 24px);margin:14px auto 32px}
  .bolt-setup-panel,.bolt-visual-panel,.bolt-info-panel,.bolt-coord-panel{padding:16px}
  .bolt-mode-row{grid-template-columns:1fr 1fr}
  .bolt-mode-row .control:first-child{grid-column:1/-1}
  .bolt-input-grid{grid-template-columns:1fr 1fr}
  .bolt-info-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .bolt-workspace{width:calc(100% - 14px)}
  .bolt-mode-row,.bolt-input-grid{grid-template-columns:1fr}
  .bolt-mode-row .control:first-child{grid-column:auto}
  .bolt-visual{min-height:280px}
  .bolt-coordinate-head{align-items:flex-start;flex-direction:column}
  .bolt-table th,.bolt-table td{padding:8px 5px}
  .bolt-table td{font-size:10.5px}
  .bolt-table th{font-size:8px}
}

/* ---------- taper calculator ---------- */
.taper-workspace{width:min(1100px,calc(100% - 40px));margin:28px auto 56px}
.taper-setup-panel,.taper-visual-panel,.taper-result-panel,.taper-reference-panel,.taper-position-panel{padding:20px}
.taper-setup-panel h1,.taper-visual-panel h2,.taper-result-panel h2,.taper-reference-panel h2,.taper-position-panel h2{font-size:18px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.02em}
.taper-mode-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.taper-input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.taper-standard-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.taper-optional-row{display:grid;grid-template-columns:minmax(240px,360px);gap:10px;margin-top:10px}
.calc-field em{font-style:normal;color:var(--muted-2);font-weight:500}
.taper-visual-panel,.taper-result-panel,.taper-reference-panel,.taper-position-panel{margin-top:14px}
.taper-visual{margin:14px auto 0;max-width:620px;min-height:285px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--field);overflow:hidden}
.taper-visual svg{display:block;width:min(100%,600px);height:auto;padding:10px}
.taper-axis{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:5 5}.taper-body{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.7}.taper-dim{stroke:var(--muted-2);stroke-width:1}.taper-label,.taper-angle-label{fill:var(--muted);font-family:var(--mono);font-size:10px;text-anchor:middle}.taper-angle-label{fill:var(--accent-strong);font-weight:650}
.taper-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:14px}.taper-small-value{font-size:15px!important}
.taper-dimension-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:10px;border:1px solid var(--line);background:var(--line);border-radius:10px;overflow:hidden}
.taper-dimension-strip>div{background:var(--field);padding:11px 12px}.taper-dimension-strip span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);font-weight:730}.taper-dimension-strip strong{display:block;margin-top:5px;font-family:var(--mono);font-size:13px;font-weight:650}
.taper-position-grid{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(280px,1.2fr);gap:12px;margin-top:14px;align-items:stretch}
@media(max-width:1023px){.taper-workspace{width:calc(100% - 24px);margin:14px auto 32px}.taper-setup-panel,.taper-visual-panel,.taper-result-panel,.taper-reference-panel,.taper-position-panel{padding:16px}.taper-input-grid{grid-template-columns:1fr 1fr}.taper-result-grid{grid-template-columns:1fr 1fr}.taper-position-grid{grid-template-columns:1fr}}
@media(max-width:560px){.taper-workspace{width:calc(100% - 14px)}.taper-mode-row,.taper-input-grid,.taper-standard-grid{grid-template-columns:1fr}.taper-result-grid{grid-template-columns:1fr 1fr;gap:7px}.taper-dimension-strip{grid-template-columns:1fr}.taper-visual{min-height:245px}.taper-label,.taper-angle-label{font-size:8.5px}}

/* ---------- CNC G/M code reference ---------- */
.cnc-workspace{width:min(1120px,calc(100% - 40px));margin:28px auto 56px}
.cnc-filter-panel,.cnc-results-panel,.cnc-detail-panel,.cnc-safety-panel{padding:20px}.cnc-results-panel,.cnc-detail-panel,.cnc-safety-panel{margin-top:14px}
.cnc-filter-panel h1,.cnc-results-panel h2,.cnc-detail-panel h2,.cnc-safety-panel h2{font-size:18px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.02em}
.cnc-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.cnc-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:10px}.cnc-search-field{min-width:0}.cnc-type-toggle{margin-bottom:0}
.cnc-type-btn{border:0;background:transparent;color:var(--muted);height:32px;padding:0 11px;border-radius:7px;font:inherit;font-size:11px;font-weight:650;cursor:pointer;white-space:nowrap}.cnc-type-btn.active{background:var(--panel);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.16)}
.cnc-category-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.cnc-category-btn{border:1px solid var(--line);background:var(--field);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:10px;font-weight:650;cursor:pointer}.cnc-category-btn.active{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}
.cnc-profile-note{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--field);font-size:11px;line-height:1.45;color:var(--muted)}
.cnc-code-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.cnc-code-card{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;width:100%;border:1px solid var(--line);background:var(--field);border-radius:11px;padding:11px 12px;color:var(--text);cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease),transform .15s var(--ease)}
.cnc-code-card:hover{border-color:var(--line-strong);background:var(--panel-soft)}.cnc-code-card:active{transform:translateY(1px)}
.cnc-code-token{font-family:var(--mono);font-size:16px;font-weight:750;color:var(--accent-strong);letter-spacing:-.02em}.cnc-code-main{min-width:0}.cnc-code-title{font-size:12px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cnc-code-meta{font-size:9px;color:var(--muted-2);margin-top:4px;text-transform:uppercase;letter-spacing:.07em}.cnc-code-status{font-size:9px;color:var(--muted-2);border:1px solid var(--line);border-radius:999px;padding:4px 7px;white-space:nowrap}.cnc-code-status.builder{color:#c28b35;border-color:color-mix(in srgb,#c28b35 45%,var(--line))}
.cnc-empty{padding:28px 10px;text-align:center;color:var(--muted);font-size:12px}.cnc-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.cnc-detail-code{font-family:var(--mono);font-size:25px;font-weight:800;color:var(--accent-strong);margin-bottom:4px}.cnc-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:16px}
.cnc-detail-section{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}.cnc-detail-section h3{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);margin:0 0 6px}.cnc-detail-section p{margin:0;font-size:12px;line-height:1.55;color:var(--text)}.cnc-detail-section pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--field);border:1px solid var(--line);padding:10px 12px;border-radius:9px;font-family:var(--mono);font-size:11px;color:var(--text)}
.cnc-source-strip{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:14px;padding:11px 12px;border:1px solid var(--line);background:var(--field);border-radius:10px}.cnc-source-strip span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2)}.cnc-source-strip strong{display:block;margin-top:3px;font-size:10px;color:var(--text)}.cnc-source-strip a{font-size:10px;color:var(--accent-strong);text-decoration:none;font-weight:650}.cnc-source-strip a:hover{text-decoration:underline}
@media(max-width:1023px){.cnc-workspace{width:calc(100% - 24px);margin:14px auto 32px}.cnc-filter-panel,.cnc-results-panel,.cnc-detail-panel,.cnc-safety-panel{padding:16px}.cnc-code-list{grid-template-columns:1fr}.cnc-detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.cnc-workspace{width:calc(100% - 14px)}.cnc-filter-grid{grid-template-columns:1fr}.cnc-search-row{grid-template-columns:1fr}.cnc-type-toggle{width:100%}.cnc-type-btn{flex:1}.cnc-code-card{grid-template-columns:58px minmax(0,1fr)}.cnc-code-status{grid-column:2;justify-self:start;margin-top:-4px}.cnc-detail-grid{grid-template-columns:1fr 1fr}.cnc-source-strip{align-items:flex-start;flex-direction:column}}

/* ---------- surface finish / scallop ---------- */
.sf-workspace{width:min(1100px,calc(100% - 40px));margin:28px auto 56px}.sf-setup-panel,.sf-visual-panel,.sf-result-panel{padding:20px}.sf-visual-panel,.sf-result-panel{margin-top:14px}.sf-setup-panel h1,.sf-visual-panel h2,.sf-result-panel h2{font-size:18px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.02em}.sf-mode-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.sf-input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.sf-visual{margin:14px auto 0;max-width:620px;min-height:275px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--field);overflow:hidden}.sf-visual svg{width:min(100%,600px);height:auto;padding:12px;display:block}.sf-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:14px}.sf-result-grid .metric{min-width:0}.sf-result-grid .metric-value{font-size:18px;overflow-wrap:anywhere}.sf-geom{stroke:var(--accent);stroke-width:2;fill:none}.sf-soft{stroke:var(--line-strong);stroke-width:1.2;fill:none}.sf-fill{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5}.sf-label{fill:var(--muted);font:10px var(--mono);text-anchor:middle}.sf-cusp{fill:var(--accent-strong);font:650 10px var(--mono);text-anchor:middle}@media(max-width:1023px){.sf-workspace{width:calc(100% - 24px);margin:14px auto 32px}.sf-setup-panel,.sf-visual-panel,.sf-result-panel{padding:16px}.sf-input-grid{grid-template-columns:1fr 1fr}.sf-result-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.sf-workspace{width:calc(100% - 14px)}.sf-mode-row,.sf-input-grid{grid-template-columns:1fr}.sf-visual{min-height:235px}.sf-result-grid{grid-template-columns:1fr 1fr;gap:7px}.sf-result-grid .metric-value{font-size:15px}}

/* ---------- general shop geometry solvers ---------- */
.geometry-workspace{width:min(1040px,calc(100% - 40px));margin:28px auto 56px}.geometry-setup-panel,.geometry-visual-panel,.geometry-result-panel{padding:20px}.geometry-setup-panel h1,.geometry-visual-panel h2,.geometry-result-panel h2{font-size:18px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.02em}.geometry-intro{margin-top:10px;max-width:760px}.geometry-input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.geometry-visual-panel,.geometry-result-panel{margin-top:14px}.geometry-visual{margin:14px auto 0;max-width:620px;min-height:300px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--field);overflow:hidden}.geometry-visual svg{display:block;width:min(100%,600px);height:auto;padding:12px}.geometry-shape{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.8}.geometry-right{fill:none;stroke:var(--muted-2);stroke-width:1.2}.geometry-label,.geometry-angle{fill:var(--muted);font-family:var(--mono);font-size:11px;text-anchor:middle}.geometry-angle{fill:var(--accent-strong);font-weight:650}.geometry-result-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:14px}.circle-result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.geometry-small-value{font-size:15px!important}.geometry-dms-strip{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:10px;border:1px solid var(--line);background:var(--line);border-radius:10px;overflow:hidden}.geometry-dms-strip>div{background:var(--field);padding:11px 12px}.geometry-dms-strip span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);font-weight:730}.geometry-dms-strip strong{display:block;margin-top:5px;font-family:var(--mono);font-size:13px}.circle-full{fill:none;stroke:var(--muted-2);stroke-width:1.2;stroke-dasharray:4 4}.circle-radius{stroke:var(--line-strong);stroke-width:1.1}.circle-chord{stroke:var(--accent);stroke-width:2}.circle-sagitta{stroke:var(--accent-strong);stroke-width:1.3;stroke-dasharray:3 3}@media(max-width:1023px){.geometry-workspace{width:calc(100% - 24px);margin:14px auto 32px}.geometry-setup-panel,.geometry-visual-panel,.geometry-result-panel{padding:16px}.geometry-input-grid{grid-template-columns:1fr 1fr}.geometry-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.circle-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.geometry-workspace{width:calc(100% - 14px)}.geometry-input-grid{grid-template-columns:1fr}.geometry-result-grid,.circle-result-grid{grid-template-columns:1fr 1fr;gap:7px}.geometry-visual{min-height:245px}.geometry-dms-strip{grid-template-columns:1fr}}

/* Right-triangle known-value solver */
.geometry-known-values{max-width:420px;margin:18px 0 16px;display:flex;flex-direction:column;gap:7px}
.geometry-known-values select{width:100%}
.geometry-field-disabled{opacity:.48}
.geometry-field-disabled input{cursor:not-allowed}

/* Right-triangle terminology + compact known-value inputs */
.triangle-reference{margin:16px auto 4px;max-width:600px;min-height:220px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--field);overflow:hidden}
.triangle-reference svg{display:block;width:min(100%,560px);height:auto;padding:10px 14px}
.triangle-side-label{fill:var(--muted);font-family:var(--mono);font-size:15px;font-weight:650;text-anchor:middle}
.triangle-angle-label{fill:var(--accent-strong);font-family:var(--mono);font-size:21px;font-weight:750;text-anchor:middle}
.triangle-right-label{fill:var(--muted-2);font-family:var(--mono);font-size:11px;text-anchor:end}
.triangle-field-hidden{display:none!important}
.triangle-input-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
@media(max-width:560px){.triangle-reference{min-height:205px}.triangle-reference svg{padding:4px 2px}.triangle-side-label{font-size:16px}.triangle-angle-label{font-size:23px}.triangle-right-label{font-size:12px}.triangle-input-grid{grid-template-columns:1fr}}

/* Right triangle: keep paired inputs visually fixed when focused. */
.triangle-input-grid .calc-input-wrap{
  box-sizing:border-box;
}
.triangle-input-grid .calc-input-wrap:focus-within{
  border-color:var(--accent);
  box-shadow:inset 0 0 0 1px var(--accent);
}
.triangle-input-grid .calc-input-wrap input:focus,
.triangle-input-grid .calc-input-wrap input:focus-visible{
  border:0!important;
  box-shadow:none!important;
  outline:none!important;
  transform:none!important;
}
@media(max-width:600px){
  .triangle-input-grid .calc-input-wrap input{font-size:16px}
}

/* Right triangle input alignment — focus must never change box geometry. */
.triangle-input-grid{
  align-items:start;
}
.triangle-input-grid .calc-field{
  min-width:0;
  align-self:start;
}
.triangle-input-grid .calc-input-wrap,
.triangle-input-grid .calc-input-wrap:hover,
.triangle-input-grid .calc-input-wrap:focus-within{
  width:100%;
  height:47px;
  min-height:47px;
  box-sizing:border-box;
  margin:0;
  padding:0;
  border-width:1px;
  border-style:solid;
  transform:none!important;
}
.triangle-input-grid .calc-input-wrap:focus-within{
  border-color:var(--accent);
  box-shadow:inset 0 0 0 1px var(--accent)!important;
}
.triangle-input-grid .calc-input-wrap input,
.triangle-input-grid .calc-input-wrap input:hover,
.triangle-input-grid .calc-input-wrap input:focus,
.triangle-input-grid .calc-input-wrap input:focus-visible{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-width:0;
  height:45px;
  min-height:45px;
  box-sizing:border-box;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  box-shadow:none!important;
  transform:none!important;
  line-height:normal;
  font-size:16px;
}
.triangle-input-grid .calc-input-wrap>span{
  flex:0 0 auto;
  height:45px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
}
/* Countersink / Counterbore — match Shop Geometry screens */
.ff-controls{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.ff-visual{max-width:620px;min-height:300px}
.ff-visual svg{width:min(100%,600px);height:auto;padding:12px;display:block}
.ff-result-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.ff-work{fill:var(--field);stroke:var(--line-strong);stroke-width:1.6}
.ff-fastener{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.8}
.ff-center{stroke:var(--muted-2);stroke-width:1;stroke-dasharray:6 5}
.ff-dim{stroke:var(--muted-2);stroke-width:1.1}
.ff-accent{fill:none;stroke:var(--accent-strong);stroke-width:1.5}
.ff-label{fill:var(--muted);font:11px var(--mono);text-anchor:middle}
.ff-label.ff-left{text-anchor:start}
.ff-title{fill:var(--text);font:650 13px Inter,sans-serif;text-anchor:middle}
.ff-sub{margin-top:5px;color:var(--muted-2);font-size:9px;line-height:1.3}
.ff-note{margin-top:12px}
@media(max-width:1023px){.ff-controls{grid-template-columns:1fr 1fr}.ff-result-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ff-controls{grid-template-columns:1fr}.ff-visual{min-height:245px}.ff-result-grid{grid-template-columns:1fr 1fr;gap:7px}.ff-label{font-size:12px}.ff-title{font-size:14px}}

/* Fastener feature selects use the same control styling as the other calculators. */
.ff-controls .calc-field select{
  appearance:none;-webkit-appearance:none;width:100%;height:40px;border:1px solid var(--line);border-radius:9px;
  background-color:var(--field);color:var(--text);font-weight:560;font-size:13.5px;outline:none;padding:0 32px 0 12px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238b93a1' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:10px 6px;
}
.ff-controls .calc-field select:hover{border-color:var(--line-strong)}
.ff-controls .calc-field select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
@media(max-width:560px){.ff-controls .calc-field select{height:50px;font-size:16px}}

/* Hardness conversion: keep controls viewport-safe when focused on mobile. */
.hardness-fields > *{
  min-width:0;
}
.hardness-fields .calc-field,
.hardness-fields .control{
  min-width:0;
  align-self:start;
}
.hardness-fields .calc-field input,
.hardness-fields .control select,
.hardness-fields .calc-field input:hover,
.hardness-fields .control select:hover,
.hardness-fields .calc-field input:focus,
.hardness-fields .control select:focus,
.hardness-fields .calc-field input:focus-visible,
.hardness-fields .control select:focus-visible{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  margin:0;
  transform:none!important;
}
.hardness-fields .calc-field input:focus,
.hardness-fields .control select:focus,
.hardness-fields .calc-field input:focus-visible,
.hardness-fields .control select:focus-visible{
  border-color:var(--accent)!important;
  box-shadow:inset 0 0 0 1px var(--accent)!important;
  outline:none!important;
}
@media(max-width:600px){
  .hardness-fields .calc-field input,
  .hardness-fields .control select{
    font-size:16px;
  }
}


/* Feeds & Speeds Guide */
.fs-guide-panel{margin-top:14px;padding:18px 20px}
.fs-guide-panel h2{margin:3px 0 0;font-size:20px;letter-spacing:-.02em}
.fs-guide-tabs{display:flex;gap:5px;padding:5px;margin-top:18px;border:1px solid var(--line);border-radius:11px;background:var(--field);width:max-content;max-width:100%;overflow:auto}
.fs-guide-tab{min-height:38px;padding:0 16px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:660;white-space:nowrap;cursor:pointer;transition:background .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease)}
.fs-guide-tab:hover{color:var(--text)}
.fs-guide-tab.active{background:var(--panel-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong),0 2px 8px rgba(0,0,0,.18)}
.fs-guide-view{margin-top:16px}.fs-guide-view[hidden],.hsm-only[hidden]{display:none!important}
.fs-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:11px}
.fs-guide-grid .calc-field select{height:42px;width:100%;min-width:0;padding:0 34px 0 12px;border:1px solid var(--line);border-radius:8px;background:var(--field);color:var(--text);font-size:13px;outline:none}
.fs-guide-grid .calc-field select:focus{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.fs-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:14px}
.fs-result-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--field)}
.fs-result-value{margin-top:7px;font:660 23px/1 var(--mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fs-result-unit{margin-top:5px;color:var(--muted);font-size:11px}.fs-result-sub{margin-top:9px;color:var(--muted-2);font-size:10px;line-height:1.45}
.fs-guide-notes{display:grid;gap:7px;margin-top:10px}.fs-note{padding:10px 12px;border-left:2px solid var(--accent);border-radius:0 7px 7px 0;background:var(--accent-soft);color:var(--muted);font-size:11px;line-height:1.5}
.tune-buttons{display:flex;flex-wrap:wrap;gap:9px}.tune-btn{min-height:40px;padding:0 15px;border:1px solid var(--line);border-radius:9px;background:var(--field);color:var(--muted);font-size:12px;font-weight:650;cursor:pointer;transition:border-color .16s var(--ease),background .16s var(--ease),color .16s var(--ease),transform .1s var(--ease)}.tune-btn:hover{border-color:var(--line-strong);color:var(--text);transform:translateY(-1px)}.tune-btn:active{transform:translateY(0)}.tune-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong);box-shadow:0 6px 16px -8px rgba(79,140,255,.5)}
.tune-advice{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:11px;background:var(--field);color:var(--muted);font-size:12px;line-height:1.55}.tune-advice p{margin:7px 0 0}.tune-advice ul{margin:8px 0 0;padding-left:18px}.tune-advice li+li{margin-top:5px}
@media(max-width:560px){.fs-guide-grid,.fs-result-grid{grid-template-columns:1fr}.fs-guide-grid .calc-field select{height:50px;font-size:16px}.fs-guide-tabs{width:100%}.fs-guide-tab{flex:1}}


/* Volumetric / High-Speed Milling results */
.hsm-result-panel{
  margin-top:16px;
  padding:18px;
  border:1px solid rgba(79,140,255,.28);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(79,140,255,.065),rgba(79,140,255,.018)),#0d1016;
}
.hsm-result-panel[hidden]{display:none!important}
.hsm-result-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.hsm-result-head h3{
  margin:3px 0 5px;
  font-size:18px;
  font-weight:650;
  letter-spacing:-.01em;
}
.hsm-result-head p{
  margin:0;
  max-width:760px;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
.hsm-badge{
  flex:0 0 auto;
  padding:5px 9px;
  border:1px solid rgba(79,140,255,.35);
  border-radius:999px;
  color:var(--accent-strong);
  background:rgba(79,140,255,.09);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
}
.hsm-result-grid{margin-top:0}
.hsm-result-note{
  margin-top:12px;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}


/* Advisor milling-mode selector */
.advisor-milling-mode{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:18px 0 16px;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
}
.advisor-milling-mode-btn{
  position:relative;
  appearance:none;
  min-width:0;
  padding:18px 20px 18px 52px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--field);
  color:var(--text);
  text-align:left;
  cursor:pointer;
  transition:border-color .16s var(--ease),background .16s var(--ease),box-shadow .16s var(--ease),transform .1s var(--ease);
}
.advisor-milling-mode-btn::before{
  content:"";
  position:absolute;left:20px;top:50%;transform:translateY(-50%);
  width:18px;height:18px;border-radius:50%;
  border:1.5px solid var(--line-strong);
  background:var(--panel);
  transition:border-color .16s var(--ease),background .16s var(--ease);
}
.advisor-milling-mode-btn::after{
  content:"";
  position:absolute;left:26px;top:50%;transform:translateY(-50%) scale(0);
  width:8px;height:8px;border-radius:50%;
  background:#fff;
  transition:transform .16s var(--ease);
}
.advisor-milling-mode-btn span{
  display:block;
  font-size:14px;
  font-weight:680;
  letter-spacing:-.01em;
}
.advisor-milling-mode-btn small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}
.advisor-milling-mode-btn:hover{
  border-color:var(--line-strong);
  background:var(--panel-soft);
  transform:translateY(-1px);
}
.advisor-milling-mode-btn:active{transform:translateY(0)}
.advisor-milling-mode-btn.active{
  border-color:var(--accent);
  background:var(--accent-soft);
  box-shadow:0 0 0 1px var(--accent) inset,0 8px 20px -8px rgba(79,140,255,.4);
}
.advisor-milling-mode-btn.active::before{border-color:var(--accent);background:var(--accent)}
.advisor-milling-mode-btn.active::after{transform:translateY(-50%) scale(1)}
.advisor-milling-mode-btn.active small{color:var(--accent-strong)}
.advisor-internal-strategy{display:none!important}

@media(max-width:700px){
  .advisor-milling-mode{grid-template-columns:1fr}
}




/* Unified SVG instrument styling — matched to the Machining Envelope */
:root{
  --svg-panel-bg:var(--field);
  --svg-panel-bg-2:var(--bg-elev);
  --svg-border:var(--line);
  --svg-grid:var(--line);
  --svg-axis:color-mix(in srgb,var(--text) 55%,transparent);
  --svg-text:var(--muted);
  --svg-text-strong:var(--text);
  --svg-accent:var(--accent);
  --svg-muted-accent:var(--accent-strong);
  --svg-good:var(--green);
  --svg-warn:var(--amber);
  --svg-danger:var(--red);
}

svg.instrument-svg,
.calc-graphic svg,
.reference-graphic svg,
.result-graphic svg,
.diagram-card svg,
.visual-card svg,
.tool-graphic svg,
.geometry-graphic svg,
svg[data-machinist-graphic]{
  display:block;
  width:100%;
  max-width:100%;
  overflow:visible;
  border:1px solid var(--svg-border);
  border-radius:12px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.008)),
    var(--svg-panel-bg);
}

svg.instrument-svg text,
.calc-graphic svg text,
.reference-graphic svg text,
.result-graphic svg text,
.diagram-card svg text,
.visual-card svg text,
.tool-graphic svg text,
.geometry-graphic svg text,
svg[data-machinist-graphic] text{
  fill:var(--svg-text);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:11px;
}

svg.instrument-svg .svg-title,
.calc-graphic svg .svg-title,
.reference-graphic svg .svg-title,
.result-graphic svg .svg-title,
.diagram-card svg .svg-title,
.visual-card svg .svg-title,
.tool-graphic svg .svg-title,
.geometry-graphic svg .svg-title{
  fill:var(--svg-text-strong);
  font-weight:650;
}

svg.instrument-svg line,
.calc-graphic svg line,
.reference-graphic svg line,
.result-graphic svg line,
.diagram-card svg line,
.visual-card svg line,
.tool-graphic svg line,
.geometry-graphic svg line{
  vector-effect:non-scaling-stroke;
}

svg.instrument-svg .grid,
svg.instrument-svg .guide,
.calc-graphic svg .grid,
.calc-graphic svg .guide,
.reference-graphic svg .grid,
.reference-graphic svg .guide,
.result-graphic svg .grid,
.result-graphic svg .guide,
.diagram-card svg .grid,
.diagram-card svg .guide,
.visual-card svg .grid,
.visual-card svg .guide,
.tool-graphic svg .grid,
.tool-graphic svg .guide,
.geometry-graphic svg .grid,
.geometry-graphic svg .guide{
  stroke:var(--svg-grid);
}

svg.instrument-svg .axis,
.calc-graphic svg .axis,
.reference-graphic svg .axis,
.result-graphic svg .axis,
.diagram-card svg .axis,
.visual-card svg .axis,
.tool-graphic svg .axis,
.geometry-graphic svg .axis{
  stroke:var(--svg-axis);
}

svg.instrument-svg .accent,
.calc-graphic svg .accent,
.reference-graphic svg .accent,
.result-graphic svg .accent,
.diagram-card svg .accent,
.visual-card svg .accent,
.tool-graphic svg .accent,
.geometry-graphic svg .accent{
  stroke:var(--svg-accent);
  fill:none;
}

svg.instrument-svg .accent-fill,
.calc-graphic svg .accent-fill,
.reference-graphic svg .accent-fill,
.result-graphic svg .accent-fill,
.diagram-card svg .accent-fill,
.visual-card svg .accent-fill,
.tool-graphic svg .accent-fill,
.geometry-graphic svg .accent-fill{
  fill:rgba(79,140,255,.14);
  stroke:var(--svg-accent);
}

svg.instrument-svg .dimension,
.calc-graphic svg .dimension,
.reference-graphic svg .dimension,
.result-graphic svg .dimension,
.diagram-card svg .dimension,
.visual-card svg .dimension,
.tool-graphic svg .dimension,
.geometry-graphic svg .dimension{
  stroke:var(--svg-muted-accent);
  fill:none;
  stroke-width:1.2;
}

svg.instrument-svg .dimension-label,
.calc-graphic svg .dimension-label,
.reference-graphic svg .dimension-label,
.result-graphic svg .dimension-label,
.diagram-card svg .dimension-label,
.visual-card svg .dimension-label,
.tool-graphic svg .dimension-label,
.geometry-graphic svg .dimension-label{
  fill:#c9d7f1;
  font-family:"JetBrains Mono","SF Mono",SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;
  font-size:10px;
}

svg.instrument-svg .marker,
.calc-graphic svg .marker,
.reference-graphic svg .marker,
.result-graphic svg .marker,
.diagram-card svg .marker,
.visual-card svg .marker,
.tool-graphic svg .marker,
.geometry-graphic svg .marker{
  fill:var(--svg-accent);
  stroke:#dce8ff;
  stroke-width:1.5;
}

svg.instrument-svg .workpiece,
.calc-graphic svg .workpiece,
.reference-graphic svg .workpiece,
.result-graphic svg .workpiece,
.diagram-card svg .workpiece,
.visual-card svg .workpiece,
.tool-graphic svg .workpiece,
.geometry-graphic svg .workpiece{
  fill:#171b24;
  stroke:rgba(220,230,245,.34);
}

svg.instrument-svg .tool,
.calc-graphic svg .tool,
.reference-graphic svg .tool,
.result-graphic svg .tool,
.diagram-card svg .tool,
.visual-card svg .tool,
.tool-graphic svg .tool,
.geometry-graphic svg .tool{
  fill:#131925;
  stroke:#7ea6ff;
}

svg.instrument-svg .centerline,
.calc-graphic svg .centerline,
.reference-graphic svg .centerline,
.result-graphic svg .centerline,
.diagram-card svg .centerline,
.visual-card svg .centerline,
.tool-graphic svg .centerline,
.geometry-graphic svg .centerline{
  stroke:rgba(126,166,255,.42);
  stroke-dasharray:5 5;
}

svg.instrument-svg .warning,
.calc-graphic svg .warning,
.reference-graphic svg .warning,
.result-graphic svg .warning,
.diagram-card svg .warning,
.visual-card svg .warning,
.tool-graphic svg .warning,
.geometry-graphic svg .warning{
  stroke:var(--svg-warn);
  fill:none;
}

svg.instrument-svg .danger,
.calc-graphic svg .danger,
.reference-graphic svg .danger,
.result-graphic svg .danger,
.diagram-card svg .danger,
.visual-card svg .danger,
.tool-graphic svg .danger,
.geometry-graphic svg .danger{
  stroke:var(--svg-danger);
  fill:none;
}

/* Avoid a redundant nested box where the SVG already sits inside a panelled container */
.triangle-reference svg.instrument-svg,
.envelope-hero svg.instrument-svg{
  border:none;background:none;border-radius:0;
}


/* Calculated fit relationship: three equal result cards across on wider screens. */
#fitResults.fit-results{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
#fitResults.fit-results .metric{
  width:100%;
  min-width:0;
}
@media (max-width:720px){
  #fitResults.fit-results{
    grid-template-columns:1fr;
  }
}

/* Countersink / counterbore inch-mm segmented selector. */
.ff-standard-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
/* Bolt-circle result actions: full-pattern clipboard export beside coordinate mode. */
.bolt-coordinate-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
#boltCopyStatus{
  min-height:16px;
  margin:4px 0 0;
  text-align:right;
}
@media(max-width:600px){
  .bolt-coordinate-head{
    align-items:flex-start;
    gap:12px;
  }
  .bolt-coordinate-actions{
    width:100%;
    justify-content:space-between;
  }
}


/* Hardness conversion reference chart — aligned with app reference tables */
.hardness-material-control{
  max-width:560px;
}
.hardness-chart-panel{
  min-width:0;
}
.hardness-table-wrap{
  width:100%;
  overflow:visible;
}
.hardness-table{
  width:100%;
  border-collapse:collapse;
  font-variant-numeric:tabular-nums;
}
.hardness-table th,
.hardness-table td{
  padding:12px 14px;
  border-bottom:1px solid var(--line);
  text-align:right;
  white-space:nowrap;
}
.hardness-table th:first-child,
.hardness-table td:first-child{
  text-align:left;
}
.hardness-table thead th{
  position:sticky;
  top:0;
  z-index:3;
  background:var(--panel);
  color:var(--muted);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.hardness-table tbody td{
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  color:var(--text);
}
.hardness-table tbody tr:hover td{
  background:rgba(79,140,255,.04);
}
.hardness-table tbody tr:last-child td{
  border-bottom:0;
}
@media(max-width:720px){
  .hardness-material-control{
    max-width:none;
  }
  .hardness-table-wrap{
    overflow-x:auto;
  }
  .hardness-table th,
  .hardness-table td{
    padding:10px 12px;
  }
}

/* Advisor mode split: one shared foundation, two distinct milling workspaces */
.advisor-mode-page{
  margin:14px 0 12px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel-soft);
}
.advisor-mode-page>div{display:grid;gap:4px}
.advisor-mode-page-kicker{
  color:var(--accent);
  font-size:10px;
  font-weight:700;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.advisor-mode-page strong{font-size:17px;letter-spacing:-.015em}
.advisor-mode-page small{color:var(--muted);line-height:1.45}
.advisor-hsm-mode .advisor-mode-page{border-color:var(--line-strong)}
.advisor-hsm-mode #guideAe{border-color:var(--accent)}
.advisor-hsm-mode #guideAe:focus{box-shadow:0 0 0 2px var(--accent-soft)}

/* Feeds & Speeds Advisor — distinct Conventional and HSM screens */
.advisor-mode-screen{
  animation:advisorScreenIn .16s ease-out;
}
.advisor-mode-screen[hidden]{display:none!important}
@keyframes advisorScreenIn{
  from{opacity:.55;transform:translateY(5px)}
  to{opacity:1;transform:none}
}
.hsm-screen-intro{
  margin-bottom:16px;
  padding:0;
  border:0;
  background:none;
}
.hsm-screen-intro h2{
  margin:3px 0 0;
  font-size:19px;
  letter-spacing:-.02em;
}
.hsm-screen-intro .helper{
  max-width:780px;
  margin-top:8px;
}
.hsm-input-panel.advisor-inputs{
  border:0;
  background:none;
  padding:.2rem 0 .35rem;
}
.hsm-required-field .calc-input-wrap{
  outline:1px solid var(--accent);
  outline-offset:-1px;
  border-radius:inherit;
}
.hsm-advanced{
  margin-top:14px;
}
.hsm-advisor-screen .advisor-answer{
  margin-top:14px;
}
.advisor-hsm-mode .fs-guide-tabs{
  display:none;
}
.advisor-hsm-mode #fsGuideTune{
  display:none!important;
}
.advisor-hsm-mode .advisor-milling-mode{
  margin-bottom:16px;
}


/* ---------- GD&T reference ---------- */
.gdt-workspace{width:min(1180px,calc(100% - 40px))}
.gdt-hero{padding:22px}.gdt-hero h1{margin:0;font-size:22px;letter-spacing:-.025em}.gdt-search-row{margin-top:17px}.gdt-search-field{max-width:680px}.gdt-category-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.gdt-category-btn{border:1px solid var(--line);background:var(--field);color:var(--muted);border-radius:999px;padding:7px 11px;font-size:11px;font-weight:650}.gdt-category-btn:hover{color:var(--text);border-color:var(--line-strong)}.gdt-category-btn.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent-strong)}
.gdt-fcf-panel,.gdt-results-panel,.gdt-detail-panel,.gdt-calc-panel,.gdt-concepts-panel,.gdt-concept-detail,.gdt-legacy-panel{padding:20px;margin-top:14px}.gdt-fcf-demo{display:flex;align-items:stretch;margin-top:16px;max-width:720px}.gdt-fcf-col{display:flex;flex-direction:column}.gdt-fcf-cell{flex:1;min-height:54px;padding:0 16px;border:1px solid var(--line-strong);border-right:0;background:var(--field);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:17px;font-weight:650}.gdt-fcf-col:first-child .gdt-fcf-cell{border-radius:9px 0 0 9px}.gdt-fcf-col:last-child .gdt-fcf-cell{border-right:1px solid var(--line-strong);border-radius:0 9px 9px 0}.gdt-symbol-token{font-size:24px;color:var(--accent-strong)}.gdt-mod{font-size:14px}.gdt-fcf-label{display:block;margin-top:7px;color:var(--muted-2);font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;text-align:center;padding:0 4px}.gdt-note{font-size:11px;line-height:1.55;color:var(--muted);margin:12px 0 0}
.gdt-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:15px}.gdt-card{width:100%;border:1px solid var(--line);background:var(--field);border-radius:10px;padding:13px 14px;display:grid;grid-template-columns:48px 1fr 18px;align-items:center;gap:12px;text-align:left}.gdt-card:hover{border-color:var(--line-strong);background:var(--panel-soft)}.gdt-card-symbol{width:46px;height:46px;border:1px solid var(--line-strong);border-radius:9px;display:grid;place-items:center;font:700 21px var(--mono);color:var(--accent-strong);background:var(--panel)}.gdt-card-main{min-width:0;display:flex;flex-direction:column;gap:3px}.gdt-card-main strong{font-size:13.5px}.gdt-card-main>span:last-child{font-size:10.5px;color:var(--muted);line-height:1.35}.gdt-card-cat{font-size:8.5px!important;text-transform:uppercase;letter-spacing:.11em;color:var(--muted-2)!important;font-weight:750}.gdt-card-arrow{font-size:22px;color:var(--muted-2)}
.gdt-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.gdt-detail-title-row{display:flex;gap:13px;align-items:center}.gdt-detail-title-row h2,.gdt-concept-detail h2{margin:0;font-size:19px}.gdt-detail-symbol{width:54px;height:54px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-soft);border-radius:11px;display:grid;place-items:center;font:700 25px var(--mono);color:var(--accent-strong)}.gdt-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:16px}.gdt-detail-section{margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}.gdt-detail-section h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);margin:0 0 7px}.gdt-detail-section p{font-size:12.5px;line-height:1.6;color:var(--muted);margin:0}.gdt-zone-visual{margin-top:17px;border:1px solid var(--line);border-radius:10px;background:var(--field);padding:16px}.gdt-zone-graphic{height:150px;position:relative;overflow:hidden;display:grid;place-items:center}.gdt-zone-graphic>div{width:230px;height:110px;position:relative}.zone-planes i,.zone-parallel i{position:absolute;left:28px;right:28px;height:2px;background:var(--accent-strong)}.zone-planes i:first-child,.zone-parallel i:first-child{top:28px}.zone-planes i:nth-child(2),.zone-parallel i:nth-child(2){bottom:28px}.zone-planes .gdt-part-line,.zone-parallel .gdt-part-line{position:absolute;left:40px;right:40px;top:53px;height:5px;background:var(--muted);transform:rotate(-3deg)}.zone-rings i,.zone-rings b{position:absolute;border:2px solid var(--accent-strong);border-radius:50%;inset:5px 65px}.zone-rings i:nth-child(2){inset:15px 75px}.zone-rings b{inset:31px 91px;border-color:var(--muted)}.zone-cylinder i,.zone-cylinder b{position:absolute;left:45px;right:45px;height:55px;border:2px solid var(--accent-strong);border-radius:50%;top:27px}.zone-cylinder b{left:62px;right:62px;top:39px;height:31px;border-color:var(--muted)}.zone-perp i{position:absolute;left:35px;bottom:20px;width:150px;height:2px;background:var(--muted)}.zone-perp b,.zone-perp span{position:absolute;top:17px;bottom:20px;width:2px;background:var(--accent-strong)}.zone-perp b{left:95px}.zone-perp span{left:125px}.zone-angle i{position:absolute;left:28px;bottom:24px;width:165px;height:2px;background:var(--muted)}.zone-angle b,.zone-angle span{position:absolute;left:65px;width:130px;height:2px;background:var(--accent-strong);transform-origin:left center;transform:rotate(-24deg)}.zone-angle b{top:42px}.zone-angle span{top:58px}.zone-position i{position:absolute;width:82px;height:82px;border:2px dashed var(--accent-strong);border-radius:50%;left:74px;top:13px}.zone-position b{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--muted);left:125px;top:50px}.zone-position span{position:absolute;left:110px;top:33px;font:600 24px var(--mono);color:var(--accent-strong)}.zone-profile i,.zone-profile b{position:absolute;left:30px;width:170px;height:45px;border-top:2px solid var(--accent-strong);border-radius:50%;top:27px}.zone-profile b{top:42px;border-color:var(--accent-strong)}.zone-profile span{position:absolute;left:44px;width:145px;height:40px;border-top:4px solid var(--muted);border-radius:50%;top:36px}.zone-runout i,.zone-runout b{position:absolute;left:42px;right:42px;height:52px;border:3px solid var(--muted);border-radius:50%;top:29px}.zone-runout b{border:2px dashed var(--accent-strong);left:29px;right:29px;top:18px;height:74px}.zone-runout span{position:absolute;right:21px;top:4px;color:var(--accent-strong);font-size:25px}
.gdt-tools-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:14px}.gdt-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px}.gdt-input-grid .control input{height:42px;border:1px solid var(--line-strong);border-radius:8px;background:var(--field);color:var(--text);padding:0 11px;font-family:var(--mono);outline:none}.gdt-input-grid .control input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.gdt-calc-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:15px}.gdt-pass{color:#39d98a!important}.gdt-fail{color:#ef7171!important}.gdt-dimmed{opacity:.46}.gdt-concept-list{display:flex;flex-direction:column;gap:8px;margin-top:15px}.gdt-concept{border:1px solid var(--line);background:var(--field);border-radius:9px;padding:11px 12px;text-align:left;display:flex;flex-direction:column;gap:4px}.gdt-concept:hover{border-color:var(--line-strong);background:var(--panel-soft)}.gdt-concept strong{font-size:12px}.gdt-concept span{font-size:10.5px;color:var(--muted);line-height:1.4}.gdt-concept-detail p{font-size:12.5px;line-height:1.65;color:var(--muted)}.gdt-example{margin-top:12px;padding:12px;border-left:2px solid var(--accent);background:var(--field);font:11px/1.55 var(--mono);color:var(--text)}
@media(max-width:820px){.gdt-card-grid,.gdt-tools-grid{grid-template-columns:1fr}.gdt-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gdt-fcf-demo{overflow-x:auto}.gdt-fcf-labels{display:none}}
@media(max-width:560px){.gdt-workspace{width:min(100% - 24px,1180px)}.gdt-card-grid,.gdt-input-grid,.gdt-calc-results,.gdt-detail-grid{grid-template-columns:1fr}.gdt-fcf-cell{padding:0 11px;font-size:14px}.gdt-card{grid-template-columns:42px 1fr 14px}.gdt-card-symbol{width:40px;height:40px}.gdt-detail-symbol{width:46px;height:46px}}

/* Beginner-oriented GD&T detail expansion */
.gdt-detail-panel{padding:24px}.gdt-detail-section{max-width:980px}.gdt-detail-section p{font-size:13.5px;line-height:1.72}.gdt-example-section,.gdt-caution-section{padding:15px 16px;border:1px solid var(--line);border-radius:10px;background:var(--field)}.gdt-example-section{margin-top:18px}.gdt-caution-section{margin-top:10px}.gdt-example-section h3,.gdt-caution-section h3{margin-bottom:8px}.gdt-zone-visual{margin-top:20px}
@media(max-width:760px){.gdt-detail-panel{padding:17px}.gdt-detail-grid{grid-template-columns:1fr 1fr}.gdt-detail-section p{font-size:13px;line-height:1.68}}
@media(max-width:480px){.gdt-detail-grid{grid-template-columns:1fr}}
/* Gauge block / sine bar */
.gauge-stack-list{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.018)}
.gauge-stack-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;opacity:.62;margin-bottom:12px}
.gauge-block-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.gauge-block-chip{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border:1px solid rgba(130,170,255,.32);border-radius:7px;background:rgba(90,130,220,.08);font-variant-numeric:tabular-nums;font-weight:650}
.gauge-plus{opacity:.45;font-size:1.1rem}.gauge-result-note{margin:14px 2px 0}

/* Ball measurement / cone inspection */
.ball-mode-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 20px}.ball-mode-btn{border:1px solid var(--line);background:var(--field);color:var(--muted);padding:9px 13px;border-radius:9px;font:inherit;font-size:.86rem;cursor:pointer}.ball-mode-btn.active{color:var(--text);border-color:rgba(83,181,255,.52);background:rgba(83,181,255,.10)}.ball-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,.6fr);gap:24px;align-items:start}.ball-position-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(142px,.72fr);gap:8px}.ball-position-row select{min-width:0}.ball-diagram-card{border:1px solid var(--line);border-radius:13px;background:var(--field);padding:12px 14px 14px}.ball-diagram-card svg{display:block;width:100%;height:auto;max-height:250px}.ball-diagram-card p{margin:5px 4px 0;color:var(--muted);font-size:.84rem;line-height:1.55}.ball-svg-face{stroke:var(--text);stroke-width:3}.ball-svg-cone{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.ball-svg-ball{fill:rgba(83,181,255,.13);stroke:var(--accent);stroke-width:3}.ball-svg-ball-two{fill:rgba(126,220,163,.13);stroke:#7edca3}.ball-svg-axis{stroke:var(--line-strong);stroke-width:1.5;stroke-dasharray:6 6}.ball-svg-dim{stroke:var(--muted);stroke-width:1.4}.ball-svg-text{fill:var(--muted);font-size:13px;font-family:inherit}.ball-result-explain{margin-top:16px;padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:var(--field);color:var(--muted);font-size:.9rem;line-height:1.62}.ball-result-explain strong{color:var(--text)}
@media(max-width:900px){.ball-layout{grid-template-columns:1fr}.ball-diagram-card{max-width:520px}.ball-two-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.ball-position-row{grid-template-columns:1fr}.ball-two-grid{grid-template-columns:1fr}.ball-mode-tabs{display:grid;grid-template-columns:1fr}.ball-mode-btn{width:100%}}


/* Ball measurement layout refresh */
.ball-mode-tabs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  width:min(620px,100%);
  margin:18px 0 20px;
  padding:4px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--field);
}
.ball-mode-btn{
  min-height:38px;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:var(--muted);
  padding:8px 12px;
  font:inherit;
  font-size:11px;
  font-weight:690;
  cursor:pointer;
  transition:background .12s ease,border-color .12s ease,color .12s ease;
}
.ball-mode-btn:hover{color:var(--text);background:var(--panel-soft)}
.ball-mode-btn.active{
  color:var(--text);
  border-color:var(--line-strong);
  background:var(--panel);
  box-shadow:0 1px 2px rgba(0,0,0,.14);
}
.ball-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:18px;
  align-items:start;
  margin-top:4px;
}
.ball-form-column{min-width:0}
.ball-input-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 12px;
  margin-top:0;
}
.ball-input-grid .calc-field{
  min-width:0;
  align-content:start;
  gap:6px;
}
.ball-input-grid .calc-field>span{
  min-height:12px;
}
.ball-input-grid .calc-field em{
  min-height:30px;
  font-size:10px;
  line-height:1.45;
}
.ball-input-grid .calc-input-wrap{
  width:100%;
  min-width:0;
  height:42px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--field);
  overflow:hidden;
}
.ball-input-grid .calc-input-wrap:hover{border-color:var(--line-strong)}
.ball-input-grid .calc-input-wrap:focus-within{
  border-color:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft);
}
.ball-input-grid .calc-input-wrap input{
  width:100%;
  min-width:0;
  height:40px;
  border:0!important;
  background:transparent;
  padding:0 12px;
  font-family:var(--mono);
  font-size:14px;
  color:var(--text);
  box-shadow:none!important;
  outline:none;
}
.ball-input-grid .calc-input-wrap>span{
  flex:0 0 auto;
  min-width:48px;
  padding:0 10px;
  text-align:center;
}
.ball-position-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,.72fr);
  gap:8px;
  width:100%;
}
.ball-position-row select{
  width:100%;
  min-width:0;
  height:42px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--field);
  color:var(--text);
  padding:0 34px 0 11px;
  font-size:12px;
  outline:none;
}
.ball-position-row select:hover{border-color:var(--line-strong)}
.ball-position-row select:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft);
}
.ball-diagram-card{
  min-width:0;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--field);
  padding:14px 15px 15px;
}
.ball-diagram-card svg{
  display:block;
  width:100%;
  height:auto;
  max-height:238px;
}
.ball-diagram-card p{
  margin:8px 2px 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.58;
}
.ball-diagram-card p strong{color:var(--text);font-weight:650}
.ball-svg-face{stroke:var(--text);stroke-width:2.2}
.ball-svg-cone{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ball-svg-ball{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2.2}
.ball-svg-ball-two{fill:rgba(126,220,163,.10);stroke:#7edca3}
.ball-svg-axis{stroke:var(--line-strong);stroke-width:1.2;stroke-dasharray:5 5}
.ball-svg-dim{stroke:var(--muted-2);stroke-width:1.1}
.ball-svg-text{fill:var(--muted);font-size:11px;font-family:var(--mono)}
.ball-result-explain{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--field);
  color:var(--muted);
  font-size:11.5px;
  line-height:1.62;
}
.ball-result-explain strong{color:var(--text)}
.ball-layout .wire-calc-action{margin-top:16px}
.ball-layout .wire-calc-btn{min-width:180px}
#csResults .geometry-result-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
#tbResults .geometry-result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

@media(max-width:980px){
  .ball-layout{grid-template-columns:1fr}
  .ball-diagram-card{max-width:none}
  .ball-diagram-card svg{max-width:480px;margin:0 auto}
}
@media(max-width:700px){
  .ball-input-grid{grid-template-columns:1fr}
  .ball-input-grid .calc-field em{min-height:0}
  #csResults .geometry-result-grid,#tbResults .geometry-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .ball-mode-tabs{grid-template-columns:1fr}
  .ball-position-row{grid-template-columns:1fr}
  .ball-position-row select,.ball-input-grid .calc-input-wrap{height:50px}
  .ball-input-grid .calc-input-wrap input{height:48px;font-size:16px}
  .ball-position-row select{font-size:16px}
  .ball-layout .wire-calc-btn{width:100%}
}

/* Ball Measurement — polished technical illustrations */
.ball-diagram-card{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--field),var(--panel));box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.ball-diagram-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 18%,rgba(83,181,255,.07),transparent 46%)}
.ball-diagram-card svg{position:relative;isolation:isolate;overflow:visible}
.ball-svg-face-shadow{stroke:var(--accent);stroke-width:8;opacity:.055;filter:blur(5px)}
.ball-svg-face{stroke:var(--text);stroke-width:2;stroke-linecap:round}
.ball-svg-cone-shadow{fill:none;stroke:var(--accent);stroke-width:9;stroke-linecap:round;stroke-linejoin:round;opacity:.07;filter:blur(5px)}
.ball-svg-cone{fill:none;stroke:var(--accent);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.ball-svg-ball{stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}
.ball-svg-ball-two{stroke:#7edca3}
.ball-svg-halo{fill:none;stroke:var(--accent);stroke-width:1;opacity:.11}
.ball-svg-highlight{fill:none;stroke:rgba(255,255,255,.58);stroke-width:2;stroke-linecap:round;opacity:.58}
.ball-svg-highlight-green{stroke:rgba(255,255,255,.48)}
.ball-svg-axis{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:4 5;opacity:.78}
.ball-svg-dim{stroke:var(--muted-2);stroke-width:1.15;fill:none}
.ball-svg-extension,.ball-svg-leader{stroke:var(--line-strong);stroke-width:1;fill:none}
.ball-svg-leader{stroke-dasharray:2.5 3.5}
.ball-svg-arrow{fill:var(--muted-2)}
.ball-svg-contact{fill:var(--panel);stroke:var(--accent);stroke-width:2;filter:drop-shadow(0 0 4px rgba(83,181,255,.5))}
.ball-svg-contact-green{stroke:#7edca3;filter:drop-shadow(0 0 4px rgba(126,220,163,.42))}
.ball-svg-text{fill:var(--muted);font-size:12.5px;font-family:var(--mono);letter-spacing:.02em}
.ball-svg-small{fill:var(--muted-2);font-size:11px;font-family:var(--mono);letter-spacing:.02em}
.ball-svg-accent-text{fill:var(--accent)}
.ball-svg-green-text{fill:#7edca3}
.ball-svg-angle path{fill:none;stroke:var(--accent);stroke-width:1.25}
.ball-svg-angle text{fill:var(--muted-2)}
@media (prefers-reduced-motion:no-preference){.ball-diagram-card:hover .ball-svg-contact{filter:drop-shadow(0 0 6px rgba(83,181,255,.68))}.ball-diagram-card:hover .ball-svg-cone{stroke-width:3}}

/* Ball Measurement: visually separate the two primary calculator cards. */
.ball-secondary-panel{margin-top:18px}

/* Gauge blocks / sine bar — precision layout refresh */
.gauge-secondary-panel{margin-top:18px}
.gauge-layout{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(280px,.62fr);gap:24px;align-items:start}
.gauge-form-column{min-width:0}
.gauge-input-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;align-items:start}
.gauge-input-grid .calc-field{min-width:0;display:flex;flex-direction:column;gap:7px}
.gauge-input-grid .calc-field>span{font-size:.8rem;font-weight:650;color:var(--text);letter-spacing:.01em}
.gauge-input-grid .calc-field em{min-height:34px;color:var(--muted);font-size:.77rem;line-height:1.45;font-style:normal}
.gauge-input-grid .calc-input-wrap{height:44px;border:1px solid var(--line);border-radius:9px;background:var(--field);display:flex;align-items:center;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease}
.gauge-input-grid .calc-input-wrap:hover{border-color:var(--line-strong)}
.gauge-input-grid .calc-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.gauge-input-grid .calc-input-wrap input{width:100%;min-width:0;height:42px;border:0!important;background:transparent!important;box-shadow:none!important;padding:0 12px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;outline:none}
.gauge-input-grid .calc-input-wrap>span{flex:0 0 auto;padding:0 12px;color:var(--muted);font-size:.78rem;border-left:1px solid var(--line);line-height:22px}
.gauge-input-grid select{width:100%;min-width:0;height:44px;padding:0 38px 0 12px;border:1px solid var(--line);border-radius:9px;background:var(--field);color:var(--text);font:inherit;font-size:.86rem;outline:none;transition:border-color .16s ease,box-shadow .16s ease}
.gauge-input-grid select:hover{border-color:var(--line-strong)}
.gauge-input-grid select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.gauge-layout .wire-calc-action{margin-top:16px}.gauge-layout .wire-calc-btn{min-width:190px}
.gauge-diagram-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,var(--field),var(--panel));padding:12px 14px 14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.gauge-diagram-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 18%,rgba(83,181,255,.07),transparent 46%)}
.gauge-diagram-card svg{position:relative;isolation:isolate;display:block;width:100%;height:auto;max-height:250px;overflow:visible}
.gauge-diagram-card p{position:relative;margin:5px 4px 0;color:var(--muted);font-size:.84rem;line-height:1.55}.gauge-diagram-card p strong{color:var(--text);font-weight:650}
.gauge-svg-base-shadow{stroke:var(--accent);stroke-width:8;opacity:.05;filter:blur(5px)}
.gauge-svg-base{stroke:var(--text);stroke-width:2;stroke-linecap:round}
.gauge-svg-block{stroke:var(--line-strong);stroke-width:1.25;vector-effect:non-scaling-stroke}
.gauge-svg-block-accent{stroke:var(--accent);stroke-opacity:.75}
.gauge-svg-bar{stroke:var(--accent);stroke-width:1.7;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px rgba(83,181,255,.14))}
.gauge-svg-roll{fill:var(--panel);stroke:var(--accent);stroke-width:2;filter:drop-shadow(0 0 4px rgba(83,181,255,.34))}
.gauge-svg-highlight{fill:none;stroke:rgba(255,255,255,.5);stroke-width:1.4;stroke-linecap:round;opacity:.52}
.gauge-svg-dim{stroke:var(--muted-2);stroke-width:1.15;fill:none}.gauge-svg-extension{stroke:var(--line-strong);stroke-width:1;fill:none}.gauge-svg-arrow{fill:var(--muted-2)}
.gauge-svg-text{fill:var(--muted);font-size:10.5px;font-family:var(--mono);letter-spacing:.025em}.gauge-svg-small{fill:var(--muted-2);font-size:9px;font-family:var(--mono);letter-spacing:.03em}.gauge-svg-accent-text{fill:var(--accent)}
.gauge-svg-angle{fill:none;stroke:var(--accent);stroke-width:1.25}
.gauge-result-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.gauge-stack-list{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:11px;background:var(--field)}
.gauge-block-row{gap:7px}.gauge-block-chip{min-height:42px;padding:0 13px;border-color:rgba(83,181,255,.34);background:var(--accent-soft);border-radius:8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.gauge-result-note{line-height:1.55}
@media(prefers-reduced-motion:no-preference){.gauge-diagram-card:hover .gauge-svg-roll{filter:drop-shadow(0 0 6px rgba(83,181,255,.55))}.gauge-diagram-card:hover .gauge-svg-bar{stroke-width:2}}
@media(max-width:900px){.gauge-layout{grid-template-columns:1fr}.gauge-diagram-card{max-width:none}.gauge-diagram-card svg{max-width:480px;margin:0 auto}}
@media(max-width:680px){.gauge-input-grid{grid-template-columns:1fr}.gauge-input-grid .calc-field em{min-height:0}.gauge-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.gauge-input-grid .calc-input-wrap,.gauge-input-grid select{height:50px}.gauge-input-grid .calc-input-wrap input{height:48px;font-size:16px}.gauge-input-grid select{font-size:16px}.gauge-layout .wire-calc-btn{width:100%}}

/* Precision technical illustration system — premium geometry standard */
.premium-geometry-svg{border:0!important;background:transparent!important;padding:10px!important;overflow:visible}
.premium-glow-shape{fill:none;stroke:var(--accent);stroke-width:9;opacity:.055;filter:blur(5px);stroke-linejoin:round;stroke-linecap:round}
.premium-geometry-shape{stroke:var(--accent);stroke-width:2.2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.premium-axis{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:5 5;opacity:.8;vector-effect:non-scaling-stroke}
.premium-dimension{stroke:var(--muted-2);stroke-width:1.05;fill:none;vector-effect:non-scaling-stroke}
.premium-extension{stroke:var(--line-strong);stroke-width:.9;fill:none;vector-effect:non-scaling-stroke}
.premium-arrow{fill:var(--muted-2)}
.premium-face{stroke:var(--text);stroke-width:1.8;opacity:.72;vector-effect:non-scaling-stroke}
.premium-face.muted-face{opacity:.45}
.premium-hyp-highlight{stroke:rgba(255,255,255,.34);stroke-width:1;opacity:.42;vector-effect:non-scaling-stroke}
.premium-right-angle{fill:none;stroke:var(--text);stroke-width:1.15;opacity:.58;vector-effect:non-scaling-stroke}
.premium-angle-arc{fill:none;stroke:var(--accent);stroke-width:1.3;stroke-linecap:round;vector-effect:non-scaling-stroke}
.premium-point{fill:var(--panel);stroke:var(--accent);stroke-width:2;filter:drop-shadow(0 0 4px rgba(83,181,255,.42));vector-effect:non-scaling-stroke}
.premium-contact-point{fill:var(--panel);stroke:var(--accent);stroke-width:2;filter:drop-shadow(0 0 4px rgba(83,181,255,.44));vector-effect:non-scaling-stroke}
.premium-dimension-label{fill:#c9d7f1!important;font-family:var(--mono)!important;font-size:10px!important;font-weight:650;letter-spacing:.035em;text-anchor:middle}
.premium-geometry-label{fill:var(--text)!important;font-family:var(--mono)!important;font-size:11px!important;font-weight:650;letter-spacing:.04em;text-anchor:middle}
.premium-angle-label{fill:var(--accent)!important;font-family:var(--mono)!important;font-size:11px!important;font-weight:700;text-anchor:middle}
.premium-small-label{fill:var(--muted-2)!important;font-family:var(--mono)!important;font-size:8.5px!important;letter-spacing:.055em;text-anchor:middle}
.premium-svg-title{fill:var(--text)!important;font-family:var(--mono)!important;font-size:10.5px!important;font-weight:700;letter-spacing:.055em;text-anchor:middle}
.premium-left-label{text-anchor:start!important}
.premium-work-shadow{fill:none;stroke:var(--accent);stroke-width:10;opacity:.035;filter:blur(5px);vector-effect:non-scaling-stroke}
.premium-workpiece{stroke:var(--line-strong);stroke-width:1.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.premium-fastener{stroke:var(--accent);stroke-width:1.8;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.premium-fastener-highlight{fill:none;stroke:rgba(255,255,255,.38);stroke-width:1.3;stroke-linecap:round;opacity:.48;vector-effect:non-scaling-stroke}
.premium-cut-glow{fill:none;stroke:var(--accent);stroke-width:8;opacity:.06;filter:blur(4px);stroke-linecap:round;vector-effect:non-scaling-stroke}

/* Bring older shop-geometry drawings up to the same visual family even when their
   geometry is generated dynamically and keeps legacy class names. */
.geometry-visual svg,.taper-visual svg,.triangle-reference svg{filter:drop-shadow(0 10px 22px rgba(0,0,0,.12))}
.geometry-visual,.taper-visual,.triangle-reference{background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.006)),var(--field);box-shadow:inset 0 1px 0 rgba(255,255,255,.018)}
.geometry-shape{fill:color-mix(in srgb,var(--accent) 10%,transparent);stroke:var(--accent);stroke-width:1.8;stroke-linejoin:round}
.ff-center,.taper-axis{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:5 5;opacity:.8}
.ff-dim,.taper-dim{stroke:var(--muted-2);stroke-width:1.05;fill:none}
.ff-accent{stroke:var(--accent);stroke-width:1.3;fill:none}
.ff-label,.taper-label,.taper-angle-label{font-family:var(--mono);letter-spacing:.025em}
.ff-title{fill:var(--text);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;text-anchor:middle}

@media (prefers-reduced-motion:no-preference){
  .geometry-visual:hover .premium-contact-point,.triangle-reference:hover .premium-point{filter:drop-shadow(0 0 7px rgba(83,181,255,.65))}
  .geometry-visual:hover .premium-fastener,.taper-visual:hover .premium-geometry-shape,.triangle-reference:hover .premium-geometry-shape{stroke-width:2.35}
}

/* Bolt Circle — integrated chord geometry */
.bolt-chord-panel{margin-top:14px;padding:20px}
.bolt-chord-panel h2{font-size:18px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.02em}
.bolt-chord-intro{margin:5px 0 0}
.bolt-chord-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:stretch;margin-top:14px}
.bolt-chord-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.bolt-chord-visual-wrap{display:flex;min-height:220px}
.bolt-chord-visual{width:100%;min-height:220px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--field) 92%,transparent),color-mix(in srgb,var(--panel) 96%,transparent));display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 4%,transparent)}
.bolt-chord-visual svg{display:block;width:100%;height:auto;max-height:250px;padding:12px}
.bolt-chord-results{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:14px}
.bolt-chord-ring{fill:none;stroke:color-mix(in srgb,var(--muted-2) 80%,transparent);stroke-width:1.4;stroke-dasharray:3 5}
.bolt-chord-radius{stroke:color-mix(in srgb,var(--accent) 54%,var(--line-strong));stroke-width:1.35}
.bolt-chord-line{stroke:var(--accent);stroke-width:2.6;stroke-linecap:round;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 28%,transparent))}
.bolt-chord-point{fill:var(--panel);stroke:var(--accent);stroke-width:2.2}
.bolt-chord-center{fill:var(--accent);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 38%,transparent))}
.bolt-chord-arc{fill:none;stroke:color-mix(in srgb,var(--accent) 76%,white 8%);stroke-width:1.6}
.bolt-chord-dim{fill:var(--text);font-family:var(--mono);font-size:10px;font-weight:700;text-anchor:middle}
.bolt-chord-note{fill:var(--muted);font-family:var(--mono);font-size:8.5px;text-anchor:middle;letter-spacing:.03em}
@media(max-width:820px){.bolt-chord-layout{grid-template-columns:1fr}.bolt-chord-visual-wrap{min-height:190px}.bolt-chord-results{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.bolt-chord-panel{padding:16px}.bolt-chord-input-grid,.bolt-chord-results{grid-template-columns:1fr}}


/* Bolt Circle / Chord — clearly separated tools */
.bolt-tool-heading{align-items:flex-start}
.bolt-tool-kicker{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;margin-bottom:7px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent-soft) 70%,transparent);color:var(--accent-strong);font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.12em}
.bolt-tool-intro{margin:7px 0 0;max-width:660px}
.bolt-pattern-controls{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}
.bolt-tool-separator{position:relative;display:flex;align-items:center;justify-content:center;height:38px;margin:20px 0;color:var(--muted-2);font-family:var(--mono);font-size:9px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.bolt-tool-separator::before,.bolt-tool-separator::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--line-strong))}
.bolt-tool-separator::after{background:linear-gradient(90deg,var(--line-strong),transparent)}
.bolt-tool-separator span{padding:0 12px}
.bolt-chord-panel{margin-top:0;border-color:color-mix(in srgb,var(--accent) 18%,var(--line))}
.bolt-setup-panel{border-color:color-mix(in srgb,var(--accent) 18%,var(--line))}
@media(max-width:620px){.bolt-pattern-controls{grid-template-columns:1fr}.bolt-tool-separator{margin:14px 0;height:30px}}


/* Bolt Circle / Chord — master tool containers */
.bolt-master-tool{display:grid;gap:14px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--panel) 42%,transparent);box-shadow:0 10px 30px color-mix(in srgb,#000 10%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 3%,transparent)}
.bolt-master-tool + .bolt-master-tool{margin-top:20px}
.bolt-master-tool > .panel,.bolt-master-tool > #boltResults > .panel{margin-top:0}
.bolt-master-tool > #boltResults{display:grid;gap:14px}
.bolt-master-tool > #boltResults.hidden{display:none}
.bolt-tool-separator{display:none!important}
@media(max-width:620px){.bolt-master-tool{padding:9px;gap:10px}.bolt-master-tool + .bolt-master-tool{margin-top:14px}}

/* Global engineering/legal notice */
.global-engineering-notice{margin:18px 0 4px;padding:12px 14px;border:1px solid var(--line,rgba(255,255,255,.10));border-radius:10px;color:var(--muted,#8e98a5);font-size:12px;line-height:1.55;background:var(--panel,rgba(255,255,255,.025))}.global-engineering-notice strong{color:var(--text,#f3f5f7)}.global-engineering-notice a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* ---------- Machinist Companion brand icon ---------- */
.brand-mark{
  overflow:hidden;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}
.brand-mark img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:inherit;
}


/* Machinist Companion brand mark: artwork + CSS-rendered frame.
   Border is intentionally separate from the raster artwork so it stays
   geometrically continuous at every UI size. */
.brand-mark{
  box-sizing:border-box !important;
  padding:2px !important;
  overflow:hidden !important;
  border:0 !important;
  background:
    linear-gradient(#08090b,#08090b) padding-box,
    linear-gradient(145deg,#8ab4ff 0%,#4f8cff 45%,#2f5fd5 100%) border-box !important;
  border:2px solid transparent !important;
  padding:0 !important;
  box-shadow:
    0 0 0 1px rgba(79,140,255,.16),
    0 2px 8px rgba(79,140,255,.12),
    inset 0 1px 0 rgba(255,255,255,.18) !important;
}
.brand-mark img{
  width:100% !important;
  height:100% !important;
  display:block !important;
  object-fit:cover !important;
  border-radius:8px !important;
  background:transparent !important;
}
.brand-mark.large img{
  border-radius:12px !important;
}

