/**
 * Institutional Article Layout
 * Premium split-screen research terminal
 *
 * Layout: [Icon Sidebar] [Article + Chat] [Resize Handle] [Charts Panel]
 *
 * Typography: RecifeText, NotoSerif, sans-serif
 * Colors: Navy, Gray, Black, Blue accents, Cream background
 */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Serif:ital,wght@0,400;0,500;0,600;1,400&display=swap');

:root {
    /* Color Palette - Institutional */
    --inst-navy-900: #0a1628;
    --inst-navy-800: #0f2137;
    --inst-navy-700: #1a3a5c;
    --inst-blue-700: #1d4ed8;
    --inst-blue-600: #2563eb;
    --inst-blue-500: #3b82f6;
    --inst-blue-400: #60a5fa;
    --inst-blue-300: #93c5fd;
    --inst-green-600: #1e6b4a;
    --inst-green-500: #2d7d5a;

    /* Sophisticated accent colors (cream-friendly) */
    --inst-red-muted: #9a3c3c;
    --inst-amber-muted: #8a6d35;
    --inst-green-muted: #1e6b4a;

    /* Neutrals */
    --inst-black: #09090b;
    --inst-gray-900: #18181b;
    --inst-gray-800: #27272a;
    --inst-gray-700: #3f3f46;
    --inst-gray-600: #52525b;
    --inst-gray-500: #71717a;
    --inst-gray-400: #a1a1aa;
    --inst-gray-300: #d4d4d8;
    --inst-gray-200: #e4e4e7;
    --inst-gray-100: #f4f4f5;
    --inst-gray-50: #fafafa;
    --inst-white: #ffffff;

    /* Cream Tones */
    --inst-cream-50: #fefdfb;
    --inst-cream-100: #faf8f5;
    --inst-cream-200: #f5f2ed;
    --inst-cream-300: #ebe7e0;

    /* Typography */
    --inst-font-serif: 'Noto Serif', 'Georgia', serif;
    --inst-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --inst-font-mono: 'SF Mono', 'Monaco', 'Consolas', 'Liberation Mono', monospace;

    /* Spacing */
    --inst-sidebar-width: 48px;
    --inst-header-height: 56px;
    --inst-chat-height: 180px;
}

/* ============================================
   RESET & BASE
   ============================================ */

.inst-terminal {
    display: flex;
    height: 100vh;
    width: 100vw;
    overflow: hidden;
    background: var(--inst-cream-100);
    font-family: var(--inst-font-sans);
    color: var(--inst-gray-900);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.inst-terminal *,
.inst-terminal *::before,
.inst-terminal *::after {
    box-sizing: border-box;
}

/* Hide WordPress admin bar when in terminal */
.inst-terminal ~ #wpadminbar,
body.admin-bar .inst-terminal {
    top: 0;
}

/* ============================================
   ICON SIDEBAR (Left Edge)
   ============================================ */

.inst-sidebar {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    width: var(--inst-sidebar-width);
    background: var(--inst-white);
    border-right: 1px solid var(--inst-gray-200);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 0;
    z-index: 100;
}

.inst-sidebar-logo {
    width: 28px;
    height: 28px;
    margin-bottom: 24px;
}

.inst-sidebar-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: auto;
    margin-bottom: auto;
}

.inst-sidebar-btn {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: 8px;
    color: var(--inst-gray-500);
    cursor: pointer;
    transition: all 0.15s ease;
    position: relative;
}

.inst-sidebar-btn:hover {
    background: var(--inst-cream-200);
    color: var(--inst-navy-800);
}

.inst-sidebar-btn.is-active {
    background: var(--inst-blue-600);
    color: var(--inst-white);
}

.inst-sidebar-btn svg {
    width: 20px;
    height: 20px;
}

.inst-sidebar-btn[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    left: calc(100% + 8px);
    top: 50%;
    transform: translateY(-50%);
    padding: 6px 10px;
    background: var(--inst-navy-900);
    color: var(--inst-white);
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
    border-radius: 4px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.15s ease;
    z-index: 200;
}

.inst-sidebar-btn:hover[data-tooltip]::after {
    opacity: 1;
    visibility: visible;
}

/* ============================================
   MAIN CONTENT AREA
   ============================================ */

.inst-main {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    margin-left: var(--inst-sidebar-width);
    height: 100vh;
    overflow: hidden;
}

/* ============================================
   SUBSCRIBE BAR (Top Banner for Non-Subscribers)
   ============================================ */

.inst-subscribe-bar {
    flex: 0 0 100%;
    width: 100%;
    background: linear-gradient(135deg, var(--inst-navy-900) 0%, var(--inst-navy-800) 100%);
    border-bottom: 1px solid rgba(255,255,255,0.1);
    z-index: 80;
}

.inst-subscribe-bar-content {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 24px;
    max-width: 100%;
}

.inst-subscribe-bar-icon {
    width: 18px;
    height: 18px;
    color: var(--inst-blue-400);
    flex-shrink: 0;
}

.inst-subscribe-bar-text {
    font-size: 13px;
    font-weight: 500;
    color: var(--inst-gray-200);
    white-space: nowrap;
}

.inst-subscribe-bar-form {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.inst-subscribe-bar-input {
    width: 220px;
    padding: 8px 14px;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 6px;
    font-family: var(--inst-font-sans);
    font-size: 13px;
    color: var(--inst-white);
    outline: none;
    transition: all 0.15s ease;
}

.inst-subscribe-bar-input::placeholder {
    color: var(--inst-gray-400);
}

.inst-subscribe-bar-input:focus {
    background: rgba(255,255,255,0.15);
    border-color: var(--inst-blue-500);
}

.inst-subscribe-bar-btn {
    padding: 8px 18px;
    background: var(--inst-blue-600);
    border: none;
    border-radius: 6px;
    font-family: var(--inst-font-sans);
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-white);
    cursor: pointer;
    transition: background 0.15s ease;
    white-space: nowrap;
}

.inst-subscribe-bar-btn:hover {
    background: var(--inst-blue-500);
}

.inst-subscribe-bar-close {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: 4px;
    color: var(--inst-gray-400);
    cursor: pointer;
    transition: all 0.15s ease;
    flex-shrink: 0;
    margin-left: 8px;
}

.inst-subscribe-bar-close:hover {
    background: rgba(255,255,255,0.1);
    color: var(--inst-white);
}

.inst-subscribe-bar-close svg {
    width: 16px;
    height: 16px;
}

/* ============================================
   ARTICLE PANEL (Left)
   ============================================ */

.inst-article-panel {
    flex: 1 1 55%;
    min-width: 420px;
    max-width: 65%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: var(--inst-white);
    position: relative;
    overflow: hidden;
}

/* Transparent Sticky Header */
.inst-article-header {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    height: var(--inst-header-height);
    background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 100%);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(0,0,0,0.06);
    display: flex;
    align-items: center;
    padding: 0 32px;
    z-index: 50;
}

.inst-article-header-title {
    font-family: var(--inst-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--inst-gray-700);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.inst-article-header-meta {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 12px;
    color: var(--inst-gray-500);
}

/* Article Content */
.inst-article-content {
    flex: 1;
    overflow-y: auto;
    padding: 32px;
    padding-bottom: calc(var(--inst-chat-height) + 32px);
}

.inst-article-inner {
    max-width: 680px;
    margin: 0 auto;
}

/* Breadcrumbs */
.inst-breadcrumbs {
    margin-bottom: 1.5em;
}

.inst-breadcrumbs-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
    font-family: var(--inst-font-sans);
    font-size: 12px;
    color: var(--inst-gray-500);
}

.inst-breadcrumbs-list li {
    display: flex;
    align-items: center;
}

.inst-breadcrumbs-list li:not(:last-child)::after {
    content: "›";
    margin: 0 8px;
    color: var(--inst-gray-300);
}

.inst-breadcrumbs-list a {
    color: var(--inst-gray-600);
    text-decoration: none;
    transition: color 0.15s ease;
}

.inst-breadcrumbs-list a:hover {
    color: var(--inst-blue-600);
}

.inst-breadcrumbs-list li:last-child span {
    color: var(--inst-gray-400);
}

/* Source Attribution */
.inst-article-source {
    margin-top: 2em;
    padding-top: 1.5em;
    border-top: 1px solid var(--inst-gray-100);
}

.inst-article-source-text {
    font-family: var(--inst-font-sans);
    font-size: 13px;
    color: var(--inst-gray-500);
    margin: 0;
}

.inst-article-source-text a {
    color: var(--inst-blue-600);
    text-decoration: none;
}

.inst-article-source-text a:hover {
    text-decoration: underline;
}

/* Updated indicator */
.inst-article-updated {
    color: var(--inst-gray-500);
    font-size: 13px;
}

.inst-article-updated time {
    font-weight: 500;
}

/* Article Typography */
.inst-article-eyebrow-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.inst-article-type-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: var(--inst-navy-800);
    color: var(--inst-white);
    font-family: var(--inst-font-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border-radius: 4px;
}

.inst-article-category {
    font-family: var(--inst-font-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--inst-blue-600);
}

.inst-article-eyebrow {
    font-family: var(--inst-font-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--inst-blue-600);
    margin-bottom: 16px;
}

.inst-article-title {
    font-family: var(--inst-font-serif);
    font-size: clamp(28px, 3.5vw, 38px);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--inst-black);
    margin: 0 0 20px 0;
}

.inst-article-subtitle {
    font-family: var(--inst-font-serif);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--inst-gray-600);
    margin: 0 0 24px 0;
}

.inst-article-byline {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 24px;
    margin-bottom: 32px;
    border-bottom: 1px solid var(--inst-gray-200);
}

.inst-article-author-avatar {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

.inst-article-author-info {
    flex: 1;
}

.inst-article-author-name {
    font-size: 14px;
    font-weight: 500;
    color: var(--inst-gray-900);
}

.inst-article-meta-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--inst-gray-500);
    margin-top: 2px;
}

.inst-article-meta-dot {
    width: 3px;
    height: 3px;
    background: var(--inst-gray-400);
    border-radius: 50%;
}

/* LinkedIn Follow Link */
.inst-article-linkedin {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--inst-gray-500);
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    padding: 3px 8px;
    border-radius: 4px;
    transition: all 0.15s ease;
}

.inst-article-linkedin:hover {
    color: #0a66c2;
    background: rgba(10, 102, 194, 0.08);
}

.inst-article-linkedin svg {
    flex-shrink: 0;
}

/* Article Body */
.inst-article-body {
    font-family: var(--inst-font-serif);
    font-size: 18px;
    line-height: 1.8;
    color: var(--inst-gray-800);
}

.inst-article-body p {
    margin: 0 0 1.5em 0;
}

.inst-article-body h2 {
    font-family: var(--inst-font-sans);
    font-size: 22px;
    font-weight: 600;
    color: var(--inst-black);
    margin: 2.5em 0 0.75em 0;
    letter-spacing: -0.01em;
}

.inst-article-body h3 {
    font-family: var(--inst-font-sans);
    font-size: 18px;
    font-weight: 600;
    color: var(--inst-gray-900);
    margin: 2em 0 0.5em 0;
}

.inst-article-body blockquote {
    margin: 1.5em 0;
    padding: 20px 24px;
    background: var(--inst-cream-100);
    border-left: 3px solid var(--inst-navy-800);
    font-style: italic;
    color: var(--inst-gray-700);
}

.inst-article-body ul,
.inst-article-body ol {
    margin: 1em 0 1.5em 0;
    padding-left: 1.5em;
}

.inst-article-body li {
    margin-bottom: 0.5em;
}

.inst-article-body a {
    color: var(--inst-blue-600);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.inst-article-body strong {
    font-weight: 600;
    color: var(--inst-gray-900);
}

/* ============================================
   DYNAMIC SECTIONS (Fact + Context Model)
   ============================================ */

.inst-section {
    margin-bottom: 2.5em;
    padding-bottom: 2em;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.inst-section-title {
    font-family: var(--inst-font-sans);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--inst-navy-800);
    margin: 0 0 1em 0;
    padding-bottom: 0.75em;
    border-bottom: 2px solid var(--inst-navy-800);
    display: inline-block;
}

.inst-section-content {
    font-family: var(--inst-font-serif);
    font-size: 18px;
    line-height: 1.8;
    color: var(--inst-gray-800);
}

.inst-section-content p {
    margin: 0 0 1.25em 0;
}

.inst-section-content p:last-child {
    margin-bottom: 0;
}

.inst-section-content ul,
.inst-section-content ol {
    margin: 1em 0;
    padding-left: 1.5em;
}

.inst-section-content li {
    margin-bottom: 0.5em;
}

/* Section Type Variations */
.inst-section-fact {
    background: var(--inst-cream-50);
    margin-left: -24px;
    margin-right: -24px;
    padding: 24px;
    border-radius: 0;
    border-bottom: none;
    margin-bottom: 2em;
}

.inst-section-fact .inst-section-title {
    color: var(--inst-navy-900);
    border-bottom-color: var(--inst-blue-600);
}

.inst-section-research {
    position: relative;
}

.inst-section-research .inst-section-title {
    color: var(--inst-gray-600);
    border-bottom-color: var(--inst-gray-300);
}

.inst-section-analysis {
    position: relative;
}

.inst-section-analysis .inst-section-title {
    color: var(--inst-blue-700);
    border-bottom-color: var(--inst-blue-500);
}

.inst-section-analysis .inst-section-title::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    background: var(--inst-blue-500);
    border-radius: 50%;
    margin-right: 10px;
    vertical-align: middle;
}

