/* Base Styles & Typography */
:root {
    --brand-indigo: #6366f1;
    --brand-slate-900: #0f172a;
    --brand-slate-800: #1e293b;
}

body {
    background-color: var(--brand-slate-900);
    color: #f8fafc;
    -webkit-font-smoothing: antialiased;
    scroll-behavior: smooth;
}

/* Custom Scrollbar for the Dashboard */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: var(--brand-slate-900);
}
::-webkit-scrollbar-thumb {
    background: #334155;
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--brand-indigo);
}

/* The Glass-Morphism Gate Overlay */
#gate-overlay {
    background: radial-gradient(circle at top, #1e293b 0%, #0f172a 100%);
    backdrop-filter: blur(20px);
}

/* Pricing Card Hover Effects */
.pricing-card {
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), border-color 0.2s ease;
}

.pricing-card:hover {
    transform: translateY(-8px);
}

/* Input Styles */
textarea#main-input {
    resize: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    font-family: 'Inter', ui-sans-serif, system-ui;
    line-height: 1.6;
}

textarea#main-input:focus {
    border-color: var(--brand-indigo);
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1);
}

/* Agency Report PDF Styling (The "White-Label" Look) */
@media print {
    body * {
        visibility: hidden;
    }
    #output-display, #output-display * {
        visibility: visible;
        color: #000 !important;
    }
    #output-display {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        padding: 2rem;
        background: white !important;
    }
    .agency-report {
        border: none !important;
        box-shadow: none !important;
    }
    #output-display {
    white-space: pre-wrap; /* Keeps line breaks from the AI */
    font-family: 'Inter', sans-serif;
    line-height: 1.6;
}

/* Style for tables generated by AI */
#output-display table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
}

#output-display th, #output-display td {
    border: 1px solid #334155;
    padding: 12px;
    text-align: left;
}
}

