:root {
    --iaa-blue: #082b55;
    --iaa-blue-2: #0f477e;
    --iaa-green: #86c441;
    --iaa-orange: #f08b22;
    --ink: #071b38;
    --muted: #64748b;
    --line: #dbe4ef;
    --panel: #ffffff;
    --soft: #f3f7fb;
    --success-bg: #e8f8ee;
    --success-text: #116b34;
    --warning-bg: #fff6dd;
    --warning-text: #8a5a00;
    --error-bg: #fdecec;
    --error-text: #9f1d1d;
    --info-bg: #eaf3ff;
    --info-text: #0f477e;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background:
        radial-gradient(circle at top left, rgba(134, 196, 65, 0.18), transparent 32rem),
        radial-gradient(circle at bottom right, rgba(240, 139, 34, 0.18), transparent 28rem),
        linear-gradient(135deg, #edf4f8 0%, #f8fbff 100%);
}

body {
    margin: 0;
    min-height: 100%;
    color: var(--ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    line-height: 1.5;
}

.page-shell {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
    padding: 28px 0;
}

.hero-card {
    overflow: hidden;
    border: 1px solid rgba(8, 43, 85, 0.12);
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 24px 70px rgba(7, 27, 56, 0.13);
    backdrop-filter: blur(10px);
}

.brand-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 24px 28px;
    border-bottom: 1px solid var(--line);
}

.brand-mark {
    position: relative;
    width: 52px;
    height: 42px;
    flex: 0 0 auto;
}

.brand-slash {
    position: absolute;
    top: 4px;
    width: 13px;
    height: 34px;
    border-radius: 4px;
    transform: skewX(-20deg);
}

.slash-one {
    left: 4px;
    background: #76808e;
}

.slash-two {
    left: 18px;
    background: var(--iaa-blue-2);
}

.slash-three {
    left: 32px;
    background: var(--iaa-green);
}

.brand-copy strong,
.brand-copy span {
    display: block;
}

.brand-copy strong {
    font-size: 16px;
    letter-spacing: -0.01em;
}

.brand-copy span {
    color: var(--muted);
    font-size: 13px;
}

.content-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 34px;
    padding: 42px;
}

.intro-panel {
    padding: 20px 0;
}

.eyebrow {
    display: inline-flex;
    margin: 0 0 18px;
    padding: 7px 12px;
    border-radius: 999px;
    background: var(--success-bg);
    color: var(--success-text);
    font-weight: 800;
    font-size: 13px;
}

h1,
h2 {
    margin: 0;
    line-height: 1.08;
    letter-spacing: -0.04em;
}

h1 {
    max-width: 620px;
    font-size: clamp(36px, 6vw, 64px);
}

h2 {
    font-size: 26px;
}

.lead {
    max-width: 640px;
    margin: 24px 0;
    color: #334155;
    font-size: clamp(17px, 2vw, 20px);
}

.trust-list {
    display: grid;
    gap: 12px;
    max-width: 580px;
    margin-top: 28px;
}

.trust-list div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #f9fbfd;
    color: #26364b;
    font-weight: 650;
}

.tick {
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--iaa-green);
    color: #fff;
    font-size: 14px;
    font-weight: 900;
}

.checker-panel {
    align-self: start;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background:
        linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
    box-shadow: 0 16px 40px rgba(8, 43, 85, 0.08);
}

.form-help {
    margin: 10px 0 24px;
    color: var(--muted);
}

label {
    display: block;
    margin: 18px 0 8px;
    color: #19304f;
    font-weight: 800;
}

input {
    width: 100%;
    min-height: 54px;
    padding: 13px 15px;
    border: 1px solid #c9d6e5;
    border-radius: 14px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-size: 18px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

input:focus {
    border-color: var(--iaa-blue-2);
    box-shadow: 0 0 0 4px rgba(15, 71, 126, 0.14);
}

button,
.result-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 54px;
    margin-top: 22px;
    padding: 13px 18px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--iaa-blue) 0%, var(--iaa-blue-2) 100%);
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(8, 43, 85, 0.22);
}

button:hover,
.result-button:hover {
    filter: brightness(1.05);
}

button:disabled {
    cursor: wait;
    opacity: 0.72;
}

.result-area {
    margin-top: 20px;
}

.notice {
    padding: 16px;
    border-radius: 16px;
    font-size: 15px;
}

.notice p {
    margin: 8px 0 0;
}

.notice-success {
    background: var(--success-bg);
    color: var(--success-text);
}

.notice-warning {
    background: var(--warning-bg);
    color: var(--warning-text);
}

.notice-error {
    background: var(--error-bg);
    color: var(--error-text);
}

.notice-info {
    background: var(--info-bg);
    color: var(--info-text);
}

.notice .result-button {
    width: auto;
    margin-top: 8px;
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 12px;
    font-size: 14px;
}

.small-muted {
    color: inherit;
    opacity: 0.8;
    font-size: 13px;
}

.footer-note {
    max-width: 820px;
    margin: 18px auto 0;
    color: #55657a;
    text-align: center;
    font-size: 14px;
}

@media (max-width: 820px) {
    .page-shell {
        width: min(100% - 22px, 640px);
        padding: 12px 0 22px;
    }

    .hero-card {
        border-radius: 24px;
    }

    .brand-row {
        padding: 18px;
    }

    .content-grid {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 22px 18px 24px;
    }

    .intro-panel {
        padding: 0;
    }

    .lead {
        margin: 18px 0;
    }

    .trust-list {
        margin-top: 18px;
    }

    .checker-panel {
        padding: 20px;
        border-radius: 20px;
    }
}


/* Signup additions */
.top-nav {
    margin-left: auto;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.top-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 13px;
    border-radius: 999px;
    color: var(--iaa-blue);
    text-decoration: none;
    font-weight: 750;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(8, 43, 85, 0.10);
}

.top-nav a[aria-current="page"] {
    color: #fff;
    background: var(--iaa-blue);
}

.signup-grid {
    align-items: start;
}

.signup-panel h3 {
    margin: 22px 0 6px;
    font-size: 1.05rem;
}

.info-box {
    margin-top: 22px;
    padding: 18px;
    border-radius: 18px;
    background: rgba(8, 43, 85, 0.06);
    border: 1px solid rgba(8, 43, 85, 0.10);
}

.info-box ul {
    margin: 8px 0 14px 20px;
    padding: 0;
}

.route-choice {
    margin: 0 0 18px;
    padding: 0;
    border: 0;
}

.route-choice legend {
    margin-bottom: 10px;
    font-weight: 800;
}

.choice-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: start;
    margin-bottom: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--soft);
    cursor: pointer;
}

.choice-card input {
    width: auto;
    margin-top: 4px;
}

.choice-card strong,
.choice-card small {
    display: block;
}

.choice-card small {
    color: var(--muted);
    line-height: 1.35;
}

.form-row.two-col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.form-divider {
    margin: 22px 0;
    border: 0;
    border-top: 1px solid var(--line);
}

.inline-action {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: end;
}

.secondary-button {
    min-height: 48px;
    border: 1px solid rgba(8, 43, 85, 0.18);
    border-radius: 14px;
    padding: 0 16px;
    color: var(--iaa-blue);
    background: #fff;
    font-weight: 800;
    cursor: pointer;
}

.secondary-button:hover {
    background: #f7fbff;
}

.checkbox-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: start;
    margin: 16px 0 20px;
    color: var(--muted);
    font-size: 0.95rem;
}

.checkbox-row input {
    width: auto;
    margin-top: 4px;
}

.mini-result {
    margin-top: 10px;
}

@media (max-width: 760px) {
    .brand-row {
        align-items: flex-start;
    }

    .top-nav {
        width: 100%;
        margin-left: 0;
    }

    .form-row.two-col,
    .inline-action {
        grid-template-columns: 1fr;
    }

    .secondary-button {
        width: 100%;
    }
}

/* UX polish overrides */
.brand-home {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: inherit;
    text-decoration: none;
}

