/* AI-report components are deliberately scoped, including on narrow phones. */
.aid-root { --aid-ink:#15233c; --aid-muted:#738197; width:100%; min-width:0; color:var(--aid-ink); border:1px solid #e7eaf2; background:linear-gradient(165deg,#f7f9ff 0%,#fff 37%); border-radius:18px; padding:clamp(12px,2.4vw,22px); box-shadow:0 12px 28px rgba(25,35,72,.055); font-family:inherit; }
.aid-root * { box-sizing:border-box; }
.aid-head { margin-bottom:17px; }
.aid-eyebrow { font-size:10px; font-weight:800; letter-spacing:.09em; color:#6664db; margin-bottom:7px; }
.aid-title { font-size:clamp(17px,2vw,24px); font-weight:800; line-height:1.25; margin:0 0 5px; letter-spacing:-.035em; }
.aid-subtitle { color:var(--aid-muted); font-size:12px; line-height:1.6; margin:0; }
.aid-layout { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; align-items:stretch; }
.aid-block { grid-column:span 3; min-width:0; overflow:hidden; border:1px solid #e8edf6; border-radius:15px; padding:15px; background:#fff; box-shadow:0 3px 12px rgba(28,45,77,.025); }
.aid-span-one { grid-column:span 2; }
.aid-span-half { grid-column:span 3; }
.aid-span-full { grid-column:1 / -1; }
.aid-block-title { font-size:12px; color:#5a6880; font-weight:750; letter-spacing:.01em; margin:0 0 12px; }
.aid-kpi { border-top:3px solid #818cf8; background:#fff; }
.aid-kpi[data-metric='revenue'] { border-top-color:#10b981; }
.aid-kpi[data-metric='orders'] { border-top-color:#60a5fa; }
.aid-kpi-number { color:#1e2c4a; font-size:clamp(17px,2.2vw,24px); font-weight:800; overflow-wrap:anywhere; letter-spacing:-.035em; }
.aid-kpi-caption { margin-top:9px; color:var(--aid-muted); font-size:11px; }
.aid-chart { padding:13px; }
.aid-chart-canvas { width:100%; height:285px; min-width:0; }
.aid-block.aid-span-full .aid-chart-canvas { height:320px; }
.aid-table-scroll { overflow-x:auto; max-height:370px; overflow-y:auto; }
.aid-data-table { border-collapse:collapse; width:100%; font-size:12px; min-width:320px; }
.aid-data-table th { color:#7c8ba3; font-size:10px; font-weight:750; background:#f7f9fd; text-align:left; padding:10px; position:sticky; top:0; }
.aid-data-table td { padding:11px 10px; border-bottom:1px solid #f1f3f8; color:#334155; }
.aid-data-table tbody tr:last-child td { border-bottom:0; }
.aid-data-table td.aid-numeric { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.aid-table-name { font-weight:650; }
.aid-rank-num { color:#818cf8 !important; font-weight:900; }
.aid-insight { background:linear-gradient(135deg,#eef2ff,#f9fbff); border-color:#e0e7ff; }
.aid-insight-body { font-size:13px; color:#42526b; margin:0; line-height:1.7; }
.aid-summary { margin-top:16px; padding:15px 18px; border:1px solid #c7d2fe; border-radius:15px; background:linear-gradient(135deg,#f8faff 0%,#ffffff 100%); box-shadow:0 3px 12px rgba(79,70,229,.05); }
.aid-summary h4 { margin:0 0 10px; color:#4338ca; font-size:13.5px; font-weight:750; display:flex; align-items:center; gap:6px; }
.aid-summary ul { padding-left:18px; margin:0; color:#334155; font-size:12.5px; line-height:1.7; }
.aid-summary li { margin:5px 0; }
.aid-progress-item { margin:13px 0; }
.aid-progress-label { display:flex; justify-content:space-between; gap:9px; font-size:11px; color:#5a6880; margin-bottom:6px; }
.aid-progress-label strong { color:#1e293b; white-space:nowrap; }
.aid-progress-track { height:8px; border-radius:20px; background:#e9edfa; overflow:hidden; }
.aid-progress-fill { background:linear-gradient(90deg,#818cf8,#38bdf8); border-radius:20px; height:100%; transition:width .7s ease; }
.aid-empty { color:#64748b; font-size:12px; padding:15px 3px; }
.aid-footer { display:flex; justify-content:space-between; gap:10px; align-items:center; flex-wrap:wrap; margin-top:13px; color:#8591a4; font-size:11px; }
@media(max-width:800px) { .aid-span-one {grid-column:span 3;} .aid-block { padding:12px; } }
@media(max-width:560px) { .aid-root { padding:11px; border-radius:14px; } .aid-layout { gap:8px; } .aid-span-one { grid-column:span 3; } .aid-span-half,.aid-span-full { grid-column:1 / -1; } .aid-kpi-number { font-size:17px; } .aid-chart-canvas,.aid-block.aid-span-full .aid-chart-canvas { height:245px; } .aid-block { border-radius:12px; padding:11px; } }

.aid-fallback-svg { width:100%; height:100%; display:block; max-height:100%; }

/* Animated report composition: natural reveal, never hides the entire report at once. */
.aid-creation-status { display:inline-flex; align-items:center; gap:8px; padding:9px 13px; margin:12px 0 9px;
  background:#f1f3ff; color:#5956bf; border-radius:12px; font-size:12px; font-weight:700; }
.aid-status-sparkle { animation:aid-pulse 1.2s ease-in-out infinite; }
.aid-status-counter { background:#fff; border-radius:7px; padding:3px 6px; color:#64748b; font-size:10px; }
.aid-pending { opacity:0; transform:translateY(12px) scale(.985); }
.aid-enter { animation:aid-reveal .46s cubic-bezier(.2,.75,.28,1) both; }
@keyframes aid-reveal { from { opacity:0; transform:translateY(12px) scale(.985); filter:blur(3px); } to { opacity:1; transform:translateY(0) scale(1); filter:blur(0); } }
@keyframes aid-pulse { 0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)} }
@media (prefers-reduced-motion:reduce) { .aid-enter,.aid-status-sparkle{animation:none!important;} .aid-pending{opacity:1;transform:none;} .aid-progress-fill{transition:none;} }

/* Focused two-branch comparison: one wide plot, balanced KPIs, clear legend. */
.aid-chart-compare {height:clamp(270px,31vw,390px)!important;}
.aid-compare-legend {display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:0 0 8px;}
.aid-legend-chip {display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:#334155;background:#f6f8fe;border:1px solid #e7ebf5;border-radius:20px;padding:6px 11px;}
.aid-legend-dot {display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;}
.aid-comparison-table {min-width:520px;}
.aid-diff-positive {color:#0d9488!important;font-weight:700;}
.aid-diff-negative {color:#dc5471!important;font-weight:700;}
.aid-comparison-hint {margin:9px 0 0;color:#8793a5;font-size:11px;}
@media(max-width:560px){.aid-chart-compare {height:270px!important;}.aid-compare-legend {gap:6px;}.aid-legend-chip {font-size:10px;padding:5px 8px;}.aid-comparison-table {min-width:500px;}}
/* v4 generic SELECT-to-SQL dashboard */
.aid-sql-root .aid-kpi-value { font-size:clamp(24px,3vw,35px); font-weight:800; letter-spacing:-.035em; color:#303ead; margin-top:9px; overflow-wrap:anywhere; }
.aid-sql-root .aid-chart-canvas { width:100%; min-width:0; height:290px; }
.aid-sql-root .aid-data-table td,.aid-sql-root .aid-data-table th { max-width:320px; overflow-wrap:anywhere; }
.aid-sql-root .aid-sql-kpi { background:linear-gradient(145deg,#fff,#f7f9ff); }
@media (max-width:680px) { .aid-sql-root .aid-chart-canvas { height:230px; } .aid-sql-root .aid-layout { display:block; } .aid-sql-root .aid-block { margin-bottom:12px; } }
