/* Admin assets live outside /admin to avoid a route-directory collision. */
:root {
    --magnit-pink: #d90077;
    --magnit-pink-dark: #b60064;
    --magnit-aqua: #4ed5cf;
    --magnit-ink: #25202b;
    --magnit-muted: #625d68;
    --magnit-success: #087357;
    --magnit-warning: #874b00;
    --magnit-danger: #a51c2c;
    --magnit-info: #145da8;
    --magnit-border: color-mix(in srgb, var(--text-color, #25202b) 12%, transparent);
    --magnit-card: var(--content-panel-bg, #fff);
    --magnit-shadow: 0 8px 28px rgba(36, 22, 34, .07);
    --magnit-auth-bg: #fff4f8;
    --magnit-auth-card: #fff;
    --magnit-auth-text: #2f1822;
    --magnit-auth-muted: #6c4f5c;

    --code-color: #a43b29;
    --color-primary: #b60064;
    --link-color: #a00058;
    --link-color-rgb: 160, 0, 88;
    --link-hover-color: #760041;
    --link-hover-color-rgb: 118, 0, 65;
    --button-focus-outline-color: rgba(230, 0, 126, .55);
    --button-primary-bg: linear-gradient(to bottom, #c7006d, #b60064);
    --button-primary-hover-bg: linear-gradient(to bottom, #b60064, #9f0057);
    --button-primary-active-bg: #920050;
    --pagination-active-bg: #b60064;
    --form-type-check-input-checked-bg: #b60064;
    --form-switch-checked-bg: #b60064;
}

.ea-dark-scheme,
html[data-magnit-color-scheme="dark"] {
    --magnit-pink: #ff75bc;
    --magnit-pink-dark: #ff9dcc;
    --magnit-aqua: #70e4de;
    --magnit-ink: #f5edf2;
    --magnit-muted: #b7afb8;
    --magnit-success: #7de3bf;
    --magnit-warning: #ffd083;
    --magnit-danger: #ff9da8;
    --magnit-info: #9bcaff;
    --magnit-border: rgba(255, 240, 249, .15);
    --magnit-card: #242124;
    --magnit-shadow: 0 12px 34px rgba(0, 0, 0, .28);
    --magnit-auth-bg: #151216;
    --magnit-auth-card: #242124;
    --magnit-auth-text: #f8eff4;
    --magnit-auth-muted: #c4b7be;

    --body-bg: #171717;
    --text-color: #d4d4d4;
    --text-color-rgb: 212, 212, 212;
    --text-muted: #a3a3a3;
    --content-panel-bg: #242124;
    --fieldset-bg: #211e21;
    --code-color: #ffad9c;
    --color-primary: #ff75bc;
    --link-color: #ff8ac5;
    --link-color-rgb: 255, 138, 197;
    --link-hover-color: #ffc1df;
    --link-hover-color-rgb: 255, 193, 223;
    --button-focus-outline-color: rgba(255, 117, 188, .68);
    --button-primary-bg: #c5006b;
    --button-primary-hover-bg: #dc0b7c;
    --button-primary-active-bg: #ed278d;
    --pagination-active-bg: #c5006b;
    --pagination-active-color: #fff;
    --form-help-color: #b7afb8;
    --form-control-bg: #171717;
    --form-control-disabled-bg: #242424;
    --form-input-border-color: #525252;
    --form-input-hover-border-color: #737373;
    --form-input-text-color: #e5e5e5;
    --form-tabs-help-color: #b7afb8;
    --form-column-help-color: #b7afb8;
    --form-fieldset-help-color: #b7afb8;
    --table-hover-cell-bg: #2d282d;
    --table-selected-cell-bg: #3b2231;
    --form-type-autocomplete-dropdown-bg: #292529;
    --form-type-autocomplete-dropdown-active-item-bg: #42343e;
    --modal-bg: #242124;
    --modal-header-bg: #2b272b;
    --modal-footer-bg: #211e21;
    --page-login-bg: #211e21;
    --page-login-form-bg: #292529;
    --page-login-form-control-bg: #171717;
    --page-login-form-control-border-color: #525252;
}

.ea a:focus-visible,
.ea button:focus-visible,
.ea input:focus-visible,
.ea select:focus-visible,
.ea textarea:focus-visible,
.magnit-standalone a:focus-visible,
.magnit-standalone button:focus-visible {
    outline: 3px solid var(--button-focus-outline-color);
    outline-offset: 2px;
}

.ea .form-control:focus,
.ea .form-select:focus,
.ea .ts-control.focus,
.ea .ts-wrapper.focus .ts-control {
    border-color: var(--magnit-pink);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--magnit-pink) 22%, transparent);
}

.ea input:-webkit-autofill,
.ea input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--form-input-text-color);
    box-shadow: 0 0 0 1000px var(--form-control-bg) inset;
    caret-color: var(--form-input-text-color);
}

.ea .form-help,
.ea .form-text,
.ea .help-block,
.ea .form-column-help,
.ea .form-fieldset-help {
    color: var(--form-help-color);
}

.ea .nav-tabs .nav-link {
    color: var(--text-secondary-color);
}

.ea .nav-tabs .nav-link:hover,
.ea .nav-tabs .nav-link:focus-visible,
.ea .nav-tabs .nav-link.active {
    color: var(--link-color);
}

.ea .datagrid tbody tr,
.ea .datagrid tbody td {
    transition: background-color 100ms ease, color 100ms ease;
}

.ea .ts-dropdown,
.ea .dropdown-menu,
.ea .popover,
.ea .modal-content {
    border-color: var(--border-secondary-color);
    box-shadow: var(--magnit-shadow);
}

.ea .ts-dropdown .active,
.ea .ts-dropdown .option:hover {
    background: var(--form-type-autocomplete-dropdown-active-item-bg);
    color: var(--form-input-text-color);
}

.ea .modal-backdrop.show {
    opacity: .62;
}

.ea-dark-scheme .modal-backdrop.show {
    opacity: .76;
}

.ea .page-link:focus-visible {
    border-color: var(--magnit-pink);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--magnit-pink) 22%, transparent);
}

