.account-container {
    width: min(920px, calc(100% - 40px));
    margin: 34px auto 55px;
}

.account-card {
    background: #fff;
    border: 1px solid var(--rp-line);
    border-radius: var(--rp-radius);
    padding: 24px;
    margin-bottom: 18px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, .035);
}

.account-card h1 {
    margin: 0 0 22px;
    font-size: 36px;
    letter-spacing: -.025em;
}

.account-card h2 {
    margin: 0 0 16px;
    font-size: 22px;
}

.account-card p {
    line-height: 1.5;
}

.order-row {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) 150px;
    align-items: center;
    gap: 24px;
    min-height: 68px;
    padding: 14px 0;
    border-bottom: 1px solid #e8e9ea;
}
.order-row:last-child { border-bottom: 0; }
.order-status { display: flex; align-items: center; }
.order-status-label {
    display: inline-flex; align-items: center; min-height: 32px;
    padding: 6px 11px; border-radius: 5px;
    background: #eceeef; color: #45484b;
    font-size: 13px; font-weight: 800;
    white-space: nowrap;
}
.status-new { background:#fff2c7; color:#806000; }
.status-confirmed { background:#eef2bf; color:#667019; }
.status-processing { background:#e2efc5; color:#55712a; }
.status-ready { background:#d5edc9; color:#44713b; }
.status-shipped { background:#c8e9cc; color:#367043; }
.status-delivered { background:#b9e2c0; color:#276438; }
.status-cancelled { background:#f8d6d6; color:#9a3030; }
.order-info strong { display:block; margin-bottom:3px; }
.order-date { display:block; color:var(--rp-muted); }
.order-detail { text-align:right; }
.order-detail .account-link { white-space:nowrap; }

.current-status-row {
    align-items: center;
}

.current-status-row .order-status-label {
    justify-self: start;
}

.invoice-download-row {
    align-items: center;
}

.invoice-download-button {
    justify-self: start;
    width: auto !important;
    min-width: 190px;
    min-height: 38px;
    padding: 0 15px;
}

.status-line {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #eceeef;
    color: var(--rp-muted);
    font-size: 13px;
}

.project-block {
    margin-top: 18px;
}

.project-title {
    padding: 10px 12px;
    background: var(--rp-gray-light);
    border-left: 4px solid var(--rp-gray);
    font-weight: 800;
}

.item-row {
    padding: 12px;
    border-bottom: 1px solid #eceeef;
    line-height: 1.55;
}

.item-row:last-child {
    border-bottom: 0;
}

.item-accessories {
    margin-top: 6px;
    color: var(--rp-muted);
    font-size: 13px;
}

@media (max-width: 560px) {
    .account-container {
        width: min(100% - 26px, 920px);
        margin-top: 24px;
    }

    .account-card {
        padding: 18px;
    }

    .order-row {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 16px 0;
    }
    .order-status { order: 1; }
    .order-info { order: 2; }
    .order-detail { order: 3; text-align: left; }

    .order-status-label {
        white-space: normal;
    }

    .invoice-download-button {
        min-width: 0;
    }
}


/* ========================================================== */
/* Registrace – RP parapet puzzle                             */
/* ========================================================== */

.register-container {
    width: min(1040px, calc(100% - 40px));
}

.register-data-card h2 {
    margin-bottom: 20px;
}

.register-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.register-field label {
    display: block;
    margin-bottom: 6px;
    color: #35373a;
    font-size: 13px;
    font-weight: 800;
}

.register-field input,
.register-field select,
.register-field textarea {
    width: 100%;
    min-height: 42px;
    padding: 9px 11px;
    border: 1px solid #bfc2c5;
    border-radius: 5px;
    outline: none;
    background: #fff;
    color: var(--rp-text);
    font: inherit;
}

.register-field input:focus {
    border-color: #73767a;
    box-shadow: 0 0 0 2px rgba(85, 88, 92, .08);
}

.register-field-email,
.register-field-company_name,
.register-field-street {
    grid-column: span 2;
}

.rp-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.register-form-errors {
    margin-bottom: 16px;
    padding: 12px 14px;
    border: 1px solid #ebcaca;
    border-radius: 6px;
    background: #f9eaea;
    color: #8c3434;
}

.mount-puzzle {
    margin-bottom: 18px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--rp-line);
    border-radius: var(--rp-radius);
    box-shadow: 0 5px 20px rgba(0, 0, 0, .035);
    user-select: none;
}

.mount-puzzle-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 26px 20px;
}

.mount-puzzle-kicker {
    margin-bottom: 7px;
    color: var(--rp-gray);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .15em;
}

.mount-puzzle-header h2 {
    margin: 0;
    font-size: 26px;
    letter-spacing: -.025em;
}

.mount-puzzle-header p {
    max-width: 660px;
    margin: 8px 0 0;
    color: var(--rp-muted);
    font-size: 14px;
    line-height: 1.5;
}

.mount-puzzle-clock {
    min-width: 90px;
    padding: 9px 12px;
    text-align: center;
    background: #f1f2f2;
    border-radius: 6px;
}

.mount-puzzle-clock span {
    display: block;
    margin-bottom: 3px;
    color: var(--rp-muted);
    font-size: 11px;
    font-weight: 700;
}

.mount-puzzle-clock strong {
    font-size: 20px;
}

.mount-scene {
    margin: 0 26px;
    overflow: hidden;
    border: 1px solid #dedfe1;
    border-radius: 8px;
    background: #eeeae4;
}

.mount-wall {
    position: relative;
    height: 315px;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(0,0,0,.035), transparent 14%, transparent 86%, rgba(0,0,0,.035)),
        linear-gradient(#f5f4f1, #eae7e1);
}

.mount-window {
    position: absolute;
    top: 26px;
    left: 50%;
    width: 70%;
    height: 180px;
    transform: translateX(-50%);
    border: 15px solid #e5e5e3;
    background: #cdd8d0;
    box-shadow:
        0 0 0 2px #bebfbd,
        0 12px 22px rgba(0,0,0,.08);
}

.mount-window-glass {
    position: absolute;
    top: 0;
    bottom: 0;
    width: calc(50% - 5px);
    background:
        linear-gradient(145deg, rgba(255,255,255,.75), rgba(206,222,218,.65)),
        linear-gradient(#c7d6cf, #dfe5df);
}

.mount-window-glass-left { left: 0; }
.mount-window-glass-right { right: 0; }

.mount-window-cross-v {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 10px;
    transform: translateX(-50%);
    background: #efefed;
}

.mount-window-cross-h {
    position: absolute;
    left: 0;
    right: 0;
    top: 52%;
    height: 9px;
    background: #efefed;
}

.mount-targets {
    position: absolute;
    left: 50%;
    bottom: 34px;
    width: 76%;
    height: 66px;
    transform: translateX(-50%);
}

.mount-target {
    position: absolute;
    top: 0;
    height: 66px;
    border: 2px dashed #9a938a;
    background: rgba(255,255,255,.24);
    transition: border-color .2s, background .2s, box-shadow .2s;
}

.mount-target-sill {
    left: 9%;
    width: 82%;
}

.mount-target-left,
.mount-target-right {
    z-index: 2;
    width: 10%;
}

.mount-target-left { left: 0; }
.mount-target-right { right: 0; }

.mount-target.is-ready {
    border-color: #55585c;
    background: rgba(255,255,255,.42);
    box-shadow: inset 0 0 0 2px rgba(85,88,92,.05);
}

.mount-target.is-locked {
    border-style: solid;
    border-color: #8da98f;
    background: rgba(206,232,209,.38);
}

.mount-workbench {
    min-height: 190px;
    display: grid;
    grid-template-columns: 160px minmax(300px, 1fr) 160px;
    align-items: center;
    gap: 22px;
    padding: 25px 34px 20px;
    background:
        linear-gradient(rgba(255,255,255,.28), rgba(255,255,255,.08)),
        repeating-linear-gradient(90deg, #d8c3a7 0, #d8c3a7 28px, #d3bea2 29px, #d8c3a7 31px);
}

.puzzle-piece {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    cursor: grab;
    touch-action: none;
    transition: opacity .18s, transform .18s;
}

.puzzle-piece:active { cursor: grabbing; }
.puzzle-piece.is-placed { opacity: .18; pointer-events: none; }
.puzzle-piece.is-wrong { animation: puzzle-shake .28s ease; }

.puzzle-piece span {
    padding: 4px 8px;
    border-radius: 4px;
    background: rgba(255,255,255,.7);
    font-size: 12px;
    font-weight: 800;
}

.sill-shape {
    position: relative;
    width: min(100%, 480px);
    height: 55px;
    border: 1px solid #a8aaa9;
    border-radius: 3px 3px 9px 4px;
    background:
        linear-gradient(180deg, #f7f7f5 0%, #dedfdd 70%, #c9cac8 100%);
    box-shadow: 0 13px 17px rgba(0,0,0,.16);
}

.sill-shape::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -11px;
    height: 12px;
    border-radius: 0 0 5px 5px;
    background: #c7c8c6;
    transform: skewX(-14deg);
    transform-origin: left top;
}

.cap-shape {
    position: relative;
    width: 67px;
    height: 88px;
    border: 1px solid #aaa;
    border-radius: 7px 14px 10px 7px;
    background: linear-gradient(135deg, #fafafa, #cfd0ce 70%);
    box-shadow: 0 10px 14px rgba(0,0,0,.15);
}

.cap-shape::after {
    content: "";
    position: absolute;
    bottom: 5px;
    width: 28px;
    height: 8px;
    background: #b8bab8;
}

.cap-piece-left .cap-shape::after { right: -18px; }
.cap-piece-right .cap-shape { transform: scaleX(-1); }
.cap-piece-right .cap-shape::after { right: -18px; }

.puzzle-drag-ghost {
    position: fixed !important;
    z-index: 9999;
    width: 180px;
    pointer-events: none;
    opacity: .94;
    transform: translate(-50%, -50%) scale(.9);
    filter: drop-shadow(0 15px 20px rgba(0,0,0,.18));
}

.puzzle-drag-ghost.sill-piece { width: 420px; }

.mounted-visual {
    position: absolute;
    z-index: 5;
    pointer-events: none;
}

.mounted-visual.sill-piece {
    left: 9%;
    top: 7px;
    width: 82%;
}

.mounted-visual.sill-piece .sill-shape {
    width: 100%;
    height: 51px;
}

.mounted-visual.cap-piece {
    top: -9px;
    width: 10%;
}

.mounted-visual.cap-piece-left { left: 0; }
.mounted-visual.cap-piece-right { right: 0; }
.mounted-visual.cap-piece .cap-shape {
    width: 100%;
    max-width: 58px;
    height: 75px;
    margin: auto;
}

.mounted-visual span { display: none; }

.mount-puzzle-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 18px 26px;
}

.mount-tip {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--rp-muted);
    font-size: 13px;
}

.mount-tip-icon {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #eef0f1;
    color: #55585c;
    font-weight: 900;
}

.mount-progress {
    display: flex;
    align-items: center;
    min-width: 210px;
}

.mount-progress-step {
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border: 1px solid #bfc2c5;
    border-radius: 50%;
    background: #fff;
    color: #777;
    font-size: 12px;
    font-weight: 900;
    transition: .2s;
}

.mount-progress-step.is-done {
    border-color: #6f9476;
    background: #6f9476;
    color: #fff;
}

.mount-progress-line {
    height: 2px;
    flex: 1 1 auto;
    background: #dedfe1;
}

.mount-success {
    margin: 0 26px 24px;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 1px solid #abd1ae;
    border-radius: 7px;
    background: #edf7ee;
    color: #32713b;
    font-size: 17px;
}

.mount-success-check {
    width: 32px;
    height: 32px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: #4f8a58;
    color: #fff;
    font-size: 20px;
    font-weight: 900;
}

.mount-error {
    margin: 0 26px 24px;
    padding: 12px 14px;
    border: 1px solid #e6c6c6;
    border-radius: 6px;
    background: #f9e9e9;
    color: #8f3838;
    font-size: 13px;
}

.register-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 4px 2px;
    color: var(--rp-muted);
    font-size: 14px;
}

.register-submit {
    min-width: 190px;
}

.register-submit:disabled {
    border-color: #c9cbcd;
    background: #c9cbcd;
    color: #f5f5f5;
    cursor: not-allowed;
}

@keyframes puzzle-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-7px); }
    75% { transform: translateX(7px); }
}

@media (max-width: 760px) {
    .register-container {
        width: min(100% - 26px, 1040px);
    }

    .register-fields-grid {
        grid-template-columns: 1fr;
    }

    .register-field-email,
    .register-field-company_name,
    .register-field-street {
        grid-column: auto;
    }

    .mount-puzzle-header,
    .mount-puzzle-footer,
    .register-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .mount-puzzle-clock {
        align-self: stretch;
    }

    .mount-scene {
        margin-left: 15px;
        margin-right: 15px;
    }

    .mount-wall {
        height: 250px;
    }

    .mount-window {
        width: 82%;
        height: 145px;
        border-width: 11px;
    }

    .mount-targets {
        width: 88%;
        bottom: 24px;
        height: 55px;
    }

    .mount-target { height: 55px; }

    .mount-workbench {
        grid-template-columns: 90px minmax(150px, 1fr) 90px;
        gap: 10px;
        padding: 20px 12px;
    }

    .cap-shape {
        width: 52px;
        height: 70px;
    }

    .sill-shape { height: 45px; }

    .mount-progress { min-width: 100%; }
    .register-submit { width: 100%; }
    .mount-success, .mount-error { margin-left:15px; margin-right:15px; }
}


/* ==========================================================
   RP PARAPETY PUZZLE v2
   Realističtější montáž + 5s DOOM timeout
   ========================================================== */

.mount-puzzle {
    position: relative;
}

.mount-puzzle-clock {
    border: 1px solid #dfe1e2;
    background:
        linear-gradient(
            180deg,
            #fafafa,
            #f0f1f1
        );
    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,.8);
}

.mount-puzzle-clock strong {
    font-variant-numeric:
        tabular-nums;
}

.mount-puzzle.is-running
.mount-puzzle-clock {
    border-color: #b8bdc0;
}

.mount-puzzle.is-time-critical
.mount-puzzle-clock {
    border-color: #d1a1a1;
    background: #fbebeb;
    color: #9c3434;
    animation:
        puzzle-clock-pulse
        .42s
        ease-in-out
        infinite alternate;
}

.mount-scene {
    position: relative;
    isolation: isolate;
    background: #e8e5df;
}

.mount-start-overlay {
    position: absolute;
    inset: 0;
    z-index: 40;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 0;
    background:
        radial-gradient(
            circle at center,
            rgba(255,255,255,.76),
            rgba(245,245,243,.93)
        );
    color: #303236;
    cursor: pointer;
    backdrop-filter: blur(2px);
    transition:
        opacity .22s ease,
        visibility .22s ease;
}

.mount-start-overlay.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.mount-start-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    padding-left: 4px;
    border-radius: 50%;
    background: #55585c;
    color: #fff;
    font-size: 19px;
    box-shadow:
        0 12px 30px
        rgba(0,0,0,.14);
}