.top-nav {
    margin-left: auto;
    display: inline-flex;
    gap: 4px;
    padding: 5px;
    border: 1px solid rgba(8, 43, 85, 0.12);
    border-radius: 999px;
    background: #f3f7fb;
    box-shadow: inset 0 1px 2px rgba(8, 43, 85, 0.04);
}

.top-nav a {
    min-height: 34px;
    padding: 7px 14px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #334155;
    font-size: 14px;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.top-nav a:hover {
    background: rgba(255, 255, 255, 0.8);
    color: var(--iaa-blue);
}

.top-nav a[aria-current="page"] {
    color: #fff;
    background: linear-gradient(135deg, var(--iaa-blue) 0%, var(--iaa-blue-2) 100%);
    box-shadow: 0 4px 10px rgba(8, 43, 85, 0.18);
}

.privacy-note {
    max-width: 580px;
    margin: 20px 0 0;
    color: #55657a;
    font-size: 15px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.route-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #f3f7fb;
}

.route-tabs .choice-card {
    position: relative;
    display: block;
    min-height: 92px;
    margin: 0;
    padding: 15px 14px;
    border: 1px solid transparent;
    border-radius: 14px;
    background: transparent;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.route-tabs .choice-card:hover {
    background: rgba(255, 255, 255, 0.75);
}

.route-tabs .choice-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.route-tabs .choice-card strong {
    display: block;
    margin-bottom: 4px;
    color: #19304f;
    font-size: 15px;
    line-height: 1.2;
}

.route-tabs .choice-card small {
    display: block;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.35;
}

.route-tabs .choice-card:has(input:checked) {
    background: #fff;
    border-color: rgba(8, 43, 85, 0.18);
    box-shadow: 0 8px 20px rgba(8, 43, 85, 0.10);
}

.route-tabs .choice-card:has(input:checked)::after {
    content: "";
    position: absolute;
    top: 12px;
    right: 12px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--iaa-green);
    box-shadow: 0 0 0 4px rgba(134, 196, 65, 0.16);
}

.label-optional {
    color: var(--muted);
    font-weight: 700;
    font-size: 13px;
}

.compact-checkbox {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 14px;
    background: #f8fbff;
    border: 1px solid var(--line);
}

.inline-action .secondary-button {
    width: auto;
    min-width: 92px;
    margin-top: 0;
    box-shadow: none;
}

.signup-panel .primary-button {
    margin-top: 10px;
}

@media (max-width: 760px) {
    .brand-row {
        flex-wrap: wrap;
        align-items: center;
    }

    .brand-home {
        flex: 1 1 100%;
    }

    .top-nav {
        width: 100%;
        margin-left: 0;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .top-nav a {
        justify-content: center;
    }

    .route-tabs {
        grid-template-columns: 1fr;
    }

    .route-tabs .choice-card {
        min-height: auto;
        padding-right: 36px;
    }
}

/* Signup v3 refinements */
.signup-panel label[for="national_insurance_number"] {
    margin-top: 18px;
}

.full-width-input {
    width: 100%;
}

#company_number_block[hidden],
#company_confirmed_actions[hidden],
#manual_installer_fields[hidden] {
    display: none !important;
}

.compact-checkbox {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 18px 0 20px;
    padding: 14px 16px;
    border-radius: 16px;
    background: #f8fbff;
    border: 1px solid var(--line);
    color: #3b4b61;
    font-weight: 750;
}

.compact-checkbox input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    display: inline-grid;
    place-content: center;
    width: 22px;
    height: 22px;
    min-height: 22px;
    flex: 0 0 22px;
    margin: 0;
    padding: 0;
    border: 2px solid #b6c6d8;
    border-radius: 7px;
    background: #fff;
    cursor: pointer;
}

.compact-checkbox input[type="checkbox"]::before {
    content: "";
    width: 11px;
    height: 11px;
    transform: scale(0);
    transition: transform 0.12s ease-in-out;
    clip-path: polygon(14% 44%, 0 59%, 41% 100%, 100% 21%, 84% 8%, 38% 68%);
    background: #fff;
}

.compact-checkbox input[type="checkbox"]:checked {
    border-color: var(--iaa-green);
    background: var(--iaa-green);
}

.compact-checkbox input[type="checkbox"]:checked::before {
    transform: scale(1);
}

.compact-checkbox span {
    line-height: 1.35;
}

.text-button {
    width: auto;
    min-height: 0;
    margin-top: 12px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--iaa-blue);
    box-shadow: none;
    cursor: pointer;
    font: inherit;
    font-weight: 850;
    text-align: left;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.text-button:hover {
    filter: none;
    color: var(--iaa-blue-2);
}

.danger-text {
    color: #9f1d1d;
}

.manual-toggle {
    display: inline-flex;
    margin-top: 14px;
}

.manual-installer-fields {
    margin-top: 16px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fbfdff;
}

.manual-installer-fields label:first-of-type {
    margin-top: 0;
}

.company-summary {
    display: grid;
    gap: 10px;
}

.company-summary-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.company-summary-head strong {
    color: #10284a;
    font-size: 16px;
}

.company-summary-head span {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef3f8;
    color: #3d5068;
    font-size: 12px;
    font-weight: 850;
}

.company-status {
    display: inline-flex;
    width: max-content;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    text-transform: capitalize;
}

.company-status-ok {
    background: var(--success-bg);
    color: var(--success-text);
}

.company-status-blocked {
    background: var(--error-bg);
    color: var(--error-text);
}

.company-summary address {
    margin: 0;
    color: #31435b;
    font-style: normal;
    line-height: 1.45;
}

.company-help,
.company-warning {
    margin: 10px 0 0;
    font-size: 14px;
    line-height: 1.45;
}

.company-help {
    color: var(--success-text);
}

.company-warning {
    color: var(--error-text);
    font-weight: 800;
}

.company-confirmed-actions {
    margin-bottom: 8px;
}

#company_number[readonly] {
    background: #f3f7fb;
    color: #64748b;
}

@media (max-width: 760px) {
    .company-summary-head {
        display: grid;
        gap: 8px;
    }

    .company-summary-head span {
        width: max-content;
    }
}

