/* ══════════════════════════════════════════════════════════════
   INFRASTRUCTURE PAGE
   ══════════════════════════════════════════════════════════════ */

.infra-section{margin-bottom:24px;}
.infra-section-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
.infra-section-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:99px;letter-spacing:.06em;text-transform:uppercase;}
.infra-badge-current{background:var(--surface-off);color:var(--text-muted);border:1px solid var(--border);}
.infra-badge-recommended{background:var(--success-bg);color:var(--success);border:1px solid color-mix(in oklch,var(--success) 35%,transparent);}
.infra-section-desc{font-size:12.5px;color:var(--text-muted);}

/* Architecture diagram */
.arch-diagram{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;}
.arch-diagram-recommended{border-color:color-mix(in oklch,var(--success) 40%,transparent);background:color-mix(in oklch,var(--success) 3%,var(--surface));}
.arch-container{border:2px dashed var(--border);border-radius:var(--radius);padding:16px;margin-bottom:6px;}
.arch-container-recommended{border-color:color-mix(in oklch,var(--primary) 50%,transparent);}
.arch-container-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin-bottom:12px;}
.arch-inner-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}

/* Architecture nodes */
.arch-node{display:flex;align-items:center;gap:8px;padding:9px 13px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-off);flex-shrink:0;}
.arch-node i,.arch-node svg{width:15px;height:15px;flex-shrink:0;}
.arch-node-name{font-size:12.5px;font-weight:600;line-height:1.2;}
.arch-node-sub{font-size:10.5px;color:var(--text-muted);margin-top:1px;}
.arch-node-primary{background:var(--primary-bg);border-color:color-mix(in oklch,var(--primary) 40%,transparent);color:var(--primary);}
.arch-node-info{background:var(--info-bg);border-color:color-mix(in oklch,var(--info) 40%,transparent);color:var(--info);}
.arch-node-accent{background:var(--accent-bg);border-color:color-mix(in oklch,var(--accent) 40%,transparent);color:var(--accent);}
.arch-node-warning{background:var(--warning-bg);border-color:color-mix(in oklch,var(--warning) 40%,transparent);color:var(--warning);}
.arch-node-success,.arch-node-new{background:var(--success-bg);border-color:color-mix(in oklch,var(--success) 40%,transparent);color:var(--success);}
.arch-node-neutral{background:var(--surface-2);border-color:var(--border);color:var(--text-muted);}
.arch-node-notebook{background:color-mix(in oklch,#8b5cf6 12%,var(--surface));border-color:color-mix(in oklch,#8b5cf6 40%,transparent);color:#8b5cf6;}

/* Arrows */
.arch-arrow-h{color:var(--text-faint);font-size:16px;flex-shrink:0;}
.arch-arrow-v-row{display:flex;align-items:center;gap:10px;padding:6px 0 6px 24px;}
.arch-arrow-v{font-size:20px;color:var(--text-faint);}
.arch-arrow-label{font-size:11px;color:var(--text-faint);font-style:italic;}

/* Providers */
.arch-providers-row{display:flex;align-items:center;gap:12px;padding-left:16px;flex-wrap:wrap;}
.arch-provider-box{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:8px;}
.arch-provider-free{border-color:color-mix(in oklch,var(--success) 40%,transparent);background:var(--success-bg);}
.arch-provider-fallback{border-color:color-mix(in oklch,var(--warning) 40%,transparent);background:var(--warning-bg);}
.arch-provider-badge{font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--success);}
.arch-badge-paid{color:var(--warning)!important;}
.arch-badge-new{font-size:9.5px;font-weight:800;letter-spacing:.08em;background:var(--success);color:#fff;padding:2px 7px;border-radius:99px;text-transform:uppercase;}

/* Advantages */
.arch-advantages{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:14px;}
.arch-advantage-item{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--success);}
.arch-advantage-item i,.arch-advantage-item svg{width:13px;height:13px;flex-shrink:0;}

/* Limits */
.arch-limits{display:flex;align-items:flex-start;gap:8px;margin-top:14px;padding:10px 14px;background:var(--error-bg);border:1px solid color-mix(in oklch,var(--error) 30%,transparent);border-radius:var(--radius-sm);font-size:12px;color:var(--error);}
.arch-limits i,.arch-limits svg{width:14px;height:14px;flex-shrink:0;margin-top:1px;}

@media(max-width:768px){
  .arch-inner-row{gap:6px;}
  .arch-advantages{grid-template-columns:1fr;}
  .arch-providers-row{flex-direction:column;align-items:flex-start;}
}
/* LLM nodes */
.arch-llm-row{display:flex;gap:8px;flex-wrap:wrap;padding-left:16px;}
.arch-llm-node{background:var(--surface-off);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 12px;text-align:center;}
.arch-llm-name{font-size:12px;font-weight:600;}
.arch-llm-provider{font-size:10.5px;color:var(--text-faint);margin-top:1px;}

/* Rows */
.arch-row-centered{display:flex;justify-content:flex-start;padding-left:16px;margin-bottom:6px;}
.arch-external-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap;}

/* Export badge */
.allm-export-badge{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8b5cf6;background:color-mix(in oklch,#8b5cf6 12%,var(--surface));border:1px solid color-mix(in oklch,#8b5cf6 30%,transparent);border-radius:99px;padding:2px 9px;display:inline-block;margin-bottom:0;}
.allm-export-badge-alt{color:var(--text-muted);background:var(--surface-2);border-color:var(--border);}

/* Stack cards */
.infra-stack-cards{margin-top:4px;}