body{margin:0}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--surface2:#222535;--border:#2d3148;--text:#e2e8f0;--text-muted:#8892a4;--green:#22c55e;--red:#ef4444;--yellow:#f59e0b;--blue:#3b82f6;--radius:12px}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}.app{max-width:480px;margin:0 auto;padding-bottom:24px}.app-header{background:var(--bg);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:16px 16px 12px;display:flex;position:sticky;top:0}.app-header h1{font-size:18px;font-weight:700}.last-updated{color:var(--text-muted);margin-top:2px;font-size:11px}.header-right{align-items:center;gap:10px;display:flex}.global-status{border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600}.all-ok{color:var(--green);background:#22c55e26}.has-issues{color:var(--red);background:#ef444426}.refresh-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;width:32px;height:32px;font-size:16px}.main-content{flex-direction:column;gap:8px;padding:12px 12px 0;display:flex}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:8px 4px 6px;font-size:12px;font-weight:600}.server-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;margin-bottom:8px;padding:14px;transition:border-color .15s}.server-card:hover{border-color:var(--blue)}.card-offline{border-color:#ef444466}.card-header{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.server-name{font-size:15px;font-weight:600}.server-sub{color:var(--text-muted);margin-top:2px;font-size:12px}.server-sub code{color:var(--text-muted);font-size:11px}.client-tag{color:var(--blue);background:#3b82f626;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.client-tag.infra{color:#a78bfa;background:#8b5cf626}.badge{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600}.badge-online{color:var(--green);background:#22c55e26}.badge-offline{color:var(--red);background:#ef444426}.metrics-row{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface2);border:1px solid var(--border);border-radius:8px;flex-direction:column;flex:1;gap:2px;min-width:80px;padding:6px 10px;display:flex}.chip-warn{border-color:var(--yellow);background:#f59e0b14}.chip-label{color:var(--text-muted);font-size:10px}.chip-value{font-size:13px;font-weight:600}.services-mini{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.svc-badge{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.svc-ok{color:var(--green);background:#22c55e26}.svc-err{color:var(--red);background:#ef444426}.error-msg{color:var(--red);margin-top:6px;font-size:12px}.detail-view{min-height:100vh;padding:16px}.back-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;margin-bottom:16px;padding:6px 14px;font-size:13px}.detail-header{margin-bottom:16px}.detail-header h2{margin-bottom:4px;font-size:22px;font-weight:700}.detail-header code{color:var(--text-muted);font-size:12px}.client-label{color:var(--blue);margin-bottom:4px;font-size:13px}.detail-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:14px}.detail-section h3{color:var(--text-muted);margin-bottom:10px;font-size:13px;font-weight:600}.metrics-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.docker-row,.service-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.docker-row:last-child,.service-row:last-child{border-bottom:none}.docker-name{flex:1}.docker-warn,.service-warn{color:var(--red)}.docker-row code,.service-row code{color:var(--text-muted);font-size:11px}.error-box{border-radius:var(--radius);text-align:center;background:#ef44441a;border:1px solid #ef44444d;padding:16px}.error-box p{color:var(--red);margin-bottom:8px}.error-box code{color:var(--text-muted);font-size:12px}.loading{text-align:center;color:var(--text-muted);padding:40px}.error-banner{border-radius:var(--radius);color:var(--red);background:#ef44441a;border:1px solid #ef44444d;margin:12px;padding:12px 16px;font-size:13px}.provider-badge{border-radius:4px;margin-top:2px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}