.mount-start-overlay strong {
    margin-top: 5px;
    font-size: 19px;
}

.mount-start-overlay small {
    color: #74777a;
    font-size: 13px;
}

.mount-wall {
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.035),
            transparent 12%,
            transparent 88%,
            rgba(0,0,0,.035)
        ),
        radial-gradient(
            ellipse at 50% 10%,
            rgba(255,255,255,.95),
            transparent 52%
        ),
        linear-gradient(
            180deg,
            #f7f6f3 0%,
            #ece9e3 100%
        );
}

.mount-wall::before,
.mount-wall::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 9%;
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.07),
            rgba(255,255,255,.15)
        );
    opacity: .28;
}

.mount-wall::before {
    left: 0;
}

.mount-wall::after {
    right: 0;
    transform: scaleX(-1);
}

.mount-window {
    top: 20px;
    width: 72%;
    height: 190px;
    border: 17px solid #f2f2ef;
    background: #cbd8d4;
    box-shadow:
        0 0 0 1px #c5c6c3,
        0 0 0 4px rgba(255,255,255,.55),
        0 15px 26px rgba(0,0,0,.10);
}

.mount-window::after {
    content: "";
    position: absolute;
    left: -28px;
    right: -28px;
    bottom: -32px;
    height: 16px;
    border-radius: 2px 2px 6px 6px;
    background:
        linear-gradient(
            180deg,
            #fafaf8,
            #d8d9d6
        );
    box-shadow:
        0 7px 10px
        rgba(0,0,0,.10);
}

.mount-window-glass {
    overflow: hidden;
    background:
        linear-gradient(
            155deg,
            rgba(255,255,255,.78) 0 24%,
            rgba(255,255,255,.18) 25% 43%,
            transparent 44%
        ),
        linear-gradient(
            180deg,
            #c9ddd8,
            #e2e8e3
        );
}

.mount-window-glass::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .5;
    background:
        radial-gradient(
            circle at 28% 72%,
            #8fae7c 0 7%,
            transparent 8%
        ),
        radial-gradient(
            circle at 48% 68%,
            #769c6d 0 9%,
            transparent 10%
        ),
        radial-gradient(
            circle at 75% 75%,
            #9ab785 0 10%,
            transparent 11%
        );
    filter: blur(7px);
}

.mount-target {
    border-width: 1.5px;
    border-color: rgba(91,88,83,.55);
    background:
        rgba(255,255,255,.15);
}

.mount-target.is-ready {
    border-color: #55585c;
    background:
        rgba(255,255,255,.34);
    box-shadow:
        inset 0 0 0 2px
        rgba(85,88,92,.04),
        0 0 20px
        rgba(255,255,255,.38);
}

.mount-target.is-locked {
    border-color:
        rgba(94,139,102,.75);
    background:
        rgba(218,239,220,.26);
}

.mount-workbench {
    position: relative;
    background:
        linear-gradient(
            rgba(255,255,255,.25),
            rgba(255,255,255,.02)
        ),
        repeating-linear-gradient(
            90deg,
            #d7c2a5 0,
            #d7c2a5 38px,
            #d1ba9b 39px,
            #dac6aa 41px
        );
    box-shadow:
        inset 0 8px 18px
        rgba(85,64,40,.06);
}

.sill-shape {
    height: 62px;
    border: 1px solid #aeb0ae;
    border-radius: 4px 4px 10px 5px;
    background:
        linear-gradient(
            180deg,
            #fbfbfa 0%,
            #efefed 30%,
            #dadbd8 72%,
            #c5c6c3 100%
        );
    box-shadow:
        0 16px 20px
        rgba(0,0,0,.17),
        inset 0 2px 0
        rgba(255,255,255,.95);
}

.sill-shape::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 3%;
    right: 3%;
    height: 1px;
    background:
        rgba(255,255,255,.9);
}

.sill-shape::after {
    bottom: -13px;
    height: 14px;
    background:
        linear-gradient(
            180deg,
            #d0d1ce,
            #b9bbb8
        );
    box-shadow:
        0 5px 7px
        rgba(0,0,0,.08);
}

.cap-shape {
    width: 72px;
    height: 92px;
    border: 1px solid #a9aaa8;
    border-radius:
        8px 16px 11px 7px;
    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #ebebe9 45%,
            #c9cac7 100%
        );
    box-shadow:
        0 13px 18px
        rgba(0,0,0,.16),
        inset 2px 2px 0
        rgba(255,255,255,.9);
}

.cap-shape::before {
    content: "";
    position: absolute;
    inset: 10px 11px 13px 10px;
    border-radius:
        5px 10px 8px 5px;
    border-left:
        2px solid
        rgba(140,142,139,.28);
}

.puzzle-piece {
    transition:
        opacity .18s,
        transform .18s,
        filter .18s;
}

.puzzle-piece:hover {
    transform:
        translateY(-3px);
    filter:
        drop-shadow(
            0 8px 8px
            rgba(0,0,0,.09)
        );
}

.puzzle-piece.is-disabled {
    pointer-events: none;
}

.snap-mounted {
    animation:
        puzzle-snap
        .22s
        cubic-bezier(.2,.8,.3,1.25);
}

.doom-overlay {
    position: absolute;
    inset: 0;
    z-index: 80;
    overflow: hidden;
    background:
        radial-gradient(
            circle at center,
            rgba(63,0,0,.25),
            rgba(15,0,0,.93)
        );
    color: #fff;
}

.doom-overlay[hidden] {
    display: none;
}

.doom-vignette {
    position: absolute;
    inset: -8%;
    background:
        radial-gradient(
            circle at center,
            transparent 18%,
            rgba(115,0,0,.36) 52%,
            rgba(10,0,0,.92) 85%
        );
    animation:
        doom-breathe
        .32s
        ease-in-out
        infinite alternate;
}

.doom-scanlines {
    position: absolute;
    inset: 0;
    opacity: .25;
    background:
        repeating-linear-gradient(
            0deg,
            transparent 0 4px,
            rgba(255,0,0,.24)
            5px 6px
        );
    animation:
        doom-scan
        .22s linear infinite;
}

.doom-message {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    text-align: center;
    padding: 30px;
    text-shadow:
        0 3px 14px #000;
}

.doom-message > span {
    display: block;
    margin-bottom: 10px;
    color: #ff4e3f;
    font-size: 58px;
    line-height: 1;
}

.doom-message strong {
    display: block;
    color: #f1d2c9;
    font-size:
        clamp(28px, 5vw, 52px);
    letter-spacing: .08em;
    transform: skewX(-6deg);
}

.doom-message small {
    display: block;
    margin-top: 12px;
    color: #e7b9af;
    font-size: 15px;
    line-height: 1.55;
}

.mount-puzzle.is-doom-failed
.mount-scene {
    animation:
        doom-shake
        .08s
        linear
        6;
}

.mount-puzzle.is-doom-failed {
    box-shadow:
        0 0 0 1px
        rgba(145,32,25,.65),
        0 8px 32px
        rgba(78,0,0,.25);
}

@keyframes puzzle-snap {
    0% {
        transform:
            scale(.88);
        opacity: .5;
    }

    70% {
        transform:
            scale(1.04);
    }

    100% {
        transform:
            scale(1);
        opacity: 1;
    }
}

@keyframes puzzle-clock-pulse {
    from {
        transform:
            scale(1);
    }

    to {
        transform:
            scale(1.06);
    }
}

@keyframes doom-breathe {
    from {
        transform:
            scale(.98);
        opacity: .75;
    }

    to {
        transform:
            scale(1.04);
        opacity: 1;
    }
}

@keyframes doom-scan {
    from {
        transform:
            translateY(-6px);
    }

    to {
        transform:
            translateY(6px);
    }
}

@keyframes doom-shake {
    0% {
        transform:
            translate(0,0);
    }

    25% {
        transform:
            translate(-5px,2px);
    }

    50% {
        transform:
            translate(4px,-2px);
    }

    75% {
        transform:
            translate(-3px,-1px);
    }

    100% {
        transform:
            translate(0,0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .mount-puzzle *,
    .mount-puzzle *::before,
    .mount-puzzle *::after {
        animation-duration:
            .001ms !important;
        animation-iteration-count:
            1 !important;
        transition-duration:
            .001ms !important;
    }
}


/* v3: hidden state musí mít přednost i nad layoutem success boxu */
.mount-success[hidden],
.mount-error[hidden],
.doom-overlay[hidden] {
    display: none !important;
}


/* ==========================================================
   PUZZLE v3 – propracovanější grafika
   ========================================================== */

.mount-scene {
    min-height: 470px;
    border-radius: 9px;
    overflow: hidden;
    background:
        linear-gradient(
            180deg,
            #f4f2ee 0%,
            #ece8e1 62%,
            #d8c6ad 62%,
            #cfb89a 100%
        );
    box-shadow:
        inset 0 0 0 1px rgba(80,80,80,.08);
}

.mount-wall {
    position: relative;
    min-height: 310px;
    background:
        radial-gradient(
            ellipse at 50% 12%,
            rgba(255,255,255,.98) 0 24%,
            rgba(250,249,246,.86) 45%,
            rgba(235,232,226,.95) 100%
        );
}

.mount-window {
    position: absolute;
    left: 50%;
    top: 28px;
    width: 74%;
    height: 180px;
    transform: translateX(-50%);
    border: 15px solid #f8f8f6;
    border-radius: 3px;
    background: #cad7d4;
    box-shadow:
        0 0 0 1px #c5c7c4,
        0 2px 0 #fff inset,
        0 15px 30px rgba(0,0,0,.11);
}

.mount-window::before {
    content: "";
    position: absolute;
    top: -15px;
    bottom: -15px;
    left: 50%;
    width: 12px;
    transform: translateX(-50%);
    background:
        linear-gradient(90deg,#e2e3e0,#fafaf8 45%,#d9dad7);
    box-shadow:
        0 0 0 1px rgba(150,150,150,.22);
}

.mount-window::after {
    content: "";
    position: absolute;
    left: -34px;
    right: -34px;
    bottom: -34px;
    height: 18px;
    border-radius: 2px 2px 7px 7px;
    background:
        linear-gradient(
            180deg,
            #fbfbf9 0%,
            #e7e7e4 56%,
            #cfcfcb 100%
        );
    box-shadow:
        0 7px 13px rgba(0,0,0,.12);
}

.mount-window-glass {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background:
        linear-gradient(
            150deg,
            rgba(255,255,255,.88) 0 18%,
            rgba(255,255,255,.28) 19% 37%,
            transparent 38%
        ),
        linear-gradient(
            180deg,
            #c8dad6 0%,
            #dce6e1 60%,
            #bdcfbc 100%
        );
}

.mount-window-glass::before,
.mount-window-glass::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(10px);
    opacity: .55;
}

.mount-window-glass::before {
    width: 150px;
    height: 95px;
    left: 8%;
    bottom: -22px;
    background: #7fa174;
}

.mount-window-glass::after {
    width: 210px;
    height: 120px;
    right: 4%;
    bottom: -28px;
    background: #93b183;
}

.mount-targets {
    position: absolute;
    left: 50%;
    bottom: 29px;
    width: 78%;
    height: 78px;
    transform: translateX(-50%);
}

.mount-target {
    position: absolute;
    top: 0;
    height: 78px;
    border: 2px dashed rgba(70,70,70,.34);
    border-radius: 6px;
    background: rgba(255,255,255,.14);
    transition:
        border-color .15s,
        background .15s,
        box-shadow .15s;
}

.mount-target[data-target="left-cap"] {
    left: 0;
    width: 12%;
}

.mount-target[data-target="sill"] {
    left: 12.5%;
    width: 75%;
}

.mount-target[data-target="right-cap"] {
    right: 0;
    width: 12%;
}

.mount-target.is-ready {
    border-color: rgba(85,88,92,.82);
    background: rgba(255,255,255,.32);
    box-shadow:
        0 0 0 3px rgba(255,255,255,.24),
        0 8px 20px rgba(0,0,0,.05);
}

.mount-target.is-locked {
    border-color: rgba(73,128,83,.60);
    background: rgba(214,237,218,.20);
}

.mount-workbench {
    min-height: 160px;
    display: grid;
    grid-template-columns: 1fr 2.5fr 1fr;
    align-items: center;
    gap: 28px;
    padding: 25px 38px 28px;
    background:
        linear-gradient(
            rgba(255,255,255,.18),
            rgba(255,255,255,.02)
        ),
        repeating-linear-gradient(
            90deg,
            #d9c6ab 0 44px,
            #d4bea0 45px,
            #dcc9ae 47px
        );
    box-shadow:
        inset 0 10px 22px rgba(85,64,40,.08);
}

.puzzle-piece {
    position: relative;
    user-select: none;
    touch-action: none;
    cursor: grab;
}

.puzzle-piece:active {
    cursor: grabbing;
}

.puzzle-piece-label {
    margin-top: 11px;
    text-align: center;
    color: #303236;
    font-size: 13px;
    font-weight: 800;
}

.sill-shape {
    position: relative;
    width: 100%;
    height: 58px;
    border: 1px solid #a9aaa7;
    border-radius: 5px 5px 10px 7px;
    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #f3f3f1 22%,
            #e0e1de 64%,
            #c7c8c5 100%
        );
    box-shadow:
        0 17px 23px rgba(0,0,0,.17),
        inset 0 2px 0 rgba(255,255,255,.95);
}

.sill-shape::after {
    content: "";
    position: absolute;
    left: 2%;
    right: 2%;
    bottom: -13px;
    height: 13px;
    border-radius: 0 0 5px 5px;
    background:
        linear-gradient(
            180deg,
            #d2d3d0,
            #b9bbb7
        );
    box-shadow:
        0 5px 7px rgba(0,0,0,.08);
}

.cap-shape {
    position: relative;
    width: 68px;
    height: 88px;
    margin: 0 auto;
    border: 1px solid #a7a9a6;
    border-radius: 9px 18px 12px 7px;
    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #ececea 48%,
            #c9cac7 100%
        );
    box-shadow:
        0 14px 20px rgba(0,0,0,.17),
        inset 2px 2px 0 rgba(255,255,255,.9);
}

.cap-shape::after {
    content: "";
    position: absolute;
    left: 12px;
    right: 10px;
    bottom: -8px;
    height: 12px;
    border-radius: 0 0 4px 4px;
    background: #c9cac7;
    box-shadow: 0 4px 6px rgba(0,0,0,.10);
}

.puzzle-piece[data-piece="left-cap"] .cap-shape {
    transform: perspective(200px) rotateY(8deg);
}

.puzzle-piece[data-piece="right-cap"] .cap-shape {
    transform: perspective(200px) rotateY(-8deg);
}

