/* Identidade aplicada a partir dos arquivos de marca fornecidos pela IPvFull. */
:root{--bg:#11171d;--surface:#1b242d;--raised:#24313d;--line:#344858;--text:#f2f7fb;--muted:#a7bbc9;--blue:#399ce3;--green:#5ce0b0;--red:#ff8490;--amber:#eec775;--input:#121d26;--shadow:0 20px 70px #0007;font-family:'Segoe UI',Arial,sans-serif}
body.light{--bg:#eff5f9;--surface:#fff;--raised:#e2eff8;--line:#c0d5e4;--text:#183344;--muted:#526d80;--blue:#1477b9;--green:#08764f;--red:#b4263d;--amber:#846016;--input:#f9fcfe}
header{background:linear-gradient(110deg,#17222c,#203a4d);box-shadow:0 4px 28px #06162438;border-bottom:1px solid #399ce360;color:#f2f7fb;padding-top:.45rem;padding-bottom:.45rem}
header .brand{font-size:1.35rem;letter-spacing:-.04em;gap:.65rem}header .brand img{width:46px;height:46px;border-radius:11px;object-fit:cover}header .brand small{display:block;font-size:.53rem;letter-spacing:.15em;color:#9fcdec;font-weight:500}header .company{color:#d5e4ed}header nav a{color:#b5c9d8}header nav a.current{color:#fff;background:#399ce314;border-bottom-color:#43afff}header nav a:hover{color:#fff}header .tenant-picker{color:#b5c9d8}
.notice{background:linear-gradient(90deg,color-mix(in srgb,var(--blue) 9%,var(--bg)),var(--bg));border-bottom-color:color-mix(in srgb,var(--blue) 20%,var(--line))}
button,.panel,.list,.metric,details{border-radius:9px}button.primary,.primary{background:linear-gradient(125deg,#2499ed,#167ec6);border-color:#319ee9;color:#fff}.light button.primary{color:#fff}button.primary:hover{background:#187dbf}.pagehead h1{font-weight:700;letter-spacing:-.035em}.pagehead h1::before{content:'';display:inline-block;width:5px;height:1em;vertical-align:-.08em;margin-right:.65rem;border-radius:3px;background:var(--blue)}.metric{border-top:2px solid var(--blue);box-shadow:0 8px 25px #0000000c}.overview-title{background:linear-gradient(110deg,color-mix(in srgb,var(--blue) 12%,var(--bg)),var(--bg))}.panel{box-shadow:0 7px 25px #0000000d}
.login{background:radial-gradient(ellipse at 15% 10%,#1379ba33,transparent 60%),radial-gradient(ellipse at 95% 90%,#3e789f22,transparent 65%),#11191f}.loginbox{padding:1.75rem 2.25rem 2rem;border-top:3px solid #299ce8;border-radius:16px;max-width:490px}.login-brand{height:180px;margin:-1rem -1.1rem 1rem;overflow:hidden;border-radius:12px}.login-brand img{width:100%;height:100%;object-fit:cover;object-position:center}.loginbox h1{font-size:1.55rem}.loginbox button{padding:.8rem}
.mapcanvas{background-color:var(--bg);background-image:radial-gradient(color-mix(in srgb,var(--blue) 30%,transparent) .7px,transparent .7px)}.node.unknown circle{stroke:var(--muted)}.edge.up{stroke:var(--green);stroke-width:3}.edge.down{stroke:var(--red);stroke-width:3;stroke-dasharray:8 5}.edge.unknown{stroke:var(--muted);stroke-dasharray:4 5}.edgelabel{font-size:12px}.winbox-screen{height:min(72vh,768px);width:100%;background:#13191e;overflow:hidden;border:1px solid var(--line);border-radius:8px}.winbox-screen canvas{outline:none}.topofoot{max-width:calc(100% - 140px);font-size:11px}
@media(max-width:800px){header .brand{font-size:1.1rem}header .brand img{width:37px;height:37px}.loginbox{padding:1.5rem}.login-brand{margin:0 0 1rem;height:150px}.pagehead h1::before{margin-right:.4rem}.winbox-screen{height:65vh}}

.client-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:1rem}.client-card .pagehead{margin-bottom:.8rem}.client-card h2{margin:0;font-size:1.15rem}.client-card .actions{margin-top:1.3rem}.client-count{font-size:1.4rem}.tenant-context{display:flex;align-items:center;gap:1rem;padding:.8rem 1.75rem;border-bottom:1px solid var(--line)}
dialog.remote-fullscreen[open]{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;border:0;border-radius:0;padding:0;display:flex;flex-direction:column;overflow:hidden}
dialog.remote-fullscreen .dialoghead{flex:0 0 auto;padding:10px 16px}
dialog.remote-fullscreen .dialoghead h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
dialog.remote-fullscreen .dialogbody{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:8px 12px;overflow:hidden}
dialog.remote-fullscreen .dialogbody>p,dialog.remote-fullscreen .dialogbody>small{flex:0 0 auto;margin:0}
dialog.remote-fullscreen #ssh-terminal,dialog.remote-fullscreen .winbox-screen{flex:1;min-height:0;height:auto;width:100%;overflow:hidden;border-radius:0}
 .edge-card{cursor:pointer}.edge-frame{fill:var(--bg);stroke:var(--blue);stroke-width:1.5;filter:drop-shadow(0 3px 5px #0004)}.edge-card .edgelabel{stroke:none;font-size:12px}.edge-card .edgelabel tspan:first-child{font-weight:600}
 .backup-script-code{width:100%;min-height:100px;font:13px Consolas,monospace;white-space:pre;overflow:auto}
@keyframes link-down-blink{0%,100%{stroke-opacity:1}50%{stroke-opacity:.15}}
.mapcanvas .edge.up{stroke:var(--green);stroke-dasharray:none;stroke-opacity:1;animation:none}
.mapcanvas .edge.down{stroke:var(--red);stroke-dasharray:none;animation:link-down-blink 1.2s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.mapcanvas .edge.down{animation:none;stroke-opacity:1}}