/* Key Takeaways */
.inst-takeaways {
    margin: 32px 0;
    padding: 24px;
    background: var(--inst-navy-900);
    border-radius: 8px;
}

.inst-takeaways-label {
    font-family: var(--inst-font-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--inst-gray-400);
    margin: 0 0 16px 0;
}

.inst-takeaways-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.inst-takeaways-list li {
    position: relative;
    padding-left: 18px;
    margin-bottom: 12px;
    font-family: var(--inst-font-sans);
    font-size: 14px;
    line-height: 1.5;
    color: var(--inst-gray-200);
}

.inst-takeaways-list li:last-child {
    margin-bottom: 0;
}

.inst-takeaways-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    width: 6px;
    height: 6px;
    background: var(--inst-blue-500);
    border-radius: 50%;
}

/* ============================================
   EXECUTIVE SUMMARY (Investment Research Format)
   ============================================ */

.inst-executive-summary {
    margin: 32px 0;
    padding: 28px;
    background: linear-gradient(135deg, var(--inst-navy-900) 0%, var(--inst-navy-800) 100%);
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(10, 22, 40, 0.15);
}

.inst-exec-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.inst-exec-title {
    font-family: var(--inst-font-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--inst-gray-300);
    margin: 0;
}

.inst-exec-methodology {
    font-family: var(--inst-font-sans);
    font-size: 10px;
    font-weight: 500;
    color: var(--inst-blue-400);
    padding: 4px 10px;
    background: rgba(59, 130, 246, 0.15);
    border-radius: 12px;
    letter-spacing: 0.02em;
}

.inst-exec-thesis {
    font-family: var(--inst-font-serif);
    font-size: 17px;
    line-height: 1.65;
    color: var(--inst-gray-100);
    margin: 0 0 24px 0;
}

.inst-exec-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 16px;
}

.inst-exec-metric {
    display: flex;
    flex-direction: column;
    padding: 16px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.inst-exec-metric-value {
    font-family: var(--inst-font-sans);
    font-size: 24px;
    font-weight: 700;
    color: var(--inst-white);
    letter-spacing: -0.02em;
    margin-bottom: 4px;
}

.inst-exec-metric-label {
    font-family: var(--inst-font-sans);
    font-size: 11px;
    font-weight: 500;
    color: var(--inst-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.inst-exec-metric-context {
    font-family: var(--inst-font-sans);
    font-size: 11px;
    color: var(--inst-blue-400);
    margin-top: 6px;
}

/* ============================================
   ENHANCED KEY TAKEAWAYS
   ============================================ */

.inst-takeaways-enhanced {
    margin: 28px 0;
    padding: 0;
}

.inst-takeaways-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--inst-navy-800);
}

.inst-takeaways-enhanced .inst-takeaways-label {
    font-family: var(--inst-font-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--inst-navy-800);
    margin: 0;
}

.inst-takeaways-count {
    font-family: var(--inst-font-sans);
    font-size: 10px;
    font-weight: 500;
    color: var(--inst-gray-500);
    padding: 3px 8px;
    background: var(--inst-gray-100);
    border-radius: 10px;
}

.inst-takeaways-enhanced .inst-takeaways-list {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: takeaway;
}

.inst-takeaway-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-takeaway-item:last-child {
    border-bottom: none;
}

.inst-takeaway-number {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--inst-navy-900);
    color: var(--inst-white);
    font-family: var(--inst-font-sans);
    font-size: 11px;
    font-weight: 600;
    border-radius: 50%;
}

.inst-takeaway-text {
    font-family: var(--inst-font-serif);
    font-size: 16px;
    line-height: 1.6;
    color: var(--inst-gray-800);
}

/* ============================================
   CHART NARRATIVE (Right Panel)
   ============================================ */

.inst-chart-narrative {
    margin-top: 16px;
    padding: 18px;
    background: var(--inst-cream-100);
    border-radius: 8px;
    border-left: 3px solid var(--inst-blue-600);
}

.inst-chart-narrative-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--inst-gray-200);
}

.inst-chart-narrative-header svg {
    width: 16px;
    height: 16px;
    color: var(--inst-blue-600);
    flex-shrink: 0;
}

.inst-chart-narrative-header span {
    font-family: var(--inst-font-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--inst-gray-600);
}

.inst-chart-narrative-points {
    list-style: none;
    margin: 0;
    padding: 0;
}

.inst-chart-narrative-points li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 10px;
    font-family: var(--inst-font-sans);
    font-size: 13px;
    line-height: 1.55;
    color: var(--inst-gray-700);
}

.inst-chart-narrative-points li:last-child {
    margin-bottom: 0;
}

.inst-chart-narrative-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 7px;
    width: 8px;
    height: 8px;
    background: var(--inst-blue-500);
    border-radius: 2px;
}

.inst-chart-narrative-points li:nth-child(2)::before {
    background: var(--inst-green-500);
}

.inst-chart-narrative-points li:nth-child(3)::before {
    background: var(--inst-amber-muted);
}

.inst-chart-narrative-points li:nth-child(4)::before {
    background: var(--inst-gray-500);
}

/* ============================================
   SENNA CHAT BAR (Centered in Article Panel)
   ============================================ */

.inst-chatbox {
    position: fixed;
    bottom: 24px;
    /* Center within the article panel: sidebar + half of article panel width */
    left: calc(var(--inst-sidebar-width) + 32px);
    right: calc(45% + 32px); /* 45% for charts panel + margin */
    width: auto;
    max-width: 520px;
    min-width: 320px;
    margin: 0 auto;
    background: var(--inst-white);
    border-radius: 24px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.12), 0 0 0 1px rgba(0,0,0,0.05);
    z-index: 200;
    overflow: hidden;
    transition: all 0.25s ease;
}

/* Collapsed state (default) - support both is-expanded and is-open */
.inst-chatbox:not(.is-expanded):not(.is-open) .inst-chatbox-body {
    display: none;
}

/* Expanded state - support both is-expanded and is-open */
.inst-chatbox.is-expanded,
.inst-chatbox.is-open {
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.05);
    max-height: 60vh;
}

.inst-chatbox.is-expanded .inst-chatbox-body,
.inst-chatbox.is-open .inst-chatbox-body {
    display: block;
}

/* Response area styling */
.inst-chatbox-response {
    padding: 14px 16px;
    margin: 12px 12px 0 12px;
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-200);
    border-radius: 12px;
    font-family: var(--inst-font-sans);
    font-size: 14px;
    line-height: 1.65;
    color: var(--inst-gray-800);
    max-height: 180px;
    overflow-y: auto;
}

.inst-chatbox-response p {
    margin: 0 0 0.75em 0;
}

.inst-chatbox-response p:last-child {
    margin-bottom: 0;
}

.inst-chatbox-response strong {
    color: var(--inst-navy-800);
    font-weight: 600;
}

/* Header / Toggle Bar */
.inst-chatbox-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    background: var(--inst-white);
    cursor: pointer;
    transition: background 0.15s ease;
    user-select: none;
}

.inst-chatbox-header:hover {
    background: var(--inst-cream-50);
}

.inst-chatbox-icon {
    width: 20px;
    height: 20px;
    color: var(--inst-navy-800);
    flex-shrink: 0;
}

.inst-chatbox-title {
    font-size: 13px;
    font-weight: 500;
    color: var(--inst-gray-700);
}

.inst-chatbox-hint {
    flex: 1;
    font-size: 12px;
    color: var(--inst-gray-400);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.inst-chatbox-badge {
    font-size: 9px;
    font-weight: 600;
    padding: 2px 6px;
    background: var(--inst-green-500);
    color: var(--inst-white);
    border-radius: 8px;
    letter-spacing: 0.02em;
}

.inst-chatbox-toggle {
    width: 20px;
    height: 20px;
    color: var(--inst-gray-400);
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.inst-chatbox.is-expanded .inst-chatbox-toggle,
.inst-chatbox.is-open .inst-chatbox-toggle {
    transform: rotate(180deg);
}

/* Expandable Body */
.inst-chatbox-body {
    border-top: 1px solid var(--inst-gray-100);
    padding: 12px;
    background: var(--inst-cream-50);
}

.inst-chatbox-prompts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.inst-chatbox-prompt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-200);
    border-radius: 16px;
    font-size: 12px;
    color: var(--inst-gray-600);
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.inst-chatbox-prompt:hover {
    background: var(--inst-white);
    border-color: var(--inst-blue-500);
    color: var(--inst-blue-600);
}

.inst-chatbox-prompt svg {
    width: 14px;
    height: 14px;
    color: var(--inst-blue-500);
    flex-shrink: 0;
}

.inst-chatbox-input-wrap {
    display: flex;
    gap: 8px;
}

.inst-chatbox-input {
    flex: 1;
    padding: 10px 14px;
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-200);
    border-radius: 20px;
    font-family: var(--inst-font-sans);
    font-size: 13px;
    color: var(--inst-gray-900);
    outline: none;
    transition: all 0.15s ease;
}

.inst-chatbox-input::placeholder {
    color: var(--inst-gray-400);
}

.inst-chatbox-input:focus {
    border-color: var(--inst-blue-500);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
}

.inst-chatbox-send {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--inst-navy-800);
    border: none;
    border-radius: 50%;
    color: var(--inst-white);
    cursor: pointer;
    transition: background 0.15s ease;
    flex-shrink: 0;
}

.inst-chatbox-send:hover {
    background: var(--inst-blue-600);
}

.inst-chatbox-send svg {
    width: 16px;
    height: 16px;
}

/* ============================================
   RESIZE HANDLE
   ============================================ */

.inst-resize-handle {
    flex: 0 0 8px;
    height: 100%;
    background: var(--inst-cream-200);
    cursor: col-resize;
    position: relative;
    transition: background 0.15s ease;
    z-index: 60;
}

.inst-resize-handle:hover,
.inst-resize-handle.is-dragging {
    background: var(--inst-blue-500);
}

.inst-resize-handle::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 4px;
    height: 48px;
    background: var(--inst-gray-300);
    border-radius: 2px;
    transition: background 0.15s ease;
}

.inst-resize-handle:hover::before,
.inst-resize-handle.is-dragging::before {
    background: var(--inst-white);
}

/* ============================================
   CHARTS PANEL (Right)
   ============================================ */

.inst-charts-panel {
    flex: 1 1 45%;
    min-width: 380px;
    max-width: 55%;
    height: 100%;
    background: var(--inst-cream-100);
    overflow-y: auto;
    overflow-x: hidden;
    padding: 32px;
}

.inst-charts-inner {
    max-width: 560px;
    margin: 0 auto;
}

/* Charts Header */
.inst-charts-header {
    margin-bottom: 32px;
}

.inst-charts-title {
    font-family: var(--inst-font-serif);
    font-size: 26px;
    font-weight: 400;
    color: var(--inst-black);
    margin: 0 0 8px 0;
    letter-spacing: -0.01em;
}

.inst-charts-subtitle {
    font-size: 14px;
    color: var(--inst-gray-600);
    margin: 0 0 4px 0;
}

.inst-charts-meta {
    font-size: 12px;
    color: var(--inst-gray-400);
}

.inst-charts-divider {
    height: 1px;
    background: var(--inst-gray-300);
    margin: 24px 0;
}

/* Key Metrics Grid */
.inst-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 40px;
}

.inst-metric {
    text-align: center;
}

.inst-metric-value {
    font-family: var(--inst-font-sans);
    font-size: 32px;
    font-weight: 300;
    color: var(--inst-black);
    line-height: 1;
    margin-bottom: 6px;
}

.inst-metric-label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--inst-gray-500);
    margin-bottom: 2px;
}

.inst-metric-sub {
    font-size: 10px;
    color: var(--inst-gray-400);
}

/* Chart Card */
.inst-chart-card {
    background: var(--inst-white);
    border-radius: 8px;
    margin-bottom: 24px;
    overflow: hidden;
}

.inst-chart-card-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-chart-card-title {
    font-family: var(--inst-font-sans);
    font-size: 15px;
    font-weight: 500;
    color: var(--inst-black);
    margin: 0 0 4px 0;
}

.inst-chart-card-subtitle {
    font-size: 12px;
    color: var(--inst-gray-500);
    margin: 0;
}

.inst-chart-card-body {
    padding: 20px;
}