/* Installer admin workspace */
.hidden{display:none!important}.admin-shell{max-width:1180px}.installer-admin-card{padding:28px}.installer-login-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.7fr);gap:28px;align-items:start}.admin-hero-bar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-top:16px;padding:22px;border-radius:24px;background:linear-gradient(135deg,#12385c,#2f6f9f);color:#fff}.admin-hero-bar h1{margin:0;color:#fff}.admin-hero-bar .form-help,.admin-hero-bar .eyebrow{color:rgba(255,255,255,.82)}.installer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.admin-panel{background:#fff;border:1px solid rgba(18,56,92,.12);border-radius:22px;box-shadow:0 16px 45px rgba(18,56,92,.08);padding:22px}.admin-panel.span-2{grid-column:span 2}.admin-panel h2{margin:0 0 8px;color:#12385c}.panel-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.admin-list{display:grid;gap:10px;margin-top:14px}.admin-user-row,.admin-accreditation-row{width:100%;border:1px solid rgba(18,56,92,.1);background:#f7fafc;border-radius:16px;padding:14px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:14px}.admin-user-row{cursor:pointer}.admin-user-row.active{border-color:#2f6f9f;background:#eef7ff}.admin-user-row b,.admin-accreditation-row b{display:block;color:#12385c}.admin-user-row span,.admin-accreditation-row span{display:block;color:#5b6b7d;font-size:13px;margin-top:3px}.secondary-button,.danger-button{border:0;border-radius:999px;padding:10px 14px;font-weight:800;cursor:pointer}.secondary-button{background:#eef3f7;color:#12385c}.danger-button{background:#fff1f1;color:#9e1b1b}.empty-state{margin:0;color:#5b6b7d;background:#f7fafc;border-radius:16px;padding:16px}.admin-panel label{display:block;margin-top:12px;font-weight:700;color:#12385c}.admin-panel input,.admin-panel select{width:100%;box-sizing:border-box;margin-top:6px;border:1px solid rgba(18,56,92,.18);border-radius:14px;padding:12px 13px;font:inherit}.admin-panel button:not(.secondary-button):not(.danger-button){margin-top:14px;width:100%}.top-nav a[aria-current="page"]{background:#12385c;color:#fff}@media(max-width:850px){.installer-login-layout,.installer-grid{grid-template-columns:1fr}.admin-panel.span-2{grid-column:auto}.admin-hero-bar,.panel-heading,.admin-accreditation-row{flex-direction:column;align-items:stretch}.installer-admin-card{padding:18px}}

/* Installer admin compact desktop layout v0.10 */
.admin-shell{max-width:1200px}.installer-admin-card{padding:18px 28px 26px}.compact-admin-hero{align-items:center;margin-top:10px;padding:18px 22px;border-radius:22px}.compact-admin-hero h1{font-size:clamp(32px,4vw,48px);line-height:1.02;max-width:720px}.compact-admin-hero .secondary-button{width:auto;min-width:180px;margin-top:0;background:#eef3f7;color:#12385c;box-shadow:none}.installer-admin-layout{display:grid;grid-template-columns:minmax(460px,1.2fr) minmax(320px,.8fr);gap:18px;margin-top:18px}.users-panel,.accreditations-panel{grid-column:1}.add-panel,.create-skill-panel{grid-column:2}.panel-heading.compact-heading{align-items:center}.panel-heading.compact-heading h2{margin-bottom:4px}.panel-heading.compact-heading p{margin:0;color:#5b6b7d}.slim-button{width:auto!important;min-height:42px;margin-top:0!important;box-shadow:none}.table-tools{margin:12px 0}.table-tools input{min-height:44px;font-size:15px}.admin-table-wrap{max-height:380px;overflow:auto;border:1px solid rgba(18,56,92,.12);border-radius:16px;background:#fff}.admin-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}.admin-table th{position:sticky;top:0;z-index:1;background:#eef5fb;color:#12385c;text-align:left;padding:10px 12px;font-size:13px}.admin-table td{padding:11px 12px;border-top:1px solid rgba(18,56,92,.08);vertical-align:middle}.admin-table tr.admin-user-row{cursor:pointer}.admin-table tr.admin-user-row:hover td{background:#f7fbff}.admin-table tr.admin-user-row.active td{background:#eaf5ff}.admin-table b{color:#12385c}.empty-cell{color:#5b6b7d;text-align:center;padding:22px!important}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#eef3f7;color:#12385c;font-weight:800;font-size:12px}.status-active{background:#e7f7ee;color:#17643a}.status-suspended{background:#fff1f1;color:#9e1b1b}.admin-accreditation-row{padding:12px 14px}.compact-action{width:auto!important;min-width:110px;margin-top:0!important;box-shadow:none}.admin-panel input[type="hidden"]{display:none}.create-skill-panel,.add-panel{align-self:start}.add-panel .form-row.two-col{gap:10px}.add-panel button,.create-skill-panel button{min-height:48px}.result-area{margin-top:12px}.notice{padding:12px 14px}.admin-panel{padding:18px}@media(max-width:920px){.installer-admin-layout{grid-template-columns:1fr}.users-panel,.accreditations-panel,.add-panel,.create-skill-panel{grid-column:auto}.compact-admin-hero{flex-direction:column;align-items:stretch}.compact-admin-hero .secondary-button{width:100%}.admin-table-wrap{max-height:320px}}

/* Installer admin v0.11 refinements */
.admin-shell{max-width:1320px;width:100%;}
.installer-admin-card{width:100%;box-sizing:border-box;}
.installer-admin-layout{grid-template-columns:minmax(640px,1.35fr) minmax(360px,.65fr);align-items:start;}
.users-panel{min-width:0;}
.admin-table-wrap{overflow-x:auto;max-height:460px;}
.admin-table{table-layout:fixed;min-width:720px;}
.admin-table th,.admin-table td{box-sizing:border-box;white-space:normal;overflow-wrap:anywhere;}
.admin-table th:nth-child(1),.admin-table td:nth-child(1){width:34%;}
.admin-table th:nth-child(2),.admin-table td:nth-child(2){width:32%;}
.admin-table th:nth-child(3),.admin-table td:nth-child(3){width:20%;}
.admin-table th:nth-child(4),.admin-table td:nth-child(4){width:14%;text-align:left;}
.admin-table tr.admin-user-row{display:table-row;width:auto;border:0;background:transparent;border-radius:0;padding:0;text-align:left;}
.admin-table tr.admin-user-row td{display:table-cell;}
.admin-table tr.admin-user-row.active td{border-top-color:rgba(47,111,159,.24);border-bottom:1px solid rgba(47,111,159,.16);}
.admin-table tr.admin-user-row.active td:first-child{border-left:2px solid #2f6f9f;}
.admin-table tr.admin-user-row.active td:last-child{border-right:2px solid #2f6f9f;}
.add-panel{position:sticky;top:16px;}
.create-skill-panel{display:none!important;}
.modal-backdrop{position:fixed;inset:0;background:rgba(8,22,38,.54);display:grid;place-items:center;padding:22px;z-index:1000;}
.modal-card{width:min(520px,100%);background:#fff;border-radius:24px;padding:24px;box-shadow:0 26px 80px rgba(8,22,38,.28);border:1px solid rgba(18,56,92,.12);}
.modal-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:10px;}
.modal-head h2{margin:0;color:#12385c;}
.icon-button{border:0;border-radius:999px;width:40px;height:40px;font-size:26px;line-height:1;background:#eef3f7;color:#12385c;cursor:pointer;}
.modal-card label{display:block;margin-top:14px;font-weight:800;color:#12385c;}
.modal-card input{width:100%;box-sizing:border-box;margin-top:6px;border:1px solid rgba(18,56,92,.18);border-radius:14px;padding:12px 13px;font:inherit;}
.modal-card button:not(.icon-button){margin-top:16px;width:100%;}
@media(max-width:980px){.installer-admin-layout{grid-template-columns:1fr}.add-panel{position:static}.admin-table{min-width:620px}}

/* v0.15 IAA admin workspace */
.admin-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.admin-tab{border:1px solid rgba(15,23,42,.16);background:#fff;color:#0f172a;border-radius:999px;padding:.55rem .9rem;font-weight:700;cursor:pointer}.admin-tab.active{background:#0f172a;color:#fff}.admin-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;margin:.8rem 0}.admin-filter-grid input,.admin-filter-grid select{width:100%}.admin-detail-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);gap:1rem}.compact-form input,.compact-form select,.compact-form textarea{width:100%}.compact-form h3{margin-top:0}.action-pair{display:flex;gap:.5rem;flex-wrap:wrap}.admin-table code{white-space:pre-wrap;word-break:break-word;font-size:.78rem}.admin-tab-panel.hidden,#admin-user-detail.hidden,#org_edit.hidden,#admin_new_skill_box.hidden{display:none!important}@media(max-width:900px){.admin-filter-grid,.admin-detail-grid{grid-template-columns:1fr}.admin-tabs{align-items:stretch}.admin-tab{flex:1}}

/* v0.15.2 desktop admin density refinements */
.admin-shell{
    width:min(1320px, calc(100% - 28px));
    max-width:1320px;
    padding:12px 0 20px;
}
.admin-shell .installer-admin-card{
    padding:14px 18px 20px;
    border-radius:20px;
}
#admin-app.installer-app{
    margin-top:0;
}
#admin-app .admin-hero-bar{
    min-height:0;
    align-items:center;
    margin:0 0 12px;
    padding:14px 18px;
    border-radius:16px;
}
#admin-app .admin-hero-bar .eyebrow{
    display:none;
}
#admin-app .admin-hero-bar h1{
    font-size:28px;
    line-height:1.1;
    margin:0;
}
#admin-app .admin-hero-bar .form-help{
    margin:.25rem 0 0;
    font-size:14px;
}
#admin-app .admin-hero-bar .secondary-button{
    width:auto;
    min-width:116px;
    min-height:40px;
    margin:0;
    padding:8px 16px;
    box-shadow:none;
}
#admin-app .admin-tabs{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    flex-wrap:wrap;
    margin:0 0 12px;
    padding:8px;
    border:1px solid rgba(18,56,92,.10);
    border-radius:16px;
    background:#fff;
    box-shadow:0 8px 22px rgba(18,56,92,.06);
}
#admin-app .admin-tab{
    width:auto;
    min-height:38px;
    margin:0;
    padding:8px 14px;
    border-radius:999px;
    box-shadow:none;
    background:#eef3f7;
    color:#12385c;
}
#admin-app .admin-tab.active{
    background:#12385c;
    color:#fff;
}
#admin-app .admin-panel{
    border-radius:16px;
    padding:16px;
    box-shadow:0 8px 28px rgba(18,56,92,.06);
}
#admin-app .admin-tab-panel{
    margin-top:0;
}
#admin-app .panel-heading.compact-heading h2,
#admin-app .admin-panel h2{
    font-size:22px;
    line-height:1.2;
}
#admin-app .admin-filter-grid{
    margin:.6rem 0;
}
@media(max-width:900px){
    #admin-app .admin-hero-bar{
        align-items:stretch;
        flex-direction:column;
    }
    #admin-app .admin-hero-bar .secondary-button{
        width:100%;
    }
    #admin-app .admin-tab{
        flex:1 1 auto;
    }
}

