:root {
  --color-primary: var(--md-sys-color-primary);
  --color-primary-container: var(--md-sys-color-primary-container);
  --color-on-primary-container: var(--md-sys-color-on-primary-container);
  --color-background: var(--md-sys-color-background);
  --color-surface: var(--md-sys-color-surface);
  --color-on-surface: var(--md-sys-color-on-surface);
  --color-on-surface-variant: var(--md-sys-color-on-surface-variant);
  --color-surface-container-lowest: var(--md-sys-color-surface-container-lowest);
  --color-surface-container-low: var(--md-sys-color-surface-container-low);
  --color-surface-container-high: var(--md-sys-color-surface-container-high);
  --color-outline: var(--md-sys-color-outline);
  --color-outline-variant: var(--md-sys-color-outline-variant);
  --color-error: var(--md-sys-color-error);
  --color-status-healthy: var(--signal-healthy);
  --font-family-sans: var(--signal-font-ui);
  --font-family-mono: var(--signal-font-mono);
}
*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; background: var(--color-background); color: var(--color-on-surface); }
body { margin: 0; min-height: 100vh; font-family: var(--font-family-sans, Inter, system-ui, sans-serif); background: var(--color-background); }
a { color: var(--color-primary); }
code { font-family: var(--font-family-mono, ui-monospace, monospace); overflow-wrap: anywhere; }
.web-shell { min-height: 100vh; display: grid; grid-template-columns: 264px minmax(0, 1fr); }
.web-sidebar { position: sticky; inset-block-start: 0; height: 100vh; display: flex; flex-direction: column; gap: 1rem; padding: 1rem; background: var(--color-surface-container-low); border-inline-end: 1px solid var(--color-outline-variant); z-index: 30; overflow-y: auto; }
.web-brand-row { display: flex; align-items: center; gap: .5rem; }
.web-brand { flex: 1; min-width: 0; display: flex; align-items: center; gap: .75rem; color: var(--color-on-surface); text-decoration: none; }
.web-brand span:last-child { display: grid; }
.web-brand small { color: var(--color-on-surface-variant); }
.web-brand-mark { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .75rem; background: var(--color-primary-container); color: var(--color-on-primary-container); font-weight: 800; }
.web-icon-button { width: 2.75rem; height: 2.75rem; display: inline-grid; place-items: center; border: 0; border-radius: .5rem; color: var(--color-on-surface); background: transparent; font: inherit; font-size: 1.25rem; cursor: pointer; }
.web-icon-button:hover { background: var(--color-surface-container-high); }
.web-nav-close, .web-menu-button { display: none; }
.web-organization-context { display: grid; gap: .2rem; padding: .75rem; border: 1px solid var(--color-outline-variant); border-radius: .65rem; background: var(--color-surface-container-lowest); }
.web-organization-context form, .web-organization-context label { display: grid; gap: .45rem; margin: 0; }
.web-organization-context select { width: 100%; min-width: 0; min-height: 2.5rem; padding: .5rem .6rem; border: 1px solid var(--color-outline); border-radius: .4rem; color: var(--color-on-surface); background: var(--color-surface-container-lowest); font: inherit; }
.web-organization-context form .ui-button { justify-self: start; }
.web-organization-context option:disabled { color: var(--color-on-surface-variant); }
.web-organization-context span, .web-navigation summary { color: var(--color-on-surface-variant); font-size: .72rem; line-height: 1rem; letter-spacing: .08em; text-transform: uppercase; }
.web-navigation { display: grid; gap: .4rem; }
.web-navigation details { min-width: 0; }
.web-navigation summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: .5rem .4rem .15rem; padding: .35rem; border-radius: .4rem; cursor: pointer; font-weight: 700; list-style: none; }
.web-navigation summary::-webkit-details-marker { display: none; }
.web-navigation summary::after { content: ""; flex: 0 0 auto; width: .45rem; height: .45rem; margin-inline-end: .15rem; border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; transform: rotate(45deg); transition: transform 160ms ease; }
.web-navigation details[open] > summary::after { transform: rotate(225deg); }
.web-navigation summary:hover { color: var(--color-on-surface); background: var(--color-surface-container-high); }
.web-navigation summary:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.web-navigation-group-links { display: grid; gap: .15rem; }
.web-navigation a { min-height: 2.55rem; display: flex; align-items: center; padding: .55rem .75rem; border-radius: .55rem; color: var(--color-on-surface-variant); text-decoration: none; font-weight: 600; }
.web-navigation a:hover { background: var(--color-surface-container-high); color: var(--color-on-surface); }
.web-navigation a[aria-current="page"] { color: var(--color-on-primary-container); background: var(--color-primary-container); box-shadow: inset 3px 0 var(--color-primary); }
.web-sidebar-footer { margin-block-start: auto; border-block-start: 1px solid var(--color-outline-variant); padding-block-start: 1rem; }
.web-sidebar-footer label { display: grid; gap: .35rem; color: var(--color-on-surface-variant); font-size: .8rem; }
.web-sidebar-footer select { min-height: 2.5rem; padding-inline: .65rem; border: 1px solid var(--color-outline); border-radius: .4rem; color: var(--color-on-surface); background: var(--color-surface-container-lowest); }
.web-nav-scrim { display: none; }
.web-page-frame { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; }
.web-topbar { position: sticky; inset-block-start: 0; min-height: 4rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: .65rem clamp(1rem, 3vw, 2rem); border-block-end: 1px solid var(--color-outline-variant); background: color-mix(in srgb, var(--color-surface) 92%, transparent); backdrop-filter: blur(12px); z-index: 20; }
.web-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; min-width: 0; color: var(--color-on-surface-variant); font-size: .9rem; }
.web-breadcrumbs a { color: inherit; text-decoration: none; }
.web-breadcrumbs span:last-child { color: var(--color-on-surface); font-weight: 650; text-transform: capitalize; }
.web-account { display: flex; align-items: center; gap: .5rem; color: var(--color-on-surface-variant); font-size: .85rem; }
.web-account form { margin: 0; }
.web-workspace { min-width: 0; width: min(100%, 1680px); margin-inline: auto; padding: clamp(1.25rem, 3vw, 2.5rem); outline: none; }
.web-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-block-end: 1.5rem; }
.web-page-header h1 { margin: .15rem 0 .4rem; font-size: clamp(1.7rem, 3vw, 2.2rem); line-height: 1.15; }
.web-page-header p { margin: 0; color: var(--color-on-surface-variant); max-width: 70ch; }
.web-eyebrow { color: var(--color-primary) !important; font-size: .75rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.web-panel { margin-block: 1rem; border: 1px solid var(--color-outline-variant); border-radius: .8rem; background: var(--color-surface-container-lowest); overflow: clip; }
.web-panel-header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-block-end: 1px solid var(--color-outline-variant); }
.web-panel-header h2 { margin: 0; font-size: 1.05rem; }
.web-panel-header p { margin: .25rem 0 0; color: var(--color-on-surface-variant); font-size: .88rem; }
.web-metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.web-metric-grid article { display: grid; gap: .3rem; padding: 1.15rem; border: 1px solid var(--color-outline-variant); border-radius: .75rem; background: var(--color-surface-container-lowest); }
.web-metric-grid span, .web-metric-grid small { color: var(--color-on-surface-variant); }
.web-metric-grid strong { font-size: 2rem; font-variant-numeric: tabular-nums; }
.web-table-region { max-width: 100%; overflow: auto; }
.web-table-region table { width: 100%; min-width: 680px; border-collapse: collapse; text-align: left; }
.web-table-region caption { padding: .75rem 1rem; text-align: left; color: var(--color-on-surface-variant); font-size: .8rem; }
.web-table-region th, .web-table-region td { padding: .75rem 1rem; border-block-end: 1px solid var(--color-outline-variant); vertical-align: middle; }
.web-table-region thead th { position: sticky; inset-block-start: 0; color: var(--color-on-surface-variant); background: var(--color-surface-container-low); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; z-index: 1; }
.web-table-region tbody th { font-weight: 650; }
.web-table-region tbody tr:last-child > * { border-block-end: 0; }
.web-table-region small, .web-card-list span { display: block; margin-block-start: .2rem; color: var(--color-on-surface-variant); font-weight: 400; }
.web-domain-link { color: var(--color-on-surface); text-decoration-thickness: 1px; text-underline-offset: .2rem; }
.web-filter-bar { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; padding: 1rem; border-block-end: 1px solid var(--color-outline-variant); }
.web-filter-bar label { display: grid; gap: .3rem; min-width: min(18rem, 100%); color: var(--color-on-surface-variant); font-size: .75rem; font-weight: 650; }
.web-filter-bar input, .web-filter-bar select { min-height: 2.75rem; padding: .6rem .75rem; border: 1px solid var(--color-outline); border-radius: .45rem; color: var(--color-on-surface); background: var(--color-surface-container-lowest); font: inherit; }
.htmx-indicator { opacity: 0; color: var(--color-on-surface-variant); }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { opacity: 1; }
.web-status { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; font-weight: 650; }
.web-status::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--color-outline); }
.web-status[data-tone="healthy"]::before { background: var(--color-status-healthy); }
.web-status[data-tone="warning"]::before { background: var(--signal-warning); }
.web-status[data-tone="critical"]::before { background: var(--signal-critical); }
.web-chip-row { display: flex; flex-wrap: wrap; gap: .35rem; }
.web-empty-state { display: grid; justify-items: center; gap: .65rem; padding: clamp(2.5rem, 8vw, 6rem) 1rem; text-align: center; border: 1px dashed var(--color-outline); border-radius: .8rem; background: var(--color-surface-container-low); }
.web-empty-state h1, .web-empty-state h2, .web-empty-state h3, .web-empty-state p { margin: 0; }
.web-empty-state p { max-width: 58ch; color: var(--color-on-surface-variant); }
.web-empty-state--compact { border: 0; border-radius: 0; padding: 2.5rem 1rem; }
.web-empty-icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 1rem; background: var(--color-primary-container); color: var(--color-on-primary-container); font-size: 1.6rem; }
.web-local-nav { display: flex; gap: .25rem; margin-block-end: 1rem; overflow-x: auto; border-block-end: 1px solid var(--color-outline-variant); }
.web-local-nav a { flex: 0 0 auto; min-height: 3rem; display: grid; align-items: center; padding-inline: .85rem; color: var(--color-on-surface-variant); text-decoration: none; border-block-end: 3px solid transparent; }
.web-local-nav a[aria-current="page"] { color: var(--color-primary); border-color: var(--color-primary); font-weight: 700; }
.web-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.web-definition-list { margin: 0; padding: 1rem; display: grid; gap: .75rem; }
.web-definition-list div { min-width: 0; display: grid; grid-template-columns: minmax(8rem, .35fr) minmax(0, 1fr); gap: 1rem; }
.web-definition-list dt { color: var(--color-on-surface-variant); }
.web-definition-list dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
/* Raw evidence scrolls inside its own block without sizing the page grid. */
.web-observation-source-body { min-width: 0; }
.web-observation-source-body pre { max-width: 100%; overflow: auto; white-space: pre; }
.web-observation-source-body pre:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; }
.web-data-list, .web-card-list { list-style: none; margin: 0; padding: 0; }
.web-data-list li, .web-card-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; border-block-end: 1px solid var(--color-outline-variant); }
.web-data-list li:last-child, .web-card-list li:last-child { border: 0; }
.web-dialog { width: min(34rem, calc(100vw - 2rem)); padding: 0; border: 1px solid var(--color-outline-variant); border-radius: .9rem; color: var(--color-on-surface); background: var(--color-surface-container-lowest); box-shadow: 0 1rem 3rem rgb(0 0 0 / .25); }
.web-dialog::backdrop { background: rgb(0 0 0 / .48); }
.web-dialog-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.2rem; border-block-end: 1px solid var(--color-outline-variant); }
.web-dialog-header h2 { margin: 0; }
.web-dialog-body { padding: 1.2rem; }
.web-page-actions, .web-dialog-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.web-page-actions form { margin: 0; }
.web-dialog-form { margin: 0; }
.web-dialog-body { display: grid; gap: 1rem; }
.web-dialog-actions { padding: .9rem 1.2rem; border-block-start: 1px solid var(--color-outline-variant); }
.web-field { display: grid; gap: .35rem; color: var(--color-on-surface-variant); font-size: .85rem; font-weight: 650; }
.web-tool-grid { display: grid; grid-template-columns: minmax(18rem, .8fr) minmax(0, 1.2fr); gap: 1rem; }
.web-tool-form { display: grid; gap: 1rem; padding: 1rem; }
.web-console { min-height: 12rem; display: grid; align-content: start; gap: .45rem; margin: 1rem; padding: 1rem; overflow: auto; border-radius: .55rem; color: #bdebea; background: #11191a; font-family: var(--font-family-mono); }
.web-console code { color: #bdebea; }
.web-field input, .web-field select, .web-field textarea { width: 100%; min-height: 2.9rem; padding: .65rem .75rem; border: 1px solid var(--color-outline); border-radius: .45rem; color: var(--color-on-surface); background: var(--color-surface-container-lowest); font: inherit; }
.web-field small { color: var(--color-on-surface-variant); font-weight: 400; }
.web-login-body { display: grid; place-items: center; padding: 1.5rem; background: radial-gradient(circle at 20% 20%, var(--color-primary-container), transparent 28rem), var(--color-background); }
.web-login-shell { width: min(68rem, 100%); display: grid; grid-template-columns: 1.2fr .8fr; overflow: hidden; border: 1px solid var(--color-outline-variant); border-radius: 1.25rem; background: var(--color-surface-container-lowest); box-shadow: 0 1rem 3rem rgb(0 0 0 / .12); }
.web-login-intro { padding: clamp(2rem, 6vw, 5rem); background: var(--color-surface-container-low); }
.web-login-intro h1 { max-width: 15ch; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; }
.web-login-intro p:last-child { max-width: 45ch; color: var(--color-on-surface-variant); }
.web-login-card { padding: clamp(2rem, 5vw, 4rem); align-self: center; }
.web-login-card h2 { margin: 0; font-size: 1.7rem; }
.web-login-card > p { color: var(--color-on-surface-variant); }
.web-login-card form, .web-login-card label { display: grid; gap: .5rem; }
.web-login-card form { gap: 1rem; }
.web-login-card input { min-height: 3rem; padding: .65rem .75rem; border: 1px solid var(--color-outline); border-radius: .5rem; color: var(--color-on-surface); background: var(--color-surface-container-lowest); font: inherit; }
.web-login-card input[aria-invalid="true"] { border-color: var(--color-error); outline: 1px solid var(--color-error); }
.web-form-help { margin: -.6rem 0 0; color: var(--color-on-surface-variant); font-size: .8rem; }
.web-form-error { margin: 0; color: var(--color-error); }
.web-auth-divider { display: flex; align-items: center; gap: .75rem; color: var(--color-on-surface-variant); font-size: .75rem; text-transform: uppercase; }
.web-auth-divider::before, .web-auth-divider::after { content: ""; flex: 1; border-block-start: 1px solid var(--color-outline-variant); }
.web-provider-button { width: 100%; }
.web-google-mark { display: inline-grid; place-items: center; width: 1.25rem; height: 1.25rem; border-radius: 50%; color: #fff; background: #4285f4; font-weight: 800; }
.web-auth-link { margin: 1.25rem 0 0; text-align: center; font-size: .9rem; }
.web-auth-link a { font-weight: 700; text-underline-offset: .18rem; }
.web-form-panel { max-width: 58rem; }
.web-detail-form { display: grid; gap: 1rem; padding: 1rem; }
.web-detail-form textarea, .web-inline-form input, .web-inline-form select, .web-row-form select { width: 100%; min-height: 2.6rem; padding: .55rem .7rem; border: 1px solid var(--color-outline); border-radius: .45rem; color: var(--color-on-surface); background: var(--color-surface-container-lowest); font: inherit; }
.web-check { display: flex; align-items: center; gap: .65rem; color: var(--color-on-surface); font-weight: 600; }
.web-check input { width: 1.15rem; height: 1.15rem; accent-color: var(--color-primary); }
.web-credential-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.web-inline-form { display: grid; grid-template-columns: minmax(12rem, 2fr) minmax(8rem, 1fr) minmax(8rem, 1fr) auto; align-items: end; gap: .8rem; padding: 1rem; }
.web-row-form, .web-action-list { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.web-action-list { padding: 1rem; }
.web-danger-zone { border-color: color-mix(in srgb, var(--color-error) 45%, var(--color-outline-variant)); }
.ui-button--critical { color: var(--color-on-error); background: var(--color-error); border-color: var(--color-error); }
.web-secret-once { display: block; max-width: 100%; margin-block-start: .65rem; padding: .75rem; overflow-wrap: anywhere; border-radius: .4rem; color: var(--color-on-surface); background: var(--color-surface-container-lowest); user-select: all; }

#capabilities { scroll-margin-block-start: 1rem; }
.web-capabilities-panel .web-panel-header { align-items: center; }
.web-panel-meta { display: grid; justify-items: end; gap: .4rem; color: var(--color-on-surface-variant); font-size: .78rem; }
.web-capability-list { list-style: none; margin: 0; padding: 0; }
.web-capability-row { min-width: 0; display: grid; grid-template-columns: minmax(16rem, 1fr) minmax(14rem, .75fr) auto; align-items: center; gap: 1.5rem; padding: 1rem 1.1rem; border-block-end: 1px solid var(--color-outline-variant); }
.web-capability-row:last-child { border-block-end: 0; }
.web-capability-row:hover { background: var(--color-surface-container-low); }
.web-capability-identity { min-width: 0; }
.web-capability-identity h3 { margin: 0; font-size: .95rem; line-height: 1.35; }
.web-capability-identity p { max-width: 58ch; margin: .25rem 0 0; color: var(--color-on-surface-variant); font-size: .84rem; line-height: 1.4; }
.web-capability-state { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .75rem; }
.web-capability-status { min-width: 5.25rem; }
.web-capability-policy { min-width: 0; display: grid; gap: .15rem; font-size: .82rem; line-height: 1.3; }
.web-capability-policy strong { font-weight: 650; }
.web-capability-policy small { color: var(--color-on-surface-variant); font-size: .75rem; overflow-wrap: anywhere; }
.web-capability-policy a { color: inherit; text-underline-offset: .15rem; }
.web-capability-action { justify-self: end; }
.web-capability-dialog { width: min(42rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); }
.web-capability-dialog .web-dialog-form { max-height: calc(100vh - 2rem); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.web-capability-dialog .web-dialog-body { overflow-y: auto; }
.web-dialog-eyebrow { margin: 0 0 .15rem; color: var(--color-primary); font-size: .7rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.web-capability-dialog-summary { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem 1rem; padding: .8rem; border-radius: .55rem; background: var(--color-surface-container-low); }
.web-capability-dialog-summary p { flex: 1 1 18rem; margin: 0; color: var(--color-on-surface-variant); font-size: .85rem; }
.web-choice-group { display: grid; gap: .55rem; margin: 0; padding: 0; border: 0; }
.web-choice-group legend { margin-block-end: .55rem; padding: 0; font-weight: 750; }
.web-choice-group label { display: flex; align-items: flex-start; gap: .7rem; padding: .8rem; border: 1px solid var(--color-outline-variant); border-radius: .55rem; cursor: pointer; background: var(--color-surface-container-lowest); }
.web-choice-group label:has(input:checked) { border-color: var(--color-primary); background: var(--color-primary-container); color: var(--color-on-primary-container); }
.web-choice-group label:has(input:checked) small { color: var(--color-on-primary-container); opacity: .8; }
.web-choice-group label:has(input:disabled) { cursor: not-allowed; opacity: .55; }
.web-choice-group input, .web-setting-row input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-block-start: .12rem; accent-color: var(--color-primary); }
.web-choice-group span, .web-setting-row span { display: grid; gap: .15rem; }
.web-choice-group small, .web-setting-row small { color: var(--color-on-surface-variant); font-weight: 400; line-height: 1.35; }
.web-setting-row { display: flex; align-items: flex-start; gap: .7rem; padding: .85rem; border: 1px solid var(--color-outline-variant); border-radius: .55rem; cursor: pointer; }
.web-discovery-summary, .web-selection-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem 1rem; }
.web-discovery-summary { padding: 1rem; border-radius: .65rem; background: var(--color-surface-container-low); }
.web-discovery-summary p, .web-selection-toolbar { margin: .2rem 0 0; color: var(--color-on-surface-variant); }
.web-subdomain-selection { display: grid; gap: 1rem; }
.web-discovery-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 30rem; padding: .1rem; overflow-y: auto; }
.web-discovery-choices strong { overflow-wrap: anywhere; }
@media (max-width: 959px) {
    .web-shell { grid-template-columns: 1fr; }
    .web-sidebar { position: fixed; inset: 0 auto 0 0; width: min(20rem, 88vw); transform: translateX(-102%); transition: transform 180ms ease; visibility: hidden; box-shadow: 0 1rem 3rem rgb(0 0 0 / .25); }
    .web-shell[data-navigation="open"] .web-sidebar { transform: translateX(0); visibility: visible; }
    .web-nav-close, .web-menu-button { display: inline-grid; }
    .web-nav-scrim { position: fixed; inset: 0; display: block; border: 0; background: rgb(0 0 0 / .45); opacity: 0; visibility: hidden; transition: opacity 180ms ease; z-index: 25; }
    .web-shell[data-navigation="open"] .web-nav-scrim { opacity: 1; visibility: visible; }
    .web-navigation-open { overflow: hidden; }
    .web-topbar { grid-template-columns: auto minmax(0, 1fr); }
    .web-breadcrumbs { grid-column: 2; }
    .web-account { display: none; }
}
@media (max-width: 680px) {
    .web-credential-grid, .web-inline-form { grid-template-columns: 1fr; }
    .web-discovery-choices { grid-template-columns: 1fr; }
    .web-workspace { padding: 1rem; }
    .web-page-header { display: grid; gap: 1rem; }
    .web-metric-grid, .web-detail-grid, .web-login-shell, .web-tool-grid { grid-template-columns: 1fr; }
    .web-login-intro { padding: 2rem; }
    .web-definition-list div { grid-template-columns: 1fr; gap: .25rem; }
    .web-data-list li, .web-card-list li { align-items: flex-start; flex-direction: column; }
    .web-panel-meta { width: 100%; justify-items: start; }
    .web-capability-row { grid-template-columns: 1fr; gap: .8rem; padding: 1rem; }
    .web-capability-state { grid-template-columns: auto minmax(0, 1fr); }
    .web-capability-action { justify-self: start; }
    .web-capability-dialog { width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); }
    .web-capability-dialog .web-dialog-form { max-height: calc(100vh - 1rem); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }

/* Server-rendered estate health tree. */
.web-estate-panel { overflow: hidden; }
.web-estate-legend { display: flex; flex-wrap: wrap; gap: .55rem 1rem; padding: .75rem 1.1rem; border-block-end: 1px solid var(--color-outline-variant); color: var(--color-on-surface-variant); font-size: .75rem; }
.web-estate-legend > span { display: inline-flex; align-items: center; gap: .35rem; }
.web-estate-tree { max-width: 100%; }
.web-estate-head,
.web-estate-row { display: grid; grid-template-columns: minmax(14rem, 1fr) repeat(4, minmax(5.5rem, .42fr)) minmax(11rem, .65fr); align-items: center; gap: .75rem; padding: .7rem 1rem; }
.web-estate-head { color: var(--color-on-surface-variant); background: var(--color-surface-container-low); font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.web-estate-roots,
.web-estate-children { margin: 0; padding: 0; list-style: none; }
.web-estate-node { min-width: 0; border-block-start: 1px solid var(--color-outline-variant); }
.web-estate-roots > .web-estate-node:first-child { border-block-start: 0; }
.web-estate-children { margin-inline-start: 1.15rem; border-inline-start: 2px solid var(--color-outline-variant); }
.web-estate-children .web-estate-row { padding-inline-start: 1.25rem; }
.web-estate-disclosure > summary { cursor: pointer; list-style: none; }
.web-estate-disclosure > summary::-webkit-details-marker { display: none; }
.web-estate-disclosure > summary:hover { background: var(--color-surface-container-low); }
.web-estate-disclosure > summary:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; }
.web-estate-domain { min-width: 0; display: flex; align-items: center; gap: .45rem; overflow-wrap: anywhere; }
.web-estate-disclosure > summary .web-estate-domain::before { content: "›"; flex: 0 0 auto; color: var(--color-on-surface-variant); font-size: 1.15rem; line-height: 1; transition: transform 150ms ease; }
.web-estate-disclosure[open] > summary .web-estate-domain::before { transform: rotate(90deg); }
.web-estate-row--leaf .web-estate-domain { padding-inline-start: 1.15rem; }
.web-estate-status { width: max-content; max-width: 100%; display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .48rem; border: 1px solid var(--color-outline-variant); border-radius: 999px; color: var(--color-on-surface-variant); background: var(--color-surface-container-low); font-size: .72rem; font-weight: 700; line-height: 1.2; }
.web-estate-status::before { content: ""; width: .45rem; height: .45rem; flex: 0 0 auto; border-radius: 50%; background: var(--color-outline); }
.web-estate-status[data-tone="healthy"] { color: var(--color-on-surface); background: color-mix(in srgb, var(--color-status-healthy) 13%, var(--color-surface-container-lowest)); border-color: color-mix(in srgb, var(--color-status-healthy) 42%, var(--color-outline-variant)); }
.web-estate-status[data-tone="healthy"]::before { background: var(--color-status-healthy); }
.web-estate-status[data-tone="warning"] { color: var(--color-on-surface); background: color-mix(in srgb, var(--signal-warning) 15%, var(--color-surface-container-lowest)); border-color: color-mix(in srgb, var(--signal-warning) 48%, var(--color-outline-variant)); }
.web-estate-status[data-tone="warning"]::before { background: var(--signal-warning); }
.web-estate-status[data-tone="critical"] { color: var(--color-on-surface); background: color-mix(in srgb, var(--signal-critical) 14%, var(--color-surface-container-lowest)); border-color: color-mix(in srgb, var(--signal-critical) 45%, var(--color-outline-variant)); }
.web-estate-status[data-tone="critical"]::before { background: var(--signal-critical); }
.web-estate-status[data-tone="unknown"]::before { background: var(--color-outline); }
.web-estate-status[data-tone="off"] { opacity: .78; }
.web-estate-status[data-tone="off"]::before { background: transparent; border: 1px solid var(--color-outline); }
.web-estate-status[data-tone="paused"] { color: var(--color-on-surface); background: var(--color-primary-container); border-color: color-mix(in srgb, var(--color-primary) 40%, var(--color-outline-variant)); }
.web-estate-status[data-tone="paused"]::before { background: var(--color-primary); }
.web-estate-scope { color: var(--color-on-surface-variant); font-size: .78rem; line-height: 1.35; }
.web-estate-overall::before,
.web-estate-ssl::before,
.web-estate-dns::before,
.web-estate-whois::before { display: none; }

@media (max-width: 1100px) {
  .web-estate-head { display: none; }
  .web-estate-row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem .4rem; padding: .85rem .75rem; }
  .web-estate-domain { grid-column: 1 / -1; }
  .web-estate-overall,
  .web-estate-ssl,
  .web-estate-dns,
  .web-estate-whois { min-width: 0; display: grid; align-content: start; justify-items: start; gap: .25rem; }
  .web-estate-overall::before,
  .web-estate-ssl::before,
  .web-estate-dns::before,
  .web-estate-whois::before { display: block; color: var(--color-on-surface-variant); font-size: .62rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
  .web-estate-overall::before { content: "Overall"; }
  .web-estate-ssl::before { content: "SSL"; }
  .web-estate-dns::before { content: "DNS"; }
  .web-estate-whois::before { content: "WHOIS"; }
  .web-estate-scope { grid-column: 1 / -1; }
  .web-estate-children { margin-inline-start: .55rem; }
  .web-estate-children .web-estate-row { padding-inline-start: .65rem; }
  .web-estate-status { padding-inline: .38rem; font-size: .66rem; }
}

@media (max-width: 480px) {
  .web-estate-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .web-estate-domain, .web-estate-scope { grid-column: 1 / -1; }
}

/* Evidence uses the same surfaces and disclosure patterns as the domain workspace. */
.web-observation-details { display: grid; gap: .85rem; padding: 1rem; min-width: 0; }
.web-observation-source { min-width: 0; border: 1px solid var(--color-outline-variant); border-radius: .65rem; background: var(--color-surface-container-lowest); }
.web-observation-source > summary { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(9rem, 1fr) minmax(10rem, .95fr) auto; align-items: center; gap: 1.25rem; padding: 1.1rem; cursor: pointer; list-style: none; border-radius: .65rem; }
.web-observation-source > summary::-webkit-details-marker { display: none; }
.web-observation-source > summary:hover { background: var(--color-surface-container-low); }
.web-observation-source > summary:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; }
.web-observation-source[open] > summary { border-block-end: 1px solid var(--color-outline-variant); border-end-start-radius: 0; border-end-end-radius: 0; background: var(--color-surface-container-low); }
.web-evidence-identity, .web-evidence-meta, .web-evidence-action { min-width: 0; display: grid; gap: .35rem; overflow-wrap: anywhere; }
.web-evidence-identity strong { font-size: .95rem; }
.web-evidence-identity small, .web-evidence-meta > span { color: var(--color-on-surface-variant); font-size: .75rem; font-weight: 500; }
.web-evidence-meta strong { font-size: .82rem; line-height: 1.5; font-weight: 550; }
.web-evidence-action { justify-items: end; gap: .6rem; }
.web-evidence-status { padding: .3rem .55rem; border: 1px solid var(--color-outline-variant); border-radius: 999px; background: var(--color-surface-container-lowest); }
.web-evidence-disclosure { display: inline-flex; align-items: center; gap: .6rem; color: var(--color-primary); font-size: .78rem; font-weight: 650; }
.web-evidence-chevron { width: .45rem; height: .45rem; border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; transform: rotate(45deg); }
.web-evidence-close-label, .web-observation-source[open] .web-evidence-open-label { display: none; }
.web-observation-source[open] .web-evidence-close-label { display: inline; }
.web-observation-source[open] .web-evidence-chevron { transform: rotate(225deg); }
.web-evidence-fields { gap: 0; padding: 0 1.1rem; }
.web-evidence-fields > div { grid-template-columns: minmax(9rem, .65fr) minmax(0, 1.35fr); padding-block: 1rem; border-block-end: 1px solid var(--color-outline-variant); }
.web-evidence-fields > div:last-child { border-block-end: 0; }
.web-evidence-fields dt { font-size: .83rem; font-weight: 650; color: var(--color-on-surface); }
.web-evidence-fields dt small { display: block; max-width: 38ch; margin-block-start: .35rem; color: var(--color-on-surface-variant); font-size: .75rem; font-weight: 400; line-height: 1.5; }
.web-evidence-value { display: block; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .85rem; line-height: 1.65; }
.web-evidence-raw { min-width: 0; margin-block-start: .5rem; }
.web-evidence-raw > summary { width: fit-content; max-width: 100%; color: var(--color-primary); font-size: .78rem; line-height: 1.6; cursor: pointer; border-radius: .25rem; }
.web-evidence-raw > summary:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
.web-evidence-raw pre { margin: .65rem 0 0; padding: .9rem; max-height: 24rem; border: 1px solid var(--color-outline-variant); border-radius: .45rem; background: var(--color-surface-container-low); font-size: .75rem; line-height: 1.65; tab-size: 2; }
.web-evidence-payload { margin: 0; padding: 1rem 1.1rem; border-block-start: 1px solid var(--color-outline-variant); }
.web-evidence-payload > summary { font-weight: 650; }
.web-evidence-payload > summary span { margin-inline-start: .4rem; color: var(--color-on-surface-variant); font-family: var(--font-family-mono); font-size: .7rem; }
.web-evidence-empty { margin: 0; padding: 1.1rem; color: var(--color-on-surface-variant); }
@media (max-width: 1199px) {
 .web-observation-source > summary { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; }
 .web-evidence-action { grid-column: 2; grid-row: 1; }
}
@media (max-width: 600px) {
 .web-observation-details { padding: .75rem; }
 .web-observation-source > summary { padding: .85rem; gap: .85rem; }
 .web-evidence-fields { padding-inline: .85rem; }
 .web-evidence-fields > div { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
 .web-evidence-fields dt small { max-width: none; }
 .web-evidence-payload { padding: .85rem; }
}