.inst-chart-card-footer {
    padding: 10px 20px;
    background: var(--inst-gray-100);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.inst-chart-source {
    font-size: 10px;
    color: var(--inst-gray-400);
}

/* Chart Card Commentary */
.inst-chart-card-commentary {
    padding: 12px 20px 16px;
    background: linear-gradient(to bottom, var(--inst-gray-50), var(--inst-white));
    border-top: 1px solid var(--inst-gray-200);
}

.inst-chart-card-commentary p {
    margin: 0;
    font-size: 12px;
    line-height: 1.6;
    color: var(--inst-gray-600);
    font-style: italic;
}

/* Charts Header Row with PDF Button */
.inst-charts-header-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.inst-charts-header-text {
    flex: 1;
}

/* PDF Download Button */
.inst-pdf-download-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-300);
    border-radius: 6px;
    color: var(--inst-gray-600);
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.inst-pdf-download-btn:hover {
    background: var(--inst-gray-50);
    border-color: var(--inst-gray-400);
    color: var(--inst-gray-800);
}

.inst-pdf-download-btn svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

/* Excel Download Button */
.inst-excel-download-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-300);
    border-radius: 4px;
    color: var(--inst-gray-600);
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.inst-excel-download-btn:hover {
    background: #217346;
    border-color: #217346;
    color: var(--inst-white);
}

.inst-excel-download-btn svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.inst-excel-download-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Spreadsheet header layout */
.inst-spreadsheet-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Print Styles for PDF */
@media print {
    .inst-terminal {
        display: block !important;
    }

    .inst-sidebar,
    .inst-chatbox,
    .inst-subscribe-bar,
    .inst-resize-handle,
    .inst-view-toggle-container,
    .inst-pdf-download-btn,
    .inst-premium-gate-overlay {
        display: none !important;
    }

    .inst-main {
        display: block !important;
        grid-template-columns: 1fr !important;
    }

    .inst-article-panel,
    .inst-charts-panel {
        width: 100% !important;
        max-width: 100% !important;
        page-break-inside: avoid;
    }

    .inst-charts-panel {
        margin-top: 40px;
        border-top: 2px solid var(--inst-gray-300);
        padding-top: 20px;
    }

    .inst-chart-card {
        page-break-inside: avoid;
        margin-bottom: 20px;
    }

    .inst-premium-gate-blur {
        filter: none !important;
    }

    .inst-data-view {
        display: block !important;
        margin-top: 40px;
        border-top: 2px solid var(--inst-gray-300);
        padding-top: 20px;
    }

    .inst-report-view {
        display: block !important;
    }

    /* Executive Summary print styles */
    .inst-executive-summary {
        background: #f8f9fa !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        page-break-inside: avoid;
    }

    .inst-exec-header,
    .inst-exec-title,
    .inst-exec-methodology {
        color: #1a3a5c !important;
    }

    .inst-exec-thesis {
        color: #27272a !important;
    }

    .inst-exec-metric {
        background: #ffffff !important;
        border: 1px solid #e4e4e7 !important;
    }

    .inst-exec-metric-value {
        color: #0a1628 !important;
    }

    .inst-exec-metric-label,
    .inst-exec-metric-context {
        color: #52525b !important;
    }

    /* Enhanced takeaways print styles */
    .inst-takeaways-enhanced {
        page-break-inside: avoid;
    }

    .inst-takeaway-number {
        background: #0a1628 !important;
        color: #ffffff !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Chart narrative print styles */
    .inst-chart-narrative {
        background: #f4f4f5 !important;
        border-left: 3px solid #2563eb !important;
        page-break-inside: avoid;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .inst-chart-narrative-points li::before {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* Scenario Line Chart */
.inst-scenario-line-chart {
    width: 100%;
}

.inst-scenario-line-chart svg {
    width: 100%;
    height: auto;
    display: block;
    overflow: visible;
}

/* Interactive data points */
.inst-scenario-point {
    cursor: pointer;
}

.inst-scenario-hit-area {
    cursor: pointer;
}

.inst-scenario-dot {
    transition: r 0.15s ease, filter 0.15s ease;
}

.inst-scenario-point:hover .inst-scenario-dot {
    r: 7;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

/* Tooltips - hidden by default */
.inst-scenario-tooltip {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    pointer-events: none;
}

.inst-scenario-point:hover .inst-scenario-tooltip {
    opacity: 1;
    visibility: visible;
}

/* Tooltip text styling */
.inst-scenario-tooltip text {
    font-family: var(--inst-font-sans);
}

.inst-scenario-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 16px;
    padding: 0 10px;
}

.inst-scenario-label-item {
    text-align: center;
    flex: 1;
}

.inst-scenario-label-name {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--inst-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.inst-scenario-label-irr {
    display: block;
    font-size: 22px;
    font-weight: 300;
    line-height: 1.2;
}

.inst-scenario-label-downside .inst-scenario-label-irr {
    color: var(--inst-red-muted);
}

.inst-scenario-label-base .inst-scenario-label-irr {
    color: var(--inst-blue-600);
}

.inst-scenario-label-upside .inst-scenario-label-irr {
    color: var(--inst-green-muted);
}

.inst-scenario-label-moic {
    display: block;
    font-size: 11px;
    color: var(--inst-gray-400);
    margin-top: 2px;
}

.inst-chart-note {
    font-size: 11px;
    font-weight: 500;
    color: var(--inst-gray-600);
}

/* ============================================
   LINE CHART
   ============================================ */

.inst-line-chart {
    position: relative;
    height: 220px;
}

.inst-line-chart svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.inst-line-grid {
    stroke: var(--inst-gray-200);
    stroke-width: 1;
}

.inst-line-path {
    fill: none;
    stroke: var(--inst-blue-600);
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.inst-line-area {
    fill: url(#lineGradient);
}

.inst-line-dot {
    fill: var(--inst-white);
    stroke: var(--inst-blue-600);
    stroke-width: 2;
}

.inst-line-dot-highlight {
    fill: var(--inst-blue-600);
}

.inst-line-label {
    font-family: var(--inst-font-sans);
    font-size: 11px;
    fill: var(--inst-gray-500);
}

.inst-line-value-label {
    font-family: var(--inst-font-sans);
    font-size: 12px;
    font-weight: 500;
    fill: var(--inst-blue-600);
}

.inst-line-annotation {
    font-family: var(--inst-font-sans);
    font-size: 10px;
    fill: var(--inst-gray-400);
}

/* ============================================
   BAR CHART - Horizontal
   ============================================ */

.inst-bar-chart {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.inst-bar-row {
    display: grid;
    grid-template-columns: 110px 1fr 55px;
    align-items: center;
    gap: 12px;
}

.inst-bar-label {
    font-family: var(--inst-font-sans);
    font-size: 13px;
    color: var(--inst-gray-700);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.inst-bar-track {
    height: 20px;
    background: var(--inst-gray-100);
    border-radius: 4px;
    overflow: hidden;
}

.inst-bar-fill {
    height: 100%;
    background: var(--inst-gray-400);
    border-radius: 4px;
    transition: width 0.6s ease;
}

.inst-bar-fill.is-primary {
    background: var(--inst-navy-800);
}

.inst-bar-fill.is-highlight {
    background: var(--inst-blue-600);
}

.inst-bar-value {
    font-family: var(--inst-font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--inst-black);
    text-align: right;
}

/* ============================================
   DONUT CHART
   ============================================ */

.inst-donut-chart {
    display: flex;
    align-items: center;
    gap: 32px;
}

.inst-donut-visual {
    position: relative;
    width: 140px;
    height: 140px;
    flex-shrink: 0;
}

.inst-donut-visual svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.inst-donut-segment {
    fill: none;
    stroke-width: 24;
    transition: stroke-dashoffset 0.6s ease;
}

.inst-donut-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.inst-donut-center-value {
    font-family: var(--inst-font-sans);
    font-size: 26px;
    font-weight: 300;
    color: var(--inst-black);
    line-height: 1;
}

.inst-donut-center-label {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--inst-gray-500);
    margin-top: 4px;
}

.inst-donut-legend {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.inst-legend-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.inst-legend-color {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    flex-shrink: 0;
}

.inst-legend-label {
    font-size: 13px;
    color: var(--inst-gray-700);
    flex: 1;
}

.inst-legend-value {
    font-size: 13px;
    font-weight: 500;
    color: var(--inst-black);
}

/* Chart Colors */
.inst-color-navy { background: var(--inst-navy-800); }
.inst-color-blue { background: var(--inst-blue-600); }
.inst-color-blue-light { background: var(--inst-blue-400); }
.inst-color-gray { background: var(--inst-gray-400); }
.inst-color-gray-light { background: var(--inst-gray-300); }

.inst-stroke-navy { stroke: var(--inst-navy-800); }
.inst-stroke-blue { stroke: var(--inst-blue-600); }
.inst-stroke-blue-light { stroke: var(--inst-blue-400); }
.inst-stroke-gray { stroke: var(--inst-gray-400); }
.inst-stroke-gray-light { stroke: var(--inst-gray-300); }

/* ============================================
   KEY INSIGHTS BOX
   ============================================ */

.inst-insights-box {
    border: 1px solid var(--inst-gray-200);
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 24px;
}

.inst-insights-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--inst-gray-900);
    margin: 0 0 16px 0;
}

.inst-insights-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.inst-insight-item {
    padding-bottom: 12px;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-insight-value {
    font-size: 22px;
    font-weight: 300;
    color: var(--inst-black);
    margin-bottom: 2px;
}

.inst-insight-label {
    font-size: 12px;
    color: var(--inst-gray-600);
}

.inst-insight-sub {
    font-size: 11px;
    color: var(--inst-gray-400);
    margin-top: 2px;
}

/* ============================================
   PREMIUM GATE
   ============================================ */

.inst-premium-gate {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 24px;
}

.inst-premium-gate-blur {
    filter: blur(5px);
    opacity: 0.7;
    pointer-events: none;
    user-select: none;
}

.inst-premium-gate-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(250,248,245,0) 0%, rgba(250,248,245,0.95) 60%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 32px 24px;
    text-align: center;
}

.inst-premium-lock {
    width: 40px;
    height: 40px;
    color: var(--inst-navy-800);
    margin-bottom: 12px;
}

.inst-premium-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--inst-black);
    margin: 0 0 6px 0;
}

.inst-premium-text {
    font-size: 13px;
    color: var(--inst-gray-600);
    margin: 0 0 16px 0;
}

.inst-premium-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: var(--inst-navy-900);
    color: var(--inst-white);
    font-size: 13px;
    font-weight: 500;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s ease;
}

.inst-premium-btn:hover {
    background: var(--inst-navy-800);
}

/* ============================================
   SCROLLBAR
   ============================================ */

.inst-article-content::-webkit-scrollbar,
.inst-charts-panel::-webkit-scrollbar {
    width: 6px;
}

.inst-article-content::-webkit-scrollbar-track,
.inst-charts-panel::-webkit-scrollbar-track {
    background: transparent;
}

.inst-article-content::-webkit-scrollbar-thumb,
.inst-charts-panel::-webkit-scrollbar-thumb {
    background: var(--inst-gray-300);
    border-radius: 3px;
}

.inst-article-content::-webkit-scrollbar-thumb:hover,
.inst-charts-panel::-webkit-scrollbar-thumb:hover {
    background: var(--inst-gray-400);
}

/* ============================================
   MOBILE RESPONSIVE
   ============================================ */

@media (max-width: 1024px) {
    /* Remove fixed positioning on tablet/mobile */
    .inst-terminal {
        position: relative;
        height: auto;
        min-height: 100vh;
        width: 100%;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto;
        overflow-x: hidden;
        overflow-y: visible;
    }

    .inst-sidebar {
        display: none;
    }

    .inst-main {
        margin-left: 0;
        flex-direction: column;
        flex-wrap: nowrap;
        height: auto;
        min-height: auto;
        overflow: visible;
    }

    /* Subscribe bar mobile */
    .inst-subscribe-bar-content {
        flex-wrap: wrap;
        gap: 10px;
        padding: 12px 16px;
    }

    .inst-subscribe-bar-text {
        flex: 1 1 100%;
        order: 1;
        white-space: normal;
        font-size: 12px;
    }

    .inst-subscribe-bar-icon {
        order: 0;
        position: absolute;
        display: none;
    }

    .inst-subscribe-bar-form {
        order: 2;
        flex: 1;
        margin-left: 0;
    }

    .inst-subscribe-bar-input {
        flex: 1;
        width: auto;
        min-width: 0;
    }

    .inst-subscribe-bar-close {
        order: 3;
        position: absolute;
        top: 8px;
        right: 8px;
    }

    .inst-subscribe-bar {
        position: relative;
        flex: 0 0 auto;
        width: 100%;
        height: auto;
    }

    .inst-article-panel {
        max-width: 100%;
        min-width: 100%;
        width: 100%;
        height: auto;
        min-height: auto;
        overflow: visible;
        flex: 1 1 auto;
    }

    .inst-article-content {
        padding-bottom: 100px; /* Space for floating chatbox */
        overflow: visible;
    }

    .inst-resize-handle {
        display: none;
    }

    .inst-charts-panel {
        display: block !important;
        flex: 1 1 auto;
        max-width: 100%;
        min-width: 100%;
        width: 100%;
        height: auto;
        min-height: auto;
        border-top: 1px solid var(--inst-gray-200);
        overflow: visible;
        padding: 24px 16px;
    }

    .inst-charts-inner {
        max-width: 100%;
        width: 100%;
    }

    /* Fixed chatbox at bottom of viewport on mobile */
    .inst-chatbox {
        left: 12px;
        right: 12px;
        bottom: 12px;
        width: auto;
        max-width: calc(100% - 24px);
        min-width: auto;
        margin: 0;
        border-radius: 20px;
        box-shadow: 0 4px 24px rgba(0,0,0,0.15);
    }

    .inst-chatbox:not(.is-expanded) {
        border-radius: 20px;
    }

    .inst-chatbox.is-expanded {
        border-radius: 16px;
        max-height: 70vh;
    }

    .inst-metrics {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Article header adjustments */
    .inst-article-header {
        position: sticky;
        top: 0;
        padding: 0 16px;
        height: auto;
        min-height: var(--inst-header-height);
    }
}

@media (max-width: 640px) {
    .inst-article-content {
        padding: 20px;
        padding-bottom: 100px;
    }

    .inst-charts-panel {
        display: block !important;
        padding: 20px;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .inst-charts-inner,
    .inst-dashboard-header,
    .inst-dashboard-card,
    .inst-dashboard-download {
        display: block;
        visibility: visible;
    }

    .inst-metrics {
        display: grid;
        visibility: visible;
    }

    .inst-article-title {
        font-size: 24px;
    }

    .inst-article-subtitle {
        font-size: 16px;
    }

    .inst-article-body {
        font-size: 16px;
        line-height: 1.7;
    }

    .inst-metrics {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .inst-metric-value {
        font-size: 24px;
    }

    .inst-donut-chart {
        flex-direction: column;
        gap: 20px;
    }

    .inst-donut-visual {
        width: 120px;
        height: 120px;
        margin: 0 auto;
    }

    .inst-bar-row {
        grid-template-columns: 90px 1fr 50px;
        gap: 8px;
    }

    .inst-bar-label {
        font-size: 12px;
    }

    .inst-charts-title {
        font-size: 22px;
    }

    /* Chatbox mobile tweaks */
    .inst-chatbox-prompts {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        -webkit-overflow-scrolling: touch;
    }

    .inst-chatbox-prompt {
        flex-shrink: 0;
    }

    .inst-chatbox-hint {
        display: none;
    }
}

/* Safe area for devices with notches */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
    @media (max-width: 1024px) {
        .inst-chatbox {
            padding-bottom: env(safe-area-inset-bottom);
        }

        .inst-article-content {
            padding-bottom: calc(100px + env(safe-area-inset-bottom));
        }
    }
}

/* ============================================
   ANIMATIONS
   ============================================ */

@keyframes instFadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.inst-animate-in {
    animation: instFadeIn 0.4s ease forwards;
}

.inst-chart-card {
    animation: instFadeIn 0.4s ease forwards;
}

.inst-chart-card:nth-child(2) { animation-delay: 0.1s; }
.inst-chart-card:nth-child(3) { animation-delay: 0.2s; }
.inst-chart-card:nth-child(4) { animation-delay: 0.3s; }

/* ============================================
   IC MEMO LAYOUT - Investment Committee Format
   ============================================ */

/* Investment Memo Badge */
.inst-memo-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, var(--inst-navy-900) 0%, var(--inst-navy-700) 100%);
    color: var(--inst-white);
    padding: 10px 18px;
    border-radius: 6px;
    margin-bottom: 24px;
    font-family: var(--inst-font-sans);
    box-shadow: 0 2px 8px rgba(19, 45, 81, 0.15);
}

.inst-memo-badge-icon {
    width: 18px;
    height: 18px;
    opacity: 0.9;
}

.inst-memo-badge-text {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.inst-memo-badge-date {
    font-size: 11px;
    font-weight: 500;
    opacity: 0.8;
    padding-left: 10px;
    border-left: 1px solid rgba(255, 255, 255, 0.3);
}

/* Memo Sections */
.inst-memo-section {
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--inst-gray-200);
}

.inst-memo-section:last-of-type {
    border-bottom: none;
}

.inst-memo-section-title {
    font-family: var(--inst-font-sans);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--inst-navy-700);
    margin: 0 0 16px 0;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--inst-navy-700);
    display: inline-block;
}

.inst-memo-section-content {
    font-family: var(--inst-font-serif);
    font-size: 15px;
    line-height: 1.7;
    color: var(--inst-gray-800);
}

.inst-memo-section-content p {
    margin: 0 0 12px 0;
}

.inst-memo-section-content p:last-child {
    margin-bottom: 0;
}

.inst-memo-section-content strong {
    color: var(--inst-navy-800);
    font-weight: 600;
}

.inst-memo-thesis {
    font-style: italic;
    color: var(--inst-gray-600);
    border-left: 3px solid var(--inst-blue-500);
    padding-left: 16px;
    margin-top: 16px !important;
}

/* Memo List */
.inst-memo-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.inst-memo-list li {
    position: relative;
    padding: 12px 0 12px 28px;
    border-bottom: 1px solid var(--inst-gray-100);
    font-family: var(--inst-font-sans);
    font-size: 14px;
    line-height: 1.5;
    color: var(--inst-gray-700);
}

.inst-memo-list li:last-child {
    border-bottom: none;
}

.inst-memo-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 18px;
    width: 8px;
    height: 8px;
    background: var(--inst-blue-500);
    border-radius: 50%;
}

/* Memo Table */
.inst-memo-table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--inst-font-sans);
    font-size: 14px;
}

