.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);
    --cms-color-page: #f3f2f0;
    --cms-color-surface: #fff;
    --cms-color-border: #dedede;
    --cms-color-control-border: #bdbdbd;
    --cms-color-surface-subtle: #f1f1f1;
    --cms-color-text-muted: #666;
    --cms-panel-padding: 24px;
    --cms-layout-gap: 20px;
    --cms-page-header-gap: 24px;
    --cms-page-header-margin: 32px;
}

/* 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 var(--cms-color-control-border);
    border-radius: var(--cms-radius-control);
    background: var(--cms-color-surface);
    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: var(--cms-color-surface-subtle); 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: var(--cms-color-page);
    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 var(--cms-color-border);
    border-radius: var(--cms-radius-panel);
    background: var(--cms-color-surface);
}

.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: var(--cms-color-text-muted); 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: var(--color-danger-surface); color: #8f1515; }

.admin-toolbar,
.admin-page-header { display: flex; align-items: center; justify-content: space-between; gap: var(--cms-page-header-gap); margin-bottom: var(--cms-page-header-margin); }
.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; }

/* Fælles CMS-byggeblokke. Sidespecifikke klasser kan stadig styre layoutet,
   men alle paneler og overskrifter arver samme grundform og farver. */
.admin-surface,
.admin-form-section,
.admin-operations-card,
.admin-operations-section,
.admin-table-wrap,
.admin-recent-case-list {
    border-color: var(--cms-color-border);
    border-radius: var(--cms-radius-panel);
    background: var(--cms-color-surface);
}

.admin-section-header,
.section-heading,
.admin-section-heading {
    display: flex;
    justify-content: space-between;
    gap: var(--cms-layout-gap);
}

.admin-section-header,
.section-heading { align-items: flex-start; margin-bottom: 20px; }
.admin-section-header h2,
.section-heading h2,
.admin-section-heading h2 { margin-top: 0; }