/* v0.15.3 desktop admin table/form cleanup */
#admin-app .admin-table-wrap{
    max-height:360px;
    overflow:auto;
    border-radius:12px;
}
#admin-app .admin-table{
    table-layout:auto;
    min-width:0;
    width:100%;
    border-collapse:collapse;
}
#admin-app .admin-table th,
#admin-app .admin-table td{
    padding:9px 12px;
    line-height:1.35;
    vertical-align:top;
    white-space:normal;
    overflow-wrap:anywhere;
}
#admin-app .admin-table tbody tr{
    height:auto!important;
}
#admin-app .admin-table tr.admin-user-row{
    display:table-row!important;
    border:0!important;
    border-radius:0!important;
    padding:0!important;
    background:transparent!important;
}
#admin-app .admin-table tr.admin-user-row td{
    display:table-cell!important;
    background:#fff;
}
#admin-app .admin-table tr.admin-user-row:hover td{
    background:#f7fbff!important;
}
#admin-app .admin-table tr.admin-user-row.active td{
    background:#eaf5ff!important;
}
#admin-app .admin-table-users th:nth-child(1),
#admin-app .admin-table-users td:nth-child(1){width:28%;}
#admin-app .admin-table-users th:nth-child(2),
#admin-app .admin-table-users td:nth-child(2){width:26%;}
#admin-app .admin-table-users th:nth-child(3),
#admin-app .admin-table-users td:nth-child(3){width:16%;}
#admin-app .admin-table-users th:nth-child(4),
#admin-app .admin-table-users td:nth-child(4){width:16%;}
#admin-app .admin-table-users th:nth-child(5),
#admin-app .admin-table-users td:nth-child(5){width:14%;}
#admin-app .admin-table-orgs th:nth-child(1),
#admin-app .admin-table-orgs td:nth-child(1){width:28%;}
#admin-app .admin-table-orgs th:nth-child(2),
#admin-app .admin-table-orgs td:nth-child(2){width:20%;}
#admin-app .admin-table-orgs th:nth-child(3),
#admin-app .admin-table-orgs td:nth-child(3){width:26%;}
#admin-app .admin-table-orgs th:nth-child(4),
#admin-app .admin-table-orgs td:nth-child(4){width:12%;}
#admin-app .admin-table-orgs th:nth-child(5),
#admin-app .admin-table-orgs td:nth-child(5){width:14%;}
#admin-app .admin-table-audit th:nth-child(1),
#admin-app .admin-table-audit td:nth-child(1){width:16%;}
#admin-app .admin-table-audit th:nth-child(2),
#admin-app .admin-table-audit td:nth-child(2){width:18%;}
#admin-app .admin-table-audit th:nth-child(3),
#admin-app .admin-table-audit td:nth-child(3){width:22%;}
#admin-app .admin-table-audit th:nth-child(4),
#admin-app .admin-table-audit td:nth-child(4){width:44%;}
#admin-app .empty-cell{
    padding:18px!important;
}
#admin-app .admin-detail-grid{
    grid-template-columns:repeat(3,minmax(280px,1fr));
    align-items:start;
}
#admin-app .compact-form,
#admin-app .admin-edit-form,
#admin-app .admin-message-form{
    display:grid;
    grid-template-columns:150px minmax(0,1fr);
    column-gap:14px;
    row-gap:10px;
    align-items:center;
}
#admin-app .compact-form h3,
#admin-app .compact-form .result-area,
#admin-app .compact-form .action-pair,
#admin-app .compact-form button,
#admin-app .compact-form #admin_new_skill_box,
#admin-app .admin-message-form .action-pair,
#admin-app .admin-message-form .result-area{
    grid-column:1 / -1;
}
#admin-app .compact-form label,
#admin-app .admin-message-form label{
    margin:0;
    font-weight:800;
}
#admin-app .compact-form input,
#admin-app .compact-form select,
#admin-app .compact-form textarea,
#admin-app .admin-panel textarea{
    width:100%;
    box-sizing:border-box;
    margin:0;
    border:1px solid rgba(18,56,92,.18);
    border-radius:12px;
    padding:10px 12px;
    font:inherit;
}
#admin-app .compact-form textarea,
#admin-app .admin-message-form textarea{
    min-height:96px;
    resize:vertical;
}
#admin-app .compact-form button:not(.secondary-button):not(.danger-button),
#admin-app .admin-message-form button:not(.secondary-button):not(.danger-button){
    margin-top:4px;
}
#admin-app #admin_new_skill_box{
    display:grid;
    grid-template-columns:150px minmax(0,1fr);
    column-gap:14px;
    row-gap:10px;
    padding:12px;
    border:1px solid rgba(18,56,92,.12);
    border-radius:12px;
    background:#f7fafc;
}
#admin-app #admin_new_skill_box.hidden{display:none!important;}
#admin-app #admin_new_skill_box button{grid-column:1 / -1;}
#admin-app .selected-message-panel{
    background:#fbfdff;
}
#admin-app #tab-messages .admin-message-form{
    max-width:900px;
}
@media(max-width:1100px){
    #admin-app .admin-detail-grid{grid-template-columns:1fr 1fr;}
    #admin-app .selected-message-panel{grid-column:1 / -1;}
}
@media(max-width:760px){
    #admin-app .admin-detail-grid{grid-template-columns:1fr;}
    #admin-app .compact-form,
    #admin-app .admin-edit-form,
    #admin-app .admin-message-form,
    #admin-app #admin_new_skill_box{grid-template-columns:1fr;}
    #admin-app .admin-table{min-width:720px;}
}