.inst-memo-table tr {
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-memo-table tr:last-child {
    border-bottom: none;
}

.inst-memo-table td {
    padding: 12px 8px;
    vertical-align: top;
}

.inst-memo-table-label {
    width: 35%;
    font-weight: 500;
    color: var(--inst-gray-600);
}

.inst-memo-table-value {
    width: 40%;
    font-weight: 600;
    color: var(--inst-navy-800);
}

.inst-memo-table-source {
    width: 25%;
    font-size: 11px;
    color: var(--inst-gray-500);
    font-style: italic;
    text-align: right;
}

/* Scenario Table */
.inst-memo-scenario-table {
    margin-top: 8px;
}

.inst-memo-scenario-table thead th {
    padding: 12px 8px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--inst-gray-500);
    text-align: left;
    border-bottom: 2px solid var(--inst-gray-200);
}

.inst-memo-scenario-table thead th:first-child {
    width: 25%;
}

.inst-scenario-row td {
    padding: 14px 8px;
}

.inst-scenario-label {
    font-weight: 600;
}

.inst-scenario-row.inst-scenario-base {
    background: rgba(37, 99, 235, 0.05);
}

.inst-scenario-row.inst-scenario-base .inst-scenario-label {
    color: var(--inst-blue-600);
}

.inst-scenario-row.inst-scenario-upside {
    background: rgba(16, 185, 129, 0.05);
}

.inst-scenario-row.inst-scenario-upside .inst-scenario-label {
    color: var(--inst-green-600);
}

.inst-scenario-row.inst-scenario-downside {
    background: rgba(154, 60, 60, 0.05);
}

.inst-scenario-row.inst-scenario-downside .inst-scenario-label {
    color: var(--inst-red-muted);
}

.inst-scenario-irr {
    font-weight: 700;
    font-size: 15px;
}

.inst-scenario-row.inst-scenario-base .inst-scenario-irr {
    color: var(--inst-blue-600);
}

.inst-scenario-row.inst-scenario-upside .inst-scenario-irr {
    color: var(--inst-green-600);
}

.inst-scenario-row.inst-scenario-downside .inst-scenario-irr {
    color: var(--inst-red-muted);
}

.inst-scenario-assumptions td {
    padding: 8px 8px 16px 8px;
    border-bottom: 1px solid var(--inst-gray-200);
}

.inst-scenario-assumption-text {
    font-size: 12px;
    font-style: italic;
    color: var(--inst-gray-500);
}

/* Risk Grid */
.inst-risk-grid {
    display: grid;
    gap: 16px;
}

.inst-risk-item {
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-200);
    border-radius: 8px;
    padding: 16px;
    border-left: 4px solid var(--inst-gray-400);
}

.inst-risk-item.inst-risk-high {
    border-left-color: var(--inst-red-muted);
    background: rgba(154, 60, 60, 0.02);
}

.inst-risk-item.inst-risk-medium {
    border-left-color: var(--inst-amber-muted);
    background: rgba(138, 109, 53, 0.02);
}

.inst-risk-item.inst-risk-low {
    border-left-color: var(--inst-green-muted);
    background: rgba(30, 107, 74, 0.02);
}

.inst-risk-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.inst-risk-category {
    font-family: var(--inst-font-sans);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--inst-gray-600);
}

.inst-risk-severity {
    font-family: var(--inst-font-sans);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 3px 8px;
    border-radius: 4px;
}

.inst-risk-severity-high {
    background: rgba(154, 60, 60, 0.1);
    color: var(--inst-red-muted);
}

.inst-risk-severity-medium {
    background: rgba(138, 109, 53, 0.1);
    color: var(--inst-amber-muted);
}

.inst-risk-severity-low {
    background: rgba(30, 107, 74, 0.1);
    color: var(--inst-green-muted);
}

.inst-risk-description {
    font-family: var(--inst-font-sans);
    font-size: 13px;
    line-height: 1.5;
    color: var(--inst-gray-700);
    margin: 0 0 8px 0;
}

.inst-risk-mitigation {
    font-family: var(--inst-font-sans);
    font-size: 12px;
    line-height: 1.4;
    color: var(--inst-gray-500);
    margin: 0;
}

.inst-risk-mitigation strong {
    color: var(--inst-gray-600);
}

/* Memo Subsections */
.inst-memo-subsection {
    margin-bottom: 24px;
}

.inst-memo-subsection:last-child {
    margin-bottom: 0;
}

.inst-memo-subsection-title {
    font-family: var(--inst-font-sans);
    font-size: 14px;
    font-weight: 600;
    color: var(--inst-navy-700);
    margin: 0 0 12px 0;
}

.inst-memo-subsection-content {
    font-family: var(--inst-font-serif);
    font-size: 15px;
    line-height: 1.7;
    color: var(--inst-gray-700);
}

.inst-memo-subsection-content p {
    margin: 0 0 12px 0;
}

/* Disclaimer */
.inst-memo-disclaimer {
    background: var(--inst-gray-100);
    border-radius: 8px;
    padding: 16px 20px;
    margin-top: 32px;
    font-family: var(--inst-font-sans);
}

.inst-memo-disclaimer p {
    margin: 0 0 8px 0;
    font-size: 12px;
    color: var(--inst-gray-600);
}

.inst-memo-disclaimer p:last-child {
    margin-bottom: 0;
}

.inst-memo-disclaimer strong {
    color: var(--inst-gray-700);
}

.inst-memo-disclaimer-text {
    font-size: 11px !important;
    color: var(--inst-gray-500) !important;
    font-style: italic;
}

/* Mobile Adjustments for Memo */
@media (max-width: 768px) {
    .inst-memo-header {
        margin: 0 -16px 24px -16px;
        padding: 20px;
        border-radius: 0;
    }

    .inst-memo-label {
        width: 50px;
        font-size: 10px;
    }

    .inst-memo-value {
        font-size: 13px;
    }

    .inst-memo-subject {
        font-size: 14px;
    }

    .inst-memo-section-title {
        font-size: 11px;
    }

    .inst-memo-section-content {
        font-size: 14px;
    }

    .inst-memo-table-label,
    .inst-memo-table-value {
        width: auto;
    }

    .inst-memo-table-source {
        display: none;
    }

    .inst-memo-scenario-table {
        font-size: 12px;
    }

    .inst-memo-scenario-table thead th {
        font-size: 10px;
        padding: 8px 4px;
    }

    .inst-scenario-row td {
        padding: 10px 4px;
    }

    .inst-risk-grid {
        gap: 12px;
    }

    .inst-risk-item {
        padding: 12px;
    }
}

/* ============================================
   DEAL DASHBOARD - Right Panel
   ============================================ */

/* Dashboard Header - Clean Style */
.inst-dashboard-header {
    padding: 0 0 20px 0;
}

.inst-dashboard-title {
    font-family: var(--inst-font-serif);
    font-size: 22px;
    font-weight: 400;
    color: var(--inst-gray-900);
    margin: 0 0 4px 0;
    letter-spacing: -0.01em;
}

.inst-dashboard-subtitle {
    font-size: 13px;
    color: var(--inst-gray-500);
    margin: 0;
}

.inst-dashboard-meta {
    font-size: 11px;
    color: var(--inst-gray-400);
    margin: 4px 0 0 0;
}

/* Deal Metrics Grid - Clean Style */
.inst-deal-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

.inst-deal-metric {
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-200);
    border-radius: 8px;
    padding: 14px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.inst-deal-metric-positive {
    border-color: rgba(30, 107, 74, 0.25);
    background: rgba(30, 107, 74, 0.03);
}

.inst-deal-metric-negative {
    border-color: rgba(154, 60, 60, 0.25);
    background: rgba(154, 60, 60, 0.03);
}

.inst-deal-metric-icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--inst-gray-100);
    border-radius: 6px;
    color: var(--inst-navy-700);
}

.inst-deal-metric-icon svg {
    width: 18px;
    height: 18px;
}

