.g-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.g-banner b { font-size: 1.0625rem; }
.g-live { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.g-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--ok); }
.g-sim { margin-left: auto; font-size: var(--t-s); color: var(--ink-2); }
.g-change { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 12px 0; border-top: 1px solid var(--line); }
.g-change:first-child { border-top: 0; }
.g-diff { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; font-size: .9375rem; }
.g-old, .g-new { padding: 8px 10px; border-radius: 8px; overflow-wrap: anywhere; }
.g-old { background: var(--paper-2); color: var(--ink-2); text-decoration: line-through; }
.g-new { background: var(--sun-soft); font-weight: 650; }
.g-check { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: .9375rem; font-weight: 650; cursor: pointer; }
.g-check input { width: 22px; height: 22px; accent-color: var(--ink); }
.g-servers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.g-srv { display: grid; gap: 8px; padding: 14px; border: 2px solid var(--line); border-radius: 14px; background: var(--surface); transition: border-color .2s var(--ease-out); }
.g-srv.is-updating { border-color: var(--beta); border-style: dashed; }
.g-srv.is-fail { border-color: var(--err); }
.g-srv h3 { font-size: 1.0625rem; font-weight: 750; }
.g-ver { font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em; }
.g-ver.is-new { color: var(--ok); }
.g-flow { display: flex; flex-wrap: wrap; gap: 8px; }
.g-log { display: grid; gap: 6px; font-size: .9375rem; }
.g-log li { padding-left: 10px; border-left: 3px solid var(--line); }
.g-log li:first-child { border-left-color: var(--ink); font-weight: 650; }
@media (max-width: 860px) { .g-servers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .g-diff { grid-template-columns: minmax(0, 1fr); } .g-sim { margin-left: 0; } }
@media (prefers-reduced-motion: reduce) { .g-srv { transition: none; } }
.d-app .d-btn { white-space: normal; text-align: center; padding-top: 6px; padding-bottom: 6px; max-width: 100%; }
.g-check { max-width: 100%; }
.g-check input { flex: none; }
