/* Lumetize instant quote. Uses the theme tokens (--lz-*) with fallbacks. */
.lzq {
	--q-ink: var(--lz-ink, #141c2b);
	--q-ink-2: var(--lz-ink-2, #3a4458);
	--q-muted: var(--lz-muted, #667085);
	--q-line: var(--lz-line, #e3e7ef);
	--q-mist: var(--lz-mist, #f3f5f9);
	--q-paper: var(--lz-paper, #fafbfd);
	--q-grad: var(--lz-grad, linear-gradient(100deg, #17b4f2 0%, #3b6cff 26%, #8a3cf0 48%, #ec3fc6 64%, #ff7a2f 84%, #ffb23f 100%));
	--q-violet: var(--lz-violet, #7b3ff2);
	--q-blue: var(--lz-blue, #2f6bff);
	--q-red: #c43d4b;
	--q-red-soft: #fdeef0;
	--q-radius: 22px;
	--q-radius-sm: 14px;
	--q-shadow: 0 1px 2px rgb(20 28 43 / .04), 0 22px 44px -26px rgb(20 28 43 / .35);
	position: relative;
	font-family: var(--lz-font, "Inter", system-ui, sans-serif);
	color: var(--q-ink);
	-webkit-tap-highlight-color: transparent;
}
.lzq *, .lzq *::before, .lzq *::after { box-sizing: border-box; }
.lzq button { font: inherit; color: inherit; cursor: pointer; }
.lzq button:disabled { cursor: not-allowed; }
.lzq [hidden] { display: none !important; }
.lzq svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.lzq.is-drag::after { content: "Drop to add"; position: fixed; inset: 16px; z-index: 100; display: grid; place-items: center; border-radius: 28px; border: 2px dashed var(--q-blue); background: rgb(255 255 255 / .86); font: 600 22px var(--lz-font-display, "Lexend", sans-serif); color: var(--q-ink); pointer-events: none; }

.lzq-boot { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 340px; color: var(--q-muted); }
.lzq-spin { display: inline-block; width: 16px; height: 16px; border: 2px solid var(--q-line); border-top-color: var(--q-blue); border-radius: 50%; animation: lzq-spin .8s linear infinite; vertical-align: -3px; flex: none; }
@keyframes lzq-spin { to { transform: rotate(360deg); } }
.lzq-shimmer { border-radius: 10px; background: linear-gradient(90deg, var(--q-mist), #e8ecf3, var(--q-mist)); background-size: 200% 100%; animation: lzq-shim 1.2s linear infinite; }
@keyframes lzq-shim { to { background-position: -200% 0; } }

/* Progress */
.lzq-shell { padding: 8px 0 40px; min-height: 64vh; }
.lzq-progress { display: flex; justify-content: center; gap: 6px; margin: 0 0 clamp(24px, 4vw, 44px); padding: 0; list-style: none; }
.lzq-progress li { display: flex; align-items: center; gap: 8px; margin: 0; padding: 7px 14px 7px 8px; border-radius: 999px; color: var(--q-muted); font-size: 13px; font-weight: 600; transition: background .3s, color .3s; }
.lzq-progress-ico { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--q-mist); }
.lzq-progress-ico svg { width: 15px; height: 15px; }
.lzq-progress li.is-done { color: var(--q-ink-2); }
.lzq-progress li.is-done .lzq-progress-ico { background: var(--q-ink); color: #fff; }
.lzq-progress li.is-current { background: #fff; color: var(--q-ink); box-shadow: var(--q-shadow); }
.lzq-progress li.is-current .lzq-progress-ico { background: var(--q-grad); color: #fff; }

/* Steps */
.lzq-step.is-in { animation: lzq-in .45s cubic-bezier(.2, .8, .2, 1); }
.lzq-step.is-in-back { animation: lzq-in-back .45s cubic-bezier(.2, .8, .2, 1); }
@keyframes lzq-in { from { opacity: 0; transform: translateX(24px); } }
@keyframes lzq-in-back { from { opacity: 0; transform: translateX(-24px); } }
.lzq-head { text-align: center; max-width: 640px; margin: 0 auto 28px; }
.lzq-title { margin: 0 0 10px; font-family: var(--lz-font-display, "Lexend", sans-serif); font-size: clamp(28px, 4vw, 42px); line-height: 1.12; font-weight: 500; letter-spacing: -.02em; text-wrap: balance; }
.lzq-sub { margin: 0 auto; color: var(--q-muted); font-size: 16px; line-height: 1.6; text-wrap: pretty; }
.lzq-h3 { margin: 22px 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--q-ink-2); }
.lzq-eyebrow { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--q-muted); }
.lzq-note { margin: 8px 0 0; font-size: 13px; color: var(--q-muted); line-height: 1.5; }
.lzq-err { margin: 14px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--q-red-soft); color: var(--q-red); font-size: 14px; font-weight: 600; }
.lzq-link { background: none; border: 0; padding: 0; color: var(--q-blue); font-weight: 600; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.lzq-link:hover { color: var(--q-violet); }
.lzq-iconbtn { width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 1px solid var(--q-line); background: #fff; border-radius: 50%; color: var(--q-ink-2); }
.lzq-iconbtn svg { width: 16px; height: 16px; }

/* Buttons */
.lzq-btn, .lzq-btn-line { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 22px; border-radius: 999px; font-size: 15px; font-weight: 600; text-decoration: none; transition: transform .2s, box-shadow .2s, background .2s, color .2s; }
.lzq-btn { background: var(--q-ink); color: #fff; border: 0; }
.lzq-btn:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 12px 26px -12px rgb(20 28 43 / .6); }
.lzq-btn-line { background: #fff; color: var(--q-ink); border: 1.5px solid var(--q-line); }
.lzq-btn-line:hover { border-color: var(--q-ink); }
.lzq-btn-line svg { width: 16px; height: 16px; }

/* 1. Upload */
.lzq-drop { position: relative; max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: clamp(36px, 6vw, 64px) 24px; text-align: center; border-radius: 28px; cursor: pointer; background: linear-gradient(#fff, #fff) padding-box, var(--q-grad) border-box; border: 2px dashed transparent; box-shadow: var(--q-shadow); transition: transform .25s, box-shadow .25s; outline: none; }
.lzq-drop::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(60% 80% at 50% 0%, rgb(59 108 255 / .07), transparent 70%); pointer-events: none; }
.lzq-drop:hover, .lzq-drop:focus-visible { transform: translateY(-2px); box-shadow: 0 30px 60px -30px rgb(59 108 255 / .45); }
.lzq-drop-ico { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 50%; background: var(--q-grad); color: #fff; box-shadow: 0 14px 30px -12px rgb(138 60 240 / .6); margin-bottom: 6px; }
.lzq-drop-ico svg { width: 30px; height: 30px; }
.lzq-drop-big { font-family: var(--lz-font-display, "Lexend", sans-serif); font-weight: 500; font-size: clamp(20px, 2.6vw, 26px); }
.lzq-drop-or { font-size: 13px; color: var(--q-muted); }
.lzq-formats { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 10px; }
.lzq-formats i { font-style: normal; font-size: 12px; font-weight: 700; letter-spacing: .06em; padding: 5px 10px; border-radius: 999px; background: var(--q-mist); color: var(--q-ink-2); }
.lzq-drop-note { font-size: 12px; color: var(--q-muted); }
.lzq-trust { max-width: 900px; margin: 34px auto 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.lzq-trust li { display: flex; gap: 12px; margin: 0; padding: 16px; border-radius: var(--q-radius-sm); background: var(--q-mist); font-size: 13px; color: var(--q-muted); line-height: 1.45; }
.lzq-trust li > svg { margin-top: 2px; color: var(--q-blue); }
.lzq-trust strong { display: block; color: var(--q-ink); font-size: 14px; margin-bottom: 2px; }
.lzq-alt { text-align: center; margin: 26px auto 0; font-size: 14px; color: var(--q-muted); }
.lzq-alt a { color: var(--q-blue); font-weight: 600; }

/* 2. Configure */
.lzq-config { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(18px, 3vw, 36px); align-items: start; }
.lzq-stagecol { position: sticky; top: 96px; }
.lzq-stage { position: relative; aspect-ratio: 1 / .92; border-radius: 28px; overflow: hidden; background: radial-gradient(90% 70% at 50% 30%, #fff 0%, #eef1f7 70%, #e4e9f2 100%); border: 1px solid var(--q-line); }
.lzq-stage::after { content: ""; position: absolute; left: 12%; right: 12%; bottom: 9%; height: 16px; border-radius: 50%; background: radial-gradient(closest-side, rgb(20 28 43 / .14), transparent); pointer-events: none; }
.lzq-canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; display: block; cursor: grab; touch-action: none; z-index: 1; }
.lzq-canvas:active { cursor: grabbing; }
.lzq-stage-msg { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 2; display: inline-flex; align-items: center; gap: 8px; max-width: 86%; padding: 10px 16px; border-radius: 999px; background: #fff; box-shadow: var(--q-shadow); font-size: 14px; font-weight: 600; text-align: center; }
.lzq-dims { position: absolute; left: 14px; bottom: 14px; z-index: 2; display: flex; gap: 6px; flex-wrap: wrap; pointer-events: none; }
.lzq-dims span { padding: 6px 11px; border-radius: 999px; background: rgb(255 255 255 / .9); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font-size: 12px; font-weight: 700; color: var(--q-ink); font-variant-numeric: tabular-nums; }
.lzq-reset { position: absolute; top: 14px; right: 14px; z-index: 2; }
.lzq-hint { position: absolute; right: 16px; bottom: 18px; z-index: 2; font-size: 11px; color: var(--q-muted); pointer-events: none; }
.lzq-parts { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; padding: 4px 2px 8px; scrollbar-width: thin; }
.lzq-part { position: relative; flex: none; width: 104px; display: flex; flex-direction: column; align-items: stretch; gap: 6px; padding: 6px; border: 1.5px solid var(--q-line); background: #fff; border-radius: 16px; text-align: left; transition: border-color .2s, transform .2s; }
.lzq-part:hover { transform: translateY(-2px); }
.lzq-part.is-on { background: linear-gradient(#fff, #fff) padding-box, var(--q-grad) border-box; border-color: transparent; }
.lzq-part-img { aspect-ratio: 1; display: grid; place-items: center; border-radius: 11px; background: var(--q-mist); overflow: hidden; color: var(--q-muted); }
.lzq-part-img img { width: 100%; height: 100%; object-fit: cover; }
.lzq-part-t { font-size: 11px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lzq-part.is-error .lzq-part-img { background: var(--q-red-soft); color: var(--q-red); }
.lzq-part-add { border-style: dashed; color: var(--q-muted); }
.lzq-upbar { display: block; height: 3px; border-radius: 3px; background: var(--q-line); overflow: hidden; --p: 0%; }
.lzq-upbar i { display: block; height: 100%; width: var(--p); background: var(--q-grad); transition: width .3s; }
.lzq-upbar.is-done { opacity: 0; transition: opacity .6s .4s; }
.lzq-upbar.is-err i { background: var(--q-red); width: 100%; }

.lzq-opts { min-width: 0; }
.lzq-opts-load { display: grid; gap: 12px; }
.lzq-opts-title { margin: 0; font-family: var(--lz-font-display, "Lexend", sans-serif); font-size: clamp(20px, 2.4vw, 26px); font-weight: 500; letter-spacing: -.01em; word-break: break-word; }
.lzq-size { margin: 6px 0 0; font-size: 14px; color: var(--q-ink-2); font-variant-numeric: tabular-nums; }
.lzq-scale { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-top: 14px; }
.lzq-mini { display: flex; flex-direction: column; gap: 4px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--q-muted); }
.lzq-mini select, .lzq-mini input { height: 40px; padding: 0 12px; border: 1.5px solid var(--q-line); border-radius: 12px; background: #fff; font: 600 14px var(--lz-font, "Inter", sans-serif); color: var(--q-ink); text-transform: none; letter-spacing: 0; }
.lzq-mini input { width: 96px; padding-right: 28px; }
.lzq-suffix { position: relative; display: inline-block; }
.lzq-suffix i { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-style: normal; font-size: 13px; color: var(--q-muted); text-transform: none; letter-spacing: 0; }
.lzq-fit { height: 40px; padding: 0 16px; font-size: 13px; }
.lzq-warn { display: flex; gap: 10px; margin: 14px 0 0; padding: 12px 14px; border-radius: 14px; background: #fff6e8; color: #7a4b07; font-size: 13px; line-height: 1.5; }
.lzq-warn svg { width: 18px; height: 18px; margin-top: 1px; }
.lzq-warn a { color: inherit; font-weight: 700; }
.lzq-warn.is-violet { background: #f3edff; color: #4b2399; }

.lzq-mats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lzq-mat { position: relative; display: grid; grid-template-columns: 34px 1fr; grid-template-rows: auto 1fr auto; column-gap: 12px; row-gap: 3px; padding: 14px; text-align: left; border: 1.5px solid var(--q-line); background: #fff; border-radius: var(--q-radius-sm); transition: border-color .2s, box-shadow .2s, transform .2s; }
.lzq-mat:hover { border-color: #c7cfdc; transform: translateY(-1px); }
.lzq-mat.is-on { background: linear-gradient(#fff, #fff) padding-box, var(--q-grad) border-box; border-color: transparent; box-shadow: 0 16px 30px -22px rgb(59 108 255 / .7); }
.lzq-mat-sw { grid-row: 1 / 3; width: 34px; height: 34px; border-radius: 50%; box-shadow: inset -4px -6px 10px rgb(0 0 0 / .18), inset 3px 4px 8px rgb(255 255 255 / .7), 0 2px 6px rgb(20 28 43 / .12); }
.lzq-sw-standard { background: radial-gradient(circle at 35% 30%, #d9dde3, #9aa1ab 70%); }
.lzq-sw-detail { background: radial-gradient(circle at 35% 30%, #cfd3da, #7f8792 70%); }
.lzq-sw-tough { background: radial-gradient(circle at 35% 30%, #8a919c, #33383f 75%); }
.lzq-sw-clear { background: radial-gradient(circle at 35% 30%, #fff, #dcefff 55%, #b9dcf7); }
.lzq-sw-colour { background: conic-gradient(from 200deg, #17b4f2, #3b6cff, #8a3cf0, #ec3fc6, #ff7a2f, #ffb23f, #17b4f2); }
.lzq-sw-colour-clear { background: radial-gradient(circle at 35% 30%, rgb(255 255 255 / .95), rgb(255 255 255 / 0) 55%), conic-gradient(from 200deg, rgb(23 180 242 / .55), rgb(138 60 240 / .55), rgb(236 63 198 / .55), rgb(255 178 63 / .55), rgb(23 180 242 / .55)); }
.lzq-mat-t { font-weight: 700; font-size: 14px; line-height: 1.3; }
.lzq-mat-d { font-size: 12px; color: var(--q-muted); line-height: 1.45; }
.lzq-mat-p { grid-column: 2; margin-top: 6px; font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; }
.lzq-colours { display: flex; flex-wrap: wrap; gap: 8px; }
.lzq-colour { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 7px; border: 1.5px solid var(--q-line); background: #fff; border-radius: 999px; font-size: 13px; font-weight: 600; }
.lzq-colour i { width: 22px; height: 22px; border-radius: 50%; border: 1px solid rgb(0 0 0 / .12); }
.lzq-colour.is-on { border-color: var(--q-ink); }
.lzq-seg { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 16px; background: var(--q-mist); }
.lzq-seg button { flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; border: 0; background: none; border-radius: 12px; font-size: 13px; font-weight: 600; color: var(--q-ink-2); transition: background .2s, color .2s, box-shadow .2s; }
.lzq-seg button.is-on { background: #fff; color: var(--q-ink); box-shadow: 0 2px 8px rgb(20 28 43 / .1); }
.lzq-seg em { font-style: normal; color: var(--q-muted); font-weight: 500; }
.lzq-seg svg { width: 18px; height: 18px; }
.lzq-qtyrow { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; }
.lzq-qty { display: inline-flex; align-items: center; border: 1.5px solid var(--q-line); border-radius: 999px; background: #fff; }
.lzq-qty button { width: 42px; height: 42px; display: grid; place-items: center; border: 0; background: none; padding: 0; }
.lzq-qty svg { width: 16px; height: 16px; }
.lzq-qty input { width: 64px; height: 42px; border: 0; text-align: center; font: 700 16px var(--lz-font, "Inter", sans-serif); color: var(--q-ink); background: none; -moz-appearance: textfield; appearance: textfield; }
.lzq-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }
.lzq-partprice { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.lzq-partprice span { font-size: 12px; color: var(--q-muted); font-weight: 600; }
.lzq-partprice strong { font-family: var(--lz-font-display, "Lexend", sans-serif); font-size: 30px; font-weight: 500; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.lzq-partprice small { font-size: 12px; color: var(--q-muted); }
.is-req { background: var(--q-grad); -webkit-background-clip: text; background-clip: text; color: transparent !important; }

/* Fields */
.lzq-field { display: block; margin: 16px 0 0; }
.lzq-field > span, .lzq-fieldset legend { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--q-ink-2); }
.lzq-field em { font-style: normal; text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--q-muted); }
.lzq-field input, .lzq-field textarea { width: 100%; padding: 12px 14px; border: 1.5px solid var(--q-line); border-radius: 12px; background: #fff; font: 15px var(--lz-font, "Inter", sans-serif); color: var(--q-ink); outline: none; transition: border-color .2s, box-shadow .2s; }
.lzq-field input:focus, .lzq-field textarea:focus { border-color: var(--q-blue); box-shadow: 0 0 0 4px rgb(59 108 255 / .14); }
.lzq-field.is-bad input { border-color: var(--q-red); background: var(--q-red-soft); }
.lzq-field small { display: block; margin-top: 4px; font-size: 12px; font-weight: 600; color: var(--q-red); }
.lzq-fieldset { border: 0; margin: 18px 0 0; padding: 0; }
.lzq-check { display: flex; align-items: flex-start; gap: 10px; margin-top: 18px; font-size: 14px; color: var(--q-ink-2); cursor: pointer; }
.lzq-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--q-ink); }
.lzq-check.is-bad { color: var(--q-red); }
.lzq-check a { color: var(--q-blue); }
.lzq-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.lzq-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.lzq-row-zip { grid-template-columns: 1fr 2fr; }

/* 3. Overview & 4. details */
.lzq-grid2 { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(18px, 3vw, 36px); align-items: start; }
.lzq-lines { display: grid; gap: 10px; margin-bottom: 14px; }
.lzq-line { display: grid; grid-template-columns: 84px 1fr auto; gap: 16px; padding: 12px; border: 1px solid var(--q-line); background: #fff; border-radius: var(--q-radius-sm); }
.lzq-line-img { width: 84px; height: 84px; display: grid; place-items: center; border-radius: 12px; background: var(--q-mist); overflow: hidden; color: var(--q-muted); }
.lzq-line-img img { width: 100%; height: 100%; object-fit: cover; }
.lzq-line-body { min-width: 0; display: flex; flex-direction: column; gap: 3px; justify-content: center; }
.lzq-line-body strong { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lzq-line-body > span:not(.lzq-upbar) { font-size: 13px; color: var(--q-muted); }
.lzq-line-body .lzq-upbar { margin-top: 6px; max-width: 200px; }
.lzq-line-side { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 4px; }
.lzq-line-side strong { font-size: 16px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lzq-line-qty { font-size: 13px; color: var(--q-muted); }
.lzq-line-acts { display: flex; gap: 12px; }
.lzq-extras { margin-bottom: 14px; padding: 14px; border-radius: var(--q-radius-sm); background: var(--q-mist); font-size: 13px; }
.lzq-extras ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.lzq-upchip { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 4px 4px 4px 10px; margin: 0; border-radius: 999px; background: #fff; overflow: hidden; --p: 0%; }
.lzq-upchip::after { content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: var(--p); background: var(--q-grad); }
.lzq-upchip svg { width: 14px; height: 14px; }
.lzq-upchip .lzq-iconbtn { width: 24px; height: 24px; border: 0; }
.lzq-speed, .lzq-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lzq-card { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 16px; text-align: left; border: 1.5px solid var(--q-line); background: #fff; border-radius: var(--q-radius-sm); transition: border-color .2s, box-shadow .2s; }
.lzq-card svg { color: var(--q-blue); margin-bottom: 4px; }
.lzq-card strong { font-size: 15px; }
.lzq-card span { font-size: 13px; color: var(--q-muted); line-height: 1.45; }
.lzq-card em { font-style: normal; font-size: 13px; font-weight: 700; margin-top: 4px; }
.lzq-card.is-on { background: linear-gradient(#fff, #fff) padding-box, var(--q-grad) border-box; border-color: transparent; box-shadow: 0 16px 30px -22px rgb(59 108 255 / .7); }
.lzq-card:disabled { opacity: .5; }
.lzq-modes { margin-bottom: 4px; }
.lzq-summary { position: sticky; top: 96px; padding: 24px; border-radius: var(--q-radius); background: #fff; border: 1px solid var(--q-line); box-shadow: var(--q-shadow); }
.lzq-summary-t { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--q-muted); }
.lzq-lines-s { list-style: none; margin: 0; padding: 0; }
.lzq-lines-s li { display: flex; justify-content: space-between; gap: 12px; margin: 0; padding: 9px 0; border-bottom: 1px dashed var(--q-line); font-size: 14px; color: var(--q-ink-2); }
.lzq-lines-s li span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lzq-lines-s li strong { color: var(--q-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.lzq-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px; }
.lzq-total span { font-weight: 700; }
.lzq-total strong { font-family: var(--lz-font-display, "Lexend", sans-serif); font-size: 30px; font-weight: 500; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.lzq-vat { margin: 2px 0 0; text-align: right; font-size: 12px; color: var(--q-muted); }
.lzq-req { display: flex; gap: 8px; margin: 14px 0 0; padding: 12px; border-radius: 12px; background: #f3edff; color: #4b2399; font-size: 13px; line-height: 1.45; }
.lzq-req svg { width: 18px; height: 18px; }
.lzq-upstate { display: flex; align-items: center; gap: 8px; margin: 14px 0 0; font-size: 13px; color: var(--q-muted); }
.lzq-upstate svg { width: 16px; height: 16px; }
.lzq-upstate.is-done { color: #1d7a4c; }
.lzq-reassure { list-style: none; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--q-line); display: grid; gap: 8px; }
.lzq-reassure li { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; color: var(--q-ink-2); }
.lzq-reassure svg { width: 16px; height: 16px; color: var(--q-blue); }

/* 5. Done */
.lzq-done { max-width: 620px; margin: 0 auto; text-align: center; }
.lzq-done-ico { width: 88px; height: 88px; margin: 0 auto 18px; display: grid; place-items: center; border-radius: 50%; background: var(--q-grad); color: #fff; box-shadow: 0 20px 40px -18px rgb(138 60 240 / .7); animation: lzq-pop .7s cubic-bezier(.3, 1.6, .5, 1); }
.lzq-done-ico svg { width: 42px; height: 42px; stroke-width: 2.4; }
@keyframes lzq-pop { from { transform: scale(0) rotate(-30deg); } }
.lzq-timeline { counter-reset: s; list-style: none; margin: 28px 0; padding: 0; display: grid; gap: 10px; text-align: left; }
.lzq-timeline li { counter-increment: s; position: relative; margin: 0; padding: 14px 16px 14px 58px; border: 1px solid var(--q-line); border-radius: var(--q-radius-sm); background: #fff; font-size: 15px; color: var(--q-ink-2); }
.lzq-timeline li::before { content: counter(s); position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--q-mist); font-weight: 700; color: var(--q-ink); }
.lzq-done-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* Bottom bar */
.lzq-bar { position: sticky; bottom: 0; z-index: 30; margin: 0 -16px; padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); background: rgb(255 255 255 / .86); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-top: 1px solid var(--q-line); }
.lzq-bar.is-hidden { display: none; }
.lzq-bar-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lzq-back { display: inline-flex; align-items: center; gap: 4px; padding: 11px 18px 11px 12px; border: 1.5px solid var(--q-line); background: #fff; border-radius: 999px; font-size: 14px; font-weight: 600; }
.lzq-back:hover { border-color: var(--q-ink); }
.lzq-back svg { width: 18px; height: 18px; }
.lzq-go { display: flex; align-items: center; gap: 18px; margin-left: auto; }
.lzq-sum { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.lzq-sum.is-empty { visibility: hidden; }
.lzq-sum-label { font-size: 12px; color: var(--q-muted); font-weight: 600; }
.lzq-sum-price { font-family: var(--lz-font-display, "Lexend", sans-serif); font-size: 22px; font-weight: 500; font-variant-numeric: tabular-nums; }
.lzq-next { display: inline-flex; align-items: center; gap: 6px; padding: 14px 24px 14px 26px; border: 0; border-radius: 999px; background: var(--q-ink); color: #fff !important; font-size: 15px; font-weight: 600; position: relative; isolation: isolate; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.lzq-next::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--q-grad); opacity: 0; transition: opacity .3s; }
.lzq-next:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 14px 30px -14px rgb(138 60 240 / .8); }
.lzq-next:hover:not(:disabled)::before { opacity: 1; }
.lzq-next:disabled { background: #b8bfcc; }
.lzq-next svg { width: 18px; height: 18px; }

/* Printability check */
.lzq-ana { margin-top: 18px; padding: 16px 18px; border-radius: var(--q-radius-sm); border: 1.5px solid var(--q-line); background: #fff; }
.lzq-ana.is-ok { border-color: #bfe5cc; background: #f6fcf8; }
.lzq-ana.is-warn { border-color: #f6d9a8; background: #fffaf1; }
.lzq-ana.is-fail { border-color: #f3c0c6; background: #fff7f8; }
.lzq-ana-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.lzq-ana-head strong { font-size: 15px; }
.lzq-ana-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.lzq-ana-list li { display: flex; gap: 10px; margin: 0; font-size: 14px; line-height: 1.45; }
.lzq-ana-list li > span:last-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lzq-ana-list small { font-size: 13px; color: var(--q-muted); }
.lzq-ana-ico { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; }
.lzq-ana-ico svg { width: 14px; height: 14px; }
.lzq-ana-list .is-ok .lzq-ana-ico { background: #dff3e6; color: #1d7a43; }
.lzq-ana-list .is-warn .lzq-ana-ico { background: #fdebc8; color: #8a5300; }
.lzq-ana-list .is-fail .lzq-ana-ico { background: var(--q-red-soft); color: var(--q-red); }
.lzq-ana-tools { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.lzq-btn-line.is-sm { padding: 8px 14px; font-size: 13px; }
.lzq-btn-line.is-on { border-color: var(--q-ink); background: var(--q-ink); color: #fff; }
.lzq-ana-sub { margin: 14px 0 0; font-size: 13px; font-weight: 600; color: var(--q-ink-2); }
.lzq-fixes { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px; }
.lzq-check.is-sm { margin-top: 8px; font-size: 13px; }
.lzq-check.is-sm input { width: 16px; height: 16px; }
.lzq-rec { font-style: normal; font-size: 11px; font-weight: 700; color: var(--q-violet); white-space: nowrap; }
.lzq-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; vertical-align: 1px; }
.lzq-badge .lzq-spin { width: 11px; height: 11px; }
.lzq-badge.is-ok { background: #dff3e6; color: #1d7a43; }
.lzq-badge.is-warn { background: #fdebc8; color: #8a5300; }
.lzq-badge.is-fail { background: var(--q-red-soft); color: var(--q-red); }
.lzq-badge.is-run { background: var(--q-mist); color: var(--q-muted); }
.lzq-line-fix { color: var(--q-violet) !important; font-weight: 600; }
.lzq-legend { position: absolute; left: 14px; top: 14px; z-index: 2; display: flex; flex-wrap: wrap; gap: 4px 12px; max-width: calc(100% - 80px); padding: 8px 12px; border-radius: 14px; background: rgb(255 255 255 / .92); font-size: 12px; font-weight: 600; pointer-events: none; }
.lzq-legend[hidden] { display: none; }
.lzq-legend span { display: inline-flex; align-items: center; gap: 6px; }
.lzq-legend i { width: 10px; height: 10px; border-radius: 3px; }
.lzq-legend .is-thin { background: #e5484d; }
.lzq-legend .is-low { background: #f5a524; }
.lzq-legend .is-ok { background: #9fd9b4; }
.lzq-legend .is-cav { background: #8a3cf0; }

@media (max-width: 900px) {
	.lzq-config, .lzq-grid2 { grid-template-columns: 1fr; }
	.lzq-stagecol, .lzq-summary { position: static; }
	.lzq-stage { aspect-ratio: 1 / .8; }
}
@media (max-width: 640px) {
	.lzq-progress { gap: 2px; }
	.lzq-progress li { padding: 4px; }
	.lzq-progress-t { display: none; }
	.lzq-progress li.is-current .lzq-progress-t { display: inline; padding-right: 6px; }
	.lzq-trust { grid-template-columns: 1fr; }
	.lzq-mats { grid-template-columns: 1fr; }
	.lzq-speed, .lzq-modes, .lzq-row2 { grid-template-columns: 1fr; }
	.lzq-row-zip { grid-template-columns: 1fr 2fr; }
	.lzq-line { grid-template-columns: 64px 1fr; }
	.lzq-line-img { width: 64px; height: 64px; }
	.lzq-line-side { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; }
	.lzq-hint { display: none; }
	.lzq-fixes { grid-template-columns: 1fr; }
	.lzq-go { gap: 10px; }
	.lzq-sum-price { font-size: 18px; }
	.lzq-sum-label { font-size: 11px; }
	.lzq-next { padding: 13px 18px; font-size: 14px; }
	.lzq-back { padding: 10px 12px 10px 8px; }
}
@media (prefers-reduced-motion: reduce) {
	.lzq *, .lzq *::before, .lzq *::after { animation: none !important; transition: none !important; }
}