.inst-deal-metric-positive .inst-deal-metric-icon {
    background: rgba(30, 107, 74, 0.1);
    color: #1e6b4a;
}

.inst-deal-metric-negative .inst-deal-metric-icon {
    background: rgba(154, 60, 60, 0.1);
    color: #9a3c3c;
}

.inst-deal-metric-content {
    flex: 1;
    min-width: 0;
}

.inst-deal-metric-value {
    font-size: 18px;
    font-weight: 700;
    color: var(--inst-gray-900);
    line-height: 1.2;
}

.inst-deal-metric-positive .inst-deal-metric-value {
    color: #1e6b4a;
}

.inst-deal-metric-negative .inst-deal-metric-value {
    color: #9a3c3c;
}

.inst-deal-metric-label {
    font-size: 11px;
    color: var(--inst-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-top: 2px;
}

.inst-deal-metric-sub {
    font-size: 10px;
    color: var(--inst-gray-400);
    margin-top: 2px;
}

/* Dashboard Cards - Clean Institutional Style */
.inst-dashboard-card {
    background: var(--inst-white);
    border-radius: 12px;
    margin-bottom: 20px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.inst-dashboard-card-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-dashboard-card-icon {
    width: 18px;
    height: 18px;
    color: var(--inst-blue-600);
    flex-shrink: 0;
    display: none;
}

.inst-dashboard-card-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--inst-gray-900);
    margin: 0;
}

.inst-dashboard-card-body {
    padding: 20px;
}

.inst-dashboard-card-footer {
    padding: 12px 20px;
    border-top: 1px solid var(--inst-gray-100);
    background: var(--inst-gray-50);
}

.inst-dashboard-card-source {
    font-size: 11px;
    color: var(--inst-gray-500);
}

/* Scenario Bars - Clean Style */
.inst-scenario-bars {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.inst-scenario-bar-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.inst-scenario-bar-label {
    width: 70px;
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-gray-700);
    flex-shrink: 0;
}

.inst-scenario-bar-track {
    flex: 1;
    height: 24px;
    background: var(--inst-gray-100);
    border-radius: 6px;
    overflow: hidden;
}

.inst-scenario-bar-fill {
    height: 100%;
    border-radius: 6px;
    transition: width 0.5s ease;
}

.inst-scenario-bar-downside {
    background: #9a3c3c;
}

.inst-scenario-bar-base {
    background: var(--inst-blue-600);
}

.inst-scenario-bar-upside {
    background: #1e6b4a;
}

.inst-scenario-bar-value {
    width: 50px;
    font-size: 14px;
    font-weight: 700;
    text-align: right;
    flex-shrink: 0;
}

.inst-scenario-bar-value-downside {
    color: #9a3c3c;
}

.inst-scenario-bar-value-base {
    color: var(--inst-blue-600);
}

.inst-scenario-bar-value-upside {
    color: #1e6b4a;
}

/* Scenario MOIC Row - Clean Style */
.inst-scenario-moic-row {
    display: flex;
    justify-content: space-between;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid var(--inst-gray-100);
}

.inst-scenario-moic {
    text-align: center;
    flex: 1;
}

.inst-scenario-moic-label {
    display: block;
    font-size: 10px;
    color: var(--inst-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.inst-scenario-moic-value {
    font-size: 16px;
    font-weight: 700;
}

.inst-scenario-moic-downside {
    color: #9a3c3c;
}

.inst-scenario-moic-base {
    color: var(--inst-blue-600);
}

.inst-scenario-moic-upside {
    color: #1e6b4a;
}

/* Risk Matrix - Clean Style */
.inst-risk-matrix {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.inst-risk-matrix-item {
    flex: 1;
    text-align: center;
    padding: 12px 8px;
    border-radius: 8px;
    background: var(--inst-gray-50);
}

.inst-risk-matrix-high {
    background: rgba(154, 60, 60, 0.08);
}

.inst-risk-matrix-medium {
    background: rgba(180, 130, 60, 0.08);
}

.inst-risk-matrix-low {
    background: rgba(30, 107, 74, 0.08);
}

.inst-risk-matrix-count {
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}

.inst-risk-matrix-high .inst-risk-matrix-count {
    color: #9a3c3c;
}

.inst-risk-matrix-medium .inst-risk-matrix-count {
    color: #8a6d35;
}

.inst-risk-matrix-low .inst-risk-matrix-count {
    color: #1e6b4a;
}

.inst-risk-matrix-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--inst-gray-500);
    margin-top: 4px;
}

/* Risk List Compact */
.inst-risk-list-compact {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.inst-risk-list-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    color: var(--inst-gray-600);
    line-height: 1.4;
}

.inst-risk-list-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 4px;
}

.inst-risk-dot-high {
    background: #9a3c3c;
}

.inst-risk-dot-medium {
    background: #8a6d35;
}

.inst-risk-dot-low {
    background: #1e6b4a;
}

.inst-risk-list-text {
    flex: 1;
}

/* Comparables - Clean Style */
.inst-comparable-stat {
    text-align: center;
    margin-bottom: 12px;
}

.inst-comparable-stat-value {
    font-size: 32px;
    font-weight: 700;
    color: var(--inst-blue-600);
    line-height: 1;
}

.inst-comparable-stat-label {
    font-size: 11px;
    color: var(--inst-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-top: 4px;
}

.inst-comparable-badge {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 12px;
}

.inst-comparable-badge-premium {
    background: rgba(154, 60, 60, 0.1);
    color: #9a3c3c;
}

.inst-comparable-badge-discount {
    background: rgba(30, 107, 74, 0.1);
    color: #1e6b4a;
}

.inst-comparable-badge-in-line {
    background: rgba(37, 99, 235, 0.1);
    color: var(--inst-blue-600);
}

.inst-comparable-rationale {
    font-size: 12px;
    color: var(--inst-gray-600);
    line-height: 1.5;
    margin: 0;
}

/* Summary Grid - Clean Style */
.inst-summary-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.inst-summary-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-summary-item:last-child {
    border-bottom: none;
}

.inst-summary-label {
    font-size: 12px;
    color: var(--inst-gray-500);
}

.inst-summary-value {
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-gray-900);
}

/* Dashboard Card Summary */
.inst-dashboard-card-summary {
    background: var(--inst-gray-50);
    border-color: var(--inst-gray-200);
}

.inst-dashboard-card-summary .inst-dashboard-card-header {
    background: var(--inst-gray-100);
}

/* Mobile Adjustments for Dashboard */
@media (max-width: 768px) {
    .inst-deal-metrics {
        grid-template-columns: 1fr;
    }

    .inst-deal-metric {
        padding: 12px;
    }

    .inst-deal-metric-value {
        font-size: 16px;
    }

    .inst-scenario-bar-label {
        width: 60px;
        font-size: 11px;
    }

    .inst-scenario-bar-value {
        width: 45px;
        font-size: 13px;
    }

    .inst-risk-matrix-count {
        font-size: 20px;
    }

    .inst-comparable-stat-value {
        font-size: 28px;
    }
}

/* ==========================================================================
   Excel Download Button
   ========================================================================== */

.inst-dashboard-download {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--inst-gray-200);
    text-align: center;
}

.inst-download-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    background: var(--inst-navy-800);
    color: var(--inst-white);
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}

.inst-download-btn:hover {
    background: var(--inst-navy-700);
}

.inst-download-btn:active {
    background: var(--inst-navy-900);
}

.inst-download-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.inst-download-icon {
    width: 20px;
    height: 20px;
    stroke-width: 2;
}

.inst-download-text {
    /* Default visible */
}

.inst-download-loading {
    display: none;
    align-items: center;
    gap: 8px;
}

.inst-download-btn.loading .inst-download-text {
    display: none;
}

.inst-download-btn.loading .inst-download-loading {
    display: inline-flex;
}

.inst-spinner {
    width: 18px;
    height: 18px;
    animation: inst-spin 1s linear infinite;
}

@keyframes inst-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.inst-download-info {
    margin-top: 10px;
    font-size: 12px;
    color: var(--inst-gray-500);
}

/* Download Success/Error States */
.inst-download-btn.success {
    background: #1e6b4a;
}

.inst-download-btn.error {
    background: #9a3c3c;
}

/* Mobile Adjustments */
@media (max-width: 768px) {
    .inst-download-btn {
        width: 100%;
        justify-content: center;
        padding: 12px 20px;
        font-size: 14px;
    }

    .inst-download-info {
        font-size: 11px;
    }
}

/* ==========================================================================
   Data Quality UI Indicators
   As specified in the Financial Modeling Implementation Plan
   ========================================================================== */

/* Base metric indicator styles */
.inst-metric-indicator {
    position: relative;
    padding-left: 12px;
}

.inst-metric-indicator::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    border-radius: 2px;
}

/* Disclosed - directly from article (highest confidence) */
.metric-disclosed::before,
.inst-metric-disclosed::before {
    background-color: #22c55e;
}

/* Calculated - derived from disclosed data (high confidence) */
.metric-calculated::before,
.inst-metric-calculated::before {
    background-color: #3b82f6;
}

/* Estimated - based on Claude analysis/comparables (medium confidence) */
.metric-estimated::before,
.inst-metric-estimated::before {
    background-color: var(--inst-amber-muted);
}

/* Assumed - industry standard assumptions (low confidence) */
.metric-assumed::before,
.inst-metric-assumed::before {
    background-color: #94a3b8;
}

/* Data quality source badge */
.inst-data-source-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.inst-data-source-badge.disclosed {
    background-color: rgba(30, 107, 74, 0.15);
    color: var(--inst-green-muted);
}

.inst-data-source-badge.calculated {
    background-color: rgba(59, 130, 246, 0.15);
    color: #1d4ed8;
}

.inst-data-source-badge.estimated {
    background-color: rgba(138, 109, 53, 0.15);
    color: var(--inst-amber-muted);
}

.inst-data-source-badge.assumed {
    background-color: rgba(148, 163, 184, 0.15);
    color: #475569;
}

/* Data quality legend */
.inst-data-quality-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    padding: 12px 16px;
    background: var(--inst-gray-50);
    border-radius: 8px;
    margin-top: 16px;
}

.inst-data-quality-legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--inst-gray-600);
}

.inst-data-quality-legend-indicator {
    width: 12px;
    height: 12px;
    border-radius: 2px;
}

.inst-data-quality-legend-indicator.disclosed {
    background-color: var(--inst-green-muted);
}

.inst-data-quality-legend-indicator.calculated {
    background-color: var(--inst-blue-600);
}

.inst-data-quality-legend-indicator.estimated {
    background-color: var(--inst-amber-muted);
}

.inst-data-quality-legend-indicator.assumed {
    background-color: #94a3b8;
}

/* Data quality score visualization */
.inst-data-quality-score {
    display: flex;
    align-items: center;
    gap: 12px;
}

.inst-data-quality-bar {
    flex: 1;
    height: 8px;
    background: var(--inst-gray-200);
    border-radius: 4px;
    overflow: hidden;
}

.inst-data-quality-bar-fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.3s ease;
}

.inst-data-quality-bar-fill.high {
    background: var(--inst-green-muted);
}

.inst-data-quality-bar-fill.moderate {
    background: var(--inst-amber-muted);
}

.inst-data-quality-bar-fill.low {
    background: var(--inst-red-muted);
}

.inst-data-quality-score-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--inst-navy-800);
    min-width: 45px;
    text-align: right;
}

/* ============================================
   MODEL-BASED FINANCIAL INTELLIGENCE PANEL
   Dynamic content for articles without deal data
   ============================================ */

/* ===========================================
   VIEW TOGGLE (Charts / Data)
   Professional toggle for switching between
   visual charts and spreadsheet data view
   =========================================== */

.inst-view-toggle-container {
    margin: 16px 0;
    padding: 12px 16px;
    background: var(--inst-gray-50);
    border: 1px solid var(--inst-gray-200);
    border-radius: 8px;
}

.inst-view-toggle {
    display: flex;
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-300);
    border-radius: 6px;
    padding: 3px;
    gap: 2px;
}

.inst-view-toggle-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    background: transparent;
    border: none;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    color: var(--inst-gray-600);
    cursor: pointer;
    transition: all 0.15s ease;
}

.inst-view-toggle-btn svg {
    width: 14px;
    height: 14px;
}

.inst-view-toggle-btn:hover {
    background: var(--inst-gray-100);
    color: var(--inst-gray-800);
}

.inst-view-toggle-btn.is-active {
    background: var(--inst-navy-800);
    color: var(--inst-white);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

/* Legend for Financial Modeling Colors */
.inst-view-toggle-legend {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--inst-gray-200);
}

.inst-legend-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
    font-weight: 500;
    color: var(--inst-gray-600);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.inst-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 2px;
}

.inst-legend-input .inst-legend-dot {
    background: #1565c0; /* Blue - Hard-coded inputs */
}

.inst-legend-calc .inst-legend-dot {
    background: #1a1a1a; /* Black - Calculations */
}

.inst-legend-link .inst-legend-dot {
    background: #2e7d32; /* Green - External links */
}

/* Panel View Container */
.inst-panel-view {
    display: none;
}

.inst-panel-view.is-active {
    display: block;
    animation: instFadeIn 0.2s ease;
}

