/* css/arquitetura.css — tela de arquitetura de servidores (inclui @media do header.top na linha 428) */

.arch-container{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:24px}
.arch-wrap{ --arch-prd:#5B9BF8; --arch-dev:#A78BFA; --arch-band:#070C14; --arch-band-ink:#FFFFFF; --arch-band-mute:#9FB0C6; --arch-band-line:#273241; }
:root[data-mode="light"] .arch-wrap{--arch-prd:#2563EB; --arch-dev:#7C3AED; --arch-band:#0F1B2D; --arch-band-line:#24344C}
.arch-top-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.arch-legend{display:flex;gap:16px;font-size:12px;font-weight:600;color:var(--ink)}
.arch-legend span{display:inline-flex;align-items:center;gap:6px}
.arch-wrap .dot,.arch-legend .dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.arch-legend .dot.prd{background:#5B9BF8}.arch-legend .dot.dev{background:#A78BFA}
:root[data-mode="light"] .arch-legend .dot.prd{background:#2563EB}
:root[data-mode="light"] .arch-legend .dot.dev{background:#7C3AED}
.arch-cols{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:18px}
.arch-card{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:16px 18px}
.arch-card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.arch-card-head h4{margin:0;font-size:15px;font-weight:600;flex:1;min-width:0}
.arch-ico{width:34px;height:34px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.arch-ico.prd{background:color-mix(in srgb,var(--arch-prd) 15%,transparent);color:var(--arch-prd)}
.arch-ico.dev{background:color-mix(in srgb,var(--arch-dev) 15%,transparent);color:var(--arch-dev)}
.arch-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}
.arch-tag.prd{background:color-mix(in srgb,var(--arch-prd) 15%,transparent);color:var(--arch-prd)}
.arch-tag.dev{background:color-mix(in srgb,var(--arch-dev) 15%,transparent);color:var(--arch-dev)}
.arch-tag.neutral{background:var(--panel);border:1px solid var(--line);color:var(--muted)}
.arch-fields{display:grid;gap:12px 16px}
.arch-fields.f4{grid-template-columns:repeat(4,minmax(0,1fr))}
.arch-fields.f3{grid-template-columns:repeat(3,minmax(0,1fr))}
.arch-fields span{display:block;font-size:10.5px;font-weight:600;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}
.arch-fields b{display:block;font-size:12.5px;font-weight:600;overflow-wrap:anywhere}
.arch-app{margin:18px 0 0;background:var(--arch-band);color:var(--arch-band-ink);border:1px solid var(--arch-band-line);border-radius:10px;padding:16px 22px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;position:relative}
.arch-app-title{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600}
.arch-app-ico{width:36px;height:36px;border-radius:8px;background:var(--arch-band-line);display:inline-flex;align-items:center;justify-content:center;color:var(--arch-band-mute)}
.arch-app-main{display:flex;align-items:center;gap:14px}
.arch-app-big{display:inline-flex}
.arch-app-name{font-size:18px;font-weight:700;letter-spacing:.01em}
.arch-app-ip{font-size:12px;color:var(--arch-band-mute)}
.arch-links{margin-bottom:0}
.arch-link{position:relative;height:58px;display:flex;justify-content:center}
.arch-link::before{content:"";position:absolute;top:0;bottom:8px;width:2px;background:currentColor}
.arch-link::after{content:"";position:absolute;bottom:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:9px solid currentColor}
.arch-link.prd{color:var(--arch-prd)}.arch-link.dev{color:var(--arch-dev)}
.arch-port{position:relative;z-index:1;align-self:center;padding:3px 16px;border-radius:6px;font-size:12px;font-weight:600;color:#fff;box-shadow:0 0 0 4px var(--panel)}
.arch-port.prd{background:var(--arch-prd)}.arch-port.dev{background:var(--arch-dev)}
.arch-stack{display:flex;flex-direction:column;gap:14px;min-width:0}
.arch-nodes{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:10px;align-items:stretch}
.arch-nodes.one{grid-template-columns:minmax(0,1fr)}
.arch-node{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 10px;min-width:0}
.arch-node-ico{width:26px;height:26px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--arch-prd) 15%,transparent);color:var(--arch-prd)}
.arch-node.dev .arch-node-ico{background:color-mix(in srgb,var(--arch-dev) 15%,transparent);color:var(--arch-dev)}
.arch-node b{display:block;font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arch-node > div{min-width:0}
.arch-node[data-vm]{cursor:pointer}.arch-node[data-vm]:hover{border-color:var(--accent)}
.arch-node small{display:block;font-size:11px;color:var(--muted)}
.arch-lic{display:flex;align-items:center;gap:14px;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px 18px;flex-wrap:wrap}
.arch-lic h4{margin:0;font-size:15px;font-weight:600}
.arch-bp{font-size:15px;font-weight:500;color:var(--arch-prd);letter-spacing:-.02em;line-height:1}
.arch-bp b{font-weight:800;color:var(--ink)}
.arch-keys{display:flex;gap:8px;flex:1;flex-wrap:wrap;justify-content:center}
.arch-key{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--arch-prd) 15%,transparent);color:var(--arch-prd)}

@media(max-width:1000px){ .arch-fields.f4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:900px){ .arch-cols{grid-template-columns:minmax(0,1fr)} .arch-app{grid-template-columns:1fr;justify-items:start} .arch-links{gap:0} .arch-link{height:52px} .arch-fields.f3{grid-template-columns:repeat(2,minmax(0,1fr))} .grid { grid-template-columns: minmax(0, 1fr); } .func-funnel-9 { grid-template-columns: repeat(3, 1fr); } }
@media(max-width: 700px){ header.top { flex-direction: column; align-items: stretch; gap: 12px; padding: 14px 0 10px; } .top-nav { justify-content: flex-end; width: 100%; } .func-funnel-9 { grid-template-columns: repeat(2, 1fr); } }
