.admin-page,
.admin-wrap {
    --cms-radius-control: var(--radius-control);
    --cms-radius-nested: var(--radius-nested);
    --cms-radius-panel: var(--radius-panel);
    --cms-field-height: var(--control-height);
    --cms-space-xs: var(--space-xs);
    --cms-space-sm: var(--space-sm);
    --cms-space-md: var(--space-md);
    --cms-space-lg: var(--space-lg);
}

/* Fælles grunddesign for alle formularfelter i CMS'et. Nye felter får dermed
   automatisk samme størrelse, typografi, kant og fokusmarkering uanset layout. */
:where(.admin-page, .admin-wrap) input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="range"]):not([type="color"]),
:where(.admin-page, .admin-wrap) select,
:where(.admin-page, .admin-wrap) textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: var(--cms-field-height);
    padding: 10px 12px;
    border: 1px solid #bdbdbd;
    border-radius: var(--cms-radius-control);
    background: #fff;
    color: #111;
    font: 400 14px/1.4 Manrope, sans-serif;
}

:where(.admin-page, .admin-wrap) input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="range"]):not([type="color"]),
:where(.admin-page, .admin-wrap) select {
    height: var(--cms-field-height);
}

:where(.admin-page, .admin-wrap) textarea { resize: vertical; }
:where(.admin-page, .admin-wrap) input::placeholder,
:where(.admin-page, .admin-wrap) textarea::placeholder { color: #8a8a8a; opacity: 1; }
:where(.admin-page, .admin-wrap) input:focus,
:where(.admin-page, .admin-wrap) select:focus,
:where(.admin-page, .admin-wrap) textarea:focus { outline: 2px solid var(--color-brand); outline-offset: 1px; border-color: var(--color-brand); }
:where(.admin-page, .admin-wrap) input:disabled,
:where(.admin-page, .admin-wrap) select:disabled,
:where(.admin-page, .admin-wrap) textarea:disabled,
:where(.admin-page, .admin-wrap) input[readonly],
:where(.admin-page, .admin-wrap) textarea[readonly] { background: #f1f1f1; color: #555; }
:where(.admin-page, .admin-wrap) input[type="checkbox"],
:where(.admin-page, .admin-wrap) input[type="radio"] { accent-color: var(--color-brand); }

.admin-page {
    min-height: 75vh;
    padding: 44px max(24px, calc((100vw - 1240px) / 2)) 80px;
    background: #f3f2f0;
    color: #111;
    font-size: 15px;
    line-height: 1.5;
}

/* Standalone login/setup shell. These structural rules belong with the CMS
   styles; without them the form falls back to an unstyled full-width row. */
.admin-wrap {
    min-height: 70vh;
    display: grid;
    place-items: center;
    padding: 40px;
    background: #f3f2f0;
}

.admin-login {
    width: min(520px, 100%);
    padding: 50px;
    border-radius: 24px;
    background: #fff;
    color: #111;
}

.admin-login form { display: grid; gap: 20px; }
.admin-login label { display: grid; gap: 8px; }
.admin-login input {
    width: 100%;
    min-height: var(--cms-field-height);
    padding: 12px 14px;
    border: 1px solid var(--color-muted);
    border-radius: var(--cms-radius-control);
    background: #fff;
    color: #111;
    font: inherit;
}
.admin-login input:focus { outline: 2px solid var(--color-brand); outline-offset: 1px; border-color: var(--color-brand); }

.auth-only,
.auth-only .admin-wrap {
    min-height: 100vh;
    background: var(--color-surface-dark);
}

.auth-only .admin-wrap { padding: 32px; }
.auth-only .admin-login { box-shadow: 0 24px 70px rgba(0, 0, 0, .22); }
.admin-logo { display: block; width: 74px; height: 74px; margin: 0 0 28px; border-radius: 16px; object-fit: contain; }
.admin-login-logo { display: block; width: 74px; height: 74px; margin: 0 0 28px; }
.admin-login-logo .admin-logo { width: 74px; height: 74px; margin: 0; }
.admin-login .eyebrow { margin: 0 0 10px; color: var(--color-brand); font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-login h1 { margin: 0 0 30px; font-size: 44px; line-height: 1; font-weight: 500; letter-spacing: -.035em; }
.admin-login .button { width: 100%; margin-top: 4px; }

.admin-page h1 {
    max-width: 900px;
    margin: 0 0 20px;
    font-size: 52px;
    line-height: 1;
    letter-spacing: -.045em;
}

.admin-page h2 { margin: 0 0 20px; font-size: 24px; line-height: 1.2; font-weight: 600; }
.admin-page h3 { margin: 0; font-size: 18px; line-height: 1.3; font-weight: 700; }
.admin-page small { display: block; margin-top: 4px; color: #6b6b6b; }
.admin-page code { overflow-wrap: anywhere; }
.admin-page > .eyebrow,
.admin-toolbar .eyebrow,
.admin-price-refresh .eyebrow,
.admin-sparepart-account .eyebrow {
    margin: 0 0 8px;
    color: var(--color-brand);
    font-size: 12px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.admin-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 40px;
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: var(--cms-radius-panel);
    background: #fff;
}

.admin-nav a { padding: 10px 14px; border-radius: var(--cms-radius-control); font-size: 14px; line-height: 1.3; font-weight: 500; }
.admin-nav a:hover, .admin-nav a:focus { background: #eee; }
.admin-lead { max-width: 760px; margin: 0 0 32px; color: #555; font-size: 16px; line-height: 1.55; }

.admin-notice, .admin-page .alert {
    margin: 0 0 24px;
    padding: 15px 18px;
    border-radius: var(--cms-radius-nested);
    background: #e3f5e8;
    color: #174d25;
}
.admin-page .alert { background: #fff0d4; color: #5a3d00; }
.admin-feedback-actions { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin: 0 0 18px; }
.admin-feedback-actions > .admin-account-create,
.admin-feedback-actions > .admin-account-create-row,
.admin-feedback-actions > .admin-add-row { margin: 0 0 0 auto; }
.admin-feedback-actions:has(> .admin-account-create[open]) { flex-wrap: wrap; }
.admin-feedback-actions > .admin-account-create[open] { order: 2; flex: 1 0 100%; }
.admin-context-notice { flex: 1 1 auto; width: auto; margin: 0; padding: 12px 16px; border-radius: var(--cms-radius-nested); background: #e3f5e8; color: #174d25; font-size: 14px; line-height: 1.4; }
.admin-context-notice.is-error { background: #fbe1e1; color: #8f1515; }

.admin-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.admin-toolbar > div:first-child { min-width: 0; }
.admin-toolbar h1 { margin-bottom: 0; }
.admin-toolbar h1 + .admin-lead { margin: 20px 0 0; }
.admin-toolbar > .admin-toolbar-actions, .form-actions { display: flex; align-items: center; gap: 16px; }

.admin-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.admin-dashboard-grid a { display: flex; min-height: 180px; padding: 24px; flex-direction: column; border: 1px solid #dedede; border-radius: var(--cms-radius-panel); background: #fff; }
.admin-dashboard-grid strong, .admin-dashboard-grid span, .admin-dashboard-grid small { display: block; }
.admin-dashboard-grid strong { margin-bottom: 22px; font-size: 32px; font-weight: 500; }
.admin-dashboard-grid span { font-weight: 600; line-height: 1.35; }
.admin-dashboard-grid small { margin-top: auto; padding-top: 12px; color: #72706e; line-height: 1.4; }

.admin-price-refresh {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 24px;
    padding: 24px;
    border: 1px solid #dedede;
    border-radius: var(--cms-radius-panel);
    background: #fff;
    flex-wrap: wrap;
}
.admin-price-refresh h2 { margin: 0 0 8px; }
.admin-price-refresh p { margin: 0; }
.admin-price-refresh form { display: grid; flex: 0 0 auto; justify-items: center; gap: 5px; }
.admin-price-refresh form small { margin: 0; white-space: nowrap; }
.admin-price-progress { display: grid; width: 100%; gap: 8px; padding-top: 18px; border-top: 1px solid #dedede; }
.admin-price-progress[hidden] { display: none; }
.admin-price-progress-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.admin-price-progress-heading strong { font-size: 14px; }
.admin-price-progress-heading span { color: var(--color-brand); font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; }
.admin-price-progress-track { overflow: hidden; width: 100%; height: 10px; border-radius: 999px; background: #e8e7e5; }
.admin-price-progress-track > span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--color-brand); transition: width .35s var(--motion-smooth); }
.admin-price-progress small { margin: 0; color: #666; }
.admin-price-progress.is-complete .admin-price-progress-track > span { background: #2d8a4e; }
.admin-price-progress.has-error .admin-price-progress-heading span,
.admin-price-progress.has-error small { color: var(--color-danger); }
.admin-price-progress.has-error .admin-price-progress-track > span { background: var(--color-danger); }
.admin-sparepart-account {
    position: relative;
    display: grid;
    grid-template-columns: minmax(240px, .8fr) minmax(420px, 1.2fr);
    align-items: end;
    gap: 22px;
    margin-bottom: 24px;
    padding: 24px;
    border: 1px solid #dedede;
    border-radius: var(--cms-radius-panel);
    background: #fff;
}
.admin-sparepart-account h2 { margin: 0 0 8px; }
.admin-sparepart-account p, .admin-sparepart-account small { margin: 0; }
.sparepart-account-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.sparepart-account-form label { display: grid; gap: 7px; font-size: 13px; font-weight: 700; }
.sparepart-account-form input { width: 100%; min-height: var(--cms-field-height); padding: 10px 12px; border: 1px solid #bdbdbd; border-radius: var(--cms-radius-control); font: 400 14px/1.4 Manrope, sans-serif; }
.sparepart-account-form input:focus { outline: 2px solid var(--color-brand); outline-offset: 1px; border-color: var(--color-brand); }
.sparepart-account-form .button { min-height: var(--cms-field-height); white-space: nowrap; }
.sparepart-account-remove { position: absolute; top: 18px; right: 22px; }

.admin-form { display: grid; gap: 20px; width: min(680px, 100%); padding: 24px; border-radius: var(--cms-radius-panel); background: #fff; }
.admin-form-wide { width: 100%; padding: 0; background: transparent; }
.admin-form label, .stacked-form label { display: grid; gap: 7px; font-size: 13px; font-weight: 700; }
.admin-form input, .admin-form select, .admin-form textarea,
.stacked-form input, .stacked-form select, .stacked-form textarea {
    width: 100%;
    min-height: var(--cms-field-height);
    padding: 10px 12px;
    border: 1px solid #bdbdbd;
    border-radius: var(--cms-radius-control);
    background: #fff;
    color: #111;
    font: 400 14px/1.4 Manrope, sans-serif;
}
.admin-form textarea, .stacked-form textarea { resize: vertical; }
.admin-login input,
.sparepart-account-form input,
.admin-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.admin-form select,
.stacked-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.stacked-form select,
.admin-search input {
    height: var(--cms-field-height);
    min-height: var(--cms-field-height);
}
.admin-form input:focus, .admin-form select:focus, .admin-form textarea:focus,
.stacked-form input:focus { outline: 2px solid var(--color-brand); outline-offset: 1px; border-color: var(--color-brand); }
.admin-form .check { display: flex; align-items: center; align-self: end; min-height: 47px; font-weight: 500; }
.admin-form .check input { width: auto; }

.admin-form-section {
    padding: 24px;
    border: 1px solid #dedede;
    border-radius: var(--cms-radius-panel);
    background: #fff;
}
.admin-form-section > label + label, .admin-form-section > .admin-field-grid + label { margin-top: 16px; }
.standalone-section { margin: 0; }
.admin-account-section { margin-top: 30px; }
.admin-account-search { margin: 24px 0 6px; }
.admin-account-section .section-heading { margin-bottom: 14px; }
.admin-account-section .section-heading h2 { margin: 0; }
.admin-count-badge { display: inline-flex; min-width: 34px; min-height: 34px; align-items: center; justify-content: center; border-radius: 999px; background: #e8e8e8; color: var(--color-surface-dark); font-size: 13px; font-weight: 800; }
.admin-current-account-cell { position: relative; }
.admin-current-label { position: absolute; top: 4px; left: 16px; color: #707070; font-size: 11px; line-height: 1; font-weight: 600; }
.admin-section-copy { margin: -4px 0 16px; color: #666; }
.admin-account-create-row { display: flex; justify-content: flex-end; margin: 0 0 18px; }
.admin-account-create { margin: 0 0 18px auto; width: fit-content; }
.admin-account-create > summary { list-style: none; cursor: pointer; }
.admin-account-create > summary::-webkit-details-marker { display: none; }
.admin-account-create[open] { width: 100%; padding: 18px; border: 1px solid #d6d6d6; border-radius: var(--cms-radius-panel); background: #fff; }
.admin-account-create[open] > summary { margin-left: auto; }
.admin-account-create-form { margin-top: 18px; }
.section-heading, .repeat-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.section-heading { align-items: flex-start; margin-bottom: 20px; }
.section-heading h2 { margin-bottom: 7px; }
.section-heading p { margin: 0; color: #666; }
.admin-create-page-action {
    --admin-action-width: 158px;
    --admin-action-label-width: 106px;
    flex: 0 0 auto;
    align-self: flex-start;
}

.admin-field-grid { display: grid; gap: 16px; }
.admin-field-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-field-grid.three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-field-grid > label { align-content: start; }
.password-field-grid > label { align-content: start; }

.model-editors, [data-categories], [data-faqs] { display: grid; gap: 20px; }
.category-editor, .faq-editor {
    display: grid;
    gap: 16px;
    padding: 20px;
    border: 1px solid #cfcfcf;
    border-radius: var(--cms-radius-nested);
    background: #fafafa;
}
.model-editor {
    overflow: hidden;
    border: 1px solid #cfcfcf;
    border-radius: var(--cms-radius-nested);
    background: #fafafa;
}
.model-editor.is-dragging { opacity: .42; border-color: var(--color-brand); box-shadow: 0 0 0 2px rgba(9,123,149,.18); }
.model-editor-summary,
.repair-editor-summary {
    display: flex;
    align-items: center;
    gap: 13px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.model-editor-summary::-webkit-details-marker,
.repair-editor-summary::-webkit-details-marker { display: none; }
.model-editor-summary { min-height: 70px; padding: 14px 17px; }
.model-editor[open] > .model-editor-summary { border-bottom: 1px solid #dedede; background: #fff; }
.model-editor-content { display: grid; gap: 14px; padding: 17px; }
.editor-disclosure {
    flex: 0 0 auto;
    width: 0;
    height: 0;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 9px solid var(--color-surface-dark);
    transition: transform .16s ease;
}
details[open] > summary > .editor-disclosure { transform: rotate(90deg); }
.editor-summary-copy { display: grid; min-width: 0; gap: 2px; }
.editor-summary-copy strong { overflow: hidden; color: var(--color-surface-dark); font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
.editor-summary-copy small { margin: 0; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.model-summary-count { margin-left: auto; padding: 6px 10px; border-radius: 999px; background: #e8e8e8; color: #555; font-size: 12px; font-weight: 700; white-space: nowrap; }
.editor-heading-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 16px; }
.repeat-toolbar > div { display: flex; flex-wrap: wrap; gap: 12px; }
.repeat-toolbar > div:first-child { display: grid; gap: 3px; }
.admin-category-url { margin: 0; color: #737373; font-size: 12px; line-height: 1.35; }
.repair-editors { display: grid; gap: 14px; }
.repair-editor { overflow: hidden; border: 1px solid #dedede; border-radius: var(--cms-radius-nested); background: #fff; }
.repair-editor.is-dragging { opacity: .42; border-color: var(--color-brand); box-shadow: 0 0 0 2px rgba(9,123,149,.18); }
.repair-editor-summary { min-height: 58px; padding: 10px 13px; }
.repair-drag-handle,
.model-drag-handle {
    display: inline-grid;
    flex: 0 0 auto;
    width: 27px;
    height: 34px;
    place-items: center;
    border-radius: var(--cms-radius-control);
    color: #777;
    cursor: grab;
}
.repair-drag-handle:hover, .repair-drag-handle:focus-visible,
.model-drag-handle:hover, .model-drag-handle:focus-visible { background: #e8f4f6; color: var(--color-brand); outline: 0; }
.repair-drag-handle:active, .model-drag-handle:active { cursor: grabbing; }
.repair-drag-handle svg, .model-drag-handle svg { width: 16px; height: 24px; fill: currentColor; }
.repair-editor[open] > .repair-editor-summary { border-bottom: 1px solid #e2e2e2; background: #f8f8f8; }
.repair-editor-content { display: grid; gap: 11px; padding: 14px; }
.repair-summary-meta { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin-left: auto; }
.repair-summary-meta > span { padding: 5px 8px; border-radius: 7px; background: #f0f0f0; color: #555; font-size: 11px; font-weight: 700; white-space: nowrap; }
.repair-summary-meta > [data-repair-summary-with] { background: #e5f3f6; color: #076b84; }
.model-summary-status { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-left: auto; }
.admin-model-issue-badge,
.repair-summary-meta > .admin-repair-issue-badge { display: inline-flex; align-items: center; min-height: 27px; padding: 5px 9px; border: 1px solid #e4abab; border-radius: 999px; background: #fae8e8; color: #8b2020; font-size: 11px; line-height: 1.2; font-weight: 800; white-space: nowrap; }
.model-editor.has-model-issues { border-color: #dfb0b0; }
.model-editor.has-model-issues > .model-editor-summary { box-shadow: inset 4px 0 0 #b71919; }
.repair-editor.has-repair-issues { border-color: #e4abab; }
.repair-editor.has-repair-issues > .repair-editor-summary { box-shadow: inset 3px 0 0 #b71919; }
.repair-detail-toolbar { min-height: var(--cms-field-height); }
.repair-detail-toolbar .editor-icon-actions { margin-left: auto; }
.price-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.price-editor-grid fieldset { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0; padding: 16px; border: 1px solid #ddd; border-radius: var(--cms-radius-nested); }
.price-editor-grid legend { padding-inline: 7px; font-size: 13px; font-weight: 700; }
.repair-discount-note { grid-column: 1 / -1; margin: -3px 0 0; color: #666; font-size: 12px; }

.sparepart-scanner {
    grid-column: 1 / -1;
    display: block;
    margin-top: 6px;
    padding: 17px;
    border: 1px solid var(--color-muted);
    border-radius: var(--cms-radius-nested);
    background: #f7f7f7;
}
.sparepart-scanner-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    cursor: pointer;
    list-style: none;
}
.sparepart-scanner-summary::-webkit-details-marker { display: none; }
.sparepart-scanner-summary > span:first-child { display: grid; gap: 4px; }
.sparepart-scanner-summary strong { color: var(--color-surface-dark); font-size: 15px; }
.sparepart-scanner-summary small { color: var(--color-brand); font-weight: 700; }
.sparepart-summary-action {
    flex: 0 0 auto;
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    color: #111;
    font-size: 18px;
    line-height: 1;
    transform-origin: center;
    transition: transform .16s ease;
}
.sparepart-summary-action::after { content: "▶"; }
.sparepart-scanner[open] .sparepart-summary-action { transform: rotate(90deg); }
.sparepart-scanner-content { display: grid; gap: 12px; margin-top: 16px; }
.sparepart-scanner-heading, .sparepart-component-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.sparepart-scanner-heading > div { display: grid; gap: 4px; }
.sparepart-scanner-heading .button { flex: 0 0 auto; }
.sparepart-components { display: grid; gap: 12px; }
.sparepart-component {
    display: grid;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--color-muted);
    border-radius: var(--cms-radius-nested);
    background: #fff;
}
.sparepart-component-toolbar strong { color: var(--color-surface-dark); font-size: 13px; }
.sparepart-source-grid { display: grid; grid-template-columns: minmax(0, 1fr) 90px; gap: 12px; }
.sparepart-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 15px; }
.sparepart-actions .button { padding: 11px 17px; }
.sparepart-actions a { color: var(--color-brand); font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: .12em; }
.sparepart-actions .sparepart-results-toggle { color: var(--color-brand); font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: .12em; }
.sparepart-actions .sparepart-show-all { color: var(--color-brand); font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: .12em; }
.sparepart-filter-status { margin: -3px 0 0; color: #666; font-size: 12px; line-height: 1.45; }
.sparepart-status { margin: 0; font-size: 13px; line-height: 1.5; }
.sparepart-status.is-loading { color: #555; }
.sparepart-status.is-success { color: var(--color-brand); font-weight: 700; }
.sparepart-status.is-error { color: var(--color-danger); font-weight: 700; }
.sparepart-scanner small { margin: 0; }
.sparepart-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.sparepart-results[hidden] { display: none; }
.sparepart-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--color-muted);
    border-radius: var(--cms-radius-control);
    background: #fff;
    color: #111;
    text-align: left;
    cursor: pointer;
}
.sparepart-result:hover, .sparepart-result:focus { border-color: var(--color-brand); outline: 0; }
.sparepart-result.is-selected { border-color: var(--color-brand); box-shadow: inset 0 0 0 1px var(--color-brand); background: #f0f9fb; }
.sparepart-result-copy { display: grid; gap: 6px; min-width: 0; }
.sparepart-result-copy > strong { font-size: 13px; line-height: 1.35; }
.sparepart-result-price { flex: 0 0 auto; color: var(--color-surface-dark); font-size: 14px; }
.sparepart-result-badges { display: flex; flex-wrap: wrap; gap: 5px; }
.sparepart-result-badge { padding: 3px 7px; border-radius: 999px; background: #e8e8e8; color: #444; font-size: 10px; font-weight: 800; }
.sparepart-result-badge.is-diagnostic, .sparepart-result-badge.is-stock { background: #dff3f7; color: #075f73; }
.sparepart-result-badge.is-unavailable { background: #f7e3e3; color: #8c1b1b; }
.sparepart-total { margin: 0; padding-top: 3px; color: var(--color-surface-dark); font-size: 14px; font-weight: 800; }

.admin-page .button {
    -webkit-appearance: none;
    appearance: none;
    min-height: var(--cms-field-height);
    padding: 0 18px;
    align-items: center;
    justify-content: center;
    border: 0;
    background: #e7e7e7;
    color: #111;
    -webkit-text-fill-color: #111;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 700;
    cursor: pointer;
}
.admin-form > .button, .stacked-form > .button { justify-self: start; }
.button-dark, .admin-page .button-dark { background: #111; color: #fff; -webkit-text-fill-color: #fff; }
.button-secondary, .admin-page .button-secondary { background: #e7e7e7; color: #111; -webkit-text-fill-color: #111; }
.text-button { appearance: none; border: 0; padding: 0; background: none; color: #076b84; font: 700 13px/1.4 Manrope, sans-serif; cursor: pointer; }
.text-button.danger, .admin-actions button { color: var(--color-danger); }
.form-actions { justify-content: flex-end; }
:is(.sticky-actions, .admin-page > form > .form-actions:last-child) { position: sticky; z-index: 10; bottom: 16px; width: max-content; max-width: 100%; justify-self: end; margin-left: auto; padding: 10px 12px; border: 1px solid #ddd; border-radius: var(--cms-radius-panel); background: rgba(255,255,255,.94); box-shadow: 0 8px 28px rgba(0,0,0,.12); backdrop-filter: blur(8px); transform: translateX(0); transition: transform .36s var(--motion-smooth); }
:is(.sticky-actions, .admin-page > form > .form-actions:last-child).is-back-to-top-overlapping { transform: translateX(var(--sticky-collision-shift, 0)); }

/* The card editor contains many repeated fields, so it uses a denser desktop layout. */
.admin-card-page { padding-top: 44px; }
.admin-card-page .admin-nav { margin-bottom: 40px; }
.admin-card-page .admin-toolbar { margin-bottom: 32px; }
.admin-card-page .admin-toolbar h1 { font-size: 52px; }
.admin-card-page .admin-form { gap: 16px; }
.admin-card-page .admin-form-section { padding: 20px; }
.admin-card-page .admin-form-section > h2 { margin-bottom: 16px; font-size: 22px; }
.admin-card-page [data-card-editor] > .admin-form-section:first-of-type .admin-field-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.admin-card-page .section-heading { margin-bottom: 16px; }
.admin-card-page .section-heading h2 { font-size: 22px; }
.admin-card-page .model-editors { gap: 16px; }
.admin-card-page .model-editor-content { gap: 14px; padding: 17px; }
.admin-card-page .repair-editors { gap: 10px; }
.admin-card-page .repair-editor-content { gap: 11px; padding: 14px; }
.admin-card-page .admin-field-grid { gap: 11px; }
.admin-card-page .field-span-full { grid-column: 1 / -1; }
.model-sparepart-cache-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px 10px; }
.model-sparepart-cache-control > label { min-width: 0; }
.model-sparepart-cache-status { grid-column: 1 / -1; margin: 0; color: #666; font-size: 12px; line-height: 1.45; }
.model-sparepart-cache-status.is-loading { color: #555; }
.model-sparepart-cache-status.is-success { color: var(--color-brand); font-weight: 700; }
.model-sparepart-cache-status.is-error { color: var(--color-danger); font-weight: 700; }
.admin-model-scan-action { --admin-action-label-width: 100px; --admin-action-width: 152px; }
.admin-page .button.is-scanning svg { animation: admin-spin .8s linear infinite; }
.admin-card-page .admin-form label { gap: 5px; font-size: 13px; }
.admin-card-page .admin-form input,
.admin-card-page .admin-form select { min-height: 40px; padding: 9px 10px; font-size: 14px; }
.admin-card-page .admin-form input:not([type="hidden"]):not([type="checkbox"]),
.admin-card-page .admin-form select {
    box-sizing: border-box;
    height: 40px;
    min-height: 40px;
    max-height: 40px;
}
.admin-card-page .field-note { color: #777; font-weight: 500; }
.admin-card-page input[data-repair-description][readonly] { border-color: #d5d5d5; background: #f1f1f1; color: #555; cursor: default; }
.admin-card-page input[data-repair-description][readonly]:focus { outline: 0; border-color: #d5d5d5; }
.admin-card-page input[data-card-sort-order][readonly] { border-color: #d5d5d5; background: #f1f1f1; color: #555; cursor: default; }
.admin-card-page .admin-form select {
    appearance: none;
    padding-right: 38px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23221737' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px auto;
    cursor: pointer;
}
.admin-card-page .admin-form .check { min-height: 39px; }
.admin-card-page .price-editor-grid { gap: 10px; }
.admin-card-page .price-editor-grid fieldset { gap: 9px; padding: 11px; }
.admin-card-page .repair-price-options {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
}
.admin-card-page .repair-price-option {
    justify-self: start;
    min-height: 30px;
    padding: 3px 0;
    color: var(--color-surface-dark);
    cursor: pointer;
}
.admin-card-page .repair-price-option input { width: 17px; height: 17px; accent-color: var(--color-brand); cursor: pointer; }
.admin-card-page .sparepart-scanner { margin-top: 0; padding: 12px 14px; }
.admin-card-page .sparepart-scanner-content { gap: 9px; margin-top: 12px; }
.admin-card-page .sparepart-component { gap: 9px; padding: 12px; }
.admin-card-page .sparepart-add-component { justify-self: end; }
.admin-card-page .sparepart-source-grid { gap: 9px; }
.admin-card-page .sticky-actions { justify-self: end; width: max-content; bottom: 10px; padding: 10px 12px; }
.admin-card-page .admin-card-control-action {
    --admin-action-label-width: 120px;
    --admin-action-width: 172px;
    border-radius: 999px;
}
.admin-repeat-control-action {
    --admin-action-label-width: 76px;
    --admin-action-width: 128px;
}

.admin-media-field { display: grid; gap: 5px; min-width: 0; }
.admin-focus-target { animation: admin-focus-target 1.8s ease both; }
@keyframes admin-focus-target {
    0%, 100% { box-shadow: 0 0 0 0 rgba(9,123,149,0); }
    25%, 70% { box-shadow: 0 0 0 4px rgba(9,123,149,.22); }
}
.admin-media-field-label { font-size: 13px; font-weight: 700; }
.admin-media-field-row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 10px; align-items: start; min-width: 0; }
.admin-media-selection { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 62px; padding: 10px 12px; border: 1px solid #d4d4d4; border-radius: var(--cms-radius-control); background: #fff; }
.admin-media-preview { appearance: none; display: grid; place-items: center; box-sizing: border-box; width: 96px; height: 62px; overflow: hidden; padding: 5px; border: 1px solid #dedede; border-radius: var(--cms-radius-control, 12px); background: #f1f0ee; color: #777; font: 600 10px/1.2 Manrope, sans-serif; text-align: center; cursor: pointer; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.admin-media-preview img { display: block; width: auto; height: auto; max-width: 100%; max-height: 50px; object-fit: contain; object-position: center; }
.admin-media-preview:hover,
.admin-media-preview:focus-visible { border-color: var(--color-brand); background: #eef8fa; box-shadow: 0 0 0 3px rgba(9,123,149,.12); outline: 0; }
.admin-media-selection-copy { min-width: 0; }
.admin-media-selection-copy strong, .admin-media-selection-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-media-selection-copy small { margin-top: 4px; color: #777; }
.admin-media-selection-actions { display: flex; align-items: center; gap: 8px; }
.admin-media-dialog { --cms-field-height: var(--control-height, 40px); box-sizing: border-box; width: min(1120px, calc(100vw - 40px)); max-height: min(820px, calc(100vh - 40px)); padding: 28px; border: 1px solid #dedede; border-radius: var(--radius-panel, 20px); outline: 0; background: #f3f2f0; box-shadow: 0 24px 70px rgba(0,0,0,.28); color: #111; font: 400 15px/1.5 Manrope, sans-serif; }
.admin-media-dialog:focus,
.admin-media-dialog:focus-visible { outline: 0; }
.admin-media-dialog::backdrop { background: rgba(34,23,55,.58); backdrop-filter: blur(5px); }
.admin-media-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.admin-media-dialog-header h2 { margin: 0; }
.admin-media-dialog .button.admin-danger-action.admin-media-dialog-close {
    --admin-action-width: 80px;
    --admin-action-label-width: 36px;
    flex: 0 0 auto;
    align-self: flex-start;
    display: inline-flex !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    overflow: hidden;
    padding: 0 9px !important;
    border-radius: 999px;
    border-color: var(--color-danger);
    background: #fff1f1;
    color: var(--color-danger);
    -webkit-text-fill-color: var(--color-danger);
    font: 700 14px/1.2 Manrope, sans-serif;
    transition: width var(--motion-duration, .28s) var(--motion-smooth, ease), background-color .18s ease;
}
.admin-media-dialog .button.admin-danger-action.admin-media-dialog-close:hover,
.admin-media-dialog .button.admin-danger-action.admin-media-dialog-close:focus-visible {
    width: 80px !important;
    border-color: var(--color-danger);
    background: #f7dddd;
    color: var(--color-danger);
    -webkit-text-fill-color: var(--color-danger);
}
.admin-media-dialog-close svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; }
.admin-media-dialog-close .admin-action-label { display: inline-block; flex: 0 0 auto; max-width: 0; overflow: hidden; opacity: 0; transform: translateX(-7px); transition: max-width var(--motion-duration, .28s) var(--motion-smooth, ease), opacity .2s ease, transform var(--motion-duration, .28s) var(--motion-smooth, ease); }
.admin-media-dialog .admin-media-dialog-close:hover .admin-action-label,
.admin-media-dialog .admin-media-dialog-close:focus-visible .admin-action-label { max-width: 36px !important; opacity: 1; transform: translateX(0); }
.admin-media-search { display: grid; gap: 7px; margin-bottom: 18px; font-weight: 700; }
.admin-media-search input { appearance: none; box-sizing: border-box; width: 100%; height: var(--cms-field-height); padding: 10px 12px; border: 1px solid #bdbdbd; border-radius: var(--radius-control, 12px); outline: 0; background: #fff; color: #111; font: 400 14px/1.4 Manrope, sans-serif; }
.admin-media-search input:focus { border-color: var(--color-brand); box-shadow: 0 0 0 2px rgba(9,123,149,.16); }
.admin-media-dialog .admin-media-picker-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; max-height: 570px; overflow-y: auto; margin: 0; padding: 3px 6px 10px 3px; }
.admin-media-picker-card { appearance: none; display: grid; grid-template-rows: 150px auto; min-width: 0; overflow: hidden; padding: 0; border: 1px solid rgba(203,203,203,.55); border-radius: var(--radius-panel, 16px); background: #fff; color: #111; text-align: left; cursor: pointer; }
.admin-media-picker-image { display: grid; min-width: 0; place-items: center; padding: 12px; background: #f8f8f8; }
.admin-media-picker-card img { display: block; width: 100%; height: 126px; object-fit: contain; }
.admin-media-picker-card > .admin-media-picker-caption { display: block; min-width: 0; padding: 14px; }
.admin-media-picker-card strong, .admin-media-picker-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-media-picker-card strong { font-size: 12px; line-height: 1.35; }
.admin-media-picker-card small { margin-top: 4px; color: #666; font-size: 11px; line-height: 1.3; }
.admin-media-empty { padding: 30px; text-align: center; color: #777; }

.admin-table-wrap { overflow-x: auto; border: 1px solid #ddd; border-radius: var(--cms-radius-panel); background: #fff; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid #e2e2e2; vertical-align: middle; }
.admin-table th { font-size: 13px; line-height: 1.3; font-weight: 700; }
.admin-table td { font-size: 14px; line-height: 1.45; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-operations-section .admin-table tbody tr { transition: opacity .22s var(--motion-smooth), transform .22s var(--motion-smooth); }
.admin-operations-section .admin-table tbody tr.is-dismissing { opacity: 0; transform: translateX(12px); pointer-events: none; }
.admin-table tbody tr, .admin-device-type-row { transition: opacity .22s var(--motion-smooth), transform .22s var(--motion-smooth); }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.admin-table tbody tr.is-dismissing, .admin-device-type-row.is-dismissing { opacity: 0; transform: translateX(12px); pointer-events: none; }
.admin-section-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.admin-section-actions form { margin: 0; }
.admin-card-table { table-layout: fixed; }
.admin-card-table .admin-card-order-column { width: 9%; }
.admin-card-table .admin-card-title-column { width: 33%; }
.admin-card-table .admin-card-models-column { width: 15%; }
.admin-card-table .admin-card-status-column { width: 23%; }
.admin-card-table .admin-card-actions-column { width: 20%; }
.admin-card-table td:nth-child(4) { vertical-align: middle; }
.admin-card-scan-warning { display: inline-flex; align-items: center; gap: 6px; margin-top: 7px; padding: 4px 8px; border: 1px solid #e4abab; border-radius: 999px; background: #fae8e8; color: #8b2020; font-size: 11px; line-height: 1.2; font-weight: 800; text-decoration: none; }
.admin-card-scan-warning:hover, .admin-card-scan-warning:focus-visible { border-color: #c96666; background: #f7dada; text-decoration: none; }
.admin-card-scan-warning svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sparepart-status.is-error { color: #8b2020; font-weight: 700; }
.admin-category-card-lists { display: grid; gap: 32px; }
.admin-category-card-list { display: grid; gap: 12px; }
.admin-category-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.admin-category-card-heading > div { display: flex; align-items: baseline; gap: 11px; }
.admin-category-card-heading h2 { margin: 0; font-size: 24px; }
.admin-category-card-heading span { color: #666; font-size: 13px; font-weight: 700; }
.admin-role-badge { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: #ececec; color: #555; font-size: 12px; font-weight: 700; }
.admin-role-badge.is-super { background: #dff3f7; color: #075f73; }
.admin-category-card-heading .button { font-size: 13px; }
.admin-empty-state { margin: 0; padding: 22px; border: 1px dashed #cfcfcf; border-radius: var(--cms-radius-panel); background: rgba(255,255,255,.55); color: #666; }
/* Shared CMS table alignment and animated row actions. */
.admin-actions { white-space: nowrap; text-align: right; }
.admin-table th:last-child { text-align: right; }
.admin-card-table th:first-child,
.admin-card-table td:first-child { text-align: center; }
.admin-card-table th:nth-child(3),
.admin-card-table td:nth-child(3),
.admin-card-table th:nth-child(4),
.admin-card-table td:nth-child(4) { text-align: center; }
.admin-card-table td:nth-child(4) .status-toggle-form { display: flex; justify-content: center; }
.admin-account-table th:nth-child(3),
.admin-account-table td:nth-child(3) { text-align: center; }
.admin-table td.admin-actions { display: table-cell; text-align: right; }
.admin-actions > a, .admin-actions > form { display: inline-flex; vertical-align: middle; }
.admin-actions > a.admin-icon-action { display: inline-grid; place-items: center; }
.admin-table td.admin-actions > * + * { margin-left: 8px; }
.admin-actions form { margin-block: 0; }
.admin-actions button { appearance: none; border: 0; padding: 0; background: none; font: inherit; cursor: pointer; }
.admin-icon-action,
.admin-actions button.admin-icon-action {
    display: inline-grid;
    width: 36px;
    height: 36px;
    padding: 0;
    place-items: center;
    border: 1px solid #d4d4d4;
    border-radius: 999px;
    background: #fff;
    color: var(--color-surface-dark);
    cursor: pointer;
}
.admin-icon-action svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.admin-nav-icon { display: inline-grid !important; width: 38px; height: 38px; padding: 0 !important; place-items: center; border-radius: var(--cms-radius-control); }
.admin-nav-icon svg, .nav-icon-action svg, .auth-icon-submit svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.nav-icon-action { display: inline-grid !important; width: 36px; height: 36px; padding: 0 !important; place-items: center; border-radius: 50%; }
.admin-login .auth-icon-submit {
    display: inline-grid !important;
    width: 52px;
    height: 52px;
    padding: 0 !important;
    place-items: center;
    align-self: start;
    justify-self: start;
}
.auth-icon-submit svg { width: 23px; height: 23px; }
.admin-page .admin-expand-action { justify-content: flex-start; }
.admin-login .admin-expand-action { width: var(--cms-field-height); justify-content: flex-start; justify-self: start; }
.admin-login .auth-login-action {
    --admin-action-label-width: 53px;
    --admin-action-width: 111px;
    border: 0;
    justify-self: end;
}
.admin-page .admin-form-action,
.admin-form > .admin-form-action,
.stacked-form > .admin-form-action,
.admin-login .admin-form-action { justify-self: end; }
.admin-cancel-action { color: var(--color-surface-dark); }
.admin-back-action {
    --admin-action-label-width: 132px;
    --admin-action-width: 184px;
    color: var(--color-surface-dark);
}
.admin-page .button.admin-danger-action,
.admin-page .button.admin-danger-action:hover,
.admin-page .button.admin-danger-action:focus,
.admin-page .button.admin-danger-action:focus-visible {
    border-radius: 999px;
    border: 1px solid var(--color-danger);
    background: #fff1f1;
    color: var(--color-danger);
    -webkit-text-fill-color: var(--color-danger);
}
.admin-page .button.admin-edit-action,
.admin-page .button.admin-edit-action:hover,
.admin-page .button.admin-edit-action:focus,
.admin-page .button.admin-edit-action:focus-visible {
    border-radius: 999px;
    border: 1px solid var(--color-brand);
    background: #eef8fa;
    color: var(--color-brand);
    -webkit-text-fill-color: var(--color-brand);
}
.admin-page .button.admin-edit-action:hover,
.admin-page .button.admin-edit-action:focus,
.admin-page .button.admin-edit-action:focus-visible { background: #dff3f7; }
.admin-page .button.admin-danger-action:hover,
.admin-page .button.admin-danger-action:focus,
.admin-page .button.admin-danger-action:focus-visible {
    border-color: var(--color-danger);
    background: #fff1f1;
}
.admin-page .admin-cron-status { display: inline-flex; align-items: center; justify-content: flex-end; gap: 9px; line-height: 1.35; }
.admin-cron-status > span { display: block; width: 9px; min-width: 9px; max-width: 9px; height: 9px; min-height: 9px; max-height: 9px; flex: 0 0 9px; align-self: center; border-radius: 50%; background: #8b8b8b; box-shadow: 0 0 0 4px rgba(139,139,139,.12); }
.admin-cron-status.is-active > span { background: #2d8a4e; box-shadow: 0 0 0 4px rgba(45,138,78,.14); }
.admin-cron-status.is-running > span { background: var(--color-brand); box-shadow: 0 0 0 4px rgba(9,123,149,.14); animation: admin-cron-pulse 1.2s ease-in-out infinite; }
.admin-cron-status.is-error { color: var(--color-danger); }
.admin-cron-status.is-error > span { background: var(--color-danger); box-shadow: 0 0 0 4px rgba(161,15,15,.12); }
@keyframes admin-cron-pulse { 50% { transform: scale(.65); opacity: .55; } }
@keyframes admin-spin { to { transform: rotate(360deg); } }
.admin-icon-action:hover, .admin-icon-action:focus { border-color: var(--color-brand); background: #eef8fa; color: var(--color-brand); outline: 0; }
.admin-icon-action.is-danger { color: var(--color-danger); }
.admin-icon-action.is-danger:hover, .admin-icon-action.is-danger:focus { border-color: var(--color-danger); background: #fff1f1; color: var(--color-danger); }
.repeat-toolbar > .editor-icon-actions { display: flex; flex-wrap: nowrap; gap: 7px; }
.status-toggle-form { margin: 0; }
.admin-visibility-toggle {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 3px;
    border: 0;
    background: none;
    color: #666;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.admin-visibility-toggle i {
    position: relative;
    display: block;
    width: 46px;
    height: 26px;
    border-radius: 999px;
    background: var(--color-muted);
    transition: background-color .18s ease;
}
.admin-visibility-toggle i::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,.18);
    transition: transform .18s ease;
}
.admin-visibility-toggle.is-active { color: var(--color-brand); }
.admin-visibility-toggle.is-active i { background: var(--color-brand); }
.admin-visibility-toggle.is-active i::after { transform: translateX(20px); }
.admin-visibility-toggle:hover i { box-shadow: 0 0 0 2px rgba(9,123,149,.18); }
.admin-visibility-toggle:focus-visible { outline: 2px solid var(--color-brand); outline-offset: 3px; border-radius: 6px; }
.admin-visibility-field { position: relative; width: max-content; color: #111; }
.admin-visibility-field.is-active { color: var(--color-brand); }
.admin-field-grid > .admin-visibility-field { align-self: start; min-height: var(--cms-field-height); }
.repair-price-options .admin-visibility-field { min-height: 32px; }
.admin-visibility-field input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
.admin-visibility-field:focus-within { outline: 2px solid var(--color-brand); outline-offset: 3px; border-radius: 6px; }

.admin-search { display: grid; gap: 7px; width: min(520px, 100%); margin: 0 0 24px; }
.admin-search > label { font-size: 13px; font-weight: 700; }
.admin-search > div { display: flex; align-items: center; gap: 8px; }
.admin-search input,
.admin-search select {
    flex: 1 1 auto;
    min-width: 0;
    height: var(--cms-field-height);
    min-height: var(--cms-field-height);
    padding: 10px 12px;
    border: 1px solid #bdbdbd;
    border-radius: var(--cms-radius-control);
    background: #fff;
    color: #111;
    font: 400 14px/1.4 Manrope, sans-serif;
}
.admin-search input:focus,
.admin-search select:focus { outline: 2px solid var(--color-brand); outline-offset: 1px; border-color: var(--color-brand); }

.media-upload { margin-bottom: 32px; }
.media-upload p { margin: 0; color: #666; font-size: 13px; }
.media-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.media-grid figure { margin: 0; overflow: hidden; border: 1px solid rgba(203,203,203,.38); border-radius: var(--cms-radius-panel); background: #fff; }
.media-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; padding: 12px; object-fit: contain; background: #f8f8f8; }
.media-grid figcaption { display: grid; gap: 9px; padding: 14px; font-size: 12px; }
.media-file-details { display: grid; gap: 4px; min-width: 0; }
.media-file-details code { overflow-wrap: anywhere; font-size: 12px; font-weight: 700; }
.media-resolution { color: #666; font-size: 11px; line-height: 1.3; }
.media-grid figcaption button { justify-self: start; }
.admin-two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 24px; }
.stacked-form { display: grid; gap: 16px; }

@media (max-width: 850px) {
    .admin-dashboard-grid, .media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .price-editor-grid, .admin-two-column { grid-template-columns: 1fr; }
    .admin-card-page [data-card-editor] > .admin-form-section:first-of-type .admin-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-sparepart-account { grid-template-columns: 1fr; align-items: stretch; }
}

@media (max-width: 650px) {
    .admin-media-field-row { grid-template-columns: 76px minmax(0, 1fr); }
    .admin-media-selection { grid-template-columns: minmax(0, 1fr); }
    .admin-media-preview { width: 76px; height: 62px; }
    .admin-media-selection-actions { grid-column: 1 / -1; justify-content: flex-end; }
    .admin-media-dialog { width: calc(100vw - 20px); max-height: calc(100vh - 20px); padding: 18px; }
    .admin-media-picker-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-page, .admin-card-page { padding: 28px 16px calc(56px + env(safe-area-inset-bottom)); }
    .admin-page h1, .admin-card-page .admin-toolbar h1 { font-size: clamp(34px, 10vw, 40px); }
    .admin-nav, .admin-card-page .admin-nav {
        flex-wrap: nowrap;
        gap: 5px;
        margin: 0 -16px 28px;
        padding: 8px 16px;
        overflow-x: auto;
        border-inline: 0;
        border-radius: 0;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .admin-nav::-webkit-scrollbar { display: none; }
    .admin-nav a { flex: 0 0 auto; scroll-snap-align: start; }
    .admin-price-refresh { align-items: stretch; flex-direction: column; }
    .admin-price-refresh form { justify-items: stretch; }
    .admin-price-refresh form small { text-align: center; white-space: normal; }
    .sparepart-account-form { grid-template-columns: 1fr; }
    .admin-sparepart-account { padding-top: 52px; }
    .admin-toolbar, .section-heading, .repeat-toolbar { align-items: stretch; flex-direction: column; gap: 14px; }
    .admin-feedback-actions { align-items: stretch; }
    .admin-toolbar > .admin-toolbar-actions, .form-actions, .admin-section-actions { justify-content: flex-end; flex-wrap: wrap; }
    .repair-detail-toolbar { align-items: center; flex-direction: row; }
    .admin-field-grid.two-columns, .admin-field-grid.three-columns, .media-grid, .admin-dashboard-grid { grid-template-columns: 1fr; }
    .admin-card-page [data-card-editor] > .admin-form-section:first-of-type .admin-field-grid { grid-template-columns: 1fr; }
    .model-sparepart-cache-control { grid-template-columns: 1fr; }
    .model-sparepart-cache-control .admin-model-scan-action { justify-self: end; }
    .price-editor-grid fieldset { grid-template-columns: 1fr; }
    .admin-form-section { padding: 21px; }
    .category-editor, .faq-editor { padding: 18px; }
    .model-editor-summary { min-height: 62px; padding: 12px 14px; }
    .model-editor-content { padding: 14px; }
    .repair-summary-meta [data-repair-summary-without] { display: none; }
    .sparepart-scanner-heading, .sparepart-component-toolbar { align-items: stretch; flex-direction: column; }
    .sparepart-scanner-summary { align-items: flex-start; }
    .sparepart-source-grid { grid-template-columns: 1fr; }
    .sparepart-results { grid-template-columns: 1fr; }
    .sparepart-result { align-items: flex-start; }
    .admin-category-card-heading { align-items: stretch; flex-direction: column; }
    .admin-category-card-heading .button { align-self: flex-start; }
    .admin-card-table { table-layout: auto; }
    .admin-card-table col { width: auto; }
    .admin-table-wrap { max-width: 100%; border-radius: var(--cms-radius-nested); -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain; }
    .admin-table { min-width: 680px; }
    .admin-card-table { min-width: 620px; }
    .admin-table th, .admin-table td { padding: 12px 13px; }
    .admin-dashboard-grid a { min-height: 150px; padding: 21px; }
    .admin-dashboard-grid strong { font-size: 28px; }
    .admin-price-refresh, .admin-sparepart-account, .admin-operations-card, .admin-operations-section { padding: 20px; }
    .admin-login { padding: 34px 26px; border-radius: var(--cms-radius-panel); }
    .auth-only .admin-wrap { padding: 20px; }
    .admin-login h1 { font-size: 40px; }
    .admin-media-dialog { border-radius: var(--cms-radius-panel); }
}
@media (max-width: 420px) {
    .admin-media-picker-grid { grid-template-columns: 1fr; }
    .admin-media-picker-card { grid-template-rows: 128px auto; }
    .admin-media-picker-card img { height: 104px; }
    .admin-form-section { padding: 18px; }
    .admin-operations-section { padding: 18px; }
}
.admin-operations-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5,24px);margin:32px 0}.admin-operations-card,.admin-operations-section{background:#fff;border:1px solid #d9d9d9;border-radius:var(--radius-card,22px);padding:24px}.admin-operations-section{margin:24px 0}.admin-health-list,.admin-backup-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.admin-health-list li{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center}.admin-health-dot{width:10px;height:10px;border-radius:50%;background:#b31212}.admin-health-dot.is-ok{background:#18864b}.admin-metric-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.admin-metric-list div{background:#f5f4f2;border-radius:14px;padding:14px}.admin-metric-list dt{color:#6d6a68;font-size:.8rem}.admin-metric-list dd{margin:4px 0 0;font-size:1.4rem;font-weight:700}.admin-backup-list li{display:flex;flex-direction:column;border-bottom:1px solid #e5e3e1;padding-bottom:10px}.admin-job-status,.admin-role-badge{display:inline-flex;border-radius:999px;padding:5px 10px;background:#eceaf3;font-weight:700;font-size:.78rem}.admin-job-status.is-completed{background:#dff4e5;color:#176532}.admin-job-status.is-failed{background:#fbe1e1;color:#a20d0d}.admin-job-status.is-running,.admin-job-status.is-queued{background:#ddf3f8;color:#097b95}.admin-table-subline{display:block;color:#777;margin-top:4px}.admin-error-copy{color:#a20d0d}.admin-empty-state{background:#fff;border:1px solid #d9d9d9;border-radius:var(--radius-card,22px);padding:24px}.admin-global-search{max-width:900px;margin:28px 0}.admin-search-results{margin-top:32px}
.admin-operations-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5,24px);margin:32px 0}.admin-operations-card,.admin-operations-section{background:#fff;border:1px solid #d9d9d9;border-radius:var(--radius-card,22px);padding:24px}.admin-operations-section{margin:24px 0}.admin-health-list,.admin-backup-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.admin-health-list li{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center}.admin-health-dot{width:10px;height:10px;border-radius:50%;background:#b31212}.admin-health-dot.is-ok{background:#18864b}.admin-metric-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.admin-metric-list div{background:#f5f4f2;border-radius:14px;padding:14px}.admin-metric-list dt{color:#6d6a68;font-size:.8rem}.admin-metric-list dd{margin:4px 0 0;font-size:1.4rem;font-weight:700}.admin-backup-list li{display:flex;flex-direction:column;border-bottom:1px solid #e5e3e1;padding-bottom:10px}.admin-backup-action{display:flex;justify-content:flex-end;margin-top:18px}.admin-job-status,.admin-role-badge{display:inline-flex;border-radius:999px;padding:5px 10px;background:#eceaf3;font-weight:700;font-size:.78rem}.admin-job-status.is-completed{background:#dff4e5;color:#176532}.admin-job-status.is-failed{background:#fbe1e1;color:#a20d0d}.admin-job-status.is-running,.admin-job-status.is-queued{background:#ddf3f8;color:#097b95}.admin-table-subline{display:block;color:#777;margin-top:4px}.admin-error-copy{color:#a20d0d}.admin-empty-state{background:#fff;border:1px solid #d9d9d9;border-radius:var(--radius-card,22px);padding:24px}.admin-global-search{max-width:900px;margin:28px 0}.admin-search-results{margin-top:32px}
@media(max-width:1000px){.admin-operations-grid{grid-template-columns:1fr}.admin-health-list li{grid-template-columns:12px 1fr}.admin-health-list li>span:last-child{grid-column:2}}
.admin-backup-card{display:flex;flex-direction:column}.admin-backup-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:auto;padding-top:18px}.admin-backup-actions form{margin:0}
.admin-change-badge.is-price { background: #ddf3f8; color: #076b84; }
.admin-change-badge.is-stock-in { background: #dff4e5; color: #176532; }
.admin-change-badge.is-stock-out { background: #fff0d5; color: #8a5200; }
.admin-change-badge.is-discontinued { background: #fbe1e1; color: #a20d0d; }
.admin-backup-history-action{--admin-action-width:204px;--admin-action-label-width:152px;flex:0 0 auto}
.admin-case-table td small{display:block;color:#777;margin-top:4px}.admin-case-table td .admin-case-customer-org{margin:0 0 4px}.admin-case-search{width:min(850px,100%)}.admin-case-search>div{align-items:stretch}.admin-case-search select{min-width:190px}.admin-device-message{margin:0 0 20px;color:#6d6a68}.admin-case-footnotes{margin:18px 0 0;color:#6d6a68}.admin-add-row{display:flex;justify-content:flex-end;margin-top:18px}.admin-add-at-end{width:max-content;max-width:100%;margin-left:auto}.admin-case-form .section-heading{margin-bottom:20px}.admin-device-read{contain:paint;isolation:isolate}.admin-page .admin-device-read.is-scanning svg{transform-box:fill-box;transform-origin:center;backface-visibility:hidden;will-change:transform;animation:admin-device-icon-spin .8s linear infinite}.case-status-ready,.case-status-completed{background:#dff4e5;color:#176532}.case-status-in_progress,.case-status-diagnosis{background:#ddf3f8;color:#076b84}.case-status-awaiting_parts{background:#fff0d5;color:#8a5200}.case-status-cancelled{background:#fbe1e1;color:#a20d0d}
@keyframes admin-device-icon-spin{to{transform:rotate(1turn)}}
.admin-device-message strong{font-weight:800}
.admin-device-message.is-recovery strong{color:#a35a00}
.admin-device-message.is-dfu strong{color:#b31212}
.admin-case-devices{display:grid;gap:22px}.admin-case-device{padding:24px;border:1px solid #d9d8d6;border-radius:22px;background:#fff}.admin-case-device-toolbar{margin-bottom:18px}.admin-case-device-toolbar h3{margin:2px 0 0;font-size:24px}.admin-case-device-toolbar .eyebrow{margin:0}.admin-case-device-toolbar>div:last-child{display:flex;align-items:center;gap:10px}.admin-case-device [data-device-remove][hidden]{display:none}.admin-case-device .admin-device-message{margin-bottom:18px}
.admin-case-device.is-collapsed .admin-case-device-toolbar{margin-bottom:0}.admin-device-toggle svg{transition:transform .2s ease}.admin-case-device.is-collapsed .admin-device-toggle svg{transform:rotate(180deg)}.admin-case-device.is-saved{border-color:#a9d9b8}.admin-case-device.is-saved .admin-device-message{color:#176532}
.admin-toolbar-actions,.admin-device-type-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-device-type-list{display:grid;gap:14px}.admin-device-type-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(150px,1fr) auto;gap:16px;align-items:end;padding:18px;border:1px solid #d9d8d6;border-radius:18px}.admin-device-type-row label{margin:0}.admin-device-type-actions{justify-content:flex-end}@media(max-width:760px){.admin-device-type-row{grid-template-columns:1fr}.admin-device-type-actions{justify-content:flex-start}}
.admin-device-types-page .admin-form-section + .admin-form-section{margin-top:24px}.admin-device-types-page .admin-field-grid{column-gap:24px;row-gap:20px}.admin-device-types-page .field-span-full{grid-column:1/-1}.admin-device-types-page .form-actions{margin-top:4px}
@media(max-width:700px){.admin-case-search>div{flex-wrap:wrap}.admin-case-search input{flex:1 1 100%}.admin-case-search select{flex:1 1 auto;min-width:0}}
.admin-device-catalog-metrics{margin:20px 0}.admin-device-catalog-metrics .admin-metric-date{font-size:1rem;line-height:1.4}.admin-operations-section[data-device-catalog-panel] .admin-table-wrap{margin-top:20px}