@keyframes instFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ===========================================
   SPREADSHEET DATA VIEW
   Excel-like table with FM color conventions
   =========================================== */

.inst-spreadsheet {
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-300);
    border-radius: 6px;
    overflow: hidden;
    font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
}

.inst-spreadsheet-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: linear-gradient(180deg, #f8f9fa 0%, #e9ecef 100%);
    border-bottom: 1px solid var(--inst-gray-300);
}

.inst-spreadsheet-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 600;
    color: var(--inst-gray-700);
    font-family: var(--inst-font-sans);
}

.inst-spreadsheet-title svg {
    width: 16px;
    height: 16px;
    color: var(--inst-green-600);
}

/* Data Table */
.inst-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11px;
}

.inst-data-table thead {
    background: #e8e8e8;
}

.inst-data-table th {
    padding: 4px 8px;
    font-weight: 500;
    color: var(--inst-gray-600);
    text-align: center;
    border: 1px solid var(--inst-gray-300);
    font-size: 10px;
}

.inst-col-row {
    width: 32px;
    background: #f0f0f0;
}

.inst-col-a,
.inst-col-b,
.inst-col-c {
    min-width: 80px;
}

.inst-row-num {
    background: #f0f0f0;
    color: var(--inst-gray-500);
    text-align: center;
    font-size: 10px;
    border: 1px solid var(--inst-gray-300);
    padding: 6px 4px;
    font-weight: 500;
}

.inst-cell {
    padding: 7px 10px;
    border: 1px solid var(--inst-gray-200);
    color: var(--inst-gray-800);
    background: var(--inst-white);
}

/* Financial Modeling Color Conventions */

/* Blue - Hard-coded inputs (historical data, key drivers) */
.inst-cell-input {
    color: #1565c0;
    font-weight: 500;
}

/* Black - Calculations and formulas */
.inst-cell-calc {
    color: #1a1a1a;
    font-weight: 500;
}

/* Green - Links to other sheets/external data */
.inst-cell-link {
    color: #2e7d32;
    font-weight: 500;
}

/* Red - External links or negative numbers (optional) */
.inst-cell-external {
    color: #c62828;
    font-weight: 500;
}

/* Header cells */
.inst-cell-header {
    font-weight: 700;
    font-size: 12px;
    color: var(--inst-navy-800);
    background: var(--inst-cream-100);
    font-family: var(--inst-font-sans);
}

/* Label cells */
.inst-cell-label {
    font-weight: 600;
    color: var(--inst-gray-700);
    background: var(--inst-gray-50);
}

/* Type indicator cell */
.inst-cell-type {
    font-size: 9px;
    text-align: center;
    color: var(--inst-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* Row styles */
.inst-row-header td {
    border-bottom: 2px solid var(--inst-gray-400);
}

.inst-row-subheader td {
    background: var(--inst-gray-100);
    border-bottom: 1px solid var(--inst-gray-300);
}

.inst-row-spacer td {
    height: 8px;
    background: var(--inst-gray-50);
    border: none;
}

.inst-row-source td {
    background: var(--inst-gray-50);
    font-size: 11px;
    color: var(--inst-gray-600);
}

/* Hover effect */
.inst-data-table tbody tr:hover td:not(.inst-row-num) {
    background: rgba(21, 101, 192, 0.04);
}

/* Spreadsheet Footer with Sheet Tabs */
.inst-spreadsheet-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    background: var(--inst-gray-100);
    border-top: 1px solid var(--inst-gray-300);
}

.inst-sheet-tabs {
    display: flex;
    gap: 2px;
}

.inst-sheet-tab {
    padding: 4px 12px;
    font-size: 10px;
    font-weight: 500;
    color: var(--inst-gray-600);
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-300);
    border-bottom: none;
    border-radius: 4px 4px 0 0;
    cursor: default;
    font-family: var(--inst-font-sans);
}

.inst-sheet-tab.is-active {
    background: var(--inst-white);
    color: var(--inst-navy-800);
    font-weight: 600;
    border-bottom: 1px solid var(--inst-white);
    margin-bottom: -1px;
}

.inst-spreadsheet-note {
    font-size: 10px;
    color: var(--inst-gray-500);
    font-style: italic;
    font-family: var(--inst-font-sans);
}

/* Model Header with Badge */
.inst-model-header {
    text-align: center;
}

.inst-model-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    background: var(--inst-navy-900);
    color: var(--inst-white);
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}

.inst-model-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
}

.inst-model-icon svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
}

.inst-model-type {
    color: var(--inst-gray-300);
}

/* Data Quality Badge */
.inst-data-quality-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 16px;
    font-size: 11px;
    font-weight: 500;
    margin-top: 12px;
}

.inst-data-quality-icon {
    width: 14px;
    height: 14px;
}

.inst-data-quality-badge.inst-data-quality-full {
    background: rgba(30, 107, 74, 0.1);
    color: var(--inst-green-600);
    border: 1px solid rgba(30, 107, 74, 0.2);
}

.inst-data-quality-badge.inst-data-quality-partial {
    background: rgba(138, 109, 53, 0.1);
    color: var(--inst-amber-muted);
    border: 1px solid rgba(138, 109, 53, 0.2);
}

.inst-data-quality-badge.inst-data-quality-none {
    background: rgba(113, 113, 122, 0.1);
    color: var(--inst-gray-600);
    border: 1px solid rgba(113, 113, 122, 0.2);
}

/* Benchmark Metrics Grid - Subtle styling */
.inst-benchmark-metrics {
    margin-bottom: 20px;
}

.inst-benchmark-metric {
    border-style: dashed;
    border-color: var(--inst-gray-300);
    background: var(--inst-cream-50);
}

.inst-benchmark-metric .inst-deal-metric-value {
    color: var(--inst-navy-800);
}

.inst-benchmark-metric .inst-deal-metric-sub {
    color: var(--inst-gray-500);
    font-style: italic;
}

/* Data Source Attribution */
.inst-data-source-attribution {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: linear-gradient(135deg, var(--inst-green-600) 0%, var(--inst-green-500) 100%);
    border-radius: 6px;
    margin-bottom: 16px;
}

.inst-source-icon {
    width: 14px;
    height: 14px;
    color: var(--inst-white);
    flex-shrink: 0;
}

.inst-source-text {
    font-size: 11px;
    font-weight: 500;
    color: var(--inst-white);
    letter-spacing: 0.3px;
}

/* Classification Context Card */
.inst-classification-card {
    margin-bottom: 20px;
}

.inst-classification-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 12px;
}

.inst-classification-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.inst-classification-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--inst-gray-500);
}

.inst-classification-value {
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-navy-800);
}

/* Model Download Section */
.inst-model-download {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.inst-generate-model-btn {
    background: var(--inst-navy-900);
    transition: all 0.2s ease;
}

.inst-generate-model-btn:hover {
    background: var(--inst-navy-800);
    transform: translateY(-1px);
}

.inst-download-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-300);
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--inst-gray-700);
    cursor: pointer;
    transition: all 0.2s ease;
}

.inst-download-btn-secondary:hover {
    background: var(--inst-gray-100);
    border-color: var(--inst-gray-400);
}

.inst-download-icon-small {
    width: 16px;
    height: 16px;
}

.inst-download-icon-small svg {
    width: 100%;
    height: 100%;
}

/* Mobile adjustments for model panel */
@media (max-width: 768px) {
    .inst-model-badge {
        padding: 5px 12px;
        font-size: 10px;
    }

    .inst-model-icon {
        width: 16px;
        height: 16px;
    }

    .inst-data-quality-badge {
        font-size: 10px;
        padding: 5px 10px;
    }

    .inst-classification-grid {
        grid-template-columns: 1fr;
    }

    .inst-download-btn-secondary {
        padding: 8px 14px;
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .inst-model-header .inst-dashboard-title {
        font-size: 16px;
    }

    .inst-model-header .inst-dashboard-subtitle {
        font-size: 12px;
    }
}

/* ==========================================================================
   Phase 5: Model Preview Card
   ========================================================================== */

.inst-model-preview-card {
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-200);
    border-radius: 12px;
    margin-top: 20px;
    overflow: hidden;
}

.inst-model-preview-header {
    padding: 16px 20px;
    background: var(--inst-gray-50);
    border-bottom: 1px solid var(--inst-gray-200);
}

.inst-model-preview-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--inst-navy-800);
    margin: 0;
}

.inst-model-preview-body {
    padding: 16px 20px;
}

.inst-model-preview-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.inst-model-preview-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--inst-gray-700);
}

.inst-model-preview-icon {
    width: 16px;
    height: 16px;
    color: #16a34a;
    flex-shrink: 0;
}

.inst-model-preview-visual {
    padding: 20px;
    background: linear-gradient(180deg, var(--inst-gray-50) 0%, var(--inst-white) 100%);
    display: flex;
    justify-content: center;
}

.inst-model-preview-thumb {
    position: relative;
    padding: 12px;
    background: var(--inst-white);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.inst-model-preview-thumb svg {
    display: block;
    width: 120px;
    height: 80px;
}

.inst-model-preview-format {
    position: absolute;
    bottom: -8px;
    right: -8px;
    background: #16a34a;
    color: var(--inst-white);
    font-size: 10px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 4px;
    text-transform: uppercase;
}

/* ==========================================================================
   Phase 5: Generated Content Container
   ========================================================================== */

.inst-generated-content {
    margin-top: 20px;
    padding: 20px;
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-200);
    border-radius: 12px;
}

.inst-generated-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--inst-gray-200);
}

.inst-generated-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: #dcfce7;
    color: #166534;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
}

.inst-generated-badge svg {
    width: 16px;
    height: 16px;
}

.inst-generated-timestamp {
    font-size: 12px;
    color: var(--inst-gray-500);
}

.inst-generated-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}

.inst-generated-metric {
    padding: 12px;
    background: var(--inst-gray-50);
    border-radius: 8px;
    text-align: center;
}

.inst-generated-metric-value {
    font-size: 20px;
    font-weight: 700;
    color: var(--inst-navy-800);
    line-height: 1.2;
}

.inst-generated-metric-label {
    font-size: 11px;
    color: var(--inst-gray-600);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 4px;
}

.inst-generated-summary {
    padding: 16px;
    background: var(--inst-gray-50);
    border-radius: 8px;
    margin-bottom: 16px;
}

.inst-generated-summary p {
    font-size: 13px;
    line-height: 1.6;
    color: var(--inst-gray-700);
    margin: 0;
}

.inst-generated-charts {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ==========================================================================
   Phase 5: Related Intelligence Section
   ========================================================================== */

.inst-related-intelligence {
    margin-top: 24px;
    padding: 16px 20px;
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-200);
    border-radius: 12px;
}

.inst-related-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--inst-gray-200);
}

.inst-related-icon {
    width: 18px;
    height: 18px;
    color: var(--inst-gray-500);
}

.inst-related-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-navy-800);
    margin: 0;
}

.inst-related-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.inst-related-item {
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-related-item:last-child {
    border-bottom: none;
}

.inst-related-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    text-decoration: none;
    transition: opacity 0.15s ease;
}

.inst-related-link:hover {
    opacity: 0.8;
}

/* Post Type Badge */
.inst-related-type {
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 3px 6px;
    border-radius: 4px;
    flex-shrink: 0;
    min-width: 42px;
    text-align: center;
}

/* News - Blue */
.inst-type-sffc_pe_news {
    background: var(--inst-blue-500);
    color: var(--inst-white);
}

/* Deals - Green */
.inst-type-sffc_pe_deal {
    background: var(--inst-green-600);
    color: var(--inst-white);
}

/* Signal - Amber/Orange */
.inst-type-sffc_pe_signal {
    background: var(--inst-amber-muted);
    color: var(--inst-white);
}

/* Regular Article - Gray */
.inst-type-post {
    background: var(--inst-gray-200);
    color: var(--inst-gray-700);
}

.inst-related-text {
    font-size: 13px;
    color: var(--inst-navy-800);
    line-height: 1.4;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inst-related-date {
    font-size: 11px;
    color: var(--inst-gray-500);
    flex-shrink: 0;
}

/* ==========================================================================
   Phase 5: Email Gate Modal
   ========================================================================== */

.inst-email-gate-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(10, 22, 40, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10001;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.inst-email-gate-modal.is-visible {
    opacity: 1;
    visibility: visible;
}

.inst-email-gate-content {
    background: var(--inst-white);
    border-radius: 16px;
    padding: 32px;
    max-width: 420px;
    width: 90%;
    position: relative;
    transform: scale(0.95);
    transition: transform 0.2s ease;
}

.inst-email-gate-modal.is-visible .inst-email-gate-content {
    transform: scale(1);
}

.inst-email-gate-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 32px;
    height: 32px;
    background: var(--inst-gray-100);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease;
}

.inst-email-gate-close:hover {
    background: var(--inst-gray-200);
}

.inst-email-gate-close svg {
    width: 18px;
    height: 18px;
    color: var(--inst-gray-600);
}

.inst-email-gate-icon {
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, #2563eb 0%, #0a1628 100%);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.inst-email-gate-icon svg {
    width: 28px;
    height: 28px;
    color: var(--inst-white);
}

.inst-email-gate-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--inst-navy-800);
    margin: 0 0 8px 0;
}

