@font-face {
    font-family: "Argess";
    src: url("/fonts/Argess.woff2") format("woff2"),
         url("/fonts/Argess.woff") format("woff"),
         url("/fonts/Argess.ttf") format("truetype"),
         local("Tahoma");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Argess";
    src: url("/fonts/Argess.woff2") format("woff2"),
         url("/fonts/Argess.woff") format("woff"),
         url("/fonts/Argess.ttf") format("truetype"),
         local("Tahoma");
    font-weight: 700 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: system-ui-fa;
    src: local("Segoe UI");
}

:root {
    --asl-bg: #f3f6fb;
    --asl-bg-deep: #e9f0fb;
    --asl-surface: #ffffff;
    --asl-surface-2: #eef4ff;
    --asl-text: #111827;
    --asl-muted: #65748b;
    --asl-line: #dbe5f2;
    --asl-primary: #2563eb;
    --asl-primary-dark: #1d4ed8;
    --asl-primary-soft: #dbeafe;
    --asl-purple: #7c3aed;
    --asl-teal: #0f766e;
    --asl-danger: #dc2626;
    --asl-danger-bg: #fff1f2;
    --asl-success: #16a34a;
    --asl-success-bg: #ecfdf3;
    --asl-warning: #f59e0b;
    --asl-warning-bg: #fffbeb;
    --asl-radius: 20px;
    --asl-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    --asl-shadow-soft: 0 10px 28px rgba(15, 23, 42, 0.06);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: "Argess", system-ui-fa, "Segoe UI", Tahoma, Arial, sans-serif;
    background:
        radial-gradient(circle at top right, rgba(37, 99, 235, 0.14), transparent 30%),
        radial-gradient(circle at bottom left, rgba(124, 58, 237, 0.12), transparent 28%),
        linear-gradient(180deg, var(--asl-bg), var(--asl-bg-deep));
    color: var(--asl-text);
    line-height: 1.8;
    min-height: 100vh;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(37, 99, 235, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(37, 99, 235, 0.05) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,0.55), transparent 65%);
}

a {
    color: var(--asl-primary);
    text-decoration: none;
}

code {
    direction: ltr;
    unicode-bidi: embed;
    background: #eef2f7;
    padding: 2px 7px;
    border-radius: 8px;
    font-family: Consolas, monospace;
}

pre {
    direction: ltr;
    text-align: left;
    white-space: pre-wrap;
    background: #0f172a;
    color: #dbeafe;
    padding: 16px;
    border-radius: 16px;
    overflow-x: auto;
}

pre code {
    background: transparent;
    color: inherit;
    padding: 0;
}

.asl-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 76px;
    padding: 14px 34px;
    background: rgba(255, 255, 255, 0.88);
    border-bottom: 1px solid rgba(219, 229, 242, 0.82);
    position: sticky;
    top: 0;
    z-index: 20;
    backdrop-filter: blur(16px);
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.05);
}

.asl-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--asl-text);
}

.asl-brand:hover {
    color: var(--asl-text);
}

.asl-brand small,
.asl-muted {
    display: block;
    color: var(--asl-muted);
    font-size: 12px;
}

.asl-brand-mark {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--asl-primary), var(--asl-purple));
    color: #fff;
    font-weight: 900;
    letter-spacing: 0.5px;
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.22);
}

.asl-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.asl-nav a {
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--asl-text);
    font-weight: 700;
}

.asl-nav a:hover {
    background: var(--asl-surface-2);
    color: var(--asl-primary);
}

.asl-quickbar {
    position: sticky;
    top: 76px;
    z-index: 15;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    min-height: 42px;
    padding: 8px 22px;
    background: rgba(15, 23, 42, 0.88);
    color: #dbeafe;
    backdrop-filter: blur(12px);
}

.asl-quickbar a,
.asl-quickbar span {
    color: #eff6ff;
    font-size: 13px;
}

.asl-quickbar a {
    background: rgba(255, 255, 255, 0.12);
    padding: 4px 10px;
    border-radius: 999px;
}

.asl-container {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 0 auto;
    padding: 28px 22px 44px;
}

.asl-hero {
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    gap: 22px;
    align-items: stretch;
    padding: 34px;
    background: linear-gradient(135deg, #ffffff 0%, #eaf2ff 100%);
    border: 1px solid var(--asl-line);
    border-radius: 28px;
    box-shadow: var(--asl-shadow);
}

.asl-hero h1,
.asl-page-title h1 {
    margin: 0 0 10px;
    font-size: 34px;
    line-height: 1.35;
}

.asl-hero p,
.asl-page-title p,
.asl-card p,
.asl-mission-card p {
    color: var(--asl-muted);
}

.asl-hero-card,
.asl-card,
.asl-mission-card,
.asl-note {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(219, 229, 242, 0.92);
    border-radius: var(--asl-radius);
    box-shadow: var(--asl-shadow-soft);
}

.asl-hero-card {
    padding: 24px;
}

.asl-kicker,
.asl-card-label {
    color: var(--asl-primary);
    font-weight: 900;
    font-size: 12px;
    letter-spacing: 0.2px;
    margin: 0 0 8px;
}

.asl-actions,
.asl-page-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 22px;
}

.asl-page-actions {
    align-items: center;
    justify-content: flex-end;
    margin-top: 0;
}

.asl-button,
.asl-mission-card footer a,
.asl-disabled-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--asl-line);
    border-radius: 14px;
    min-height: 42px;
    padding: 8px 16px;
    background: #fff;
    color: var(--asl-text);
    font-weight: 800;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.asl-button:hover,
.asl-mission-card footer a:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
}

.asl-button-primary,
.asl-mission-card footer a {
    background: linear-gradient(135deg, var(--asl-primary), var(--asl-purple));
    border-color: transparent;
    color: #fff;
}

.asl-button-primary:hover,
.asl-mission-card footer a:hover {
    background: linear-gradient(135deg, var(--asl-primary-dark), #6d28d9);
}

.asl-disabled-button {
    background: #f1f5f9;
    color: #94a3b8;
}

.asl-section,
.asl-page-title {
    margin-top: 28px;
}

.asl-page-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid var(--asl-line);
    border-radius: 26px;
    padding: 28px;
    box-shadow: var(--asl-shadow);
}

.asl-gradient-title {
    background:
        linear-gradient(135deg, rgba(255,255,255,0.98), rgba(238,244,255,0.96)),
        radial-gradient(circle at left top, rgba(124, 58, 237, 0.16), transparent 40%);
}

.asl-section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.asl-section-header h2,
.asl-card h2,
.asl-mission-card h2,
.asl-mission-card h3 {
    margin: 0 0 8px;
}

.asl-grid {
    display: grid;
    gap: 16px;
    margin-top: 22px;
}

.asl-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asl-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.asl-card {
    padding: 22px;
}

.asl-danger-soft {
    background: linear-gradient(180deg, #fff, var(--asl-danger-bg));
    border-color: #fecdd3;
}

.asl-success-soft {
    background: linear-gradient(180deg, #fff, var(--asl-success-bg));
    border-color: #bbf7d0;
}

.asl-warning-soft {
    background: linear-gradient(180deg, #fff, var(--asl-warning-bg));
    border-color: #fde68a;
}

.asl-learning-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 20px;
}

.asl-learning-strip article {
    padding: 18px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--asl-line);
    box-shadow: var(--asl-shadow-soft);
}

.asl-learning-strip span {
    color: var(--asl-purple);
    font-weight: 900;
    font-size: 12px;
}

.asl-learning-strip strong {
    display: block;
    font-size: 20px;
    margin-top: 4px;
}

.asl-learning-strip p {
    margin-bottom: 0;
    color: var(--asl-muted);
}

.asl-current-user-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    margin-top: 20px;
}

.asl-user-switcher {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.asl-user-switcher a {
    min-width: 154px;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid var(--asl-line);
    background: #fff;
    color: var(--asl-text);
}

.asl-user-switcher a small {
    display: block;
    color: var(--asl-muted);
}

.asl-user-switcher a.is-active {
    background: linear-gradient(135deg, var(--asl-primary), var(--asl-purple));
    color: #fff;
    border-color: transparent;
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.2);
}

.asl-user-switcher a.is-active small {
    color: #dbeafe;
}

.asl-mission-list {
    display: grid;
    gap: 16px;
    margin-top: 22px;
}

.asl-mission-list-polished {
    gap: 18px;
}

.asl-mission-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: stretch;
    gap: 18px;
    padding: 22px;
    overflow: hidden;
    position: relative;
}

.asl-mission-card::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: linear-gradient(180deg, var(--asl-primary), var(--asl-purple));
}

.asl-mission-card.is-locked-mission {
    opacity: 0.72;
}

.asl-mission-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: var(--asl-primary-soft);
    color: var(--asl-primary-dark);
    font-weight: 900;
    font-size: 20px;
}

.asl-mission-card span,
.asl-timeline-item span {
    color: var(--asl-primary);
    font-weight: 900;
    font-size: 13px;
}

.asl-mission-card footer {
    min-width: 170px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
}

.asl-mission-card footer small {
    color: var(--asl-muted);
}

.asl-status-badge {
    background: #eff6ff;
    color: var(--asl-primary-dark) !important;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    padding: 4px 9px;
}

.asl-mission-card-wide ul {
    margin: 12px 0 0;
    padding-right: 20px;
    color: var(--asl-muted);
}

.asl-table-wrap {
    overflow-x: auto;
    background: var(--asl-surface);
    border: 1px solid var(--asl-line);
    border-radius: var(--asl-radius);
    box-shadow: var(--asl-shadow-soft);
}

.asl-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
}

.asl-table th,
.asl-table td {
    text-align: right;
    padding: 14px 16px;
    border-bottom: 1px solid var(--asl-line);
    vertical-align: middle;
}

.asl-table th {
    background: #f8fbff;
    color: var(--asl-muted);
    font-size: 13px;
}

.asl-table td small {
    display: block;
    color: var(--asl-muted);
}

.asl-security-table tr.is-owned-row td {
    background: rgba(236, 253, 243, 0.34);
}

.asl-security-table tr.is-foreign-row td {
    background: rgba(255, 241, 242, 0.3);
}

.asl-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    padding: 3px 10px;
    font-size: 12px;
    font-weight: 800;
}

.asl-pill-success {
    background: #dcfce7;
    color: #166534;
}

.asl-pill-danger {
    background: #ffe4e6;
    color: #be123c;
}

.asl-mini-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 5px 10px;
    border-radius: 11px;
    font-size: 13px;
    font-weight: 800;
}

.asl-mini-danger {
    background: #ffe4e6;
    color: #be123c;
}

.asl-mini-success {
    background: #dcfce7;
    color: #166534;
}

.asl-timeline {
    display: grid;
    gap: 14px;
    margin-top: 20px;
}

.asl-timeline-item {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 16px;
    background: var(--asl-surface);
    border: 1px solid var(--asl-line);
    border-radius: var(--asl-radius);
    padding: 18px;
}

.asl-note {
    margin-top: 20px;
    padding: 22px;
}

.asl-warning-banner,
.asl-success-banner,
.asl-next-step-card,
.asl-denied-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 20px;
    padding: 20px 22px;
    border-radius: 22px;
    box-shadow: var(--asl-shadow-soft);
}

.asl-warning-banner {
    background: #fff1f2;
    border: 1px solid #fecdd3;
    color: #9f1239;
}

.asl-success-banner,
.asl-next-step-card {
    background: #ecfdf3;
    border: 1px solid #bbf7d0;
    color: #14532d;
}

.asl-document-card h2 {
    font-size: 26px;
}

.asl-meta-list {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 8px 14px;
    margin: 18px 0;
}

.asl-meta-list dt {
    color: var(--asl-muted);
    font-weight: 800;
}

.asl-meta-list dd {
    margin: 0;
    font-weight: 700;
}

.asl-document-content {
    color: var(--asl-text) !important;
    background: rgba(255, 255, 255, 0.75);
    border: 1px dashed rgba(15, 23, 42, 0.12);
    padding: 14px;
    border-radius: 16px;
}

.asl-lesson-card ul {
    margin: 12px 0 0;
    padding-right: 22px;
    color: var(--asl-muted);
}

.asl-code-box {
    margin-top: 16px;
}

.asl-denied-panel {
    align-items: flex-start;
    justify-content: flex-start;
    background: #fff1f2;
    border: 1px solid #fecdd3;
}

.asl-denied-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 18px;
    background: #dc2626;
    color: #fff;
    font-size: 32px;
    font-weight: 900;
}

.asl-footer {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    border-top: 1px solid var(--asl-line);
    color: var(--asl-muted);
    padding: 20px 34px;
    background: rgba(255, 255, 255, 0.88);
}

@media (max-width: 940px) {
    .asl-page-title,
    .asl-current-user-card,
    .asl-warning-banner,
    .asl-success-banner,
    .asl-next-step-card {
        display: block;
    }

    .asl-page-actions,
    .asl-user-switcher {
        margin-top: 16px;
        justify-content: flex-start;
    }

    .asl-learning-strip,
    .asl-grid-2,
    .asl-grid-3 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .asl-topbar,
    .asl-hero,
    .asl-footer {
        display: block;
    }

    .asl-nav {
        margin-top: 14px;
    }

    .asl-quickbar {
        top: 0;
        position: relative;
    }

    .asl-mission-card {
        grid-template-columns: 1fr;
    }

    .asl-mission-card footer {
        align-items: flex-start;
        margin-top: 8px;
    }

    .asl-meta-list {
        grid-template-columns: 1fr;
    }
}

.asl-local-nav {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 18px;
    padding: 12px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--asl-line);
    border-radius: 18px;
    box-shadow: var(--asl-shadow-soft);
}

.asl-local-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 6px 13px;
    border-radius: 999px;
    color: var(--asl-text);
    font-weight: 800;
}

.asl-local-nav a:hover,
.asl-local-nav a.is-active {
    background: linear-gradient(135deg, var(--asl-primary), var(--asl-purple));
    color: #fff;
}

.asl-form {
    display: grid;
    gap: 14px;
    margin-top: 16px;
}

.asl-form label {
    display: grid;
    gap: 6px;
    color: var(--asl-text);
    font-weight: 800;
}

.asl-form input[type="text"],
.asl-form input:not([type]),
.asl-form input[type="password"] {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--asl-line);
    border-radius: 14px;
    padding: 9px 13px;
    background: #fff;
    color: var(--asl-text);
    font-family: inherit;
    font-size: 14px;
    outline: none;
    transition: border 0.15s ease, box-shadow 0.15s ease;
}

.asl-form input:focus {
    border-color: #93c5fd;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}

.asl-check-row {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 8px !important;
    color: var(--asl-muted) !important;
    font-weight: 700 !important;
}

.asl-check-row input {
    width: 18px;
    height: 18px;
}

.asl-demo-credentials {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

.asl-demo-credentials div,
.asl-auth-state-list div,
.asl-audit-list div {
    border: 1px solid var(--asl-line);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.78);
    padding: 12px;
}

.asl-demo-credentials strong,
.asl-auth-state-list strong,
.asl-audit-list strong {
    display: block;
    margin-bottom: 5px;
}

.asl-demo-credentials small,
.asl-auth-state-list small,
.asl-audit-list small {
    display: block;
    color: var(--asl-muted);
    margin-top: 4px;
}

.asl-checklist {
    margin: 14px 0 0;
    padding-right: 22px;
    color: var(--asl-muted);
}

.asl-checklist li {
    margin-bottom: 8px;
}

.asl-auth-result {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 18px;
    margin-top: 22px;
    padding: 22px;
    border-radius: 22px;
    border: 1px solid var(--asl-line);
    box-shadow: var(--asl-shadow-soft);
}

.asl-auth-result h2 {
    margin: 0 0 8px;
}

.asl-auth-result p {
    color: var(--asl-muted);
}

.asl-auth-result ul {
    margin: 0;
    padding-right: 22px;
    color: var(--asl-muted);
}

.asl-auth-result-success {
    background: linear-gradient(180deg, #fff, var(--asl-success-bg));
    border-color: #bbf7d0;
}

.asl-auth-result-danger {
    background: linear-gradient(180deg, #fff, var(--asl-danger-bg));
    border-color: #fecdd3;
}

.asl-auth-result-warning {
    background: linear-gradient(180deg, #fff, var(--asl-warning-bg));
    border-color: #fde68a;
}

.asl-auth-state-list,
.asl-audit-list {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.asl-audit-list p {
    margin: 6px 0 0;
    color: var(--asl-muted);
}

.asl-audit-list .is-security-event {
    background: #fff1f2;
    border-color: #fecdd3;
}

.asl-inline-form {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.7);
    border: 1px dashed rgba(15, 23, 42, 0.14);
}

@media (max-width: 940px) {
    .asl-auth-result {
        grid-template-columns: 1fr;
    }
}

.asl-payload-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}

.asl-payload-card {
    padding: 18px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--asl-line);
    box-shadow: var(--asl-shadow-soft);
}

.asl-payload-card strong,
.asl-payload-card code,
.asl-payload-card p {
    display: block;
}

.asl-payload-card code {
    margin-top: 10px;
    direction: ltr;
    text-align: left;
}

.asl-payload-card p {
    margin-bottom: 0;
    color: var(--asl-muted);
}

.asl-sql-table tr.is-public-row td {
    background: rgba(236, 253, 243, 0.24);
}

.asl-sql-table tr.is-internal-row td {
    background: rgba(255, 241, 242, 0.42);
}

.asl-sql-result {
    display: grid;
    grid-template-columns: 1.4fr 0.8fr;
    gap: 18px;
    margin-top: 24px;
    padding: 22px;
    border-radius: 24px;
    border: 1px solid var(--asl-line);
    box-shadow: var(--asl-shadow-soft);
}

.asl-sql-result h2 {
    margin: 0 0 8px;
}

.asl-sql-result p {
    color: var(--asl-muted);
}

.asl-sql-result-danger {
    background: linear-gradient(180deg, #fff, var(--asl-danger-bg));
    border-color: #fecdd3;
}

.asl-sql-result-success {
    background: linear-gradient(180deg, #fff, var(--asl-success-bg));
    border-color: #bbf7d0;
}

.asl-parameter-box {
    margin-top: 14px;
    padding: 14px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.75);
    border: 1px dashed rgba(15, 23, 42, 0.16);
}

.asl-parameter-box strong,
.asl-parameter-box code {
    display: block;
}

.asl-parameter-box code {
    margin-top: 8px;
    direction: ltr;
    text-align: left;
}

@media (max-width: 940px) {
    .asl-payload-grid,
    .asl-sql-result {
        grid-template-columns: 1fr;
    }
}

/* Phase 4 — XSS */
.asl-form textarea {
    width: 100%;
    min-height: 118px;
    border: 1px solid var(--asl-line);
    border-radius: 14px;
    padding: 11px 13px;
    background: #fff;
    color: var(--asl-text);
    font-family: inherit;
    font-size: 14px;
    line-height: 1.8;
    resize: vertical;
    outline: none;
    transition: border 0.15s ease, box-shadow 0.15s ease;
}

.asl-form textarea:focus {
    border-color: #93c5fd;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}

.asl-browser-frame {
    margin-top: 14px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--asl-line);
    border-radius: 18px;
    box-shadow: var(--asl-shadow-soft);
}

.asl-browser-danger {
    border-color: #fecdd3;
}

.asl-browser-success {
    border-color: #bbf7d0;
}

.asl-browser-bar {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    padding: 8px 12px;
    background: #f8fafc;
    border-bottom: 1px solid var(--asl-line);
}

.asl-browser-bar span {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #cbd5e1;
}

.asl-browser-bar span:first-child {
    background: #fb7185;
}

.asl-browser-bar span:nth-child(2) {
    background: #fbbf24;
}

.asl-browser-bar span:nth-child(3) {
    background: #34d399;
}

.asl-browser-bar code {
    margin-inline-start: 8px;
    color: var(--asl-muted);
    background: transparent;
    padding: 0;
}

.asl-browser-page {
    min-height: 80px;
    padding: 18px;
    background: #fff;
    color: var(--asl-text);
    overflow-wrap: anywhere;
}

.asl-browser-page img {
    max-width: 100%;
}

.asl-xss-browser-alert {
    display: none;
    margin-top: 20px;
    padding: 16px 18px;
    border-radius: 18px;
    background: #fff1f2;
    border: 1px solid #fecdd3;
    color: #9f1239;
    font-weight: 900;
    box-shadow: var(--asl-shadow-soft);
}

body.asl-xss-fired .asl-xss-browser-alert {
    display: block;
}

body.asl-xss-fired .asl-browser-danger .asl-browser-page {
    outline: 3px solid rgba(220, 38, 38, 0.22);
    background: linear-gradient(180deg, #fff, #fff1f2);
}

.asl-comment-list {
    display: grid;
    gap: 14px;
    margin-top: 16px;
}

.asl-comment-card {
    padding: 16px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--asl-line);
    box-shadow: var(--asl-shadow-soft);
}

.asl-comment-card.is-risky {
    background: linear-gradient(180deg, #fff, var(--asl-danger-bg));
    border-color: #fecdd3;
}

.asl-comment-card.is-safe-risky {
    background: linear-gradient(180deg, #fff, #eff6ff);
    border-color: #bfdbfe;
}

.asl-comment-card header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.asl-comment-card small {
    color: var(--asl-muted);
}

.asl-comment-card p {
    margin: 8px 0 0;
    color: var(--asl-muted);
    overflow-wrap: anywhere;
}

.asl-comment-card details {
    margin-top: 12px;
}

.asl-comment-card summary {
    cursor: pointer;
    color: var(--asl-primary);
    font-weight: 800;
}

.asl-payload-grid-compact {
    grid-template-columns: 1fr;
}

@media (max-width: 760px) {
    .asl-comment-card header {
        display: block;
    }
}


/* Phase 5-8 shared educational components */
.asl-upload-dropzone {
    border: 2px dashed var(--asl-line);
    background: linear-gradient(135deg, #fff, #f8fbff);
    border-radius: 22px;
    padding: 22px;
}

.asl-result-panel {
    border-radius: 22px;
    padding: 20px;
    border: 1px solid var(--asl-line);
    background: #fff;
    box-shadow: var(--asl-shadow-soft);
}

.asl-result-panel.is-danger {
    border-color: rgba(220, 38, 38, 0.25);
    background: var(--asl-danger-bg);
}

.asl-result-panel.is-success {
    border-color: rgba(22, 163, 74, 0.24);
    background: var(--asl-success-bg);
}

.asl-small-table {
    width: 100%;
    border-collapse: collapse;
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
}

.asl-small-table th,
.asl-small-table td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--asl-line);
    vertical-align: top;
}

.asl-small-table th {
    background: #f8fafc;
    color: var(--asl-muted);
    font-size: 13px;
    text-align: right;
}

.asl-header-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.asl-header-status.is-ok {
    color: var(--asl-success);
    background: var(--asl-success-bg);
}

.asl-header-status.is-missing {
    color: var(--asl-danger);
    background: var(--asl-danger-bg);
}

.asl-event-severity-high {
    border-right: 4px solid var(--asl-danger);
}

.asl-event-severity-medium {
    border-right: 4px solid var(--asl-warning);
}

.asl-event-severity-low {
    border-right: 4px solid var(--asl-primary);
}

.asl-cookie-chip-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.asl-cookie-chip-list span {
    background: #eef4ff;
    color: #1e3a8a;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 12px;
}


/* Phase 5-8 shared educational components */
.asl-upload-dropzone {
    border: 2px dashed var(--asl-line);
    background: linear-gradient(135deg, #fff, #f8fbff);
    border-radius: 22px;
    padding: 22px;
}

.asl-result-panel {
    border-radius: 22px;
    padding: 20px;
    border: 1px solid var(--asl-line);
    background: #fff;
    box-shadow: var(--asl-shadow-soft);
}

.asl-result-panel.is-danger {
    border-color: rgba(220, 38, 38, 0.25);
    background: var(--asl-danger-bg);
}

.asl-result-panel.is-success {
    border-color: rgba(22, 163, 74, 0.24);
    background: var(--asl-success-bg);
}

.asl-small-table {
    width: 100%;
    border-collapse: collapse;
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
}

.asl-small-table th,
.asl-small-table td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--asl-line);
    vertical-align: top;
}

.asl-small-table th {
    background: #f8fafc;
    color: var(--asl-muted);
    font-size: 13px;
    text-align: right;
}

.asl-header-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.asl-header-status.is-ok {
    color: var(--asl-success);
    background: var(--asl-success-bg);
}

.asl-header-status.is-missing {
    color: var(--asl-danger);
    background: var(--asl-danger-bg);
}

.asl-event-severity-high {
    border-right: 4px solid var(--asl-danger);
}

.asl-event-severity-medium {
    border-right: 4px solid var(--asl-warning);
}

.asl-event-severity-low {
    border-right: 4px solid var(--asl-primary);
}

.asl-cookie-chip-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.asl-cookie-chip-list span {
    background: #eef4ff;
    color: #1e3a8a;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 12px;
}


/* Phase 5-8 shared educational components */
.asl-upload-dropzone {
    border: 2px dashed var(--asl-line);
    background: linear-gradient(135deg, #fff, #f8fbff);
    border-radius: 22px;
    padding: 22px;
}

.asl-result-panel {
    border-radius: 22px;
    padding: 20px;
    border: 1px solid var(--asl-line);
    background: #fff;
    box-shadow: var(--asl-shadow-soft);
}

.asl-result-panel.is-danger {
    border-color: rgba(220, 38, 38, 0.25);
    background: var(--asl-danger-bg);
}

.asl-result-panel.is-success {
    border-color: rgba(22, 163, 74, 0.24);
    background: var(--asl-success-bg);
}

.asl-small-table {
    width: 100%;
    border-collapse: collapse;
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
}

.asl-small-table th,
.asl-small-table td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--asl-line);
    vertical-align: top;
}

.asl-small-table th {
    background: #f8fafc;
    color: var(--asl-muted);
    font-size: 13px;
    text-align: right;
}

.asl-header-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.asl-header-status.is-ok {
    color: var(--asl-success);
    background: var(--asl-success-bg);
}

.asl-header-status.is-missing {
    color: var(--asl-danger);
    background: var(--asl-danger-bg);
}

.asl-event-severity-high {
    border-right: 4px solid var(--asl-danger);
}

.asl-event-severity-medium {
    border-right: 4px solid var(--asl-warning);
}

.asl-event-severity-low {
    border-right: 4px solid var(--asl-primary);
}

.asl-cookie-chip-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.asl-cookie-chip-list span {
    background: #eef4ff;
    color: #1e3a8a;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 12px;
}


/* Phase 9 - Mini Passive Scanner */
.asl-scanner-form input[type="text"],
.asl-scanner-form input[type="url"],
.asl-scanner-form input:not([type]) {
    direction: ltr;
    text-align: left;
}

.asl-checkbox-row {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--asl-line);
    border-radius: 16px;
    background: #f8fafc;
}

.asl-checkbox-row input {
    width: 18px !important;
    min-height: auto !important;
    margin-top: 6px;
}

.asl-report-panel {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid var(--asl-line);
    border-radius: 26px;
    padding: 24px;
    box-shadow: var(--asl-shadow-soft);
}

.asl-score-ring {
    width: 104px;
    height: 104px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: conic-gradient(var(--asl-primary), var(--asl-purple), var(--asl-primary));
    color: #fff;
    box-shadow: 0 18px 28px rgba(37, 99, 235, 0.2);
}

.asl-score-ring strong {
    display: block;
    font-size: 30px;
    line-height: 1;
}

.asl-score-ring span {
    display: block;
    font-size: 12px;
    font-weight: 800;
}

.asl-cookie-list,
.asl-finding-list,
.asl-path-grid {
    display: grid;
    gap: 12px;
}

.asl-cookie-card,
.asl-path-check,
.asl-finding {
    border: 1px solid var(--asl-line);
    border-radius: 18px;
    padding: 14px;
    background: #fff;
}

.asl-path-check.is-ok,
.asl-finding.is-success {
    border-color: #bbf7d0;
    background: var(--asl-success-bg);
}

.asl-path-check.is-warning,
.asl-finding.is-warning {
    border-color: #fde68a;
    background: var(--asl-warning-bg);
}

.asl-finding.is-danger {
    border-color: #fecdd3;
    background: var(--asl-danger-bg);
}

.asl-path-check strong,
.asl-finding span {
    color: var(--asl-primary);
    font-weight: 900;
}

.asl-finding h3 {
    margin: 6px 0 4px;
}

/* Phase 10 - Argess Projects Checklist */
.asl-project-option-card {
    position: relative;
    overflow: hidden;
}

.asl-project-option-card::after {
    content: "";
    position: absolute;
    inset-inline-end: -42px;
    bottom: -42px;
    width: 132px;
    height: 132px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.15), transparent 68%);
}