/* Loading Animation for the 'Forging' State */
@keyframes pulse-indigo {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

button:disabled {
    cursor: not-allowed;
    animation: pulse-indigo 1.5s infinite;
}

/* Typography for Reports */
.prose h1, .prose h2, .prose h3 {
    color: var(--brand-indigo);
    font-weight: 800;
    margin-top: 1.5em;
}

.prose strong {
    color: #e2e8f0;
    background: rgba(99, 102, 241, 0.1);
    padding: 0 4px;
    border-radius: 4px;
}

/* BusinessForge Enterprise Command Centre */
.enterprise-shell { min-height: 100vh; display: flex; background: #020617; }
.enterprise-sidebar { width: 280px; min-height: 100vh; position: sticky; top: 0; align-self: flex-start; background: linear-gradient(180deg,#0f172a 0%,#090f1d 100%); border-right: 1px solid #1e293b; padding: 18px 14px; display: flex; flex-direction: column; z-index: 30; transition: width .2s ease; }
.enterprise-sidebar.collapsed { width: 82px; }
.enterprise-sidebar.collapsed .enterprise-brand-copy,.enterprise-sidebar.collapsed .nav-copy,.enterprise-sidebar.collapsed .nav-section-title,.enterprise-sidebar.collapsed .sidebar-business-card { display:none; }
.enterprise-brand { display:flex; align-items:center; gap:12px; padding:4px 6px 18px; border-bottom:1px solid #1e293b; }
.sidebar-collapse-button { width:36px; height:36px; border:1px solid #334155; background:#111827; border-radius:10px; color:#cbd5e1; }
.enterprise-eyebrow { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; color:#818cf8; text-transform:uppercase; letter-spacing:.14em; font-size:10px; font-weight:800; }
.enterprise-logo { font-weight:900; font-size:17px; letter-spacing:-.03em; white-space:nowrap; }
.enterprise-logo span { display:block; color:#818cf8; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.sidebar-business-card { margin:16px 4px 10px; padding:13px; border:1px solid #312e81; background:rgba(49,46,129,.18); border-radius:14px; }
.sidebar-label { color:#94a3b8; text-transform:uppercase; font-size:9px; letter-spacing:.13em; font-weight:800; margin-bottom:7px; }
.enterprise-select,.enterprise-input,.enterprise-textarea { width:100%; background:#020617; border:1px solid #334155; color:#e2e8f0; border-radius:10px; padding:10px 12px; font-size:13px; outline:none; }
.enterprise-select:focus,.enterprise-input:focus,.enterprise-textarea:focus { border-color:#6366f1; box-shadow:0 0 0 3px rgba(99,102,241,.12); }
.sidebar-business-meta { margin-top:7px; color:#818cf8; font-size:10px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.enterprise-nav { flex:1; overflow-y:auto; padding:4px; }
.nav-section { margin-top:14px; }
.nav-section-title { color:#64748b; padding:0 10px 7px; text-transform:uppercase; letter-spacing:.13em; font-size:9px; font-weight:900; }
.enterprise-nav-item { width:100%; display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:10px; color:#94a3b8; font-size:12px; font-weight:650; text-align:left; border:1px solid transparent; transition:.15s ease; }
a.enterprise-nav-item { text-decoration:none; }
.enterprise-nav-item:hover { color:#fff; background:#172033; }
.enterprise-nav-item.active { color:#fff; background:linear-gradient(90deg,rgba(79,70,229,.28),rgba(30,41,59,.7)); border-color:rgba(99,102,241,.35); }
.enterprise-nav-item.danger { color:#fb7185; }
.sidebar-footer { padding:12px 4px 0; border-top:1px solid #1e293b; }
.enterprise-main { min-width:0; flex:1; }
.enterprise-topbar { min-height:78px; position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; padding:15px 26px; border-bottom:1px solid #1e293b; background:rgba(2,6,23,.88); backdrop-filter:blur(16px); }
.enterprise-page-title { font-weight:900; font-size:22px; letter-spacing:-.03em; margin-top:2px; }
.topbar-actions { display:flex; align-items:center; gap:12px; }
.system-status { color:#94a3b8; font-size:11px; display:flex; align-items:center; gap:7px; }
.system-status span { width:8px; height:8px; border-radius:999px; background:#10b981; box-shadow:0 0 0 4px rgba(16,185,129,.1); }
.topbar-button,.primary-button,.secondary-button,.danger-button { border-radius:10px; padding:10px 14px; font-size:12px; font-weight:800; transition:.15s ease; }
.topbar-button,.primary-button { background:#4f46e5; color:#fff; border:1px solid #6366f1; }
.topbar-button:hover,.primary-button:hover { background:#6366f1; }
.secondary-button { background:#111827; color:#cbd5e1; border:1px solid #334155; }
.secondary-button:hover { background:#1e293b; color:#fff; }
.danger-button { background:rgba(190,24,93,.12); color:#fb7185; border:1px solid rgba(244,63,94,.25); }
.enterprise-content { padding:24px; }
.enterprise-workspace { min-height:calc(100vh - 126px); }
.dashboard-grid { display:grid; gap:16px; }
.dashboard-grid.kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
.enterprise-card { background:linear-gradient(180deg,rgba(15,23,42,.92),rgba(8,15,29,.95)); border:1px solid #1e293b; border-radius:16px; padding:18px; box-shadow:0 16px 40px rgba(0,0,0,.16); }
.enterprise-card-title { font-size:13px; font-weight:850; color:#f8fafc; }
.enterprise-card-subtitle { color:#64748b; font-size:11px; margin-top:3px; }
.kpi-label { color:#64748b; font-size:10px; text-transform:uppercase; letter-spacing:.1em; font-weight:850; }
.kpi-value { font-size:27px; font-weight:950; margin-top:8px; letter-spacing:-.04em; }
.kpi-note { color:#94a3b8; font-size:10px; margin-top:6px; }
.dashboard-two-column { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr); gap:16px; margin-top:16px; }
.module-launch-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:14px; }
.module-launch-card { padding:14px; border:1px solid #253148; background:#0b1220; border-radius:13px; text-align:left; transition:.15s ease; }
.module-launch-card:hover { border-color:#6366f1; transform:translateY(-2px); }
.module-launch-name { color:#f8fafc; font-weight:800; font-size:12px; }
.module-launch-pillar { color:#818cf8; font-size:9px; text-transform:uppercase; letter-spacing:.1em; margin-top:4px; }
.empty-state { text-align:center; padding:42px 22px; color:#64748b; }
.profile-toolbar { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:16px; }
.profile-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.profile-card { border:1px solid #1e293b; background:#0b1220; border-radius:15px; padding:16px; }
.profile-card.default { border-color:#4f46e5; box-shadow:inset 0 0 0 1px rgba(99,102,241,.2); }
.profile-name { color:#fff; font-size:15px; font-weight:900; }
.profile-meta { color:#94a3b8; font-size:11px; margin-top:4px; line-height:1.5; }
.profile-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.profile-tag { padding:4px 7px; border-radius:999px; border:1px solid #334155; color:#94a3b8; font-size:9px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.profile-actions { display:flex; gap:7px; margin-top:14px; flex-wrap:wrap; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.form-field label { display:block; color:#94a3b8; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; margin:0 0 6px 2px; }
.form-field.full { grid-column:1/-1; }
.enterprise-textarea { min-height:96px; resize:vertical; }
.notice { padding:11px 13px; border-radius:10px; font-size:11px; margin-bottom:14px; }
.notice.info { border:1px solid rgba(99,102,241,.3); background:rgba(79,70,229,.1); color:#c7d2fe; }
.notice.error { border:1px solid rgba(244,63,94,.3); background:rgba(190,24,93,.1); color:#fda4af; }
.notice.success { border:1px solid rgba(16,185,129,.3); background:rgba(5,150,105,.1); color:#6ee7b7; }
.data-table { width:100%; border-collapse:collapse; margin-top:12px; }
.data-table th { color:#64748b; font-size:9px; text-transform:uppercase; letter-spacing:.1em; text-align:left; padding:10px; border-bottom:1px solid #1e293b; }
.data-table td { color:#cbd5e1; font-size:11px; padding:11px 10px; border-bottom:1px solid rgba(30,41,59,.65); vertical-align:top; }
.status-pill { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:9px; font-weight:800; background:rgba(16,185,129,.12); color:#34d399; border:1px solid rgba(16,185,129,.22); }
.status-pill.inactive { color:#94a3b8; border-color:#334155; background:#111827; }
.modal-backdrop { position:fixed; inset:0; z-index:80; background:rgba(2,6,23,.82); backdrop-filter:blur(9px); display:flex; align-items:center; justify-content:center; padding:20px; }
.enterprise-modal { width:min(760px,100%); max-height:90vh; overflow:auto; background:#0f172a; border:1px solid #334155; border-radius:18px; padding:20px; box-shadow:0 30px 100px rgba(0,0,0,.5); }
.modal-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:18px; }
.modal-title { font-size:18px; font-weight:900; }
.modal-close { color:#94a3b8; font-size:20px; padding:2px 8px; }
@media (max-width:1100px) { .dashboard-grid.kpis{grid-template-columns:repeat(2,1fr)} .profile-grid{grid-template-columns:repeat(2,1fr)} .module-launch-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:760px) { .enterprise-shell{display:block}.enterprise-sidebar{position:relative;width:100%;min-height:auto}.enterprise-sidebar.collapsed{width:100%}.enterprise-sidebar.collapsed .enterprise-brand-copy,.enterprise-sidebar.collapsed .nav-copy,.enterprise-sidebar.collapsed .nav-section-title,.enterprise-sidebar.collapsed .sidebar-business-card{display:block}.enterprise-topbar{position:relative;padding:14px 16px}.topbar-actions{display:none}.enterprise-content{padding:14px}.dashboard-grid.kpis,.profile-grid,.module-launch-grid,.form-grid,.dashboard-two-column{grid-template-columns:1fr}.enterprise-nav{max-height:420px}.enterprise-workspace{min-height:500px} }

/* Stage 2: Executive Intelligence Dashboard */
.executive-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    background:
        radial-gradient(circle at 85% 20%, rgba(99, 102, 241, 0.18), transparent 32%),
        linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(30, 41, 59, 0.88));
    overflow: hidden;
}

.executive-hero-copy { min-width: 0; }
.executive-hero h2 { margin-top: .35rem; font-size: clamp(1.5rem, 3vw, 2.35rem); font-weight: 900; letter-spacing: -.03em; }
.executive-hero p { margin-top: .75rem; max-width: 820px; color: #cbd5e1; font-size: .9rem; line-height: 1.7; }
.executive-context-line { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.executive-context-line span { border: 1px solid rgba(148,163,184,.18); background: rgba(2,6,23,.34); border-radius: 999px; padding: .38rem .7rem; color: #94a3b8; font: 700 .66rem/1 ui-monospace, SFMono-Regular, Menlo, monospace; text-transform: uppercase; letter-spacing: .06em; }

.executive-health-orb { flex: 0 0 132px; width: 132px; height: 132px; border-radius: 50%; display: grid; place-content: center; text-align: center; border: 1px solid rgba(148,163,184,.2); background: rgba(2,6,23,.55); box-shadow: inset 0 0 35px rgba(99,102,241,.12); }
.executive-health-orb span { font-size: 2.2rem; font-weight: 900; line-height: 1; }
.executive-health-orb small { margin-top: .45rem; color: #94a3b8; font: 700 .6rem/1 ui-monospace, monospace; text-transform: uppercase; letter-spacing: .1em; }
.executive-health-orb.good { border-color: rgba(16,185,129,.38); box-shadow: inset 0 0 38px rgba(16,185,129,.12); }
.executive-health-orb.watch { border-color: rgba(245,158,11,.4); box-shadow: inset 0 0 38px rgba(245,158,11,.12); }
.executive-health-orb.danger { border-color: rgba(244,63,94,.4); box-shadow: inset 0 0 38px rgba(244,63,94,.12); }

.intelligence-kpis { margin-bottom: 1rem; }
.intelligence-score-card { min-height: 155px; }
.intelligence-status { display: inline-flex; align-items: center; border-radius: 999px; padding: .35rem .6rem; font: 800 .6rem/1 ui-monospace, monospace; text-transform: uppercase; letter-spacing: .08em; border: 1px solid; }
.intelligence-status.good { color: #6ee7b7; background: rgba(6,78,59,.25); border-color: rgba(16,185,129,.25); }
.intelligence-status.watch { color: #fcd34d; background: rgba(120,53,15,.22); border-color: rgba(245,158,11,.25); }
.intelligence-status.danger { color: #fda4af; background: rgba(136,19,55,.22); border-color: rgba(244,63,94,.25); }
.intelligence-status.neutral { color: #94a3b8; background: rgba(30,41,59,.55); border-color: rgba(148,163,184,.18); }
.score-track { height: 5px; margin: 1rem 0 .85rem; overflow: hidden; border-radius: 999px; background: #0f172a; }
.score-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #6366f1, #a78bfa); }
.metric-detail { margin: 1.05rem 0 .9rem; color: #cbd5e1; font-size: .78rem; }

.intelligence-main-grid { align-items: stretch; }
.executive-alert-list { display: grid; gap: .7rem; margin-top: 1.1rem; }
.executive-alert { display: flex; gap: .85rem; align-items: flex-start; padding: .9rem; border: 1px solid rgba(148,163,184,.14); border-radius: .85rem; background: rgba(2,6,23,.35); }
.executive-alert .alert-icon { width: 1.65rem; height: 1.65rem; flex: 0 0 1.65rem; display: grid; place-content: center; border-radius: 50%; font-weight: 900; }
.executive-alert strong { display: block; color: #e2e8f0; font-size: .78rem; }
.executive-alert p { margin-top: .25rem; color: #64748b; font-size: .69rem; }
.executive-alert.good .alert-icon { color: #6ee7b7; background: rgba(6,78,59,.35); }
.executive-alert.watch .alert-icon { color: #fcd34d; background: rgba(120,53,15,.3); }
.executive-alert.danger .alert-icon { color: #fda4af; background: rgba(136,19,55,.3); }
.empty-state.compact { padding: 1.25rem; }
.latest-intelligence-panel { margin-top: 1.25rem; padding: 1rem; border: 1px solid rgba(99,102,241,.2); border-radius: 1rem; background: linear-gradient(145deg, rgba(49,46,129,.18), rgba(2,6,23,.35)); }
.latest-module { color: #fff; font-weight: 900; font-size: 1rem; }

.priority-launch-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-top: 1.2rem; }
.priority-launch-card { text-align: left; padding: 1rem; border-radius: 1rem; border: 1px solid rgba(99,102,241,.2); background: linear-gradient(145deg, rgba(30,41,59,.8), rgba(15,23,42,.9)); transition: transform .18s ease, border-color .18s ease; }
.priority-launch-card:hover { transform: translateY(-2px); border-color: rgba(129,140,248,.55); }
.priority-launch-card span { display: block; color: #fff; font-weight: 900; font-size: .8rem; }
.priority-launch-card small { display: block; margin-top: .4rem; color: #818cf8; font: 800 .58rem/1 ui-monospace, monospace; text-transform: uppercase; letter-spacing: .08em; }
.engine-catalogue { margin-top: 1rem; border-top: 1px solid rgba(148,163,184,.12); padding-top: 1rem; }
.engine-catalogue summary { cursor: pointer; color: #a5b4fc; font-size: .72rem; font-weight: 800; }
.engine-catalogue[open] summary { margin-bottom: 1rem; }

@media (max-width: 900px) {
    .executive-hero { align-items: flex-start; }
    .executive-health-orb { flex-basis: 105px; width: 105px; height: 105px; }
    .priority-launch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .executive-hero { flex-direction: column; }
    .executive-health-orb { width: 100%; height: auto; min-height: 100px; border-radius: 1rem; }
    .priority-launch-grid { grid-template-columns: 1fr; }
}


/* Stage 3: Business Genome */
.genome-shell { margin-bottom: 1rem; background: radial-gradient(circle at 5% 0%, rgba(79,70,229,.14), transparent 28%), linear-gradient(180deg,rgba(15,23,42,.96),rgba(8,15,29,.98)); }
.genome-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; }
.genome-title { margin-top:.35rem; font-size:1.15rem; }
.genome-summary { display:grid; grid-template-columns:repeat(3,minmax(78px,1fr)); gap:.6rem; min-width:290px; }
.genome-summary div { padding:.7rem; border:1px solid rgba(148,163,184,.14); border-radius:.8rem; background:rgba(2,6,23,.36); text-align:center; }
.genome-summary span { display:block; color:#fff; font-weight:950; font-size:1rem; }
.genome-summary small { display:block; margin-top:.25rem; color:#64748b; font:700 .55rem/1 ui-monospace,monospace; text-transform:uppercase; letter-spacing:.08em; }
.genome-priority-strip { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-top:1rem; padding:.75rem; border-radius:.85rem; background:rgba(136,19,55,.12); border:1px solid rgba(244,63,94,.15); }
.genome-priority-strip > span { color:#fda4af; font:850 .6rem/1 ui-monospace,monospace; text-transform:uppercase; letter-spacing:.09em; margin-right:.25rem; }
.genome-priority-strip button { color:#cbd5e1; font-size:.67rem; padding:.35rem .55rem; border-radius:999px; border:1px solid rgba(244,63,94,.2); background:rgba(15,23,42,.7); }
.genome-priority-strip button:hover { border-color:#fb7185; color:#fff; }
.genome-priority-strip strong { color:#fda4af; margin-left:.2rem; }
.genome-empty-note { margin-top:1rem; margin-bottom:0; }
.genome-feature-grid,.genome-all-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; margin-top:1rem; }
.genome-all-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.genome-dimension-card { width:100%; padding:.85rem; text-align:left; border:1px solid rgba(148,163,184,.13); border-radius:.85rem; background:rgba(2,6,23,.4); transition:border-color .16s ease,transform .16s ease; }
.genome-dimension-card:hover { border-color:rgba(129,140,248,.55); transform:translateY(-1px); }
.genome-dimension-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.7rem; }
.genome-dimension-head strong { display:block; margin-top:.25rem; color:#e2e8f0; font-size:.72rem; line-height:1.2; }
.genome-pillar { color:#818cf8; font:800 .5rem/1 ui-monospace,monospace; text-transform:uppercase; letter-spacing:.08em; }
.genome-score { flex:0 0 34px; width:34px; height:34px; border-radius:50%; display:grid; place-content:center; border:1px solid rgba(148,163,184,.18); color:#94a3b8; font-weight:900; font-size:.68rem; }
.genome-score.good { color:#6ee7b7; border-color:rgba(16,185,129,.3); background:rgba(6,78,59,.2); }
.genome-score.watch { color:#fcd34d; border-color:rgba(245,158,11,.3); background:rgba(120,53,15,.2); }
.genome-score.danger { color:#fda4af; border-color:rgba(244,63,94,.3); background:rgba(136,19,55,.2); }
.genome-track { height:4px; margin:.75rem 0 .6rem; border-radius:999px; overflow:hidden; background:#0f172a; }
.genome-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#4f46e5,#a78bfa); }
.genome-meta { display:flex; justify-content:space-between; gap:.5rem; color:#64748b; font-size:.53rem; line-height:1.25; }
.genome-meta span:last-child { text-align:right; }
.genome-catalogue { margin-top:1rem; }
.genome-methodology { margin-top:1rem; padding-top:.8rem; border-top:1px solid rgba(148,163,184,.1); color:#475569; font-size:.58rem; line-height:1.55; }
@media (max-width:1100px){.genome-feature-grid{grid-template-columns:repeat(2,1fr)}.genome-all-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.genome-heading{flex-direction:column}.genome-summary{min-width:0;width:100%}.genome-feature-grid,.genome-all-grid{grid-template-columns:1fr}}