.ea .alert {
    border-radius: 9px;
}

.ea code:not(pre code),
.magnit-standalone code:not(pre code) {
    background: color-mix(in srgb, var(--magnit-pink) 8%, transparent);
    border-radius: 5px;
    color: var(--code-color, var(--magnit-pink-dark));
    overflow-wrap: anywhere;
    padding: .08em .32em;
}

.ea pre {
    max-width: 100%;
    overflow: auto;
    overflow-wrap: normal;
}

.ea .field-image img,
.ea .field-avatar img,
.ea .ea-lightbox-thumbnail img,
.ea .ea-lightbox img {
    background: color-mix(in srgb, var(--magnit-muted) 8%, transparent);
    border-radius: 8px;
    height: auto;
    max-width: 100%;
    object-fit: contain;
}

.ea .field-image a:focus-visible,
.ea .ea-lightbox-thumbnail:focus-visible {
    border-radius: 8px;
    outline: 3px solid var(--button-focus-outline-color);
    outline-offset: 3px;
}

.page-login {
    background:
        radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--magnit-pink) 13%, transparent), transparent 34%),
        radial-gradient(circle at 88% 88%, color-mix(in srgb, var(--magnit-aqua) 13%, transparent), transparent 32%),
        var(--page-login-bg);
}

.page-login .login-wrapper .content {
    border: 1px solid var(--magnit-border);
    border-radius: 18px;
    box-shadow: var(--magnit-shadow);
}

.page-login .login-wrapper .main-header #header-logo {
    border-color: var(--magnit-border);
}

.page-login .login-wrapper .main-header #header-logo .logo {
    color: var(--text-color);
    font-weight: 750;
    letter-spacing: -.025em;
}