.inst-email-gate-text {
    font-size: 14px;
    color: var(--inst-gray-600);
    margin: 0 0 24px 0;
    line-height: 1.5;
}

.inst-email-gate-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.inst-email-gate-input {
    padding: 14px 16px;
    border: 1px solid var(--inst-gray-300);
    border-radius: 8px;
    font-size: 14px;
    transition: border-color 0.15s ease;
}

.inst-email-gate-input:focus {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.inst-email-gate-submit {
    padding: 14px 24px;
    background: var(--inst-navy-800);
    color: var(--inst-white);
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease;
}

.inst-email-gate-submit:hover {
    background: var(--inst-navy-700);
}

.inst-email-gate-terms {
    font-size: 11px;
    color: var(--inst-gray-500);
    text-align: center;
    margin-top: 12px;
}

.inst-email-gate-terms a {
    color: var(--inst-gray-600);
    text-decoration: underline;
}

/* ==========================================================================
   Phase 5: Panel State Management
   ========================================================================== */

/* Initial state - show preview, hide generated */
.inst-charts-panel[data-state="initial"] .inst-model-preview-card {
    display: block;
}

.inst-charts-panel[data-state="initial"] .inst-generated-content {
    display: none;
}

/* Generating state - show loading overlay */
.inst-charts-panel[data-state="generating"] .inst-model-preview-card {
    opacity: 0.5;
    pointer-events: none;
}

/* Generated state - hide preview, show generated */
.inst-charts-panel[data-state="generated"] .inst-model-preview-card {
    display: none;
}

.inst-charts-panel[data-state="generated"] .inst-generated-content {
    display: block;
}

/* Download mode after generation */
.inst-generate-model-btn.generated {
    background: #16a34a;
}

.inst-generate-model-btn.generated:hover {
    background: #15803d;
}

/* Mobile adjustments for Phase 5 components */
@media (max-width: 768px) {
    .inst-model-preview-list {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .inst-model-preview-item {
        font-size: 12px;
    }

    .inst-generated-metrics {
        grid-template-columns: 1fr;
    }

    .inst-email-gate-content {
        padding: 24px;
    }

    .inst-email-gate-title {
        font-size: 18px;
    }

    .inst-related-text {
        font-size: 12px;
    }
}

/* ==========================================================================
   Phase 6: Dynamic Memo Sections
   ========================================================================== */

.inst-memo-dynamic {
    margin-top: 24px;
}

.inst-memo-section {
    margin-bottom: 28px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--inst-gray-200);
}

.inst-memo-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.inst-memo-section-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.inst-memo-section-icon {
    width: 20px;
    height: 20px;
    color: var(--inst-navy-800);
    flex-shrink: 0;
}

.inst-memo-section-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--inst-navy-800);
    margin: 0;
    line-height: 1.3;
}

.inst-memo-section-content {
    font-size: 15px;
    line-height: 1.7;
    color: var(--inst-gray-700);
}

.inst-memo-section-content p {
    margin-bottom: 14px;
}

.inst-memo-section-content p:last-child {
    margin-bottom: 0;
}

.inst-memo-section-content ul,
.inst-memo-section-content ol {
    margin: 14px 0;
    padding-left: 24px;
}

.inst-memo-section-content li {
    margin-bottom: 8px;
}

.inst-memo-section-content strong {
    color: var(--inst-navy-800);
}

/* Section type-specific styles */
.inst-memo-section-executive_summary .inst-memo-section-content {
    font-size: 16px;
    color: var(--inst-gray-800);
}

.inst-memo-section-risk_factors .inst-memo-section-icon {
    color: #dc2626;
}

.inst-memo-section-valuation_analysis .inst-memo-section-icon,
.inst-memo-section-financial_impact .inst-memo-section-icon {
    color: #059669;
}

.inst-memo-section-strategic_rationale .inst-memo-section-icon,
.inst-memo-section-strategic_analysis .inst-memo-section-icon {
    color: #2563eb;
}

/* Article type indicator */
.inst-memo-type-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--inst-gray-100);
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--inst-gray-600);
    margin-bottom: 20px;
}

.inst-memo-type-badge svg {
    width: 14px;
    height: 14px;
}

/* Data callout boxes within memo sections */
.inst-memo-callout {
    background: var(--inst-gray-50);
    border-left: 3px solid var(--inst-navy-800);
    padding: 16px 20px;
    margin: 16px 0;
    border-radius: 0 8px 8px 0;
}

.inst-memo-callout-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-navy-800);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.inst-memo-callout-content {
    font-size: 14px;
    color: var(--inst-gray-700);
}

/* Key metrics inline in memo */
.inst-memo-metric-inline {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 2px 8px;
    background: var(--inst-gray-100);
    border-radius: 4px;
    font-family: var(--inst-font-mono);
}

.inst-memo-metric-value {
    font-weight: 600;
    color: var(--inst-navy-800);
}

.inst-memo-metric-label {
    font-size: 12px;
    color: var(--inst-gray-500);
}

/* Comparable transactions table within memo */
.inst-memo-comparables {
    margin: 20px 0;
    overflow-x: auto;
}

.inst-memo-comparables table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.inst-memo-comparables th {
    text-align: left;
    padding: 10px 12px;
    background: var(--inst-gray-100);
    font-weight: 600;
    color: var(--inst-navy-800);
    border-bottom: 2px solid var(--inst-gray-300);
}

.inst-memo-comparables td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--inst-gray-200);
}

.inst-memo-comparables tr:last-child td {
    border-bottom: none;
}

.inst-memo-comparables tr:hover {
    background: var(--inst-gray-50);
}

/* Risk factors list */
.inst-memo-risk-list {
    list-style: none;
    padding: 0;
    margin: 16px 0;
}

.inst-memo-risk-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-memo-risk-item:last-child {
    border-bottom: none;
}

.inst-memo-risk-severity {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-top: 6px;
    flex-shrink: 0;
}

.inst-memo-risk-severity-high {
    background: #dc2626;
}

.inst-memo-risk-severity-medium {
    background: #f59e0b;
}

.inst-memo-risk-severity-low {
    background: #10b981;
}

.inst-memo-risk-content {
    flex: 1;
}

.inst-memo-risk-title {
    font-weight: 600;
    color: var(--inst-navy-800);
    margin-bottom: 4px;
}

.inst-memo-risk-description {
    font-size: 14px;
    color: var(--inst-gray-600);
}

/* Timeline/milestones within memo */
.inst-memo-timeline {
    position: relative;
    padding-left: 24px;
    margin: 20px 0;
}

.inst-memo-timeline::before {
    content: '';
    position: absolute;
    left: 3px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: var(--inst-gray-300);
}

.inst-memo-timeline-item {
    position: relative;
    padding-bottom: 20px;
}

.inst-memo-timeline-item:last-child {
    padding-bottom: 0;
}

.inst-memo-timeline-item::before {
    content: '';
    position: absolute;
    left: -24px;
    top: 6px;
    width: 10px;
    height: 10px;
    background: var(--inst-navy-800);
    border-radius: 50%;
    border: 2px solid var(--inst-white);
}

.inst-memo-timeline-date {
    font-size: 12px;
    font-weight: 600;
    color: var(--inst-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.inst-memo-timeline-content {
    font-size: 14px;
    color: var(--inst-gray-700);
}

/* Section placeholder state */
.inst-memo-section-placeholder {
    color: var(--inst-gray-500);
    font-style: italic;
    padding: 16px;
    background: var(--inst-gray-50);
    border-radius: 8px;
    border: 1px dashed var(--inst-gray-300);
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .inst-memo-section-title {
        font-size: 16px;
    }

    .inst-memo-section-content {
        font-size: 14px;
    }

    .inst-memo-callout {
        padding: 12px 16px;
    }

    .inst-memo-comparables {
        margin: 16px -16px;
        padding: 0 16px;
    }
}

/* ==========================================================================
   INTELLIGENCE REPORT VIEW
   Premium report layout with collapsible sections
   ========================================================================== */

/* Report View Container */
.inst-report-view {
    display: flex;
    flex-direction: column;
    height: 100%;
    position: relative;
}

/* Report Header - Sticky, Transparent */
.inst-report-header {
    position: sticky;
    top: 0;
    z-index: 10;
    background: linear-gradient(180deg, rgba(250, 248, 245, 0.95) 0%, rgba(250, 248, 245, 0.85) 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    padding: 12px 0;
    margin: 0 0 16px 0;
}

.inst-report-header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.inst-report-header-left {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--inst-gray-500);
}

.inst-report-label {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--inst-navy-800);
}

.inst-report-meta-separator {
    color: var(--inst-gray-300);
}

.inst-report-meta-date,
.inst-report-meta-sector {
    color: var(--inst-gray-500);
}

.inst-report-header-actions {
    display: flex;
    gap: 8px;
}

.inst-report-action-btn {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid var(--inst-gray-200);
    border-radius: 6px;
    color: var(--inst-gray-500);
    cursor: pointer;
    transition: all 0.15s ease;
}

.inst-report-action-btn:hover {
    background: var(--inst-white);
    border-color: var(--inst-gray-300);
    color: var(--inst-navy-800);
}

.inst-report-action-btn svg {
    width: 16px;
    height: 16px;
}

/* Report Scroll Container */
.inst-report-scroll {
    flex: 1;
    overflow-y: auto;
    padding-bottom: 32px;
}

/* Report Section - Collapsible */
.inst-report-section {
    background: var(--inst-white);
    border: 1px solid var(--inst-gray-200);
    border-radius: 12px;
    margin-bottom: 16px;
    overflow: hidden;
}

.inst-report-section-header {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    transition: background 0.15s ease;
}

.inst-report-section-header:hover {
    background: var(--inst-gray-50);
}

.inst-report-section-title {
    font-family: var(--inst-font-sans);
    font-size: 14px;
    font-weight: 600;
    color: var(--inst-navy-800);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.inst-report-section-chevron {
    width: 18px;
    height: 18px;
    color: var(--inst-gray-400);
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.inst-report-section.is-open .inst-report-section-chevron {
    transform: rotate(0deg);
}

.inst-report-section:not(.is-open) .inst-report-section-chevron {
    transform: rotate(-90deg);
}

.inst-report-section-body {
    padding: 0 20px 20px 20px;
    display: block;
}

.inst-report-section:not(.is-open) .inst-report-section-body {
    display: none;
}

/* Report Subsection Title */
.inst-report-subsection-title {
    font-family: var(--inst-font-sans);
    font-size: 11px;
    font-weight: 600;
    color: var(--inst-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 20px 0 12px 0;
}

.inst-report-subsection-title:first-child {
    margin-top: 0;
}

/* Report Metrics Grid */
.inst-report-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-report-metric {
    text-align: center;
}

.inst-report-metric-value {
    font-family: var(--inst-font-sans);
    font-size: 24px;
    font-weight: 300;
    color: var(--inst-black);
    line-height: 1.1;
    margin-bottom: 4px;
}

.inst-report-metric-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--inst-gray-500);
}

.inst-report-metric-sub {
    font-size: 10px;
    color: var(--inst-gray-400);
    margin-top: 2px;
}

/* Report Overview */
.inst-report-overview {
    margin-bottom: 16px;
}

.inst-report-overview p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--inst-gray-700);
    margin: 0;
}

/* Report Highlights */
.inst-report-highlights {
    margin-top: 16px;
}

.inst-report-highlight-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.inst-report-highlight-list li {
    position: relative;
    padding-left: 16px;
    margin-bottom: 8px;
    font-size: 13px;
    color: var(--inst-gray-700);
    line-height: 1.5;
}

.inst-report-highlight-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 7px;
    width: 6px;
    height: 6px;
    background: var(--inst-navy-800);
    border-radius: 1px;
}

/* Confidence Indicator */
.inst-report-confidence {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    padding: 12px 16px;
    background: var(--inst-gray-50);
    border-radius: 8px;
}

.inst-confidence-dots {
    display: flex;
    gap: 4px;
}

.inst-confidence-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--inst-gray-200);
}

.inst-confidence-dot.is-filled {
    background: var(--inst-blue-600);
}

.inst-confidence-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--inst-gray-600);
}

/* Company Section */
.inst-company-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

.inst-company-logo {
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, var(--inst-navy-800) 0%, var(--inst-navy-700) 100%);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.inst-company-initials {
    font-family: var(--inst-font-sans);
    font-size: 20px;
    font-weight: 600;
    color: var(--inst-white);
    letter-spacing: -0.5px;
}

.inst-company-info {
    flex: 1;
    min-width: 0;
}

.inst-company-name {
    font-family: var(--inst-font-sans);
    font-size: 18px;
    font-weight: 600;
    color: var(--inst-navy-800);
    margin: 0 0 4px 0;
}

.inst-company-tagline {
    font-size: 13px;
    color: var(--inst-gray-500);
    margin: 0;
}

.inst-company-facts {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    padding: 16px;
    background: var(--inst-gray-50);
    border-radius: 8px;
    margin-bottom: 16px;
}

.inst-company-fact {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.inst-company-fact-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--inst-gray-500);
}

