/* J.A.R.V.I.S. public page: one column, no sidebar, no controls. Uses app.css (J.A.R.V.I.S. look). */
body.public{display:block}
.pub{max-width:1280px;margin:0 auto;padding:22px 20px 0;display:grid;gap:16px}
.pubhead{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-bottom:6px}
.pubhead .brand{display:flex;align-items:center;gap:14px;flex:1;min-width:260px}
.pubhead .logo{width:52px;height:52px}
.pubhead h1{font-family:var(--mono-hud);letter-spacing:.24em;font-size:26px;color:#fff;text-shadow:0 0 18px rgba(34,211,238,.5)}
.pubhead small{display:block;color:var(--mute);font-size:12.5px;letter-spacing:.04em;margin-top:2px}
.pubstate{display:flex;align-items:center;gap:10px;padding:8px 14px;border:1px solid var(--line);background:var(--panel);font-family:var(--mono-hud)}
.pubstate b{display:block;font-size:13px;letter-spacing:.06em}
.pubstate small{display:block;color:var(--mute);font-size:11px}
.pubstate .dot{width:10px;height:10px}
main#main{display:grid;gap:16px}
.pubkpis .kpi{min-height:112px}
.pub .foot{margin-top:6px}
@media (max-width:860px){.pub .grid.g3{grid-template-columns:minmax(0,1fr)}.pub .g21{grid-template-columns:minmax(0,1fr)}}
