/* service.html: one service in full */
.svc-main { max-width: 1100px; }
.back { display: inline-block; margin: 4px 0 10px; color: var(--muted); font-size: 13px; text-decoration: none; }
.back:hover { color: var(--text); }
.svc-head { padding: 14px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.svc-title { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.svc-port { font: 650 22px var(--mono); }
.svc-title h2 { margin: 0; font-size: 19px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.svc-title .bell { font-size: 16px; }
.svc-sub { color: var(--muted); font-size: 12.5px; margin-top: 2px; overflow-wrap: anywhere; }
.svc-actions { justify-content: flex-start; margin-top: 12px; }
.svc-actions button.danger { color: var(--danger); }
.svc-head + .status { margin: 8px 2px 0; }

.svc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.svc-card { padding: 12px 16px 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.svc-card.wide { grid-column: 1 / -1; }
.svc-card h3 { margin: 0 0 10px; font-size: 13px; color: var(--muted); font-weight: 650; }
.svc-card h4 { margin: 14px 0 6px; font-size: 12px; color: var(--muted); font-weight: 600; }
.svc-card p { margin: 0; }
.small { font-size: 12px; margin-top: 8px !important; }

.facts { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 0; font-size: 13px; }
.facts dt { color: var(--muted); }
.facts dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.facts dd.mono { font: 12px var(--mono); word-break: break-all; }
.facts a { color: var(--accent); }

.who { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.who li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 12.5px; }
.who .user-chip { font-size: 12.5px; }

.tiles { display: flex; gap: 8px; flex-wrap: wrap; }
.tile { display: grid; padding: 8px 14px; border-radius: 10px; background: var(--ok-bg); min-width: 92px; }
.tile.low { background: color-mix(in srgb, var(--danger) 12%, var(--surface)); }
.tile-v { font: 650 18px var(--mono); color: var(--ok); }
.tile.low .tile-v { color: var(--danger); }
.tile-k { font-size: 11.5px; color: var(--muted); }
.bars { display: grid; gap: 8px; margin-top: 14px; }
.bar-row { display: grid; grid-template-columns: 64px minmax(0, 720px) auto; align-items: center; gap: 10px; font-size: 12px; }
.bar-k { color: var(--muted); }
.bar-note { color: var(--muted); font-size: 11px; white-space: nowrap; }
.bar-row .ubar { height: 22px; width: 100%; max-width: 720px; }
.bar-row .ubar i { flex: 1 1 0; min-width: 2px; }
.outage-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; font-size: 12.5px; }
.outage-list li { display: flex; flex-wrap: wrap; gap: 2px 12px; padding: 4px 0; border-top: 1px solid var(--line); }
.outage-list li:first-child { border-top: 0; }
.outage-list li.open .o-when, .outage-list li.open .o-len { color: var(--danger); font-weight: 600; }
.o-when { font-family: var(--mono); font-size: 12px; }
.o-len { font-variant-numeric: tabular-nums; min-width: 5em; }

table.used { width: 100%; border-collapse: collapse; font-size: 12.5px; }
table.used th { text-align: left; color: var(--muted); font-weight: 600; font-size: 11.5px; padding: 0 8px 6px 0; }
table.used td { padding: 6px 8px 6px 0; border-top: 1px solid var(--line); vertical-align: baseline; }
table.used td.num { font-variant-numeric: tabular-nums; white-space: nowrap; }
table.used td.live { color: var(--ok); font-weight: 600; }
table.used td.dev { min-width: 0; }

.events { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 12.5px; }
.events li { display: flex; flex-wrap: wrap; gap: 2px 10px; }
.events time { font: 11.5px var(--mono); color: var(--muted); min-width: 9em; }
.events li.down span:first-of-type { color: var(--danger); }
.events li.recovered span:first-of-type { color: var(--ok); }
.events li.failed { opacity: .8; }

@media (max-width: 640px) {
  .svc-grid { grid-template-columns: 1fr; }
  .svc-card.wide { grid-column: auto; }
  .svc-port { font-size: 18px; }
  .svc-title h2 { font-size: 16px; white-space: normal; }
  .bar-row { grid-template-columns: 1fr auto; }
  .bar-row .ubar { grid-column: 1 / -1; grid-row: 2; }
  .tile { min-width: 0; flex: 1 1 0; padding: 8px 10px; }
  /* a phone shows 기기 · 마지막 사용 · 7일; 30일 and 처음 only fit on wider screens */
  table.used th:nth-child(n+4), table.used td:nth-child(n+4) { display: none; }
}