.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 var(--cms-color-border); border-radius: var(--cms-radius-panel); background: var(--cms-color-surface); }
.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-work-overview { margin: 0 0 28px; }
.admin-section-heading { align-items: end; margin: 0 0 16px; }
.admin-section-heading h2 { margin: 0; }
.admin-section-heading > a { color: var(--color-brand); font-size: 14px; font-weight: 800; }
.admin-work-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.admin-work-metric { position: relative; display: flex; min-height: 148px; padding: 20px; overflow: hidden; flex-direction: column; border: 1px solid var(--cms-color-border); border-radius: var(--cms-radius-panel); background: var(--cms-color-surface); }
.admin-work-metric::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; background: #bfc7ca; content: ''; }
.admin-work-metric.is-diagnosis::before, .admin-work-metric.is-progress::before { background: var(--color-brand); }
.admin-work-metric.is-awaiting::before { background: #d99a25; }
.admin-work-metric.is-ready::before { background: #2d9a58; }
.admin-work-metric strong { margin: 2px 0 12px; font-size: 34px; line-height: 1; font-variant-numeric: tabular-nums; }
.admin-work-metric span { font-size: 14px; font-weight: 800; line-height: 1.35; }
.admin-work-metric small { margin-top: auto; padding-top: 10px; color: #716e6b; font-size: 12px; line-height: 1.4; }
.admin-recent-cases { margin: 0 0 34px; }
.admin-recent-case-list { overflow: hidden; border: 1px solid var(--cms-color-border); border-radius: var(--cms-radius-panel); background: var(--cms-color-surface); }
.admin-recent-case-list > a { display: grid; grid-template-columns: minmax(230px, 1.5fr) minmax(85px, .45fr) minmax(135px, .7fr) minmax(130px, .65fr) 22px; min-height: 72px; padding: 13px 18px; align-items: center; gap: 16px; border-bottom: 1px solid #e7e5e2; }
.admin-recent-case-list > a:last-child { border-bottom: 0; }
.admin-recent-case-list > a:hover, .admin-recent-case-list > a:focus-visible { background: #f7fafb; }
.admin-recent-case-list > a > time, .admin-recent-case-list > a > span:nth-child(2) { color: #6f6c69; font-size: 13px; }
.admin-recent-case-list > a > svg { width: 18px; height: 18px; }
.admin-recent-case-identity { display: grid; gap: 3px; min-width: 0; }
.admin-recent-case-identity strong, .admin-recent-case-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-recent-case-identity small { color: #777; font-size: 12px; }
.admin-dashboard-shortcuts-heading { margin-top: 0; }

.admin-price-refresh {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 24px;
    padding: var(--cms-panel-padding);
    border: 1px solid var(--cms-color-border);
    border-radius: var(--cms-radius-panel);
    background: var(--cms-color-surface);
    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: var(--cms-panel-padding);
    border: 1px solid var(--cms-color-border);
    border-radius: var(--cms-radius-panel);
    background: var(--cms-color-surface);
}
.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 var(--cms-color-control-border); 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: var(--cms-layout-gap); width: min(680px, 100%); padding: var(--cms-panel-padding); border-radius: var(--cms-radius-panel); background: var(--cms-color-surface); }
.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 var(--cms-color-control-border);
    border-radius: var(--cms-radius-control);
    background: var(--cms-color-surface);
    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: var(--cms-panel-padding);
    border: 1px solid var(--cms-color-border);
    border-radius: var(--cms-radius-panel);
    background: var(--cms-color-surface);
}
.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-stacked-identity { display: grid; gap: 4px; }
.admin-stacked-identity.is-stacked { transform: translateY(-8px); }
.admin-table td .admin-stacked-identity small { margin: 0; color: #777; }
.admin-stacked-identity strong { display: block; }
.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; }
.repeat-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.section-heading h2 { margin-bottom: 7px; }
.section-heading p { margin: 0; color: var(--cms-color-text-muted); }
.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; }
.admin-device-note-grid { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.admin-device-note-grid > label { align-content: start; }
[data-device-computer-field][hidden] { display: none; }
.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: var(--color-info-text); }
.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: var(--color-info-text); 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 var(--cms-color-border); border-radius: var(--cms-radius-control); background: var(--cms-color-surface); }
.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 var(--cms-color-border); border-radius: var(--cms-radius-control, 12px); background: var(--cms-color-surface-subtle); 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 var(--cms-color-border, #dedede); border-radius: var(--radius-panel, 20px); outline: 0; background: var(--cms-color-page, #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 var(--cms-color-border); border-radius: var(--cms-radius-panel); background: var(--cms-color-surface); }
.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 var(--cms-color-border); border-radius: var(--cms-radius-panel); background: rgba(255,255,255,.55); color: var(--cms-color-text-muted); }
/* 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-visibility-field.is-disabled{color:#8a8682;cursor:not-allowed;opacity:.62}.admin-visibility-field.is-disabled i{box-shadow:none}

.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 var(--cms-color-control-border);
    border-radius: var(--cms-radius-control);
    background: var(--cms-color-surface);
    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: var(--cms-color-text-muted); 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 var(--cms-color-border); border-radius: var(--cms-radius-panel); background: var(--cms-color-surface); }
.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: var(--cms-color-text-muted); 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)); }
    .admin-work-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-recent-case-list > a { grid-template-columns: minmax(190px, 1fr) minmax(120px, auto) 22px; }
    .admin-recent-case-list > a > span:nth-child(2), .admin-recent-case-list > a > time { display: none; }
    .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-section-heading { align-items: flex-start; }
    .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, .admin-device-note-grid, .media-grid, .admin-dashboard-grid { grid-template-columns: 1fr; }
    .admin-work-metrics { grid-template-columns: 1fr; }
    .admin-work-metric { min-height: 125px; }
    .admin-recent-case-list > a { grid-template-columns: minmax(0, 1fr) auto 18px; padding: 13px 14px; gap: 10px; }
    .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:var(--color-subtle-surface);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:var(--color-success-surface);color:var(--color-success-text)}.admin-job-status.is-failed{background:var(--color-danger-surface);color:var(--color-danger-text)}.admin-job-status.is-running,.admin-job-status.is-queued{background:var(--color-info-surface);color:#097b95}.admin-table-subline{display:block;color:#777;margin-top:4px}.admin-error-copy{color:var(--color-danger-text)}.admin-empty-state{background:#fff;border:1px solid #d9d9d9;border-radius:var(--radius-card,22px);padding:24px}
.admin-integrations-page .admin-operations-grid{grid-template-columns:minmax(0,1fr)}.admin-integrations-page .admin-integration-summary-card{width:100%}
.admin-operations-card,.admin-operations-section{background:var(--cms-color-surface);border-color:var(--cms-color-border);border-radius:var(--cms-radius-panel);padding:var(--cms-panel-padding)}
.admin-operations-section .admin-empty-state{background:var(--cms-color-surface);border-color:var(--cms-color-border);border-radius:var(--cms-radius-panel);padding:var(--cms-panel-padding);color:var(--cms-color-text-muted)}
@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,.admin-maintenance-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-maintenance-status{display:grid;gap:10px;margin:0 0 18px}.admin-maintenance-status div{display:flex;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px solid #e5e3e1}.admin-maintenance-status dt{color:#6d6a68}.admin-maintenance-status dd{margin:0;text-align:right;font-weight:700}
.admin-change-badge.is-price { background: var(--color-info-surface); color: var(--color-info-text); }
.admin-change-badge.is-stock-in { background: var(--color-success-surface); color: var(--color-success-text); }
.admin-change-badge.is-stock-out { background: var(--color-warning-surface); color: var(--color-warning-text); }
.admin-change-badge.is-discontinued { background: var(--color-danger-surface); color: var(--color-danger-text); }
.admin-operations-section .admin-table td.admin-actions:has(> a.admin-expand-action:only-child) {
    position: relative;
    width: 64px;
    min-width: 64px;
}
.admin-operations-section .admin-table td.admin-actions > a.admin-expand-action:only-child {
    position: absolute;
    z-index: 1;
    top: 50%;
    right: 13px;
    translate: 0 -50%;
}
.admin-operations-section .admin-table td.admin-actions > a.admin-expand-action:only-child:hover,
.admin-operations-section .admin-table td.admin-actions > a.admin-expand-action:only-child:focus-visible {
    z-index: 4;
}
.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-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-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:var(--color-success-surface);color:var(--color-success-text)}.case-status-in_progress,.case-status-diagnosis{background:var(--color-info-surface);color:var(--color-info-text)}.case-status-awaiting_parts{background:var(--color-warning-surface);color:var(--color-warning-text)}.case-status-cancelled{background:var(--color-danger-surface);color:var(--color-danger-text)}
.admin-case-sheet-actions{display:flex;justify-content:flex-end;gap:12px;margin:0 0 24px}.admin-case-sheet-paper{display:grid;gap:24px;padding:36px;border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-panel);background:var(--cms-color-surface)}.admin-case-sheet-header,.admin-case-sheet-device>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.admin-case-sheet-header h1{margin-bottom:10px}.admin-case-sheet-header p:last-child{margin:0;color:var(--cms-color-text-muted)}.admin-case-sheet-section,.admin-case-sheet-device{padding-top:24px;border-top:1px solid var(--cms-color-border)}.admin-case-sheet-section:first-of-type{padding-top:0;border-top:0}.admin-case-sheet-device{display:grid;gap:18px;break-inside:avoid}.admin-case-sheet-device h2{margin:0}.admin-case-sheet-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.admin-case-sheet-facts>div{padding:13px 14px;border-radius:var(--cms-radius-nested);background:var(--cms-color-surface-subtle)}.admin-case-sheet-facts dt{color:var(--cms-color-text-muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.admin-case-sheet-facts dd{margin:4px 0 0;font-size:14px;font-weight:700;overflow-wrap:anywhere}.admin-case-sheet-tests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-case-sheet-tests>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-nested)}.admin-case-sheet-tests span{color:var(--cms-color-text-muted)}.admin-case-sheet-tests strong{max-width:70%;text-align:right;overflow-wrap:anywhere}.admin-case-sheet-tests .is-fault strong{color:var(--color-danger-text)}.admin-case-sheet-notes h3{margin:0 0 7px;font-size:14px}.admin-case-sheet-notes p{margin:0;color:#333;line-height:1.6}.admin-case-sheet-notes h3:not(:first-child){margin-top:18px}
@media(max-width:760px){.admin-case-sheet-paper{padding:22px}.admin-case-sheet-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-case-sheet-tests{grid-template-columns:1fr}.admin-case-sheet-actions{flex-wrap:wrap}}
@media print{@page{size:A4;margin:13mm}body{background:#fff}.site-header,.site-footer,.admin-page-footer,.admin-case-sheet>.admin-nav,.admin-case-sheet-actions{display:none!important}.admin-case-sheet{min-height:0;padding:0;background:#fff;font-size:10pt}.admin-case-sheet-paper{gap:16px;padding:0;border:0;border-radius:0}.admin-case-sheet-header h1{font-size:26pt}.admin-case-sheet-section,.admin-case-sheet-device{padding-top:16px}.admin-case-sheet-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.admin-case-sheet-facts>div{padding:8px;background:#f2f2f2;-webkit-print-color-adjust:exact;print-color-adjust:exact}.admin-case-sheet-tests{gap:7px}.admin-case-sheet-tests>div{padding:8px}.admin-role-badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.admin-case-customer-preview input[readonly]{border-color:#d9d9d9!important;background:var(--color-subtle-surface)!important;color:#6d6a68!important;-webkit-text-fill-color:#6d6a68;cursor:not-allowed;box-shadow:none;opacity:1}.admin-case-customer-preview input[readonly]:focus{outline:0;border-color:#d9d9d9!important}
@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-device-repeat-notice{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;margin:0 0 20px;padding:18px;border:1px solid #e7bd72;border-radius:16px;background:var(--color-warning-surface);color:#5e4218}.admin-device-repeat-notice[hidden]{display:none!important}.admin-device-repeat-notice .eyebrow{margin:0 0 3px;color:#8b5a0a}.admin-device-repeat-notice strong{display:block;font-size:16px}.admin-device-repeat-notice p{margin:4px 0 0}.admin-device-repeat-notice fieldset{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;border:0}.admin-device-repeat-notice legend{grid-column:1/-1;margin-bottom:8px;font-weight:800}.admin-device-repeat-notice fieldset label{position:relative;display:grid;gap:3px;padding:13px 14px 13px 42px;border:1px solid #d5b06c;border-radius:13px;background:#fff;cursor:pointer}.admin-device-repeat-notice fieldset input{position:absolute;top:15px;left:14px;width:17px;height:17px}.admin-device-repeat-notice fieldset span{font-weight:800}.admin-device-repeat-notice fieldset small{color:#6d6254}.admin-device-repeat-notice fieldset label:has(input:checked){border-color:#14829a;box-shadow:0 0 0 2px rgba(20,130,154,.14)}
.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-heading{min-width:0}.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;flex:0 0 auto;flex-wrap:nowrap;align-items:center;gap:10px}.admin-case-device-toolbar .admin-device-read{--admin-action-width:132px;--admin-action-label-width:80px}.admin-case-device-toolbar .admin-device-label{--admin-action-width:142px;--admin-action-label-width:90px}.admin-case-device-toolbar .admin-device-save{--admin-action-width:124px;--admin-action-label-width:72px}.admin-case-device-toolbar [data-device-remove]{--admin-action-width:132px;--admin-action-label-width:80px}.admin-case-device [data-device-remove][hidden],.admin-case-device [data-device-label][hidden]{display:none!important}.admin-case-device .admin-device-message{margin-bottom:18px}
.admin-device-pills{display:none;flex-wrap:wrap;gap:7px;margin-top:8px}.admin-case-device.is-collapsed .admin-device-pills{display:flex}.admin-device-pill{display:inline-flex;align-items:center;min-height:27px;padding:4px 9px;border:1px solid #d3d0cd;border-radius:999px;background:#f0efed;color:#5f5b58;font-size:12px;line-height:1.2;font-weight:700;white-space:nowrap}.admin-device-pill strong{font-weight:800}.admin-device-pill.is-success{border-color:#96d3a8;background:var(--color-success-surface);color:var(--color-success-text)}.admin-device-pill.is-danger{border-color:#eda5a5;background:var(--color-danger-surface);color:var(--color-danger-text)}.admin-device-pill.is-warning{border-color:#e8c378;background:var(--color-warning-surface);color:var(--color-warning-text)}.admin-device-pill.is-info{border-color:#79c5d5;background:var(--color-info-surface);color:var(--color-info-text)}
.admin-device-test-result-pills{display:none;flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px;padding:8px 9px;border-radius:11px;background:#f7f6f4}.admin-case-device.is-collapsed .admin-device-test-result-pills{display:flex}.admin-device-test-result-pills>small{margin-right:3px;color:#68635f;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.admin-device-test-result-pills>span{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:3px 7px;border:1px solid #d9d6d2;border-radius:999px;background:#fff;color:#393532;font-size:10px;line-height:1.2;font-weight:700}.admin-device-test-result-pills>span.is-fault{border-color:#e5aaaa;background:#fff8f8}.admin-device-test-result-pills em,.admin-device-test-result-pills i{font-style:normal}.admin-device-test-result-pills i{color:#a19b96}.admin-device-test-result-pills b{color:var(--color-success-text);font-size:9px;font-weight:900;letter-spacing:.025em;text-transform:uppercase}.admin-device-test-result-pills .is-fault b{color:var(--color-danger-text)}
.admin-device-pill.is-color-black{border-color:#101112;background:#202124;color:#fff}.admin-device-pill.is-color-graphite{border-color:#414347;background:#55585c;color:#fff}.admin-device-pill.is-color-white{border-color:#d9d7d3;background:#fff;color:#222}.admin-device-pill.is-color-silver{border-color:#c7cbce;background:#e3e6e8;color:#313438}.admin-device-pill.is-color-navy{border-color:#172943;background:#263b5b;color:#fff}.admin-device-pill.is-color-blue{border-color:#8ebada;background:#d8eafb;color:#164f70}.admin-device-pill.is-color-green{border-color:#9bcaa2;background:#dcefdc;color:#1e6637}.admin-device-pill.is-color-dark-green{border-color:#213d37;background:#31534b;color:#fff}.admin-device-pill.is-color-red{border-color:#d99a9a;background:#f5d7d7;color:#8c2020}.admin-device-pill.is-color-purple{border-color:#bea6d3;background:#e9def3;color:#5e347b}.admin-device-pill.is-color-pink{border-color:#d7aabe;background:#f4dfe8;color:#823e5b}.admin-device-pill.is-color-yellow{border-color:#ddc45b;background:#fff0ad;color:#795800}.admin-device-pill.is-color-gold{border-color:#cbb36d;background:#f2e3b9;color:#71520c}.admin-device-pill.is-color-orange{border-color:#d6a37d;background:#f6d9c2;color:#813f13}.admin-device-pill.is-color-brown{border-color:#bea28f;background:#e4d4c8;color:#603f2e}.admin-device-pill.is-color-titanium{border-color:#c4bcad;background:#e5e0d5;color:#514b40}
.admin-case-device.is-collapsed .admin-case-device-toolbar{margin-bottom:0}[data-device-toggle] svg{transition:transform .2s ease}.admin-case-device.is-collapsed [data-device-toggle] svg{transform:rotate(180deg)}.admin-case-device.is-saved{border-color:#a9d9b8}.admin-case-device.is-saved .admin-device-message{color:var(--color-success-text)}
.admin-device-tests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;margin-top:22px}.admin-device-test{border:1px solid #d9d8d6;border-radius:16px;background:#f8f7f5;overflow:hidden}.admin-device-test summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;font-weight:800;cursor:pointer;list-style:none}.admin-device-test summary::-webkit-details-marker{display:none}.admin-device-test summary:after{content:'+';order:3;font-size:22px;font-weight:400;line-height:1}.admin-device-test[open] summary:after{content:'−'}.admin-device-test-summary{padding:6px 9px;border-radius:999px;background:#eceae7;color:#676361;font-size:12px;line-height:1;white-space:nowrap}.admin-device-test-summary.is-complete{background:var(--color-success-surface);color:var(--color-success-text)}.admin-device-test-summary.is-fault{background:var(--color-danger-surface);color:var(--color-danger-text)}.admin-device-test-summary.is-partial{background:var(--color-warning-surface);color:var(--color-warning-text)}.admin-device-test-content{padding:0 18px 18px}.admin-device-test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-device-test-grid label{display:flex;flex-direction:column;gap:6px;margin:0}.admin-device-test-grid [data-device-test-item][hidden]{display:none}.admin-device-test-grid label>span{font-size:13px;font-weight:700}.admin-device-test-grid select{min-width:0}
@media(max-width:1050px){.admin-device-tests{grid-template-columns:1fr}}@media(max-width:620px){.admin-device-test-grid{grid-template-columns:1fr}.admin-device-test summary{align-items:flex-start;flex-wrap:wrap}.admin-device-test-summary{margin-left:auto}}
@media(max-width:650px){.admin-case-device-toolbar>div:last-child{align-self:flex-start}}
@media(max-width:650px){.admin-device-repeat-notice{grid-template-columns:1fr}.admin-device-repeat-notice>a{grid-row:2}.admin-device-repeat-notice fieldset{grid-template-columns:1fr}}
.admin-label-dialog{box-sizing:border-box;width:min(1240px,calc(100vw - 36px));max-height:calc(100vh - 36px);padding:26px;border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-panel);outline:0;background:var(--cms-color-page);color:var(--cms-color-text);box-shadow:0 28px 80px rgba(0,0,0,.3);font:400 14px/1.45 Manrope,sans-serif;overflow:auto}.admin-label-dialog::backdrop{background:rgba(34,23,55,.58);backdrop-filter:blur(5px)}.admin-label-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.admin-label-dialog-header .eyebrow{margin:0 0 3px}.admin-label-dialog-header h2{margin:0;font-size:30px}.admin-label-dialog-header p:last-child{margin:5px 0 0;color:var(--cms-color-text-muted)}.admin-label-dialog-layout{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(500px,1.1fr);align-items:start;gap:24px}.admin-label-preview-panel,.admin-label-controls{padding:22px;border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-nested);background:var(--cms-color-surface)}.admin-label-preview-panel{position:sticky;top:0}.admin-label-preview-stage{display:grid;place-items:center;min-height:0;padding:20px;border-radius:16px;background:#e9e7e4}.admin-label-preview-stage>[hidden]{display:none!important}.admin-label-preview-stage>img{display:block;width:100%;height:auto;max-height:540px;border-radius:10px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.14))}.admin-label-preview{box-sizing:border-box;display:flex;flex-direction:column;width:min(100%,520px);aspect-ratio:70/54;padding:14px 20px 12px;border:1px solid #cfcfcf;border-radius:10px;background:#fff;color:#000;box-shadow:0 8px 18px rgba(0,0,0,.13);font:400 10px/1.2 Helvetica,Arial,sans-serif;overflow:hidden}.admin-label-product{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.admin-label-product strong,.admin-label-section-title{font-weight:700}.admin-label-product span{text-align:right;overflow-wrap:anywhere}.admin-label-rule{height:1px;min-height:1px;margin:4px 0 6px;background:#111}.admin-label-columns{display:grid;grid-template-columns:minmax(92px,.78fr) minmax(0,1.22fr);gap:12px}.admin-label-keys,.admin-label-values{display:grid;grid-template-rows:repeat(7,minmax(0,1fr));gap:1px}.admin-label-values{text-align:right}.admin-label-values span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-label-section-title{margin-top:6px}.admin-label-specs .admin-label-keys,.admin-label-specs .admin-label-values{grid-template-rows:repeat(6,minmax(0,1fr))}.admin-label-notes{display:-webkit-box;flex:0 0 24px;height:24px;max-height:24px;margin:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:pre-line}.admin-label-identifiers{display:grid;flex:0 0 auto;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:auto;padding-top:5px;font-size:8px;line-height:1.1}.admin-label-identifiers span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-label-identifiers span:nth-child(2){text-align:center}.admin-label-identifiers span:last-child{text-align:right}.admin-label-preview-help{margin:14px 0 0;color:var(--cms-color-text-muted);font-size:12px;line-height:1.5}.admin-label-printer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-bottom:18px}.admin-label-printer-row label{margin:0}.admin-label-printer-row .button{white-space:nowrap}.admin-label-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-label-field-grid label{margin:0}.admin-label-field-grid .field-span-full{grid-column:1/-1}.admin-label-field-grid textarea{min-height:82px}.admin-label-warning{margin-top:16px;padding:12px 14px;border:1px solid #e8c378;border-radius:12px;background:var(--color-warning-surface);color:var(--color-warning-text);font-weight:700}.admin-label-dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.admin-label-dialog button[aria-busy=true]{opacity:.7;cursor:wait}@media(max-width:980px){.admin-label-dialog-layout{grid-template-columns:1fr}.admin-label-preview-panel{position:static}}@media(max-width:620px){.admin-label-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 16px);padding:18px}.admin-label-dialog-header h2{font-size:25px}.admin-label-dialog-layout{gap:16px}.admin-label-preview-panel,.admin-label-controls{padding:15px}.admin-label-preview-stage{padding:12px}.admin-label-preview{padding:10px 12px 8px;font-size:7px}.admin-label-columns{grid-template-columns:72px 1fr;gap:8px}.admin-label-field-grid,.admin-label-printer-row{grid-template-columns:1fr}.admin-label-dialog-actions{position:sticky;bottom:-18px;margin-right:-18px;margin-left:-18px;padding:14px 18px;background:var(--cms-color-page);border-top:1px solid var(--cms-color-border)}}
.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-label-dialog-layout{grid-template-columns:1fr;gap:20px}.admin-label-preview-panel{position:static;top:auto}.admin-label-preview-stage{box-sizing:border-box;width:min(100%,620px);margin-inline:auto}.admin-label-preview-help{width:min(100%,620px);margin-right:auto;margin-left:auto;text-align:center}
.admin-label-notes{flex:1 1 auto;height:auto;max-height:none;min-height:24px;-webkit-line-clamp:4}
.admin-case-device-count{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.case-intake-warranty{border:1px solid #e4a0a0;background:var(--color-danger-surface);color:var(--color-danger-text)}.case-intake-new{border:1px solid #79c5d5;background:var(--color-info-surface);color:var(--color-info-text)}
.admin-device-repeat-history{grid-column:1/-1;padding:12px 14px;border:1px solid rgba(139,90,10,.25);border-radius:13px;background:rgba(255,255,255,.62)}.admin-device-repeat-history[hidden]{display:none!important}.admin-device-repeat-history h4{margin:0 0 8px;font-size:13px}.admin-device-repeat-history ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.admin-device-repeat-history a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;color:inherit;text-decoration:none}.admin-device-repeat-history a:hover strong{text-decoration:underline}.admin-device-repeat-history span{color:#6d6254;font-size:12px;text-align:right}
html.admin-label-dialog-open,html.admin-label-dialog-open body{overflow:hidden!important}.admin-label-dialog{overscroll-behavior:contain}
.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}
.admin-user-form-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:start;gap:24px}.admin-user-fields{display:grid;gap:16px}.admin-user-fields>.section-heading{margin-bottom:2px}.admin-user-context{display:grid;gap:18px;position:sticky;top:20px}.admin-user-context h2{margin:0 0 7px}.admin-user-context>div>p{margin:0;color:#666}.admin-user-context-callout{display:grid;gap:4px;padding:20px;border-radius:18px;background:#21143a;color:#fff}.admin-user-context-callout span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#70d8ed}.admin-user-context-callout strong{font-size:28px;line-height:1.1}.admin-user-context-callout small{color:#d9d2e5}.admin-user-context-item{display:grid;gap:5px;padding-top:16px;border-top:1px solid #e5e3e1}.admin-user-context-item>span{color:#6d6a68;font-size:12px;font-weight:700}.admin-user-context-item>strong{font-size:15px}.admin-user-context-item>p{margin:0;color:#666;font-size:13px;line-height:1.5}.admin-user-context-link{display:flex;justify-content:space-between;align-items:center;width:100%}.admin-user-context-link svg{width:18px;height:18px}.admin-user-form>.sticky-actions{margin-top:0}@media(max-width:900px){.admin-user-form-layout{grid-template-columns:1fr}.admin-user-context{position:static}}
.admin-user-fields select:disabled{border-color:#d4d1ce;background:#eceae7;color:#8a8682;-webkit-text-fill-color:#8a8682;cursor:not-allowed;opacity:1}

/* Select-pilen placeres efter de lokale formularregler, så deres background-
   shorthand ikke kan fjerne ikonet. */
.admin-page select:not([multiple]),
.admin-wrap select:not([multiple]) {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 40px;
    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='%23111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 14px 9px;
}