.asl-checklist-group-grid,
.asl-checklist-item-list {
    display: grid;
    gap: 14px;
}

.asl-checklist-group-card {
    display: grid;
    grid-template-columns: 64px 1fr;
    align-items: center;
    gap: 16px;
}

.asl-checklist-group-icon,
.asl-checklist-group-inline-icon {
    display: inline-grid;
    place-items: center;
    border-radius: 20px;
    background: linear-gradient(135deg, #eff6ff, #f5f3ff);
    color: var(--asl-primary-dark);
    font-size: 28px;
    box-shadow: inset 0 0 0 1px rgba(191, 219, 254, 0.75);
}

.asl-checklist-group-icon {
    width: 64px;
    height: 64px;
}

.asl-checklist-group-inline-icon {
    width: 44px;
    height: 44px;
    margin-left: 8px;
    vertical-align: middle;
}

.asl-project-context-card {
    margin-top: 24px;
}

.asl-project-select-links {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.asl-project-select-links a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid var(--asl-line);
    color: var(--asl-text);
    font-weight: 800;
    font-size: 13px;
}

.asl-project-select-links a.is-active,
.asl-project-select-links a:hover {
    background: linear-gradient(135deg, var(--asl-primary), var(--asl-purple));
    border-color: transparent;
    color: #fff;
}

.asl-security-check-item {
    border-right: 5px solid var(--asl-primary);
}

.asl-check-item-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 10px;
}

.asl-check-item-header h3 {
    margin: 4px 0 0;
}

.asl-mini-note {
    border: 1px solid var(--asl-line);
    border-radius: 16px;
    padding: 14px;
    background: rgba(248, 250, 252, 0.72);
}

.asl-mini-note strong {
    display: block;
    color: var(--asl-primary-dark);
    margin-bottom: 5px;
}

.asl-mini-note p {
    margin: 0;
    color: var(--asl-muted);
}

.asl-argess-example-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.asl-argess-example-grid div {
    padding: 12px 14px;
    border-radius: 16px;
    background: #f8fbff;
    border: 1px dashed rgba(37, 99, 235, 0.25);
    color: var(--asl-muted);
}

.asl-safe-plan-step {
    border-right: 5px solid var(--asl-purple);
}

@media (max-width: 760px) {
    .asl-checklist-group-card,
    .asl-argess-example-grid,
    .asl-check-item-header {
        display: block;
    }

    .asl-checklist-group-icon,
    .asl-check-item-header .asl-pill {
        margin-bottom: 10px;
    }

    .asl-project-select-links {
        justify-content: flex-start;
    }
}


/* Phase 11 - Academy polish and Security Assessment Core */
@font-face {
    font-family: 'Argess';
    src: url('/fonts/Argess.woff2') format('woff2'),
         url('/fonts/Argess.woff') format('woff'),
         url('/fonts/Argess.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Argess';
    src: url('/fonts/Argess.woff2') format('woff2'),
         url('/fonts/Argess.woff') format('woff'),
         url('/fonts/Argess.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

:root {
    --asl-pro-blue: #2563eb;
    --asl-pro-indigo: #4f46e5;
    --asl-pro-cyan: #0891b2;
    --asl-pro-green: #059669;
    --asl-pro-amber: #d97706;
    --asl-pro-rose: #e11d48;
    --asl-soft-bg: #f8fbff;
}

body {
    font-family: 'Argess', Vazirmatn, Tahoma, Arial, sans-serif;
}

.asl-container-pro {
    max-width: 1320px;
}

.asl-topbar-pro {
    position: sticky;
    top: 0;
    z-index: 30;
    backdrop-filter: blur(14px);
    background: rgba(255, 255, 255, 0.92);
    border-bottom: 1px solid rgba(226, 232, 240, 0.92);
}

.asl-nav-pro a {
    gap: 7px;
    min-height: 38px;
}

.asl-nav-pro i,
.asl-quickbar-pro i,
.asl-button i {
    font-size: 13px;
}

.asl-quickbar-pro {
    background: linear-gradient(90deg, rgba(239, 246, 255, 0.96), rgba(250, 245, 255, 0.96));
    border-bottom: 1px solid rgba(191, 219, 254, 0.8);
}

.asl-hero-pro,
.asl-assessment-hero,
.asl-academy-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 18% 20%, rgba(37, 99, 235, 0.14), transparent 28%),
        radial-gradient(circle at 82% 18%, rgba(124, 58, 237, 0.12), transparent 30%),
        linear-gradient(135deg, #ffffff, #f8fbff 62%, #eef6ff);
    border: 1px solid rgba(191, 219, 254, 0.72);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.08);
}

.asl-hero-pro::after,
.asl-assessment-hero::after,
.asl-academy-hero::after {
    content: "";
    position: absolute;
    inset-inline-end: -120px;
    inset-block-start: -120px;
    width: 320px;
    height: 320px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.16), transparent 65%);
    pointer-events: none;
}

.asl-hero-metrics {
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(16px);
}

.asl-mini-metrics,
.asl-academy-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0;
}

.asl-mini-metrics span,
.asl-academy-stats span {
    display: grid;
    gap: 4px;
    padding: 14px 12px;
    border-radius: 18px;
    background: #fff;
    border: 1px solid var(--asl-line);
    color: var(--asl-muted);
    text-align: center;
}

.asl-mini-metrics b,
.asl-academy-stats b {
    display: block;
    color: var(--asl-primary-dark);
    font-size: 26px;
    line-height: 1;
}

.asl-category-grid,
.asl-project-profile-grid,
.asl-testcase-grid,
.asl-academy-grid,
.asl-risk-matrix {
    display: grid;
    gap: 16px;
}

.asl-category-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.asl-category-card {
    position: relative;
    overflow: hidden;
    display: block;
    min-height: 190px;
    padding: 22px;
    border-radius: 26px;
    background: #fff;
    border: 1px solid var(--asl-line);
    color: var(--asl-text);
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.07);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.asl-category-card::after {
    content: "";
    position: absolute;
    inset-inline-end: -44px;
    bottom: -44px;
    width: 150px;
    height: 150px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.14), transparent 70%);
}

.asl-category-card:hover {
    transform: translateY(-4px);
    border-color: rgba(37, 99, 235, 0.38);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.1);
}