.puzzle-drag-ghost {
    position: fixed !important;
    z-index: 9999;
    width: min(280px, 28vw);
    pointer-events: none;
    transform: translate(-50%, -50%) scale(.92);
    opacity: .88;
    filter: drop-shadow(0 18px 18px rgba(0,0,0,.22));
}

.puzzle-drag-ghost[data-piece$="cap"] {
    width: 90px;
}

.mounted-visual {
    position: absolute !important;
    pointer-events: none !important;
    margin: 0 !important;
}

.mounted-visual[data-piece="sill"] {
    left: 12.5%;
    top: 13px;
    width: 75%;
}

.mounted-visual[data-piece="left-cap"] {
    left: 2%;
    top: -4px;
    width: 11%;
}

.mounted-visual[data-piece="right-cap"] {
    right: 2%;
    top: -4px;
    width: 11%;
}

.mounted-visual .puzzle-piece-label {
    display: none;
}

.mounted-visual[data-piece$="cap"] .cap-shape {
    width: 100%;
    max-width: 68px;
}

.mount-success {
    margin-top: 16px;
    padding: 14px 18px;
    border: 1px solid #b7d8bd;
    border-radius: 7px;
    background: #edf8ef;
    color: #2f713b;
    font-weight: 900;
    text-align: center;
    animation: puzzle-success-in .28s ease-out;
}