.page-login .login-wrapper .btn-primary {
    min-height: 42px;
}

.magnit-section {
    margin: 1.5rem 0 2rem;
}

.magnit-section-heading {
    align-items: end;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.magnit-section-heading h2,
.magnit-panel h2,
.magnit-session-actions h2 {
    font-size: 1.15rem;
    font-weight: 750;
    letter-spacing: -.02em;
    margin: .12rem 0 0;
}

.magnit-eyebrow {
    color: var(--magnit-pink);
    display: block;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.magnit-muted {
    color: var(--magnit-muted);
}

.magnit-status-strip {
    align-items: center;
    background: color-mix(in srgb, var(--magnit-aqua) 12%, var(--magnit-card));
    border: 1px solid color-mix(in srgb, var(--magnit-aqua) 40%, transparent);
    border-radius: 14px;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .9rem 1rem;
}

.magnit-status-strip > div {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.magnit-status-strip.is-paused {
    background: color-mix(in srgb, #ffb020 12%, var(--magnit-card));
    border-color: color-mix(in srgb, #ffb020 38%, transparent);
}

.magnit-live-dot {
    background: #14a57b;
    border-radius: 50%;
    box-shadow: 0 0 0 5px color-mix(in srgb, #14a57b 16%, transparent);
    height: .55rem;
    width: .55rem;
}

.is-paused .magnit-live-dot {
    background: #dc8120;
    box-shadow: 0 0 0 5px color-mix(in srgb, #dc8120 16%, transparent);
}

.magnit-status-actions {
    color: var(--magnit-muted);
    font-size: .82rem;
}

.magnit-stat-grid {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.magnit-stat-card,
.magnit-panel {
    background: var(--magnit-card);
    border: 1px solid var(--magnit-border);
    border-radius: 14px;
    box-shadow: var(--magnit-shadow);
}

.magnit-stat-card {
    display: flex;
    flex-direction: column;
    min-height: 132px;
    padding: 1rem;
}

.magnit-stat-card > span {
    color: var(--magnit-muted);
    font-size: .76rem;
}

.magnit-stat-card strong {
    font-size: 1.6rem;
    letter-spacing: -.035em;
    margin: auto 0 .15rem;
}

.magnit-stat-card small {
    color: var(--magnit-muted);
}

.magnit-stat-card.has-warning {
    border-color: color-mix(in srgb, #dc3545 35%, transparent);
}

.magnit-dashboard-columns,
.magnit-detail-columns {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    margin: 1.5rem 0 2rem;
}

.magnit-panel {
    padding: 1.15rem;
}

.magnit-metrics-list {
    margin: 0;
}

.magnit-metrics-list > div {
    align-items: center;
    border-bottom: 1px solid var(--magnit-border);
    display: flex;
    justify-content: space-between;
    padding: .62rem 0;
}

.magnit-metrics-list > div:last-child {
    border-bottom: 0;
}

.magnit-metrics-list dt {
    color: var(--magnit-muted);
    font-weight: 500;
}

.magnit-metrics-list dd {
    font-size: 1rem;
    font-weight: 750;
    margin: 0;
}

.magnit-style-count {
    align-items: baseline;
    display: flex;
    gap: .55rem;
    margin: 1.2rem 0 .5rem;
}

.magnit-style-count strong {
    color: var(--magnit-pink);
    font-size: 3rem;
    letter-spacing: -.06em;
}

.magnit-table-wrap {
    background: var(--magnit-card);
    border: 1px solid var(--magnit-border);
    border-radius: 14px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.magnit-table-wrap .table {
    margin: 0;
}

.magnit-table-wrap th,
.magnit-table-wrap td {
    padding: .75rem;
    vertical-align: middle;
}

.magnit-empty,
.magnit-empty-state {
    color: var(--magnit-muted);
    padding: 2rem;
    text-align: center;
}

.magnit-empty-state {
    background: var(--magnit-card);
    border: 1px dashed var(--magnit-border);
    border-radius: 14px;
}

.magnit-empty-state i {
    color: var(--magnit-pink);
    font-size: 2rem;
}

.magnit-status {
    background: color-mix(in srgb, var(--magnit-muted) 12%, transparent);
    border-radius: 999px;
    display: inline-flex;
    font-size: .68rem;
    font-weight: 750;
    padding: .24rem .52rem;
    white-space: nowrap;
}

.status-completed {
    background: color-mix(in srgb, #14a57b 16%, transparent);
    color: var(--magnit-success);
}

.status-processing,
.status-queued {
    background: color-mix(in srgb, #ffb020 20%, transparent);
    color: var(--magnit-warning);
}

.status-failed {
    background: color-mix(in srgb, #dc3545 15%, transparent);
    color: var(--magnit-danger);
}

.status-ready,
.status-style_selected,
.status-photo_ready {
    background: color-mix(in srgb, #2589ff 14%, transparent);
    color: var(--magnit-info);
}

/* Style lab */
.magnit-lab-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(360px, .82fr) minmax(420px, 1.18fr);
}

.magnit-lab-form-panel .form-group {
    margin: 1rem 0;
}

.magnit-reference-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: 1fr 1fr;
    margin-top: 1rem;
}

.magnit-reference-grid figure {
    margin: 0;
}

.magnit-reference-grid figure > span {
    color: var(--magnit-muted);
    display: block;
    font-size: .72rem;
    margin-bottom: .35rem;
}

.magnit-image-placeholder,
.magnit-lab-file-preview {
    align-items: center;
    aspect-ratio: 2 / 3;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--magnit-pink) 6%, transparent), color-mix(in srgb, var(--magnit-aqua) 9%, transparent)),
        var(--body-bg);
    border: 1px dashed var(--magnit-border);
    border-radius: 10px;
    display: flex;
    justify-content: center;
    overflow: hidden;
}

.magnit-image-placeholder::after {
    color: var(--magnit-muted);
    content: 'нет изображения';
    font-size: .7rem;
}

.magnit-image-placeholder.has-image::after {
    display: none;
}

.magnit-image-placeholder img,
.magnit-lab-file-preview img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.magnit-lab-style-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: .75rem 0;
}

.magnit-lab-style-meta span {
    background: color-mix(in srgb, var(--magnit-pink) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--magnit-pink) 18%, transparent);
    border-radius: 999px;
    font-size: .68rem;
    padding: .24rem .48rem;
}

.magnit-budget-note {
    background: color-mix(in srgb, #ffb020 11%, transparent);
    border: 1px solid color-mix(in srgb, #ffb020 28%, transparent);
    border-radius: 9px;
    color: var(--magnit-muted);
    font-size: .76rem;
    padding: .65rem;
}

.magnit-lab-file-preview {
    aspect-ratio: 3 / 2;
    margin: .75rem 0;
    max-height: 220px;
}

.magnit-lab-result-panel {
    min-width: 0;
}

.magnit-progress-steps {
    display: grid;
    gap: .25rem;
    grid-template-columns: repeat(4, 1fr);
    margin: 1.2rem 0;
}

.magnit-progress-steps > div {
    align-items: center;
    color: var(--magnit-muted);
    display: flex;
    flex-direction: column;
    gap: .35rem;
    position: relative;
    text-align: center;
}

.magnit-progress-steps > div::before {
    background: var(--magnit-border);
    content: '';
    height: 2px;
    position: absolute;
    right: 50%;
    top: 14px;
    width: 100%;
    z-index: 0;
}

.magnit-progress-steps > div:first-child::before {
    display: none;
}

.magnit-progress-steps span {
    align-items: center;
    background: var(--body-bg);
    border: 2px solid var(--magnit-border);
    border-radius: 50%;
    display: flex;
    font-size: .7rem;
    font-weight: 800;
    height: 30px;
    justify-content: center;
    position: relative;
    width: 30px;
    z-index: 1;
}

.magnit-progress-steps .is-active {
    color: var(--magnit-pink);
}

.magnit-progress-steps .is-active::before,
.magnit-progress-steps .is-active span {
    border-color: var(--magnit-pink);
}

.magnit-progress-steps .is-active::before {
    background: var(--magnit-pink);
}

.magnit-progress-steps .is-current span {
    background: var(--magnit-pink);
    color: #fff;
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--magnit-pink) 12%, transparent);
}

.magnit-result-canvas {
    align-items: center;
    aspect-ratio: 2 / 3;
    background:
        radial-gradient(circle at 25% 15%, color-mix(in srgb, var(--magnit-pink) 15%, transparent), transparent 36%),
        radial-gradient(circle at 80% 85%, color-mix(in srgb, var(--magnit-aqua) 18%, transparent), transparent 34%),
        var(--body-bg);
    border: 1px solid var(--magnit-border);
    border-radius: 12px;
    display: flex;
    justify-content: center;
    max-height: 650px;
    overflow: hidden;
    position: relative;
}

.magnit-result-placeholder {
    color: var(--magnit-muted);
    text-align: center;
}

.magnit-result-placeholder i {
    color: color-mix(in srgb, var(--magnit-pink) 60%, var(--magnit-aqua));
    font-size: 2.5rem;
}

.magnit-result-canvas > img {
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.magnit-result-metrics {
    display: grid;
    gap: .5rem;
    grid-template-columns: repeat(4, 1fr);
    margin: .8rem 0;
}

.magnit-result-metrics > div {
    background: var(--body-bg);
    border-radius: 9px;
    display: flex;
    flex-direction: column;
    padding: .65rem;
}

.magnit-result-metrics span {
    color: var(--magnit-muted);
    font-size: .67rem;
}

.magnit-result-metrics strong {
    font-size: .86rem;
}

.magnit-lab-log {
    background: #18151a;
    border-radius: 9px;
    color: #e9dfe7;
    font-size: .72rem;
    margin: .75rem 0 0;
    max-height: 145px;
    min-height: 62px;
    overflow: auto;
    padding: .75rem;
    white-space: pre-wrap;
}

.magnit-json-field {
    background: #18151a;
    border-radius: 8px;
    color: #e9dfe7;
    font-size: .72rem;
    margin: 0;
    max-height: 420px;
    overflow: auto;
    padding: .8rem;
    white-space: pre-wrap;
}

/* Session detail */
.magnit-session-actions {
    align-items: center;
    background: color-mix(in srgb, var(--magnit-pink) 6%, var(--magnit-card));
    border: 1px solid color-mix(in srgb, var(--magnit-pink) 18%, transparent);
    border-radius: 14px;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(260px, 1fr) auto;
    margin-top: 1.5rem;
    padding: 1rem;
}

.magnit-session-actions p {
    color: var(--magnit-muted);
    margin: .25rem 0 0;
}

.magnit-session-action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    justify-content: flex-end;
}

.magnit-session-actions .alert {
    grid-column: 1 / -1;
    margin: 0;
}

.magnit-attempt-list {
    display: grid;
    gap: .7rem;
}

.magnit-attempt {
    background: var(--body-bg);
    border: 1px solid var(--magnit-border);
    border-left: 3px solid var(--magnit-muted);
    border-radius: 9px;
    padding: .8rem;
}

.magnit-attempt.is-completed {
    border-left-color: #14a57b;
}

.magnit-attempt.is-failed {
    border-left-color: #dc3545;
}

.magnit-attempt.is-discarded {
    border-left-color: #ff9f1c;
}

.magnit-attempt > header,
.magnit-timeline-card > header {
    align-items: center;
    display: flex;
    gap: .7rem;
    justify-content: space-between;
}

.magnit-attempt > header > div {
    align-items: center;
    display: flex;
    gap: .5rem;
}

.magnit-attempt time,
.magnit-timeline-card time {
    color: var(--magnit-muted);
    font-size: .72rem;
}

.magnit-attempt dl {
    display: grid;
    gap: .45rem;
    grid-template-columns: 1fr 1fr;
    margin: .7rem 0 0;
}

.magnit-attempt dl > div {
    min-width: 0;
}

.magnit-attempt dt {
    color: var(--magnit-muted);
    font-size: .68rem;
    font-weight: 500;
}

.magnit-attempt dd {
    margin: 0;
    overflow-wrap: anywhere;
}

.magnit-attempt-error {
    background: color-mix(in srgb, #dc3545 10%, transparent);
    border-radius: 7px;
    color: var(--magnit-danger);
    margin-top: .65rem;
    padding: .55rem;
}

.magnit-attempt details,
.magnit-timeline-card details {
    margin-top: .65rem;
}

.magnit-attempt summary,
.magnit-timeline-card summary {
    color: var(--magnit-muted);
    cursor: pointer;
    font-size: .74rem;
}

.magnit-attempt pre,
.magnit-timeline-card pre {
    background: #18151a;
    border-radius: 7px;
    color: #e9dfe7;
    font-size: .67rem;
    margin: .5rem 0 0;
    max-height: 240px;
    overflow: auto;
    padding: .65rem;
    white-space: pre-wrap;
}

.magnit-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
}

.magnit-timeline > li {
    display: grid;
    gap: .6rem;
    grid-template-columns: 16px minmax(0, 1fr);
    padding-bottom: .8rem;
    position: relative;
}

.magnit-timeline > li::before {
    background: var(--magnit-border);
    content: '';
    height: 100%;
    left: 7px;
    position: absolute;
    top: 10px;
    width: 1px;
}

.magnit-timeline > li:last-child::before {
    display: none;
}

.magnit-timeline-dot {
    background: var(--magnit-pink);
    border: 3px solid var(--magnit-card);
    border-radius: 50%;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--magnit-pink) 34%, transparent);
    height: 13px;
    margin-top: 5px;
    position: relative;
    width: 13px;
    z-index: 1;
}

.magnit-timeline-card {
    background: var(--body-bg);
    border: 1px solid var(--magnit-border);
    border-radius: 9px;
    padding: .7rem;
}

.magnit-timeline-card p {
    margin: .45rem 0 0;
}

.magnit-timeline-meta {
    align-items: center;
    color: var(--magnit-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: .7rem;
    gap: .45rem;
    margin-top: .28rem;
}

/* Read-only image overview on the style edit page. */
.magnit-style-image-preview {
    background: color-mix(in srgb, var(--magnit-pink) 4%, var(--magnit-card));
    border: 1px solid var(--magnit-border);
    border-radius: 14px;
    box-shadow: var(--magnit-shadow);
    margin: 0 0 1.25rem;
    padding: 1rem;
}

.magnit-style-image-preview-header {
    align-items: end;
    display: flex;
    gap: 1.5rem;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.magnit-style-image-preview-header h2 {
    font-size: 1.15rem;
    font-weight: 750;
    letter-spacing: -.02em;
    margin: .12rem 0 0;
}

.magnit-style-image-preview-header > p {
    color: var(--magnit-muted);
    font-size: .78rem;
    margin: 0;
    max-width: 560px;
}

.magnit-style-image-preview-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.magnit-style-image-card {
    background: var(--body-bg);
    border: 1px solid var(--magnit-border);
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    margin: 0;
    min-width: 0;
    overflow: hidden;
}

.magnit-style-image-card figcaption {
    min-height: 88px;
    padding: .8rem .85rem .7rem;
}

.magnit-style-image-card figcaption > div {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    justify-content: space-between;
}

.magnit-style-image-card figcaption strong {
    color: var(--text-color);
    font-size: .88rem;
}

.magnit-style-image-card figcaption p {
    color: var(--magnit-muted);
    font-size: .72rem;
    line-height: 1.35;
    margin: .38rem 0 0;
}

.magnit-style-image-status {
    background: color-mix(in srgb, var(--magnit-pink) 9%, transparent);
    border: 1px solid color-mix(in srgb, var(--magnit-pink) 24%, transparent);
    border-radius: 999px;
    color: var(--magnit-pink-dark);
    font-size: .62rem;
    font-weight: 750;
    padding: .18rem .42rem;
}

.magnit-style-image-stage {
    align-items: center;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--magnit-pink) 7%, transparent), color-mix(in srgb, var(--magnit-aqua) 9%, transparent)),
        var(--content-panel-bg);
    border-block: 1px solid var(--magnit-border);
    display: flex;
    height: clamp(260px, 30vw, 410px);
    justify-content: center;
    overflow: hidden;
    position: relative;
}

a.magnit-style-image-stage {
    cursor: zoom-in;
}

a.magnit-style-image-stage:hover {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--magnit-pink) 12%, transparent), color-mix(in srgb, var(--magnit-aqua) 14%, transparent)),
        var(--content-panel-bg);
}

a.magnit-style-image-stage:focus-visible {
    outline: 3px solid var(--button-focus-outline-color);
    outline-offset: -4px;
}

.magnit-style-image-stage img {
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.magnit-style-image-stage.is-empty {
    border-style: dashed;
    color: var(--magnit-muted);
    font-size: .75rem;
    padding: 1rem;
    text-align: center;
}

.magnit-style-image-meta {
    align-items: center;
    display: flex;
    gap: .65rem;
    justify-content: space-between;
    min-height: 52px;
    padding: .65rem .85rem;
}

.magnit-style-image-meta code {
    display: block;
    font-size: .66rem;
    max-width: 68%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.magnit-style-image-meta a {
    flex: 0 0 auto;
    font-size: .7rem;
    font-weight: 700;
    text-decoration: none;
}

.ea-dark-scheme .magnit-style-image-card,
html[data-magnit-color-scheme="dark"] .magnit-style-image-card {
    background: color-mix(in srgb, var(--body-bg) 86%, #000);
}

.ea-dark-scheme .magnit-style-image-stage,
html[data-magnit-color-scheme="dark"] .magnit-style-image-stage {
    background:
        linear-gradient(135deg, rgba(255, 117, 188, .07), rgba(112, 228, 222, .09)),
        var(--form-control-bg);
}

/* Standalone security screens intentionally do not depend on EasyAdmin markup. */
.magnit-standalone {
    background:
        radial-gradient(circle at 14% 9%, color-mix(in srgb, var(--magnit-pink) 14%, transparent), transparent 34%),
        radial-gradient(circle at 88% 91%, color-mix(in srgb, var(--magnit-aqua) 13%, transparent), transparent 32%),
        var(--magnit-auth-bg);
    box-sizing: border-box;
    color: var(--magnit-auth-text);
    font: 16px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif;
    margin: 0;
    min-height: 100vh;
}

.magnit-standalone *,
.magnit-standalone *::before,
.magnit-standalone *::after {
    box-sizing: inherit;
}

.magnit-logout-page {
    display: grid;
    padding: 20px;
    place-items: center;
}

.magnit-auth-card {
    background: var(--magnit-auth-card);
    border: 1px solid var(--magnit-border);
    border-radius: 24px;
    box-shadow: var(--magnit-shadow);
    max-width: 420px;
    padding: 32px;
    text-align: center;
    width: 100%;
}

.magnit-auth-card h1 {
    color: var(--magnit-auth-text);
    font-size: 28px;
    letter-spacing: -.025em;
    margin: 0 0 12px;
}

.magnit-auth-card p {
    color: var(--magnit-auth-muted);
    margin: 0 0 24px;
}

.magnit-auth-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
}

.magnit-auth-actions form {
    margin: 0;
}

.magnit-auth-button {
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 750;
    justify-content: center;
    min-height: 46px;
    padding: 11px 22px;
    text-decoration: none;
    transition: background-color 120ms ease, border-color 120ms ease, transform 120ms ease;
}

.magnit-auth-button:hover {
    transform: translateY(-1px);
}

.magnit-auth-button.is-secondary {
    background: color-mix(in srgb, var(--magnit-auth-text) 8%, var(--magnit-auth-card));
    border-color: var(--magnit-border);
    color: var(--magnit-auth-text);
}

.magnit-auth-button.is-secondary:hover {
    background: color-mix(in srgb, var(--magnit-auth-text) 14%, var(--magnit-auth-card));
}

.magnit-auth-button.is-primary {
    background: #b60064;
    color: #fff;
}

.magnit-auth-button.is-primary:hover {
    background: #9f0057;
}

@media (prefers-color-scheme: dark) {
    html:not([data-magnit-color-scheme="light"]) .magnit-standalone {
        --magnit-pink: #ff75bc;
        --magnit-aqua: #70e4de;
        --magnit-border: rgba(255, 240, 249, .15);
        --magnit-shadow: 0 12px 34px rgba(0, 0, 0, .28);
        --magnit-auth-bg: #151216;
        --magnit-auth-card: #242124;
        --magnit-auth-text: #f8eff4;
        --magnit-auth-muted: #c4b7be;
    }
}

@media (max-width: 1280px) {
    .magnit-stat-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .magnit-lab-grid {
        grid-template-columns: minmax(320px, .9fr) minmax(390px, 1.1fr);
    }
}

@media (max-width: 900px) {
    .magnit-dashboard-columns,
    .magnit-detail-columns,
    .magnit-lab-grid {
        grid-template-columns: 1fr;
    }

    .magnit-style-image-preview-grid {
        grid-template-columns: 1fr;
    }

    .magnit-style-image-stage {
        height: min(70vh, 620px);
    }

    .magnit-session-actions {
        grid-template-columns: 1fr;
    }

    .magnit-session-action-buttons {
        justify-content: flex-start;
    }
}

@media (max-width: 620px) {
    .magnit-status-strip,
    .magnit-section-heading,
    .magnit-style-image-preview-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .magnit-stat-grid {
        grid-template-columns: 1fr 1fr;
    }

    .magnit-result-metrics {
        grid-template-columns: 1fr 1fr;
    }

    .magnit-style-image-preview {
        padding: .75rem;
    }

    .magnit-style-image-stage {
        height: min(62vh, 520px);
    }

    .page-login .login-wrapper .content {
        border-radius: 14px;
        padding: 1.5rem;
    }
}

@media (max-width: 480px) {
    .magnit-stat-grid,
    .magnit-reference-grid,
    .magnit-attempt dl {
        grid-template-columns: 1fr;
    }

    .magnit-panel,
    .magnit-session-actions {
        padding: .85rem;
    }

    .magnit-session-action-buttons,
    .magnit-session-action-buttons .btn,
    .magnit-lab-form-panel .btn-lg {
        width: 100%;
    }

    .magnit-session-action-buttons .btn {
        justify-content: center;
    }

    .magnit-attempt > header,
    .magnit-timeline-card > header {
        align-items: flex-start;
        flex-direction: column;
    }

    .magnit-progress-steps {
        gap: .1rem;
    }

    .magnit-progress-steps small {
        font-size: .63rem;
        line-height: 1.2;
    }

    .magnit-result-canvas {
        max-height: none;
    }

    .magnit-auth-card {
        border-radius: 18px;
        padding: 26px 20px;
    }

    .magnit-auth-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .magnit-auth-actions form,
    .magnit-auth-button {
        width: 100%;
    }
}

@media (max-width: 360px) {
    .magnit-result-metrics {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ea *,
    .ea *::before,
    .ea *::after,
    .magnit-standalone *,
    .magnit-standalone *::before,
    .magnit-standalone *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