.asl-category-card i {
    display: inline-grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 18px;
    margin-bottom: 16px;
    background: linear-gradient(135deg, #eff6ff, #eef2ff);
    color: var(--asl-primary-dark);
    font-size: 22px;
}

.asl-category-card span {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 999px;
    background: #f8fafc;
    color: var(--asl-muted);
    font-size: 12px;
    font-weight: 900;
}

.asl-category-card h3 {
    margin: 14px 0 8px;
    color: var(--asl-primary-dark);
}

.asl-category-card p {
    margin: 0;
    color: var(--asl-muted);
}

.asl-accent-purple i { background: linear-gradient(135deg, #faf5ff, #eef2ff); color: #7c3aed; }
.asl-accent-cyan i { background: linear-gradient(135deg, #ecfeff, #eff6ff); color: #0891b2; }
.asl-accent-amber i { background: linear-gradient(135deg, #fffbeb, #fff7ed); color: #d97706; }
.asl-accent-green i { background: linear-gradient(135deg, #ecfdf5, #f0fdf4); color: #059669; }

.asl-category-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 20px 0 28px;
}

.asl-category-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 40px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--asl-line);
    background: #fff;
    color: var(--asl-text);
    font-weight: 850;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
}

.asl-category-tabs a:hover,
.asl-category-tabs a.is-active {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--asl-primary), var(--asl-purple));
}

.asl-category-tabs-large a {
    min-height: 44px;
}

.asl-mission-category-section {
    margin-top: 36px;
}

.asl-mission-card-wide.asl-professional-mission {
    border-color: rgba(5, 150, 105, 0.28);
    background: linear-gradient(135deg, #ffffff, #f0fdf4);
}

.asl-mission-icon i {
    font-size: 24px;
}

.asl-academy-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asl-academy-card {
    display: grid;
    grid-template-columns: 70px 1fr;
    gap: 16px;
    padding: 18px;
    border-radius: 24px;
    border: 1px solid var(--asl-line);
    background: #fff;
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.06);
}

.asl-academy-card.is-pro {
    background: linear-gradient(135deg, #fff, #f0fdf4);
    border-color: rgba(5, 150, 105, 0.25);
}

.asl-academy-card-icon {
    display: inline-grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 22px;
    background: linear-gradient(135deg, #eff6ff, #f5f3ff);
    color: var(--asl-primary-dark);
    font-size: 26px;
}

.asl-academy-card span,
.asl-testcase-card code,
.asl-finding-report-card code {
    color: var(--asl-primary);
    font-weight: 900;
}

.asl-academy-card h3 {
    margin: 6px 0 8px;
}

.asl-academy-card p {
    margin: 0;
    color: var(--asl-muted);
}

.asl-pill-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.asl-pill-row small,
.asl-testcase-card footer small {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid var(--asl-line);
    color: var(--asl-muted);
    font-weight: 800;
}

.asl-academy-card footer {
    grid-column: 2;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.asl-academy-card footer a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid var(--asl-line);
    font-weight: 850;
}

.asl-academy-card footer a:first-child {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--asl-primary), var(--asl-purple));
}

.asl-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.asl-step-number {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 16px;
    color: #fff;
    background: linear-gradient(135deg, var(--asl-primary), var(--asl-purple));
    font-weight: 950;
    margin-bottom: 12px;
}

.asl-project-profile-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.asl-project-profile-card,
.asl-testcase-card,
.asl-finding-report-card,
.asl-risk-card {
    border: 1px solid var(--asl-line);
    border-radius: 24px;
    background: #fff;
    padding: 18px;
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.06);
}

.asl-project-profile-card span {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 999px;
    color: var(--asl-primary-dark);
    background: #eff6ff;
    font-weight: 900;
    font-size: 12px;
}

.asl-project-profile-card h3 {
    margin: 12px 0 8px;
}

.asl-project-profile-card p,
.asl-testcase-card p,
.asl-finding-report-card p {
    color: var(--asl-muted);
}

.asl-project-profile-card code {
    display: block;
    direction: ltr;
    text-align: left;
    margin: 12px 0;
    padding: 10px 12px;
    border-radius: 14px;
    background: #0f172a;
    color: #e0f2fe;
}

.asl-testcase-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asl-testcase-head,
.asl-finding-report-card header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.asl-testcase-head span,
.asl-finding-report-card header > span {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 5px 12px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, var(--asl-pro-rose), #fb7185);
    font-weight: 900;
    white-space: nowrap;
}

.asl-testcase-card footer {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.asl-risk-matrix {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.asl-risk-card {
    border-top: 5px solid var(--asl-primary);
}

.asl-risk-card strong {
    display: block;
    color: var(--asl-primary-dark);
    font-size: 22px;
    margin-bottom: 8px;
}

.asl-risk-card p {
    color: var(--asl-muted);
}

.asl-risk-card small {
    font-weight: 900;
}

.asl-risk-card.is-critical { border-top-color: #b91c1c; background: #fff1f2; }
.asl-risk-card.is-high { border-top-color: #e11d48; background: #fff7f8; }
.asl-risk-card.is-medium { border-top-color: #d97706; background: #fffbeb; }
.asl-risk-card.is-low { border-top-color: #2563eb; background: #eff6ff; }

.asl-finding-report-list {
    display: grid;
    gap: 18px;
}

.asl-finding-report-card header h2 {
    margin: 5px 0;
}

.asl-evidence-box {
    margin-top: 18px;
    border: 1px dashed rgba(37, 99, 235, 0.35);
    border-radius: 20px;
    padding: 16px;
    background: #f8fbff;
}

.asl-evidence-box h3 {
    margin-top: 0;
}

.asl-evidence-box div {
    background: #fff;
    border: 1px solid var(--asl-line);
    border-radius: 16px;
    padding: 14px;
    margin-top: 10px;
}

.asl-evidence-box small {
    color: var(--asl-muted);
    font-weight: 850;
}

.asl-assessment-run-card {
    min-height: 210px;
}

@media (max-width: 1100px) {
    .asl-category-grid,
    .asl-grid-4,
    .asl-risk-matrix,
    .asl-project-profile-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .asl-category-grid,
    .asl-academy-grid,
    .asl-testcase-grid,
    .asl-project-profile-grid,
    .asl-risk-matrix,
    .asl-grid-4,
    .asl-mini-metrics,
    .asl-academy-stats {
        grid-template-columns: 1fr;
    }

    .asl-academy-card {
        grid-template-columns: 1fr;
    }

    .asl-academy-card footer {
        grid-column: auto;
        justify-content: flex-start;
    }

    .asl-testcase-head,
    .asl-finding-report-card header {
        display: block;
    }
}


/* Phase 12 — Professional shell polish and Advanced Access Control Lab */
:root {
    --asl-command: #0f172a;
    --asl-command-2: #111827;
    --asl-red: #b91c1c;
    --asl-red-soft: #fee2e2;
    --asl-gold: #d97706;
}

.asl-shell-body {
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, .18), transparent 28%),
        radial-gradient(circle at 80% 10%, rgba(14, 165, 233, .13), transparent 26%),
        radial-gradient(circle at bottom right, rgba(124, 58, 237, .12), transparent 30%),
        linear-gradient(180deg, #eef4ff 0%, #f8fbff 55%, #eef4ff 100%);
}

.asl-command-topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    display: grid;
    grid-template-columns: minmax(280px, 430px) 1fr;
    gap: 18px;
    align-items: center;
    padding: 14px 26px;
    background: rgba(15, 23, 42, .94);
    backdrop-filter: blur(18px);
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, .10);
    box-shadow: 0 18px 50px rgba(15, 23, 42, .18);
}

.asl-brand-command,
.asl-brand-command:hover {
    color: #fff;
}

.asl-brand-command .asl-brand-mark {
    background: linear-gradient(135deg, #38bdf8, #2563eb 55%, #7c3aed);
    box-shadow: 0 12px 35px rgba(56, 189, 248, .35);
}

.asl-brand-command small {
    color: rgba(226, 232, 240, .86);
}

.asl-command-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.asl-command-nav a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #e5eefb;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, .10);
    background: rgba(255, 255, 255, .055);
    font-weight: 850;
    transition: .2s ease;
}

.asl-command-nav a:hover {
    transform: translateY(-2px);
    background: rgba(37, 99, 235, .32);
    border-color: rgba(147, 197, 253, .5);
}

.asl-workbench-ribbon {
    position: sticky;
    top: 73px;
    z-index: 25;
    display: flex;
    gap: 10px;
    align-items: center;
    overflow-x: auto;
    padding: 10px 26px;
    background: rgba(255, 255, 255, .9);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--asl-line);
}

.asl-workbench-ribbon a,
.asl-workbench-ribbon span {
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #f8fbff;
    border: 1px solid var(--asl-line);
    color: #334155;
    font-size: .92rem;
    font-weight: 850;
}

.asl-workbench-ribbon a:hover {
    background: #e0f2fe;
    border-color: #7dd3fc;
}

.asl-command-container {
    padding-top: 26px;
}

.asl-command-hero {
    border: 1px solid rgba(37, 99, 235, .18);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(239, 246, 255, .88)),
        radial-gradient(circle at top left, rgba(37, 99, 235, .2), transparent 40%);
}

.asl-command-status,
.asl-lab-gauge {
    background: #0f172a;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .1);
}

.asl-command-status p,
.asl-lab-gauge p {
    color: #dbeafe;
}

.asl-command-lanes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 22px 0;
}

.asl-command-lane {
    display: grid;
    grid-template-columns: 54px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 18px;
    border: 1px solid var(--asl-line);
    border-radius: 24px;
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--asl-shadow-soft);
}

.asl-command-lane > i {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--asl-primary);
    font-size: 1.35rem;
}

.asl-command-lane.is-academy > i { background: linear-gradient(135deg, #2563eb, #0ea5e9); }
.asl-command-lane.is-assessment > i { background: linear-gradient(135deg, #0f766e, #22c55e); }
.asl-command-lane.is-lab > i { background: linear-gradient(135deg, #b91c1c, #f97316); }

.asl-command-lane span,
.asl-scenario-card span,
.asl-scenario-detail-card header span {
    color: var(--asl-muted);
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .02em;
}

.asl-command-lane h2 {
    margin: 0;
    font-size: 1.12rem;
}

.asl-command-lane p {
    margin: 3px 0 0;
    color: var(--asl-muted);
    line-height: 1.75;
}

.asl-command-lane > a {
    background: #0f172a;
    color: #fff;
    padding: 9px 14px;
    border-radius: 14px;
    font-weight: 900;
}

.asl-category-grid-command .asl-category-card {
    min-height: 190px;
}

.asl-accent-red {
    --accent: #ef4444;
}

.asl-phase12-hero {
    background:
        linear-gradient(135deg, rgba(15, 23, 42, .96), rgba(30, 41, 59, .94)),
        radial-gradient(circle at top left, rgba(239, 68, 68, .22), transparent 38%);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .12);
}

.asl-phase12-hero p,
.asl-phase12-hero .asl-kicker {
    color: #e2e8f0;
}

.asl-gauge-row,
.asl-report-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0;
}

.asl-gauge-row span,
.asl-report-summary-grid article {
    border: 1px solid rgba(148, 163, 184, .25);
    border-radius: 16px;
    padding: 12px;
    background: rgba(255, 255, 255, .08);
}

.asl-gauge-row b,
.asl-report-summary-grid b {
    display: block;
    font-size: 1.6rem;
}

.asl-report-summary-grid article {
    background: #fff;
    border-color: var(--asl-line);
    box-shadow: var(--asl-shadow-soft);
}

.asl-professional-layers .asl-command-card i {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: #eff6ff;
    color: var(--asl-primary);
    font-size: 1.3rem;
    margin-bottom: 10px;
}

.asl-scenario-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.asl-scenario-card,
.asl-scenario-detail-card {
    background: #fff;
    border: 1px solid var(--asl-line);
    border-radius: 24px;
    padding: 18px;
    box-shadow: var(--asl-shadow-soft);
    position: relative;
    overflow: hidden;
}

.asl-scenario-card::before,
.asl-scenario-detail-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, #ef4444, #f97316, #2563eb);
}

.asl-scenario-card > i {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: #fff7ed;
    color: #ea580c;
    font-size: 1.35rem;
    margin-bottom: 12px;
}

.asl-scenario-card h3 {
    margin: 6px 0;
}

.asl-scenario-card p {
    color: var(--asl-muted);
    margin: 0 0 14px;
}

.asl-scenario-card a,
.asl-scenario-detail-card footer a {
    display: inline-flex;
    background: #0f172a;
    color: #fff;
    border-radius: 14px;
    padding: 9px 14px;
    font-weight: 900;
}

.asl-scenario-list {
    display: grid;
    gap: 16px;
}

.asl-scenario-detail-card header {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: start;
}

.asl-scenario-detail-card header div {
    display: flex;
    gap: 12px;
    align-items: center;
}

.asl-scenario-detail-card header i {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: #eff6ff;
    color: var(--asl-primary);
}

.asl-scenario-detail-card header strong,
.asl-scenario-detail-card header span:last-child {
    background: #fee2e2;
    color: #991b1b;
    padding: 6px 10px;
    border-radius: 999px;
}

.asl-scenario-detail-card dl {
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 10px 16px;
    margin: 18px 0;
}

.asl-scenario-detail-card dt {
    color: var(--asl-muted);
    font-weight: 900;
}

.asl-scenario-detail-card dd {
    margin: 0;
}

.asl-policy-check {
    display: grid;
    grid-template-columns: 1fr 70px 1fr;
    gap: 16px;
    align-items: stretch;
    margin-bottom: 20px;
}

.asl-policy-panel {
    background: #fff;
    border: 1px solid var(--asl-line);
    border-radius: 24px;
    padding: 20px;
    box-shadow: var(--asl-shadow-soft);
}

.asl-policy-panel span {
    color: var(--asl-muted);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.asl-policy-panel h2 {
    margin: 6px 0 10px;
}

.asl-policy-panel ul {
    margin: 0;
    padding-right: 18px;
}

.asl-policy-arrow {
    display: grid;
    place-items: center;
    color: #64748b;
    font-size: 2rem;
}

.asl-policy-check.is-blocked .asl-policy-panel:last-child {
    border-color: #fecaca;
    background: #fff7f7;
}

.asl-policy-check.is-allowed .asl-policy-panel:last-child {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.asl-danger-soft {
    background: #fff1f2;
    border-color: #fecdd3;
}

.asl-success-soft {
    background: #ecfdf5;
    border-color: #bbf7d0;
}

.asl-policy-code div {
    border-color: #cbd5e1;
}

.asl-table-wrap {
    overflow-x: auto;
    background: #fff;
    border: 1px solid var(--asl-line);
    border-radius: 24px;
    box-shadow: var(--asl-shadow-soft);
}

.asl-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 900px;
}

.asl-table-wrap th,
.asl-table-wrap td {
    padding: 14px;
    border-bottom: 1px solid var(--asl-line);
    vertical-align: top;
}

.asl-table-wrap th {
    background: #f8fbff;
    color: #334155;
    text-align: right;
    font-weight: 900;
}

.asl-access-matrix-table code {
    display: inline-block;
    white-space: normal;
    line-height: 1.7;
}

.asl-learning-note {
    padding: 22px;
    background: linear-gradient(135deg, #fffbeb, #fff7ed);
    border: 1px solid #fed7aa;
    border-radius: 24px;
    margin: 22px 0;
}

.asl-learning-note h2 {
    margin-top: 0;
}

.asl-report-list {
    display: grid;
    gap: 14px;
}

.asl-finding-report-card.is-blocked {
    border-color: #fecaca;
}

.asl-finding-report-card.is-allowed {
    border-color: #bbf7d0;
}

.asl-section-count {
    display: inline-flex;
    padding: 8px 12px;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-weight: 900;
}

.asl-mission-grid-command {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.asl-footer-command {
    background: #0f172a;
    color: #e5e7eb;
    border-top: 1px solid rgba(255,255,255,.1);
}

@media (max-width: 1180px) {
    .asl-command-topbar {
        grid-template-columns: 1fr;
    }

    .asl-command-nav {
        justify-content: flex-start;
    }

    .asl-workbench-ribbon {
        top: 132px;
    }

    .asl-command-lanes,
    .asl-scenario-grid,
    .asl-mission-grid-command {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .asl-command-topbar {
        position: static;
        padding: 14px;
    }

    .asl-workbench-ribbon {
        position: static;
        padding: 10px 14px;
    }

    .asl-command-lanes,
    .asl-scenario-grid,
    .asl-mission-grid-command,
    .asl-policy-check,
    .asl-gauge-row,
    .asl-report-summary-grid {
        grid-template-columns: 1fr;
    }

    .asl-command-lane {
        grid-template-columns: 1fr;
    }

    .asl-policy-arrow {
        transform: rotate(90deg);
    }

    .asl-scenario-detail-card dl {
        grid-template-columns: 1fr;
    }
}


/* Phase 13 — Professional UI polish + Advanced API Security Lab */
@font-face {
    font-family: "Argess";
    src: url("/fonts/Argess.woff2") format("woff2"),
         url("/fonts/Argess.woff") format("woff"),
         url("/fonts/Argess.ttf") format("truetype");
    font-weight: 100 950;
    font-style: normal;
    font-display: swap;
}

:root {
    --asl-ink: #0b1220;
    --asl-ink-2: #172033;
    --asl-panel: rgba(255,255,255,.94);
    --asl-glow-blue: rgba(37, 99, 235, .22);
    --asl-glow-cyan: rgba(6, 182, 212, .18);
    --asl-api: #0f766e;
    --asl-api-soft: #ccfbf1;
}

html { scroll-behavior: smooth; }

body,
button,
input,
select,
textarea {
    font-family: "Argess", Tahoma, Arial, sans-serif !important;
}

body.asl-shell-body {
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    background:
        radial-gradient(circle at 8% 4%, rgba(56, 189, 248, .18), transparent 28%),
        radial-gradient(circle at 88% 2%, rgba(99, 102, 241, .20), transparent 30%),
        radial-gradient(circle at 80% 92%, rgba(20, 184, 166, .14), transparent 30%),
        linear-gradient(180deg, #edf4ff 0%, #f8fbff 44%, #edf5ff 100%);
}

.fa-solid,
.fa-regular,
.fa-brands {
    line-height: 1;
    flex: 0 0 auto;
}

.asl-command-topbar {
    grid-template-columns: minmax(300px, 420px) minmax(0, 1fr);
    padding: 12px 28px;
    background:
        linear-gradient(135deg, rgba(11,18,32,.98), rgba(23,32,51,.96)),
        radial-gradient(circle at 12% 0%, rgba(56, 189, 248, .28), transparent 34%);
}

.asl-brand-command {
    flex-direction: row-reverse;
    text-align: right;
    justify-content: flex-start;
}

.asl-brand-command .asl-brand-mark {
    order: -1;
    width: 52px;
    height: 52px;
    border-radius: 18px;
}

.asl-brand-command strong {
    font-size: 1.05rem;
    letter-spacing: 0;
}

.asl-command-nav { gap: 9px; }

.asl-command-nav a {
    min-height: 46px;
    padding: 10px 15px;
    border-radius: 16px;
    background: rgba(255,255,255,.07);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

.asl-command-nav a span,
.asl-workbench-ribbon a,
.asl-workbench-ribbon span { line-height: 1.4; }

.asl-workbench-ribbon {
    justify-content: flex-start;
    gap: 8px;
    min-height: 58px;
    background: rgba(248, 251, 255, .92);
    box-shadow: 0 14px 34px rgba(15,23,42,.05);
}

.asl-workbench-ribbon a,
.asl-workbench-ribbon span {
    min-height: 40px;
    padding: 8px 14px;
    border-radius: 16px;
    background: rgba(255,255,255,.78);
}

.asl-container,
.asl-container-pro { max-width: 1400px; }

.asl-page-title,
.asl-hero,
.asl-card,
.asl-academy-card,
.asl-category-card,
.asl-mission-card,
.asl-project-profile-card,
.asl-testcase-card,
.asl-finding-report-card,
.asl-policy-panel,
.asl-table-wrap { border-color: rgba(190, 209, 235, .92); }

.asl-hero h1,
.asl-page-title h1,
.asl-section-header h2,
.asl-card h2,
.asl-mission-card h3,
.asl-academy-card h3 { letter-spacing: -.01em; }

.asl-section-header { align-items: center; }
.asl-section-header p { margin-bottom: 0; }

.asl-category-grid-command { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.asl-category-card { min-height: 210px; }

.asl-category-card h3,
.asl-academy-card h3,
.asl-mission-card h3 { line-height: 1.75; }

.asl-mission-grid-command {
    grid-template-columns: repeat(3, minmax(300px, 1fr));
    align-items: stretch;
}

.asl-mission-grid-command .asl-mission-card {
    display: flex;
    flex-direction: column;
    min-height: 330px;
    padding: 24px;
    gap: 12px;
}

.asl-mission-grid-command .asl-mission-card > span {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: .86rem;
}

.asl-mission-grid-command .asl-mission-card h3 {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 4px 0 0;
    font-size: 1.18rem;
}

.asl-mission-grid-command .asl-mission-card h3 i {
    width: 42px;
    height: 42px;
    display: inline-grid;
    place-items: center;
    border-radius: 15px;
    background: linear-gradient(135deg, #eff6ff, #eef2ff);
    color: #2563eb;
    font-size: 1.05rem;
}

.asl-mission-grid-command .asl-mission-card p {
    margin: 0;
    line-height: 2;
    color: #52627a;
    overflow-wrap: anywhere;
}

.asl-mission-grid-command .asl-mission-card footer {
    min-width: 0;
    width: 100%;
    margin-top: auto;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.asl-mission-grid-command .asl-mission-card footer a {
    flex: 1 1 0;
    min-height: 42px;
    border-radius: 14px;
}

.asl-academy-grid { grid-template-columns: repeat(2, minmax(360px, 1fr)); }

.asl-academy-card {
    grid-template-columns: 76px minmax(0, 1fr);
    min-height: 260px;
    padding: 22px;
    align-content: start;
}

.asl-academy-card p { line-height: 2; }
.asl-academy-card footer { margin-top: 4px; }

.asl-button,
.asl-mission-card footer a,
.asl-academy-card footer a {
    gap: 8px;
    white-space: nowrap;
}

.asl-button-primary,
.asl-mission-card footer a:first-child,
.asl-academy-card footer a:first-child { box-shadow: 0 14px 26px rgba(37, 99, 235, .20); }

.asl-professional-mission,
.asl-academy-card.is-pro,
.asl-api-card.is-pro {
    border-color: rgba(15, 118, 110, .30) !important;
    background:
        radial-gradient(circle at 10% 0%, rgba(45, 212, 191, .16), transparent 36%),
        linear-gradient(135deg, #ffffff, #f0fdfa) !important;
}

.asl-lab-section-shell {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.asl-lab-side-panel {
    position: sticky;
    top: 144px;
    padding: 18px;
    border: 1px solid rgba(190, 209, 235, .92);
    border-radius: 24px;
    background: rgba(255,255,255,.86);
    box-shadow: var(--asl-shadow-soft);
}

.asl-lab-side-panel a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 8px 10px;
    border-radius: 14px;
    color: #334155;
    font-weight: 900;
}

.asl-lab-side-panel a:hover {
    background: #eff6ff;
    color: #1d4ed8;
}

.asl-api-hero {
    background:
        radial-gradient(circle at 15% 5%, rgba(20,184,166,.20), transparent 32%),
        radial-gradient(circle at 90% 10%, rgba(37,99,235,.18), transparent 32%),
        linear-gradient(135deg, #ffffff, #eff6ff 52%, #f0fdfa);
}

.asl-api-dashboard-grid,
.asl-api-scenario-grid,
.asl-api-contract-grid,
.asl-api-report-grid {
    display: grid;
    gap: 16px;
}

.asl-api-dashboard-grid { grid-template-columns: 1.25fr .75fr; }
.asl-api-scenario-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.asl-api-card,
.asl-api-scenario-card,
.asl-api-contract-card,
.asl-api-finding-card {
    position: relative;
    overflow: hidden;
    padding: 22px;
    border: 1px solid rgba(190, 209, 235, .92);
    border-radius: 24px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 18px 44px rgba(15, 23, 42, .065);
}

.asl-api-card::after,
.asl-api-scenario-card::after {
    content: "";
    position: absolute;
    inset-inline-end: -50px;
    bottom: -60px;
    width: 150px;
    height: 150px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(20,184,166,.15), transparent 70%);
    pointer-events: none;
}

.asl-api-card-header,
.asl-api-scenario-head,
.asl-api-finding-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 12px;
}

.asl-api-icon {
    width: 52px;
    height: 52px;
    display: inline-grid;
    place-items: center;
    border-radius: 18px;
    color: #0f766e;
    background: linear-gradient(135deg, #ccfbf1, #eff6ff);
    font-size: 1.25rem;
}

.asl-api-method {
    direction: ltr;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 10px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, #0f766e, #2563eb);
    font-family: Consolas, monospace;
    font-weight: 900;
}

.asl-api-endpoint {
    direction: ltr;
    text-align: left;
    display: block;
    margin: 12px 0;
    padding: 12px 14px;
    border-radius: 16px;
    background: #0f172a;
    color: #dbeafe;
    font-family: Consolas, monospace;
    overflow-x: auto;
}

.asl-api-sample-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 16px;
}

.asl-api-sample-grid pre {
    min-height: 180px;
    margin: 0;
}

.asl-severity-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #fff1f2;
    color: #be123c;
    border: 1px solid #fecdd3;
    font-weight: 950;
}

.asl-severity-badge.is-high { background: #fff1f2; color: #be123c; }
.asl-severity-badge.is-medium { background: #fffbeb; color: #b45309; border-color: #fde68a; }
.asl-severity-badge.is-critical { background: #450a0a; color: #fecaca; border-color: #7f1d1d; }

.asl-api-contract-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.asl-api-contract-card ul,
.asl-api-scenario-card ul,
.asl-api-finding-card ul {
    padding-right: 20px;
    color: #53657d;
}

.asl-api-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.asl-chart-card canvas {
    width: 100% !important;
    max-height: 260px;
}

.asl-safe-notice {
    padding: 18px;
    border-radius: 22px;
    background: linear-gradient(135deg, #f0fdf4, #ecfeff);
    border: 1px solid #99f6e4;
    color: #115e59;
    font-weight: 850;
}

@media (max-width: 1180px) {
    .asl-category-grid-command,
    .asl-mission-grid-command,
    .asl-api-contract-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .asl-api-dashboard-grid,
    .asl-api-report-grid,
    .asl-lab-section-shell { grid-template-columns: 1fr; }

    .asl-lab-side-panel { position: static; }
}

@media (max-width: 760px) {
    .asl-command-topbar {
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .asl-brand-command { flex-direction: row; }
    .asl-workbench-ribbon { min-height: auto; }

    .asl-category-grid-command,
    .asl-mission-grid-command,
    .asl-academy-grid,
    .asl-api-scenario-grid,
    .asl-api-contract-grid,
    .asl-api-sample-grid { grid-template-columns: 1fr; }

    .asl-mission-grid-command .asl-mission-card,
    .asl-academy-card { min-height: auto; }

    .asl-mission-grid-command .asl-mission-card footer,
    .asl-academy-card footer { justify-content: flex-start; }
}

/* Phase 14 — professional phase navigation and target assessment console */
.asl-shell-v14 {
    background:
        radial-gradient(circle at top right, rgba(37, 99, 235, .16), transparent 32%),
        radial-gradient(circle at bottom left, rgba(20, 184, 166, .11), transparent 30%),
        linear-gradient(180deg, #f6f9ff, #eaf2ff);
}

.asl-topbar-v14 {
    display: flex !important;
    min-height: 78px;
    padding: 13px 28px;
    background: rgba(15, 23, 42, .96) !important;
    border-bottom: 1px solid rgba(148, 163, 184, .22);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .15);
}

.asl-topbar-v14 .asl-brand,
.asl-topbar-v14 .asl-brand:hover {
    color: #fff;
}

.asl-topbar-v14 .asl-brand small {
    color: #cbd5e1;
}

.asl-command-nav-v14 a {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    color: #eff6ff !important;
}

.asl-command-nav-v14 a:hover {
    background: rgba(59, 130, 246, .22);
    color: #fff !important;
}

.asl-lab-shell-v14 {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 0;
    align-items: start;
    direction: rtl;
}

.asl-phase-sidebar {
    position: sticky;
    top: 78px;
    z-index: 12;
    height: calc(100vh - 78px);
    overflow-y: auto;
    padding: 20px 18px;
    background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(241,247,255,.88));
    border-left: 1px solid rgba(190, 209, 235, .88);
    box-shadow: -16px 0 40px rgba(15, 23, 42, .055);
}

.asl-sidebar-head {
    padding: 16px;
    border-radius: 22px;
    background: linear-gradient(135deg, #172554, #1d4ed8 55%, #7c3aed);
    color: #fff;
    margin-bottom: 14px;
}

.asl-sidebar-head span {
    display: block;
    color: #dbeafe;
    font-size: .82rem;
    font-weight: 850;
}

.asl-sidebar-head strong {
    display: block;
    margin-top: 4px;
    font-size: 1.08rem;
}

.asl-phase-nav {
    display: grid;
    gap: 10px;
}

.asl-phase-nav a {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 12px;
    border-radius: 20px;
    border: 1px solid rgba(203, 213, 225, .8);
    background: rgba(255,255,255,.84);
    color: #1f2937;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .045);
}

.asl-phase-nav a:hover,
.asl-phase-nav a.is-current {
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, .35);
    background: linear-gradient(135deg, #eff6ff, #ffffff);
    color: #1d4ed8;
}

.asl-phase-nav a b {
    display: inline-grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 17px;
    background: #e0edff;
    color: #1d4ed8;
    font-weight: 950;
    direction: ltr;
}

.asl-phase-nav a.is-current b {
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
}

.asl-phase-nav span strong,
.asl-phase-nav span small {
    display: block;
}

.asl-phase-nav span small {
    color: #64748b;
    font-size: .79rem;
    line-height: 1.6;
}

.asl-sidebar-tools {
    display: grid;
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed rgba(148, 163, 184, .5);
}

.asl-sidebar-tools a {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 9px 12px;
    border-radius: 15px;
    background: rgba(241, 245, 249, .9);
    color: #334155;
    font-weight: 850;
}

.asl-sidebar-tools a:hover {
    background: #e0edff;
    color: #1d4ed8;
}

.asl-sidebar-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 16px;
    padding: 14px;
    border-radius: 18px;
    background: #f0fdfa;
    color: #115e59;
    border: 1px solid #99f6e4;
    font-size: .86rem;
    font-weight: 800;
}

.asl-content-shell-v14 {
    min-width: 0;
    direction: rtl;
}

.asl-content-shell-v14 .asl-container {
    max-width: 1280px;
}

.asl-home-v14-hero {
    background:
        radial-gradient(circle at 12% 4%, rgba(124, 58, 237, .16), transparent 30%),
        radial-gradient(circle at 88% 6%, rgba(37, 99, 235, .18), transparent 32%),
        linear-gradient(135deg, #ffffff, #eff6ff 52%, #f8fafc);
}

.asl-start-guide,
.asl-console-grid,
.asl-console-hero,
.asl-result-hero {
    margin-top: 22px;
}

.asl-start-guide,
.asl-console-form,
.asl-console-guide,
.asl-console-safety-card,
.asl-result-hero,
.asl-preset-card,
.asl-phase-track {
    border: 1px solid rgba(190, 209, 235, .92);
    border-radius: 26px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 18px 46px rgba(15, 23, 42, .065);
}

.asl-start-guide {
    padding: 22px;
}

.asl-section-header.compact {
    margin-bottom: 14px;
}

.asl-start-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.asl-start-step {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 16px;
    border-radius: 22px;
    background: #f8fafc;
    border: 1px solid #dbe5f2;
    color: #1f2937;
}

.asl-start-step:hover,
.asl-start-step.is-primary {
    background: linear-gradient(135deg, #eff6ff, #ffffff);
    border-color: rgba(37,99,235,.34);
    color: #1d4ed8;
}

.asl-start-step span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #e0edff;
    color: #1d4ed8;
    font-weight: 950;
    direction: ltr;
}

.asl-start-step.is-primary span {
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
}

.asl-start-step strong,
.asl-start-step p {
    display: block;
    margin: 0;
}

.asl-start-step p {
    color: #64748b;
    font-size: .9rem;
}

.asl-command-lane.is-console {
    border-color: rgba(124, 58, 237, .24);
    background: linear-gradient(135deg, #ffffff, #f5f3ff);
}

.asl-phase-map-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.asl-phase-map-grid article {
    min-height: 150px;
    padding: 18px;
    border-radius: 24px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(190, 209, 235, .92);
    box-shadow: var(--asl-shadow-soft);
}

.asl-phase-map-grid b {
    display: inline-grid;
    place-items: center;
    min-width: 56px;
    height: 42px;
    padding: 0 10px;
    border-radius: 14px;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
    direction: ltr;
}

.asl-phase-map-grid strong,
.asl-phase-map-grid span {
    display: block;
    margin-top: 10px;
}

.asl-phase-map-grid span {
    color: #64748b;
}

.asl-academy-start-strip {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    margin: 20px 0;
    padding: 18px;
    border-radius: 24px;
    border: 1px solid #bfdbfe;
    background: linear-gradient(135deg, #eff6ff, #ffffff);
    box-shadow: var(--asl-shadow-soft);
}

.asl-academy-start-strip > i {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
}

.asl-academy-start-strip p {
    margin: 4px 0 0;
    color: #64748b;
}

.asl-academy-start-strip a {
    padding: 10px 15px;
    border-radius: 999px;
    background: #1d4ed8;
    color: #fff;
    font-weight: 900;
}

.asl-phase-track {
    padding: 22px;
    margin-top: 22px;
}

.asl-track-header {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    margin-bottom: 16px;
}

.asl-track-header > span {
    height: 70px;
    display: grid;
    place-items: center;
    border-radius: 22px;
    background: #172554;
    color: #fff;
    font-size: 1.25rem;
    font-weight: 950;
    direction: ltr;
}

.asl-phase-track.is-professional .asl-track-header > span {
    background: linear-gradient(135deg, #2563eb, #7c3aed);
}

.asl-track-header h2,
.asl-track-header p {
    margin: 0;
}

.asl-track-header p {
    color: #64748b;
}

.asl-phase-list-grid {
    display: grid;
    gap: 12px;
}

.asl-phase-row-card {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 16px;
    border-radius: 22px;
    border: 1px solid #dbe5f2;
    background: #f8fafc;
}

.asl-phase-row-card.is-pro {
    background: linear-gradient(135deg, #ffffff, #f0fdfa);
    border-color: rgba(20, 184, 166, .28);
}

.asl-phase-row-card > b {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: #e0edff;
    color: #1d4ed8;
    font-size: 1.1rem;
    direction: ltr;
}

.asl-phase-row-card.is-pro > b {
    background: linear-gradient(135deg, #0f766e, #2563eb);
    color: #fff;
}

.asl-phase-row-card span,
.asl-phase-row-card p {
    color: #64748b;
}

.asl-phase-row-card h3,
.asl-phase-row-card p {
    margin: 2px 0;
}

.asl-phase-row-card footer {
    display: flex;
    gap: 8px;
}

.asl-phase-row-card footer a {
    padding: 8px 12px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #dbe5f2;
    font-weight: 900;
}

.asl-phase-row-card footer a:first-child {
    background: #2563eb;
    color: #fff;
    border-color: #2563eb;
}

.asl-console-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 18px;
    align-items: stretch;
    padding: 28px;
    border-radius: 30px;
    border: 1px solid rgba(190, 209, 235, .92);
    background:
        radial-gradient(circle at 12% 5%, rgba(124,58,237,.18), transparent 34%),
        radial-gradient(circle at 88% 8%, rgba(37,99,235,.20), transparent 34%),
        linear-gradient(135deg, #ffffff, #eff6ff);
    box-shadow: var(--asl-shadow);
}

.asl-console-hero h1,
.asl-result-hero h1 {
    margin: 0 0 12px;
    font-size: 2.05rem;
}

.asl-console-hero p,
.asl-result-hero p {
    color: #64748b;
}

.asl-console-flow {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.asl-console-flow span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.8);
    border: 1px solid #dbe5f2;
    font-weight: 900;
}

.asl-console-flow b {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    direction: ltr;
}

.asl-console-safety-card {
    padding: 22px;
    background: linear-gradient(135deg, #fff7ed, #ffffff);
    color: #7c2d12;
    border-color: #fed7aa;
}

.asl-console-safety-card i {
    font-size: 2rem;
    color: #ea580c;
}

.asl-console-safety-card strong {
    display: block;
    margin-top: 12px;
    font-size: 1.15rem;
}

.asl-console-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) 390px;
    gap: 18px;
    align-items: start;
}

.asl-console-form,
.asl-console-guide {
    padding: 24px;
}

.asl-field-group {
    display: grid;
    gap: 7px;
    margin-bottom: 14px;
}

.asl-field-group label,
.asl-scope-confirm {
    color: #334155;
    font-weight: 900;
}

.asl-field-group input,
.asl-field-group select {
    width: 100%;
    min-height: 50px;
    padding: 10px 14px;
    border-radius: 16px;
    border: 1px solid #cbd5e1;
    background: #fff;
    font-family: "Argess", Tahoma, sans-serif;
    font-size: 1rem;
}

.asl-field-group input:focus,
.asl-field-group select:focus {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .12);
}

.asl-field-group span[data-valmsg-for] {
    color: #be123c;
    font-weight: 850;
}

.asl-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 16px 0;
}

.asl-check-grid label,
.asl-scope-confirm {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #dbe5f2;
}

.asl-check-grid input,
.asl-scope-confirm input {
    width: 18px;
    height: 18px;
    accent-color: #2563eb;
}

.asl-run-button {
    margin-top: 16px;
    min-height: 52px;
    padding-inline: 24px;
}

.asl-console-guide h2 {
    margin-top: 0;
}

.asl-console-guide ol {
    padding-right: 20px;
    color: #475569;
}

.asl-console-guide li {
    margin-bottom: 10px;
}

.asl-console-shortcuts {
    display: grid;
    gap: 9px;
    margin-top: 18px;
}

.asl-console-shortcuts a {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 9px 12px;
    border-radius: 15px;
    background: #eff6ff;
    font-weight: 900;
}

.asl-preset-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.asl-preset-card {
    padding: 20px;
}

.asl-preset-card i {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    margin-bottom: 12px;
}

.asl-preset-card span,
.asl-preset-card small {
    display: inline-block;
    color: #64748b;
}

.asl-preset-card h3,
.asl-preset-card p {
    margin: 6px 0;
}

.asl-history-list {
    display: grid;
    gap: 10px;
}

.asl-history-list article {
    padding: 16px;
    border-radius: 20px;
    background: rgba(255,255,255,.9);
    border: 1px solid #dbe5f2;
}

.asl-history-list strong,
.asl-history-list span {
    display: block;
}

.asl-history-list strong {
    direction: ltr;
    text-align: left;
}

.asl-history-list span,
.asl-history-list p {
    color: #64748b;
}

.asl-result-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 18px;
    align-items: stretch;
    padding: 28px;
    background: linear-gradient(135deg, #ffffff, #eff6ff);
}

.asl-result-hero aside {
    display: grid;
    align-content: center;
    gap: 8px;
    padding: 20px;
    border-radius: 24px;
    background: #172554;
    color: #fff;
    text-align: center;
}

.asl-result-hero aside b {
    font-size: 1.7rem;
}

.asl-result-hero aside small {
    color: #bfdbfe;
}

.asl-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.asl-result-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #dbe5f2;
    color: #334155;
    direction: ltr;
}

.asl-result-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0;
}

.asl-result-metrics article {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 8px;
    padding: 18px;
    border-radius: 24px;
    border: 1px solid #dbe5f2;
    background: rgba(255,255,255,.92);
    box-shadow: var(--asl-shadow-soft);
}

.asl-result-metrics span {
    display: block;
    color: #64748b;
    font-size: .92rem;
    font-weight: 900;
}

.asl-result-metrics p {
    margin: 0;
    color: #0f172a;
    font-size: 1.28rem;
    font-weight: 900;
    line-height: 1.8;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.asl-finding-list,
.asl-check-table {
    display: grid;
    gap: 12px;
}

.asl-finding-card-v2 {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 18px;
    border-radius: 22px;
    border: 1px solid #fecdd3;
    background: #fff1f2;
}

.asl-finding-card-v2 span {
    color: #be123c;
    font-weight: 900;
}

.asl-finding-card-v2 h3,
.asl-finding-card-v2 p {
    margin: 5px 0;
}

.asl-finding-card-v2 p {
    color: #475569;
}

.asl-finding-card-v2 > strong {
    align-self: start;
    white-space: nowrap;
    padding: 7px 12px;
    border-radius: 999px;
    color: #fff;
    background: #be123c;
}

.asl-check-table article {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    border-radius: 18px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.asl-check-table i {
    color: #16a34a;
    margin-top: 6px;
}

.asl-check-table strong,
.asl-check-table span {
    display: block;
}

.asl-check-table span {
    color: #64748b;
}

@media (max-width: 1240px) {
    .asl-lab-shell-v14 { grid-template-columns: 1fr; }
    .asl-phase-sidebar {
        position: relative;
        top: 0;
        height: auto;
        border-left: 0;
        border-bottom: 1px solid rgba(190,209,235,.88);
    }
    .asl-phase-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .asl-sidebar-tools { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .asl-sidebar-note { display: none; }
}

@media (max-width: 980px) {
    .asl-start-steps,
    .asl-phase-map-grid,
    .asl-preset-grid,
    .asl-console-grid,
    .asl-console-hero,
    .asl-result-hero { grid-template-columns: 1fr; }
    .asl-result-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .asl-topbar-v14 { align-items: stretch; }
    .asl-command-nav-v14 { width: 100%; }
    .asl-command-nav-v14 a { flex: 1 1 auto; justify-content: center; }
    .asl-phase-nav,
    .asl-sidebar-tools,
    .asl-check-grid,
    .asl-phase-row-card,
    .asl-start-step,
    .asl-academy-start-strip { grid-template-columns: 1fr; }
    .asl-phase-row-card footer { justify-content: flex-start; flex-wrap: wrap; }
    .asl-result-metrics { grid-template-columns: 1fr; }
}

/* Phase 15 — Operational Security Lab */
.asl-shell-v14 .asl-command-nav-v14 a:first-child {
    background: linear-gradient(135deg, rgba(59,130,246,.95), rgba(124,58,237,.95));
    color: #fff;
    border-color: rgba(255,255,255,.22);
    box-shadow: 0 14px 30px rgba(37,99,235,.24);
}

.asl-command-lane.is-operational {
    background: linear-gradient(135deg, #172554, #312e81);
    color: #fff;
    border: 1px solid rgba(255,255,255,.12);
}
.asl-command-lane.is-operational p,
.asl-command-lane.is-operational span { color: #dbeafe; }
.asl-command-lane.is-operational a { background: #fff; color: #312e81; }

.asl-operational-hero {
    background: radial-gradient(circle at top left, rgba(96,165,250,.24), transparent 36%), linear-gradient(135deg, #ffffff, #eef6ff 55%, #f5f3ff);
    border: 1px solid rgba(191,219,254,.9);
}

.asl-operational-status {
    background: linear-gradient(135deg, #0f172a, #1e1b4b);
    color: #fff;
}
.asl-operational-status p { color: #cbd5e1; }
.asl-operational-status .asl-mini-metrics span {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.15);
    color: #fff;
}

.asl-operational-mode-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.asl-operational-mode-grid article {
    position: relative;
    overflow: hidden;
    padding: 22px;
    min-height: 270px;
    border-radius: 28px;
    border: 1px solid #dbe5f2;
    background: rgba(255,255,255,.94);
    box-shadow: var(--asl-shadow-soft);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.asl-operational-mode-grid article::before {
    content: "";
    position: absolute;
    inset-inline-end: 0;
    top: 0;
    width: 6px;
    height: 100%;
    background: linear-gradient(180deg, #2563eb, #7c3aed);
}
.asl-operational-mode-grid i {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    box-shadow: 0 12px 26px rgba(37,99,235,.25);
}
.asl-operational-mode-grid span {
    color: #2563eb;
    font-weight: 950;
}
.asl-operational-mode-grid h3,
.asl-operational-mode-grid p { margin: 0; }
.asl-operational-mode-grid p { color: #64748b; line-height: 2; }
.asl-operational-mode-grid a {
    margin-top: auto;
    display: inline-flex;
    justify-content: center;
    padding: 10px 14px;
    border-radius: 16px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    font-weight: 900;
}

.asl-operational-summary-grid,
.asl-operational-report-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.asl-operational-form .asl-form-card,
.asl-code-review-form {
    display: grid;
    gap: 12px;
}
.asl-form-card label,
.asl-code-review-form label {
    font-weight: 950;
    color: #0f172a;
}
.asl-form-card input:not([type="checkbox"]),
.asl-form-card select,
.asl-form-card textarea,
.asl-code-review-form select,
.asl-code-review-form textarea {
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 16px;
    padding: 12px 14px;
    background: #fff;
    color: #0f172a;
    font: inherit;
    outline: none;
}
.asl-form-card textarea,
.asl-code-review-form textarea {
    direction: ltr;
    text-align: left;
    line-height: 1.7;
    resize: vertical;
    font-family: Consolas, "Courier New", monospace;
}
.asl-form-card input:focus,
.asl-form-card select:focus,
.asl-form-card textarea:focus,
.asl-code-review-form select:focus,
.asl-code-review-form textarea:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 4px rgba(37,99,235,.11);
}
.asl-checkline {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    line-height: 1.9;
}
.asl-checkline input { margin-top: 7px; }
.asl-form-actions { margin: 18px 0; }

.asl-operational-result-hero {
    margin-bottom: 18px;
}

.asl-operational-finding-list {
    display: grid;
    gap: 12px;
}
.asl-operational-finding {
    padding: 18px;
    border-radius: 22px;
    border: 1px solid #dbe5f2;
    background: #fff;
    box-shadow: var(--asl-shadow-soft);
}
.asl-operational-finding span {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: .9rem;
    font-weight: 950;
    background: #eff6ff;
    color: #1d4ed8;
}
.asl-operational-finding h3,
.asl-operational-finding p,
.asl-operational-finding small { display: block; margin: 8px 0 0; }
.asl-operational-finding p { color: #334155; }
.asl-operational-finding small { color: #64748b; line-height: 1.9; }
.asl-operational-finding.is-success { border-color: #bbf7d0; background: #f0fdf4; }
.asl-operational-finding.is-success span { background: #dcfce7; color: #15803d; }
.asl-operational-finding.is-warning { border-color: #fde68a; background: #fffbeb; }
.asl-operational-finding.is-warning span { background: #fef3c7; color: #b45309; }
.asl-operational-finding.is-danger { border-color: #fecdd3; background: #fff1f2; }
.asl-operational-finding.is-danger span { background: #ffe4e6; color: #be123c; }
.asl-operational-finding.is-info { border-color: #bfdbfe; background: #eff6ff; }

.asl-code-review-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: end;
}
.asl-muted {
    color: #64748b;
    margin: 0;
    line-height: 2;
}
.asl-operational-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 22px;
    border-radius: 28px;
    border: 1px solid #bfdbfe;
    background: linear-gradient(135deg, #eff6ff, #fff);
    box-shadow: var(--asl-shadow-soft);
}
.asl-operational-cta h2,
.asl-operational-cta p { margin: 0; }
.asl-operational-cta p { color: #475569; line-height: 2; }

@media (max-width: 1100px) {
    .asl-operational-mode-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .asl-operational-mode-grid,
    .asl-operational-summary-grid,
    .asl-operational-report-grid,
    .asl-code-review-head,
    .asl-operational-cta { grid-template-columns: 1fr; }
}


/* Phase 15 Fix 01 — phase-specific operational labs and LTR URL inputs */
.asl-ltr-input,
input[type="url"],
input[name$="Url"],
input[name*="Url"],
input[id$="Url"],
input[id*="Url"] {
    direction: ltr !important;
    text-align: left !important;
    unicode-bidi: plaintext;
    font-family: Consolas, "Courier New", monospace, "Argess", Tahoma, sans-serif !important;
}

.asl-phase-operational-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.asl-phase-operational-strip article {
    padding: 22px;
    border-radius: 28px;
    border: 1px solid #dbeafe;
    background: rgba(255,255,255,.94);
    box-shadow: var(--asl-shadow-soft);
    position: relative;
    overflow: hidden;
}

.asl-phase-operational-strip article::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    width: 6px;
    height: 100%;
    background: linear-gradient(180deg, #2563eb, #7c3aed);
}

.asl-phase-operational-strip i {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    margin-bottom: 12px;
}

.asl-phase-operational-strip h3,
.asl-phase-operational-strip p { margin: 6px 0; }
.asl-phase-operational-strip p { color: #64748b; line-height: 1.9; }

.asl-probe-result-list {
    display: grid;
    gap: 12px;
}

.asl-probe-result {
    padding: 18px;
    border-radius: 22px;
    border: 1px solid #dbeafe;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15,23,42,.06);
}

.asl-probe-result.is-success { background: #f0fdf4; border-color: #bbf7d0; }
.asl-probe-result.is-warning { background: #fffbeb; border-color: #fde68a; }
.asl-probe-result.is-danger { background: #fff1f2; border-color: #fecdd3; }
.asl-probe-result.is-info { background: #eff6ff; border-color: #bfdbfe; }

.asl-probe-result span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.75);
    color: #1d4ed8;
    font-weight: 950;
    margin-bottom: 8px;
}

.asl-code-block-ltr,
.asl-url-text {
    direction: ltr;
    text-align: left;
    unicode-bidi: plaintext;
    font-family: Consolas, "Courier New", monospace;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.85;
}

@media (max-width: 1100px) {
    .asl-phase-operational-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .asl-phase-operational-strip { grid-template-columns: 1fr; }
}

/* Phase 16 — UI polish + Error Disclosure Lab */
.asl-command-status .asl-mini-metrics,
.asl-operational-status .asl-mini-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asl-command-status .asl-mini-metrics span,
.asl-operational-status .asl-mini-metrics span {
    min-width: 0;
    min-height: 92px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    text-align: center;
    word-break: normal;
}

.asl-command-status .asl-mini-metrics b,
.asl-operational-status .asl-mini-metrics b {
    font-size: 23px;
    white-space: nowrap;
}

.asl-command-lane.is-error-disclosure {
    background: linear-gradient(135deg, #7f1d1d, #312e81);
    color: #fff;
    border: 1px solid rgba(255,255,255,.14);
}
.asl-command-lane.is-error-disclosure p,
.asl-command-lane.is-error-disclosure span { color: #fee2e2; }
.asl-command-lane.is-error-disclosure a { background: #fff; color: #7f1d1d; }

.asl-error-hero {
    background:
        radial-gradient(circle at 15% 20%, rgba(248, 113, 113, .16), transparent 30%),
        radial-gradient(circle at 85% 10%, rgba(37, 99, 235, .14), transparent 32%),
        linear-gradient(135deg, #ffffff, #f8fbff 55%, #fff1f2);
    border: 1px solid rgba(254, 202, 202, .8);
}

.asl-error-card {
    background: linear-gradient(135deg, #0f172a, #3b0764);
    color: #fff;
}
.asl-error-card ul {
    margin: 14px 0 0;
    padding: 0 20px 0 0;
    line-height: 2.1;
    color: #e2e8f0;
}
.asl-error-card li { margin: 2px 0; }

.asl-error-hero-mini {
    background:
        radial-gradient(circle at top left, rgba(248, 113, 113, .18), transparent 30%),
        linear-gradient(135deg, #ffffff, #f8fbff 58%, #fff7ed);
    border: 1px solid #fed7d7;
}

.asl-error-form .asl-form-grid.two {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr);
}

.asl-check-row {
    margin-top: 14px;
    padding: 16px 18px;
    border-radius: 20px;
    border: 1px solid #dbeafe;
    background: #f8fbff;
}
.asl-check-row label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    color: #334155;
    line-height: 1.9;
    font-weight: 800;
}
.asl-check-row input[type="checkbox"] {
    margin-top: 8px;
    width: 18px;
    height: 18px;
    accent-color: #2563eb;
}
.asl-check-row.is-warning {
    border-color: #fde68a;
    background: #fffbeb;
}

.asl-alert {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 18px 0;
    padding: 16px 18px;
    border-radius: 22px;
    border: 1px solid #dbeafe;
    background: #eff6ff;
    color: #1e3a8a;
    font-weight: 850;
}
.asl-alert.is-success { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }
.asl-alert.is-warning { border-color: #fde68a; background: #fffbeb; color: #92400e; }

.asl-code-card {
    border-radius: 24px;
    padding: 20px;
    border: 1px solid #dbeafe;
    background: #0f172a;
    color: #dbeafe;
    box-shadow: var(--asl-shadow-soft);
}
.asl-code-card strong {
    display: block;
    color: #fff;
    margin-bottom: 12px;
}
.asl-code-card pre {
    margin: 0;
    white-space: pre-wrap;
    direction: ltr;
    text-align: left;
    unicode-bidi: plaintext;
    font-family: Consolas, "Courier New", monospace;
    line-height: 1.8;
}

@media (max-width: 900px) {
    .asl-error-form .asl-form-grid.two { grid-template-columns: 1fr; }
}


/* Shared page hero layout fix */
.asl-page-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 28px 30px;
    border-radius: 28px;
    box-shadow: var(--asl-shadow-soft);
    margin-bottom: 18px;
}

.asl-page-hero.compact {
    padding: 24px 28px;
}

.asl-page-hero h1 {
    margin: 0 0 10px;
    font-size: 2rem;
    line-height: 1.5;
}

.asl-page-hero p {
    margin: 0;
    color: var(--asl-muted);
}

.asl-page-hero > a,
.asl-page-hero .asl-button {
    align-self: end;
    justify-self: start;
}

/* Phase 18 — Professional Report Center */
.asl-reportcenter-hero {
    background:
        radial-gradient(circle at top left, rgba(14, 165, 233, .16), transparent 32%),
        linear-gradient(135deg, #ffffff, #f8fbff 58%, #eff6ff);
    border: 1px solid #bfdbfe;
}

.asl-reportcenter-list { display: grid; gap: 14px; }

.asl-reportcenter-card {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, .9fr) auto;
    gap: 18px;
    align-items: center;
    padding: 18px;
    border-radius: 24px;
    border: 1px solid var(--asl-line);
    background: rgba(255,255,255,.95);
    box-shadow: var(--asl-shadow-soft);
}

.asl-reportcenter-card h3 { margin: 8px 0 4px; }
.asl-reportcenter-card p { margin: 0 0 8px; color: var(--asl-muted); }
.asl-reportcenter-card code { display: inline-block; max-width: 100%; direction: ltr; text-align: left; unicode-bidi: plaintext; overflow-wrap: anywhere; }

.asl-reportcenter-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.asl-reportcenter-stats span { min-height: 68px; display: grid; place-items: center; text-align: center; padding: 8px; border-radius: 16px; border: 1px solid #dbeafe; background: #f8fbff; color: #64748b; font-weight: 850; }
.asl-reportcenter-stats b { display: block; color: var(--asl-primary-dark); font-size: 1.2rem; line-height: 1.2; }
.asl-reportcenter-actions { display: grid; justify-items: start; gap: 10px; }
.asl-reportcenter-empty { padding: 28px; border-radius: 24px; border: 1px dashed #bfdbfe; background: rgba(255,255,255,.82); text-align: center; color: var(--asl-muted); }
.asl-reportcenter-empty i { color: var(--asl-primary); font-size: 2rem; }
.asl-sensitive-badge { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 999px; background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; font-weight: 900; }
.asl-reportcenter-summary { margin: 16px 0; padding: 18px; }
.asl-reportcenter-summary strong, .asl-reportcenter-summary small { display: block; }
.asl-reportcenter-evidence { display: grid; gap: 12px; }
.asl-reportcenter-evidence article { padding: 16px 18px; border: 1px solid var(--asl-line); border-radius: 20px; background: rgba(255,255,255,.95); box-shadow: var(--asl-shadow-soft); }
.asl-reportcenter-evidence p { margin: 6px 0; }

@media (max-width: 1100px) {
    .asl-reportcenter-card { grid-template-columns: 1fr; }
    .asl-reportcenter-actions { justify-items: stretch; }
}

@media (max-width: 720px) {
    .asl-reportcenter-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* Phase 19-24 final labs */
.asl-final-lab-hero {
    background:
        radial-gradient(circle at top left, rgba(124, 58, 237, .16), transparent 32%),
        radial-gradient(circle at bottom right, rgba(37, 99, 235, .14), transparent 30%),
        linear-gradient(135deg, #ffffff, #f8fbff 58%, #eef2ff);
    border: 1px solid #c7d2fe;
}
.asl-final-result-list { display: grid; gap: 12px; }
.asl-final-result { padding: 18px; border-radius: 22px; border: 1px solid #dbeafe; background: #fff; box-shadow: var(--asl-shadow-soft); }
.asl-final-result.is-success { background: #f0fdf4; border-color: #bbf7d0; }
.asl-final-result.is-warning { background: #fffbeb; border-color: #fde68a; }
.asl-final-result.is-danger { background: #fff1f2; border-color: #fecdd3; }
.asl-final-result.is-info { background: #eff6ff; border-color: #bfdbfe; }
.asl-final-result strong { display: block; color: #1d4ed8; margin-bottom: 6px; }
.asl-final-result p { margin: 0 0 8px; color: #334155; }
.asl-textarea-code { direction: ltr; text-align: left; unicode-bidi: plaintext; font-family: Consolas, "Courier New", monospace; min-height: 260px; }
.asl-pack-list { display: grid; gap: 10px; }
.asl-pack-list li { padding: 12px 14px; border-radius: 16px; border: 1px solid var(--asl-line); background: #fff; }
.asl-readiness-score { display: grid; place-items: center; width: 130px; height: 130px; border-radius: 999px; background: linear-gradient(135deg, #2563eb, #7c3aed); color: #fff; box-shadow: var(--asl-shadow); }
.asl-readiness-score b { display: block; font-size: 2.25rem; direction: ltr; }

/* Phase 25 — Stabilization and Login */
.asl-user-menu {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.asl-user-chip,
.asl-login-link,
.asl-user-menu button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .09);
    color: #f8fafc;
    font-weight: 900;
    font-family: inherit;
}

.asl-user-menu form {
    margin: 0;
}

.asl-user-menu button {
    cursor: pointer;
}

.asl-login-shell {
    min-height: calc(100vh - 170px);
    display: grid;
    place-items: center;
    padding: 30px 0;
}

.asl-login-card {
    width: min(560px, 100%);
    padding: 30px;
    border-radius: 30px;
    border: 1px solid rgba(219, 229, 242, .96);
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, .14), transparent 35%),
        linear-gradient(135deg, #ffffff, #f8fbff);
    box-shadow: var(--asl-shadow);
}

.asl-login-brand {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 22px;
}

.asl-login-brand h1 {
    margin: 0 0 8px;
    font-size: 2rem;
}

.asl-login-brand p {
    margin: 0;
    color: var(--asl-muted);
}

.asl-login-form {
    display: grid;
    gap: 14px;
}

.asl-login-check {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 15px;
    border-radius: 18px;
    background: #f8fbff;
    border: 1px solid var(--asl-line);
    font-weight: 850;
}

.asl-login-check input {
    width: 18px;
    height: 18px;
    accent-color: var(--asl-primary);
}

.asl-login-button {
    justify-content: center;
    width: 100%;
}

.asl-login-help {
    margin-top: 18px;
    display: grid;
    gap: 8px;
    padding: 16px;
    border-radius: 20px;
    background: #0f172a;
    color: #dbeafe;
}

.asl-login-help strong {
    color: #fff;
}

.asl-login-help code {
    direction: ltr;
    text-align: left;
    background: rgba(255, 255, 255, .08);
    color: #e0f2fe;
}

@media (max-width: 980px) {
    .asl-user-menu {
        width: 100%;
        justify-content: flex-start;
    }
}


/* Phase 26 — Secure Login polish and form-control foundation */
.asl-field {
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}

.asl-field label {
    color: #334155;
    font-weight: 900;
}

.asl-input,
.asl-field input[type="text"],
.asl-field input[type="password"],
.asl-field input[type="url"],
.asl-field input[type="email"],
.asl-field select,
.asl-field textarea {
    width: 100%;
    min-height: 50px;
    border: 1px solid #cbd5e1;
    border-radius: 16px;
    padding: 10px 14px;
    background: #fff;
    color: #0f172a;
    font-family: "Argess", Tahoma, Arial, sans-serif;
    font-size: 1rem;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.asl-input:focus,
.asl-field input:focus,
.asl-field select:focus,
.asl-field textarea:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .12);
}

.asl-input-ltr {
    direction: ltr;
    text-align: left;
    unicode-bidi: plaintext;
}

.asl-input-icon-wrap {
    position: relative;
}

.asl-input-icon-wrap > i {
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    color: #64748b;
    pointer-events: none;
}

.asl-input-icon-wrap .asl-input {
    padding-right: 44px;
}

.text-danger,
span[data-valmsg-for] {
    color: #be123c;
    font-weight: 850;
}

.asl-secure-login-page {
    min-height: calc(100vh - 150px);
    display: grid;
    place-items: center;
    padding: 34px 0;
}

.asl-secure-login-card {
    width: min(1040px, 100%);
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    overflow: hidden;
    border-radius: 34px;
    border: 1px solid rgba(190, 209, 235, .92);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 30px 80px rgba(15, 23, 42, .12);
}

.asl-secure-login-side {
    position: relative;
    padding: 34px;
    color: #fff;
    background:
        radial-gradient(circle at 15% 15%, rgba(56, 189, 248, .25), transparent 28%),
        radial-gradient(circle at 85% 12%, rgba(124, 58, 237, .35), transparent 32%),
        linear-gradient(135deg, #0f172a, #1e293b 48%, #312e81);
}

.asl-secure-login-side::after {
    content: "";
    position: absolute;
    inset: auto 24px 24px auto;
    width: 150px;
    height: 150px;
    border-radius: 999px;
    background: rgba(255,255,255,.06);
    filter: blur(.2px);
}

.asl-secure-login-logo {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 36px;
}

.asl-secure-login-logo .asl-kicker {
    margin: 0 0 4px;
    color: #bfdbfe;
}

.asl-secure-login-logo strong {
    display: block;
    font-size: 1.05rem;
}

.asl-secure-login-side h1 {
    margin: 0 0 14px;
    font-size: 2.2rem;
    line-height: 1.45;
}

.asl-secure-login-side p {
    margin: 0;
    color: #dbeafe;
    line-height: 2.05;
}

.asl-secure-login-rules {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
}

.asl-secure-login-rules span {
    min-height: 72px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .16);
    color: #eff6ff;
    font-weight: 850;
}

.asl-secure-login-rules i {
    color: #93c5fd;
}

.asl-secure-login-form-panel {
    padding: 36px;
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, .10), transparent 32%),
        linear-gradient(180deg, #ffffff, #f8fbff);
}

.asl-secure-login-form-head {
    margin-bottom: 20px;
}

.asl-secure-login-form-head h2 {
    margin: 0 0 8px;
    font-size: 1.65rem;
}

.asl-secure-login-form-head p {
    margin: 0;
    color: #64748b;
    line-height: 1.95;
}

.asl-secure-login-form {
    display: grid;
    gap: 12px;
}

.asl-secure-login-check {
    justify-content: flex-start;
    margin: 0;
}

.asl-login-error {
    margin: 0 0 18px;
}

.asl-login-help {
    display: none !important;
}

@media (max-width: 900px) {
    .asl-secure-login-card {
        grid-template-columns: 1fr;
    }

    .asl-secure-login-rules {
        grid-template-columns: 1fr;
    }
}

/* Phase 27 — Admin Console & operational stabilization */
.asl-admin-hero {
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, .16), transparent 34%),
        radial-gradient(circle at bottom right, rgba(124, 58, 237, .13), transparent 34%),
        linear-gradient(135deg, #ffffff, #f8fbff 62%, #eef2ff);
    border: 1px solid #c7d2fe;
}

.asl-admin-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.asl-admin-card {
    display: block;
    min-height: 210px;
    padding: 22px;
    border-radius: 26px;
    background: rgba(255,255,255,.94);
    border: 1px solid var(--asl-line);
    box-shadow: var(--asl-shadow-soft);
    color: var(--asl-text);
}

.asl-admin-card i {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--asl-primary), var(--asl-purple));
    color: #fff;
    font-size: 1.35rem;
    margin-bottom: 14px;
}

.asl-admin-card h2 {
    margin: 0 0 8px;
}

.asl-admin-card p {
    color: var(--asl-muted);
    margin: 0;
}

.asl-admin-table small {
    display: block;
    margin-top: 4px;
}

.asl-admin-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.asl-admin-actions form {
    display: inline-flex;
}

.asl-admin-actions button,
.asl-admin-actions .asl-button {
    border: 1px solid var(--asl-line);
    background: #fff;
    color: #1f2937;
    border-radius: 12px;
    min-height: 36px;
    padding: 6px 10px;
    font-weight: 900;
    cursor: pointer;
}

.asl-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 4px 10px;
    border-radius: 999px;
    font-weight: 950;
    margin: 2px;
}

.asl-status-pill.is-ok {
    color: #166534;
    background: #dcfce7;
    border: 1px solid #bbf7d0;
}

.asl-status-pill.is-off {
    color: #991b1b;
    background: #fee2e2;
    border: 1px solid #fecaca;
}

.asl-status-pill.is-warn {
    color: #92400e;
    background: #fef3c7;
    border: 1px solid #fde68a;
}

@media (max-width: 1100px) {
    .asl-admin-grid { grid-template-columns: 1fr; }
}


/* Phase 28 — AFTA Lab Foundation */
.asl-afta-toplink,
.asl-phase-nav a.is-afta-lab {
    background: linear-gradient(135deg, #0f766e, #2563eb, #7c3aed) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,.2) !important;
}

.asl-afta-hero {
    background:
        radial-gradient(circle at 10% 15%, rgba(14, 116, 144, .22), transparent 32%),
        radial-gradient(circle at 85% 12%, rgba(124, 58, 237, .18), transparent 34%),
        linear-gradient(135deg, #ffffff, #f8fbff 48%, #ecfeff);
    border: 1px solid rgba(125, 211, 252, .75);
}

.asl-afta-hero-soft {
    background:
        radial-gradient(circle at top left, rgba(20, 184, 166, .14), transparent 30%),
        linear-gradient(135deg, #ffffff, #f8fbff 60%, #f0fdfa);
    border: 1px solid rgba(153, 246, 228, .75);
}

.asl-afta-status-card {
    background: linear-gradient(135deg, #0f172a, #134e4a);
    color: #fff;
}

.asl-afta-flow,
.asl-afta-group-grid,
.asl-afta-assessment-list {
    display: grid;
    gap: 14px;
}

.asl-afta-flow {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.asl-afta-flow article,
.asl-afta-group-grid a,
.asl-afta-assessment-list a,
.asl-empty-state {
    display: block;
    text-decoration: none;
    color: inherit;
    padding: 18px;
    border-radius: 24px;
    border: 1px solid #dbeafe;
    background: rgba(255,255,255,.94);
    box-shadow: var(--asl-shadow-soft);
}

.asl-afta-flow article i {
    display: inline-flex;
    width: 52px;
    height: 52px;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #14b8a6);
    margin-bottom: 10px;
}

.asl-afta-flow h3,
.asl-afta-flow p,
.asl-afta-group-grid strong,
.asl-afta-group-grid small,
.asl-afta-assessment-list strong,
.asl-afta-assessment-list small { margin: 6px 0; }
.asl-afta-flow p,
.asl-afta-group-grid small,
.asl-afta-assessment-list small { color: var(--asl-muted); line-height: 1.9; }

.asl-afta-group-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.asl-afta-group-grid a b {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, #0f766e, #2563eb);
    margin-bottom: 8px;
}

.asl-afta-assessment-list.wide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asl-afta-catalog-layout {
    display: grid;
    grid-template-columns: 310px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.asl-afta-filter {
    position: sticky;
    top: 110px;
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 28px;
    border: 1px solid #dbeafe;
    background: rgba(255,255,255,.88);
    box-shadow: var(--asl-shadow-soft);
}

.asl-afta-filter a {
    display: grid;
    gap: 4px;
    padding: 12px;
    border-radius: 18px;
    color: #0f172a;
    text-decoration: none;
    background: #f8fbff;
    border: 1px solid transparent;
}

.asl-afta-filter a.is-active {
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
}

.asl-afta-filter small { color: inherit; opacity: .78; }

.asl-afta-requirements,
.asl-afta-result-table {
    display: grid;
    gap: 12px;
}

.asl-afta-requirement-card,
.asl-afta-result-table article {
    padding: 18px;
    border-radius: 24px;
    border: 1px solid #dbeafe;
    background: rgba(255,255,255,.96);
    box-shadow: var(--asl-shadow-soft);
}

.asl-afta-requirement-card h3 { margin: 12px 0 8px; }
.asl-afta-requirement-card p { color: #334155; line-height: 2; }
.asl-afta-requirement-card footer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
    color: #475569;
    font-weight: 800;
}

.asl-chip.is-muted { background: #eef2ff; color: #3730a3; }
.asl-actions-inline { display: flex; flex-wrap: wrap; gap: 10px; }
.asl-actions-inline a { text-decoration: none; }

.asl-afta-form textarea.asl-input { min-height: 130px; resize: vertical; }

.asl-afta-result-table article {
    display: grid;
    grid-template-columns: 140px 160px minmax(0, 1fr) 120px 200px;
    gap: 10px;
    align-items: center;
}

.asl-afta-result-table b,
.asl-afta-result-table em {
    display: inline-flex;
    justify-content: center;
    padding: 7px 10px;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-style: normal;
    font-weight: 900;
}

.asl-afta-result-table small { color: var(--asl-muted); }

@media (max-width: 1200px) {
    .asl-afta-flow,
    .asl-afta-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .asl-afta-catalog-layout { grid-template-columns: 1fr; }
    .asl-afta-filter { position: static; }
    .asl-afta-result-table article { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .asl-afta-flow,
    .asl-afta-group-grid,
    .asl-afta-assessment-list.wide { grid-template-columns: 1fr; }
}

/* Phase 29 — AFTA Target & Scope Wizard */
.asl-afta-scope-form .asl-form-section {
    margin-top: 22px;
    padding-top: 10px;
}

.asl-scope-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}

.asl-scope-summary article {
    min-width: 0;
    padding: 16px 18px;
    border: 1px solid #dbeafe;
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,246,255,.86));
    box-shadow: var(--asl-shadow-soft);
}

.asl-scope-summary span {
    display: block;
    color: #64748b;
    font-weight: 900;
    font-size: .85rem;
    margin-bottom: 8px;
}

.asl-scope-summary strong {
    display: block;
    color: #0f172a;
    font-weight: 950;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

.asl-form-grid.three {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.asl-afta-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.asl-afta-checkbox-grid label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 56px;
    padding: 12px 14px;
    border: 1px solid #dbeafe;
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    color: #334155;
    font-weight: 850;
}

.asl-afta-checkbox-grid input {
    width: 18px;
    height: 18px;
    accent-color: #2563eb;
}

.asl-afta-plan-list {
    display: grid;
    gap: 12px;
}

.asl-afta-plan-list article {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr) 220px;
    gap: 16px;
    align-items: center;
    padding: 16px 18px;
    border: 1px solid #dbeafe;
    border-radius: 22px;
    background: rgba(255,255,255,.94);
    box-shadow: var(--asl-shadow-soft);
}

.asl-afta-plan-list article > div b {
    display: block;
    color: #2563eb;
    font-weight: 950;
    direction: ltr;
    text-align: left;
}

.asl-afta-plan-list article > div span,
.asl-afta-plan-list footer small {
    display: block;
    color: #64748b;
    font-size: .9rem;
    line-height: 1.8;
}

.asl-afta-plan-list strong {
    color: #0f172a;
    font-weight: 950;
    line-height: 1.8;
}

.asl-afta-plan-list p {
    margin: 0;
    color: #1d4ed8;
    font-weight: 900;
    line-height: 1.8;
}

.asl-afta-plan-list footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
}

.asl-afta-plan-list footer em {
    font-style: normal;
    padding: 6px 12px;
    border-radius: 999px;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 950;
}

.asl-afta-plan-list footer i {
    color: #475569;
}

@media (max-width: 1100px) {
    .asl-scope-summary,
    .asl-afta-checkbox-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .asl-afta-plan-list article {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .asl-scope-summary,
    .asl-afta-checkbox-grid,
    .asl-form-grid.three {
        grid-template-columns: 1fr;
    }
}


/* AFTA Pack 2 */
.asl-pack2-assessment-list article {
    display: grid;
    gap: 10px;
}

.asl-pack2-assessment-list .asl-actions-inline {
    justify-content: flex-start;
    flex-wrap: wrap;
}

.asl-pack2-assessment-list .asl-actions-inline a {
    min-width: 150px;
    text-align: center;
}


/* AFTA Pack 3 polish */
.asl-pack3-assessment-list article {
    border-right: 5px solid #7c3aed;
}
.asl-pack3-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-radius: 999px;
    background: #f5f3ff;
    color: #5b21b6;
    font-weight: 950;
}
.asl-pack3-warning {
    border-color: #f59e0b !important;
    background: #fffbeb !important;
}


/* AFTA Pack 4 polish */
.asl-pack4-assessment-list article {
    border-right: 5px solid #0284c7;
}
.asl-pack4-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-radius: 999px;
    background: #ecfeff;
    color: #155e75;
    font-weight: 950;
}
.asl-pack4-transport-card {
    border: 1px solid #bae6fd !important;
    background: linear-gradient(135deg, rgba(240,249,255,.96), rgba(255,255,255,.94)) !important;
}
.asl-pack4-danger-note {
    border-color: #fb7185 !important;
    background: #fff1f2 !important;
}


/* AFTA Pack 5 — Final Report, Readiness Score, Stage Comparison */
.asl-pack5-home-entry {
    border: 1px solid #bbf7d0;
    background: linear-gradient(135deg, rgba(240,253,244,.96), rgba(255,255,255,.96));
}
.asl-pack5-score-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 18px;
    align-items: stretch;
}
.asl-pack5-score-card {
    border: 1px solid #bbf7d0;
    background: linear-gradient(135deg, #f0fdf4, #ffffff);
    border-radius: 24px;
    padding: 22px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
    text-align: center;
}
.asl-pack5-score-card b {
    display: block;
    font-size: 52px;
    line-height: 1.1;
    color: #166534;
    letter-spacing: -1px;
}
.asl-pack5-score-card span {
    color: #64748b;
    font-weight: 850;
}
.asl-pack5-status {
    display: inline-flex;
    margin-top: 12px;
    padding: 8px 12px;
    border-radius: 999px;
    font-weight: 950;
    background: #dcfce7;
    color: #166534;
}
.asl-pack5-status.is-danger { background: #fee2e2; color: #991b1b; }
.asl-pack5-status.is-warning { background: #fef3c7; color: #92400e; }
.asl-pack5-status.is-info { background: #e0f2fe; color: #075985; }
.asl-pack5-project-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.asl-pack5-project-grid article,
.asl-pack5-stage-list article,
.asl-pack5-breakdown article,
.asl-pack5-gap-list article {
    border: 1px solid #e2e8f0;
    background: #fff;
    border-radius: 20px;
    padding: 16px;
    box-shadow: 0 10px 30px rgba(15,23,42,.05);
}
.asl-pack5-project-grid article {
    border-right: 5px solid #16a34a;
    display: grid;
    gap: 10px;
}
.asl-pack5-project-grid strong,
.asl-pack5-stage-list strong { font-size: 16px; }
.asl-pack5-project-grid small,
.asl-pack5-stage-list small,
.asl-pack5-breakdown small,
.asl-pack5-gap-list small { color: var(--asl-muted); line-height: 1.9; }
.asl-pack5-stage-list {
    display: grid;
    gap: 12px;
}
.asl-pack5-stage-list article {
    display: grid;
    grid-template-columns: 110px minmax(0,1fr) 140px 120px;
    gap: 12px;
    align-items: center;
}
.asl-pack5-stage-score {
    font-size: 24px;
    font-weight: 950;
    color: #166534;
    text-align: center;
}
.asl-pack5-delta { font-weight: 950; text-align: center; }
.asl-pack5-delta.is-up { color: #166534; }
.asl-pack5-delta.is-down { color: #991b1b; }
.asl-pack5-breakdown {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 12px;
}
.asl-pack5-breakdown article {
    display: grid;
    grid-template-columns: minmax(0,1fr) 90px;
    gap: 10px;
    align-items: center;
}
.asl-pack5-progress {
    height: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
    margin-top: 8px;
}
.asl-pack5-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #22c55e, #16a34a);
}
.asl-pack5-gap-list {
    display: grid;
    gap: 12px;
}
.asl-pack5-gap-list article {
    border-right: 5px solid #f59e0b;
}
.asl-pack5-gap-list article.is-danger {
    border-right-color: #dc2626;
    background: #fff7f7;
}
.asl-pack5-report-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;
}
.asl-pack5-print-banner {
    display: none;
}
.asl-pack5-stage-form {
    display: grid;
    gap: 16px;
}
.asl-pack5-stage-form .asl-form-grid {
    align-items: end;
}
@media (max-width: 980px) {
    .asl-pack5-score-hero,
    .asl-pack5-project-grid,
    .asl-pack5-breakdown { grid-template-columns: 1fr; }
    .asl-pack5-stage-list article { grid-template-columns: 1fr; }
    .asl-pack5-stage-score,
    .asl-pack5-delta { text-align: right; }
}
@media print {
    body { background: #fff !important; }
    .asl-sidebar-v14,
    .asl-topbar,
    .asl-footer,
    .asl-pack5-report-actions,
    .asl-actions-inline,
    .asl-button,
    form { display: none !important; }
    .asl-content-shell-v14,
    .asl-command-container,
    .asl-container { max-width: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
    .asl-section,
    .asl-page-title,
    .asl-page-hero,
    .asl-pack5-score-card,
    .asl-pack5-breakdown article,
    .asl-pack5-gap-list article { box-shadow: none !important; break-inside: avoid; }
    .asl-pack5-print-banner { display: block; margin-bottom: 14px; font-weight: 900; }
}


/* =========================================================
   Phase 39 — Enterprise Polish, Product Navigation & Maintenance UX
   ========================================================= */
.asl-enterprise-shell { background: radial-gradient(circle at top right, rgba(12, 82, 105, .12), transparent 34rem), #f6f8fb; }
.asl-enterprise-topbar { box-shadow: 0 14px 38px rgba(15, 23, 42, .08); }
.asl-enterprise-layout { align-items: stretch; }
.asl-product-sidebar { width: 330px; background: linear-gradient(180deg, #0f172a 0%, #111827 52%, #0b1220 100%); color: #e5edf7; }
.asl-product-sidebar-head { border-bottom: 1px solid rgba(255,255,255,.09); }
.asl-product-nav { display: flex; flex-direction: column; gap: 1rem; padding: .25rem .35rem 1rem; }
.asl-product-nav-section { border: 1px solid rgba(255,255,255,.08); border-radius: 20px; padding: .85rem; background: rgba(255,255,255,.035); box-shadow: inset 0 1px 0 rgba(255,255,255,.04); }
.asl-product-nav-section h3 { margin: 0 0 .7rem; display: flex; align-items: center; gap: .5rem; font-size: .88rem; color: #c4d3ea; }
.asl-product-nav-section a { display: grid; grid-template-columns: 42px 1fr; gap: .7rem; align-items: center; color: #e7eef9; text-decoration: none; border-radius: 16px; padding: .7rem; margin-bottom: .45rem; transition: transform .16s ease, background .16s ease, border-color .16s ease; border: 1px solid transparent; }
.asl-product-nav-section a:hover { transform: translateY(-1px); background: rgba(255,255,255,.075); border-color: rgba(255,255,255,.12); }
.asl-product-nav-section a b { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; background: rgba(59,130,246,.16); color: #a5c8ff; font-size: .9rem; }
.asl-product-nav-section a strong { display: block; font-size: .9rem; margin-bottom: .2rem; }
.asl-product-nav-section a small { display: block; color: #9eb0c8; line-height: 1.55; font-size: .74rem; }
.asl-product-nav-section a.is-primary { background: linear-gradient(135deg, rgba(37, 99, 235, .32), rgba(14, 165, 233, .18)); border-color: rgba(147,197,253,.22); }
.asl-product-nav-section.is-admin { background: rgba(146, 64, 14, .14); border-color: rgba(251, 191, 36, .16); }
.asl-product-nav-section.is-admin a b { background: rgba(251, 191, 36, .14); color: #fde68a; }
.asl-enterprise-note { margin-top: .75rem; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.08); color: #cfdbef; }
.asl-hero-actions { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; }
.asl-enterprise-hero { background: linear-gradient(135deg, #ffffff 0%, #f8fbff 55%, #eef7ff 100%); border: 1px solid rgba(15,23,42,.06); box-shadow: 0 22px 52px rgba(15,23,42,.08); }
.asl-publish-hero { align-items: stretch; }
.asl-publish-status-card { min-width: 260px; border-radius: 24px; padding: 1rem 1.15rem; background: linear-gradient(135deg, #0f172a, #1e3a8a); color: white; box-shadow: 0 22px 46px rgba(30,58,138,.26); display: flex; flex-direction: column; justify-content: center; gap: .35rem; }
.asl-publish-status-card span { opacity: .75; font-size: .78rem; }
.asl-publish-status-card strong { font-size: 1.25rem; }
.asl-publish-status-card small { opacity: .8; }
.asl-enterprise-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 1.2rem 0; }
.asl-enterprise-metric-grid article { background: #fff; border: 1px solid rgba(15,23,42,.06); border-radius: 22px; padding: 1rem; display: flex; gap: .85rem; align-items: center; box-shadow: 0 14px 34px rgba(15,23,42,.06); }
.asl-enterprise-metric-grid i { width: 48px; height: 48px; border-radius: 16px; display: grid; place-items: center; background: #eef6ff; color: #2563eb; font-size: 1.15rem; }
.asl-enterprise-metric-grid span { display: block; color: #64748b; font-size: .8rem; }
.asl-enterprise-metric-grid strong { display: block; color: #0f172a; font-size: 1.4rem; margin: .1rem 0; }
.asl-enterprise-metric-grid small { display: block; color: #64748b; line-height: 1.45; }
.asl-self-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.asl-self-check-card { border-radius: 22px; padding: 1rem; background: #fff; border: 1px solid rgba(15,23,42,.07); box-shadow: 0 14px 34px rgba(15,23,42,.055); }
.asl-self-check-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .75rem; }
.asl-self-check-head i { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: #f1f5f9; }
.asl-self-check-head span { border-radius: 999px; padding: .28rem .65rem; font-size: .75rem; font-weight: 700; }
.asl-self-check-card h3 { margin: 0 0 .55rem; color: #0f172a; font-size: 1rem; }
.asl-self-check-card p { color: #475569; margin: 0 0 .55rem; line-height: 1.75; }
.asl-self-check-card small { color: #64748b; line-height: 1.65; }
.asl-self-check-card.is-pass { border-color: rgba(22,163,74,.18); }
.asl-self-check-card.is-pass .asl-self-check-head i, .asl-self-check-card.is-pass .asl-self-check-head span { background: #dcfce7; color: #166534; }
.asl-self-check-card.is-warning { border-color: rgba(245,158,11,.22); }
.asl-self-check-card.is-warning .asl-self-check-head i, .asl-self-check-card.is-warning .asl-self-check-head span { background: #fef3c7; color: #92400e; }
.asl-self-check-card.is-fail { border-color: rgba(220,38,38,.22); }
.asl-self-check-card.is-fail .asl-self-check-head i, .asl-self-check-card.is-fail .asl-self-check-head span { background: #fee2e2; color: #991b1b; }
.asl-self-check-card.is-manual .asl-self-check-head i, .asl-self-check-card.is-manual .asl-self-check-head span { background: #e0f2fe; color: #075985; }
.asl-enterprise-action-grid .asl-admin-card { min-height: 170px; }
.asl-enterprise-guidance-card { margin-top: 1rem; }
.asl-guidance-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.asl-guidance-columns > div { border-radius: 18px; background: #f8fafc; padding: 1rem; border: 1px solid rgba(15,23,42,.06); }
.asl-guidance-columns strong { display: block; color: #0f172a; margin-bottom: .45rem; }
.asl-guidance-columns p { margin: 0; color: #475569; line-height: 1.8; }
.asl-maintenance-safety-card { display: flex; gap: 1rem; align-items: flex-start; border-color: rgba(245,158,11,.18); background: linear-gradient(135deg, #fff 0%, #fff8ed 100%); }
.asl-maintenance-safety-card > i { width: 52px; height: 52px; border-radius: 18px; display: grid; place-items: center; color: #b45309; background: #fef3c7; }
.asl-cleanup-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0; }
.asl-cleanup-category-card { cursor: pointer; display: flex; flex-direction: column; gap: .75rem; border-radius: 22px; border: 1px solid rgba(15,23,42,.08); background: #fff; padding: 1rem; box-shadow: 0 12px 28px rgba(15,23,42,.045); transition: .16s ease; }
.asl-cleanup-category-card:hover { transform: translateY(-2px); border-color: rgba(37,99,235,.22); box-shadow: 0 18px 38px rgba(37,99,235,.08); }
.asl-cleanup-check { display: flex; align-items: center; gap: .65rem; color: #0f172a; }
.asl-cleanup-check input { width: 20px; height: 20px; accent-color: #2563eb; }
.asl-cleanup-category-card small { color: #475569; line-height: 1.75; }
.asl-cleanup-meta { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.asl-cleanup-meta b { color: #1d4ed8; background: #eff6ff; border-radius: 999px; padding: .28rem .65rem; }
.asl-cleanup-meta em { font-style: normal; color: #92400e; background: #fef3c7; border-radius: 999px; padding: .28rem .65rem; font-size: .78rem; }
.asl-cleanup-tables { color: #64748b; direction: ltr; text-align: left; font-size: .74rem; background: #f8fafc; border-radius: 14px; padding: .55rem; }
.asl-protected-data-panel { margin: 1.2rem 0; border-radius: 22px; padding: 1rem; background: #f8fafc; border: 1px dashed rgba(15,23,42,.16); }
.asl-protected-data-panel h3 { margin: 0 0 .85rem; color: #0f172a; display: flex; align-items: center; gap: .5rem; }
.asl-protected-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.asl-protected-grid article { border-radius: 18px; padding: .85rem; background: #fff; border: 1px solid rgba(15,23,42,.06); }
.asl-protected-grid strong { display: block; margin-bottom: .35rem; color: #0f172a; }
.asl-protected-grid p { margin: 0 0 .45rem; color: #475569; line-height: 1.65; }
.asl-protected-grid small { display: block; color: #64748b; direction: ltr; text-align: left; }
.asl-cleanup-result-card { border-color: rgba(22,163,74,.18); background: linear-gradient(135deg, #fff, #f0fdf4); }
.asl-cleanup-result-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; }
.asl-cleanup-result-grid div { background: #fff; border: 1px solid rgba(22,163,74,.14); border-radius: 16px; padding: .85rem; }
.asl-cleanup-result-grid strong { display: block; color: #0f172a; margin-bottom: .35rem; }
.asl-cleanup-result-grid span { color: #166534; font-weight: 700; }
.asl-danger-button { background: linear-gradient(135deg, #dc2626, #b91c1c) !important; border-color: transparent !important; }
@media (max-width: 1180px) {
    .asl-product-sidebar { width: 300px; }
    .asl-enterprise-metric-grid, .asl-self-check-grid, .asl-guidance-columns, .asl-protected-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
    .asl-product-sidebar { width: 100%; }
    .asl-cleanup-category-grid, .asl-enterprise-metric-grid, .asl-self-check-grid, .asl-guidance-columns, .asl-protected-grid, .asl-cleanup-result-grid { grid-template-columns: 1fr; }
}


/* Phase 40 — AI-Ready Reporting, Evidence Quality & Executive Outputs */
.asl-hero-card-contrast strong,
.asl-hero-card-contrast p,
.asl-hero-card-contrast .asl-kicker,
.asl-afta-status-card strong,
.asl-afta-status-card p,
.asl-afta-status-card span,
.asl-afta-status-card small {
    color: rgba(255,255,255,.96) !important;
}

.asl-afta-status-card p {
    margin: 10px 0 0;
    line-height: 2;
}

.asl-pack-entry-list {
    display: grid;
    gap: 16px;
}

.asl-pack-entry-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 22px 24px;
    border: 1px solid #dbeafe;
    border-radius: 24px;
    background: rgba(255,255,255,.94);
    box-shadow: var(--asl-shadow-soft);
}

.asl-pack-entry-card.is-highlight {
    border-color: #bbf7d0;
    background: linear-gradient(135deg, rgba(240,253,244,.96), rgba(255,255,255,.98));
}

.asl-pack-entry-copy h2 {
    margin: 0 0 8px;
}

.asl-pack-entry-copy p:last-child {
    margin-bottom: 0;
    color: #475569;
}

.asl-pack-entry-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 200px;
}

.asl-pack-entry-actions .asl-button {
    width: 100%;
}

.asl-pack5-inline-status {
    display: inline-flex;
    margin-top: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eef4ff;
    color: #1d4ed8;
    font-weight: 850;
}

.asl-pack5-project-grid article {
    align-content: start;
}

.asl-pack5-project-grid article > div:first-child,
.asl-pack5-stage-list article > div:nth-child(2),
.asl-pack5-gap-list article,
.asl-pack5-breakdown article,
.asl-pack5-action-list article,
.asl-pack5-ai-list article {
    min-width: 0;
}

.asl-pack5-project-grid small,
.asl-pack5-stage-list small,
.asl-pack5-gap-list small,
.asl-pack5-breakdown small,
.asl-pack5-action-list p,
.asl-pack5-ai-list p {
    overflow-wrap: anywhere;
}

.asl-pack5-intelligence-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 20px;
}

.asl-pack5-intelligence-card {
    padding: 22px;
    border-radius: 24px;
    border: 1px solid #dbeafe;
    background: rgba(255,255,255,.96);
    box-shadow: var(--asl-shadow-soft);
}

.asl-pack5-intelligence-card h2 {
    margin: 0 0 10px;
}

.asl-pack5-intelligence-card p {
    margin: 0;
    color: #334155;
    line-height: 2;
}

.asl-pack5-intelligence-card strong {
    display: block;
    margin-bottom: 10px;
    color: #166534;
    font-size: 1rem;
}

.asl-pack5-intelligence-card.is-soft-info {
    background: linear-gradient(135deg, rgba(236,253,245,.96), rgba(255,255,255,.98));
    border-color: #bbf7d0;
}

.asl-pack5-intelligence-card.is-wide {
    grid-column: span 1;
}

.asl-pack5-action-list,
.asl-pack5-ai-list {
    display: grid;
    gap: 12px;
}

.asl-pack5-action-list article,
.asl-pack5-ai-list article {
    padding: 18px;
    border-radius: 20px;
    border: 1px solid #dbeafe;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15,23,42,.05);
}

.asl-pack5-action-list strong,
.asl-pack5-ai-list strong {
    display: block;
    margin-bottom: 6px;
}

.asl-pack5-priority {
    display: inline-flex;
    margin-bottom: 10px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 900;
}

.asl-pack5-compare-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.asl-pack5-compare-summary article {
    padding: 18px 20px;
    border-radius: 20px;
    border: 1px solid #dbeafe;
    background: rgba(255,255,255,.95);
    box-shadow: var(--asl-shadow-soft);
}

.asl-pack5-compare-summary span {
    display: block;
    color: #64748b;
    font-weight: 850;
    margin-bottom: 8px;
}

.asl-pack5-compare-summary strong {
    display: block;
    font-size: 1.45rem;
    color: #0f172a;
}

.asl-pack5-compare-summary strong.is-up { color: #166534; }
.asl-pack5-compare-summary strong.is-down { color: #991b1b; }
.asl-pack5-compare-summary small {
    display: block;
    margin-top: 8px;
    color: #64748b;
}

.asl-ai-export-box {
    width: 100%;
    min-height: 420px;
    padding: 18px;
    border-radius: 20px;
    border: 1px solid #cbd5e1;
    background: #0f172a;
    color: #e2e8f0;
    font-family: Consolas, "Courier New", monospace;
    font-size: .92rem;
    line-height: 1.9;
    direction: ltr;
    text-align: left;
    unicode-bidi: embed;
    resize: vertical;
}

.asl-ai-export-box.is-json {
    min-height: 520px;
}

@media (max-width: 980px) {
    .asl-pack-entry-card,
    .asl-pack5-intelligence-grid,
    .asl-pack5-compare-summary {
        grid-template-columns: 1fr;
    }

    .asl-pack-entry-actions {
        min-width: 0;
    }
}

/* Phase 41 — Navigation coherence, contrast polish & academy reference */
.asl-topbar-v14 {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    min-height: 72px;
    padding: 10px 22px;
}

.asl-enterprise-topbar .asl-brand {
    min-width: 240px;
    gap: 10px;
}

.asl-enterprise-topbar .asl-brand-mark {
    width: 48px;
    height: 48px;
    border-radius: 16px;
}

.asl-enterprise-topbar .asl-brand strong {
    font-size: 1rem;
}

.asl-enterprise-topbar .asl-brand small {
    font-size: .8rem;
    line-height: 1.45;
}

.asl-command-nav-v14 {
    flex-wrap: nowrap;
    justify-content: center;
    gap: 7px;
    min-width: 0;
}

.asl-command-nav-v14 a {
    min-height: 42px;
    padding: 8px 12px;
    border-radius: 15px;
    font-size: .9rem;
    white-space: nowrap;
    flex: 0 1 auto;
}

.asl-command-nav-v14 a span {
    line-height: 1.2;
}

.asl-command-nav-v14 a.is-current,
.asl-command-nav-v14 a.is-current:hover {
    background: linear-gradient(135deg, rgba(37, 99, 235, .92), rgba(124, 58, 237, .88));
    border-color: rgba(191, 219, 254, .48);
    box-shadow: 0 10px 30px rgba(37, 99, 235, .24), inset 0 1px 0 rgba(255,255,255,.12);
    color: #fff !important;
}

.asl-user-menu {
    flex-wrap: nowrap;
    justify-content: flex-end;
}

.asl-user-chip,
.asl-login-link,
.asl-user-menu button {
    min-height: 40px;
    padding: 8px 12px;
    white-space: nowrap;
}

.asl-product-sidebar {
    scroll-behavior: smooth;
}

.asl-product-nav-section a {
    position: relative;
    overflow: hidden;
    scroll-margin-top: 100px;
}

.asl-product-nav-section a.is-current,
.asl-product-nav-section a.is-current:hover {
    background: linear-gradient(135deg, rgba(59,130,246,.20), rgba(14,165,233,.12));
    border-color: rgba(147,197,253,.42);
    box-shadow: 0 12px 30px rgba(15,23,42,.18), inset 0 1px 0 rgba(255,255,255,.08);
}

.asl-product-nav-section a.is-current::after {
    content: "";
    position: absolute;
    inset: 5px;
    border-radius: 13px;
    border: 1px solid rgba(191, 219, 254, .28);
    pointer-events: none;
}

.asl-product-nav-section a.is-current strong,
.asl-product-nav-section a.is-current small {
    color: #f8fbff;
}

.asl-product-nav-section a.is-current b {
    background: linear-gradient(135deg, rgba(37,99,235,.36), rgba(124,58,237,.36));
    color: #dbeafe;
}

.asl-afta-status-card .asl-mini-metrics span {
    color: #334155 !important;
    background: rgba(255,255,255,.98);
}

.asl-afta-status-card .asl-mini-metrics b {
    color: #1d4ed8 !important;
}

.asl-pack-entry-card,
.asl-pack5-project-grid article,
.asl-pack5-stage-list article,
.asl-pack5-gap-list article,
.asl-pack5-breakdown article,
.asl-pack5-action-list article,
.asl-pack5-ai-list article,
.asl-pack5-intelligence-card,
.asl-reference-card,
.asl-academy-card,
.asl-card,
.asl-self-check-card,
.asl-cleanup-category-card,
.asl-cleanup-result-grid div,
.asl-protected-grid article,
.asl-afta-flow article,
.asl-afta-group-grid a,
.asl-afta-assessment-list a,
.asl-empty-state {
    color: #0f172a;
}

.asl-pack-entry-card p,
.asl-pack5-project-grid small,
.asl-pack5-stage-list small,
.asl-pack5-action-list p,
.asl-pack5-ai-list p,
.asl-pack5-intelligence-card p,
.asl-reference-card p,
.asl-academy-card p,
.asl-card p,
.asl-afta-flow p,
.asl-afta-group-grid small,
.asl-afta-assessment-list small,
.asl-empty-state {
    color: #475569;
}

.asl-pack-entry-card h2,
.asl-pack5-project-grid strong,
.asl-pack5-stage-list strong,
.asl-pack5-intelligence-card h2,
.asl-reference-card strong,
.asl-academy-card h3,
.asl-afta-flow h3,
.asl-afta-group-grid strong,
.asl-afta-assessment-list strong {
    color: #0f172a;
}

.asl-pack-entry-actions .asl-button,
.asl-actions-inline .asl-button {
    box-shadow: 0 10px 26px rgba(15,23,42,.05);
}

.asl-academy-reference-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.asl-reference-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    padding: 1.1rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,251,255,.96));
    box-shadow: var(--asl-shadow-soft);
}

.asl-reference-card > i {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(135deg, #dbeafe, #e0e7ff);
    color: #1d4ed8;
    font-size: 1.15rem;
}

.asl-reference-card strong {
    display: block;
    margin-bottom: .35rem;
}

.asl-reference-card p {
    margin: 0;
    line-height: 1.9;
}

.asl-reference-card footer {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: .15rem;
}

.asl-reference-card footer a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 .95rem;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 800;
    color: #1d4ed8;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
}

.asl-reference-card footer a:hover {
    background: #dbeafe;
}

.asl-practical-note-card {
    background: linear-gradient(135deg, #fff, #f8fbff);
    border-color: rgba(37,99,235,.12);
}

.asl-code-example-card {
    background: linear-gradient(135deg, #0f172a, #111827 58%, #102a43);
    border-color: rgba(96,165,250,.18);
}

.asl-code-example-card h2,
.asl-code-example-card .asl-kicker {
    color: #eff6ff !important;
}

.asl-code-block {
    direction: ltr;
    text-align: left;
    unicode-bidi: plaintext;
    overflow-x: auto;
    margin: .25rem 0 0;
    padding: 1rem 1.15rem;
    border-radius: 20px;
    background: rgba(2, 6, 23, .62);
    border: 1px solid rgba(148,163,184,.18);
    color: #e2e8f0;
    font-family: Consolas, "Courier New", monospace;
    font-size: .92rem;
    line-height: 1.85;
}

@media (max-width: 1500px) {
    .asl-topbar-v14 {
        grid-template-columns: minmax(220px, auto) minmax(0, 1fr) auto;
        gap: 10px;
    }

    .asl-command-nav-v14 a {
        padding: 8px 10px;
        font-size: .84rem;
    }

    .asl-command-nav-v14 a i {
        font-size: .88rem;
    }

    .asl-user-chip,
    .asl-login-link,
    .asl-user-menu button {
        padding: 8px 10px;
        font-size: .86rem;
    }
}

@media (max-width: 1240px) {
    .asl-topbar-v14 {
        grid-template-columns: 1fr;
    }

    .asl-command-nav-v14,
    .asl-user-menu {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

@media (max-width: 900px) {
    .asl-academy-reference-grid {
        grid-template-columns: 1fr;
    }
}

/* Phase 43 - Production Monitoring, Health & Operational Telemetry */
.asl-monitor-hero {
    border-color: rgba(14, 165, 233, .28);
}

.asl-monitor-status-card strong {
    color: #e0f2fe;
}

.asl-monitor-metric-grid article.is-pass,
.asl-monitor-target-card.is-pass {
    border-color: rgba(34, 197, 94, .28);
}

.asl-monitor-metric-grid article.is-warning,
.asl-monitor-target-card.is-manual {
    border-color: rgba(245, 158, 11, .32);
}

.asl-monitor-metric-grid article.is-fail,
.asl-monitor-target-card.is-fail {
    border-color: rgba(239, 68, 68, .32);
}

.asl-monitor-check-grid .asl-self-check-card p,
.asl-monitor-check-grid .asl-self-check-card small {
    line-height: 1.9;
}

.asl-monitor-grid-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    gap: 18px;
    align-items: start;
}

.asl-monitor-card {
    height: 100%;
}

.asl-monitor-list {
    display: grid;
    gap: 12px;
}

.asl-monitor-list article {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 14px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    background: #fff;
}

.asl-monitor-list article.is-danger {
    border-color: rgba(220, 38, 38, .26);
    background: #fff7f7;
}

.asl-monitor-list article.is-warning {
    border-color: rgba(217, 119, 6, .28);
    background: #fffbeb;
}

.asl-monitor-list article.is-info {
    border-color: rgba(37, 99, 235, .18);
    background: #eff6ff;
}

.asl-monitor-list article strong,
.asl-monitor-target-card strong {
    display: block;
    color: #0f172a;
    font-size: .98rem;
}

.asl-monitor-list article small,
.asl-monitor-target-card small {
    display: block;
    color: #64748b;
    margin-top: 5px;
    line-height: 1.8;
}

.asl-monitor-list article p {
    margin: 8px 0 0;
    color: #334155;
    line-height: 1.9;
}

.asl-monitor-list article > span {
    align-self: flex-start;
    padding: 5px 10px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #0f172a;
    white-space: nowrap;
    font-size: .78rem;
    font-weight: 800;
}

.asl-monitor-list.compact article {
    align-items: center;
}

.asl-monitor-target-form {
    display: grid;
    grid-template-columns: repeat(4, minmax(180px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.asl-monitor-target-form label {
    display: block;
    font-weight: 800;
    color: #334155;
    margin-bottom: 7px;
    font-size: .86rem;
}

.asl-monitor-target-form input {
    width: 100%;
    min-height: 44px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 14px;
    padding: 8px 12px;
    background: #fff;
    color: #0f172a;
    outline: none;
}

.asl-monitor-target-form input:focus {
    border-color: rgba(37, 99, 235, .42);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .08);
}

.asl-monitor-form-actions {
    display: flex;
    align-items: end;
}

.asl-monitor-target-list {
    display: grid;
    gap: 12px;
}

.asl-monitor-target-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 240px) auto;
    gap: 16px;
    align-items: center;
    padding: 16px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .05);
}

.asl-monitor-target-meta {
    display: grid;
    gap: 5px;
    justify-items: start;
}

.asl-monitor-target-meta span,
.asl-monitor-target-meta b {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    padding: 4px 10px;
    background: #f1f5f9;
    color: #0f172a;
    font-size: .78rem;
}

.asl-monitor-target-meta b {
    background: #e0f2fe;
    color: #075985;
}

.asl-monitor-check-table {
    overflow-x: auto;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    background: #fff;
}

.asl-monitor-check-table table {
    width: 100%;
    border-collapse: collapse;
    min-width: 900px;
}

.asl-monitor-check-table th,
.asl-monitor-check-table td {
    padding: 12px 14px;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    text-align: right;
    vertical-align: top;
    color: #334155;
    line-height: 1.8;
}

.asl-monitor-check-table th {
    background: #f8fafc;
    color: #0f172a;
    font-weight: 900;
    white-space: nowrap;
}

.asl-monitor-check-table tr:last-child td {
    border-bottom: 0;
}

@media (max-width: 1200px) {
    .asl-monitor-grid-layout,
    .asl-monitor-target-card {
        grid-template-columns: 1fr;
    }

    .asl-monitor-target-form {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }
}

@media (max-width: 720px) {
    .asl-monitor-target-form {
        grid-template-columns: 1fr;
    }

    .asl-monitor-list article {
        flex-direction: column;
    }
}

/* Phase 44 - Enterprise Registry, professional shell/menu/modal/table polish */
.asl-command-topbar {
    gap: 14px;
}

.asl-command-nav-compact {
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.asl-command-nav-compact > a,
.asl-command-nav-compact .asl-nav-menu-trigger {
    min-height: 42px;
    padding: 8px 12px;
    border-radius: 18px;
    font-size: .88rem;
    white-space: nowrap;
}

.asl-command-nav-compact > a span,
.asl-command-nav-compact .asl-nav-menu-trigger span {
    line-height: 1;
}

.asl-nav-menu {
    position: relative;
    display: inline-flex;
}

.asl-nav-menu-trigger {
    border: 1px solid rgba(148, 163, 184, .26);
    background: rgba(255,255,255,.07);
    color: #e5edf9;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-family: inherit;
    font-weight: 800;
}

.asl-nav-menu.is-current .asl-nav-menu-trigger,
.asl-nav-menu.is-open .asl-nav-menu-trigger {
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
    border-color: rgba(255,255,255,.22);
}

.asl-nav-menu-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 250px;
    display: none;
    z-index: 80;
    padding: 10px;
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 20px;
    background: rgba(15, 23, 42, .98);
    box-shadow: 0 28px 72px rgba(2, 6, 23, .36);
}

.asl-nav-menu.is-open .asl-nav-menu-panel {
    display: grid;
    gap: 6px;
}

.asl-nav-menu-panel a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 9px 10px;
    border-radius: 14px;
    color: #dbe7fb;
    text-decoration: none;
    font-weight: 800;
}

.asl-nav-menu-panel a:hover {
    background: rgba(255,255,255,.08);
    color: #fff;
}

.asl-hero-actions,
.asl-mini-toolbar,
.asl-row-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.asl-mini-toolbar span {
    color: #64748b;
    font-weight: 900;
}

.asl-alert {
    margin: 14px 0;
    padding: 14px 16px;
    border-radius: 18px;
    font-weight: 800;
    line-height: 1.9;
    transition: opacity .35s ease, transform .35s ease;
}

.asl-alert.is-fading {
    opacity: .45;
}

.asl-alert-info {
    border: 1px solid rgba(37, 99, 235, .18);
    background: #eff6ff;
    color: #1e3a8a;
}

.asl-alert-warning {
    border: 1px solid rgba(217, 119, 6, .24);
    background: #fffbeb;
    color: #92400e;
}

.asl-modal-open {
    overflow: hidden;
}

.asl-modal {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 2000;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.asl-modal.is-open {
    display: flex;
}

.asl-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, .62);
    backdrop-filter: blur(6px);
}

.asl-modal-dialog {
    position: relative;
    width: min(760px, 96vw);
    max-height: min(86vh, 860px);
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(148, 163, 184, .32);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 34px 110px rgba(2, 6, 23, .38);
    overflow: hidden;
}

.asl-modal-dialog.compact {
    width: min(560px, 96vw);
}

.asl-modal-dialog.wide {
    width: min(860px, 96vw);
}

.asl-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 20px;
    background: linear-gradient(135deg, #0f172a, #1e293b);
    color: #fff;
}

.asl-modal-header h3 {
    margin: 0;
    font-size: 1.02rem;
}

.asl-modal-header button {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 14px;
    background: rgba(255,255,255,.10);
    color: #fff;
    cursor: pointer;
}

.asl-modal-body {
    padding: 20px;
    overflow: auto;
}

.asl-modal-footer {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 8px;
}

.asl-form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.asl-form-grid.two-col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asl-form-grid .full {
    grid-column: 1 / -1;
}

.asl-form-grid label {
    display: block;
    margin-bottom: 7px;
    color: #334155;
    font-weight: 900;
    font-size: .86rem;
}

.asl-form-grid input,
.asl-form-grid select,
.asl-form-grid textarea {
    width: 100%;
    min-height: 44px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 14px;
    padding: 9px 12px;
    background: #fff;
    color: #0f172a;
    outline: none;
    font-family: inherit;
}

.asl-form-grid textarea {
    min-height: 92px;
    resize: vertical;
}

.asl-form-grid input:focus,
.asl-form-grid select:focus,
.asl-form-grid textarea:focus {
    border-color: rgba(37, 99, 235, .42);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .08);
}

.asl-checkline {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 16px;
    background: #f8fafc;
    color: #334155;
    font-weight: 800;
}

.asl-checkline input[type="checkbox"] {
    width: 18px;
    min-height: 18px;
}

.asl-table-card {
    overflow-x: auto;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 36px rgba(15, 23, 42, .05);
}

.asl-table-card table {
    width: 100%;
    border-collapse: collapse;
    min-width: 980px;
}

.asl-table-card.compact table,
.asl-registry-grid.compact table {
    min-width: 760px;
}

.asl-table-card th,
.asl-table-card td {
    padding: 14px 15px;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    text-align: right;
    vertical-align: top;
    color: #334155;
    line-height: 1.8;
}

.asl-table-card th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f8fafc;
    color: #0f172a;
    font-weight: 950;
    white-space: nowrap;
}

.asl-table-card tr:last-child td {
    border-bottom: 0;
}

.asl-table-card strong {
    display: block;
    color: #0f172a;
    font-weight: 950;
}

.asl-table-card small,
.asl-url-cell small {
    display: block;
    color: #64748b;
    line-height: 1.9;
    word-break: break-word;
}

.asl-status-pill {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    justify-content: center;
    margin-top: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    font-size: .76rem;
    font-weight: 950;
    white-space: nowrap;
}

.asl-status-pill.is-pass,
.asl-monitor-summary-grid article.is-pass .asl-status-pill {
    background: #dcfce7;
    color: #166534;
}

.asl-status-pill.is-warning {
    background: #fef3c7;
    color: #92400e;
}

.asl-status-pill.is-fail {
    background: #fee2e2;
    color: #991b1b;
}

.asl-status-pill.is-muted {
    background: #f1f5f9;
    color: #64748b;
}

.asl-icon-action {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(15,23,42,.10);
    border-radius: 14px;
    background: #fff;
    color: #1e293b;
    text-decoration: none;
    cursor: pointer;
}

.asl-icon-action:hover {
    border-color: rgba(37,99,235,.28);
    background: #eff6ff;
    color: #1d4ed8;
}

.asl-icon-action.is-primary {
    background: #2563eb;
    color: #fff;
    border-color: #2563eb;
}

.asl-icon-action.is-danger {
    color: #b91c1c;
}

.asl-icon-action.is-danger:hover {
    background: #fef2f2;
    border-color: rgba(220,38,38,.26);
}

.asl-row-actions form {
    display: inline-flex;
    margin: 0;
}

.asl-monitor-chart-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.asl-registry-hero,
.asl-monitor-hero,
.asl-portfolio-hero {
    align-items: flex-end;
}

.is-danger-text {
    color: #b91c1c !important;
    font-weight: 800;
}

@media (max-width: 1280px) {
    .asl-command-topbar {
        align-items: flex-start;
    }

    .asl-brand-command small,
    .asl-user-chip {
        display: none;
    }
}

@media (max-width: 900px) {
    .asl-form-grid.two-col,
    .asl-monitor-chart-row {
        grid-template-columns: 1fr;
    }

    .asl-modal {
        padding: 14px;
    }
}

/* Phase 44 - AFTA Registry selector */
.asl-registry-select-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: end;
    padding: 1rem;
    margin-bottom: 1rem;
    border: 1px solid rgba(59, 130, 246, .22);
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(59, 130, 246, .10), rgba(14, 165, 233, .06));
}
.asl-registry-select-panel small { color: #64748b; }
@media (max-width: 860px) {
    .asl-registry-select-panel { grid-template-columns: 1fr; }
}

/* Phase 44 UX Polish Hotfix - professional single-line command header and dense registry workspace */
.asl-enterprise-topbar.asl-command-topbar {
    min-height: 72px;
    padding: 10px 22px;
    gap: 16px;
    align-items: center;
    overflow: visible;
}

.asl-enterprise-topbar .asl-brand-command {
    min-width: 280px;
    gap: 12px;
}

.asl-enterprise-topbar .asl-brand-command .asl-brand-mark {
    width: 44px;
    height: 44px;
    border-radius: 15px;
    font-size: 1rem;
}

.asl-command-nav-compact,
.asl-command-nav.asl-command-nav-compact,
.asl-command-nav-v14.asl-command-nav-compact {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-wrap: nowrap !important;
    justify-content: center;
    align-items: center;
    gap: 4px;
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: none;
}

.asl-command-nav-compact::-webkit-scrollbar { display: none; }

.asl-command-nav-compact > a,
.asl-command-nav-compact .asl-nav-menu-trigger,
.asl-command-nav-v14.asl-command-nav-compact > a {
    min-height: 36px;
    flex: 0 0 auto;
    padding: 6px 8px;
    border: 0 !important;
    border-radius: 10px;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(226, 232, 240, .88);
    font-size: .82rem;
    font-weight: 850;
    line-height: 1;
    transform: none !important;
    white-space: nowrap;
}

.asl-command-nav-compact > a i,
.asl-command-nav-compact .asl-nav-menu-trigger > i:first-child {
    width: 25px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(148, 163, 184, .16);
    color: #bfdbfe;
    font-size: .78rem;
}

.asl-command-nav-compact > a:hover,
.asl-command-nav-compact .asl-nav-menu-trigger:hover {
    color: #fff;
    background: rgba(255,255,255,.055) !important;
}

.asl-command-nav-compact > a:hover i,
.asl-command-nav-compact .asl-nav-menu-trigger:hover > i:first-child {
    background: rgba(59, 130, 246, .22);
    color: #fff;
}

.asl-command-nav-compact > a.is-current,
.asl-command-nav-v14.asl-command-nav-compact > a.is-current,
.asl-nav-menu.is-current .asl-nav-menu-trigger,
.asl-nav-menu.is-open .asl-nav-menu-trigger {
    color: #fff;
    background: rgba(59, 130, 246, .13) !important;
}

.asl-command-nav-compact > a.is-current i,
.asl-nav-menu.is-current .asl-nav-menu-trigger > i:first-child,
.asl-nav-menu.is-open .asl-nav-menu-trigger > i:first-child {
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
    box-shadow: 0 10px 24px rgba(37, 99, 235, .22);
}

.asl-nav-menu-trigger {
    font-family: inherit;
}

.asl-nav-menu-panel {
    top: calc(100% + 12px);
    border-radius: 18px;
}

.asl-user-menu {
    flex: 0 0 auto;
    gap: 8px;
}

.asl-user-menu button,
.asl-user-menu .asl-login-link,
.asl-user-chip {
    min-height: 36px;
    padding: 7px 10px;
    border-radius: 12px;
    font-size: .82rem;
}

.asl-content-shell-v14 .asl-command-container {
    padding-top: 16px !important;
}

.asl-registry-commandbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 14px;
    padding: 14px 18px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 24px;
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 12px 32px rgba(15, 23, 42, .045);
    backdrop-filter: blur(16px);
}

.asl-commandbar-title {
    min-width: 0;
}

.asl-commandbar-title h1 {
    margin: 3px 0 4px;
    color: #0f172a;
    font-size: clamp(1.34rem, 1.55vw, 1.9rem);
    font-weight: 950;
    letter-spacing: -.02em;
}

.asl-commandbar-title p:last-child {
    max-width: 900px;
    margin: 0;
    color: #64748b;
    font-weight: 700;
    line-height: 1.9;
}

.asl-commandbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.asl-registry-panel {
    margin: 0 0 16px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 24px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .045);
    overflow: hidden;
}

.asl-registry-panel.is-secondary {
    margin-top: 14px;
}

.asl-registry-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px 12px;
    border-bottom: 1px solid rgba(15, 23, 42, .07);
    background: linear-gradient(135deg, rgba(248, 250, 252, .96), rgba(239, 246, 255, .68));
}

.asl-registry-panel-header h2 {
    margin: 2px 0 2px;
    color: #0f172a;
    font-size: 1.22rem;
    font-weight: 950;
}

.asl-registry-panel-header small {
    display: block;
    color: #64748b;
    font-weight: 750;
    line-height: 1.8;
}

.asl-registry-panel .asl-table-card {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}

.asl-registry-panel .asl-table-card table {
    min-width: 960px;
}

.asl-registry-panel .asl-table-card.compact table,
.asl-registry-panel .asl-registry-grid.compact table {
    min-width: 760px;
}

.asl-registry-panel .asl-table-card th,
.asl-registry-panel .asl-table-card td {
    padding: 11px 14px;
}

.asl-registry-panel .asl-table-card th {
    background: #fff;
    border-bottom: 1px solid rgba(15, 23, 42, .09);
}

.asl-registry-panel .asl-table-card tbody tr:hover td {
    background: rgba(59, 130, 246, .035);
}

.asl-empty-state.compact,
.asl-registry-panel .asl-empty-state {
    margin: 0;
    padding: 18px 20px;
    min-height: unset;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #475569;
    font-weight: 850;
}

.asl-registry-panel .asl-mini-toolbar {
    justify-content: flex-end;
    flex-wrap: nowrap;
}

.asl-registry-panel .asl-mini-toolbar span {
    padding: 7px 10px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    white-space: nowrap;
}

.asl-registry-panel .asl-button,
.asl-commandbar-actions .asl-button {
    min-height: 38px;
    padding: 8px 13px;
    border-radius: 13px;
    font-size: .88rem;
}

.asl-icon-action {
    width: 34px;
    height: 34px;
    border-radius: 12px;
}

.asl-alert {
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .05);
}

.asl-confirm-layer {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(15, 23, 42, .46);
    backdrop-filter: blur(8px);
}

.asl-confirm-card {
    width: min(460px, 100%);
    border: 1px solid rgba(148, 163, 184, .20);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 34px 100px rgba(2, 6, 23, .34);
    overflow: hidden;
    direction: rtl;
}

.asl-confirm-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 20px 10px;
}

.asl-confirm-head b {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
}

.asl-confirm-head strong {
    color: #0f172a;
    font-size: 1.05rem;
    font-weight: 950;
}

.asl-confirm-message {
    padding: 0 20px 18px;
    color: #475569;
    font-weight: 750;
    line-height: 1.9;
}

.asl-confirm-actions {
    display: flex;
    justify-content: flex-start;
    gap: 8px;
    padding: 14px 20px 18px;
    background: #f8fafc;
    border-top: 1px solid rgba(15, 23, 42, .07);
}

@media (max-width: 1280px) {
    .asl-enterprise-topbar.asl-command-topbar {
        align-items: center !important;
    }

    .asl-enterprise-topbar .asl-brand-command {
        min-width: 220px;
    }

    .asl-enterprise-topbar .asl-brand-command small,
    .asl-user-chip {
        display: none;
    }

    .asl-command-nav-compact,
    .asl-command-nav.asl-command-nav-compact,
    .asl-command-nav-v14.asl-command-nav-compact {
        flex-wrap: nowrap !important;
    }
}

@media (max-width: 980px) {
    .asl-registry-commandbar,
    .asl-registry-panel-header {
        align-items: stretch;
        flex-direction: column;
    }

    .asl-commandbar-actions,
    .asl-registry-panel .asl-mini-toolbar {
        justify-content: flex-start;
    }
}

/* Phase 44.2 - form guidance, required fields, menu reliability */
.asl-required-label::after {
    content: " *";
    color: #ef4444;
    font-weight: 950;
}

.asl-form-guidance-hero p span[dir="ltr"] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    background: rgba(15, 23, 42, .07);
    border: 1px solid rgba(148, 163, 184, .24);
    border-radius: 8px;
    padding: 1px 6px;
}

.asl-form-hint {
    display: block;
    margin-top: 6px;
    color: #64748b;
    font-size: .78rem;
    line-height: 1.8;
}

.asl-field-validation,
.field-validation-error,
.text-danger {
    display: block;
    margin-top: 6px;
    color: #b91c1c;
    font-size: .8rem;
    font-weight: 800;
}

.asl-validation-summary:empty,
.asl-validation-summary.validation-summary-valid,
.asl-validation-summary.validation-summary-valid ul,
.asl-validation-summary ul:empty {
    display: none;
}

.asl-validation-summary ul {
    margin: 0;
    padding: 0 18px 0 0;
}

.asl-validation-summary li {
    margin: 4px 0;
}

.asl-field-error input,
.asl-field-error select,
.asl-field-error textarea,
.asl-field-error .asl-input {
    border-color: rgba(239, 68, 68, .78) !important;
    box-shadow: 0 0 0 4px rgba(239, 68, 68, .09) !important;
    background: #fffafa !important;
}

.asl-check-row.asl-field-error {
    border-color: rgba(239, 68, 68, .38) !important;
    background: linear-gradient(135deg, rgba(254, 242, 242, .95), rgba(255, 251, 235, .92)) !important;
}

.asl-inline-field-error {
    display: block;
    margin-top: 7px;
    color: #b91c1c;
    font-weight: 900;
    font-size: .78rem;
    line-height: 1.8;
}

.asl-runtime-alert {
    position: sticky;
    top: 92px;
    z-index: 130;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .14);
}

.asl-alert.is-success {
    border-color: rgba(34, 197, 94, .34);
    background: linear-gradient(135deg, rgba(236, 253, 245, .97), rgba(240, 253, 244, .92));
    color: #14532d;
}

.asl-alert.is-warning {
    border-color: rgba(245, 158, 11, .36);
    background: linear-gradient(135deg, rgba(255, 251, 235, .97), rgba(254, 243, 199, .82));
    color: #78350f;
}

.asl-alert i {
    margin-inline-end: 8px;
}

.asl-nav-menu-panel {
    position: fixed !important;
    top: 76px;
    right: 24px;
    z-index: 10050 !important;
    max-width: min(280px, calc(100vw - 24px));
}

.asl-nav-menu-panel a i {
    width: 22px;
    text-align: center;
    color: #bfdbfe;
}

.asl-nav-menu.is-open .asl-nav-menu-panel {
    animation: aslMenuDrop .14s ease-out;
}

@keyframes aslMenuDrop {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.asl-command-nav-compact,
.asl-command-nav.asl-command-nav-compact,
.asl-command-nav-v14.asl-command-nav-compact {
    overflow: visible !important;
}

.asl-command-nav-compact > a,
.asl-command-nav-compact .asl-nav-menu-trigger,
.asl-command-nav-v14.asl-command-nav-compact > a {
    position: relative;
}

.asl-command-nav-compact > a.is-current::after,
.asl-command-nav-v14.asl-command-nav-compact > a.is-current::after,
.asl-nav-menu.is-current .asl-nav-menu-trigger::after,
.asl-nav-menu.is-open .asl-nav-menu-trigger::after {
    content: "";
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: -5px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #38bdf8, #8b5cf6);
}

.asl-afta-scope-form .asl-scope-summary {
    margin-bottom: 18px;
}

.asl-afta-scope-form .asl-form-section {
    scroll-margin-top: 110px;
}

/* Phase 45 - Finding Lifecycle, Remediation Workflow and stronger form guidance */
.asl-finding-commandbar {
    margin-bottom: 14px;
}

.asl-finding-metrics {
    margin-bottom: 16px;
}

.asl-finding-panel {
    margin-top: 14px;
}

.asl-finding-filter-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    max-width: 100%;
}

.asl-finding-filter-form select,
.asl-finding-filter-form input {
    min-height: 42px;
    border: 1px solid rgba(148, 163, 184, .35);
    border-radius: 14px;
    background: rgba(255, 255, 255, .96);
    padding: 0 12px;
    color: #0f172a;
    font-weight: 750;
}

.asl-finding-filter-form input {
    min-width: 240px;
}

.asl-finding-table td:first-child {
    min-width: 260px;
}

.asl-finding-table td small {
    max-width: 420px;
}

.asl-finding-table tr.is-overdue-row td {
    background: linear-gradient(135deg, rgba(254, 242, 242, .9), rgba(255, 255, 255, .92));
}

.is-danger-text {
    color: #b91c1c !important;
    font-weight: 950 !important;
}

.asl-status-pill.is-info {
    border-color: rgba(59, 130, 246, .22);
    background: rgba(219, 234, 254, .82);
    color: #1e40af;
}

.asl-finding-details-layout {
    display: grid;
    grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.asl-finding-summary-card {
    position: sticky;
    top: 112px;
}

.asl-finding-summary-card h2 {
    margin: 4px 0 12px;
    color: #0f172a;
    font-size: 1.18rem;
    line-height: 1.8;
}

.asl-finding-summary-card p {
    color: #475569;
    line-height: 2;
    font-weight: 700;
}

.asl-finding-badge-row {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 10px;
}

.asl-definition-list.compact {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 10px 12px;
    margin: 16px 0 0;
}

.asl-definition-list.compact dt {
    color: #64748b;
    font-weight: 900;
}

.asl-definition-list.compact dd {
    margin: 0;
    color: #0f172a;
    font-weight: 800;
    line-height: 1.8;
}

.asl-finding-edit-card .asl-form-footer {
    display: flex;
    justify-content: flex-start;
    padding-top: 6px;
}

.asl-finding-history-panel {
    margin-top: 16px;
}

.asl-finding-timeline {
    display: grid;
    gap: 10px;
}

.asl-finding-timeline article {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    border: 1px solid rgba(148, 163, 184, .2);
    border-radius: 18px;
    background: rgba(255, 255, 255, .84);
    padding: 12px;
}

.asl-finding-timeline article > b {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(37, 99, 235, .96), rgba(124, 58, 237, .96));
    color: #fff;
}

.asl-finding-timeline strong {
    display: block;
    color: #0f172a;
    font-weight: 950;
}

.asl-finding-timeline p,
.asl-finding-timeline small {
    display: block;
    margin: 4px 0 0;
    color: #64748b;
    line-height: 1.8;
    font-weight: 800;
}

.asl-modal-dialog .asl-form-grid textarea {
    resize: vertical;
}

@media (max-width: 1180px) {
    .asl-finding-details-layout {
        grid-template-columns: 1fr;
    }

    .asl-finding-summary-card {
        position: static;
    }

    .asl-finding-filter-form {
        width: 100%;
    }

    .asl-finding-filter-form select,
    .asl-finding-filter-form input,
    .asl-finding-filter-form .asl-button {
        flex: 1 1 180px;
    }
}

/* Phase 46 — Internal AI Remediation Assistant */
.asl-ai-commandbar {
    border: 1px solid rgba(84, 134, 255, .22);
    background: linear-gradient(135deg, rgba(248, 251, 255, .96), rgba(234, 244, 255, .82));
}

.asl-ai-commandbar h1 {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.asl-ai-commandbar h1::before {
    content: "\f0d0";
    font-family: "Font Awesome 7 Free", "Font Awesome 6 Free";
    font-weight: 900;
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    box-shadow: 0 14px 32px rgba(37, 99, 235, .22);
}

.asl-ai-metrics {
    margin-top: .9rem;
}

.asl-ai-safety-strip {
    margin: .9rem 0 1rem;
    border-color: rgba(37, 99, 235, .18);
    background: rgba(239, 246, 255, .86);
}

.asl-ai-panel {
    margin-top: 1rem;
}

.asl-ai-candidate-table td:first-child,
.asl-ai-pack-table td:first-child {
    min-width: 280px;
}

.asl-ai-candidate-table small,
.asl-ai-pack-table small {
    display: block;
    margin-top: .32rem;
    color: var(--asl-muted, #64748b);
    line-height: 1.8;
}

.asl-text-warning {
    color: #b45309 !important;
}

.asl-ai-details-layout {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.asl-ai-summary-card {
    position: sticky;
    top: 96px;
}

.asl-ai-summary-card form {
    margin-top: 1rem;
}

.asl-ai-export-card {
    min-width: 0;
}

.asl-ai-remediation-box {
    min-height: 540px;
    direction: ltr;
    text-align: left;
    font-family: Consolas, "Cascadia Mono", "Courier New", monospace;
    font-size: .9rem;
    line-height: 1.75;
    white-space: pre;
    resize: vertical;
}

.asl-ai-remediation-box.is-json {
    min-height: 420px;
}

.asl-ai-two-column {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.asl-ai-note-card pre {
    margin: 0;
    white-space: pre-wrap;
    font-family: inherit;
    line-height: 2;
    color: #334155;
}

.asl-ai-note-card.is-warning {
    border-color: rgba(245, 158, 11, .28);
    background: linear-gradient(135deg, rgba(255, 251, 235, .96), rgba(255, 247, 237, .7));
}

.asl-ai-history-panel {
    margin-top: 1rem;
}

.asl-row-actions form {
    display: inline-flex;
    margin: 0;
}

@media (max-width: 1180px) {
    .asl-ai-details-layout,
    .asl-ai-two-column {
        grid-template-columns: 1fr;
    }

    .asl-ai-summary-card {
        position: static;
    }
}

/* Phase 47 — Secure Source Review Workspace */
.asl-source-commandbar {
    border-color: rgba(14, 165, 233, .18);
    background: linear-gradient(135deg, rgba(248, 252, 255, .98), rgba(236, 253, 245, .72));
}

.asl-source-commandbar h1 {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.asl-source-commandbar h1::before {
    content: "\f121";
    font-family: "Font Awesome 7 Free", "Font Awesome 6 Free";
    font-weight: 900;
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, #0ea5e9, #7c3aed);
    box-shadow: 0 14px 32px rgba(14, 165, 233, .20);
}

.asl-source-metrics {
    margin: .9rem 0 1rem;
}

.asl-source-safety-strip {
    margin-bottom: 1rem;
    border-color: rgba(14, 165, 233, .20);
    background: rgba(240, 249, 255, .88);
}

.asl-source-workspace {
    display: grid;
    grid-template-columns: minmax(360px, 500px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.asl-source-review-form {
    position: sticky;
    top: 96px;
}

.asl-source-form-body {
    padding: 1rem;
}

.asl-source-code-input {
    min-height: 280px;
    direction: ltr;
    text-align: left;
    font-family: Consolas, "Cascadia Mono", "Courier New", monospace;
    font-size: .9rem;
    line-height: 1.75;
    resize: vertical;
}

.asl-source-form-actions {
    display: flex;
    justify-content: flex-start;
    gap: .55rem;
    margin-top: 1rem;
}

.asl-source-recent-panel {
    min-width: 0;
}

.asl-source-review-table td:first-child {
    min-width: 310px;
}

.asl-source-review-table small {
    display: block;
    margin-top: .3rem;
    color: #64748b;
    line-height: 1.8;
}

.asl-source-details-layout {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.asl-source-summary-card {
    position: sticky;
    top: 96px;
}

.asl-source-summary-card h2 {
    margin: .3rem 0 .8rem;
    color: #0f172a;
    font-size: 1.18rem;
    line-height: 1.8;
    font-weight: 950;
}

.asl-source-summary-card p {
    color: #475569;
    line-height: 2;
    font-weight: 750;
}

.asl-source-findings-column {
    min-width: 0;
}

.asl-source-finding-list {
    display: grid;
    gap: .9rem;
    padding: 1rem;
}

.asl-source-finding-card {
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 22px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 14px 32px rgba(15, 23, 42, .045);
    overflow: hidden;
}

.asl-source-finding-card header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1rem .8rem;
    border-bottom: 1px solid rgba(15, 23, 42, .07);
    background: linear-gradient(135deg, rgba(248, 250, 252, .96), rgba(239, 246, 255, .72));
}

.asl-source-finding-card h3 {
    margin: .18rem 0 .55rem;
    color: #0f172a;
    font-size: 1.08rem;
    line-height: 1.8;
    font-weight: 950;
}

.asl-source-finding-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
    padding: 1rem;
}

.asl-source-finding-body h4 {
    margin: 0 0 .55rem;
    color: #0f172a;
    font-size: .96rem;
    font-weight: 950;
}

.asl-source-finding-body p {
    margin: 0 0 .7rem;
    color: #475569;
    line-height: 2;
    font-weight: 750;
}

.asl-source-snippet {
    max-height: 280px;
    overflow: auto;
    margin: .65rem 0 0;
    padding: .85rem;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 16px;
    direction: ltr;
    text-align: left;
    background: #0f172a;
    color: #e2e8f0;
    font-family: Consolas, "Cascadia Mono", "Courier New", monospace;
    font-size: .82rem;
    line-height: 1.7;
    white-space: pre-wrap;
}

.asl-source-snippet.is-secure {
    background: #052e1a;
    color: #dcfce7;
}

.asl-inline-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: #2563eb;
    font-weight: 900;
    text-decoration: none;
}

.asl-inline-link:hover {
    text-decoration: underline;
}

@media (max-width: 1180px) {
    .asl-source-workspace,
    .asl-source-details-layout,
    .asl-source-finding-body {
        grid-template-columns: 1fr;
    }

    .asl-source-review-form,
    .asl-source-summary-card {
        position: static;
    }

    .asl-source-finding-card header,
    .asl-source-form-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Phase 48 - Release Security Gate */
.asl-release-commandbar {
    align-items: center;
}

.asl-release-metrics article i {
    opacity: .92;
}

.asl-release-table td small,
.asl-release-info-list span {
    display: block;
    color: var(--asl-muted, #6b7280);
    line-height: 1.9;
}

.asl-release-risk-line {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .28rem .55rem;
    margin: .12rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, .05);
    color: #334155;
    font-size: .78rem;
}

.asl-release-risk-line b {
    color: #0f172a;
}

.asl-release-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(320px, .7fr);
    gap: 1rem;
    margin: 1rem 0;
}

.asl-release-identity-card h2,
.asl-release-decision-card h2 {
    margin: .25rem 0 .75rem;
}

.asl-release-decision-card {
    position: relative;
    overflow: hidden;
}

.asl-release-decision-card:before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: #94a3b8;
}

.asl-release-decision-card.is-pass:before { background: #16a34a; }
.asl-release-decision-card.is-warning:before { background: #f59e0b; }
.asl-release-decision-card.is-fail:before { background: #dc2626; }

.asl-release-score-line {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 0;
    border-top: 1px solid rgba(148, 163, 184, .22);
}

.asl-release-score-line span {
    color: var(--asl-muted, #64748b);
}

.asl-release-score-line strong {
    color: #0f172a;
}

.asl-release-check-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.asl-release-check-card {
    border: 1px solid rgba(148, 163, 184, .28);
    border-radius: 18px;
    padding: 1rem;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .05);
}

.asl-release-check-card > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
}

.asl-release-check-card h3 {
    margin: 0 0 .45rem;
    font-size: .98rem;
}

.asl-release-check-card p {
    margin: 0;
    color: var(--asl-muted, #64748b);
    line-height: 1.85;
}

.asl-release-check-card.is-pass { border-color: rgba(22, 163, 74, .28); }
.asl-release-check-card.is-warning { border-color: rgba(245, 158, 11, .36); }
.asl-release-check-card.is-fail { border-color: rgba(220, 38, 38, .34); }

.asl-release-decision-form {
    margin-top: .5rem;
}

@media (max-width: 1180px) {
    .asl-release-check-grid,
    .asl-release-detail-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 760px) {
    .asl-release-check-grid,
    .asl-release-detail-grid {
        grid-template-columns: 1fr;
    }
}

/* Phase 49 — Evidence Vault */
.asl-evidence-commandbar {
    margin-bottom: 14px;
}

.asl-evidence-panel .asl-registry-panel-header {
    align-items: flex-start;
}

.asl-evidence-filter-form {
    grid-template-columns: repeat(3, minmax(160px, 1fr)) minmax(130px, auto) minmax(260px, 1.3fr) auto;
}

.asl-evidence-filter-form .asl-inline-check {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(148, 163, 184, .24);
    border-radius: 14px;
    padding: 0 12px;
    background: rgba(255, 255, 255, .78);
    font-weight: 850;
    color: #334155;
    white-space: nowrap;
}

.asl-evidence-table td:first-child {
    min-width: 260px;
}

.asl-evidence-table td:nth-child(3) {
    min-width: 280px;
}

.asl-evidence-table td small {
    max-width: 460px;
}

.asl-muted-text {
    color: #94a3b8;
    font-weight: 850;
}

.asl-modal-dialog-wide {
    width: min(920px, calc(100vw - 32px));
}

.asl-check-list.slim {
    display: grid;
    gap: 9px;
    align-self: end;
    padding: 10px 12px;
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 18px;
    background: rgba(248, 250, 252, .86);
}

.asl-check-list.slim label {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    color: #334155;
    font-weight: 850;
}

.asl-evidence-details-layout {
    display: grid;
    grid-template-columns: minmax(290px, 390px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.asl-evidence-summary-card {
    position: sticky;
    top: 112px;
}

.asl-evidence-summary-card h2 {
    margin: 4px 0 12px;
    color: #0f172a;
    line-height: 1.8;
    font-size: 1.16rem;
}

.asl-evidence-attachment-box {
    margin-top: 14px;
    padding: 12px;
    display: flex;
    gap: 10px;
    align-items: center;
    border: 1px solid rgba(37, 99, 235, .18);
    border-radius: 18px;
    background: rgba(239, 246, 255, .82);
}

.asl-evidence-attachment-box i {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(37, 99, 235, .12);
    color: #1d4ed8;
}

.asl-evidence-attachment-box strong,
.asl-evidence-attachment-box small {
    display: block;
}

.asl-evidence-attachment-box small {
    color: #64748b;
    font-weight: 800;
    margin-top: 3px;
}

.asl-evidence-observation {
    min-height: 260px;
    max-height: 520px;
    overflow: auto;
    direction: ltr;
    text-align: left;
    white-space: pre-wrap;
}

.asl-evidence-export-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
    gap: 16px;
    margin-top: 16px;
}

.asl-timeline.compact {
    display: grid;
    gap: 9px;
}

.asl-timeline.compact > div,
.asl-timeline > div {
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 16px;
    background: rgba(255, 255, 255, .82);
    padding: 10px 12px;
}

.asl-timeline.compact strong,
.asl-timeline > div strong,
.asl-timeline.compact span,
.asl-timeline > div span,
.asl-timeline.compact small,
.asl-timeline > div small {
    display: block;
}

.asl-timeline.compact strong,
.asl-timeline > div strong {
    color: #0f172a;
    font-weight: 950;
}

.asl-timeline.compact span,
.asl-timeline > div span,
.asl-timeline.compact small,
.asl-timeline > div small {
    color: #64748b;
    line-height: 1.8;
    font-weight: 800;
}

@media (max-width: 1260px) {
    .asl-evidence-filter-form {
        grid-template-columns: repeat(2, minmax(160px, 1fr));
    }
}

@media (max-width: 1100px) {
    .asl-evidence-details-layout,
    .asl-evidence-export-grid {
        grid-template-columns: 1fr;
    }

    .asl-evidence-summary-card {
        position: static;
    }
}

/* Phase 50 - AFTA Traceability Matrix */
.asl-trace-commandbar { align-items: flex-start; }
.asl-trace-metrics article { min-height: 128px; }
.asl-trace-table table,
.asl-trace-matrix-table table { min-width: 1120px; }
.asl-trace-matrix-table { overflow-x: auto; }
.asl-trace-matrix-table tr.has-gap td { background: rgba(245, 158, 11, .055); }
.asl-trace-gap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; padding: 18px; }
.asl-trace-gap-card { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border: 1px solid rgba(245, 158, 11, .24); border-radius: 18px; background: linear-gradient(135deg, rgba(245, 158, 11, .09), rgba(255,255,255,.88)); }
.asl-trace-gap-card > i { color: #b45309; margin-top: 4px; }
.asl-trace-gap-card strong { display: block; color: #78350f; margin-bottom: 4px; }
.asl-trace-gap-card span,
.asl-trace-gap-card small { display: block; color: #64748b; line-height: 1.8; }
.asl-trace-panel + .asl-trace-panel,
.asl-trace-panel + .asl-trace-snapshot-panel,
.asl-trace-snapshot-panel { margin-top: 18px; }
.asl-trace-table td small,
.asl-trace-matrix-table td small { display: block; line-height: 1.8; color: #64748b; }
.asl-trace-table td strong,
.asl-trace-matrix-table td strong { display: block; color: #0f172a; }
@media (max-width: 1180px) { .asl-trace-commandbar .asl-commandbar-actions { width: 100%; justify-content: flex-start; } }

/* Phase 51 — Productization, guided UX, polished shell */
.asl-shell-v15 {
    background: radial-gradient(circle at 18% 0%, rgba(37, 99, 235, 0.10), transparent 30%), linear-gradient(180deg, #f7fbff 0%, #eef6ff 100%);
}

.asl-topbar-v15 {
    min-height: 70px;
    padding: 10px 22px;
    display: grid;
    grid-template-columns: minmax(260px, auto) minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    background: rgba(15, 23, 42, 0.96);
    color: #e5eefb;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
    box-shadow: 0 12px 30px rgba(2, 6, 23, 0.16);
}

.asl-topbar-v15 .asl-brand,
.asl-topbar-v15 .asl-brand:hover {
    color: #ffffff;
}

.asl-topbar-v15 .asl-brand small {
    color: #aebbd1;
}

.asl-command-nav-v15 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
    white-space: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    padding: 2px 4px;
}

.asl-command-nav-v15 a,
.asl-command-nav-v15 .asl-nav-menu-trigger {
    border: 0;
    background: transparent;
    color: #cbd5e1;
    min-height: 42px;
    padding: 8px 10px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    font-family: inherit;
    cursor: pointer;
    box-shadow: none;
}

.asl-command-nav-v15 a i,
.asl-command-nav-v15 .asl-nav-menu-trigger i:first-child {
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border-radius: 12px;
    background: rgba(148, 163, 184, 0.14);
    color: #dbeafe;
}

.asl-command-nav-v15 a:hover,
.asl-command-nav-v15 .asl-nav-menu-trigger:hover,
.asl-command-nav-v15 .is-current > .asl-nav-menu-trigger,
.asl-command-nav-v15 a.is-current {
    background: rgba(37, 99, 235, 0.18);
    color: #ffffff;
}

.asl-command-nav-v15 a.is-current,
.asl-command-nav-v15 .is-current > .asl-nav-menu-trigger {
    box-shadow: inset 0 -2px 0 #60a5fa;
}

.asl-topbar-v15 .asl-user-menu {
    justify-content: flex-end;
    min-width: 0;
}

.asl-topbar-v15 .asl-user-chip,
.asl-topbar-v15 .asl-user-menu button,
.asl-topbar-v15 .asl-login-link {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(226, 232, 240, 0.12);
    color: #eef2ff;
    box-shadow: none;
}

.asl-lab-shell-v15 {
    display: grid;
    grid-template-columns: minmax(270px, 320px) minmax(0, 1fr);
    align-items: start;
    min-height: calc(100vh - 70px);
}

.asl-content-shell-v15 {
    min-width: 0;
}

.asl-context-sidebar {
    position: sticky;
    top: 70px;
    max-height: calc(100vh - 70px);
    overflow-y: auto;
    padding: 18px 16px;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.98), rgba(17, 24, 39, 0.96));
    border-left: 1px solid rgba(148, 163, 184, 0.18);
}

.asl-product-nav-slim .asl-product-nav-section {
    margin-bottom: 16px;
}

.asl-product-nav-slim h3 {
    margin: 6px 4px 10px;
    color: #93c5fd;
    font-size: 13px;
}

.asl-product-nav-slim a {
    min-height: auto;
    padding: 10px 12px;
    margin-bottom: 8px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(148, 163, 184, 0.10);
}

.asl-product-nav-slim a strong {
    font-size: 14px;
}

.asl-product-nav-slim a small {
    font-size: 11px;
    line-height: 1.6;
}

.asl-product-nav-slim a.is-current,
.asl-product-nav-slim a:hover {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.30), rgba(124, 58, 237, 0.20));
    border-color: rgba(96, 165, 250, 0.45);
}

.asl-container-pro.asl-command-container {
    max-width: 100%;
    padding: 22px 22px 36px;
}

.asl-command-home-hero,
.asl-product-panel,
.asl-guided-workflow-panel,
.asl-table-card {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(203, 213, 225, 0.82);
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.07);
}

.asl-command-home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 22px;
    align-items: stretch;
    border-radius: 28px;
    padding: 26px;
    margin-bottom: 18px;
    background: linear-gradient(135deg, #ffffff 0%, #eff6ff 56%, #eef2ff 100%);
}

.asl-command-home-copy h1 {
    margin: 4px 0 12px;
    font-size: 34px;
    letter-spacing: -0.3px;
}

.asl-command-home-copy p {
    max-width: 860px;
    color: #475569;
    margin: 0;
}

.asl-command-home-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 22px;
}

.asl-product-score-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 22px;
    border-radius: 24px;
    background: linear-gradient(135deg, #0f172a, #1e3a8a 55%, #6d28d9);
    color: #fff;
    box-shadow: 0 18px 35px rgba(37, 99, 235, 0.20);
}

.asl-product-score-card span,
.asl-product-score-card p {
    color: #dbeafe;
    margin: 0;
}

.asl-product-score-card strong {
    font-size: 52px;
    line-height: 1;
}

.asl-score-track {
    height: 10px;
    border-radius: 999px;
    background: rgba(255,255,255,0.20);
    overflow: hidden;
    margin-top: 6px;
}

.asl-score-track i {
    display: block;
    height: 100%;
    width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #22c55e, #a7f3d0);
}

.asl-command-kpi-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(130px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.asl-command-kpi-grid article {
    padding: 16px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid rgba(203, 213, 225, 0.86);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.045);
    border-right: 4px solid #3b82f6;
}

.asl-command-kpi-grid article.is-danger {
    border-right-color: #ef4444;
    background: #fff7f7;
}

.asl-command-kpi-grid span,
.asl-command-kpi-grid small {
    display: block;
    color: #64748b;
}

.asl-command-kpi-grid strong {
    display: block;
    font-size: 26px;
    margin: 2px 0;
}

.asl-guided-workflow-panel {
    border-radius: 24px;
    padding: 22px;
    margin-bottom: 18px;
}

.asl-section-title-row p,
.asl-section-title-row h2 {
    margin-top: 0;
}

.asl-guided-steps {
    display: grid;
    grid-template-columns: repeat(6, minmax(150px, 1fr));
    gap: 12px;
}

.asl-guided-step {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 230px;
    padding: 18px;
    border-radius: 22px;
    color: #0f172a;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    border: 1px solid #dbe5f2;
    overflow: hidden;
}

.asl-guided-step::before {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: 5px;
    background: #60a5fa;
}

.asl-guided-step.is-done::before,
.asl-status-pill.is-success {
    background: #22c55e;
}

.asl-guided-step.is-warning::before,
.asl-status-pill.is-warning {
    background: #f59e0b;
}

.asl-guided-step.is-danger::before,
.asl-status-pill.is-danger {
    background: #ef4444;
}

.asl-guided-step b {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #eff6ff;
    color: #1d4ed8;
}

.asl-guided-step > i {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #eef2ff;
    color: #4f46e5;
    margin: 12px 0 6px;
}

.asl-guided-step span {
    color: #2563eb;
    font-size: 12px;
    font-weight: 900;
}

.asl-guided-step h3 {
    margin: 6px 0;
    font-size: 17px;
}

.asl-guided-step p {
    color: #64748b;
    font-size: 13px;
    line-height: 1.8;
    flex: 1;
}

.asl-guided-step small {
    color: #1d4ed8;
    font-weight: 900;
}

.asl-command-two-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 18px;
}

.asl-product-panel {
    border-radius: 24px;
    padding: 20px;
}

.asl-attention-list,
.asl-action-tile-list {
    display: grid;
    gap: 10px;
}

.asl-attention-item,
.asl-action-tile-list a {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 13px 14px;
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #0f172a;
}

.asl-attention-item i,
.asl-action-tile-list a i {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: #eff6ff;
    color: #2563eb;
}

.asl-attention-item small,
.asl-action-tile-list small {
    display: block;
    color: #64748b;
}

.asl-attention-item.is-danger {
    border-color: #fecaca;
    background: #fff7f7;
}

.asl-attention-item.is-danger i {
    background: #fee2e2;
    color: #dc2626;
}

.asl-attention-item.is-warning i {
    background: #fffbeb;
    color: #d97706;
}

.asl-attention-item.is-success i {
    background: #ecfdf5;
    color: #16a34a;
}

.asl-action-tile-list a.is-primary {
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
    border-color: transparent;
}

.asl-action-tile-list a.is-primary small,
.asl-action-tile-list a.is-primary strong {
    color: #fff;
}

.asl-command-system-table table {
    width: 100%;
}

.asl-command-system-table td strong,
.asl-command-system-table td small {
    display: block;
}

.asl-status-pill.is-info {
    background: #dbeafe;
    color: #1d4ed8;
}

/* Monitoring NOC/SOC visual layer */
.asl-noc-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(260px, 0.7fr);
    gap: 18px;
    align-items: stretch;
    padding: 24px;
    border-radius: 28px;
    color: #fff;
    background: radial-gradient(circle at top left, rgba(34, 211, 238, 0.30), transparent 24%), linear-gradient(135deg, #0f172a, #1e3a8a 62%, #4c1d95);
    box-shadow: 0 24px 50px rgba(15, 23, 42, 0.20);
    margin-bottom: 18px;
}

.asl-noc-hero .asl-kicker,
.asl-noc-hero p,
.asl-noc-hero small {
    color: #dbeafe;
}

.asl-noc-hero h1 {
    margin: 6px 0 10px;
    font-size: 34px;
}

.asl-noc-status-ring {
    display: grid;
    place-items: center;
    text-align: center;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.16);
    padding: 22px;
}

.asl-noc-status-ring strong {
    font-size: 34px;
}

.asl-noc-indicator-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.asl-noc-indicator {
    position: relative;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 16px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid #dbe5f2;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.055);
}

.asl-noc-indicator i {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 20px;
}

.asl-noc-indicator strong,
.asl-noc-indicator small,
.asl-noc-indicator span {
    display: block;
}

.asl-noc-indicator strong {
    font-size: 24px;
}

.asl-noc-indicator small {
    color: #64748b;
}

.asl-target-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(240px, 1fr));
    gap: 14px;
}

.asl-target-card {
    position: relative;
    border-radius: 22px;
    padding: 18px;
    background: #ffffff;
    border: 1px solid #dbe5f2;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

.asl-target-card::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block: 0;
    width: 5px;
    background: #94a3b8;
}

.asl-target-card.is-pass::before { background: #22c55e; }
.asl-target-card.is-fail::before { background: #ef4444; }
.asl-target-card.is-muted::before { background: #94a3b8; }

.asl-target-card-head,
.asl-target-card-stats,
.asl-target-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.asl-target-card-head h3 {
    margin: 0;
}

.asl-target-card p,
.asl-target-card small {
    color: #64748b;
}

.asl-target-card-stats {
    margin: 14px 0;
    padding: 12px;
    border-radius: 16px;
    background: #f8fafc;
}

.asl-target-card-stats b,
.asl-target-card-stats span {
    display: block;
    text-align: center;
}

.asl-target-card-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
}

@media (max-width: 1280px) {
    .asl-command-kpi-grid,
    .asl-guided-steps {
        grid-template-columns: repeat(3, minmax(160px, 1fr));
    }
    .asl-noc-indicator-grid,
    .asl-target-card-grid {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }
}

@media (max-width: 980px) {
    .asl-topbar-v15 {
        grid-template-columns: 1fr;
    }
    .asl-lab-shell-v15 {
        grid-template-columns: 1fr;
    }
    .asl-context-sidebar {
        position: relative;
        top: auto;
        max-height: none;
    }
    .asl-command-home-hero,
    .asl-noc-hero,
    .asl-command-two-column {
        grid-template-columns: 1fr;
    }
    .asl-command-kpi-grid,
    .asl-guided-steps,
    .asl-noc-indicator-grid,
    .asl-target-card-grid {
        grid-template-columns: 1fr;
    }
}

/* Phase 51B — Final product UX: single-line header, clearer NOC monitoring and in-app help */
.asl-shell-v51b .asl-topbar-v51b {
    min-height: 64px;
    grid-template-columns: minmax(235px, 285px) minmax(0, 1fr) auto;
    gap: 12px;
    padding: 8px 18px;
    overflow: visible;
}

.asl-shell-v51b .asl-brand-command {
    min-width: 0;
}

.asl-shell-v51b .asl-brand-command .asl-brand-mark {
    width: 46px;
    height: 46px;
    font-size: 18px;
    flex: 0 0 auto;
}

.asl-shell-v51b .asl-brand-command strong {
    font-size: 16px;
    white-space: nowrap;
}

.asl-shell-v51b .asl-brand-command small {
    font-size: 11px;
    white-space: nowrap;
}

.asl-shell-v51b .asl-main-nav-v51b {
    flex-wrap: nowrap;
    justify-content: center;
    gap: 4px;
    overflow-x: auto;
    overflow-y: visible;
    padding: 0 2px 2px;
    scrollbar-width: none;
}

.asl-shell-v51b .asl-main-nav-v51b::-webkit-scrollbar { display: none; }

.asl-shell-v51b .asl-main-nav-v51b > a,
.asl-shell-v51b .asl-main-nav-v51b .asl-nav-menu-trigger {
    min-height: 38px;
    padding: 6px 8px;
    border-radius: 13px;
    gap: 6px;
    flex: 0 0 auto;
    font-size: 13px;
}

.asl-shell-v51b .asl-main-nav-v51b > a i,
.asl-shell-v51b .asl-main-nav-v51b .asl-nav-menu-trigger > i:first-child {
    width: 28px;
    height: 28px;
    border-radius: 10px;
    font-size: 13px;
}

.asl-shell-v51b .asl-main-nav-v51b > a span,
.asl-shell-v51b .asl-main-nav-v51b .asl-nav-menu-trigger span {
    white-space: nowrap;
}

.asl-shell-v51b .asl-user-menu-v51b {
    justify-content: flex-start;
    flex-wrap: nowrap;
    min-width: 150px;
}

.asl-shell-v51b .asl-account-nav-menu {
    flex: 0 0 auto;
}

.asl-shell-v51b .asl-user-trigger {
    max-width: 205px;
    min-height: 38px;
    padding: 7px 10px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(226, 232, 240, 0.14);
    color: #eef2ff;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: inherit;
    font-weight: 900;
    cursor: pointer;
}

.asl-shell-v51b .asl-user-trigger span {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.asl-shell-v51b .asl-account-panel {
    width: 245px;
}

.asl-shell-v51b .asl-account-panel form {
    margin: 4px 0 0;
}

.asl-shell-v51b .asl-account-panel button {
    width: 100%;
    min-height: 42px;
    border: 0;
    border-radius: 14px;
    background: rgba(239, 68, 68, 0.12);
    color: #fecaca;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    font-family: inherit;
    font-weight: 900;
    cursor: pointer;
}

.asl-shell-v51b .asl-lab-shell-v15 {
    min-height: calc(100vh - 64px);
}

.asl-shell-v51b .asl-context-sidebar {
    top: 64px;
    max-height: calc(100vh - 64px);
}

.asl-shell-v51b .asl-container-pro.asl-command-container {
    padding: 18px 20px 34px;
}

.asl-shell-v51b .asl-command-home-hero,
.asl-shell-v51b .asl-guided-workflow-panel,
.asl-shell-v51b .asl-product-panel,
.asl-shell-v51b .asl-card,
.asl-shell-v51b .asl-table-card,
.asl-shell-v51b .asl-section {
    border-radius: 22px;
}

.asl-shell-v51b .asl-section-header.compact,
.asl-shell-v51b .asl-section-title-row,
.asl-shell-v51b .asl-commandbar-title {
    align-items: center;
}

.asl-shell-v51b .asl-section-header h2,
.asl-shell-v51b .asl-section-title-row h2,
.asl-shell-v51b .asl-commandbar-title h1 {
    line-height: 1.45;
    margin-bottom: 4px;
}

.asl-shell-v51b .asl-section-header p,
.asl-shell-v51b .asl-section-title-row p,
.asl-shell-v51b .asl-commandbar-title p {
    line-height: 1.85;
}

.asl-shell-v51b .asl-command-home-copy h1 {
    font-size: clamp(28px, 2.2vw, 38px);
    line-height: 1.35;
}

.asl-shell-v51b .asl-command-kpi-grid article,
.asl-shell-v51b .asl-product-panel,
.asl-shell-v51b .asl-card,
.asl-shell-v51b .asl-table-card {
    position: relative;
    overflow: hidden;
}

.asl-shell-v51b .asl-product-panel::before,
.asl-shell-v51b .asl-card::before,
.asl-shell-v51b .asl-table-card::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block: 0;
    width: 4px;
    background: linear-gradient(180deg, #2563eb, #7c3aed);
    opacity: 0.72;
}

.asl-shell-v51b .asl-noc-hero {
    grid-template-columns: minmax(0, 1.15fr) 240px;
    border-radius: 26px;
    padding: 22px;
    background:
        radial-gradient(circle at 16% 20%, rgba(34, 211, 238, 0.42), transparent 25%),
        radial-gradient(circle at 84% 0%, rgba(34, 197, 94, 0.24), transparent 26%),
        linear-gradient(135deg, #0b1220 0%, #1e3a8a 58%, #6d28d9 100%);
}

.asl-shell-v51b .asl-noc-hero h1 {
    font-size: clamp(28px, 2.3vw, 38px);
    line-height: 1.35;
}

.asl-noc-indicator-grid-v51b {
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.asl-shell-v51b .asl-noc-indicator {
    border-right: 4px solid #2563eb;
    transition: transform .18s ease, box-shadow .18s ease;
}

.asl-shell-v51b .asl-noc-indicator:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.09);
}

.asl-shell-v51b .asl-noc-indicator.is-success { border-right-color: #22c55e; background: linear-gradient(135deg, #ffffff, #f0fdf4); }
.asl-shell-v51b .asl-noc-indicator.is-warning { border-right-color: #f59e0b; background: linear-gradient(135deg, #ffffff, #fffbeb); }
.asl-shell-v51b .asl-noc-indicator.is-danger { border-right-color: #ef4444; background: linear-gradient(135deg, #ffffff, #fff1f2); }
.asl-shell-v51b .asl-noc-indicator.is-info { border-right-color: #2563eb; background: linear-gradient(135deg, #ffffff, #eff6ff); }

.asl-shell-v51b .asl-noc-indicator.is-success i { background: #dcfce7; color: #16a34a; }
.asl-shell-v51b .asl-noc-indicator.is-warning i { background: #fef3c7; color: #d97706; }
.asl-shell-v51b .asl-noc-indicator.is-danger i { background: #fee2e2; color: #dc2626; }
.asl-shell-v51b .asl-noc-indicator.is-info i { background: #dbeafe; color: #2563eb; }

.asl-monitor-chart-row-v51b {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}

.asl-shell-v51b .asl-noc-chart-card {
    min-height: 380px;
    padding: 20px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
}

.asl-shell-v51b .asl-noc-chart-card.is-health::before { background: linear-gradient(180deg, #22c55e, #2563eb); }
.asl-shell-v51b .asl-noc-chart-card.is-latency::before { background: linear-gradient(180deg, #2563eb, #f59e0b); }

.asl-chart-shell {
    position: relative;
    height: 285px;
    margin-top: 10px;
}

.asl-shell-v51b .asl-target-card {
    border-right: 0;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
}

.asl-shell-v51b .asl-target-card::before {
    inset-inline-start: auto;
    inset-inline-end: 0;
    width: 6px;
}

.asl-target-status-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 10px 0 2px;
}

.asl-target-status-line small {
    color: #64748b;
}

.asl-status-pill.is-pass,
.asl-status-pill.is-success {
    background: #dcfce7;
    color: #166534;
}

.asl-status-pill.is-fail,
.asl-status-pill.is-danger {
    background: #fee2e2;
    color: #991b1b;
}

.asl-status-pill.is-muted {
    background: #f1f5f9;
    color: #475569;
}

.asl-shell-v51b .asl-monitor-list article {
    border-right: 4px solid #2563eb;
    background: #ffffff;
}

.asl-shell-v51b .asl-monitor-list article.is-danger { border-right-color: #ef4444; background: #fff7f7; }
.asl-shell-v51b .asl-monitor-list article.is-warning { border-right-color: #f59e0b; background: #fffbeb; }
.asl-shell-v51b .asl-monitor-list article.is-info { border-right-color: #2563eb; background: #eff6ff; }

.asl-help-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 18px;
    align-items: stretch;
    padding: 26px;
    margin-bottom: 18px;
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(circle at 12% 15%, rgba(34, 211, 238, .35), transparent 26%),
        linear-gradient(135deg, #0f172a, #1e3a8a 58%, #6d28d9);
    box-shadow: 0 24px 52px rgba(15, 23, 42, .20);
}

.asl-help-hero h1 {
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.35;
    margin: 6px 0 12px;
}

.asl-help-hero p,
.asl-help-hero .asl-kicker {
    color: #dbeafe;
}

.asl-help-hero aside {
    display: grid;
    align-content: center;
    gap: 10px;
    border-radius: 24px;
    padding: 22px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.18);
}

.asl-help-hero aside strong {
    font-size: 24px;
}

.asl-help-section {
    margin-bottom: 18px;
    padding: 22px;
    border-radius: 24px;
    background: rgba(255,255,255,.93);
    border: 1px solid rgba(203, 213, 225, .82);
    box-shadow: 0 16px 38px rgba(15, 23, 42, .06);
}

.asl-help-timeline {
    display: grid;
    gap: 12px;
}

.asl-help-timeline article {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    padding: 15px;
    border-radius: 20px;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    border: 1px solid #dbe5f2;
    border-right: 4px solid #2563eb;
}

.asl-help-timeline b {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
}

.asl-help-timeline h3,
.asl-help-role-grid h3 {
    margin: 0 0 6px;
    line-height: 1.45;
}

.asl-help-timeline p,
.asl-help-role-grid p,
.asl-help-dos li,
.asl-help-faq p {
    color: #475569;
    line-height: 1.9;
}

.asl-help-timeline a {
    color: #2563eb;
    font-weight: 900;
}

.asl-help-role-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.asl-help-role-grid article {
    padding: 18px;
    border-radius: 22px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    border: 1px solid #dbe5f2;
    border-right: 4px solid #7c3aed;
}

.asl-help-role-grid i {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #eef2ff;
    color: #4f46e5;
    margin-bottom: 12px;
}

.asl-help-dos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.asl-help-dos ul {
    margin: 0;
    padding-inline-start: 22px;
}

.asl-help-faq {
    display: grid;
    gap: 10px;
}

.asl-help-faq details {
    border-radius: 18px;
    border: 1px solid #dbe5f2;
    background: #fff;
    padding: 14px 16px;
}

.asl-help-faq summary {
    cursor: pointer;
    font-weight: 900;
    color: #0f172a;
}

@media (max-width: 1380px) {
    .asl-shell-v51b .asl-topbar-v51b {
        grid-template-columns: minmax(200px, 255px) minmax(0, 1fr) auto;
        padding-inline: 14px;
    }
    .asl-shell-v51b .asl-brand-command small { display: none; }
    .asl-shell-v51b .asl-main-nav-v51b > a,
    .asl-shell-v51b .asl-main-nav-v51b .asl-nav-menu-trigger { padding-inline: 7px; }
}

@media (max-width: 1180px) {
    .asl-shell-v51b .asl-main-nav-v51b > a span,
    .asl-shell-v51b .asl-main-nav-v51b .asl-nav-menu-trigger span {
        display: none;
    }
    .asl-shell-v51b .asl-main-nav-v51b > a,
    .asl-shell-v51b .asl-main-nav-v51b .asl-nav-menu-trigger {
        padding-inline: 6px;
    }
    .asl-help-role-grid,
    .asl-help-dos,
    .asl-monitor-chart-row-v51b {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 980px) {
    .asl-shell-v51b .asl-topbar-v51b {
        grid-template-columns: auto 1fr auto;
    }
    .asl-help-hero,
    .asl-help-role-grid,
    .asl-help-dos,
    .asl-monitor-chart-row-v51b {
        grid-template-columns: 1fr;
    }
}

/* Phase 51C — final usability polish: Persian dates, balanced NOC cards, horizontal health cards, reports and AI workspace cleanup */
.asl-shell-v51b .asl-noc-indicator-grid-v51b {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
}

.asl-shell-v51b .asl-noc-indicator {
    min-height: 128px;
    padding: 15px 16px;
    border-right-width: 5px;
}

.asl-shell-v51b .asl-noc-indicator strong {
    font-size: 25px;
    line-height: 1.25;
}

.asl-shell-v51b .asl-noc-indicator small {
    line-height: 1.65;
}

.asl-shell-v51b .asl-monitor-chart-row-v51b .asl-card,
.asl-shell-v51b .asl-monitor-grid-layout .asl-card,
.asl-shell-v51b .asl-target-card,
.asl-shell-v51b .asl-pack5-stage-list article,
.asl-shell-v51b .asl-pack5-project-grid article,
.asl-shell-v51b .asl-ai-panel,
.asl-shell-v51b .asl-ai-candidate-table,
.asl-shell-v51b .asl-ai-pack-table {
    border-color: rgba(148, 163, 184, .24);
    box-shadow: 0 16px 38px rgba(15, 23, 42, .055);
}

.asl-shell-v51b .asl-monitor-grid-layout {
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
}

.asl-shell-v51b .asl-monitor-check-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card {
    display: grid;
    grid-template-columns: 92px minmax(170px, .78fr) minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 116px;
    padding: 14px 18px;
    border-radius: 22px;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    border-right: 5px solid #2563eb;
}

.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card.is-pass { border-right-color: #22c55e; }
.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card.is-warning { border-right-color: #f59e0b; }
.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card.is-fail { border-right-color: #ef4444; }
.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card.is-manual { border-right-color: #0ea5e9; }

.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-head {
    display: grid;
    justify-items: center;
    gap: 8px;
    margin: 0;
}

.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-head i {
    width: 48px;
    height: 48px;
    border-radius: 17px;
}

.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-head span {
    font-size: 12px;
    font-weight: 950;
}

.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card h3,
.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card p,
.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card small {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
}

.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card h3 {
    font-size: 17px;
    line-height: 1.65;
}

.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card p,
.asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card small {
    line-height: 1.85;
}

.asl-shell-v51b .asl-monitor-list article {
    border-radius: 20px;
    padding: 15px 16px;
}

.asl-shell-v51b .asl-monitor-list article p,
.asl-shell-v51b .asl-monitor-list article small,
.asl-shell-v51b .asl-url-text {
    overflow-wrap: anywhere;
}

.asl-monitor-check-table table td,
.asl-monitor-check-table table th {
    vertical-align: middle;
}

.asl-monitor-check-table small {
    display: block;
    line-height: 1.75;
}

.asl-monitor-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 16px 0;
}

.asl-monitor-summary-grid article {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 15px 16px;
    min-height: 112px;
    border: 1px solid rgba(148, 163, 184, .26);
    border-right: 5px solid #2563eb;
    border-radius: 22px;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    box-shadow: 0 14px 32px rgba(15, 23, 42, .055);
}

.asl-monitor-summary-grid article > i {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: #dbeafe;
    color: #2563eb;
    font-size: 20px;
}

.asl-monitor-summary-grid article span,
.asl-monitor-summary-grid article strong,
.asl-monitor-summary-grid article small {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.asl-monitor-summary-grid article span { color: #64748b; font-weight: 900; line-height: 1.65; }
.asl-monitor-summary-grid article strong { color: #0f172a; font-size: 24px; line-height: 1.25; }
.asl-monitor-summary-grid article small { color: #64748b; line-height: 1.7; }
.asl-monitor-summary-grid article.is-pass { border-right-color: #22c55e; background: linear-gradient(135deg, #ffffff, #f0fdf4); }
.asl-monitor-summary-grid article.is-warning { border-right-color: #f59e0b; background: linear-gradient(135deg, #ffffff, #fffbeb); }
.asl-monitor-summary-grid article.is-fail { border-right-color: #ef4444; background: linear-gradient(135deg, #ffffff, #fff1f2); }
.asl-monitor-summary-grid article.is-pass > i { background: #dcfce7; color: #16a34a; }
.asl-monitor-summary-grid article.is-warning > i { background: #fef3c7; color: #d97706; }
.asl-monitor-summary-grid article.is-fail > i { background: #fee2e2; color: #dc2626; }

.asl-shell-v51b .asl-pack5-project-grid article,
.asl-shell-v51b .asl-pack5-stage-list article {
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    border-right: 6px solid #22c55e;
}

.asl-shell-v51b .asl-pack5-stage-list article {
    grid-template-columns: 95px minmax(0, 1fr) minmax(130px, auto) auto;
    min-height: 116px;
    padding: 18px;
    gap: 16px;
}

.asl-shell-v51b .asl-pack5-stage-score {
    min-width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    border-radius: 26px;
    background: linear-gradient(135deg, #dcfce7, #eff6ff);
    color: #15803d;
    font-size: 23px;
    font-weight: 1000;
    text-align: center;
}

.asl-shell-v51b .asl-pack5-status {
    min-width: 132px;
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 14px;
    border-radius: 18px;
    text-align: center;
    line-height: 1.75;
    font-weight: 950;
    white-space: normal;
    font-size: 14px;
}

.asl-shell-v51b .asl-pack5-stage-list strong {
    display: block;
    margin-bottom: 4px;
    font-size: 17px;
    line-height: 1.65;
}

.asl-shell-v51b .asl-pack5-stage-list small {
    display: block;
    line-height: 1.9;
}

.asl-shell-v51b .asl-pack5-stage-list .asl-actions-inline {
    justify-content: flex-end;
    flex-wrap: wrap;
}

.asl-shell-v51b .asl-pack5-project-grid .asl-actions-inline,
.asl-shell-v51b .asl-pack5-stage-list .asl-actions-inline {
    gap: 8px;
}

.asl-shell-v51b .asl-ai-commandbar {
    border-radius: 28px;
    padding: 22px;
    background:
        radial-gradient(circle at 12% 14%, rgba(34, 211, 238, .22), transparent 26%),
        linear-gradient(135deg, rgba(255,255,255,.97), rgba(239,246,255,.92));
}

.asl-shell-v51b .asl-ai-commandbar small {
    display: block;
    max-width: 820px;
    line-height: 1.9;
}

.asl-shell-v51b .asl-ai-safety-strip {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    border-right: 5px solid #2563eb;
    border-radius: 22px;
    padding: 16px 18px;
}

.asl-shell-v51b .asl-ai-safety-strip i {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #dbeafe;
    color: #2563eb;
}

.asl-shell-v51b .asl-ai-panel {
    border-radius: 24px;
    padding: 18px;
    background: rgba(255,255,255,.94);
    border-right: 5px solid #7c3aed;
}

.asl-shell-v51b .asl-ai-panel .asl-registry-panel-header {
    align-items: flex-start;
    gap: 16px;
}

.asl-shell-v51b .asl-ai-panel .asl-registry-panel-header h2 {
    line-height: 1.55;
}

.asl-shell-v51b .asl-ai-panel .asl-registry-panel-header small {
    display: block;
    line-height: 1.9;
    color: #64748b;
}

.asl-shell-v51b .asl-ai-candidate-table,
.asl-shell-v51b .asl-ai-pack-table {
    overflow-x: auto;
    background: transparent;
    box-shadow: none;
    border: 0;
}

.asl-shell-v51b .asl-ai-candidate-table table,
.asl-shell-v51b .asl-ai-pack-table table {
    border-collapse: separate;
    border-spacing: 0 10px;
    min-width: 960px;
}

.asl-shell-v51b .asl-ai-candidate-table tbody tr,
.asl-shell-v51b .asl-ai-pack-table tbody tr {
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
}

.asl-shell-v51b .asl-ai-candidate-table tbody td,
.asl-shell-v51b .asl-ai-pack-table tbody td {
    border-top: 1px solid rgba(226, 232, 240, .9);
    border-bottom: 1px solid rgba(226, 232, 240, .9);
    padding-top: 14px;
    padding-bottom: 14px;
    vertical-align: middle;
}

.asl-shell-v51b .asl-ai-candidate-table tbody td:first-child,
.asl-shell-v51b .asl-ai-pack-table tbody td:first-child {
    border-right: 5px solid #7c3aed;
    border-radius: 0 18px 18px 0;
}

.asl-shell-v51b .asl-ai-candidate-table tbody td:last-child,
.asl-shell-v51b .asl-ai-pack-table tbody td:last-child {
    border-radius: 18px 0 0 18px;
}

.asl-shell-v51b .asl-ai-candidate-table strong,
.asl-shell-v51b .asl-ai-pack-table strong {
    line-height: 1.65;
}

.asl-shell-v51b .asl-finding-filter-form {
    gap: 10px;
}

.asl-shell-v51b .asl-finding-filter-form select,
.asl-shell-v51b .asl-finding-filter-form input {
    min-height: 42px;
}

.asl-shell-v51b .asl-status-pill {
    line-height: 1.55;
}

@media (max-width: 1280px) {
    .asl-shell-v51b .asl-noc-indicator-grid-v51b,
    .asl-monitor-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card {
        grid-template-columns: 86px minmax(150px, .8fr) minmax(0, 1fr);
    }
    .asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card small {
        grid-column: 2 / -1;
    }
}

@media (max-width: 980px) {
    .asl-shell-v51b .asl-noc-indicator-grid-v51b,
    .asl-monitor-summary-grid,
    .asl-shell-v51b .asl-monitor-grid-layout,
    .asl-shell-v51b .asl-pack5-stage-list article {
        grid-template-columns: 1fr;
    }
    .asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card {
        grid-template-columns: 1fr;
        text-align: right;
    }
    .asl-shell-v51b .asl-monitor-check-grid .asl-self-check-card small {
        grid-column: auto;
    }
    .asl-shell-v51b .asl-pack5-stage-score {
        width: 100%;
        height: auto;
        min-height: 58px;
        border-radius: 18px;
    }
}

/* Phase 51D — publish readiness: robust confirm dialog and richer in-app help center */
.asl-confirm-layer[aria-hidden="true"] {
    display: none !important;
    pointer-events: none !important;
}

.asl-confirm-layer.is-open {
    display: grid;
    pointer-events: auto;
}

.asl-help-section-intro {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 16px;
}

.asl-help-map-grid,
.asl-help-workflow-grid,
.asl-help-glossary-grid,
.asl-help-publish-grid {
    display: grid;
    gap: 14px;
}

.asl-help-map-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.asl-help-map-card,
.asl-help-workflow-card,
.asl-help-glossary-card,
.asl-help-publish-card {
    border: 1px solid #dbe5f2;
    border-right: 4px solid #2563eb;
    border-radius: 22px;
    padding: 16px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .045);
}

.asl-help-map-card i,
.asl-help-workflow-card i,
.asl-help-publish-card i {
    width: 42px;
    height: 42px;
    display: inline-grid;
    place-items: center;
    border-radius: 15px;
    margin-bottom: 10px;
    color: #2563eb;
    background: #eff6ff;
}

.asl-help-map-card h3,
.asl-help-workflow-card h3,
.asl-help-glossary-card h3,
.asl-help-publish-card h3 {
    margin: 0 0 8px;
    color: #0f172a;
    line-height: 1.45;
    font-size: 1.03rem;
}

.asl-help-map-card p,
.asl-help-workflow-card p,
.asl-help-glossary-card p,
.asl-help-publish-card p {
    margin: 0;
    color: #475569;
    line-height: 1.9;
    font-size: .94rem;
}

.asl-help-map-card a,
.asl-help-workflow-card a,
.asl-help-publish-card a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    color: #2563eb;
    font-weight: 950;
}

.asl-help-workflow-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asl-help-workflow-card {
    border-right-color: #7c3aed;
}

.asl-help-publish-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.asl-help-publish-card.is-good { border-right-color: #22c55e; }
.asl-help-publish-card.is-risk { border-right-color: #f59e0b; }
.asl-help-publish-card.is-stop { border-right-color: #ef4444; }

.asl-help-glossary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.asl-help-glossary-card {
    border-right-color: #0ea5e9;
    padding: 14px 15px;
}

.asl-help-glossary-card h3 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.asl-help-glossary-card h3 span {
    direction: ltr;
    color: #1d4ed8;
    font-size: .82rem;
    font-weight: 950;
    padding: 5px 8px;
    border-radius: 999px;
    background: #dbeafe;
}

.asl-help-note-strip {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    border-radius: 22px;
    padding: 16px;
    margin-top: 14px;
    background: linear-gradient(135deg, #eff6ff, #f5f3ff);
    border: 1px solid #bfdbfe;
    color: #1e3a8a;
    line-height: 1.9;
    font-weight: 800;
}

.asl-help-note-strip i {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
}

@media (max-width: 1380px) {
    .asl-help-map-grid,
    .asl-help-glossary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .asl-help-publish-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    .asl-help-section-intro,
    .asl-help-workflow-grid,
    .asl-help-map-grid,
    .asl-help-glossary-grid {
        grid-template-columns: 1fr;
        display: grid;
    }
}