/* v0.15.4 desktop admin clean-up */
.admin-shell{max-width:1240px;padding-top:12px;}
.admin-shell .installer-admin-card{padding:14px 16px 18px;border-radius:18px;}
.compact-admin-hero{padding:14px 18px;min-height:0;border-radius:16px;margin-bottom:14px;align-items:center;}
.compact-admin-hero h1{font-size:clamp(1.6rem,2.2vw,2.3rem);margin:2px 0 2px;}
.compact-admin-hero .eyebrow{margin-bottom:2px;}
.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px;}
.admin-tab{width:auto;min-width:0;padding:9px 14px;border-radius:999px;box-shadow:none;}
.admin-panel{padding:14px;border-radius:16px;}
.panel-heading.compact-heading{margin-bottom:10px;}
.admin-filter-grid-wide{grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr) minmax(160px,1fr) auto;align-items:center;}
.admin-search-actions{display:flex;align-items:center;gap:14px;margin:8px 0 10px;}
.admin-search-actions .secondary-button{width:auto;min-width:180px;padding:10px 16px;}
.admin-table-wrap{max-height:360px;overflow:auto;border:1px solid var(--border,#d5e0ec);border-radius:14px;background:#fff;}
.admin-table{width:100%;border-collapse:collapse;table-layout:fixed;}
.admin-table th,.admin-table td{padding:10px 12px;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.admin-table thead th{position:sticky;top:0;z-index:1;background:#edf5fc;font-size:.78rem;text-align:left;}
.admin-table tbody tr{height:44px;}
.admin-table tbody tr:hover{background:#f6fbff;}
.admin-table-users th:nth-child(1),.admin-table-users td:nth-child(1){width:28%;}
.admin-table-users th:nth-child(2),.admin-table-users td:nth-child(2){width:30%;}
.admin-table-users th:nth-child(3),.admin-table-users td:nth-child(3){width:14%;}
.admin-table-users th:nth-child(4),.admin-table-users td:nth-child(4){width:14%;}
.admin-table-users th:nth-child(5),.admin-table-users td:nth-child(5){width:14%;}
.admin-table-orgs th:nth-child(1),.admin-table-orgs td:nth-child(1){width:26%;}
.admin-table-orgs th:nth-child(2),.admin-table-orgs td:nth-child(2){width:22%;}
.admin-table-orgs th:nth-child(3),.admin-table-orgs td:nth-child(3){width:28%;}
.admin-table-orgs th:nth-child(4),.admin-table-orgs td:nth-child(4){width:12%;}
.admin-table-orgs th:nth-child(5),.admin-table-orgs td:nth-child(5){width:12%;}
.admin-table-audit th:nth-child(1),.admin-table-audit td:nth-child(1){width:16%;}
.admin-table-audit th:nth-child(2),.admin-table-audit td:nth-child(2){width:22%;}
.admin-table-audit th:nth-child(3),.admin-table-audit td:nth-child(3){width:22%;}
.admin-table-audit th:nth-child(4),.admin-table-audit td:nth-child(4){width:40%;white-space:normal;}
.admin-detail-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;align-items:start;}
.compact-form{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px 12px;align-items:center;}
.compact-form h3,.compact-form h2,.compact-form .form-help,.compact-form .result-area{grid-column:1/-1;}
.compact-form label{margin:0;font-size:.8rem;font-weight:750;}
.compact-form input,.compact-form select,.compact-form textarea{width:100%;min-height:38px;padding:8px 10px;border-radius:10px;font-size:.9rem;}
.compact-form button{grid-column:2/3;width:100%;min-height:38px;padding:9px 12px;}
.compact-form .action-pair{grid-column:2/3;display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.compact-form .smart-field{width:100%;}
.admin-wide-panel{margin-top:14px;}
.admin-wide-panel .admin-accreditation-row{padding:10px 12px;}
.admin-accreditation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;}
.admin-accreditation-row span{display:block;font-size:.8rem;color:#52677f;margin-top:3px;}
.admin-accreditation-row .action-pair{display:flex;gap:8px;}
.admin-accreditation-row .compact-action{width:auto;min-width:82px;padding:8px 10px;}
.smart-field input[type="search"]{width:100%;}
.modal-backdrop{position:fixed;inset:0;background:rgba(4,18,38,.48);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal-backdrop.hidden{display:none;}
.modal-card{position:relative;width:min(620px,96vw);background:#fff;border-radius:18px;box-shadow:0 22px 70px rgba(6,32,65,.35);padding:22px;}
.modal-card h2{margin:0 0 12px;font-size:1.35rem;}
.modal-close{position:absolute;right:12px;top:10px;width:34px;height:34px;border-radius:50%;padding:0;background:#eef4fa;color:#0b315d;box-shadow:none;}
.modal-card .compact-form{grid-template-columns:110px minmax(0,1fr);}
.modal-card textarea{resize:vertical;min-height:110px;}
#message_search_results{display:none;}
.admin_users_result_loaded #message_search_results{display:inline-flex;}
@media (max-width:900px){
  .admin-filter-grid-wide{grid-template-columns:1fr;}
  .admin-detail-two-col{grid-template-columns:1fr;}
  .compact-form,.modal-card .compact-form{grid-template-columns:1fr;}
  .compact-form button,.compact-form .action-pair{grid-column:1/-1;}
  .admin-accreditation-row{grid-template-columns:1fr;}
  .admin-table{min-width:820px;}
}
#message_search_results{display:inline-flex;}

/* v0.15.5 admin/installer polish */
.admin-shell{max-width:1380px;}
#installer-app .compact-admin-hero{padding:12px 18px;border-radius:16px;margin-bottom:12px;}
#installer-app .compact-admin-hero h1{font-size:clamp(1.55rem,2.1vw,2.25rem);}
#installer-app .installer-admin-layout{grid-template-columns:1fr 1fr;gap:14px;}
#installer-app .users-panel{grid-column:1 / -1;}
#installer-app .accreditations-panel{grid-column:1 / -1;}
#installer-app .add-panel{grid-column:auto;}
#installer-app .admin-table-wrap{max-height:340px;}
#installer-app .installer-search-actions{margin-top:10px;justify-content:space-between;}
#installer-app .installer-search-actions .secondary-button{width:auto;min-width:180px;}
#admin-app .admin-filter-grid-wide{grid-template-columns:minmax(220px,2fr) minmax(160px,1fr) minmax(160px,1fr) minmax(160px,1fr) minmax(130px,.8fr) minmax(150px,.9fr) auto;}
#admin-app .admin-search-actions{justify-content:space-between;margin:10px 0 0;}
#admin-app .admin-detail-two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;}
#admin-app #admin-user-detail{width:100%;}
#admin-app #admin-user-detail>.panel-heading{grid-column:1/-1;}
#admin-app .checker-panel.compact-form{box-shadow:0 10px 28px rgba(18,56,92,.08);}
#admin-app .modal-close,.modal-close,#installer-app .icon-button,.icon-button{width:34px!important;height:34px!important;min-height:34px!important;min-width:34px!important;margin:0!important;padding:0!important;border-radius:999px!important;box-shadow:none!important;display:inline-grid!important;place-items:center!important;line-height:1!important;}
.modal-card:before{content:none!important;display:none!important;}
.modal-card .compact-form textarea,#admin-app .compact-form textarea,#installer-app .compact-form textarea{border:1px solid rgba(18,56,92,.18);border-radius:12px;padding:10px 12px;font:inherit;background:#fff;}
.muted-text{color:#6b7a8d;}
@media(max-width:900px){#installer-app .installer-admin-layout,#admin-app .admin-detail-two-col{grid-template-columns:1fr;}#admin-app .admin-filter-grid-wide{grid-template-columns:1fr;}}

/* v0.15.6 admin/installer layout polish */
#installer-app .compact-admin-hero{padding:8px 14px!important;border-radius:14px!important;margin:6px 0 10px!important;min-height:0!important;}
#installer-app .compact-admin-hero h1{font-size:clamp(1.35rem,1.8vw,1.9rem)!important;line-height:1.05;margin:0!important;}
#installer-app .compact-admin-hero .eyebrow,#installer-app .compact-admin-hero .form-help{margin:0!important;font-size:.82rem!important;}
#installer-app .compact-admin-hero .secondary-button{min-width:120px!important;min-height:36px!important;padding:8px 14px!important;}
#installer-app .installer-admin-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:14px!important;}
#installer-app .users-panel{grid-column:1/-1!important;}
#installer-app .selected-user-panel,#installer-app .add-panel{grid-column:auto!important;align-self:start;}
#installer-app .accreditations-panel,#installer-app #installer_cpd_panel{grid-column:1/-1!important;}
.selected-user-card{display:block;}
.selected-user-summary{display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;align-items:start;}
.selected-user-summary h2{margin:0 0 8px;color:#12385c;}
.selected-user-summary dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:6px 10px;margin:0;}
.selected-user-summary dt{font-weight:800;color:#12385c;font-size:.82rem;}
.selected-user-summary dd{margin:0;color:#334155;overflow-wrap:anywhere;}
.selected-user-photo{width:76px;height:76px;border-radius:18px;object-fit:cover;background:#eef5fb;border:1px solid rgba(18,56,92,.12);}
.selected-user-photo-placeholder{display:grid;place-items:center;font-weight:900;font-size:1.6rem;color:#12385c;}
.stacked-actions{display:grid!important;grid-template-columns:1fr auto;gap:8px 14px;align-items:center;}
.stacked-actions .pagination-strip{grid-column:1/-1;}
.stacked-actions .message-users-button{grid-column:1/-1;justify-self:start;min-width:0!important;width:auto!important;}
.pagination-strip{display:flex;gap:4px;flex-wrap:wrap;align-items:center;}
.page-button{width:auto!important;min-width:34px!important;min-height:32px!important;margin:0!important;padding:6px 10px!important;border:1px solid rgba(18,56,92,.16)!important;border-radius:10px!important;background:#fff!important;color:#12385c!important;box-shadow:none!important;font-weight:800!important;}
.page-button.active{background:#12385c!important;color:#fff!important;}
.page-button:disabled{opacity:.45;cursor:not-allowed;}
.page-ellipsis{padding:0 4px;color:#6b7a8d;}
.audit-filter-grid{grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) 170px 170px auto!important;align-items:end;}
.inline-date-label{display:grid!important;gap:4px;margin:0!important;font-size:.78rem;color:#12385c;font-weight:800;}
.modal-card select,.modal-card textarea,.modal-card input,#installer_message_modal select,#installer_message_modal textarea,#installer_message_modal input{width:100%;box-sizing:border-box;border:1px solid rgba(18,56,92,.18);border-radius:12px;padding:10px 12px;font:inherit;background:#fff;}
@media(max-width:900px){#installer-app .installer-admin-layout{grid-template-columns:1fr!important}.selected-user-panel,#installer-app .add-panel{grid-column:1/-1!important}.audit-filter-grid{grid-template-columns:1fr!important}.stacked-actions{grid-template-columns:1fr}.stacked-actions .message-users-button{width:100%!important}}


/* v0.15.7 deployment polish */
#installer-app .compact-admin-hero{padding:14px 18px!important;min-height:0!important;border-radius:18px!important;margin-bottom:14px!important;display:flex;align-items:center;justify-content:space-between;}
#installer-app .compact-admin-hero h1{font-size:1.55rem!important;line-height:1.15;margin:.1rem 0!important;}
#installer-app .compact-admin-hero .eyebrow,#installer-app .compact-admin-hero .form-help{margin:.15rem 0!important;}
#installer-app .compact-admin-hero .secondary-button{width:auto!important;min-width:130px;min-height:40px;padding:.55rem 1rem!important;}
#installer-app .installer-admin-layout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:14px!important;align-items:start;}
#installer-app .users-panel{grid-column:1/-1!important;}
#installer-app .selected-user-panel{grid-column:1/2!important;}
#installer-app .add-panel{grid-column:2/3!important;}
#installer-app .accreditations-panel,#installer-app .cpd-panel{grid-column:1/-1!important;}
#installer-app .admin-accreditation-row{display:flex!important;align-items:center;justify-content:space-between;gap:12px;}
#installer-app .admin-accreditation-row span{display:block;}
.cpd-rejected{background:#fff1f1!important;border-color:#f4c7c7!important;}
.cpd-rejected b{color:#9e1b1b!important;}
#admin-app .admin-detail-two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;}
#admin-app .admin-wide-panel{grid-column:1/-1!important;width:100%;}
#admin-app .cpd-row{display:flex;justify-content:space-between;gap:12px;}
#admin-app .pagination-strip{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap;}
#admin-app .pagination-strip button{width:auto!important;min-width:34px;min-height:34px;padding:.35rem .55rem!important;border-radius:10px!important;box-shadow:none!important;}
#admin-app .pagination-strip button.active{background:#0f3d6b;color:#fff;}
#modal_msg_type,#installer_msg_type{appearance:auto!important;border:1px solid #cbd8e6!important;border-radius:12px!important;background:#fff!important;min-height:42px!important;padding:.55rem .75rem!important;width:100%!important;color:#12385c!important;}
@media(max-width:900px){#installer-app .installer-admin-layout,#admin-app .admin-detail-two-col{grid-template-columns:1fr!important;}#installer-app .selected-user-panel,#installer-app .add-panel{grid-column:1/-1!important;}}

#admin-app .table-subline{font-size:.72rem;white-space:normal;margin-top:2px;color:#5b6b7d;}
#admin-app .admin-table-users th:nth-child(5),#admin-app .admin-table-users td:nth-child(5){width:20%!important;}
#admin-app .admin-table-users th:nth-child(3),#admin-app .admin-table-users td:nth-child(3),#admin-app .admin-table-users th:nth-child(4),#admin-app .admin-table-users td:nth-child(4){width:11%!important;}

/* v0.15.8: selected user header actions */
.selected-user-heading{align-items:center;gap:16px}.selected-user-heading .header-action-pair{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.selected-user-heading .header-action-pair button{min-width:96px;padding:9px 14px}.selected-user-heading .header-action-pair button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:760px){.selected-user-heading{align-items:flex-start}.selected-user-heading .header-action-pair{width:100%}.selected-user-heading .header-action-pair button{flex:1}}

/* v0.15.9 power-user admin refinements */
#admin-app .power-filter-grid{grid-template-columns:minmax(260px,2fr) minmax(190px,1fr) auto;align-items:center;}
#admin-app .power-user-edit{margin-top:18px;max-width:100%;}
#admin-app .power-user-edit h3{margin-top:12px;border-top:1px solid rgba(18,56,92,.12);padding-top:14px;}
#admin-app .power-user-edit h3:first-child{margin-top:0;border-top:0;padding-top:0;}
#admin-app .admin-table-orgs th:nth-child(1),#admin-app .admin-table-orgs td:nth-child(1){width:26%;}
#admin-app .admin-table-orgs th:nth-child(2),#admin-app .admin-table-orgs td:nth-child(2){width:22%;}
#admin-app .admin-table-orgs th:nth-child(3),#admin-app .admin-table-orgs td:nth-child(3){width:28%;}
#admin-app .admin-table-orgs th:nth-child(4),#admin-app .admin-table-orgs td:nth-child(4){width:12%;}
#admin-app .admin-table-orgs th:nth-child(5),#admin-app .admin-table-orgs td:nth-child(5){width:12%;}
#admin-app select{appearance:auto;}
@media(max-width:900px){#admin-app .power-filter-grid{grid-template-columns:1fr;}}

/* v0.15.11 admin user workflow refinements */
.installer-association-panel{margin-top:18px}
.association-add-form{margin-top:14px;display:grid;grid-template-columns:minmax(220px,2fr) minmax(160px,1fr) auto;gap:10px;align-items:end}
.association-add-form label{margin-bottom:0}
.installer-link-row.muted-row{opacity:.68}
.power-user-edit-heading{margin-bottom:12px}
.power-user-edit-heading h3{margin:0}
@media(max-width:760px){.association-add-form{grid-template-columns:1fr}.power-user-edit-heading{align-items:flex-start}}


/* v0.15.14 installer-scope and installer-search refinements */
#admin-app .scope-installer-select{
  appearance:auto!important;
  width:100%!important;
  min-height:42px!important;
  border:1px solid #cbd8e6!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#12385c!important;
  padding:.55rem .75rem!important;
  box-shadow:inset 0 1px 0 rgba(15,61,107,.04)!important;
}
#admin-app .installer-search-field{position:relative;}
#admin-app .installer-search-results{
  position:absolute;
  z-index:40;
  top:calc(100% + 6px);
  left:0;
  right:0;
  background:#fff;
  border:1px solid #d8e3ee;
  border-radius:14px;
  box-shadow:0 14px 34px rgba(15,42,71,.16);
  overflow:hidden;
}
#admin-app .installer-search-row{
  display:block!important;
  width:100%!important;
  text-align:left!important;
  border:0!important;
  border-bottom:1px solid #eef3f7!important;
  background:#fff!important;
  color:#12385c!important;
  padding:10px 12px!important;
  border-radius:0!important;
  box-shadow:none!important;
}
#admin-app .installer-search-row:hover,#admin-app .installer-search-row:focus{background:#f4f9ff!important;outline:none;}
#admin-app .installer-search-row:last-child{border-bottom:0!important;}
#admin-app .installer-search-name{display:block;font-weight:800;font-size:.92rem;line-height:1.25;}
#admin-app .installer-search-meta{display:block;margin-top:3px;font-size:.76rem;color:#5c6b7a;line-height:1.3;}
#admin-app .installer-search-note{padding:10px 12px;font-size:.82rem;color:#5c6b7a;background:#f8fbfe;}

/* v0.17.1: restore power-user edit grid layout */
#admin-app .power-user-edit > .panel-heading,
#admin-app .power-user-edit > .power-user-edit-heading{
  grid-column:1 / -1!important;
}
#admin-app .power-user-edit > input[type="hidden"]{
  display:none!important;
}
#admin-app .power-user-edit > h3{
  grid-column:1 / -1!important;
}

/* v0.18.8 review fixes */
.auth-grid{align-items:start;}
.installer-login-panel{margin-top:0;}
.admin-search-actions .header-action-pair{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.admin-search-actions .header-action-pair .secondary-button{width:auto!important;min-height:42px;margin-top:0!important;box-shadow:none;}
.admin-details{border:1px solid rgba(18,56,92,.12);border-radius:16px;background:#f8fbfe;padding:12px 14px;margin-top:12px;}
.admin-details summary{cursor:pointer;font-weight:900;color:#12385c;list-style:none;}
.admin-details summary::-webkit-details-marker{display:none;}
.admin-details summary:after{content:'+';float:right;color:#5b6b7d;}
.admin-details[open] summary:after{content:'-';}
.job-card-form.compact-form{display:grid;grid-template-columns:140px minmax(0,1fr);gap:10px 14px;align-items:center;margin-top:14px;}
.job-card-form.compact-form label{margin-top:0;}
.job-card-form textarea,.admin-panel textarea,.modal-card textarea{width:100%;box-sizing:border-box;border:1px solid rgba(18,56,92,.18);border-radius:12px;padding:10px 12px;font:inherit;background:#fff;resize:vertical;}
.credentials-panel .compact-form{margin-top:12px;}
@media(max-width:760px){.job-card-form.compact-form{grid-template-columns:1fr}.admin-search-actions .header-action-pair{justify-content:stretch}.admin-search-actions .header-action-pair .secondary-button{width:100%!important}}


/* v0.18.10 review polish */
.admin-panel .eyebrow,
.panel-heading .eyebrow,
#admin-mode-badge {
    color: #12385c;
    background: #eaf2f8;
    border: 1px solid rgba(18,56,92,.12);
    display: inline-flex;
    width: auto;
    padding: 5px 10px;
    border-radius: 999px;
}
.admin-hero-bar #admin-mode-badge {
    color: #fff;
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.26);
}
.job-card-form.compact-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 16px;
    align-items: end;
}
.job-card-form.compact-form label { margin-top: 0; }
.job-card-form.compact-form textarea,
.job-card-form.compact-form label[for="job_description"] { grid-column: 1 / -1; }
.job-verify-card .checker-panel { max-width: 820px; margin-left: auto; margin-right: auto; }
.job-visit-card {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    background: #f7fafc;
    border: 1px solid #e2eaf2;
    border-radius: 22px;
    padding: 18px;
    margin: 20px 0;
}
.job-field-photo {
    width: 140px;
    height: 140px;
    border-radius: 24px;
    object-fit: cover;
    border: 1px solid rgba(18,56,92,.16);
    background: #eaf2f8;
}
.job-field-photo.placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    color: #12385c;
    font-size: 30px;
}
@media(max-width:700px){.job-card-form.compact-form,.job-visit-card{grid-template-columns:1fr}.job-field-photo{width:110px;height:110px}}


/* v0.18.11 workspace/layout polish */
body.installer-signed-in .brand-row .top-nav{display:none}
.workspace-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 0}
.workspace-tab{border:1px solid rgba(18,56,92,.16);background:#eef4fb;color:#12385c;border-radius:999px;padding:10px 14px;font-weight:800;cursor:pointer}
.workspace-tab.active{background:#12385c;color:#fff;border-color:#12385c}
.compact-admin-hero .eyebrow,.admin-hero-bar .eyebrow{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.22);display:inline-flex;border-radius:999px;padding:5px 9px}
.job-card-form{display:grid;grid-template-columns:minmax(150px,.35fr) minmax(0,1fr);gap:12px 16px;align-items:center}
.job-card-form label{margin:0;text-align:left}
.job-card-form textarea,.job-card-form input{margin-top:0}
.job-card-form label[for="job_description"]{align-self:start;padding-top:12px}
.job-card-form textarea{min-height:110px}
.job-acc-children{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.job-acc-children span{background:#eef4fb;border:1px solid #dbe6f0;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:700;color:#12385c}
.credentials-panel h3{color:#12385c;margin:18px 0 6px}.admin-details summary{cursor:pointer;font-weight:800;color:#12385c}.admin-details{border:1px solid rgba(18,56,92,.12);border-radius:16px;padding:13px 14px;margin-top:12px;background:#f8fbfd}
@media(max-width:720px){.job-card-form{grid-template-columns:1fr}.job-card-form label{padding-top:0}.workspace-tabs{gap:8px}.workspace-tab{width:100%}}

/* v0.18.12 installer dashboard UX clean-up */
body.admin-signed-in .brand-row .top-nav,
body.installer-signed-in .brand-row .top-nav{display:none}
.workspace-tabs{
    display:flex;
    gap:.5rem;
    flex-wrap:wrap;
    margin:1rem 0;
    padding:0;
    align-items:center;
}
.workspace-tab{
    width:auto!important;
    min-height:0!important;
    margin:0!important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(15,23,42,.16);
    background:#fff;
    color:#0f172a;
    border-radius:999px;
    padding:.55rem .9rem;
    font-weight:700;
    cursor:pointer;
    box-shadow:none;
}
.workspace-tab.active{
    background:#0f172a;
    color:#fff;
    border-color:#0f172a;
}
.installer-admin-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:1rem;
    align-items:start;
}
.users-panel{grid-column:1 / -1;}
.selected-user-panel{grid-column:1 / -1;}
.add-panel{grid-column:1 / -1;}
.job-card-panel{grid-column:1 / -1;}
.accreditations-panel,.cpd-panel{grid-column:auto;}
.clean-job-form{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px 16px!important;
    align-items:start!important;
}
.clean-job-form .form-field{min-width:0;}
.clean-job-form .form-field-wide{grid-column:1 / -1;}
.clean-job-form label{
    display:block;
    margin:0 0 6px!important;
    text-align:left!important;
    color:#12385c;
    font-size:.92rem;
}
.clean-job-form input,
.clean-job-form textarea{
    margin:0!important;
    width:100%;
}
.job-acc-children{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:10px;
}
.job-acc-children span{
    width:100%;
    min-width:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    white-space:normal;
    line-height:1.25;
    padding:7px 9px;
}
@media(max-width:900px){
    .installer-admin-layout{grid-template-columns:1fr;}
    .clean-job-form{grid-template-columns:1fr!important;}
    .job-acc-children{grid-template-columns:1fr;}
}

/* v0.18.13 installer selected-user workspace overhaul */
.workspace-tabs{
  display:flex!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  margin:12px 0!important;
  padding:8px!important;
  border:1px solid rgba(18,56,92,.10)!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(18,56,92,.06)!important;
}
.workspace-tab{
  width:auto!important;
  flex:0 0 auto!important;
  min-height:38px!important;
  padding:8px 14px!important;
  border-radius:999px!important;
  background:#eef3f7!important;
  color:#12385c!important;
  border:1px solid rgba(18,56,92,.14)!important;
  box-shadow:none!important;
}
.workspace-tab.active{background:#12385c!important;color:#fff!important;border-color:#12385c!important;}
.installer-admin-layout{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(320px,.68fr)!important;
  gap:16px!important;
  align-items:start!important;
}
.users-panel,
.disconnects-panel,
.credentials-panel,
.accreditations-panel,
.job-list-panel,
.cpd-panel{grid-column:1 / -1!important;}
.selected-user-panel{grid-column:1!important;}
.user-action-panel{grid-column:2!important;align-self:stretch;}
.user-action-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px;}
.user-action-button{
  width:100%!important;
  margin:0!important;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid rgba(18,56,92,.14)!important;
  background:#f3f8fc!important;
  color:#12385c!important;
  border-radius:14px!important;
  padding:12px 14px!important;
  font-weight:900!important;
  box-shadow:none!important;
  cursor:pointer;
}
.user-action-button.active{background:#12385c!important;color:#fff!important;border-color:#12385c!important;}
.user-action-button span{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:3px 8px;border-radius:999px;background:rgba(18,56,92,.12);font-size:12px;}
.user-action-button.active span{background:rgba(255,255,255,.2);color:#fff;}
.user-list-panel{margin-top:0;}
.selected-user-card{min-height:100%;}
.modal-card-wide{width:min(760px,100%);}
.modal-card .clean-job-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px 16px!important;align-items:start!important;margin-top:12px;}
.modal-card .clean-job-form .form-field-wide{grid-column:1 / -1!important;}
.modal-card .clean-job-form label{display:block!important;margin:0 0 6px!important;text-align:left!important;font-size:13px!important;}
.modal-card .clean-job-form input,.modal-card .clean-job-form textarea{margin:0!important;width:100%!important;box-sizing:border-box;}
.modal-card .clean-job-form textarea{min-height:96px!important;}
.job-row span{display:block;color:#5b6b7d;font-size:13px;margin-top:4px;}
.job-verify-card .brand-row .top-nav{display:none!important;}
.job-accreditation-row{display:block!important;}
.job-acc-children{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin-top:10px!important;}
.job-acc-children span{display:flex!important;align-items:center;justify-content:center;min-height:34px;width:100%!important;box-sizing:border-box;text-align:center;white-space:normal!important;line-height:1.25;background:#eef4fb;border:1px solid #dbe6f0;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;color:#12385c;}
@media(max-width:900px){.installer-admin-layout{grid-template-columns:1fr!important}.selected-user-panel,.user-action-panel{grid-column:1 / -1!important}.modal-card .clean-job-form,.job-acc-children{grid-template-columns:1fr!important}}

/* v0.18.15: nested modal stacking fix. The new skill modal can be opened from
   inside the add-accreditation modal, so it must sit above the parent modal. */
#installer_skill_modal{z-index:1300!important;}
#installer_skill_modal .modal-card{z-index:1301!important;}
#installer_add_accreditation_modal{z-index:1200;}
#installer_add_accreditation_modal .modal-card{z-index:1201;}


/* v0.18.18 homeowner verification polish + local dev support notes */
.job-verify-card{
    max-width: 980px;
    margin: 0 auto;
    overflow: hidden;
}
.job-verify-card .brand-row{
    background: rgba(255,255,255,.72);
}
.job-verification-content{
    width: min(760px, calc(100% - 36px));
    margin: 0 auto;
    padding: 26px 0 34px;
}
.job-verification-content > h1{
    font-size: clamp(38px, 5.2vw, 58px);
    max-width: 680px;
}
.verify-intro{
    max-width: 680px;
    margin-bottom: 18px;
}
.job-verification-content .job-visit-card,
.job-verification-content .verification-summary,
.job-verification-content .verification-accreditations{
    margin-top: 18px;
}
.job-verification-content .job-visit-card{
    background: linear-gradient(180deg,#f8fbfe 0%,#f2f7fb 100%);
    border: 1px solid rgba(18,56,92,.13);
    box-shadow: 0 10px 28px rgba(18,56,92,.06);
}
.job-verification-content .verification-summary{
    border: 1px solid rgba(18,56,92,.12);
    border-radius: 20px;
    background: #fff;
    padding: 18px 20px;
}
.job-verification-content .verification-summary h2,
.job-verification-content .verification-accreditations h2{
    font-size: 24px;
    letter-spacing: -0.03em;
    margin-bottom: 10px;
}
.job-verification-content .verification-summary p{
    margin: 7px 0;
}
.job-accreditation-grid{
    display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.job-accreditation-card{
    min-width: 0;
    border: 1px solid rgba(18,56,92,.14);
    border-radius: 22px;
    background: linear-gradient(180deg,#ffffff 0%,#f6faff 100%);
    box-shadow: 0 10px 24px rgba(18,56,92,.055);
    padding: 15px;
}
.job-accreditation-main{
    display:grid;
    gap: 5px;
}
.job-accreditation-main strong{
    color:#071b38;
    font-size: 15px;
    line-height: 1.25;
}
.job-accreditation-main span{
    color:#5b6b7d;
    font-size: 13px;
    line-height: 1.3;
}
.job-accreditation-card .job-acc-children{
    display:grid!important;
    grid-template-columns: repeat(2, minmax(0, 1fr))!important;
    gap: 8px!important;
    margin-top: 12px!important;
}
.job-accreditation-card .job-acc-children span{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height: 36px!important;
    width: 100%!important;
    padding: 8px 10px!important;
    border-radius: 999px!important;
    background: #eaf4ff!important;
    border: 1px solid #cfe1f2!important;
    color: #12385c!important;
    font-size: 12px!important;
    font-weight: 850!important;
    line-height: 1.25!important;
    text-align: center!important;
    white-space: normal!important;
}
@media(max-width:760px){
    .job-verification-content{width: min(100% - 24px, 760px); padding-top: 20px;}
    .job-accreditation-grid,
    .job-accreditation-card .job-acc-children{grid-template-columns: 1fr!important;}
    .job-visit-card{grid-template-columns:1fr!important;}
}

/* v0.18.22 set-password page polish */
.set-password-content{
    width:min(560px, calc(100% - 36px));
    margin:0 auto;
    padding:32px 0 38px;
}
.set-password-panel{
    padding:30px 34px 34px;
}
.set-password-panel .eyebrow{
    margin-bottom:14px;
}
.set-password-panel h1{
    max-width:none;
    font-size:clamp(32px, 4vw, 44px);
    letter-spacing:-.035em;
    margin:0 0 8px;
}
.set-password-panel .form-help{
    margin:0 0 20px;
    max-width:420px;
}
.set-password-panel .compact-form{
    display:grid;
    grid-template-columns:140px minmax(0,1fr);
    gap:12px 16px;
    align-items:center;
}
.set-password-panel .compact-form label{
    margin:0;
    font-size:13px;
}
.set-password-panel .compact-form input{
    min-height:48px;
    margin:0;
}
.set-password-panel .compact-form button,
.set-password-panel .compact-form .result-area{
    grid-column:2;
}
.set-password-panel .compact-form button{
    margin-top:6px;
}
@media(max-width:640px){
    .set-password-content{width:min(100% - 24px,560px);padding:22px 0 28px;}
    .set-password-panel{padding:24px 20px 26px;}
    .set-password-panel .compact-form{grid-template-columns:1fr;gap:8px;}
    .set-password-panel .compact-form button,
    .set-password-panel .compact-form .result-area{grid-column:1;}
}
