/* Lithophane maker page only (loaded after tools-v2.css) */
.drop-zone { display: grid; gap: 8px; padding: 16px; border: 2px dashed var(--line-strong); border-radius: var(--radius-sm); background: var(--surface); }
.drop-zone.is-over { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, var(--surface)); }
.drop-zone .field-note { margin: 0; }
.drop-zone input[type="file"] { width: 100%; max-width: 100%; min-width: 0; font: inherit; }
.tool-layout > .tool-form, .tool-layout > .tool-preview, .drop-zone { min-width: 0; }
.litho-file-name { font-weight: 700; overflow-wrap: anywhere; }
.link-btn { padding: 0; border: 0; background: none; color: var(--accent); font: inherit; text-decoration: underline; cursor: pointer; }
.link-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.litho-adjust { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.litho-adjust summary { cursor: pointer; font-weight: 600; }
.litho-adjust label { display: grid; gap: 4px; margin-top: 10px; }
.litho-adjust label.check { display: flex; }
.litho-adjust output { font-weight: 700; }
.litho-adjust input[type="range"] { width: 100%; }
/* Visible while a model is being built (the build runs on the page's main thread and can take a few seconds) */
.litho-building { margin: 0; font-weight: 600; color: var(--accent); }
.litho-building[hidden] { display: none; }
.tool-actions .btn[aria-disabled="true"] { opacity: .6; cursor: progress; }
.backlit-wrap { margin: 12px 0 0; display: grid; gap: 6px; justify-items: center; }
.backlit { display: block; width: 100%; max-width: 420px; height: auto; background: #111; border-radius: var(--radius-sm); }
.backlit-wrap figcaption { font-size: .85rem; color: var(--ink-soft); }
/* A model that is not a closed mesh: downloads stay available, flagged with an outline and a warning sign (not colour only) */
.tool-actions .btn[data-flagged="true"] { outline: 2px dashed var(--warn); outline-offset: 2px; }
.tool-actions .btn[data-flagged="true"]::before { content: "\26A0\FE0E\00A0"; }
/* Brightness/Contrast: the <label for> names the slider, the <output for> shows its value (QA T3) */
.litho-range { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 6px; margin-top: 10px; }
.litho-adjust .litho-range label { display: inline; margin: 0; font-weight: 700; font-size: .85rem; }
.litho-range input[type="range"] { grid-column: 1 / -1; margin: 0; }
/* Touch targets of at least 44 x 44 CSS px (QA T3, WCAG 2.5.5) */
.litho-range input[type="range"] { min-height: 44px; }
.drop-zone input[type="file"] { min-height: 44px; }
.drop-zone .link-btn { display: inline-flex; align-items: center; min-height: 44px; }
.litho-adjust summary { min-height: 44px; padding: 10px 0; box-sizing: border-box; }
.litho-adjust label.check { min-height: 44px; align-items: center; }
.litho-adjust label.check input { width: 22px; height: 22px; }
.backlit-wrap[hidden] { display: none; }