.inst-company-fact-value {
    font-size: 14px;
    font-weight: 500;
    color: var(--inst-gray-900);
}

.inst-company-description p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--inst-gray-700);
    margin: 0;
}

/* Educational Box */
.inst-educational-box {
    padding: 16px 20px;
    background: rgba(37, 99, 235, 0.04);
    border-left: 4px solid var(--inst-blue-400);
    border-radius: 0 8px 8px 0;
    margin-bottom: 16px;
}

.inst-educational-box p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--inst-gray-700);
    margin: 0;
}

.inst-this-transaction p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--inst-gray-700);
    margin: 0;
}

/* Key Terms */
.inst-key-terms {
    margin-top: 16px;
    padding: 16px;
    background: var(--inst-gray-50);
    border-radius: 8px;
}

.inst-terms-list {
    margin: 0;
    padding: 0;
}

.inst-terms-list dt {
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-navy-800);
    margin-top: 12px;
}

.inst-terms-list dt:first-child {
    margin-top: 0;
}

.inst-terms-list dd {
    font-size: 13px;
    color: var(--inst-gray-600);
    margin: 4px 0 0 0;
    padding-left: 0;
}

/* Financial Analysis Section */
.inst-deal-metrics {
    margin-bottom: 20px;
}

.inst-metrics-table {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--inst-gray-200);
    border-radius: 8px;
    overflow: hidden;
}

.inst-metric-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    background: var(--inst-white);
}

.inst-metric-label {
    font-size: 13px;
    color: var(--inst-gray-600);
}

.inst-metric-value {
    font-family: var(--inst-font-mono);
    font-size: 14px;
    font-weight: 600;
    color: var(--inst-navy-800);
    text-align: right;
}

.inst-valuation-multiples {
    margin-bottom: 20px;
}

.inst-multiples-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.inst-multiples-table thead {
    background: var(--inst-navy-800);
    color: var(--inst-white);
}

.inst-multiples-table th {
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.inst-multiples-table th:last-child {
    text-align: center;
}

.inst-multiples-table td {
    padding: 12px;
    border-bottom: 1px solid var(--inst-gray-200);
    color: var(--inst-gray-700);
}

.inst-multiples-table tbody tr:last-child td {
    border-bottom: none;
}

.inst-value-cell {
    font-family: var(--inst-font-mono);
    font-weight: 500;
    color: var(--inst-navy-800);
}

.inst-assessment-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.inst-assessment-premium {
    background: rgba(138, 109, 53, 0.12);
    color: var(--inst-amber-muted);
}

.inst-assessment-discount {
    background: rgba(30, 107, 74, 0.12);
    color: var(--inst-green-muted);
}

.inst-assessment-inline,
.inst-assessment-fair {
    background: var(--inst-gray-100);
    color: var(--inst-gray-600);
}

.inst-deal-structure {
    margin-bottom: 12px;
}

.inst-structure-bars {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.inst-structure-bar {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.inst-structure-bar-label {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--inst-gray-600);
}

.inst-structure-bar-label span:last-child {
    font-family: var(--inst-font-mono);
    font-weight: 600;
    color: var(--inst-navy-800);
}

.inst-structure-bar-track {
    height: 8px;
    background: var(--inst-gray-100);
    border-radius: 4px;
    overflow: hidden;
}

.inst-structure-bar-fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.3s ease;
}

.inst-structure-equity {
    background: var(--inst-navy-800);
}

.inst-structure-debt {
    background: var(--inst-blue-400);
}

.inst-deal-type-note {
    font-size: 13px;
    color: var(--inst-gray-600);
    margin: 12px 0 0 0;
}

.inst-deal-type-note strong {
    color: var(--inst-gray-700);
}

/* Key Players */
.inst-players-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 16px;
}

.inst-player-card {
    padding: 16px;
    background: var(--inst-gray-50);
    border-radius: 8px;
    border: 1px solid var(--inst-gray-100);
}

.inst-player-card.inst-player-primary {
    border-color: var(--inst-blue-200);
    background: rgba(37, 99, 235, 0.03);
}

.inst-player-role {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--inst-blue-600);
    margin-bottom: 8px;
}

.inst-player-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--inst-navy-800);
    margin: 0 0 4px 0;
}

.inst-player-type,
.inst-player-location {
    font-size: 12px;
    color: var(--inst-gray-500);
    margin: 0;
}

/* Advisors */
.inst-advisors {
    margin-top: 16px;
}

.inst-advisors-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.inst-advisor-row {
    display: flex;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-advisor-row:last-child {
    border-bottom: none;
}

.inst-advisor-type {
    width: 80px;
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--inst-gray-500);
}

.inst-advisor-names {
    font-size: 13px;
    color: var(--inst-gray-700);
}

/* Industry Overview */
.inst-industry-overview p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--inst-gray-700);
    margin: 0;
}

/* Comparables Table */
.inst-comparables-table-wrap {
    overflow-x: auto;
    margin: 0 -20px;
    padding: 0 20px;
}

.inst-comparables-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.inst-comparables-table th {
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
    color: var(--inst-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    border-bottom: 2px solid var(--inst-gray-200);
    background: var(--inst-gray-50);
}

.inst-comparables-table td {
    padding: 10px 12px;
    color: var(--inst-gray-700);
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-comparables-table tbody tr:hover {
    background: var(--inst-gray-50);
}

/* Sector Benchmarks */
.inst-benchmarks-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.inst-benchmark-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.inst-benchmark-label {
    width: 120px;
    flex-shrink: 0;
    font-size: 12px;
    color: var(--inst-gray-600);
}

.inst-benchmark-bar {
    flex: 1;
    height: 8px;
    background: var(--inst-gray-100);
    border-radius: 4px;
    overflow: hidden;
}

.inst-benchmark-fill {
    height: 100%;
    background: var(--inst-blue-500);
    border-radius: 4px;
    transition: width 0.5s ease;
}

.inst-benchmark-value {
    width: 60px;
    text-align: right;
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-gray-900);
}

/* Strategic Analysis */
.inst-strategic-rationale p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--inst-gray-700);
    margin: 0;
}

.inst-strategic-points {
    list-style: none;
    margin: 16px 0 0 0;
    padding: 0;
}

.inst-strategic-points li {
    position: relative;
    padding-left: 16px;
    margin-bottom: 8px;
    font-size: 13px;
    color: var(--inst-gray-700);
}

.inst-strategic-points li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 7px;
    width: 6px;
    height: 6px;
    background: var(--inst-blue-600);
    border-radius: 1px;
}

/* Winners / Challenges */
.inst-winners-losers {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 16px;
}

.inst-winners,
.inst-challenges {
    padding: 16px;
    background: var(--inst-gray-50);
    border-radius: 8px;
}

.inst-winners-title {
    color: var(--inst-green-muted);
}

.inst-challenges-title {
    color: var(--inst-amber-muted);
}

.inst-wl-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.inst-wl-list li {
    position: relative;
    padding-left: 14px;
    margin-bottom: 6px;
    font-size: 13px;
    color: var(--inst-gray-700);
}

.inst-wl-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 6px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.inst-wl-winners li::before {
    background: var(--inst-green-muted);
}

.inst-wl-challenges li::before {
    background: var(--inst-amber-muted);
}

/* Synergies */
.inst-synergies {
    margin-top: 16px;
}

.inst-synergies-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.inst-synergy-item {
    display: flex;
    justify-content: space-between;
    padding: 12px;
    background: var(--inst-gray-50);
    border-radius: 6px;
}

.inst-synergy-label {
    font-size: 12px;
    color: var(--inst-gray-600);
}

.inst-synergy-value {
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-gray-900);
}

/* Risk Section - Uses existing inst-risk-* classes */
.inst-risk-list {
    margin-top: 8px;
}

.inst-risk-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--inst-gray-100);
}

.inst-risk-item:last-child {
    border-bottom: none;
}

.inst-risk-item .inst-risk-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 4px;
}

.inst-risk-high .inst-risk-dot {
    background: var(--inst-red-muted);
}

.inst-risk-medium .inst-risk-dot {
    background: var(--inst-amber-muted);
}

.inst-risk-low .inst-risk-dot {
    background: var(--inst-green-muted);
}

.inst-risk-content {
    flex: 1;
}

.inst-risk-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--inst-gray-900);
    display: block;
    margin-bottom: 4px;
}

.inst-risk-description {
    font-size: 12px;
    color: var(--inst-gray-600);
    margin: 0;
    line-height: 1.5;
}

.inst-risk-mitigation p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--inst-gray-700);
    margin: 0;
}

/* Outlook */
.inst-outlook-summary p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--inst-gray-700);
    margin: 0;
}

.inst-what-to-watch {
    margin-top: 16px;
}

.inst-watch-list {
    margin: 0;
    padding-left: 20px;
}

.inst-watch-list li {
    font-size: 13px;
    color: var(--inst-gray-700);
    margin-bottom: 8px;
    line-height: 1.5;
}

.inst-watch-list li::marker {
    color: var(--inst-navy-800);
    font-weight: 600;
}

/* Outcomes */
.inst-outcomes {
    margin-top: 16px;
}

.inst-outcomes-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.inst-outcome-item {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 10px 12px;
    background: var(--inst-gray-50);
    border-radius: 6px;
}

.inst-outcome-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--inst-navy-800);
    flex-shrink: 0;
}

.inst-outcome-probability {
    font-size: 11px;
    font-weight: 500;
    color: var(--inst-blue-600);
    background: rgba(37, 99, 235, 0.1);
    padding: 2px 8px;
    border-radius: 10px;
    flex-shrink: 0;
}

.inst-outcome-description {
    font-size: 12px;
    color: var(--inst-gray-600);
    flex: 1;
}

/* Sources */
.inst-sources-list ul {
    margin: 0;
    padding-left: 16px;
}

.inst-sources-list li {
    font-size: 13px;
    color: var(--inst-gray-600);
    margin-bottom: 6px;
}

.inst-methodology p {
    font-size: 13px;
    line-height: 1.6;
    color: var(--inst-gray-600);
    margin: 0;
}

.inst-confidence-list {
    margin: 0;
    padding-left: 16px;
}

.inst-confidence-list li {
    font-size: 12px;
    color: var(--inst-gray-600);
    margin-bottom: 4px;
}

.inst-confidence-list strong {
    color: var(--inst-gray-700);
}

/* Report Footer */
.inst-report-footer {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--inst-gray-200);
    text-align: center;
}

.inst-report-disclaimer {
    margin-bottom: 20px;
}

.inst-report-disclaimer p {
    font-size: 11px;
    color: var(--inst-gray-500);
    margin: 0 0 4px 0;
}

.inst-report-actions-footer {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .inst-report-metrics {
        grid-template-columns: repeat(2, 1fr);
    }

    .inst-report-metric-value {
        font-size: 20px;
    }

    .inst-players-grid {
        grid-template-columns: 1fr;
    }

    .inst-winners-losers {
        grid-template-columns: 1fr;
    }

    .inst-synergies-grid {
        grid-template-columns: 1fr;
    }

    .inst-company-facts {
        grid-template-columns: 1fr;
    }

    .inst-report-header-left {
        flex-wrap: wrap;
    }
}

/* ==========================================================================
   PRINT STYLES
   ========================================================================== */
@media print {
    /* Hide non-essential elements */
    .inst-sidebar,
    .inst-subscribe-bar,
    .inst-view-toggle-container,
    .inst-report-header,
    .inst-report-action-btn,
    .inst-report-actions-footer,
    .inst-chat-container,
    .inst-resize-handle,
    .inst-article-panel {
        display: none !important;
    }

    /* Reset layout */
    .inst-terminal {
        position: static !important;
        height: auto !important;
        overflow: visible !important;
    }

    .inst-main {
        margin: 0 !important;
        display: block !important;
    }

    .inst-charts-panel,
    .inst-report-view {
        position: static !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: auto !important;
        overflow: visible !important;
        background: white !important;
        padding: 0 !important;
    }

    .inst-report-scroll {
        overflow: visible !important;
    }

    /* Expand all sections */
    .inst-report-section {
        break-inside: avoid;
        page-break-inside: avoid;
        margin-bottom: 24px;
        border: 1px solid #ddd;
    }

    .inst-report-section-body {
        display: block !important;
    }

    .inst-report-section-chevron {
        display: none !important;
    }

    .inst-report-section-header {
        cursor: default;
        background: #f5f5f5 !important;
    }

    /* Ensure colors print */
    .inst-company-logo {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .inst-risk-dot,
    .inst-confidence-dot.is-filled {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Page breaks */
    .inst-report-section[data-section="executive-summary"] {
        page-break-after: avoid;
    }

    .inst-report-footer {
        page-break-before: avoid;
        margin-top: 32px;
        padding-top: 16px;
    }

    .inst-report-footer .inst-report-actions-footer {
        display: none !important;
    }

    /* Print header */
    .inst-report-view::before {
        content: 'Intelligence Brief';
        display: block;
        font-size: 24px;
        font-weight: 700;
        color: #0a1628;
        margin-bottom: 8px;
        text-transform: uppercase;
        letter-spacing: 1px;
    }
}
