@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@500;600&display=swap'); @import './tokens.css'; * { box-sizing: border-box; } html, body { margin: 0; min-width: 0; overflow-x: clip; background: var(--color-paper); color: var(--color-ink-soft); font-family: var(--font-body); } body { min-height: 100dvh; font-size: var(--text-base); line-height: 1.55; } button, input, select { font: inherit; } button, a { -webkit-tap-highlight-color: transparent; } button { cursor: pointer; } button:disabled { cursor: not-allowed; opacity: 0.55; } a:active, button:active { transform: translateY(1px); } a { color: inherit; } h1, h2, p { margin: 0; } h1, h2 { color: var(--color-ink); font-family: var(--font-display); font-style: normal; letter-spacing: -0.025em; overflow-wrap: anywhere; } h1 { font-size: var(--text-xl); line-height: 1.1; } h2 { font-size: var(--text-lg); line-height: 1.2; } small { color: var(--color-muted); font-size: var(--text-xs); } .tnum { font-family: var(--font-mono); font-variant-numeric: tabular-nums; } .mono-label { color: var(--color-muted); font-size: var(--text-xs); font-weight: 500; letter-spacing: 0.06em; } .sr-only { position: absolute; width: 1px; max-width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); } :focus { outline: none; } :focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; } .topbar { border-bottom: var(--rule); } .topbar__inner, .workspace, .footer-line { width: min(100% - var(--space-lg), 76rem); margin-inline: auto; } .topbar__inner { min-height: 4.25rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-sm); } .brand { color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-md); font-weight: 600; text-decoration: none; white-space: nowrap; } .topbar__nav { display: flex; align-items: center; gap: var(--space-sm); } .topbar__divider { width: 1px; height: 1.1rem; background: var(--color-rule); } .search-pill { min-height: 2.75rem; justify-self: end; display: flex; align-items: center; gap: var(--space-xs); padding-inline: var(--space-sm); border: var(--rule); border-radius: var(--radius-control); background: var(--color-paper-raised); color: var(--color-muted); white-space: nowrap; transition: transform var(--dur-micro) var(--ease-out); } .search-pill kbd, .palette kbd { border: var(--rule); border-radius: var(--radius-control); color: var(--color-ink-soft); font-family: var(--font-mono); font-size: var(--text-xs); padding: var(--space-3xs) var(--space-2xs); } .search-pill__mobile { display: none; } .topbar__actions { display: flex; align-items: center; justify-content: end; gap: var(--space-xs); } .nav-link { display: none; color: var(--color-ink-soft); font-size: var(--text-sm); text-decoration: none; white-space: nowrap; } .button { min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: var(--radius-control); padding: var(--space-xs) var(--space-md); font-weight: 600; line-height: 1; white-space: nowrap; transition: transform var(--dur-micro) var(--ease-out); } .button:active { transform: translateY(1px); } .button:disabled { cursor: not-allowed; opacity: 0.55; } .button[data-state='loading'] { cursor: wait; opacity: 0.7; } .button[data-state='error'] { border-color: var(--color-error); color: var(--color-error); } .button[data-state='success'] { border-color: var(--color-success); color: var(--color-success); } .button--primary { background: var(--color-accent); color: var(--color-accent-ink); } .button--quiet { border-color: var(--color-rule); background: var(--color-paper); color: var(--color-ink); } .button--danger { border-color: var(--color-error); background: var(--color-paper); color: var(--color-error); } .workspace { padding-block: var(--space-xl) var(--space-2xl); } .public-status-workspace { width: 80%; } .page-head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-md); padding-bottom: var(--space-lg); border-bottom: var(--rule); } .page-head > div { display: grid; gap: var(--space-xs); min-width: 0; } .page-head p:not(.mono-label) { max-width: 62ch; } .page-head__actions, .form-actions { display: flex; flex-wrap: wrap; gap: var(--space-xs); } .back-link { font-size: var(--text-sm); text-decoration-color: var(--color-rule-strong); text-underline-offset: var(--space-2xs); white-space: nowrap; } .monitor-list { border-top: var(--rule); } .monitor-list-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-xs) var(--space-md); padding-block: var(--space-xs); } .monitor-sort { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); color: var(--color-muted); font-size: var(--text-sm); } .monitor-sort button { border: var(--rule); border-radius: 999px; background: transparent; color: var(--color-ink-soft); padding: var(--space-2xs) var(--space-sm); } .monitor-sort button[aria-pressed='true'] { border-color: var(--color-ink); background: var(--color-ink); color: var(--color-paper); } .bulk-monitor-editor { display: grid; grid-template-columns: minmax(8rem, auto) repeat(2, minmax(12rem, 1fr)); align-items: end; gap: var(--space-sm) var(--space-md); margin-bottom: var(--space-md); padding: var(--space-md); border: var(--rule); background: var(--color-paper-raised); } .bulk-monitor-editor__select-all { display: flex; align-items: center; align-self: center; gap: var(--space-xs); color: var(--color-ink); } .bulk-monitor-editor__frequency { margin: 0; } .bulk-monitor-editor__actions { display: flex; flex-wrap: wrap; grid-column: 1 / -1; gap: var(--space-xs); } .monitor-filters { display: grid; grid-template-columns: minmax(14rem, 2fr) repeat(2, minmax(10rem, 1fr)) auto; align-items: end; gap: var(--space-sm); padding-block: var(--space-sm) var(--space-md); } .monitor-row__name { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); } .monitor-badge { display: inline-flex; align-items: center; width: max-content; border: 1px solid color-mix(in srgb, var(--badge-color) 55%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--badge-color) 12%, transparent); color: var(--badge-color); font-size: var(--text-xs); font-weight: 600; line-height: 1; padding: var(--space-2xs) var(--space-xs); } .badge-create-prompt { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); color: var(--color-muted); font-size: var(--text-sm); } .bulk-monitor-editor > .field-error { grid-column: 1 / -1; } .monitor-row-shell { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; border-bottom: var(--rule); } .monitor-row-shell--selectable { grid-template-columns: auto minmax(0, 1fr); } .monitor-row__select { margin-inline: var(--space-sm); } .monitor-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-xs) var(--space-sm); align-items: center; padding-block: var(--space-md); text-decoration: none; } .monitor-row__identity { display: grid; min-width: 0; } .monitor-row strong { color: var(--color-ink); font-weight: 600; } .monitor-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .monitor-row__schedule, .monitor-row__regions, .monitor-row > .tnum { grid-column: 2; color: var(--color-muted); font-size: var(--text-xs); } .status-dot { width: 0.75rem; height: 0.75rem; border-radius: 50%; background: var(--color-muted); } .status-dot--up { background: var(--color-success); } .status-dot--degraded { background: var(--color-warning); } .status-dot--recovering { background: var(--color-warning); } .status-dot--down { background: var(--color-error); } .state, .center-state { padding: var(--space-xl) 0; display: grid; gap: var(--space-sm); } .state--error { color: var(--color-error); } .center-state { min-height: 100dvh; place-content: center; } .form-page, .detail { display: grid; gap: var(--space-xl); } .monitor-form { display: grid; gap: var(--space-lg); max-width: 52rem; } .form-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); } .field { display: grid; gap: var(--space-2xs); color: var(--color-ink); font-weight: 500; } .field em { color: var(--color-muted); font-size: var(--text-xs); font-style: normal; font-weight: 400; } .field > small { min-height: 1lh; } .frequency-field__heading { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-sm); } .frequency-field__value { color: var(--color-ink-soft); font-size: var(--text-sm); font-weight: 600; } .frequency-slider { width: 100%; min-height: 2rem; appearance: auto; border: 0; outline-offset: 3px; background: transparent; padding: 0; accent-color: var(--color-ink); cursor: pointer; } .frequency-slider:focus-visible { border-color: transparent; outline: 2px solid var(--color-focus); } .frequency-slider__marks { position: relative; display: block; width: 100%; height: 1.4rem; margin-top: calc(-1 * var(--space-2xs)); color: var(--color-muted); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 400; } .frequency-slider__mark { position: absolute; top: 0; display: grid; justify-items: center; gap: var(--space-3xs); transform: translateX(-50%); white-space: nowrap; } .frequency-slider__mark::before { width: 1px; height: 0.35rem; background: var(--color-ink-soft); content: ''; } .frequency-slider__mark:first-child { justify-items: start; transform: none; } .frequency-slider__mark:last-child { justify-items: end; transform: translateX(-100%); } .field b, .regions b { color: var(--color-error); } input, select { min-height: 2.75rem; min-width: 0; border: 1px solid var(--color-rule-strong); border-radius: var(--radius-control); outline: 2px solid transparent; outline-offset: 1px; background: var(--color-paper); color: var(--color-ink); padding-inline: var(--space-sm); } input:focus-visible, select:focus-visible { border-color: var(--color-ink); outline: 2px solid var(--color-focus); outline-offset: 1px; } input[aria-invalid='true'] { border-color: var(--color-error); } input[aria-invalid='false']:not(:placeholder-shown):valid { border-color: var(--color-success); } input:disabled, select:disabled { cursor: not-allowed; opacity: 0.55; } .field-error { color: var(--color-error); font-size: var(--text-xs); min-height: 1lh; } .public-slug-field { margin-top: var(--space-md); } .public-slug-field__input { display: flex; align-items: center; overflow: hidden; border: var(--rule); border-radius: var(--radius-control); background: var(--color-paper-raised); } .public-slug-field__input > span { padding-inline-start: var(--space-sm); color: var(--color-muted); font-family: var(--font-mono); font-size: var(--text-sm); white-space: nowrap; } .public-slug-field__input input { min-width: 0; border: 0; } .regions { border: 0; margin: 0; padding: 0; } .regions legend { color: var(--color-ink); font-weight: 500; margin-bottom: var(--space-xs); } .region-groups { display: grid; gap: var(--space-xs); } .region-group { display: grid; gap: var(--space-xs); min-width: 0; } .region-group h2 { color: var(--color-muted); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; } .region-options { display: grid; gap: var(--space-xs); } .region-option { display: flex; align-items: center; gap: var(--space-sm); min-height: 2.75rem; padding: var(--space-sm); border: var(--rule); border-radius: var(--radius-control); color: var(--color-ink); } .region-option input { accent-color: var(--color-accent); min-height: 1.25rem; min-width: 1.25rem; padding: 0; } .region-option span { display: grid; min-width: 0; } .region-option strong { white-space: nowrap; } .estimate { display: grid; gap: var(--space-xs); border-block: var(--rule); padding-block: var(--space-md); } .estimate strong { color: var(--color-ink); font-size: var(--text-xl); line-height: 1; } .estimate p { font-size: var(--text-sm); } .diagnostic-option { display: grid; gap: var(--space-xs); border: 0; margin: 0; padding: 0; } .diagnostic-option legend { color: var(--color-ink); font-weight: 500; margin-bottom: var(--space-xs); } .diagnostic-option__control { align-items: flex-start; } .diagnostic-option__control span { gap: var(--space-2xs); } .diagnostic-option__control small { max-width: 72ch; line-height: 1.45; } .estimate--secondary { margin-top: var(--space-xs); border-block: 0; border-inline-start: 3px solid var(--color-accent); padding-block: var(--space-xs); padding-inline-start: var(--space-md); } .range-tabs { display: flex; gap: var(--space-2xs); border-bottom: var(--rule); overflow-x: auto; } .range-tabs button { min-height: 2.75rem; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--color-muted); font-size: var(--text-sm); padding-inline: var(--space-sm); white-space: nowrap; } .range-tabs button.is-active { border-bottom-color: var(--color-accent); color: var(--color-ink); } .stat-strip { display: grid; grid-template-columns: minmax(0, 1fr); border-top: var(--rule); } .stat-strip > div { display: grid; gap: var(--space-2xs); padding-block: var(--space-md); border-bottom: var(--rule); } .stat-strip span, .stat-strip small { font-size: var(--text-xs); } .stat-strip strong { color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-lg); font-variant-numeric: tabular-nums; } .region-stats { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-sm); } .region-stats div { display: grid; gap: var(--space-3xs); } .region-stats dt { color: var(--color-muted); font-size: var(--text-xs); } .region-stats dd { margin: 0; color: var(--color-ink); font-size: var(--text-md); } .gap-note { border-inline-start: 3px solid var(--color-warning); padding-inline-start: var(--space-sm); color: var(--color-ink-soft); font-size: var(--text-sm); } .chart-section, .history { display: grid; gap: var(--space-md); } .chart-section > div:first-child, .history > div:first-child { display: grid; gap: var(--space-2xs); } .chart-section__title-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-sm); } .chart-view-toggle { display: inline-flex; flex-shrink: 0; overflow: hidden; border: 1px solid var(--color-rule-strong); border-radius: var(--radius-control); background: var(--color-paper); } .chart-view-toggle button { min-height: 2.25rem; border: 0; border-inline-start: 1px solid var(--color-rule-strong); background: transparent; color: var(--color-muted); font: inherit; font-size: var(--text-xs); padding-inline: var(--space-sm); white-space: nowrap; } .chart-view-toggle button:first-child { border-inline-start: 0; } .chart-view-toggle button.is-active { background: var(--color-ink); color: var(--color-paper); } .chart-view-toggle button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -3px; } .chart-section p, .history p { font-size: var(--text-sm); } .latency-summary { display: grid; margin: 0; border-bottom: var(--rule); } .latency-summary > div { display: grid; gap: var(--space-3xs); padding-block: var(--space-md); border-top: var(--rule); } .latency-summary dt { color: var(--color-muted); font-size: var(--text-sm); } .latency-summary dd { margin: 0; color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-xl); font-weight: 650; } .history__evidence-note { color: var(--color-muted); font-size: var(--text-xs) !important; } .history__evidence-row td { padding-block: 0; padding-inline-start: var(--space-xl); } .history__evidence-disclosure { max-width: 48rem; border-inline-start: 2px solid var(--color-rule); padding-inline-start: var(--space-sm); } .history__evidence-disclosure summary { color: var(--color-ink-soft); cursor: pointer; font-size: var(--text-xs); padding-block: var(--space-2xs); } .history__evidence-disclosure summary span { color: var(--color-muted); } .history__evidence-disclosure summary:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; } .history__evidence-disclosure .endpoint-evidence { margin-top: var(--space-sm); padding-bottom: var(--space-2xs); } .diagnostic-filters { display: grid; grid-template-columns: minmax(0, 12rem) minmax(0, 16rem); gap: var(--space-md); align-items: end; border-block: var(--rule); padding-block: var(--space-md); } .dns-history .state { padding-block: var(--space-md); } .dns-diagnostics-table table { min-width: 78rem; } .dns-diagnostics-table td, .dns-diagnostics-table th { min-width: 7rem; } .dns-diagnostics-table td { max-width: 18rem; } .dns-value { overflow-wrap: anywhere; word-break: break-word; } .dns-value > span, .dns-diagnostics-table td > small, .dns-diagnostics-table td > span > small { display: block; } .dns-diagnostics-table td > small { margin-top: var(--space-3xs); } .endpoint-evidence { min-width: min(16rem, 100%); max-width: 24rem; display: grid; gap: var(--space-xs); font-size: var(--text-xs); } .endpoint-evidence__target, .endpoint-evidence__cdn, .endpoint-evidence__hostname { display: grid; gap: var(--space-3xs); min-width: 0; } .endpoint-evidence__label { color: var(--color-muted); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 500; } .endpoint-evidence__value, .endpoint-evidence__meta, .endpoint-evidence__signal-value { min-width: 0; overflow-wrap: anywhere; } .endpoint-evidence__value { color: var(--color-ink); font-family: var(--font-mono); } .endpoint-evidence__value--url, .endpoint-evidence__signal-value { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .endpoint-evidence__meta { color: var(--color-muted); } .endpoint-evidence__signals { border-top: var(--rule); padding-top: var(--space-xs); } .endpoint-evidence__signals summary { color: var(--color-ink-soft); cursor: pointer; font-size: var(--text-xs); white-space: nowrap; } .endpoint-evidence__signals summary:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; } .endpoint-evidence__signals ul { display: grid; gap: var(--space-xs); margin: var(--space-xs) 0 0; padding: 0; list-style: none; } .endpoint-evidence__signals li { display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr) auto; align-items: start; gap: var(--space-xs); min-width: 0; } .endpoint-evidence__signal-name { color: var(--color-muted); font-family: var(--font-mono); white-space: nowrap; } .endpoint-evidence__signal-value { color: var(--color-ink-soft); font-family: var(--font-mono); } .endpoint-evidence__copy { min-height: 2rem; border: 1px solid var(--color-rule); border-radius: var(--radius-control); background: var(--color-paper); color: var(--color-ink); font-size: var(--text-xs); padding-inline: var(--space-xs); white-space: nowrap; } .endpoint-evidence__copy:hover { background: var(--color-paper-raised); border-color: var(--color-ink-soft); } .endpoint-evidence__empty { margin-top: var(--space-xs); color: var(--color-muted); font-size: var(--text-xs) !important; } .chart { min-width: 0; border-block: var(--rule); padding-block: var(--space-sm); } .chart-legend { display: flex; flex-wrap: wrap; gap: var(--space-md); row-gap: 0; color: var(--color-ink-soft); font-size: var(--text-xs); } .chart-legend span, .chart-legend button { display: inline-flex; align-items: center; gap: var(--space-2xs); } .chart-legend button { appearance: none; border: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; min-height: 2.75rem; padding: var(--space-3xs); } .chart-legend button:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; } .chart-legend button:active { background: var(--color-paper-muted); } .chart-legend button.is-hidden { text-decoration-line: line-through; } .chart-legend i { width: var(--space-xs); height: var(--space-xs); border-radius: 50%; } .percentile-chart-section { margin-top: calc(-1 * var(--space-md)); } .percentile-chart-legend__p50 { background: var(--region-series-1); } .percentile-chart-legend__p95 { background: var(--region-series-2); } .percentile-chart-legend__p99 { background: var(--region-series-3); } .table-wrap { overflow-x: auto; border-top: var(--rule); } table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); } th { color: var(--color-muted); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 500; text-align: left; white-space: nowrap; } th, td { padding: var(--space-sm); border-bottom: var(--rule); vertical-align: top; } td { min-width: 8rem; } .result { font-family: var(--font-mono); font-size: var(--text-xs); } .result--success { color: var(--color-success); } .result--failure { color: var(--color-error); } .empty-inline { color: var(--color-muted); } .history__more { justify-self: start; } .footer-line { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-xs); border-top: var(--rule); padding-block: var(--space-md); color: var(--color-muted); font-size: var(--text-xs); } .signin { min-height: 100dvh; display: grid; place-items: center; padding: var(--space-lg); } .signin__form { width: min(100%, 25rem); display: grid; gap: var(--space-md); padding: var(--space-xl); border: var(--rule); border-radius: var(--radius-surface); } .signin__form > p:not(.product-mark) { font-size: var(--text-sm); } .palette-layer { position: fixed; inset: 0; z-index: var(--z-modal); display: grid; place-items: start center; padding: var(--space-md); background: var(--color-overlay); } .palette { width: min(100%, 38rem); margin-top: max(var(--space-xl), 12dvh); display: grid; gap: var(--space-md); padding: var(--space-md); border: var(--rule); border-radius: var(--radius-surface); background: var(--color-paper); color: var(--color-ink); } .palette__input { font-family: var(--font-mono); } .palette__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-xs); } .palette__results { display: grid; border-block: var(--rule); max-height: min(50dvh, 24rem); overflow-y: auto; } .palette__result { min-height: 3.5rem; display: grid; gap: var(--space-3xs); padding: var(--space-xs) var(--space-sm); border: 0; border-bottom: var(--rule); background: var(--color-paper); color: var(--color-ink); text-align: left; } .palette__result:last-child { border-bottom: 0; } .palette__result.is-active, .palette__result:hover { background: var(--color-paper-raised); } .palette__result small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .palette__empty { padding: var(--space-md); color: var(--color-muted); } .palette__hint { display: flex; align-items: center; gap: var(--space-xs); flex-wrap: wrap; color: var(--color-muted); font-family: var(--font-mono); font-size: var(--text-xs); } .confirm { width: min(calc(100% - var(--space-lg)), 32rem); border: var(--rule); border-radius: var(--radius-surface); background: var(--color-paper); color: var(--color-ink); padding: var(--space-lg); } .confirm::backdrop { background: var(--color-overlay); } .confirm form { display: grid; gap: var(--space-md); } @media (hover: hover) and (pointer: fine) { input:hover, select:hover { border-color: var(--color-ink-soft); } .brand:hover, .nav-link:hover, .back-link:hover { color: var(--color-accent); } .search-pill:hover { background: var(--color-paper-muted); border-color: var(--color-accent); } .button--primary:hover { background: var(--color-accent-hover); transform: translateY(-1px); } .button--quiet:hover, .button--danger:hover { background: var(--color-paper-raised); border-color: var(--color-ink-soft); } .chart-legend button:hover { color: var(--color-ink); } .monitor-row:hover { background: var(--color-paper-raised); } .region-option:hover { background: var(--color-paper-raised); } .range-tabs button:hover { color: var(--color-ink); } } @media (min-width: 40rem) { .topbar__actions .nav-link { display: block; } .page-head { flex-direction: row; justify-content: space-between; align-items: end; } .form-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .stat-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); } .stat-strip > div { border-inline-end: var(--rule); padding-inline: var(--space-md); } .stat-strip > div:last-child { border-inline-end: 0; } .latency-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); } .latency-summary > div { border-inline-start: var(--rule); padding-inline: var(--space-lg); } .latency-summary > div:first-child { border-inline-start: 0; } .monitor-row { grid-template-columns: auto minmax(14rem, 1fr) minmax(9rem, 0.8fr) minmax(4rem, 0.4fr) minmax( 6rem, 0.5fr ); } .monitor-row__schedule, .monitor-row__regions, .monitor-row > .tnum { grid-column: auto; } } @media (min-width: 48rem) { .region-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); } } @media (max-width: 39.99rem) { .bulk-monitor-editor { grid-template-columns: 1fr; } .bulk-monitor-editor__actions, .bulk-monitor-editor > .field-error { grid-column: 1; } .chart-section__title-row { align-items: stretch; flex-direction: column; } .chart-view-toggle { width: 100%; } .chart-view-toggle button { flex: 1; } .topbar__inner { grid-template-columns: minmax(0, 1fr) auto; padding-block: var(--space-xs); } .topbar__nav { grid-column: 1 / -1; overflow-x: auto; padding-bottom: var(--space-2xs); } .search-pill { justify-self: start; } .topbar__actions { grid-column: auto; width: auto; padding-top: 0; border-top: 0; } .topbar__actions .button { margin-inline-start: auto; padding-inline: var(--space-xs); } .search-pill > span:not(.search-pill__mobile), .search-pill kbd { display: none; } .search-pill .search-pill__mobile { display: inline; } .palette-layer { padding: 0; } .palette { width: 100%; min-height: 100dvh; margin: 0; border: 0; border-radius: 0; align-content: start; padding-top: var(--space-xl); } .footer-line { flex-direction: column; align-items: flex-start; } .footer-line span:nth-child(2) { display: none; } .table-wrap { overflow: visible; } .table-wrap table, .table-wrap tbody, .table-wrap tr, .table-wrap th, .table-wrap td { display: block; } .table-wrap thead { display: none; } .table-wrap tr { border-bottom: var(--rule); padding-block: var(--space-sm); } .table-wrap td { min-width: 0; display: grid; grid-template-columns: minmax(7rem, 0.9fr) minmax(0, 1.1fr); gap: var(--space-sm); padding: var(--space-2xs) 0; border: 0; } .table-wrap td::before { content: attr(data-label); color: var(--color-muted); font-family: var(--font-mono); font-size: var(--text-xs); } .history__evidence-row { padding-top: 0; } .history__evidence-row td { display: block; padding-block: 0; padding-inline: 0 0; padding-inline-start: var(--space-md); } .history__evidence-row td::before { content: none; } .history__evidence-disclosure { max-width: none; } .diagnostic-filters { grid-template-columns: minmax(0, 1fr); } .dns-diagnostics-table table { min-width: 0; } .dns-diagnostics-table td { max-width: none; } } .notifications-page { display: grid; gap: var(--space-xl); } .notification-list { display: grid; border-bottom: var(--rule); } .notification-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-md); padding-block: var(--space-md); border-top: var(--rule); } .notification-card > div:first-child { display: grid; gap: var(--space-2xs); } .notification-card h2, .notification-editor h2 { font-size: var(--text-lg); } .notification-card p, .notification-editor p, .notification-rules__intro { color: var(--color-muted); font-size: var(--text-sm); } .notification-card__actions, .notification-enabled { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); } .notification-enabled { color: var(--color-ink-soft); font-size: var(--text-sm); } .notification-editor { padding: var(--space-lg); border: var(--rule); border-radius: var(--radius-surface); background: var(--color-paper-raised); } .notification-editor__heading, .notification-instructions, .notification-rules { display: grid; gap: var(--space-xs); } .notification-instructions { padding: var(--space-md); border-inline-start: 3px solid var(--color-accent); background: var(--color-paper); } .notification-feedback { max-width: 52rem; } .notification-service-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-xs); } .notification-thresholds { margin-top: var(--space-sm); } .notification-repeat-field { max-width: 20rem; } @media (max-width: 39.99rem) { .notification-card { grid-template-columns: minmax(0, 1fr); } .notification-card__actions .button { flex: 1 1 auto; } .notification-service-options { grid-template-columns: minmax(0, 1fr); } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 150ms !important; transition-duration: 150ms !important; } button, a { transform: none !important; } } .status-page-list { display: grid; border-bottom: var(--rule); } .status-page-list__row { min-height: 4.75rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-md); border-top: var(--rule); color: var(--color-ink-soft); } .status-page-list__details { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: var(--space-lg); align-self: stretch; text-decoration: none; } .status-page-list__details strong { color: var(--color-ink); } .status-page-list__external { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: var(--rule); border-radius: var(--radius-control); color: var(--color-ink); } .status-page-list__external svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; } .status-page-editor { display: grid; gap: var(--space-xl); } .status-page-editor__title { max-width: 36rem; } .status-page-editor__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem); align-items: start; gap: var(--space-lg); } .status-page-editor__groups, .status-page-editor__available, .status-group-editor, .status-group-editor__monitors { display: grid; gap: var(--space-sm); } .status-page-editor__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); } .status-page-editor__groups > .button, .status-group-editor--full { grid-column: 1 / -1; } .status-group-editor { padding: var(--space-md); border: var(--rule); border-radius: var(--radius-surface); background: var(--color-paper-raised); } .status-group-editor--collapsed { border-style: dashed; } .status-group-editor__head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-xs); } .status-group-editor__head input { width: 100%; border: 0; border-bottom: var(--rule); background: transparent; color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-md); font-weight: 600; padding: var(--space-xs); } .status-group-editor--half .status-group-editor__head { grid-template-columns: auto minmax(0, 1fr); } .status-group-editor--half .status-group-editor__actions { grid-column: 1 / -1; } .status-group-editor__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-xs); } .status-group-editor__monitors[hidden] { display: none; } .status-page-editor__available { position: sticky; top: var(--space-md); padding: var(--space-md); border: var(--rule); border-radius: var(--radius-surface); } .status-page-editor__available > p, .status-group-editor__monitors > p { color: var(--color-muted); font-size: var(--text-sm); } .status-monitor-editor { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-sm); padding: var(--space-sm); border: var(--rule); border-radius: var(--radius-control); background: var(--color-paper); cursor: grab; } .status-monitor-editor:active { cursor: grabbing; } .status-monitor-editor > span:nth-child(2) { min-width: 0; display: grid; } .status-monitor-editor small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .status-monitor-editor > button { border: 0; background: transparent; color: var(--color-muted); font-size: var(--text-lg); } .drag-handle { color: var(--color-muted); cursor: grab; font-family: var(--font-mono); user-select: none; } .public-status-page { display: grid; gap: var(--space-xl); row-gap: var(--space-md); } .public-status-page__groups { display: grid; gap: var(--space-md); } .public-status-page__group-row { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); } .public-status-page__group-row--paired { grid-template-columns: repeat(2, minmax(0, 1fr)); } .public-status-page__group-row--paired .public-status-group--paired { grid-row: 1 / span var(--paired-track-count); grid-template-rows: subgrid; } .public-status-page__group-row--paired .public-status-group--paired:first-child { grid-column: 1; } .public-status-page__group-row--paired .public-status-group--paired:last-child { grid-column: 2; } .public-status-group__fill, .public-status-group__pagination-spacer { min-height: 0; } .public-status-group--full { grid-column: 1 / -1; } .public-status-page__head { display: grid; gap: var(--space-xs); padding-bottom: var(--space-lg); border-bottom: var(--rule); } .public-status-page__topline { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); } .public-status-page__refresh-toggle { white-space: nowrap; } .status-problem-summary { display: grid; gap: var(--space-md); padding: var(--space-lg); border: 1px solid color-mix(in srgb, var(--color-error) 35%, transparent); border-radius: var(--radius-surface); background: color-mix(in srgb, var(--color-error) 6%, var(--color-paper-raised)); } .status-problem-summary__heading { display: flex; align-items: center; gap: var(--space-sm); } .status-problem-summary__heading h2 { margin: 0; } .status-problem-summary__indicator { display: grid; width: 1.75rem; height: 1.75rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--color-error); color: var(--color-paper-raised); font-weight: 700; } .status-problem-summary__list { display: grid; gap: var(--space-xs); margin: 0; padding: 0; list-style: none; } .status-problem-summary__list li { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-md); padding: var(--space-sm) var(--space-md); border-left: 3px solid var(--color-error); background: var(--color-paper-raised); } .status-problem-summary__list a { color: var(--color-ink); font-weight: 700; } .status-problem-summary__list span { color: var(--color-error); } .status-problem-summary__list li.status-problem-summary__list-item--recovering { border-left-color: var(--color-warning); } .status-problem-summary__list .status-problem-summary__state--recovering { color: var(--color-warning); } .public-status-group { display: grid; padding: var(--space-lg); border: var(--rule); border-radius: var(--radius-surface); background: var(--color-paper-raised); } .public-status-group h2 { margin: 0; } .public-status-group__count { font-weight: normal; } .public-status-group__head, .group-pagination { display: flex; align-items: center; } .public-status-group__head .public-status-group__title { display: flex; align-items: baseline; gap: 0.25em; } .public-status-group__head .public-status-group__count { font-weight: lighter; color: var(--color-muted); } .public-status-group__head { justify-content: space-between; gap: var(--space-md); padding-bottom: var(--space-md); } .group-pagination { gap: var(--space-xs); } .group-pagination--bottom { justify-content: flex-end; padding-top: var(--space-md); border-top: var(--rule); } .group-pagination > span { min-width: 3.5rem; color: var(--color-muted); text-align: center; } .public-status-monitor { min-width: 0; display: grid; grid-template-columns: minmax(10rem, 1fr) 6rem minmax(22rem, 3fr) 5rem; align-items: center; gap: var(--space-md); padding-block: var(--space-md); border-top: var(--rule); text-decoration: none; } .public-status-monitor__summary { display: contents; } .public-status-monitor__name { grid-column: 1; grid-row: 1; min-width: 0; display: flex; align-items: center; gap: var(--space-xs); } .public-status-monitor__name strong { overflow: hidden; color: var(--color-ink); text-overflow: ellipsis; white-space: nowrap; } .public-status-monitor__uptime { grid-column: 2; grid-row: 1; color: var(--color-muted); } .public-status-monitor > .uptime-days { grid-column: 3; grid-row: 1; } .public-status-monitor__uptime--green, .public-status-monitor__uptime--up { color: var(--color-success); } .public-status-monitor__uptime--light-green { color: color-mix(in srgb, var(--color-success) 70%, var(--color-ink)); } .public-status-monitor__uptime--orange, .public-status-monitor__uptime--recovering { color: var(--color-warning); } .public-status-monitor__uptime--red, .public-status-monitor__uptime--down { color: var(--color-error); } .public-status-monitor__uptime--unknown { color: var(--color-muted); } .public-status-monitor__state { grid-column: 4; grid-row: 1; justify-self: end; font-weight: 600; } .public-status-monitor__state--up { color: var(--color-success); } .public-status-monitor__state--down { color: var(--color-error); } .public-status-monitor__state--recovering { color: var(--color-warning); } .public-status-monitor__state--unknown { color: var(--color-muted); } .public-status-group--half .public-status-monitor { grid-template-columns: minmax(0, 1fr); } .public-status-group--half .public-status-monitor__summary { grid-row: 1; min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); } .public-status-group--half .public-status-monitor__name { flex: 1 1 12rem; } .public-status-group--half .public-status-monitor__uptime { flex: 0 0 auto; } .public-status-group--half .public-status-monitor__state { flex: 0 0 auto; margin-left: auto; } .public-status-group--half .uptime-days { grid-column: 1; grid-row: 2; } .monitor-history-danger { display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); padding: var(--space-lg); border: 1px solid color-mix(in srgb, var(--color-error) 45%, var(--color-rule)); border-radius: var(--radius-surface); background: var(--color-paper-raised); } .monitor-history-danger > div { display: grid; gap: var(--space-xs); } .monitor-history-danger h2 { font-size: var(--text-md); } .monitor-history-danger p { color: var(--color-muted); } .monitor-history-danger .monitor-history-danger__success { color: var(--color-success); font-weight: 600; } .monitor-uptime { min-width: 0; display: grid; gap: var(--space-sm); padding: var(--space-lg); border: var(--rule); border-radius: var(--radius-surface); background: var(--color-paper-raised); } .monitor-uptime__summary, .monitor-uptime__range, .monitor-uptime__timing, .monitor-uptime__state { display: flex; align-items: center; } .monitor-uptime__summary, .monitor-uptime__range, .monitor-uptime__timing { justify-content: space-between; gap: var(--space-md); } .monitor-uptime__summary > div { display: grid; gap: var(--space-3xs); } .monitor-uptime__value { color: var(--color-ink); font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.25rem); font-variant-numeric: tabular-nums; line-height: 1; } .monitor-uptime__value--green, .monitor-uptime__value--up, .monitor-uptime__state--up { color: var(--color-success); } .monitor-uptime__value--light-green { color: color-mix(in srgb, var(--color-success) 70%, var(--color-ink)); } .monitor-uptime__value--orange, .monitor-uptime__value--recovering, .monitor-uptime__state--recovering { color: var(--color-warning); } .monitor-uptime__value--red, .monitor-uptime__value--down, .monitor-uptime__state--down { color: var(--color-error); } .monitor-uptime__value--unknown, .monitor-uptime__state--unknown { color: var(--color-muted); } .monitor-uptime__state { gap: var(--space-xs); font-weight: 600; } .monitor-uptime__range { color: var(--color-muted); font-size: var(--text-xs); } .monitor-uptime__timing { flex-wrap: wrap; color: var(--color-muted); font-size: var(--text-sm); } .uptime-days { min-width: 0; display: grid; grid-template-columns: repeat(90, minmax(0, 1fr)); gap: 3px; } .uptime-day { position: relative; height: 1.75rem; border-radius: 2px; } .uptime-day--green, .uptime-day--up { background: var(--color-success); } .uptime-day--light-green { background: color-mix(in srgb, var(--color-success) 58%, var(--color-paper)); } .uptime-day--orange, .uptime-day--degraded { background: var(--color-warning); } .uptime-day--red, .uptime-day--down { background: var(--color-error); } .uptime-day--unknown { background: var(--color-rule); } .uptime-day__tooltip { position: absolute; z-index: var(--z-raised); inset-inline-start: 50%; bottom: calc(100% + var(--space-xs)); width: max-content; max-width: 15rem; display: none; gap: var(--space-3xs); padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-control); background: var(--color-graphite); color: var(--color-graphite-ink); font-size: var(--text-xs); line-height: 1.35; transform: translateX(-50%); pointer-events: none; } .uptime-day__tooltip span { display: block; } .uptime-day:hover .uptime-day__tooltip { display: grid; } @media (max-width: 56rem) { .public-status-workspace { width: min(100% - var(--space-lg), 76rem); } .status-page-editor__groups, .public-status-page__group-row--paired { grid-template-columns: minmax(0, 1fr); } .public-status-page__group-row--paired .public-status-group--paired { grid-row: auto; grid-template-rows: none; } .public-status-page__group-row--paired .public-status-group--paired:first-child, .public-status-page__group-row--paired .public-status-group--paired:last-child { grid-column: 1; } .public-status-group__fill, .public-status-group__pagination-spacer { display: none; } .status-group-editor, .public-status-group { grid-column: 1; } .status-page-editor__layout { grid-template-columns: minmax(0, 1fr); } .status-page-editor__available { position: static; } .public-status-monitor { grid-template-columns: minmax(0, 1fr); } .public-status-monitor__summary { grid-row: 1; min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); } .public-status-monitor__name { flex: 1 1 12rem; } .public-status-monitor__uptime, .public-status-monitor__state { flex: 0 0 auto; } .public-status-monitor > .uptime-days { grid-column: 1; grid-row: 2; overflow: visible; } .public-status-monitor__state { margin-left: auto; } } @media (prefers-color-scheme: dark) { .monitor-badge { border-color: color-mix(in srgb, var(--badge-color) 70%, var(--color-ink)); background: color-mix(in srgb, var(--badge-color) 18%, transparent); color: color-mix(in srgb, var(--badge-color) 62%, var(--color-ink)); } } @media (max-width: 39.99rem) { .monitor-history-danger { align-items: stretch; flex-direction: column; } .public-status-page__topline { align-items: flex-start; flex-wrap: wrap; } .monitor-filters { grid-template-columns: minmax(0, 1fr); } .status-page-list__details { grid-template-columns: minmax(0, 1fr) auto; } .status-page-list__details small { grid-column: 1 / -1; } .public-status-group { padding: var(--space-md); } .uptime-days { gap: 2px; } }