/* Laser SVG Checker & Fixer, Laser Test Card, Name Ornament: tool-specific CSS on top of the kit's app design
   system (_kit/src/styles/app.css, injected on /app/* by the kit). Layout, panels, fields, buttons, results,
   preview, Pro card and action bar come from the kit's .mk-* classes; this file only adds what is particular to
   these tools, on the kit's tokens. Preview drawings keep their meaning colours (cut red, score blue, engrave
   black, wood = material) on white paper. The free-files form (freebies.js) lives on a marketing page, outside app
   mode, and keeps its own block at the end on the theme's tokens. */

/* ---------- shared: preview drawing ---------- */
.lc { --lc-cut: #e0261b; --lc-score: #1f5fd6; --lc-eng: #2b2b2b; --lc-wood: #ecd3a8; --lc-mark: #c2187a; }
.lc .lc-paper { width: 100%; max-width: 880px; padding: var(--mk-s-3); }
.lc .lc-svg { display: block; width: 100%; height: auto; max-height: calc(100dvh - var(--mk-head-h) - 240px); min-height: 200px; }
.lc .lc-mat path { fill: var(--lc-wood); stroke: none; }
.lc .lc-eng path { fill: var(--lc-eng); opacity: 0.85; }
.lc .lc-cut path { fill: none; stroke: var(--lc-cut); stroke-width: 1.2px; }
.lc .lc-score path { fill: none; stroke: var(--lc-score); stroke-width: 1.2px; }
.lc .lc-unk path { fill: none; stroke: #7a7a7a; stroke-width: 1.5px; stroke-dasharray: 4 3; }
.lc .lc-mark .lc-mark-line { fill: none; stroke: var(--lc-mark); stroke-width: 3.5px; opacity: 0.85; }
.lc .lc-mark .lc-mark-area { fill: var(--lc-mark); fill-opacity: 0.4; stroke: var(--lc-mark); stroke-width: 2px; }
.lc .lc-mark .lc-mark-span { fill: none; stroke: var(--lc-mark); stroke-width: 3px; }
.lc .lc-mark-ok .lc-mark-area { fill: #17613f; fill-opacity: 0.3; stroke: #17613f; }
.lc .lc-pin circle { fill: var(--lc-mark); stroke: #fff; stroke-width: 0.6; }
.lc .lc-pin text { fill: #fff; font-weight: 700; font-family: var(--mk-font); }
.lc .lc-mark { transition: opacity var(--mk-fast) var(--mk-ease); }
.lc .lc-mark.lc-dim { opacity: 0.15; }
.lc .lc-spots .lc-spot { fill: none; stroke: var(--lc-mark); stroke-width: 3px; }
.lc .lc-nomarks .lc-marks, .lc .lc-nomarks .lc-spots { display: none; }
/* legend swatches in the meaning colours */
.lc .lc-k-cut { color: var(--mk-text-2); } .lc .lc-k-cut .mk-swatch { color: var(--lc-cut); }
.lc .lc-k-score .mk-swatch { color: var(--lc-score); }
.lc .lc-k-eng .mk-swatch { color: var(--lc-eng); }
.lc .lc-k-mat .mk-swatch { color: #d6b47c; }
.lc .lc-k-mark .mk-swatch { color: var(--lc-mark); }
.lc .mk-preview__tools { flex-wrap: wrap; gap: var(--mk-s-2); }
.lc .mk-preview__tools .mk-switch { min-height: 36px; font-size: var(--mk-fs-sm); color: var(--mk-text-2); }
.lc .mk-preview__tools .mk-seg > button { min-height: 30px; font-size: var(--mk-fs-sm); }
.lc .mk-preview__stage > .mk-paper { justify-self: stretch; margin: 0 auto; }
.lc .lc-sub { margin: 0; font: 600 var(--mk-fs-md)/1.3 var(--mk-font) !important; }
.lc .lc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.lc .mk-note[hidden], .lc [hidden] { display: none !important; }
.lc .lc-savebar { margin: 0; font-size: var(--mk-fs-sm); color: var(--mk-text-2); }
.lc .lc-link { font: inherit; background: none; border: 0; padding: 0; min-height: 32px; color: var(--mk-accent-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.lc .lc-small { color: var(--mk-text-3); }
.lc fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.lc legend { padding: 0; margin-bottom: 6px; font: 500 var(--mk-fs-sm)/1.3 var(--mk-font); color: var(--mk-text); }

/* ---------- checker ---------- */
.lc-checker .lc-filecard .mk-btn { flex: none; }
.lc-checker .lc-drop.mk-drop--compact .mk-drop__icon { width: 32px; height: 32px; }
.lc-checker .lc-drop.mk-drop--compact .mk-drop__title { margin: 0; font-size: var(--mk-fs-md); }
.lc-checker .lc-status:empty { display: none; }
.lc-checker .lc-settings .mk-switch { font-size: var(--mk-fs-sm); }
.lc-checker .lc-results:empty { display: none; }
.lc-checker .lc-result { display: flex; flex-direction: column; gap: var(--mk-s-1); }
.lc-checker .lc-result .mk-summary { margin-bottom: var(--mk-s-0); }
.lc-checker .mk-diag__item .lc-detail { overflow-wrap: anywhere; }
.lc-checker .mk-diag__item .lc-why { font-size: var(--mk-fs-xs); color: var(--mk-text-3); }
.lc-checker .lc-pinchip {
  display: inline-grid; place-items: center; flex: none; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px;
  background: var(--lc-mark); color: #fff; font: 700 var(--mk-fs-xs)/1 var(--mk-font);
}
.lc-checker .lc-all { margin-top: var(--mk-s-0); }
.lc-checker .lc-all .mk-diag__item { padding: var(--mk-s-1) var(--mk-s-2); }
.lc-checker .lc-report-fixed { align-self: flex-start; }
.lc-checker .lc-actions .mk-btn--lg { min-height: 44px; }
.lc-checker .lc-actions .lc-report { flex: 0 0 auto; }
@media (max-width: 1023px) {
  .lc-checker .lc-actions { gap: 6px var(--mk-s-1); }
  .lc-checker .lc-actions > .mk-btn { min-width: 0; padding: 0 var(--mk-s-2); }
  .lc-checker .lc-actions > .lc-primary { flex: 1 1 auto; }
  .lc-checker .lc-actions .mk-actions__more > .mk-btn { min-height: 32px; }
}
/* fixer panel */
.lc-fix .lc-fixes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--mk-s-1); }
.lc-fix .lc-fix-item { display: flex; flex-direction: column; gap: 6px; padding: var(--mk-s-2); border: 1px solid var(--mk-border); border-radius: var(--mk-r-md); background: var(--mk-surface-2); min-width: 0; }
.lc-fix .lc-fix-item > .mk-check { min-height: 24px; padding: 0; }
.lc-fix .lc-count { font-size: var(--mk-fs-sm); color: var(--mk-text-2); overflow-wrap: anywhere; padding-left: 26px; }
.lc-fix .lc-count small { display: block; color: var(--mk-text-3); font-size: var(--mk-fs-xs); }
.lc-fix .lc-count-now, .lc-fix .lc-count-after { display: block; }
.lc-fix .lc-count-after { font-weight: 600; color: var(--mk-text); }
.lc-fix .lc-dpi, .lc-fix .lc-gap, .lc-fix .lc-colours { padding-left: 26px; }
.lc-fix .lc-dpi .mk-check, .lc-batch .lc-dpi .mk-check { font-size: var(--mk-fs-sm); }
.lc-fix .lc-size { font-weight: 600; font-variant-numeric: tabular-nums; }
.lc-fix .lc-gap .mk-unit { max-width: 10rem; }
.lc .lc-colours .mk-table td { vertical-align: middle; overflow-wrap: anywhere; }
.lc .lc-colours .mk-table td:first-child { width: 32px; }
.lc .lc-colours .mk-table td:last-child { width: 44%; }
.lc .lc-colours small { color: var(--mk-text-3); }
.lc .lc-colours .mk-select { min-height: 36px; font-size: var(--mk-fs-sm); }
.lc .lc-swatch { display: inline-block; width: 20px; height: 20px; border-radius: 50%; border: 4px solid var(--sw, #999); background: #fff; vertical-align: middle; }
.lc .lc-swatch-fill { background: var(--sw, #999); border-color: rgb(0 0 0 / 15%); border-width: 1px; border-radius: 4px; }
.lc-fix .lc-fix-warn:empty { display: none; }
.lc-fix .lc-fix-warn { display: flex; flex-direction: column; gap: var(--mk-s-1); }
.lc-fix .lc-warnlist, .lc-fix .lc-manual ul { margin: 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: 6px; font-size: var(--mk-fs-sm); }
.lc-fix .lc-warnlist li, .lc-fix .lc-manual li { overflow-wrap: anywhere; }
.lc-fix .lc-at { color: var(--mk-text-2); font-family: var(--mk-font-mono); font-size: var(--mk-fs-xs); }
.lc-fix .lc-manual { color: var(--mk-text); }
.lc-fix .lc-manual__title { display: block; margin-bottom: 4px; color: var(--mk-warn); }
.lc-fix .lc-manual .lc-why { margin: 6px 0 0; font-size: var(--mk-fs-xs); color: var(--mk-text-2); }
.lc-fix .lc-fixed { display: flex; flex-direction: column; gap: var(--mk-s-1); }
.lc-fix .lc-fixed:empty { display: none; }
.lc-fix .lc-fixed:not(:empty) { padding-top: var(--mk-s-3); border-top: 1px solid var(--mk-border); }
.lc-fix .lc-fixed .lc-dl { align-self: flex-start; }
.lc-fix .mk-loading { justify-content: flex-start; padding: var(--mk-s-1) 0; }
/* Pro card: unlocked, and the batch fixer inside it */
.lc .lc-pro--on { border-color: var(--mk-ok-line); }
.lc .lc-pro--on > summary { background: var(--mk-ok-bg); }
.lc .lc-pro--on .mk-pro__crown { color: var(--mk-ok); }
.lc .lc-pro .mk-pro__keyrow .mk-input { min-width: 0; }
.lc .lc-batch { display: flex; flex-direction: column; gap: var(--mk-s-2); min-width: 0; }
.lc .lc-batch-drop { min-height: 132px; }
.lc .lc-batch .lc-status:empty { display: none; }
.lc .lc-batch-body, .lc .lc-batch-settings, .lc .lc-batch-results { display: flex; flex-direction: column; gap: var(--mk-s-2); min-width: 0; }
.lc .lc-batch-body:empty, .lc .lc-batch-results:empty { display: none; }
.lc .lc-batch-out { display: flex; flex-wrap: wrap; gap: 0 var(--mk-s-3); }
.lc .lc-batch-out legend { flex-basis: 100%; }
.lc .lc-batch-list .mk-diag__item p { overflow-wrap: anywhere; }

/* ---------- test card ---------- */
.lc.tc .tc-group { display: flex; flex-direction: column; gap: 6px; }
.lc.tc .tc-paper { max-width: 720px; }
.lc.tc .tc-svg { min-height: 0; }
/* hairline outlines (0.01 mm, for the laser) drawn visibly on screen */
.lc.tc .tc-svg path[fill='none'] { vector-effect: non-scaling-stroke; stroke-width: 1.5px; }
.lc.tc .tc-legend td:nth-child(n + 3) { font-variant-numeric: tabular-nums; }
.lc.tc .tc-legend code { font-family: var(--mk-font-mono); font-size: var(--mk-fs-xs); color: var(--mk-text-2); }
.lc.tc .tc-swatch { display: inline-block; width: 14px; height: 14px; border-radius: 3px; vertical-align: -2px; border: 1px solid rgb(0 0 0 / 15%); }
.lc.tc .tc-swatch--multi { background: conic-gradient(#00e000 0 25%, #ff8000 0 50%, #00e0e0 0 75%, #ff00ff 0); }
.lc.tc .tc-gate { display: flex; flex-direction: column; gap: var(--mk-s-2); }
.lc.tc .tc-gate .lc-status:empty { display: none; }
.lc.tc .tc-table { overflow-x: auto; }

/* ---------- name ornament ---------- */
.lc.no .no-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--mk-s-1); }
.lc.no .no-choice {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; padding: var(--mk-s-1) 6px;
  text-align: center; border: 1px solid var(--mk-border-strong); border-radius: var(--mk-r-md); background: var(--mk-surface); cursor: pointer;
  transition: border-color var(--mk-fast) var(--mk-ease), background-color var(--mk-fast) var(--mk-ease);
}
.lc.no .no-choice:hover { border-color: var(--mk-accent); }
.lc.no .no-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lc.no .no-choice:has(input:checked) { border-color: var(--mk-accent); background: var(--mk-accent-soft); box-shadow: inset 0 0 0 1px var(--mk-accent); }
.lc.no .no-choice:has(input:focus-visible) { outline: 2px solid var(--mk-accent); outline-offset: 2px; }
.lc.no .no-choice strong { font: 600 var(--mk-fs-sm)/1.25 var(--mk-font); color: var(--mk-text); }
.lc.no .no-choice small { font-size: var(--mk-fs-xs); line-height: 1.3; color: var(--mk-text-3); }
.lc.no .no-thumb { display: block; width: 100%; aspect-ratio: 1 / 1; max-height: 96px; }
.lc.no .no-thumbsvg { display: block; width: 100%; height: 100%; }
.lc.no .no-thumbsvg .no-mat { fill: var(--lc-wood); }
.lc.no .no-thumbsvg .no-cut { fill: none; stroke: var(--lc-cut); stroke-width: 0.6px; }
.lc.no .no-fontsvg { display: block; width: 100%; height: 30px; margin: 2px 0 4px; }
.lc.no .no-fontsvg path { fill: var(--mk-text); }
.lc.no .no-name { font-size: var(--mk-fs-xl); min-height: 48px; }
.lc.no .no-msg { margin: 0; }
.lc.no .no-msg:empty { display: none; }
.lc.no .mk-preview > .no-msg { border-radius: 0; border-width: 0 0 1px; padding: var(--mk-s-1) var(--mk-s-3); }
.lc.no .mk-preview > .mk-small.no-msg { color: var(--mk-text-2); }
.lc.no .no-preview { max-width: 640px; transition: opacity var(--mk-med) var(--mk-ease); }
.lc.no .no-preview.no-stale { opacity: 0.35; }
.lc.no .no-svg { display: block; width: 100%; height: auto; max-height: calc(100dvh - var(--mk-head-h) - 260px); min-height: 220px; }
.lc.no .no-svg .no-mat { fill: var(--lc-wood); }
.lc.no .no-svg .no-cut { fill: none; stroke: var(--lc-cut); stroke-width: 1.2px; }
.lc.no .no-wm text { fill: #17212b; fill-opacity: 0.28; font-family: var(--mk-font); font-weight: 600; }
.lc.no .no-facts:empty { display: none; }
.lc.no .no-check { display: flex; flex-direction: column; gap: var(--mk-s-2); }
.lc.no .no-check .mk-loading { justify-content: flex-start; padding: 0; }
.lc.no .no-rules .mk-diag__item { padding: var(--mk-s-1) var(--mk-s-2); }
.lc.no .no-rules .mk-diag__item p { font-family: var(--mk-font-mono); font-size: var(--mk-fs-xs); overflow-wrap: anywhere; }
.lc.no .no-actions .mk-btn--lg { min-height: 44px; }
@media (max-width: 1023px) { .lc.no .no-actions { gap: 6px var(--mk-s-1); } .lc.no .no-actions > .mk-btn { padding: 0 var(--mk-s-2); min-width: 0; } }
@media (max-width: 599px) { .lc.no .no-hide-sm { display: none; } }

/* the site's chat launcher (coview, #cv-widget) fades out while it would cover the results (checker-ui.js guardChat) */
#cv-widget { transition: opacity 0.2s ease, visibility 0.2s; }
#cv-widget.lc-chat-off { opacity: 0; visibility: hidden; }
@media (prefers-reduced-motion: reduce) { #cv-widget { transition: none; } }

/* ---------- Free laser files (freebies.js): a marketing page, outside app mode, on the theme's tokens ---------- */
.lc.fb { --lc-ink: var(--ink, #2e2119); --lc-mute: var(--mute, #76604f); --lc-cream: var(--cream, #f4e8d4); --lc-line: var(--line, #e6d6bd);
  --lc-accent: var(--accent, #3d7232); --lc-accent-ink: var(--accent-ink, #fff); --lc-good-soft: var(--accent-soft, #e2eed5);
  color: var(--lc-ink); font-size: 16px; line-height: 1.5; max-width: 40rem; margin: 0 auto; padding: 0 16px; box-sizing: border-box; }
.lc.fb *, .lc.fb *::before, .lc.fb *::after { box-sizing: border-box; }
.lc.fb .lc-file { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.lc.fb .lc-why { margin: 6px 0 0; font-size: 0.9rem; color: var(--lc-mute); }
.lc.fb .lc-status { margin: 0; min-height: 1.5em; font-size: 0.95rem; }
.lc.fb .lc-btn { font: inherit; font-weight: 600; min-height: 44px; padding: 10px 16px; border-radius: var(--radius-sm, 8px); border: 1px solid var(--lc-accent); background: transparent; color: var(--lc-accent); cursor: pointer; }
.lc.fb .lc-btn:hover { background: var(--lc-accent); color: var(--lc-accent-ink); }
.lc.fb .lc-btn:focus-visible { outline: 2px solid var(--lc-accent); outline-offset: 2px; }
.lc.fb .tc-primary { background: var(--lc-accent); color: var(--lc-accent-ink); margin-top: 4px; }
.lc.fb .tc-primary:disabled { opacity: 0.5; cursor: not-allowed; }
.lc.fb .tc-gate { margin-top: 0; padding: 16px; border: 1px solid var(--lc-line); border-radius: var(--radius, 14px); background: var(--lc-cream); display: grid; gap: 8px; }
.lc.fb .tc-gate label { display: grid; gap: 4px; font-weight: 600; }
.lc.fb .tc-gate label small { font-weight: 400; color: var(--lc-mute); }
.lc.fb .tc-gate input[type=email], .lc.fb .tc-gate input[type=text] { font: inherit; padding: 10px 12px; border: 1px solid var(--lc-line); border-radius: var(--radius-sm, 8px); background: #fff; color: var(--lc-ink); }
.lc.fb .fb-title { margin: 0 0 4px; font-family: var(--font-display, inherit); font-size: 1.3rem; line-height: 1.3; color: var(--lc-ink); }
.lc.fb .fb-thanks { padding: 18px; border: 1px solid var(--lc-line); border-left: 6px solid var(--lc-accent); border-radius: var(--radius, 14px); background: var(--lc-good-soft); }
.lc.fb .fb-thanks h3 { margin: 0; font-family: var(--font-display, inherit); font-size: 1.3rem; }
.lc.fb .fb-thanks h4 { margin: 18px 0 6px; font-size: 1rem; }
.lc.fb .fb-thanks p { margin: 8px 0 0; }
.lc.fb .fb-again { margin-top: 12px; }
.lc.fb .fb-more { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.lc.fb .fb-q { font-weight: 600; }
.lc.fb .fb-direct { font-weight: 700; }
.lc.fb .fb-where { color: var(--lc-mute); font-size: 0.9rem; }
.lc.fb a { color: var(--lc-accent); text-underline-offset: 3px; }
@media (max-width: 599px) { .lc-checker .lc-drop.mk-drop--compact .mk-drop__hint { display: none; } }
