/* ═══════════════════════════════════════════════════════════════
   NEXA TEKNİK ALTYAPI — ARCHITECTURE DIAGRAM
   ═══════════════════════════════════════════════════════════════ */

.arch-section { padding:40px 0 60px; }
.arch-diagram { max-width:960px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:0; }

/* ── Layers ─────────────────────────────────────────────────── */
.arch-layer { width:100%; border-radius:20px; padding:22px; }
.arch-layer-label { display:flex; align-items:center; gap:10px; font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; margin-bottom:16px; }
.arch-label-ext { color:#7dd3fc; }
.arch-label-core { color:var(--accent-color); }
.arch-label-prod { color:#c4b5fd; }
.arch-layer-core { background:rgba(21,209,160,.03); border:1px solid rgba(21,209,160,.12); border-radius:22px; padding:24px; }

/* ── Nodes ──────────────────────────────────────────────────── */
.arch-row { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.arch-node { display:flex; flex-direction:column; align-items:center; gap:6px; padding:14px 16px; border-radius:14px; min-width:90px; text-align:center; transition:.3s ease; }
.arch-node i { font-size:1.3rem; }
.arch-node span { font-size:.74rem; font-weight:600; line-height:1.3; }
.arch-node-ext { background:rgba(56,189,248,.04); border:1px solid rgba(56,189,248,.12); color:#7dd3fc; }
.arch-node-ext:hover { border-color:rgba(56,189,248,.3); transform:translateY(-2px); }
.arch-node-prod { background:rgba(167,139,250,.04); border:1px solid rgba(167,139,250,.12); color:#c4b5fd; }
.arch-node-prod:hover { border-color:rgba(167,139,250,.3); transform:translateY(-2px); }

/* ── Connectors ─────────────────────────────────────────────── */
.arch-connector { display:flex; flex-direction:column; align-items:center; gap:4px; padding:6px 0; }
.arch-conn-line { width:2px; height:16px; background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(21,209,160,.15)); }
.arch-conn-arrows { display:flex; gap:12px; color:rgba(21,209,160,.35); font-size:.6rem; animation:connPulse 2s ease-in-out infinite; }
@keyframes connPulse { 0%,100%{opacity:.4} 50%{opacity:1} }
.arch-conn-label { font-size:.68rem; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.12em; padding:2px 12px; border-radius:6px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); }

/* ── Firewall Bar ───────────────────────────────────────────── */
.arch-firewall-bar { display:flex; align-items:center; gap:0; width:100%; }
.arch-fw-line { flex:1; height:2px; background:repeating-linear-gradient(90deg,rgba(255,123,114,.3) 0,rgba(255,123,114,.3) 8px,transparent 8px,transparent 14px); }
.arch-fw-badge { display:flex; align-items:center; gap:8px; padding:10px 22px; border-radius:12px; background:rgba(255,123,114,.06); border:1px solid rgba(255,123,114,.2); color:#ffb0a8; font-size:.8rem; font-weight:700; white-space:nowrap; }
.arch-fw-badge i { font-size:1rem; }

/* ── Core Servers ───────────────────────────────────────────── */
.arch-core-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:18px; }
.arch-server { padding:18px 14px; border-radius:16px; border:1px solid rgba(255,255,255,.06); background:rgba(4,14,20,.7); transition:.3s ease; position:relative; }
.arch-server:hover { border-color:rgba(21,209,160,.2); transform:translateY(-3px); }
.arch-srv-badge { display:inline-block; padding:3px 8px; border-radius:6px; background:rgba(255,255,255,.04); font-size:.64rem; font-weight:600; color:var(--text-muted); margin-bottom:10px; text-transform:uppercase; letter-spacing:.06em; }
.arch-badge-secure { background:rgba(255,123,114,.08); color:#ffb0a8; border:1px solid rgba(255,123,114,.15); }
.arch-srv-head { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.arch-srv-icon { width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.arch-srv-ollama .arch-srv-icon { color:#38bdf8; background:rgba(56,189,248,.1); border:1px solid rgba(56,189,248,.18); }
.arch-srv-web .arch-srv-icon { color:var(--accent-color); background:rgba(21,209,160,.1); border:1px solid rgba(21,209,160,.18); }
.arch-srv-db .arch-srv-icon { color:#f5b74e; background:rgba(245,183,78,.1); border:1px solid rgba(245,183,78,.18); }
.arch-srv-ai .arch-srv-icon { color:#a78bfa; background:rgba(167,139,250,.1); border:1px solid rgba(167,139,250,.18); }
.arch-srv-head h4 { font-size:.86rem; font-weight:700; margin:0; }
.arch-srv-head span { font-size:.72rem; color:var(--text-muted); }
.arch-srv-features { display:flex; flex-direction:column; gap:5px; }
.arch-srv-features div { font-size:.74rem; color:var(--text-muted); display:flex; align-items:center; gap:6px; }
.arch-srv-features i { font-size:.65rem; color:var(--accent-color); width:14px; text-align:center; flex-shrink:0; }

/* ── Internal Bar ───────────────────────────────────────────── */
.arch-internal-bar { display:flex; align-items:center; gap:0; }
.arch-int-line { flex:1; height:1px; background:rgba(21,209,160,.12); }
.arch-int-flows { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; padding:0 12px; }
.arch-int-flows span { display:flex; align-items:center; gap:6px; padding:6px 12px; border-radius:8px; background:rgba(255,255,255,.02); border:1px solid rgba(255,255,255,.05); font-size:.72rem; color:var(--text-soft); white-space:nowrap; }
.arch-int-flows i { font-size:.65rem; color:var(--accent-color); }
.arch-int-block { color:#ffb0a8 !important; border-color:rgba(255,123,114,.15) !important; background:rgba(255,123,114,.04) !important; }
.arch-int-block i { color:#ff7b72 !important; }

/* ── Data Flow ──────────────────────────────────────────────── */
.flow-section { padding:60px 0; }
.flow-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.flow-card { padding:24px 20px; border-radius:20px; border:1px solid rgba(22,95,85,.2); background:linear-gradient(170deg,rgba(8,24,31,.92),rgba(4,14,20,.97)); position:relative; transition:.3s ease; }
.flow-card:hover { transform:translateY(-4px); border-color:rgba(29,170,140,.3); }
.flow-step { position:absolute; top:16px; right:18px; font-size:2rem; font-weight:900; color:rgba(255,255,255,.05); }
.flow-icon { width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; color:var(--fc,var(--accent-color)); background:color-mix(in srgb,var(--fc,var(--accent-color)) 8%,transparent); border:1px solid color-mix(in srgb,var(--fc,var(--accent-color)) 16%,transparent); margin-bottom:16px; }
@supports not (background:color-mix(in srgb,red 10%,transparent)) { .flow-icon { background:rgba(21,209,160,.08); border-color:rgba(21,209,160,.16); } }
.flow-card h3 { font-size:1rem; font-weight:700; margin:0 0 8px; }
.flow-card p { font-size:.86rem; color:var(--text-muted); line-height:1.65; margin:0 0 14px; }
.flow-badge { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:8px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); font-size:.74rem; font-weight:600; color:var(--text-soft); }
.flow-badge-secure { background:rgba(21,209,160,.06); border-color:rgba(21,209,160,.15); color:var(--accent-color); }

/* ── Security Grid ──────────────────────────────────────────── */
.sec-section { padding:60px 0; }
.sec-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.sec-item { display:flex; flex-direction:column; align-items:center; text-align:center; padding:24px 16px; border-radius:18px; border:1px solid rgba(22,95,85,.15); background:rgba(8,22,30,.5); transition:.3s ease; gap:8px; }
.sec-item:hover { border-color:rgba(21,209,160,.2); transform:translateY(-3px); }
.sec-item i { font-size:1.4rem; color:var(--accent-color); }
.sec-item strong { font-size:.9rem; }
.sec-item span { font-size:.78rem; color:var(--text-muted); }

/* ── Responsive ──────────────────────────────────────────────── */
@media(max-width:991px) { .arch-core-grid { grid-template-columns:1fr 1fr; } .flow-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:767px) { .arch-core-grid,.flow-grid { grid-template-columns:1fr; } .sec-grid { grid-template-columns:1fr 1fr; } .arch-row { gap:6px; } .arch-node { min-width:70px; padding:10px 10px; } .arch-node i { font-size:1rem; } .arch-node span { font-size:.68rem; } .arch-int-flows { flex-direction:column; align-items:center; } }
