:root {
    --registry-bg: #f6f0e7;
    --registry-panel: #fbf7f1;
    --registry-panel-soft: #f2e9dd;
    --registry-line: rgba(83, 64, 47, .18);
    --registry-line-soft: rgba(83, 64, 47, .1);
    --registry-text: #40372f;
    --registry-muted: #817367;
    --registry-accent: #a75f34;
    --registry-accent-soft: #efe0d1;
    --registry-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.data-page-body {
    min-height: 100vh;
    margin: 0;
    color: var(--registry-text);
    background:
        radial-gradient(circle at 15% 15%, rgba(255,255,255,.68), transparent 32%),
        linear-gradient(145deg, #b9b0a6, #8f867c);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.data-page-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 4.5vh 4vw;
}

.data-registry-dialog {
    width: min(88vw, 1320px);
    height: min(84vh, 820px);
    max-width: none;
    max-height: none;
    margin: auto;
    border: 0;
    border-radius: 12px;
    padding: 0;
    color: var(--registry-text);
    background: transparent;
    box-shadow: 0 35px 110px rgba(39, 29, 21, .46);
}

.data-registry-dialog::backdrop {
    background: rgba(37, 29, 23, .56);
    backdrop-filter: blur(8px) saturate(.75);
}

.data-registry-window {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-rows: 64px minmax(0, 1fr) 36px;
    overflow: hidden;
    border: 1px solid rgba(90, 66, 45, .22);
    border-radius: 12px;
    background: var(--registry-panel);
    box-shadow: inset 0 1px rgba(255,255,255,.68);
}

.data-registry-window--page {
    width: min(94vw, 1460px);
    height: min(90vh, 900px);
    box-shadow: 0 35px 110px rgba(39, 29, 21, .42), inset 0 1px rgba(255,255,255,.68);
}

.data-registry-header {
    min-width: 0;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 36px;
    align-items: center;
    gap: 12px;
    padding: 0 14px;
    border-bottom: 1px solid var(--registry-line);
    background: rgba(249, 242, 233, .98);
}

.data-registry-header__icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(167, 95, 52, .28);
    color: var(--registry-accent);
    background: rgba(255, 250, 244, .74);
}

.data-registry-header p,
.data-registry-header h1,
.data-registry-header h2 { margin: 0; }
.data-registry-header p {
    color: var(--registry-accent);
    font: 700 10px/1.1 var(--registry-mono);
    letter-spacing: .12em;
}
.data-registry-header h1,
.data-registry-header h2 {
    margin-top: 5px;
    color: #4c4036;
    font-size: 13px;
    font-weight: 590;
}

.data-registry-close {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid var(--registry-line);
    border-radius: 8px;
    color: #77695d;
    background: rgba(255,255,255,.24);
    font: 300 24px/1 sans-serif;
    text-decoration: none;
    cursor: pointer;
    transition: .16s ease;
}
.data-registry-close:hover { color: var(--registry-accent); border-color: rgba(167,95,52,.35); background: #fffaf4; }

.data-registry-body {
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
}

.data-registry-nav {
    min-width: 0;
    min-height: 0;
    overflow: auto;
    border-right: 1px solid var(--registry-line);
    background: #f7f0e6;
    padding: 10px 9px 14px;
}

.data-registry-overview,
.data-registry-nav__item {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: #6d6156;
    text-decoration: none;
    transition: color .14s ease, background .14s ease, border-color .14s ease;
}

.data-registry-overview {
    min-height: 50px;
    margin-bottom: 9px;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-bottom-color: var(--registry-line);
}
.data-registry-overview > span:first-child {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    color: var(--registry-accent);
}
.data-registry-overview strong,
.data-registry-overview small,
.data-registry-nav__item strong,
.data-registry-nav__item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.data-registry-overview strong { color: #4f4339; font-size: 12px; font-weight: 600; }
.data-registry-overview small { margin-top: 3px; color: #938578; font: 8px/1 var(--registry-mono); }
.data-registry-overview:hover { color: var(--registry-accent); background: rgba(167,95,52,.045); }

.data-registry-nav__label {
    margin: 13px 10px 7px;
    color: #8e7f72;
    font: 700 8px/1 var(--registry-mono);
    letter-spacing: .16em;
}

.data-registry-nav__items { display: grid; gap: 3px; }
.data-registry-nav__item {
    min-height: 47px;
    padding: 7px 9px;
    border: 1px solid transparent;
    border-radius: 7px;
}
.data-registry-nav__icon {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    display: grid;
    place-items: center;
    color: #786c61;
}
.data-registry-nav__item strong { color: inherit; font-size: 11px; font-weight: 590; }
.data-registry-nav__item small { margin-top: 3px; color: #9a8c80; font: 8px/1 var(--registry-mono); }
.data-registry-nav__item:hover { color: #4c4036; border-color: var(--registry-line-soft); background: rgba(255,255,255,.36); }
.data-registry-nav__item.is-active {
    color: var(--registry-accent);
    border-color: rgba(167,95,52,.16);
    background: var(--registry-accent-soft);
    box-shadow: inset 3px 0 var(--registry-accent);
}
.data-registry-nav__item.is-active .data-registry-nav__icon { color: var(--registry-accent); }

.data-registry-main {
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template-rows: 50px minmax(0, 1fr);
    background: #fcf9f4;
}

.data-registry-main__header {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 0 13px;
    border-bottom: 1px solid var(--registry-line);
    background: rgba(250, 245, 238, .88);
}
.data-registry-main__header div { min-width: 0; display: flex; align-items: center; gap: 10px; }
.data-registry-main__header span { color: #8f8174; font: 700 8px/1 var(--registry-mono); letter-spacing: .08em; }
.data-registry-main__header strong { overflow: hidden; color: #4a3e34; font: 600 12px/1.2 var(--registry-mono); text-overflow: ellipsis; white-space: nowrap; }

.data-registry-map-link {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex: 0 0 auto;
    padding: 0 11px;
    border: 1px solid var(--registry-line);
    border-radius: 8px;
    color: #75685c;
    background: rgba(255,255,255,.5);
    font-size: 10px;
    font-weight: 560;
    text-decoration: none;
    transition: .15s ease;
}
.data-registry-map-link:hover { color: var(--registry-accent); border-color: rgba(167,95,52,.32); background: #fffaf4; }

.data-registry-content {
    min-width: 0;
    min-height: 0;
    overflow: auto;
    padding: 0 12px 12px;
    scrollbar-width: thin;
    scrollbar-color: rgba(112, 91, 73, .35) transparent;
}
.data-registry-content::-webkit-scrollbar { width: 7px; height: 7px; }
.data-registry-content::-webkit-scrollbar-thumb { background: rgba(112, 91, 73, .3); }

.data-registry-loading,
.data-registry-error {
    min-height: 240px;
    display: grid;
    place-items: center;
    color: #8c7d70;
    font: 10px/1.4 var(--registry-mono);
    text-align: center;
}
.data-registry-error { color: #a8463d; }

.data-registry-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 14px;
    border-top: 1px solid var(--registry-line);
    color: #817367;
    background: #f3eadf;
    font: 8px/1 var(--registry-mono);
    letter-spacing: .04em;
}

.data-grid-fragment { min-width: 0; padding-top: 10px; }
.data-grid-filter {
    margin-bottom: 9px;
    padding: 10px;
    border: 1px solid var(--registry-line);
    background: rgba(249, 243, 236, .72);
}
.data-grid-filter form > div:first-child { gap: 8px !important; }
.data-grid-filter label,
.data-grid-filter input,
.data-grid-filter select,
.data-grid-filter button { font-size: 11px !important; }
.data-grid-filter input,
.data-grid-filter select { min-height: 34px !important; border-radius: 6px !important; border-color: var(--registry-line) !important; background: #fffdf9 !important; }
.data-grid-filter .grid-filter-btn { min-height: 34px; border-radius: 6px !important; padding: 0 12px !important; }
.data-grid-filter .grid-filter-btn--primary {
    color: #fffaf4 !important;
    border: 1px solid #8f4c29 !important;
    background: var(--registry-accent) !important;
    box-shadow: 0 4px 12px rgba(134, 72, 38, .18);
}
.data-grid-filter .grid-filter-btn--primary:hover {
    color: #fff !important;
    border-color: #7d3f20 !important;
    background: #8f4c29 !important;
}

.data-grid-table .grid-table-wrap {
    max-height: calc(min(84vh, 820px) - 250px);
    margin-top: 8px !important;
    overflow: auto;
    border: 1px solid var(--registry-line);
    border-radius: 0;
    background: #fffdf9;
}
.data-registry-window--page .data-grid-table .grid-table-wrap { max-height: calc(min(90vh, 900px) - 250px); }
.data-grid-table .grid-table-wrap table { min-width: 980px; font-family: var(--registry-mono); font-size: 10.5px !important; }
.data-grid-table .grid-table-wrap th,
.data-grid-table .grid-table-wrap td {
    padding: 10px 9px;
    border-bottom-color: rgba(83,64,47,.09);
    color: #554a40;
    line-height: 1.45;
    white-space: nowrap;
}
.data-grid-table .grid-table-wrap th {
    position: sticky;
    z-index: 2;
    top: 0;
    color: #765f4d;
    background: #ede1d1;
    font-size: 9.5px;
    letter-spacing: .065em;
}
.data-grid-table .grid-table-wrap th a { color: inherit !important; }
.data-grid-table .grid-table-wrap tbody tr:nth-child(even) td { background: rgba(250,246,240,.46); }
.data-grid-table .grid-table-wrap tbody tr:hover td { background: #f2e7da; }
.data-grid-table .result > .mt-4,
.data-grid-table .result > div.mt-4 { margin-top: 8px !important; }
.data-grid-table #count { color: #83766a; font: 10px/1.2 var(--registry-mono); }
.data-grid-table .workspace-limit-dropdown summary,
.data-grid-table .workspace-limit-dropdown a,
.data-grid-table .result ul a {
    border-radius: 5px !important;
    font-size: 10px !important;
}

.registry-badge {
    display: inline-flex;
    min-height: 21px;
    align-items: center;
    border: 1px solid rgba(71, 91, 118, .2);
    border-radius: 4px;
    padding: 0 7px;
    color: #4e627e;
    background: rgba(81, 119, 168, .09);
    font: 700 8px/1 var(--registry-mono);
    white-space: nowrap;
}
.registry-badge--success { color: #34705d; border-color: rgba(52,112,93,.2); background: rgba(70,146,115,.1); }
.registry-badge--warning { color: #96642f; border-color: rgba(150,100,47,.2); background: rgba(194,133,62,.11); }
.registry-badge--danger { color: #a1483f; border-color: rgba(161,72,63,.2); background: rgba(185,79,69,.1); }
.registry-badge--dark { color: #fff; border-color: #171717; background: #171717; }
.registry-badge--critical { color: #8f2630; border-color: rgba(143,38,48,.26); background: rgba(169,44,54,.14); }
.registry-badge--muted { color: #776f67; border-color: rgba(119,111,103,.18); background: rgba(119,111,103,.08); }

@media (max-width: 900px) {
    .data-page-shell { padding: 0; }
    .data-registry-dialog { width: calc(100vw - 16px); height: calc(100vh - 16px); }
    .data-registry-window--page { width: 100vw; height: 100vh; border-radius: 0; }
    .data-registry-body { grid-template-columns: 180px minmax(0, 1fr); }
    .data-registry-map-link { font-size: 0; width: 34px; padding: 0; }
}

@media (max-width: 640px) {
    .data-registry-body { grid-template-columns: 68px minmax(0, 1fr); }
    .data-registry-nav { padding-inline: 6px; }
    .data-registry-overview { justify-content: center; padding: 5px; }
    .data-registry-overview > span:last-child,
    .data-registry-nav__label,
    .data-registry-nav__item > span:last-child { display: none; }
    .data-registry-nav__item { justify-content: center; padding: 6px; }
    .data-registry-main__header strong { max-width: 150px; }
    .data-registry-footer span:last-child { display: none; }
}


/* Editable registry actions */
.data-registry-window .grid-actions { min-width: 74px; }
.data-registry-window .grid-action {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    border-radius: 6px !important;
    background: #fffaf4 !important;
}
.data-registry-window .grid-action svg { width: 15px; height: 15px; }
.data-registry-window .grid-action--edit {
    color: #8a542f !important;
    border-color: rgba(138, 84, 47, .28) !important;
}
.data-registry-window .grid-action--edit:hover {
    color: #6f3d20 !important;
    border-color: rgba(138, 84, 47, .55) !important;
    background: #f4e4d5 !important;
}
.data-registry-window .grid-action--delete {
    color: #a1483f !important;
    border-color: rgba(161, 72, 63, .25) !important;
}
.data-registry-window .grid-action--delete:hover {
    color: #852f29 !important;
    border-color: rgba(161, 72, 63, .52) !important;
    background: #f8dfdc !important;
}

/* Standalone record editor */
.data-record-editor {
    width: min(100%, 920px);
    margin: 0 auto;
    border: 1px solid var(--registry-line);
    background: #fffdf9;
}
.data-record-editor__header {
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--registry-line);
    background: #f6eee3;
}
.data-record-editor__header span {
    color: var(--registry-accent);
    font: 700 9px/1 var(--registry-mono);
    letter-spacing: .14em;
}
.data-record-editor__header h2 {
    margin: 5px 0 0;
    color: #4b4037;
    font-size: 16px;
    font-weight: 650;
}
.data-record-editor__back {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 11px;
    border: 1px solid var(--registry-line);
    border-radius: 6px;
    color: #6d5d50;
    background: #fffaf4;
    font-size: 12px;
    font-weight: 650;
    text-decoration: none;
}
.data-record-editor__back:hover { color: var(--registry-accent); border-color: rgba(167, 95, 52, .38); }
.data-record-editor__body { padding: 18px; overflow: auto; }
.data-record-editor__body form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 18px;
}
.data-record-editor__body form > input[type=hidden],
.data-record-editor__body form > [role=alert],
.data-record-editor__body form > input[type=submit] { grid-column: 1 / -1; }
.data-record-editor__body label,
.data-record-editor__body .form-label {
    color: #5a4d42 !important;
    font-size: 12px !important;
    font-weight: 650 !important;
}
.data-record-editor__body input:not([type=hidden]),
.data-record-editor__body select,
.data-record-editor__body textarea {
    min-height: 42px !important;
    border-color: var(--registry-line) !important;
    border-radius: 7px !important;
    color: #40372f !important;
    background: #fffaf4 !important;
    font-size: 13px !important;
}
.data-record-editor__body textarea { min-height: 112px !important; }
.data-record-editor__body input[type=submit] {
    width: max-content;
    min-width: 150px;
    min-height: 42px;
    border: 1px solid #8f4c29 !important;
    border-radius: 7px !important;
    color: #fffaf4 !important;
    background: var(--registry-accent) !important;
}
.data-record-editor__body input[type=submit]:hover { background: #8f4c29 !important; }

@media (max-width: 760px) {
    .data-record-editor__body form { grid-template-columns: 1fr; }
    .data-record-editor__header { align-items: flex-start; flex-direction: column; }
}

/* Standalone registry is a real application page, not a centred dialog. */
.data-page-shell {
    min-height: 100vh;
    display: block;
    padding: 0;
}

.data-registry-window--page {
    width: 100%;
    height: 100vh;
    min-height: 720px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.data-registry-window--page .data-registry-content {
    padding: 0 16px 16px;
}

.data-registry-window--page .data-grid-table .grid-table-wrap {
    max-height: calc(100vh - 250px);
}

/* High-contrast, light primary action for both AJAX and standalone Grid pages. */
.data-grid-filter .grid-filter-btn--primary {
    min-height: 38px !important;
    border: 1px solid #c66b36 !important;
    color: #3f2517 !important;
    background: #efb17d !important;
    box-shadow: 0 5px 14px rgba(126, 64, 29, .16);
    font-weight: 750 !important;
}

.data-grid-filter .grid-filter-btn--primary:hover {
    border-color: #ad5628 !important;
    color: #2f1a10 !important;
    background: #e59a5f !important;
}

.data-grid-filter .grid-filter-btn--primary:focus-visible {
    outline: 3px solid rgba(198, 107, 54, .28) !important;
    outline-offset: 2px;
}

.data-grid-filter .grid-filter-btn--primary svg,
.data-grid-filter .grid-filter-btn--primary span {
    color: inherit !important;
}

.data-grid-filter .grid-filter-btn svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
}

/* Grid edit/delete controls. */
.data-grid-table .grid-actions {
    min-width: 82px;
}

.data-grid-table .grid-action {
    width: 34px;
    height: 34px;
    border-radius: 7px !important;
}

.data-grid-table .grid-action svg {
    width: 15px;
    height: 15px;
}

.data-grid-table .grid-action--edit {
    color: #87603e !important;
    border-color: rgba(135, 96, 62, .25) !important;
    background: #fffaf3 !important;
}

.data-grid-table .grid-action--edit:hover {
    color: #a4552c !important;
    border-color: rgba(164, 85, 44, .45) !important;
    background: #f7e8d8 !important;
}

.data-grid-table .grid-action--delete {
    color: #9c4c48 !important;
    border-color: rgba(156, 76, 72, .24) !important;
    background: #fff8f6 !important;
}

.data-grid-table .grid-action--delete:hover {
    color: #b4312d !important;
    border-color: rgba(180, 49, 45, .42) !important;
    background: #fbe4e1 !important;
}

/* Full-page record editor, built with the framework Form/Field helpers. */
.data-record-editor {
    width: min(1040px, 100%);
    margin: 18px auto;
    border: 1px solid var(--registry-line);
    background: #fffdf9;
    box-shadow: 0 16px 40px rgba(62, 45, 31, .08);
}

.data-record-editor__header {
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--registry-line);
    background: #f7eee3;
}

.data-record-editor__header span {
    display: block;
    margin-bottom: 6px;
    color: var(--registry-accent);
    font: 700 9px/1 var(--registry-mono);
    letter-spacing: .14em;
}

.data-record-editor__header h2 {
    margin: 0;
    color: #44382f;
    font-size: 18px;
    font-weight: 650;
}

.data-record-editor__back {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex: 0 0 auto;
    padding: 0 13px;
    border: 1px solid var(--registry-line);
    border-radius: 7px;
    color: #6d5d50;
    background: #fffaf4;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.data-record-editor__back:hover {
    color: var(--registry-accent);
    border-color: rgba(167, 95, 52, .35);
}

.data-record-editor__body {
    padding: 20px;
}

.data-record-editor__body form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.data-record-editor__body form > div:has(textarea),
.data-record-editor__body form > [role="alert"] {
    grid-column: 1 / -1;
}

.data-record-editor__body label {
    color: #5d5045 !important;
    font-size: 12px !important;
    font-weight: 650 !important;
}

.data-record-editor__body input:not([type="hidden"]):not([type="submit"]),
.data-record-editor__body textarea,
.data-record-editor__body select {
    min-height: 42px;
    border-radius: 7px !important;
    border-color: var(--registry-line) !important;
    color: #40372f !important;
    background: #fff !important;
    font-size: 13px !important;
}

.data-record-editor__body textarea {
    min-height: 112px;
    resize: vertical;
}

.data-record-editor__body input[type="submit"] {
    min-height: 42px;
    justify-self: start;
    padding: 0 20px !important;
    border: 1px solid #8e4826 !important;
    border-radius: 7px !important;
    color: #fff !important;
    background: #a75f34 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    cursor: pointer;
}

.data-record-editor__body input[type="submit"]:hover {
    background: #894823 !important;
}

.native-dialog {
    color: #40372f;
}

@media (max-width: 760px) {
    .data-registry-window--page {
        min-height: 100vh;
    }

    .data-record-editor {
        margin: 10px auto;
    }

    .data-record-editor__body form {
        grid-template-columns: 1fr;
    }

    .data-record-editor__body form > div:has(textarea),
    .data-record-editor__body form > [role="alert"] {
        grid-column: auto;
    }
}

/* Fuzzer dashboard components */
.fuzzer-dashboard { padding: 14px 0 2px; }
.fuzzer-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}
.fuzzer-stat {
    min-height: 92px;
    padding: 14px;
    border: 1px solid var(--registry-line);
    background: #fffdf9;
    box-shadow: inset 0 1px rgba(255,255,255,.72);
}
.fuzzer-stat__label {
    color: #8e7f72;
    font: 700 8px/1 var(--registry-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
}
.fuzzer-stat strong {
    display: block;
    margin-top: 9px;
    color: #4b4037;
    font: 650 26px/1 var(--registry-mono);
}
.fuzzer-stat small {
    display: block;
    margin-top: 8px;
    color: #94867a;
    font: 9px/1.3 var(--registry-mono);
}
.fuzzer-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr);
    gap: 12px;
}
.fuzzer-panel {
    min-width: 0;
    border: 1px solid var(--registry-line);
    background: #fffdf9;
}
.fuzzer-panel + .fuzzer-panel { margin-top: 12px; }
.fuzzer-panel__head {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 12px;
    border-bottom: 1px solid var(--registry-line);
    background: #f6eee3;
}
.fuzzer-panel__head h2 {
    margin: 0;
    color: #4b4037;
    font-size: 12px;
    font-weight: 650;
}
.fuzzer-panel__head p {
    margin: 4px 0 0;
    color: #918275;
    font: 8px/1.25 var(--registry-mono);
}
.fuzzer-panel__body { padding: 10px 12px 12px; }
.fuzzer-panel__body--flush { padding: 0; }
.fuzzer-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.fuzzer-btn {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 11px;
    border: 1px solid var(--registry-line);
    border-radius: 7px;
    color: #6d5d50;
    background: #fffaf4;
    font-size: 11px;
    font-weight: 650;
    text-decoration: none;
    cursor: pointer;
}
.fuzzer-btn:hover { color: var(--registry-accent); border-color: rgba(167,95,52,.38); background: #fff7ef; }
.fuzzer-btn--primary { color: #fffaf4; border-color: #8f4c29; background: var(--registry-accent); }
.fuzzer-btn--primary:hover { color: #fff; border-color: #7d3f20; background: #8f4c29; }
.fuzzer-btn--danger { color: #a1483f; border-color: rgba(161,72,63,.28); background: #fff8f7; }
.fuzzer-btn--danger:hover { color: #852f29; border-color: rgba(161,72,63,.5); background: #f8dfdc; }
.fuzzer-table-wrap { overflow: auto; }
.fuzzer-table { width: 100%; min-width: 650px; border-collapse: collapse; font: 10px/1.4 var(--registry-mono); }
.fuzzer-table th,
.fuzzer-table td { padding: 10px 11px; border-bottom: 1px solid rgba(83,64,47,.09); text-align: left; vertical-align: middle; }
.fuzzer-table th { color: #765f4d; background: #ede1d1; font-size: 9px; letter-spacing: .065em; text-transform: uppercase; white-space: nowrap; }
.fuzzer-table tbody tr:nth-child(even) td { background: rgba(250,246,240,.46); }
.fuzzer-table tbody tr:hover td { background: #f2e7da; }
.fuzzer-table td:last-child { white-space: nowrap; }
.fuzzer-table__actions { display: flex; justify-content: flex-end; align-items: center; gap: 6px; }
.fuzzer-table__actions form { margin: 0; }
.fuzzer-pill {
    display: inline-flex;
    min-height: 21px;
    align-items: center;
    padding: 0 7px;
    border: 1px solid rgba(119,111,103,.18);
    border-radius: 4px;
    color: #776f67;
    background: rgba(119,111,103,.08);
    font: 700 8px/1 var(--registry-mono);
    white-space: nowrap;
}
.fuzzer-pill--ok { color: #34705d; border-color: rgba(52,112,93,.2); background: rgba(70,146,115,.1); }
.fuzzer-pill--warn { color: #96642f; border-color: rgba(150,100,47,.2); background: rgba(194,133,62,.11); }
.fuzzer-pill--bad { color: #a1483f; border-color: rgba(161,72,63,.2); background: rgba(185,79,69,.1); }
.http-status {
  display: inline;
  padding: 0;
  border: 0;
  background: transparent;
  font: 700 11px/1.2 var(--registry-mono);
  letter-spacing: .02em;
}
.http-status--2xx { color: #34705d; }
.http-status--3xx { color: #a56b19; }
.http-status--4xx { color: #171717; }
.http-status--5xx { color: #b23a32; }
.http-status--muted { color: #918275; }
.fuzzer-empty { padding: 28px 14px; color: #918275; font: 10px/1.4 var(--registry-mono); text-align: center; }
.fuzzer-import { width: min(100%, 760px); margin: 18px auto 0; border: 1px solid var(--registry-line); background: #fffdf9; }
.fuzzer-import__head { padding: 14px 16px; border-bottom: 1px solid var(--registry-line); background: #f6eee3; }
.fuzzer-import__head h2 { margin: 0; color: #4b4037; font-size: 16px; }
.fuzzer-import__head p { margin: 7px 0 0; color: #8d7f73; font-size: 11px; }
.fuzzer-import__body { padding: 18px; }
.fuzzer-import__result { margin-bottom: 14px; padding: 10px 12px; border: 1px solid rgba(52,112,93,.22); color: #34705d; background: rgba(70,146,115,.08); font: 10px/1.5 var(--registry-mono); }

/* Make the framework Grid feel native inside Fuzzer. */
.data-grid-table .grid-actions { min-width: 74px; }
.data-grid-table .grid-action { width: 32px; height: 32px; border-radius: 6px !important; background: #fffaf4 !important; }
.data-grid-table .grid-action svg { width: 15px; height: 15px; }
.data-grid-table .grid-action--edit { color: #8a542f !important; border-color: rgba(138,84,47,.28) !important; }
.data-grid-table .grid-action--delete { color: #a1483f !important; border-color: rgba(161,72,63,.25) !important; }
.data-grid-table input[type=checkbox] { accent-color: var(--registry-accent); }

@media (max-width: 1100px) {
    .fuzzer-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fuzzer-dashboard-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .fuzzer-stats { grid-template-columns: 1fr 1fr; }
    .fuzzer-stat { min-height: 80px; }
}

.fuzzer-import__body form { display: grid; gap: 14px; }
.fuzzer-import__body label,
.fuzzer-import__body .form-label { color: #5a4d42 !important; font-size: 12px !important; font-weight: 650 !important; }
.fuzzer-import__body input:not([type=hidden]),
.fuzzer-import__body select,
.fuzzer-import__body textarea {
    min-height: 42px !important;
    border-color: var(--registry-line) !important;
    border-radius: 7px !important;
    color: #40372f !important;
    background: #fffaf4 !important;
    font-size: 13px !important;
}
.fuzzer-import__body input[type=file] { padding: 8px 10px !important; }
.fuzzer-import__body input[type=submit] {
    width: max-content;
    min-width: 150px;
    min-height: 42px;
    border: 1px solid #8f4c29 !important;
    border-radius: 7px !important;
    color: #fffaf4 !important;
    background: var(--registry-accent) !important;
    cursor: pointer;
}
.data-grid-filter .grid-filter-btn--create {
    color: #fffaf4 !important;
    border: 1px solid #8f4c29 !important;
    background: var(--registry-accent) !important;
}
.data-grid-filter .grid-filter-btn--create:hover { background: #8f4c29 !important; }


/* -------------------------------------------------------------------------
   FUZZER V3: readable controls + standalone AJAX Grid
   Tailwind preflight removes native border widths, so define the complete
   control surface here instead of relying on Bootstrap's .form-control.
   ------------------------------------------------------------------------- */

.data-grid-filter .mb-3,
.data-record-editor__body .mb-3,
.fuzzer-import__body .mb-3 {
    min-width: 0;
    margin: 0 !important;
}

.data-grid-filter label,
.data-record-editor__body label,
.fuzzer-import__body label {
    display: block;
    margin: 0 0 7px !important;
    color: #4a3e34 !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    letter-spacing: .01em;
}

.data-grid-filter input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.data-grid-filter select,
.data-grid-filter textarea,
.data-record-editor__body input:not([type="hidden"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.data-record-editor__body select,
.data-record-editor__body textarea,
.fuzzer-import__body input:not([type="hidden"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.fuzzer-import__body select,
.fuzzer-import__body textarea {
    width: 100%;
    min-height: 40px !important;
    border: 1px solid #c7b7a6 !important;
    border-radius: 7px !important;
    padding: 8px 11px !important;
    color: #352d27 !important;
    background-color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(69, 48, 32, .055), inset 0 1px 0 rgba(255,255,255,.75) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    opacity: 1 !important;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.data-grid-filter input::placeholder,
.data-record-editor__body input::placeholder,
.fuzzer-import__body input::placeholder,
.data-grid-filter textarea::placeholder,
.data-record-editor__body textarea::placeholder,
.fuzzer-import__body textarea::placeholder {
    color: #9b8d80 !important;
    opacity: 1 !important;
}

.data-grid-filter input:focus,
.data-grid-filter select:focus,
.data-grid-filter textarea:focus,
.data-record-editor__body input:not([type="submit"]):focus,
.data-record-editor__body select:focus,
.data-record-editor__body textarea:focus,
.fuzzer-import__body input:not([type="submit"]):focus,
.fuzzer-import__body select:focus,
.fuzzer-import__body textarea:focus {
    border-color: #a75f34 !important;
    background: #fffdf9 !important;
    box-shadow: 0 0 0 3px rgba(167, 95, 52, .14) !important;
}

.data-grid-filter select,
.data-record-editor__body select,
.fuzzer-import__body select {
    appearance: auto;
    cursor: pointer;
}

.data-record-editor__body form > .mb-3,
.fuzzer-import__body form > .mb-3 {
    display: flex;
    flex-direction: column;
    align-self: start;
}

.data-record-editor__body textarea,
.fuzzer-import__body textarea {
    min-height: 116px !important;
}

.data-record-editor__body .invalid-feedback,
.fuzzer-import__body .invalid-feedback {
    display: block;
    margin-top: 6px;
    color: #a33d35;
    font-size: 11px;
    line-height: 1.35;
}

.data-record-editor__body .is-invalid,
.fuzzer-import__body .is-invalid {
    border-color: #b94b42 !important;
    box-shadow: 0 0 0 3px rgba(185, 75, 66, .10) !important;
}

/* Keep the submit button visible after the broad input rules above. */
.data-record-editor__body input[type="submit"],
.fuzzer-import__body input[type="submit"] {
    border: 1px solid #8f4c29 !important;
    color: #fff !important;
    background: #a75f34 !important;
    box-shadow: 0 5px 14px rgba(126, 64, 29, .16) !important;
}

/* Filter action buttons need a complete border/background definition too. */
.data-grid-filter .grid-filter-btn--secondary {
    border: 1px solid #c7b7a6 !important;
    color: #54473c !important;
    background: #fff !important;
}
.data-grid-filter .grid-filter-btn--secondary:hover {
    border-color: #aa927e !important;
    background: #f9f2e9 !important;
}

/* AJAX feedback: keep current rows in place and make the refresh visible. */
#table {
    position: relative;
    min-height: 72px;
    transition: opacity .14s ease;
}
#table.is-loading {
    opacity: .48;
    pointer-events: none;
}
#table.is-loading::after {
    content: 'Loading…';
    position: absolute;
    z-index: 12;
    top: 12px;
    right: 12px;
    padding: 7px 10px;
    border: 1px solid rgba(167,95,52,.23);
    border-radius: 6px;
    color: #7d4b2d;
    background: rgba(255,250,244,.96);
    box-shadow: 0 8px 24px rgba(68,46,31,.10);
    font: 700 9px/1 var(--registry-mono);
    letter-spacing: .05em;
    text-transform: uppercase;
}

/* Pagination and page-size selector do not depend on Bootstrap JS anymore. */
.data-grid-table .workspace-limit-dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-right: 12px !important;
}
.data-grid-table .workspace-limit-dropdown__label {
    color: #83766a;
    font: 10px/1.2 var(--registry-mono);
}
.data-grid-table .workspace-limit-dropdown__trigger {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #c7b7a6 !important;
    border-radius: 6px !important;
    padding: 0 9px !important;
    color: #54473c !important;
    background: #fff !important;
    font-size: 10px !important;
    cursor: pointer;
}
.data-grid-table .workspace-limit-dropdown .dropdown-menu {
    position: absolute;
    z-index: 30;
    right: 0;
    bottom: calc(100% + 6px);
    min-width: 86px;
    display: none;
    overflow: hidden;
    border: 1px solid #c7b7a6;
    border-radius: 7px;
    padding: 4px;
    background: #fffdf9;
    box-shadow: 0 12px 32px rgba(68,46,31,.17);
}
.data-grid-table .workspace-limit-dropdown.is-open .dropdown-menu {
    display: grid;
}
.data-grid-table .workspace-limit-dropdown .dropdown-item {
    display: block;
    padding: 7px 9px;
    color: #5d5045;
    text-decoration: none;
}
.data-grid-table .workspace-limit-dropdown .dropdown-item:hover,
.data-grid-table .workspace-limit-dropdown .dropdown-item.active {
    color: #7d4b2d;
    background: #f3e7da;
}

.data-grid-table .pagination {
    display: flex;
    align-items: center;
    gap: 3px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.data-grid-table .page-link {
    min-width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d4c6b7;
    border-radius: 6px;
    color: #66584c;
    background: #fff;
    font-size: 10px;
    text-decoration: none;
}
.data-grid-table .page-item.active .page-link {
    border-color: #a75f34;
    color: #fff;
    background: #a75f34;
}
.data-grid-table .page-item.disabled .page-link {
    opacity: .4;
    pointer-events: none;
}

@media (max-width: 760px) {
    .data-record-editor__body,
    .fuzzer-import__body {
        padding: 14px;
    }
    .data-grid-filter {
        padding: 12px;
    }
}

/* v4: visible form controls regardless of Tailwind/Bootstrap resets. */
.data-grid-filter input:not([type="hidden"]),
.data-grid-filter select,
.data-record-editor__body input:not([type="hidden"]):not([type="submit"]),
.data-record-editor__body select,
.data-record-editor__body textarea,
.fuzzer-import input:not([type="hidden"]),
.fuzzer-import select,
.fuzzer-import textarea {
    border: 1px solid var(--registry-line) !important;
    outline: none;
    box-shadow: 0 1px 2px rgba(65, 49, 37, .04);
}
.data-grid-filter input:focus,
.data-grid-filter select:focus,
.data-record-editor__body input:focus,
.data-record-editor__body select:focus,
.data-record-editor__body textarea:focus,
.fuzzer-import input:focus,
.fuzzer-import select:focus,
.fuzzer-import textarea:focus {
    border-color: rgba(167, 95, 52, .68) !important;
    box-shadow: 0 0 0 3px rgba(167, 95, 52, .10) !important;
}

/* Login */
.auth-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 24px;
    color: #40372f;
    background: #eee4d8;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.auth-card {
    width: min(100%, 430px);
    padding: 28px;
    border: 1px solid #cdbba8;
    border-radius: 12px;
    background: #fffdf9;
    box-shadow: 0 22px 60px rgba(64, 45, 31, .12);
}
.auth-card__eyebrow { color: #a75f34; font: 700 10px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .14em; }
.auth-card h1 { margin: 8px 0 6px; font-size: 24px; }
.auth-card p { margin: 0 0 22px; color: #76695e; font-size: 13px; line-height: 1.55; }
.auth-card form { display: grid; gap: 9px; }
.auth-card label { margin-top: 7px; font-size: 12px; font-weight: 700; }
.auth-card input {
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid #cdbba8;
    border-radius: 7px;
    color: #40372f;
    background: #fffaf4;
    font-size: 14px;
    outline: none;
}
.auth-card input:focus { border-color: #a75f34; box-shadow: 0 0 0 3px rgba(167,95,52,.10); }
.auth-card button {
    min-height: 44px;
    margin-top: 12px;
    border: 1px solid #8f4c29;
    border-radius: 7px;
    color: #fff;
    background: #a75f34;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
.auth-alert { margin: 0 0 14px; padding: 10px 12px; border: 1px solid #e6b2ad; border-radius: 7px; color: #8f302a; background: #fff0ee; font-size: 12px; }
.auth-error { color: #a1483f; font-size: 11px; }

/* Request evidence page */
.request-detail { max-width: 1180px; margin: 14px auto 0; border: 1px solid var(--registry-line); background: #fffdf9; }
.request-detail__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-bottom: 1px solid var(--registry-line); background: #f6eee3; }
.request-detail__header span { color: var(--registry-accent); font: 700 9px/1 var(--registry-mono); letter-spacing: .12em; }
.request-detail__header h2 { max-width: 820px; margin: 5px 0 0; overflow: hidden; color: #493e35; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.request-detail__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-bottom: 1px solid var(--registry-line); }
.request-detail__grid > div { min-width: 0; padding: 12px 14px; border-right: 1px solid var(--registry-line); }
.request-detail__grid > div:last-child { border-right: 0; }
.request-detail__grid small { display: block; margin-bottom: 5px; color: #8c7d70; font: 9px/1 var(--registry-mono); text-transform: uppercase; }
.request-detail__grid strong { color: #4b4037; font: 650 13px/1.25 var(--registry-mono); }
.request-detail__section { padding: 15px 16px; border-bottom: 1px solid var(--registry-line); }
.request-detail__section:last-child { border-bottom: 0; }
.request-detail__section h3 { margin: 0 0 9px; color: #5c4e43; font-size: 12px; }
.request-detail__section p { margin: 0; color: #66584d; font-size: 12px; line-height: 1.6; }
.request-detail__section dl { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 6px 14px; margin: 0; font-size: 11px; }
.request-detail__section dt { color: #8b7b6d; font-weight: 700; }
.request-detail__section dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: #51463d; }
.request-detail__section pre { max-height: 420px; margin: 0; overflow: auto; padding: 12px; border: 1px solid #ded1c3; border-radius: 6px; color: #4c4138; background: #f8f2ea; font: 11px/1.55 var(--registry-mono); white-space: pre-wrap; overflow-wrap: anywhere; }
.request-detail__section--error pre { color: #8f302a; background: #fff0ee; }
.fuzzer-empty-page { display: grid; place-items: center; min-height: 60vh; text-align: center; }
.fuzzer-empty-page strong { color: #a75f34; font-size: 54px; }
.fuzzer-empty-page h2 { margin: 4px 0 18px; }

@media (max-width: 900px) {
    .request-detail__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .request-detail__grid > div:nth-child(3) { border-right: 0; }
}
@media (max-width: 600px) {
    .request-detail__header { align-items: flex-start; flex-direction: column; }
    .request-detail__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .request-detail__grid > div { border-right: 1px solid var(--registry-line) !important; }
    .request-detail__grid > div:nth-child(even) { border-right: 0 !important; }
    .request-detail__section dl { grid-template-columns: 1fr; }
}


/* Scan drill-down links keep scan/result navigation obvious without looking like buttons. */
.fuzzer-scan-link {
    color: #0f766e;
    font-weight: 700;
    text-decoration: none;
    text-underline-offset: 2px;
}
.fuzzer-scan-link:hover {
    color: #115e59;
    text-decoration: underline;
}