@keyframes puzzle-success-in {
    from {
        opacity: 0;
        transform: translateY(6px) scale(.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 760px) {
    .mount-scene {
        min-height: 430px;
    }

    .mount-window {
        width: 84%;
        height: 160px;
    }

    .mount-targets {
        width: 88%;
    }

    .mount-workbench {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .puzzle-piece[data-piece="sill"] {
        order: -1;
    }
}


/* ==========================================================
   PUZZLE v4 – produktovější vzhled + retry bez reloadu
   ========================================================== */

.mount-puzzle-card {
    border: 1px solid #dedede;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 45px rgba(0,0,0,.07);
}

.mount-scene {
    min-height: 500px;
    border: 1px solid #dedbd5;
    border-radius: 10px;
    background: #f2efe9;
}

.mount-wall {
    min-height: 325px;
    background:
        linear-gradient(90deg, rgba(0,0,0,.045), transparent 8%, transparent 92%, rgba(0,0,0,.045)),
        radial-gradient(ellipse at 50% 0%, #fff 0%, #f7f6f2 42%, #e7e3dc 100%);
}

.mount-window {
    top: 20px;
    width: 70%;
    height: 190px;
    border: 18px solid #f8f8f6;
    box-shadow:
        0 0 0 1px #c8c8c5,
        0 18px 35px rgba(0,0,0,.13);
}

.mount-window-glass {
    background:
        linear-gradient(145deg, rgba(255,255,255,.75) 0 18%, rgba(255,255,255,.18) 19% 35%, transparent 36%),
        linear-gradient(180deg, #d6e5e1 0%, #c8d9d3 58%, #aec5aa 100%);
}

.mount-targets {
    bottom: 24px;
    width: 82%;
    height: 84px;
}

.mount-target {
    height: 84px;
    border: 2px dashed rgba(75,75,75,.42);
    background: rgba(255,255,255,.30);
}

.mount-target::after {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #777;
    font-size: 12px;
    font-weight: 800;
    opacity: .75;
}

.mount-target[data-target="left-cap"]::after {
    content: "LEVÁ";
}

.mount-target[data-target="sill"]::after {
    content: "PARAPET";
}

.mount-target[data-target="right-cap"]::after {
    content: "PRAVÁ";
}

.mount-target.is-locked::after {
    opacity: 0;
}

.mount-workbench {
    min-height: 175px;
    padding: 28px 42px 32px;
    background:
        linear-gradient(rgba(255,255,255,.12), rgba(0,0,0,.025)),
        repeating-linear-gradient(
            92deg,
            #d9c3a5 0 54px,
            #cfb796 55px 57px,
            #ddc8aa 58px 92px
        );
    border-top: 1px solid rgba(110,85,55,.18);
}

.sill-shape {
    height: 66px;
    border-radius: 5px 5px 13px 7px;
    background:
        linear-gradient(180deg, #fdfdfc 0 15%, #f0efec 16% 45%, #d7d6d2 76%, #bfc0bc 100%);
    box-shadow:
        0 18px 24px rgba(0,0,0,.19),
        inset 0 2px 0 #fff,
        inset 0 -2px 4px rgba(0,0,0,.08);
}

.sill-shape::before {
    content: "";
    position: absolute;
    left: 4%;
    right: 4%;
    top: 10px;
    height: 2px;
    border-radius: 50%;
    background: rgba(255,255,255,.95);
}

.cap-shape {
    width: 74px;
    height: 96px;
    border-radius: 10px 19px 12px 7px;
    background:
        linear-gradient(130deg, #fff 0 28%, #ecebe7 52%, #c6c6c2 100%);
    box-shadow:
        0 15px 22px rgba(0,0,0,.18),
        inset 2px 2px 0 rgba(255,255,255,.95);
}

.cap-shape::before {
    content: "";
    position: absolute;
    top: 13px;
    bottom: 13px;
    left: 13px;
    width: 4px;
    border-radius: 3px;
    background: linear-gradient(180deg, #d0d0cc, #efefec);
    box-shadow: 1px 0 0 rgba(255,255,255,.9);
}

.puzzle-piece-label {
    margin-top: 13px;
    letter-spacing: .01em;
}

.doom-retry-button {
    margin: 20px auto 0;
    min-width: 210px;
    min-height: 44px;
    padding: 10px 20px;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 6px;
    background: rgba(255,255,255,.10);
    color: #fff;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 7px 20px rgba(0,0,0,.24);
}

.doom-retry-button:hover {
    background: rgba(255,255,255,.18);
}

.mount-puzzle.is-verified .mount-target {
    border-color: rgba(73,128,83,.38);
}

@media (max-width: 760px) {
    .mount-scene {
        min-height: 650px;
    }

    .mount-workbench {
        padding: 25px;
    }
}


/* v4.1 – jasný úspěšný stav po dokončení puzzle */
.mount-puzzle.is-verified {
    border-color: #a8cfaf !important;
    box-shadow:
        0 0 0 2px rgba(75, 139, 88, .08),
        0 14px 38px rgba(58, 112, 68, .10) !important;
}

.mount-puzzle.is-verified .mount-scene {
    border-color: #a9cdb0 !important;
    box-shadow:
        inset 0 0 0 2px rgba(76, 139, 88, .08),
        0 0 26px rgba(76, 139, 88, .08) !important;
}

.mount-puzzle.is-verified .mount-wall {
    background:
        linear-gradient(
            180deg,
            rgba(237, 248, 239, .72),
            rgba(246, 249, 245, .92)
        ) !important;
}

.mount-puzzle.is-verified .mount-target {
    border-color: rgba(75, 139, 88, .48) !important;
    background: rgba(218, 239, 222, .30) !important;
}

.mount-puzzle.is-verified .mount-workbench {
    box-shadow:
        inset 0 7px 0 rgba(76, 139, 88, .08),
        inset 0 10px 22px rgba(85,64,40,.05) !important;
}

.mount-puzzle.is-verified .mount-puzzle-clock {
    border-color: #9bc6a4 !important;
    background: #eaf6ec !important;
    color: #347040 !important;
}

.mount-puzzle.is-verified .mount-success {
    display: flex !important;
}


/* ==========================================================
   PUZZLE v5 – grafitový dutinkový parapet podle reálného profilu
   ========================================================== */

.mount-scene {
    background:
        linear-gradient(
            180deg,
            #f4f3f0 0%,
            #ebe7e0 64%,
            #d9c3a4 64%,
            #ceb493 100%
        ) !important;
}

.mount-wall {
    background:
        radial-gradient(
            ellipse at 50% 3%,
            #ffffff 0%,
            #faf9f6 38%,
            #ece8e1 100%
        ) !important;
}

.mount-workbench {
    background:
        linear-gradient(
            rgba(255,255,255,.13),
            rgba(0,0,0,.025)
        ),
        repeating-linear-gradient(
            92deg,
            #d9c3a5 0 54px,
            #cdb493 55px 57px,
            #dec9aa 58px 95px
        ) !important;
}


/* ---------- hlavní parapet ---------- */

.sill-shape {
    position: relative !important;
    height: 72px !important;
    overflow: visible !important;

    border:
        1px solid
        #3d4145 !important;

    border-radius:
        5px 5px 13px 8px !important;

    background:
        linear-gradient(
            180deg,
            #666c71 0%,
            #50565b 24%,
            #42484d 66%,
            #353a3f 100%
        ) !important;

    box-shadow:
        0 18px 26px
        rgba(0,0,0,.23),
        inset 0 1px 0
        rgba(255,255,255,.22),
        inset 0 -3px 8px
        rgba(0,0,0,.16) !important;
}


/* jemná struktura povrchu */
.sill-shape::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 0 29px 0 !important;
    height: auto !important;

    border-radius:
        5px 5px 3px 3px !important;

    background:
        repeating-linear-gradient(
            105deg,
            rgba(255,255,255,.026) 0 1px,
            rgba(0,0,0,.018) 1px 3px,
            transparent 3px 6px
        ) !important;

    opacity: .85 !important;
}


/* viditelný dutinkový řez */
.sill-shape::after {
    content: "" !important;

    position: absolute !important;
    left: 2px !important;
    right: 2px !important;
    bottom: -22px !important;

    height: 25px !important;

    border:
        1px solid
        #2c3034 !important;

    border-top:
        1px solid
        #74797d !important;

    border-radius:
        0 0 7px 7px !important;

    background:
        repeating-linear-gradient(
            90deg,
            #303438 0 13px,
            #9c9c96 13px 15px,
            #292d31 15px 28px,
            #a9a8a1 28px 30px
        ) !important;

    box-shadow:
        inset 0 4px 6px
        rgba(255,255,255,.10),
        0 5px 8px
        rgba(0,0,0,.13) !important;
}


/* přední zaoblený nos parapetu */
.puzzle-piece[data-piece="sill"] .sill-shape {
    clip-path:
        polygon(
            0 0,
            100% 0,
            100% 77%,
            98% 100%,
            2% 100%,
            0 81%
        );
}


/* ---------- krytky ---------- */

.cap-shape {
    position: relative !important;

    width: 76px !important;
    height: 100px !important;

    overflow: visible !important;

    border:
        1px solid
        #34383c !important;

    border-radius:
        10px 20px 13px 8px !important;

    background:
        linear-gradient(
            135deg,
            #6a7075 0%,
            #52585d 35%,
            #3b4146 72%,
            #2e3337 100%
        ) !important;

    box-shadow:
        0 16px 22px
        rgba(0,0,0,.22),
        inset 2px 2px 0
        rgba(255,255,255,.13),
        inset -4px -4px 8px
        rgba(0,0,0,.12) !important;
}


/* vnitřní drážka krytky */
.cap-shape::before {
    content: "" !important;

    position: absolute !important;
    top: 12px !important;
    bottom: 12px !important;
    left: 13px !important;

    width: 25px !important;

    border-radius:
        4px 7px 7px 4px !important;

    border-left:
        3px solid
        #22272a !important;

    border-right:
        1px solid
        rgba(255,255,255,.12) !important;

    background:
        repeating-linear-gradient(
            180deg,
            #2a2f33 0 12px,
            #74777a 12px 14px
        ) !important;

    box-shadow:
        inset 5px 0 8px
        rgba(0,0,0,.25) !important;
}


/* spodní zobáček */
.cap-shape::after {
    content: "" !important;

    position: absolute !important;
    left: 7px !important;
    bottom: -12px !important;

    width: 49px !important;
    height: 15px !important;

    border-radius:
        0 0 7px 5px !important;

    border:
        1px solid
        #34383c !important;

    border-top: 0 !important;

    background:
        linear-gradient(
            180deg,
            #454b50,
            #30363a
        ) !important;

    box-shadow:
        0 5px 7px
        rgba(0,0,0,.12) !important;
}


/* optická orientace levá/pravá */
.puzzle-piece[data-piece="left-cap"] .cap-shape {
    transform:
        perspective(220px)
        rotateY(10deg) !important;
}

.puzzle-piece[data-piece="right-cap"] .cap-shape {
    transform:
        perspective(220px)
        rotateY(-10deg)
        scaleX(-1) !important;
}


/* ---------- drop zóny ---------- */

.mount-target[data-target="sill"]::after {
    content:
        "GRAFITOVÝ PARAPET" !important;
}

.mount-target[data-target="left-cap"]::after {
    content:
        "LEVÁ KRYTKA" !important;
}

.mount-target[data-target="right-cap"]::after {
    content:
        "PRAVÁ KRYTKA" !important;
}

.mount-target.is-ready {
    background:
        rgba(80,85,89,.045) !important;

    border-color:
        rgba(63,68,72,.56) !important;
}

.mount-target.is-locked {
    background:
        rgba(82,139,93,.12) !important;

    border-color:
        rgba(65,125,76,.54) !important;
}


/* ---------- zacvaknuté díly ---------- */

.mounted-visual[data-piece="sill"] {
    top: 8px !important;
}

.mounted-visual[data-piece="left-cap"],
.mounted-visual[data-piece="right-cap"] {
    top: -7px !important;
}

.mount-puzzle.is-verified
.mounted-visual {
    filter:
        drop-shadow(
            0 7px 8px
            rgba(55,100,64,.16)
        );
}


/* jemné zvýraznění na hover */
.puzzle-piece:hover
.sill-shape,
.puzzle-piece:hover
.cap-shape {
    filter:
        brightness(1.08);
}


/* drag ghost */
.puzzle-drag-ghost {
    filter:
        drop-shadow(
            0 20px 21px
            rgba(0,0,0,.28)
        ) !important;
}


/* success – grafit + zelený akcent */
.mount-puzzle.is-verified
.mount-target {
    border-color:
        rgba(67,127,79,.55) !important;

    background:
        rgba(214,239,219,.20) !important;
}

.mount-puzzle.is-verified
.mount-scene {
    box-shadow:
        inset 0 0 0 2px
        rgba(76,139,88,.09),
        0 0 30px
        rgba(76,139,88,.08) !important;
}



/* ==========================================================
   RP PARAPETY – CUT CAPTCHA v1
   ========================================================== */

.cut-puzzle {
    margin-top: 18px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--rp-line);
    border-radius: 10px;
    background: #fff;
    box-shadow:
        0 10px 34px
        rgba(0,0,0,.055);
}

.cut-puzzle-header {
    min-height: 108px;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-bottom: 1px solid #e5e6e7;
}

.cut-puzzle-header h2 {
    margin: 3px 0 7px;
    font-size: 23px;
    letter-spacing: -.02em;
}

.cut-puzzle-header p {
    margin: 0;
    color: var(--rp-muted);
}

.cut-target-box {
    min-width: 190px;
    padding: 12px 16px;
    text-align: center;
    border: 1px solid #dadcde;
    border-radius: 7px;
    background: #f5f6f6;
}

.cut-target-box span {
    display: block;
    color: #6d7073;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
}

.cut-target-box strong {
    display: block;
    margin-top: 4px;
    color: #252628;
    font-size: 25px;
    font-variant-numeric: tabular-nums;
}

.cut-game {
    position: relative;
    min-height: 485px;
    overflow: hidden;
    background: #eeeae3;
}

.cut-start-overlay {
    position: absolute;
    inset: 0;
    z-index: 40;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 0;
    background:
        radial-gradient(
            circle at center,
            rgba(255,255,255,.76),
            rgba(245,245,243,.94)
        );
    color: #303236;
    cursor: pointer;
    backdrop-filter: blur(2px);
    transition:
        opacity .22s ease,
        visibility .22s ease;
}

.cut-start-overlay.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.cut-start-icon {
    width: 55px;
    height: 55px;
    display: grid;
    place-items: center;
    padding-left: 4px;
    border-radius: 50%;
    background: #55585c;
    color: #fff;
    font-size: 20px;
    box-shadow:
        0 12px 30px
        rgba(0,0,0,.15);
}

.cut-start-overlay strong {
    margin-top: 5px;
    font-size: 20px;
}

.cut-start-overlay small {
    color: #707377;
    font-size: 13px;
}

.cut-room {
    min-height: 485px;
    background:
        linear-gradient(
            180deg,
            #f8f7f4 0%,
            #efebe4 58%,
            #dcc6a8 58%,
            #d1b590 100%
        );
}

.cut-window {
    position: relative;
    width: 68%;
    height: 180px;
    margin: 0 auto;
    top: 21px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 16px;
    border: 2px solid #d2d2ce;
    border-bottom-width: 15px;
    background: #f9f9f7;
    box-shadow:
        0 13px 30px
        rgba(0,0,0,.12);
}

.cut-window::after {
    content: "";
    position: absolute;
    left: -40px;
    right: -40px;
    bottom: -31px;
    height: 17px;
    border-radius: 2px 2px 7px 7px;
    background:
        linear-gradient(
            180deg,
            #fafaf8,
            #d8d8d4
        );
    box-shadow:
        0 8px 12px
        rgba(0,0,0,.10);
}

.cut-window-pane {
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.78) 0 22%,
            rgba(255,255,255,.22) 23% 38%,
            transparent 39%
        ),
        radial-gradient(
            circle at 30% 90%,
            #82a074 0 12%,
            transparent 13%
        ),
        radial-gradient(
            circle at 70% 88%,
            #9ab386 0 15%,
            transparent 16%
        ),
        linear-gradient(
            180deg,
            #cadbd8,
            #dce5df
        );
    filter: saturate(.82);
}

.cut-bench {
    position: relative;
    margin-top: 62px;
    padding: 20px 34px 27px;
}

.cut-instruction {
    margin-bottom: 14px;
    text-align: center;
    color: #5d6063;
    font-size: 13px;
    font-weight: 700;
}

.cut-profile-wrap {
    position: relative;
    width: min(780px, 92%);
    margin: 0 auto;
    padding-bottom: 45px;
}

.cut-profile {
    position: relative;
    height: 92px;
    overflow: visible;
    border-radius: 6px 6px 13px 8px;
    background:
        linear-gradient(
            180deg,
            #62686d 0%,
            #50565b 22%,
            #41474c 67%,
            #34393e 100%
        );
    border: 1px solid #32373b;
    box-shadow:
        0 18px 28px
        rgba(0,0,0,.24),
        inset 0 1px 0
        rgba(255,255,255,.18);
}

.cut-profile-surface {
    position: absolute;
    inset: 0 0 31px 0;
    overflow: hidden;
    border-radius: 6px 6px 2px 2px;
    background:
        repeating-linear-gradient(
            106deg,
            rgba(255,255,255,.025) 0 1px,
            rgba(0,0,0,.019) 1px 3px,
            transparent 3px 7px
        );
}

.cut-profile-cells {
    position: absolute;
    left: 3px;
    right: 3px;
    bottom: -20px;
    height: 31px;
    display: grid;
    grid-template-columns:
        repeat(20, 1fr);
    overflow: hidden;
    border: 1px solid #292d30;
    border-top-color: #74787b;
    border-radius: 0 0 7px 7px;
    background: #292e32;
    box-shadow:
        0 5px 8px
        rgba(0,0,0,.14);
}

.cut-profile-cells i {
    display: block;
    border-right: 2px solid #9b9a94;
    background:
        linear-gradient(
            180deg,
            #34393d,
            #22272a
        );
}

.cut-profile-cells i:last-child {
    border-right: 0;
}

.cut-profile::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -5px;
    width: 18px;
    height: 25px;
    border-radius: 0 0 0 10px;
    border-left: 5px solid #32373b;
    border-bottom: 5px solid #32373b;
}

.cut-line {
    position: absolute;
    z-index: 7;
    top: -21px;
    bottom: -26px;
    left: 50%;
    width: 3px;
    transform: translateX(-50%);
    background:
        linear-gradient(
            #c92929,
            #f14e42,
            #c92929
        );
    box-shadow:
        0 0 0 1px
        rgba(255,255,255,.52),
        0 0 12px
        rgba(210,20,20,.32);
    pointer-events: none;
}

.cut-line::before {
    content: "";
    position: absolute;
    top: 0;
    left: -7px;
    width: 17px;
    height: 9px;
    border-radius: 5px;
    background: #d8332d;
}

.cut-saw {
    position: absolute;
    top: -25px;
    left: 50%;
    transform:
        translateX(-50%)
        rotate(-18deg);
    font-size: 20px;
}

.cut-live-value {
    position: absolute;
    left: 50%;
    bottom: -38px;
    transform: translateX(-50%);
    min-width: 76px;
    padding: 4px 7px;
    text-align: center;
    border-radius: 4px;
    background: #d9342f;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    font-variant-numeric:
        tabular-nums;
    white-space: nowrap;
}

.cut-range {
    position: absolute;
    z-index: 12;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    height: 92px;
    margin: 0;
    opacity: 0;
    cursor: ew-resize;
}

.cut-ruler {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 26px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding-top: 9px;
    border-top: 1px solid #707377;
    color: #606366;
    font-size: 11px;
    font-variant-numeric:
        tabular-nums;
}

.cut-ruler::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -1px;
    height: 8px;
    background:
        repeating-linear-gradient(
            90deg,
            #707377 0 1px,
            transparent 1px 2.5%
        );
}

.cut-controls {
    width: min(780px, 92%);
    margin: 11px auto 0;
    display: grid;
    grid-template-columns:
        1fr 230px;
    align-items: center;
    gap: 18px;
}

.cut-clock {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 10px 15px;
    border: 1px solid #dadcde;
    border-radius: 6px;
    background: rgba(255,255,255,.68);
}

.cut-clock span {
    color: #6a6d70;
    font-size: 11px;
    font-weight: 800;
}

.cut-clock strong {
    font-size: 24px;
    font-variant-numeric:
        tabular-nums;
}

.cut-button {
    min-height: 58px;
    border: 0;
    border-radius: 6px;
    background: #55585c;
    color: #fff;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: .04em;
    cursor: pointer;
    box-shadow:
        0 8px 18px
        rgba(0,0,0,.12);
}

.cut-button:hover:not(:disabled) {
    background: #383b3f;
}

.cut-button:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.cut-puzzle-footer {
    min-height: 61px;
    padding: 13px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: #65686b;
    font-size: 12px;
    border-top: 1px solid #e1e2e3;
    background: #fafafa;
}

.cut-success[hidden],
.mount-error[hidden],
.doom-overlay[hidden],
.cut-wrong-overlay[hidden] {
    display: none !important;
}

.cut-success {
    margin: 16px 20px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 16px 20px;
    border: 1px solid #afd2b6;
    border-radius: 7px;
    background: #ebf7ed;
    color: #337140;
}

.cut-success > div {
    display: flex;
    flex-direction: column;
}

.cut-success strong {
    font-size: 16px;
}

.cut-success small {
    margin-top: 2px;
    color: #588160;
}

.cut-puzzle.is-verified {
    border-color: #a6cdae;
    box-shadow:
        0 0 0 2px
        rgba(70,130,82,.06),
        0 13px 38px
        rgba(70,130,82,.10);
}

.cut-puzzle.is-verified
.cut-target-box {
    border-color: #9fc7a7;
    background: #edf7ef;
}

.cut-puzzle.is-verified
.cut-game {
    box-shadow:
        inset 0 0 0 3px
        rgba(70,130,82,.10);
}

.cut-puzzle.is-verified
.cut-clock {
    border-color: #9fc7a7;
    background: #edf7ef;
    color: #337140;
}

.cut-puzzle.is-time-critical
.cut-clock {
    border-color: #d9a2a2;
    background: #fbe9e9;
    color: #9a3030;
    animation:
        puzzle-clock-pulse
        .38s
        ease-in-out
        infinite alternate;
}

.cut-line.is-cut {
    animation:
        cut-line-flash
        .26s ease-out;
}

.cut-off-piece {
    position: absolute;
    top: 0;
    right: 0;
    bottom: -21px;
    width: 0;
    z-index: 6;
    border-radius: 0 6px 8px 0;
    pointer-events: none;
}

.cut-off-piece.is-cut {
    animation:
        cut-piece-kick
        .36s ease-out forwards;
}

.cut-wrong-overlay {
    position: absolute;
    inset: 0;
    z-index: 70;
    display: grid;
    place-items: center;
    background:
        rgba(248,247,244,.90);
    backdrop-filter: blur(4px);
}

.cut-wrong-card {
    width: min(430px, calc(100% - 40px));
    padding: 28px;
    text-align: center;
    border: 1px solid #e4b4b4;
    border-radius: 9px;
    background: #fff;
    box-shadow:
        0 18px 45px
        rgba(80,0,0,.10);
}

.cut-wrong-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 12px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f4dddd;
    color: #a03c3c;
    font-size: 22px;
    font-weight: 900;
}

.cut-wrong-card strong {
    display: block;
    font-size: 18px;
}

.cut-wrong-card small {
    display: block;
    margin-top: 8px;
    color: #777a7d;
}

.cut-retry-button {
    margin-top: 19px;
    min-height: 42px;
    padding: 0 17px;
    border: 0;
    border-radius: 5px;
    background: #55585c;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.cut-retry-button:hover {
    background: #383b3f;
}

@keyframes cut-line-flash {
    0% {
        transform:
            translateX(-50%)
            scaleX(1);
    }

    40% {
        transform:
            translateX(-50%)
            scaleX(4);
        filter:
            brightness(1.5);
    }

    100% {
        transform:
            translateX(-50%)
            scaleX(1);
    }
}

@keyframes cut-piece-kick {
    0% {
        opacity: 0;
        transform:
            translate(0,0)
            rotate(0);
    }

    25% {
        opacity: .35;
    }

    100% {
        opacity: 0;
        transform:
            translate(24px,15px)
            rotate(4deg);
    }
}

@media (max-width: 760px) {
    .cut-puzzle-header {
        align-items: stretch;
        flex-direction: column;
    }

    .cut-target-box {
        width: 100%;
    }

    .cut-game,
    .cut-room {
        min-height: 500px;
    }

    .cut-window {
        width: 82%;
        height: 150px;
    }

    .cut-bench {
        margin-top: 60px;
        padding-left: 18px;
        padding-right: 18px;
    }

    .cut-controls {
        grid-template-columns: 1fr;
    }

    .cut-puzzle-footer {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ==========================================================
   CUT CAPTCHA v2 – pilka, středový cíl, výrazný animovaný řez
   ========================================================== */

.cut-puzzle-header {
    justify-content: center;
}

.cut-puzzle-header > div:first-child {
    width: 100%;
    text-align: center;
}

.cut-target-center {
    position: absolute;
    z-index: 20;
    top: 22px;
    left: 50%;
    transform: translateX(-50%);
    min-width: 220px;
    padding: 11px 19px 12px;
    text-align: center;
    border: 1px solid #d5d7d8;
    border-radius: 8px;
    background: rgba(255,255,255,.94);
    box-shadow:
        0 8px 24px rgba(0,0,0,.09);
    backdrop-filter: blur(4px);
}

.cut-target-center span {
    display: block;
    color: #6b6e71;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .10em;
}

.cut-target-center strong {
    display: block;
    margin-top: 3px;
    color: #252628;
    font-size: 27px;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.cut-puzzle.is-verified
.cut-target-center {
    border-color: #9dc7a6;
    background: #edf7ef;
    color: #337140;
}

.cut-saw {
    top: -37px !important;
    left: 50%;
    width: 43px;
    height: 31px;
    display: grid;
    place-items: center;
    transform:
        translateX(-50%)
        rotate(-11deg) !important;
    font-size: 27px !important;
    filter:
        drop-shadow(0 4px 4px rgba(0,0,0,.16));
    transform-origin: center;
}

.cut-line.is-cut .cut-saw {
    animation:
        saw-cut-motion
        .72s
        cubic-bezier(.3,.72,.25,1)
        both;
}

.cut-line.is-cut {
    animation:
        cut-line-burn
        .72s
        ease-out
        both !important;
}

.cut-profile::before {
    content: "";
    position: absolute;
    z-index: 8;
    top: 0;
    bottom: -20px;
    left: var(--cut-percent, 50%);
    width: 0;
    opacity: 0;
    border-left: 2px solid rgba(255,235,195,.0);
    pointer-events: none;
}

.cut-puzzle.is-cutting
.cut-profile::before {
    animation:
        cut-sparks
        .72s
        ease-out
        both;
}

.cut-off-piece {
    top: -1px !important;
    right: 0 !important;
    bottom: -21px !important;
    width:
        calc(
            100% - var(--cut-percent, 50%)
        ) !important;
    opacity: 0;
    border-left: 3px solid #c4b7a2;
    border-radius: 0 6px 8px 0;
    background:
        linear-gradient(
            180deg,
            #62686d 0%,
            #50565b 22%,
            #41474c 67%,
            #34393e 100%
        );
    box-shadow:
        inset 3px 0 0 rgba(215,210,197,.35);
}

.cut-off-piece::after {
    content: "";
    position: absolute;
    left: -1px;
    top: 61px;
    bottom: 0;
    width: 34px;
    background:
        repeating-linear-gradient(
            90deg,
            #272c30 0 8px,
            #999891 8px 10px
        );
    clip-path:
        polygon(
            0 0,
            100% 0,
            100% 100%,
            0 100%
        );
}

.cut-off-piece.is-cut {
    opacity: 1;
    animation:
        cut-piece-fall
        .72s
        cubic-bezier(.2,.7,.25,1)
        both !important;
}

.cut-puzzle.is-cutting
.cut-range {
    pointer-events: none;
}

.cut-puzzle.is-cutting
.cut-button {
    pointer-events: none;
}

@keyframes saw-cut-motion {
    0% {
        transform:
            translate(-50%, -1px)
            rotate(-12deg);
    }

    18% {
        transform:
            translate(-58%, 9px)
            rotate(-18deg);
    }

    35% {
        transform:
            translate(-43%, 20px)
            rotate(-7deg);
    }

    52% {
        transform:
            translate(-59%, 34px)
            rotate(-17deg);
    }

    70% {
        transform:
            translate(-43%, 50px)
            rotate(-6deg);
    }

    86% {
        transform:
            translate(-55%, 71px)
            rotate(-15deg);
    }

    100% {
        transform:
            translate(-50%, 91px)
            rotate(-10deg);
    }
}

@keyframes cut-line-burn {
    0% {
        background: #dc2e28;
        box-shadow:
            0 0 0 1px rgba(255,255,255,.5),
            0 0 8px rgba(210,20,20,.3);
    }

    45% {
        width: 5px;
        background: #ffcf67;
        box-shadow:
            0 0 12px #ffb229,
            0 0 22px rgba(255,80,20,.65);
    }

    100% {
        width: 2px;
        background: #292d30;
        box-shadow: none;
    }
}

@keyframes cut-sparks {
    0% {
        opacity: 0;
        box-shadow: none;
    }

    35% {
        opacity: 1;
        box-shadow:
            9px 18px 0 -6px #ffc345,
            -11px 31px 0 -7px #ff8d31,
            14px 46px 0 -7px #ffd976,
            -15px 60px 0 -7px #ff9c31;
    }

    100% {
        opacity: 0;
        box-shadow:
            24px 30px 0 -7px transparent,
            -29px 47px 0 -7px transparent,
            31px 63px 0 -7px transparent,
            -34px 78px 0 -7px transparent;
    }
}

@keyframes cut-piece-fall {
    0% {
        transform:
            translate(0, 0)
            rotate(0deg);
    }

    42% {
        transform:
            translate(7px, 4px)
            rotate(.8deg);
    }

    100% {
        transform:
            translate(45px, 34px)
            rotate(6deg);
        opacity: .72;
        filter:
            drop-shadow(
                0 15px 10px
                rgba(0,0,0,.22)
            );
    }
}

@media (max-width: 760px) {
    .cut-target-center {
        top: 14px;
        min-width: 190px;
    }

    .cut-target-center strong {
        font-size: 23px;
    }
}


/* ==========================================================
   CUT CAPTCHA v3 – čistší RP Parapety UI
   ========================================================== */

.cut-puzzle {
    border-radius: 12px !important;
    border-color: #d9dbdc !important;
    box-shadow:
        0 14px 38px
        rgba(0,0,0,.055) !important;
}

.cut-puzzle-header {
    min-height: 126px !important;
    padding: 24px 30px 22px !important;
    background: #ffffff;
}

.cut-puzzle-header h2 {
    margin: 5px 0 9px !important;
    font-size: 27px !important;
    line-height: 1.15 !important;
    font-weight: 850 !important;
}

.cut-puzzle-header p {
    max-width: 680px;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
}

.mount-puzzle-kicker {
    font-size: 11px !important;
    letter-spacing: .16em !important;
    font-weight: 900 !important;
}

.cut-game {
    background: #f1eee8 !important;
}

.cut-room {
    background:
        linear-gradient(
            180deg,
            #f8f7f4 0%,
            #efede8 57%,
            #dcc6a8 57%,
            #d4b994 100%
        ) !important;
}

/* požadovaný rozměr */
.cut-target-center {
    top: 18px !important;
    min-width: 230px !important;
    padding: 11px 20px 13px !important;
    border: 1px solid #cfd2d3 !important;
    border-radius: 8px !important;
    background: rgba(255,255,255,.97) !important;
    box-shadow:
        0 9px 25px
        rgba(0,0,0,.075) !important;
}

.cut-target-center > span {
    margin-bottom: 3px;
    color: #6d7073 !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    letter-spacing: .12em !important;
}

.cut-target-center strong {
    display: flex !important;
    align-items: baseline !important;
    justify-content: center !important;
    gap: 6px !important;
    margin-top: 0 !important;
    font-size: 29px !important;
    line-height: 1 !important;
}

.cut-target-center strong span {
    display: inline !important;
    color: inherit !important;
    font-size: inherit !important;
    letter-spacing: normal !important;
}

.cut-target-center strong::after {
    content: "mm";
    color: #666a6d;
    font-size: 14px;
    font-weight: 800;
}

/* hide duplicate literal mm after target span */
.cut-target-center strong {
    font-size: 0 !important;
}
.cut-target-center strong > #cut-target-value {
    font-size: 29px !important;
}

/* Okno méně kreslené */
.cut-window {
    width: 66% !important;
    height: 175px !important;
    border-width: 14px !important;
    border-bottom-width: 16px !important;
    border-color: #f7f7f4 !important;
    background: #f5f5f2 !important;
    box-shadow:
        0 0 0 1px #c9cac6,
        0 14px 29px rgba(0,0,0,.10) !important;
}

.cut-window-pane {
    filter:
        saturate(.62)
        brightness(1.04) !important;
}

/* pracovní plocha */
.cut-bench {
    margin-top: 59px !important;
    padding-top: 18px !important;
}

.cut-instruction {
    margin-bottom: 16px !important;
    color: #575b5e !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

/* parapet */
.cut-profile {
    height: 88px !important;
    border-color: #34393d !important;
    background:
        linear-gradient(
            180deg,
            #5c6267 0%,
            #4d5358 25%,
            #40464b 68%,
            #343a3e 100%
        ) !important;
    box-shadow:
        0 15px 23px rgba(0,0,0,.20),
        inset 0 1px 0 rgba(255,255,255,.15) !important;
}

.cut-profile-cells {
    height: 28px !important;
    bottom: -18px !important;
}

/* Pravítko */
.cut-ruler {
    height: 30px !important;
    padding-top: 11px !important;
    border-top-color: #7b7e80 !important;
    color: #5e6265 !important;
    font-size: 11px !important;
}

.cut-ruler span {
    min-width: 52px;
}

.cut-ruler span:first-child {
    text-align: left;
}

.cut-ruler span:last-child {
    text-align: right;
}

/* Červená značka řezu */
.cut-line {
    width: 2px !important;
    background: #cf302c !important;
    box-shadow:
        0 0 0 1px rgba(255,255,255,.48),
        0 0 8px rgba(200,20,20,.22) !important;
}

.cut-live-value {
    min-width: 86px !important;
    bottom: -43px !important;
    padding: 6px 8px !important;
    border-radius: 5px !important;
    background: #ce302c !important;
    font-size: 12px !important;
}

/* CSS pilka – bez emoji/font závislosti */
.cut-saw {
    position: absolute !important;
    top: -35px !important;
    left: 50% !important;
    width: 39px !important;
    height: 17px !important;
    display: block !important;
    transform:
        translateX(-50%)
        rotate(-13deg) !important;
    border: 1px solid #74777a;
    border-radius: 3px 2px 2px 3px;
    background:
        linear-gradient(
            180deg,
            #d7d8d8,
            #999c9e
        );
    box-shadow:
        0 4px 5px
        rgba(0,0,0,.12);
}

.cut-saw::before {
    content: "";
    position: absolute;
    left: -13px;
    top: 1px;
    width: 15px;
    height: 14px;
    border-radius: 7px 2px 2px 7px;
    background: #55585c;
}

.cut-saw::after {
    content: "";
    position: absolute;
    left: 2px;
    right: 2px;
    bottom: -5px;
    height: 5px;
    background:
        repeating-linear-gradient(
            135deg,
            #75787a 0 3px,
            transparent 3px 6px
        );
}

.cut-button {
    min-height: 58px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 11px !important;
    font-size: 14px !important;
    letter-spacing: .055em !important;
}

.cut-button-saw {
    position: relative;
    width: 26px;
    height: 11px;
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 2px;
}

.cut-button-saw::before {
    content: "";
    position: absolute;
    left: -8px;
    top: 1px;
    width: 9px;
    height: 8px;
    border-radius: 5px 1px 1px 5px;
    background: rgba(255,255,255,.8);
}

.cut-button-saw::after {
    content: "";
    position: absolute;
    left: 1px;
    right: 1px;
    bottom: -4px;
    height: 4px;
    background:
        repeating-linear-gradient(
            135deg,
            rgba(255,255,255,.85) 0 2px,
            transparent 2px 4px
        );
}

/* Čas + tlačítko mají stejnou vizuální váhu */
.cut-controls {
    margin-top: 17px !important;
    grid-template-columns:
        minmax(0, 1fr)
        230px !important;
}

.cut-clock {
    min-height: 58px !important;
    padding: 10px 17px !important;
    background: rgba(255,255,255,.86) !important;
}

.cut-clock span {
    font-size: 12px !important;
}

.cut-clock strong {
    font-size: 22px !important;
}

/* footer */
.cut-puzzle-footer {
    min-height: 66px !important;
    padding: 15px 24px !important;
    font-size: 12px !important;
    background: #fafafa !important;
}

.cut-puzzle-footer strong {
    color: #44484b;
}

.mount-tip {
    font-size: 12px !important;
}

/* Success už nepůsobí jako další obří karta */
.cut-success {
    margin: 14px 20px 18px !important;
    padding: 14px 18px !important;
    gap: 12px !important;
    border-color: #a9cfb0 !important;
    background: #edf7ef !important;
}

.cut-success strong {
    font-size: 15px !important;
}

.cut-success small {
    font-size: 12px !important;
}

/* po úspěchu opravdu uklidit odříznutý kus */
.cut-puzzle.is-verified
.cut-off-piece {
    display: none !important;
}

/* menší a čistší failure dialog */
.cut-wrong-card strong {
    font-size: 17px !important;
}

.cut-wrong-card small {
    font-size: 12px !important;
}

@media (max-width: 760px) {
    .cut-puzzle-header h2 {
        font-size: 23px !important;
    }

    .cut-target-center {
        min-width: 200px !important;
    }

    .cut-target-center strong > #cut-target-value {
        font-size: 25px !important;
    }
}

/* ===== CUT CAPTCHA NEW V1: clean animated product game ===== */
.cut-new-v1{background:#f7f7f6!important;min-height:0!important}
.new-stage{padding:24px 28px 22px;background:linear-gradient(#fbfbfa,#f3f3f1)}
.new-target{width:max-content;min-width:235px;max-width:100%;margin:0 auto 12px;padding:11px 20px;text-align:center;background:#fff;border:1px solid #d5d7d8;border-radius:8px;box-shadow:0 8px 22px rgba(0,0,0,.05)}
.new-target span,.new-value span{display:block;font-size:10px;font-weight:900;letter-spacing:.11em;color:#6a6d70}
.new-target strong{display:block;font-size:28px;line-height:1.05;color:#252729;font-variant-numeric:tabular-nums}
.new-target small{display:block;margin-top:5px;font-size:11px;font-weight:700;color:#666a6d}

.new-product-zone{position:relative;width:min(860px,96%);height:230px;margin:0 auto 3px}
.new-board{position:absolute;left:3%;right:3%;bottom:24px;height:155px;display:flex;align-items:center;justify-content:center;overflow:visible}
.new-board>img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 17px 13px rgba(0,0,0,.18));user-select:none;pointer-events:none}
.new-board:after{content:"";position:absolute;left:10%;right:10%;bottom:3px;height:24px;background:radial-gradient(ellipse,rgba(0,0,0,.18),transparent 70%);filter:blur(7px);z-index:-1}
.new-cut-marker{position:absolute;z-index:5;bottom:33px;height:142px;width:2px;background:#df332f;box-shadow:0 0 0 1px rgba(255,255,255,.65);transform:translateX(-50%)}
.new-cut-marker:before{content:"";position:absolute;top:-4px;left:-6px;width:14px;height:7px;border-radius:5px;background:#df332f}
.new-saw{position:absolute;z-index:8;bottom:165px;width:92px;height:42px;background:url("/static/shop/captcha_saw.svg") center/contain no-repeat;filter:drop-shadow(0 6px 5px rgba(0,0,0,.2));transform:translateX(-28%) rotate(-12deg);transform-origin:22px 22px;pointer-events:none}
.new-cut-gap{display:none;position:absolute;z-index:9;top:20px;bottom:20px;width:3px;background:rgba(30,31,32,.85);transform:translateX(-1px);box-shadow:0 0 2px rgba(255,255,255,.7)}
.new-right-piece{display:none}

.is-cutting .new-saw{animation:newSaw .62s cubic-bezier(.32,.62,.24,1) both}
@keyframes newSaw{
0%{transform:translate(-28%,0) rotate(-12deg)}
12%{transform:translate(-62%,12px) rotate(-16deg)}
24%{transform:translate(-8%,25px) rotate(-8deg)}
36%{transform:translate(-58%,39px) rotate(-16deg)}
48%{transform:translate(-10%,54px) rotate(-8deg)}
60%{transform:translate(-54%,69px) rotate(-15deg)}
72%{transform:translate(-13%,84px) rotate(-9deg)}
84%{transform:translate(-49%,100px) rotate(-14deg)}
100%{transform:translate(-25%,116px) rotate(-11deg)}
}
.is-cut-open .new-cut-gap{display:block}
.is-cut-open .new-cut-marker{opacity:.22}
.is-verified .new-target,.is-verified .new-measure{border-color:#9fc7a7;background:#f0f8f2}
.is-verified .new-value strong{color:#347640}

.new-measure{width:min(850px,96%);margin:0 auto;padding:15px 20px 17px;background:#fff;border:1px solid #dedfe0;border-radius:9px;box-shadow:0 8px 22px rgba(0,0,0,.04)}
.new-value{text-align:center}
.new-value strong{display:block;margin-top:2px;font-size:25px;color:#d9322e;font-weight:900;font-variant-numeric:tabular-nums}
.new-range{--p:50%;width:100%;height:38px;margin:8px 0 0;appearance:none;-webkit-appearance:none;background:transparent;cursor:ew-resize;touch-action:pan-y}
.new-range::-webkit-slider-runnable-track{height:8px;border-radius:5px;background:linear-gradient(90deg,#d9322e 0,#d9322e var(--p),#d8dade var(--p),#d8dade 100%)}
.new-range::-webkit-slider-thumb{width:30px;height:30px;margin-top:-11px;-webkit-appearance:none;border:4px solid #fff;border-radius:50%;background:#d9322e;box-shadow:0 0 0 1px #b92825,0 4px 10px rgba(0,0,0,.18)}
.new-range::-moz-range-track{height:8px;border-radius:5px;background:#d8dade}.new-range::-moz-range-progress{height:8px;border-radius:5px;background:#d9322e}.new-range::-moz-range-thumb{width:24px;height:24px;border:4px solid #fff;border-radius:50%;background:#d9322e}
.new-ruler{display:flex;justify-content:space-between;font-size:10px;font-weight:700;color:#777b7e;font-variant-numeric:tabular-nums}
.new-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.new-stepper button{min-height:43px;border:1px solid #d3d5d6;border-radius:6px;background:#f5f5f4;color:#333638;font:inherit;font-size:13px;font-weight:900;cursor:pointer}
.new-stepper button:active{transform:translateY(1px);background:#e9e9e7}
.new-controls{width:100%!important;margin:0!important;padding:16px 20px 18px!important;grid-template-columns:minmax(0,1fr) 245px!important;background:#fff!important;border-top:1px solid #e2e3e4}
.new-controls .cut-clock{box-shadow:none!important}.new-controls .cut-button{min-height:58px!important}

/* prevent legacy scene elements from leaking into NEW V1 */
.cut-new-v1 .cut-window,.cut-new-v1 .cut-bench,.cut-new-v1 .cut-profile-wrap,.cut-new-v1 .cut-profile,.cut-new-v1 .cut-off-piece,.cut-new-v1 .cut-line,.cut-new-v1 .cut-ruler,.cut-new-v1 .cut-instruction{display:none!important}

@media(max-width:760px){
 .cut-puzzle-header{padding:19px 15px 17px!important}.cut-puzzle-header h2{font-size:21px!important}.cut-puzzle-header p{font-size:13px!important}
 .new-stage{padding:17px 11px 14px}.new-target{width:100%;min-width:0}.new-target strong{font-size:27px}
 .new-product-zone{width:100%;height:175px}.new-board{left:0;right:0;height:125px;bottom:12px}.new-saw{width:72px;height:34px;bottom:126px}.new-cut-marker{bottom:18px;height:112px}
 .new-measure{width:100%;padding:14px 11px}.new-value strong{font-size:29px}
 .new-range{height:52px}.new-range::-webkit-slider-runnable-track{height:11px}.new-range::-webkit-slider-thumb{width:40px;height:40px;margin-top:-15px;border-width:5px}
 .new-range::-moz-range-track,.new-range::-moz-range-progress{height:11px}.new-range::-moz-range-thumb{width:32px;height:32px;border-width:5px}
 .new-stepper button{min-height:52px;font-size:15px}
 .new-controls{padding:12px!important;grid-template-columns:1fr!important}.new-controls .cut-button{min-height:54px!important}
}
@media(max-width:420px){
 .new-product-zone{height:145px}.new-board{height:100px}.new-saw{bottom:103px;width:62px}.new-cut-marker{height:92px}
 .new-stepper{grid-template-columns:repeat(2,1fr)}
}

/* LASER CAPTCHA V1 */
.laser-game{min-height:0!important;background:#f7f7f6!important}
.laser-stage{padding:24px 28px 22px;background:linear-gradient(#fbfbfa,#f3f3f1)}
.laser-target-card{width:max-content;min-width:260px;max-width:100%;margin:0 auto 14px;padding:13px 22px;text-align:center;border:1px solid #d3d5d6;border-radius:9px;background:#fff;box-shadow:0 9px 24px rgba(0,0,0,.055)}
.laser-target-card>span{display:block;color:#666a6d;font-size:10px;font-weight:900;letter-spacing:.12em}.laser-target-card strong{display:block;margin-top:4px;color:#252729;font-size:27px;line-height:1.05;font-variant-numeric:tabular-nums}.laser-target-card small{display:block;margin-top:6px;color:#666a6d;font-size:11px;font-weight:700}
.laser-product-area{position:relative;width:min(880px,96%);height:245px;margin:0 auto;overflow:hidden;border:1px solid #dcdedf;border-radius:11px;background:radial-gradient(ellipse at 50% 14%,#fff,#f7f7f5 52%,#ebebe8);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 11px 28px rgba(0,0,0,.05)}
.laser-parapet{position:absolute;left:8%;right:8%;bottom:17px;height:155px;display:grid;place-items:center}.laser-parapet:after{content:"";position:absolute;left:10%;right:10%;bottom:8px;height:23px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.21),rgba(0,0,0,.06) 60%,transparent 75%);filter:blur(7px);z-index:0}.laser-parapet img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none;filter:drop-shadow(0 15px 13px rgba(0,0,0,.17))}
.laser-device{position:absolute;z-index:15;top:20px;left:50%;width:70px;height:68px;transform:translateX(-50%);transition:left .05s linear}.laser-device-body{position:relative;width:100%;height:100%;border:1px solid #25292c;border-radius:9px;background:linear-gradient(145deg,#62686d,#393f43 57%,#24292c);box-shadow:inset 2px 2px 0 rgba(255,255,255,.07),0 9px 16px rgba(0,0,0,.18)}.laser-device-body:before{content:"";position:absolute;left:9px;right:9px;top:8px;height:23px;border-radius:4px;background:linear-gradient(#18211c,#0b110d);box-shadow:inset 0 0 0 1px rgba(90,132,102,.35)}.laser-device-screen{position:absolute;z-index:2;top:13px;left:50%;transform:translateX(-50%);color:#82e095;font-size:8px;font-weight:900;letter-spacing:.12em;text-shadow:0 0 7px rgba(80,220,110,.4)}.laser-device-lens{position:absolute;left:50%;bottom:10px;width:16px;height:16px;transform:translateX(-50%);border:2px solid #101315;border-radius:50%;background:radial-gradient(circle,#f12b2b 0 12%,#5e0e0e 13% 37%,#181a1b 38%);box-shadow:0 0 10px rgba(238,35,35,.22)}
.laser-beam{position:absolute;z-index:10;top:87px;left:50%;width:50%;height:2px;transform-origin:left center;background:linear-gradient(90deg,rgba(239,38,38,.96),rgba(239,38,38,.7));box-shadow:0 0 6px rgba(239,38,38,.65),0 0 14px rgba(239,38,38,.2);transition:left .05s linear,width .05s linear}.laser-dot{position:absolute;right:-5px;top:50%;width:10px;height:10px;transform:translateY(-50%);border-radius:50%;background:#f22e2e;box-shadow:0 0 0 4px rgba(244,45,45,.12),0 0 13px rgba(244,45,45,.78)}.laser-end-stop{position:absolute;z-index:5;right:5%;top:61px;width:2px;height:91px;background:linear-gradient(transparent,rgba(90,93,95,.18),transparent)}
.laser-readout{width:min(560px,96%);margin:15px auto 0;padding:14px 18px;text-align:center;border:1px solid #d4d6d7;border-radius:8px;background:#1e2421;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 7px 18px rgba(0,0,0,.08)}.laser-readout>span{display:block;color:#7f8a83;font-size:9px;font-weight:900;letter-spacing:.14em}.laser-readout strong{display:block;margin-top:3px;color:#8fec9e;font-size:31px;line-height:1.1;font-weight:800;font-variant-numeric:tabular-nums;text-shadow:0 0 12px rgba(92,235,116,.25)}.laser-status-line{margin-top:7px;display:inline-flex;align-items:center;gap:7px;color:#adb5b0;font-size:11px}.laser-status-dot{width:7px;height:7px;border-radius:50%;background:#f02f2f;box-shadow:0 0 8px rgba(240,47,47,.35)}
.laser-control{width:min(850px,96%);margin:15px auto 0;padding:16px 18px 17px;border:1px solid #dedfe0;border-radius:9px;background:#fff;box-shadow:0 8px 22px rgba(0,0,0,.04)}
.laser-range{--p:50%;width:100%;height:42px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:ew-resize;touch-action:pan-y}.laser-range::-webkit-slider-runnable-track{height:8px;border-radius:5px;background:linear-gradient(90deg,#d9322e 0,#d9322e var(--p),#d8dade var(--p),#d8dade 100%)}.laser-range::-webkit-slider-thumb{width:31px;height:31px;margin-top:-11px;appearance:none;-webkit-appearance:none;border:4px solid #fff;border-radius:50%;background:#d9322e;box-shadow:0 0 0 1px #b92825,0 5px 12px rgba(0,0,0,.18)}.laser-range::-moz-range-track{height:8px;border-radius:5px;background:#d8dade}.laser-range::-moz-range-progress{height:8px;border-radius:5px;background:#d9322e}.laser-range::-moz-range-thumb{width:25px;height:25px;border:4px solid #fff;border-radius:50%;background:#d9322e}
.laser-ruler{display:flex;justify-content:space-between;margin-top:2px;color:#777b7e;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.laser-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.laser-stepper button{min-height:44px;border:1px solid #d3d5d6;border-radius:6px;background:#f5f5f4;color:#333638;font:inherit;font-size:13px;font-weight:900;cursor:pointer}.laser-stepper button:hover{background:#ececeb}.laser-stepper button:active{transform:translateY(1px)}
.laser-start-overlay{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border:0;background:rgba(248,248,246,.95);color:#303337;cursor:pointer;backdrop-filter:blur(5px);transition:opacity .2s,visibility .2s}.laser-start-overlay.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.laser-start-device{position:relative;width:58px;height:58px;border:1px solid #262a2d;border-radius:10px;background:linear-gradient(145deg,#656b70,#2c3135);box-shadow:0 10px 25px rgba(0,0,0,.15)}.laser-start-lens{position:absolute;left:50%;bottom:10px;width:14px;height:14px;transform:translateX(-50%);border:2px solid #111416;border-radius:50%;background:#e52c2c;box-shadow:0 0 10px rgba(229,44,44,.35)}.laser-start-overlay strong{font-size:18px}.laser-start-overlay small{color:#717477;font-size:12px}
.laser-controls{width:100%!important;margin:0!important;padding:16px 20px 18px!important;grid-template-columns:minmax(0,1fr) 245px!important;background:#fff!important;border-top:1px solid #e2e3e4}.laser-controls .cut-clock{box-shadow:none!important}.laser-measure-button{min-height:58px!important}.is-measuring .laser-beam{animation:laser-pulse .32s ease-in-out 2}@keyframes laser-pulse{0%{filter:brightness(1)}50%{filter:brightness(1.8);box-shadow:0 0 10px rgba(239,38,38,.95),0 0 20px rgba(239,38,38,.45)}100%{filter:brightness(1)}}
.is-verified .laser-target-card,.is-verified .laser-control{border-color:#9fc7a7;background:#f0f8f2}.is-verified .laser-readout{background:#1c2a20;border-color:#6d9f78}.is-verified .laser-status-dot{background:#61cf75;box-shadow:0 0 9px rgba(97,207,117,.55)}
.laser-game .cut-window,.laser-game .cut-bench,.laser-game .cut-profile-wrap,.laser-game .cut-profile,.laser-game .cut-off-piece,.laser-game .cut-line,.laser-game .cut-ruler,.laser-game .cut-instruction,.laser-game .new-stage,.laser-game .new-product-zone,.laser-game .new-measure{display:none!important}
@media(max-width:760px){
 .laser-stage{padding:17px 11px 14px}.laser-target-card{width:100%;min-width:0}.laser-target-card strong{font-size:25px}.laser-product-area{width:100%;height:205px}.laser-parapet{left:2%;right:2%;height:130px}.laser-device{width:61px;height:60px}.laser-beam{top:79px}.laser-readout{width:100%;padding:13px}.laser-readout strong{font-size:32px}.laser-control{width:100%;padding:14px 11px 15px}.laser-range{height:54px}.laser-range::-webkit-slider-runnable-track{height:11px}.laser-range::-webkit-slider-thumb{width:41px;height:41px;margin-top:-15px;border-width:5px}.laser-range::-moz-range-track,.laser-range::-moz-range-progress{height:11px}.laser-range::-moz-range-thumb{width:33px;height:33px;border-width:5px}.laser-stepper button{min-height:54px;font-size:15px}.laser-controls{padding:12px!important;grid-template-columns:1fr!important}.laser-measure-button{min-height:54px!important}
}
@media(max-width:420px){.laser-product-area{height:180px}.laser-parapet{height:112px}.laser-stepper{grid-template-columns:repeat(2,1fr)}}

/* LASER CAPTCHA V2 fixes */
.laser-parapet{left:5%!important;right:5%!important;bottom:19px!important;height:auto!important;display:block!important}
.laser-parapet img{display:block!important;width:100%!important;height:auto!important;max-height:118px!important;object-fit:contain!important;object-position:center bottom!important;filter:drop-shadow(0 13px 10px rgba(0,0,0,.16))!important}
.laser-parapet:after{bottom:-4px!important}
.laser-device{left:8%!important}
.laser-beam{left:10%!important;width:42.5%;transition:width .05s linear!important}
.laser-end-stop{right:4%!important}
@media(max-width:760px){
 .laser-parapet{left:2%!important;right:2%!important;bottom:17px!important}
 .laser-parapet img{max-height:92px!important}
}


/* ==========================================================
   LASER CAPTCHA V3
   Real product asset + compact responsive layout
   ========================================================== */

/* skutečný parapet bez deformace */
.laser-parapet {
    left: 6% !important;
    right: 6% !important;
    bottom: 13px !important;
    height: 124px !important;
    display: grid !important;
    place-items: end center !important;
}

.laser-parapet img {
    width: 100% !important;
    height: 100% !important;
    max-height: 124px !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    filter:
        drop-shadow(
            0 12px 10px
            rgba(0,0,0,.20)
        ) !important;
}

/* menší produktová scéna */
.laser-product-area {
    height: 194px !important;
}

/* měřák kompaktnější */
.laser-device {
    top: 13px !important;
    width: 61px !important;
    height: 59px !important;
}

.laser-device-body::before {
    height: 19px !important;
}

.laser-device-screen {
    top: 11px !important;
}

.laser-device-lens {
    bottom: 8px !important;
    width: 14px !important;
    height: 14px !important;
}

/* paprsek posunutý výš podle nižšího měřáku */
.laser-beam {
    top: 72px !important;
}

.laser-end-stop {
    top: 50px !important;
    height: 76px !important;
}

/* méně vertikálního vzduchu */
.laser-stage {
    padding:
        16px 22px
        15px !important;
}

.laser-target-card {
    margin-bottom: 9px !important;
    padding:
        9px 18px
        10px !important;
}

.laser-target-card strong {
    font-size: 24px !important;
}

.laser-target-card small {
    margin-top: 3px !important;
}

.laser-readout {
    margin-top: 9px !important;
    padding:
        9px 14px
        10px !important;
}

.laser-readout strong {
    font-size: 27px !important;
}

.laser-status-line {
    margin-top: 4px !important;
}

/* slider je nyní jediný způsob nastavování */
.laser-control {
    margin-top: 9px !important;
    padding:
        10px 15px
        11px !important;
}

.laser-range {
    height: 37px !important;
}

/* stará tlačítka případně nikdy nezobrazovat */
.laser-stepper {
    display: none !important;
}

.laser-controls {
    padding:
        11px 16px
        12px !important;
}

.laser-controls .cut-clock,
.laser-measure-button {
    min-height: 51px !important;
}


/* ---------------- MOBILE ---------------- */

@media (max-width: 760px) {

    .laser-stage {
        padding:
            10px 8px
            9px !important;
    }

    .laser-target-card {
        margin-bottom:
            7px !important;

        padding:
            8px 10px
            9px !important;
    }

    .laser-target-card > span {
        font-size:
            9px !important;
    }

    .laser-target-card strong {
        font-size:
            22px !important;
    }

    .laser-target-card small {
        font-size:
            10px !important;
    }

    .laser-product-area {
        height:
            150px !important;
    }

    .laser-parapet {
        left:
            2% !important;

        right:
            2% !important;

        bottom:
            8px !important;

        height:
            91px !important;
    }

    .laser-parapet img {
        max-height:
            91px !important;
    }

    .laser-device {
        top:
            7px !important;

        width:
            51px !important;

        height:
            49px !important;
    }

    .laser-device-body::before {
        left:
            7px !important;

        right:
            7px !important;

        top:
            6px !important;

        height:
            16px !important;
    }

    .laser-device-screen {
        top:
            8px !important;

        font-size:
            6px !important;
    }

    .laser-device-lens {
        bottom:
            6px !important;

        width:
            12px !important;

        height:
            12px !important;
    }

    .laser-beam {
        top:
            58px !important;
    }

    .laser-end-stop {
        top:
            40px !important;

        height:
            59px !important;
    }

    .laser-readout {
        margin-top:
            7px !important;

        padding:
            7px 10px
            8px !important;
    }

    .laser-readout > span {
        font-size:
            8px !important;
    }

    .laser-readout strong {
        font-size:
            25px !important;
    }

    .laser-status-line {
        margin-top:
            2px !important;

        font-size:
            9px !important;
    }

    .laser-control {
        margin-top:
            7px !important;

        padding:
            6px 9px
            7px !important;
    }

    /* pořád velký a pohodlný thumb, ale blok není vysoký */
    .laser-range {
        height:
            43px !important;
    }

    .laser-range::-webkit-slider-thumb {
        width:
            37px !important;

        height:
            37px !important;

        margin-top:
            -13px !important;
    }

    .laser-range::-moz-range-thumb {
        width:
            29px !important;

        height:
            29px !important;
    }

    .laser-ruler {
        font-size:
            8px !important;
    }

    .laser-controls {
        padding:
            8px !important;

        gap:
            7px !important;
    }

    .laser-controls .cut-clock,
    .laser-measure-button {
        min-height:
            45px !important;
    }
}


@media (max-width: 420px) {

    .laser-product-area {
        height:
            137px !important;
    }

    .laser-parapet {
        height:
            80px !important;
    }

    .laser-parapet img {
        max-height:
            80px !important;
    }

    .laser-readout strong {
        font-size:
            23px !important;
    }
}


/* ==========================================================
   LASER OPENING GAME V4 – realistic window scene
   ========================================================== */

/* hide the old header inside .cut-puzzle; game now has its own full header */
.cut-puzzle > .cut-puzzle-header {
    display:none !important;
}

.laser-opening-game{
    min-height:0!important;
    background:#f5f5f3!important;
}

.opening-topbar{
    display:grid;
    grid-template-columns:120px 1fr 170px;
    align-items:center;
    gap:18px;
    padding:17px 22px;
    background:#fff;
    border-bottom:1px solid #e1e2e3;
}

.opening-title{text-align:center}
.opening-title>span{
    display:block;
    color:#6b6e71;
    font-size:9px;
    font-weight:900;
    letter-spacing:.15em;
}
.opening-title h2{
    margin:3px 0 4px;
    font-size:28px;
    line-height:1.05;
    letter-spacing:.01em;
}
.opening-title p{
    margin:0;
    color:#6d7073;
    font-size:13px;
}

.opening-time-card,
.opening-target-card{
    padding:10px 12px;
    border:1px solid #d9dbdc;
    border-radius:9px;
    background:#fafafa;
    box-shadow:0 6px 17px rgba(0,0,0,.045);
}
.opening-time-card{text-align:center}
.opening-time-card span,
.opening-target-card>span{
    display:block;
    color:#717477;
    font-size:9px;
    font-weight:900;
    letter-spacing:.10em;
}
.opening-time-card strong{
    display:block;
    margin-top:2px;
    color:#d9322e;
    font-size:21px;
    font-variant-numeric:tabular-nums;
}
.opening-target-card{text-align:right}
.opening-target-card strong{
    display:block;
    margin-top:2px;
    color:#267d36;
    font-size:19px;
    font-variant-numeric:tabular-nums;
}
.opening-target-card small{
    display:block;
    margin-top:2px;
    color:#777a7d;
    font-size:9px;
}

.opening-scene{
    position:relative;
    height:355px;
    overflow:hidden;
    background:
        url("/static/shop/laser_window_scene.jpg")
        center center / cover
        no-repeat;
}

.opening-scene:after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    box-shadow:inset 0 0 35px rgba(0,0,0,.08);
}

/* meter fixed on left */
.opening-meter{
    position:absolute;
    z-index:12;
    left:24px;
    top:50%;
    width:70px;
    height:112px;
    transform:translateY(-50%);
    border:1px solid #1c2023;
    border-radius:13px;
    background:linear-gradient(145deg,#50565b,#252a2e 62%,#15191c);
    box-shadow:
        inset 2px 2px 0 rgba(255,255,255,.07),
        0 11px 20px rgba(0,0,0,.22);
}
.opening-meter:before{
    content:"";
    position:absolute;
    left:9px;
    top:12px;
    width:25px;
    height:68px;
    border:2px solid #111518;
    border-radius:8px;
    background:#373c40;
}
.opening-meter-screen{
    position:absolute;
    right:8px;
    top:12px;
    width:20px;
    height:42px;
    border-radius:3px;
    background:#102118;
    box-shadow:inset 0 0 0 1px rgba(97,207,117,.25);
}
.opening-meter-screen span{
    display:grid;
    place-items:center;
    height:100%;
    color:#76d986;
    font-size:8px;
    font-weight:900;
}
.opening-meter-lens{
    position:absolute;
    right:-7px;
    top:50%;
    width:17px;
    height:17px;
    transform:translateY(-50%);
    border:3px solid #181b1e;
    border-radius:50%;
    background:radial-gradient(circle,#f33131 0 13%,#640f0f 14% 38%,#17191a 39%);
    box-shadow:0 0 12px rgba(243,49,49,.38);
}

.opening-laser{
    position:absolute;
    z-index:10;
    left:86px;
    top:50%;
    width:50%;
    height:2px;
    transform:translateY(-50%);
    background:linear-gradient(90deg,#ff3535,#ff4343);
    box-shadow:0 0 5px rgba(255,45,45,.8),0 0 13px rgba(255,45,45,.28);
    transition:width .05s linear;
}
.opening-laser-dot{
    position:absolute;
    right:-5px;
    top:50%;
    width:10px;
    height:10px;
    transform:translateY(-50%);
    border-radius:50%;
    background:#ff3a3a;
    box-shadow:0 0 0 4px rgba(255,58,58,.15),0 0 13px rgba(255,58,58,.9);
}
.opening-measure-start,
.opening-measure-end{
    position:absolute;
    z-index:7;
    top:25%;
    bottom:18%;
    width:2px;
    border-left:2px dashed rgba(255,255,255,.82);
}
.opening-measure-start{left:86px}
.opening-measure-end{right:30px}

.opening-readout{
    width:min(650px,92%);
    margin:14px auto 0;
    padding:10px 18px 12px;
    text-align:center;
    border:1px solid #141817;
    border-radius:11px;
    background:linear-gradient(#242927,#171c1a);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 7px 17px rgba(0,0,0,.09);
}
.opening-readout span{
    display:block;
    color:#bbc2bd;
    font-size:9px;
    font-weight:900;
    letter-spacing:.12em;
}
.opening-readout strong{
    display:block;
    margin-top:2px;
    color:#78df88;
    font-size:34px;
    line-height:1.05;
    font-weight:800;
    font-variant-numeric:tabular-nums;
    text-shadow:0 0 12px rgba(92,235,116,.24);
}

.opening-control{
    width:min(850px,94%);
    margin:12px auto 0;
    padding:11px 17px 12px;
    border:1px solid #d9dbdc;
    border-radius:9px;
    background:#fff;
    box-shadow:0 7px 18px rgba(0,0,0,.045);
}
.opening-range{
    --p:50%;
    width:100%;
    height:40px;
    margin:0;
    appearance:none;
    -webkit-appearance:none;
    background:transparent;
    cursor:ew-resize;
    touch-action:pan-y;
}
.opening-range::-webkit-slider-runnable-track{
    height:8px;
    border-radius:5px;
    background:linear-gradient(90deg,#2d963f 0,#2d963f var(--p),#d9dbdd var(--p),#d9dbdd 100%);
}
.opening-range::-webkit-slider-thumb{
    width:32px;
    height:32px;
    margin-top:-12px;
    appearance:none;
    -webkit-appearance:none;
    border:4px solid #fff;
    border-radius:50%;
    background:#fff;
    box-shadow:0 0 0 1px #c7c9ca,0 5px 12px rgba(0,0,0,.17);
}
.opening-range::-moz-range-track{height:8px;border-radius:5px;background:#d9dbdd}
.opening-range::-moz-range-progress{height:8px;border-radius:5px;background:#2d963f}
.opening-range::-moz-range-thumb{width:26px;height:26px;border:4px solid #fff;border-radius:50%;background:#fff}

.opening-ruler{
    display:flex;
    justify-content:space-between;
    color:#5f6366;
    font-size:9px;
    font-weight:700;
    font-variant-numeric:tabular-nums;
}
.opening-help{
    margin-top:7px;
    text-align:center;
    color:#777b7e;
    font-size:10px;
}

.opening-action-row{
    padding:11px 20px 15px;
    display:flex;
    justify-content:center;
}
.opening-measure-button{
    min-width:260px;
    min-height:52px;
    border:0;
    border-radius:8px;
    background:linear-gradient(#31a145,#237f34);
    color:#fff;
    font:inherit;
    font-size:16px;
    font-weight:900;
    letter-spacing:.03em;
    cursor:pointer;
    box-shadow:0 8px 19px rgba(35,127,52,.20),inset 0 1px 0 rgba(255,255,255,.13);
}
.opening-measure-button:hover:not(:disabled){
    background:linear-gradient(#2d963f,#1f7130);
}
.opening-measure-button:disabled{
    opacity:.45;
    cursor:not-allowed;
}

.opening-start-overlay{
    position:absolute;
    inset:0;
    z-index:60;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:0;
    background:rgba(248,248,246,.95);
    color:#303337;
    cursor:pointer;
    backdrop-filter:blur(5px);
    transition:opacity .2s,visibility .2s;
}
.opening-start-overlay.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.opening-start-icon{
    position:relative;
    width:62px;
    height:62px;
    border:1px solid #272c2f;
    border-radius:11px;
    background:linear-gradient(145deg,#646a6f,#2d3236);
    box-shadow:0 10px 23px rgba(0,0,0,.14);
}
.opening-start-icon:after{
    content:"";
    position:absolute;
    left:50%;
    bottom:10px;
    width:15px;
    height:15px;
    transform:translateX(-50%);
    border:2px solid #15181a;
    border-radius:50%;
    background:#f02f2f;
    box-shadow:0 0 10px rgba(240,47,47,.35);
}
.opening-start-overlay strong{font-size:18px}
.opening-start-overlay small{color:#717477;font-size:12px}

.is-measuring .opening-laser{
    animation:openingLaserPulse .24s ease-in-out 2;
}
@keyframes openingLaserPulse{
    0%,100%{filter:brightness(1)}
    50%{filter:brightness(1.8)}
}

.is-verified .opening-target-card,
.is-verified .opening-control{
    border-color:#9dc8a6;
    background:#f1f8f2;
}
.is-verified .opening-readout{
    border-color:#538e60;
    background:linear-gradient(#213126,#19261d);
}

@media(max-width:760px){
    .opening-topbar{
        grid-template-columns:74px 1fr 112px;
        gap:7px;
        padding:10px 8px;
    }
    .opening-title>span{font-size:7px}
    .opening-title h2{font-size:18px}
    .opening-title p{font-size:10px;line-height:1.25}
    .opening-time-card,.opening-target-card{padding:7px 6px}
    .opening-time-card strong{font-size:17px}
    .opening-target-card strong{font-size:15px}
    .opening-target-card small{font-size:7px}

    .opening-scene{
        height:225px;
        background-position:center center;
    }
    .opening-meter{
        left:10px;
        width:51px;
        height:83px;
        border-radius:9px;
    }
    .opening-meter:before{
        left:6px;top:8px;width:19px;height:51px;border-radius:6px
    }
    .opening-meter-screen{right:5px;top:8px;width:15px;height:32px}
    .opening-meter-screen span{font-size:6px}
    .opening-meter-lens{right:-6px;width:14px;height:14px}
    .opening-laser{left:60px}
    .opening-measure-start{left:60px}
    .opening-measure-end{right:13px}

    .opening-readout{
        width:94%;
        margin-top:8px;
        padding:7px 10px 8px;
    }
    .opening-readout strong{font-size:28px}
    .opening-control{
        width:94%;
        margin-top:8px;
        padding:6px 9px 8px;
    }
    .opening-range{height:44px}
    .opening-range::-webkit-slider-runnable-track{height:10px}
    .opening-range::-webkit-slider-thumb{width:38px;height:38px;margin-top:-14px}
    .opening-range::-moz-range-track,.opening-range::-moz-range-progress{height:10px}
    .opening-range::-moz-range-thumb{width:30px;height:30px}
    .opening-ruler{font-size:8px}
    .opening-help{margin-top:4px;font-size:9px}
    .opening-action-row{padding:8px 10px 11px}
    .opening-measure-button{width:94%;min-width:0;min-height:48px}
}

@media(max-width:420px){
    .opening-title p{display:none}
    .opening-scene{height:195px}
    .opening-title h2{font-size:16px}
}


/* ==========================================================
   LASER OPENING GAME V5 – cíl uprostřed vedle aktuální délky
   ========================================================== */

.opening-topbar {
    grid-template-columns:
        120px
        1fr
        120px !important;
}

.opening-topbar::after {
    content: "";
    display: block;
    width: 120px;
    height: 1px;
}

.opening-target-card {
    display: none !important;
}

.opening-readout-dual {
    position: relative;
    width: min(700px, 92%) !important;

    display: grid !important;
    grid-template-columns:
        1fr
        1px
        1fr !important;

    align-items: center !important;
    column-gap: 22px !important;

    padding:
        13px 24px
        29px !important;
}

.opening-readout-value {
    min-width: 0;
    text-align: center;
}

.opening-readout-value > span {
    display: block;
    color: #bbc2bd;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .11em;
}

.opening-readout-value > strong {
    display: block;
    margin-top: 4px;

    color: #78df88;
    font-size: 34px;
    line-height: 1.05;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;

    text-shadow:
        0 0 12px
        rgba(92,235,116,.24);
}

.opening-target-value {
    color: #78df88 !important;
}

.opening-readout-divider {
    width: 1px;
    height: 55px;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(255,255,255,.34),
            transparent
        );
}

.opening-readout-tolerance {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 8px;

    color: #c3c8c5;
    text-align: center;
    font-size: 10px;
    font-weight: 700;
}

.is-verified
.opening-readout-value > strong {
    color: #8bef9b !important;
}

@media (max-width: 760px) {

    .opening-topbar {
        grid-template-columns:
            72px
            1fr
            72px !important;
    }

    .opening-topbar::after {
        width: 72px;
    }

    .opening-readout-dual {
        width: 94% !important;
        column-gap: 12px !important;

        padding:
            9px 11px
            25px !important;
    }

    .opening-readout-value > span {
        font-size: 8px !important;
    }

    .opening-readout-value > strong {
        margin-top: 3px;
        font-size: 27px !important;
    }

    .opening-readout-divider {
        height: 45px;
    }

    .opening-readout-tolerance {
        bottom: 6px;
        font-size: 9px;
    }
}

@media (max-width: 420px) {

    .opening-readout-dual {
        column-gap: 8px !important;
    }

    .opening-readout-value > strong {
        font-size: 23px !important;
    }

    .opening-readout-value > span {
        font-size: 7px !important;
    }
}


/* ==========================================================
   LASER OPENING GAME V6
   human-check explanation + strong target value
   ========================================================== */

/* Title section with anti-bot explanation */
.opening-title {
    text-align: center;
}

.opening-human-check {
    margin: 9px auto 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 620px;
    padding: 6px 10px;
    border-radius: 7px;
    background: #f6faf6;
    border: 1px solid #d7eadb;
    color: #445047;
    text-align: left;
}

.opening-human-check-icon {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #3b914a;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
}

.opening-human-check strong {
    display: block;
    font-size: 10px;
    line-height: 1.2;
    color: #404844;
}

.opening-human-check small {
    display: block;
    margin-top: 2px;
    font-size: 9px;
    line-height: 1.25;
    color: #747a76;
}

/* top bar no longer needs target card space */
.opening-topbar {
    grid-template-columns:
        120px
        minmax(0, 1fr)
        120px !important;
}

/* Three-column central display */
.opening-readout-triple {
    width: min(820px, 94%) !important;

    display: grid !important;
    grid-template-columns:
        1fr
        1px
        1fr
        1px
        .72fr !important;

    align-items: center !important;
    column-gap: 20px !important;

    padding:
        13px 24px
        14px !important;
}

.opening-readout-value {
    min-width: 0;
    text-align: center;
}

.opening-readout-value > span {
    display: block;
    color: #bbc2bd;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .11em;
}

.opening-readout-value > strong {
    display: block;
    margin-top: 4px;

    color: #78df88;
    font-size: 34px;
    line-height: 1.05;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;

    text-shadow:
        0 0 12px
        rgba(92,235,116,.24);
}

.opening-target-value {
    color: #78df88 !important;
}

.opening-target-value small,
.opening-tolerance-value strong small {
    font-size: 14px;
    color: #78df88;
    font-weight: 800;
}

.opening-tolerance-value > strong {
    font-size: 29px;
}

.opening-readout-divider {
    width: 1px;
    height: 55px;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(255,255,255,.34),
            transparent
        );
}

/* Remove old tolerance footer if inherited */
.opening-readout-tolerance {
    display: none !important;
}

.is-verified
.opening-readout-value > strong,
.is-verified
.opening-target-value small,
.is-verified
.opening-tolerance-value strong small {
    color: #8bef9b !important;
}

@media (max-width: 760px) {

    .opening-title p {
        font-size: 9px !important;
    }

    .opening-human-check {
        margin-top: 6px;
        gap: 6px;
        padding: 5px 7px;
    }

    .opening-human-check-icon {
        width: 18px;
        height: 18px;
        font-size: 10px;
    }

    .opening-human-check strong {
        font-size: 8px;
    }

    .opening-human-check small {
        font-size: 7px;
    }

    .opening-readout-triple {
        width: 95% !important;
        column-gap: 8px !important;
        padding: 9px 8px 10px !important;
    }

    .opening-readout-value > span {
        font-size: 7px !important;
    }

    .opening-readout-value > strong {
        font-size: 24px !important;
    }

    .opening-target-value small,
    .opening-tolerance-value strong small {
        font-size: 10px !important;
    }

    .opening-tolerance-value > strong {
        font-size: 21px !important;
    }

    .opening-readout-divider {
        height: 40px;
    }
}

@media (max-width: 420px) {

    .opening-topbar {
        grid-template-columns:
            58px
            minmax(0, 1fr)
            58px !important;
    }

    .opening-title h2 {
        font-size: 15px !important;
    }

    .opening-human-check {
        max-width: 100%;
    }

    .opening-readout-triple {
        column-gap: 5px !important;
        padding-left: 5px !important;
        padding-right: 5px !important;
    }

    .opening-readout-value > strong {
        font-size: 20px !important;
    }

    .opening-tolerance-value > strong {
        font-size: 18px !important;
    }
}


/* ==========================================================
   LASER OPENING GAME V7
   start info only before game + equal digital values
   ========================================================== */

/* Explanation no longer lives in permanent header. */
.opening-human-check {
    display: none !important;
}


/* ---------------- PRE-GAME OVERLAY ---------------- */

.opening-start-overlay-info {
    padding: 24px !important;
    background:
        rgba(250,250,248,.975) !important;
}

.opening-start-copy {
    width:
        min(620px, calc(100% - 30px));

    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;

    text-align:
        center;
}

.opening-start-kicker {
    color:
        #676b6e;

    font-size:
        10px;

    font-weight:
        900;

    letter-spacing:
        .16em;
}

.opening-start-title {
    margin-top:
        5px;

    color:
        #252729;

    font-size:
        30px !important;

    line-height:
        1.05;

    font-weight:
        900;
}

.opening-start-subtitle {
    margin-top:
        7px;

    color:
        #666a6d;

    font-size:
        13px;
}

.opening-start-human {
    width:
        min(520px, 100%);

    margin-top:
        17px;

    padding:
        11px 15px;

    display:
        flex;

    align-items:
        center;

    gap:
        11px;

    text-align:
        left;

    border:
        1px solid
        #cfe3d3;

    border-radius:
        8px;

    background:
        #f3f9f4;
}

.opening-start-human-icon {
    flex:
        0 0 auto;

    width:
        28px;

    height:
        28px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        50%;

    background:
        #369147;

    color:
        #fff;

    font-size:
        15px;

    font-weight:
        900;
}

.opening-start-human > span:last-child {
    display:
        block;
}

.opening-start-human strong {
    display:
        block;

    color:
        #38413b;

    font-size:
        12px;

    line-height:
        1.25;
}

.opening-start-human small {
    display:
        block;

    margin-top:
        3px;

    color:
        #6e756f;

    font-size:
        10px;

    line-height:
        1.3;
}

.opening-start-time {
    margin-top:
        12px;

    color:
        #75797c;

    font-size:
        11px;
}

.opening-start-button {
    min-width:
        230px;

    min-height:
        48px;

    margin-top:
        13px;

    padding:
        0 22px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        10px;

    border-radius:
        7px;

    background:
        linear-gradient(
            180deg,
            #309d43,
            #237d33
        );

    color:
        #fff;

    font-size:
        15px;

    font-weight:
        900;

    letter-spacing:
        .035em;

    box-shadow:
        0 8px 18px
        rgba(35,125,51,.18),
        inset 0 1px 0
        rgba(255,255,255,.13);
}

.opening-start-play {
    width:
        24px;

    height:
        24px;

    display:
        grid;

    place-items:
        center;

    padding-left:
        2px;

    border-radius:
        50%;

    background:
        #fff;

    color:
        #2b8d3d;

    font-size:
        10px;
}


/* ---------------- EQUAL DIGITAL VALUES ---------------- */

/*
   Current / Target / Tolerance:
   all values now share exactly the same typographic scale.
*/
.opening-readout-triple
.opening-readout-value > strong {
    display:
        flex !important;

    align-items:
        baseline !important;

    justify-content:
        center !important;

    gap:
        7px !important;

    margin-top:
        4px !important;

    color:
        #78df88 !important;

    font-size:
        34px !important;

    line-height:
        1.05 !important;

    font-weight:
        800 !important;

    font-variant-numeric:
        tabular-nums !important;

    white-space:
        nowrap !important;

    text-shadow:
        0 0 12px
        rgba(92,235,116,.24) !important;
}

/* Current is raw text including mm, target/tolerance use separate unit spans. */
.opening-readout-triple
.opening-unit {
    color:
        #78df88 !important;

    font-size:
        15px !important;

    font-weight:
        800 !important;

    line-height:
        1 !important;
}

.opening-tolerance-value > strong {
    font-size:
        34px !important;
}

.opening-target-value {
    font-size:
        34px !important;
}

.opening-target-value
#cut-target-value {
    color:
        #78df88 !important;

    font-size:
        inherit !important;

    font-weight:
        inherit !important;
}

.is-verified
.opening-readout-triple
.opening-readout-value > strong,

.is-verified
.opening-readout-triple
.opening-unit,

.is-verified
.opening-target-value
#cut-target-value {
    color:
        #8bef9b !important;
}


/* ---------------- MOBILE ---------------- */

@media (max-width: 760px) {

    .opening-start-overlay-info {
        padding:
            15px 10px !important;
    }

    .opening-start-copy {
        width:
            min(500px, 100%);
    }

    .opening-start-title {
        font-size:
            22px !important;
    }

    .opening-start-subtitle {
        margin-top:
            5px;

        font-size:
            11px;
    }

    .opening-start-human {
        margin-top:
            11px;

        padding:
            8px 10px;

        gap:
            8px;
    }

    .opening-start-human-icon {
        width:
            23px;

        height:
            23px;

        font-size:
            12px;
    }

    .opening-start-human strong {
        font-size:
            10px;
    }

    .opening-start-human small {
        font-size:
            8px;
    }

    .opening-start-time {
        margin-top:
            8px;

        font-size:
            9px;
    }

    .opening-start-button {
        min-width:
            190px;

        min-height:
            43px;

        margin-top:
            9px;

        font-size:
            13px;
    }

    .opening-readout-triple
    .opening-readout-value > strong,

    .opening-tolerance-value > strong,

    .opening-target-value {
        font-size:
            24px !important;
    }

    .opening-readout-triple
    .opening-unit {
        font-size:
            10px !important;
    }
}


@media (max-width: 420px) {

    .opening-start-title {
        font-size:
            19px !important;
    }

    .opening-start-human {
        align-items:
            flex-start;
    }

    .opening-readout-triple
    .opening-readout-value > strong,

    .opening-tolerance-value > strong,

    .opening-target-value {
        font-size:
            20px !important;
    }

    .opening-readout-triple
    .opening-unit {
        font-size:
            9px !important;
    }
}


/* ==========================================================
   LASER OPENING GAME V8
   equal tolerance value + larger anti-bot explanation
   ========================================================== */

/* Úvodní vysvětlení – větší a čitelnější */
.opening-start-human {
    padding:
        14px 17px !important;

    gap:
        13px !important;
}

.opening-start-human-icon {
    width:
        32px !important;

    height:
        32px !important;

    font-size:
        17px !important;
}

.opening-start-human strong {
    font-size:
        14px !important;

    line-height:
        1.3 !important;
}

.opening-start-human small {
    margin-top:
        4px !important;

    font-size:
        12px !important;

    line-height:
        1.4 !important;

    color:
        #646b66 !important;
}


/* Všechny tři hodnoty mají úplně stejnou velikost a barvu */
.opening-readout-triple
.opening-readout-value > strong,

.opening-readout-triple
.opening-target-value,

.opening-readout-triple
.opening-tolerance-value > strong {
    font-size:
        34px !important;

    color:
        #78df88 !important;

    font-weight:
        800 !important;

    line-height:
        1.05 !important;

    text-shadow:
        0 0 12px
        rgba(92,235,116,.24) !important;
}

/* jednotky mm stejné u všech tří hodnot */
.opening-readout-triple
.opening-unit {
    font-size:
        15px !important;

    color:
        #78df88 !important;

    font-weight:
        800 !important;
}

/* tolerance už nesmí zdědit menší starý styl */
.opening-tolerance-value > strong,
.opening-tolerance-value > strong > span:first-child {
    font-size:
        34px !important;

    color:
        #78df88 !important;
}


/* ---------------- MOBILE ---------------- */

@media (max-width: 760px) {

    .opening-start-human {
        padding:
            10px 12px !important;

        gap:
            9px !important;
    }

    .opening-start-human-icon {
        width:
            26px !important;

        height:
            26px !important;

        font-size:
            14px !important;
    }

    .opening-start-human strong {
        font-size:
            11px !important;
    }

    .opening-start-human small {
        font-size:
            10px !important;
    }

    .opening-readout-triple
    .opening-readout-value > strong,

    .opening-readout-triple
    .opening-target-value,

    .opening-readout-triple
    .opening-tolerance-value > strong,

    .opening-tolerance-value > strong > span:first-child {
        font-size:
            24px !important;
    }

    .opening-readout-triple
    .opening-unit {
        font-size:
            10px !important;
    }
}


@media (max-width: 420px) {

    .opening-start-human strong {
        font-size:
            10px !important;
    }

    .opening-start-human small {
        font-size:
            9px !important;
    }

    .opening-readout-triple
    .opening-readout-value > strong,

    .opening-readout-triple
    .opening-target-value,

    .opening-readout-triple
    .opening-tolerance-value > strong,

    .opening-tolerance-value > strong > span:first-child {
        font-size:
            20px !important;
    }

    .opening-readout-triple
    .opening-unit {
        font-size:
            9px !important;
    }
}


/* Přihlášení – kompaktnější formulář */
.login-account-container {
    width: min(560px, calc(100% - 40px));
}

.login-account-card {
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

.login-account-card .account-form p {
    margin: 0 0 16px;
}

.login-account-card .account-form label {
    display: block;
    margin-bottom: 6px;
    font-weight: 700;
}

.login-account-card .account-form input {
    box-sizing: border-box;
    width: 100%;
    max-width: 420px;
}

@media (max-width: 560px) {
    .login-account-container {
        width: min(100% - 26px, 560px);
    }

    .login-account-card .account-form input {
        max-width: 100%;
    }
}

/* V90 – pevný sloupec stavů v přehledu Poslední objednávky. */
.account-recent-orders .order-row {
    grid-template-columns: 150px minmax(0, 1fr) 150px;
}

.account-recent-orders .order-status {
    width: 150px;
}

.account-recent-orders .order-status-label {
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
    text-align: center;
}

@media (max-width: 560px) {
    .account-recent-orders .order-row {
        grid-template-columns: 1fr;
    }

    .account-recent-orders .order-status {
        width: auto;
    }

    .account-recent-orders .order-status-label {
        width: auto;
        justify-content: flex-start;
        text-align: left;
    }
}
