:root {
    color-scheme: light;
    --canvas: #f5f8fc;
    --surface: #ffffff;
    --surface-raised: #f3f7fb;
    --sidebar-bg: #14283f;
    --text: #10213d;
    --muted: #536784;
    --border: #dce5ef;
    --border-strong: #b5c7dd;
    --accent: #009da9;
    --accent-strong: #007d89;
    --accent-soft: #e1f5f5;
    --danger: #b83952;
    --danger-soft: #fbe9ed;
    --warning: #87500b;
    --warning-soft: #fff2d8;
    --info: #2169a5;
    --info-soft: #e8f3fb;
    --shadow-lg: 0 1rem 3rem rgb(16 33 61 / 12%);
    --radius-card: .55rem;
    --radius-control: .4rem;
    --shadow-card: 0 2px 12px rgb(16 33 61 / 3%);
}

@media (prefers-color-scheme: dark) {
    :root[data-theme="dark"] {
        color-scheme: dark;
        --canvas: #0c1210;
        --surface: #111916;
        --surface-raised: #17211d;
        --sidebar-bg: #0f1714;
        --text: #e8f0ec;
        --muted: #98a7a0;
        --border: #25332d;
        --border-strong: #35473f;
        --accent: #4bd19a;
        --accent-strong: #72e6b5;
        --accent-soft: #17372a;
        --danger: #ff8aa1;
        --danger-soft: #381d27;
        --warning: #f3be68;
        --warning-soft: #362b18;
        --info: #8cc9f4;
        --info-soft: #162d3e;
        --shadow-lg: 0 1.2rem 4rem rgb(0 0 0 / 30%);
    }
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
    margin: 0;
    font-family:
        Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
        "Segoe UI", sans-serif;
    background: var(--canvas);
    color: var(--text);
    text-rendering: optimizeLegibility;
}

body {
    line-height: 1.45;
}

a {
    color: var(--accent-strong);
}

button,
input,
select,
textarea {
    font: inherit;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--accent) 45%, transparent);
    outline-offset: 2px;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1,
h2,
h3 {
    letter-spacing: -.025em;
}

h1 {
    margin-bottom: .5rem;
    font-size: clamp(1.8rem, 2.6vw, 2.5rem);
    font-weight: 800;
    letter-spacing: -.04em;
}

h2 {
    margin-bottom: .35rem;
    font-size: 1.1rem;
    font-weight: 750;
}

h3 {
    margin-bottom: .3rem;
    font-size: .96rem;
    font-weight: 700;
}

.page-heading {
    margin-bottom: 1.65rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.page-lead {
    margin-bottom: 0;
    color: var(--muted);
    font-size: .98rem;
}

.eyebrow {
    margin-bottom: .38rem;
    color: var(--accent-strong);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.button {
    min-height: 2.75rem;
    padding: .62rem 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    border: 1px solid transparent;
    border-radius: var(--radius-control);
    cursor: pointer;
    font-size: .84rem;
    font-weight: 750;
    text-decoration: none;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}

.button:hover:not(:disabled) {
    transform: translateY(-1px);
}

.button-primary:hover:not(:disabled) { color: #fff; background: #006873; border-color: #006873; }
.button-secondary:hover:not(:disabled) { color: var(--text); background: var(--surface-raised); border-color: var(--accent); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--accent-strong); width: 1rem; height: 1rem; flex-shrink: 0; }
select { max-width: 100%; padding: .5rem .65rem; border: 1px solid var(--border-strong); border-radius: var(--radius-control); background: var(--surface); color: var(--text); }
.page-heading h1 svg { width: 1.8rem; height: 1.8rem; margin-right: .45rem; color: var(--accent-strong); vertical-align: baseline; }
.page-heading .eyebrow { margin-bottom: .4rem; color: var(--muted); letter-spacing: .09em; }

.button:disabled {
    cursor: not-allowed;
    opacity: .58;
}

.button.is-busy:disabled {
    cursor: progress;
}

.button.is-busy::before {
    width: .8rem;
    height: .8rem;
    content: "";
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 999px;
    animation: busy-spin .7s linear infinite;
}

.button-primary {
    color: #ffffff;
    background: #007f8b;
    border-color: #007f8b;
}

.button-secondary {
    color: var(--text);
    background: var(--surface);
    border-color: var(--border-strong);
}

.button-danger {
    color: var(--danger);
    background: var(--danger-soft);
    border-color: color-mix(in srgb, var(--danger) 35%, transparent);
}

.button-block {
    width: 100%;
    margin-top: .75rem;
}

.text-button {
    padding: 0;
    color: var(--accent-strong);
    background: none;
    border: 0;
    cursor: pointer;
    font-size: .82rem;
    font-weight: 750;
}

.health-dot {
    width: .48rem;
    height: .48rem;
    display: inline-block;
    flex: 0 0 auto;
    background: #3bcc8f;
    border-radius: 999px;
    box-shadow: 0 0 0 .24rem rgb(59 204 143 / 12%);
}

.live-refresh {
    margin: -1rem 0 1.15rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
    color: var(--muted);
    font-size: .72rem;
}

.metric-grid {
    margin-bottom: 1.25rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.storage-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.metric-card,
.panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
}

.metric-card {
    position: relative;
    min-height: 9.3rem;
    padding: 1.05rem 1.1rem;
    overflow: hidden;
}

.metric-card::after {
    display: none;
}

.metric-card-good::after {
    background: var(--accent);
}

.metric-label,
.metric-card small {
    display: block;
    color: var(--muted);
    font-size: .76rem;
}

.metric-card strong {
    margin: .55rem 0 .35rem;
    display: block;
    font-size: 2.15rem;
    letter-spacing: -.04em;
}

.content-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.panel {
    padding: 1.25rem;
    min-width: 0;
}

.panel-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1rem;
}

.large-value {
    margin: 1.4rem 0 .6rem;
    font-size: clamp(1.15rem, 2vw, 1.5rem);
    font-weight: 720;
}

.muted {
    color: var(--muted);
    font-size: .82rem;
}

.definition-grid {
    margin: 1.25rem 0 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.definition-grid div {
    padding: .75rem;
    background: var(--surface-raised);
    border-radius: .65rem;
}

.definition-grid dt {
    color: var(--muted);
    font-size: .7rem;
}

.definition-grid dd {
    margin: .25rem 0 0;
    font-weight: 750;
}

.release-details {
    margin: 1.2rem 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.release-details div {
    padding: .7rem;
    background: var(--surface-raised);
    border-radius: .6rem;
}

.release-details dt,
.checksum span {
    color: var(--muted);
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.release-details dd {
    margin: .2rem 0 0;
    font-weight: 720;
}

.checksum code,
.token-reveal code {
    display: block;
    overflow-wrap: anywhere;
    color: var(--text);
}

.checksum code {
    margin-top: .3rem;
    font-size: .72rem;
}

.copy-field {
    margin: 1rem 0;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: .75rem;
}

.copy-field .checksum {
    min-width: 0;
    margin: 0;
}

.installation-notes {
    margin-top: 1rem;
    padding-top: .85rem;
    border-top: 1px solid var(--border);
}

.installation-notes > summary {
    min-height: 2.75rem;
    display: flex;
    align-items: center;
    color: var(--accent-strong);
    cursor: pointer;
    font-size: .84rem;
    font-weight: 750;
}

.command-block {
    margin: .65rem 0;
    padding: .75rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    background: var(--canvas);
    border: 1px solid var(--border);
    border-radius: .65rem;
}

.command-block code {
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--text);
    font-size: .74rem;
    user-select: all;
}

.copy-status {
    margin: .7rem 0;
    color: var(--accent-strong);
    font-size: .8rem;
}

.token-reveal {
    margin: 1rem 0;
    padding: .9rem;
    display: grid;
    gap: .5rem;
    color: var(--accent-strong);
    background: var(--accent-soft);
    border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
    border-radius: .7rem;
}

.token-reveal code {
    padding: .6rem;
    color: var(--text);
    background: var(--canvas);
    border-radius: .45rem;
    font-size: .76rem;
    user-select: all;
}

.token-reveal small {
    color: var(--muted);
}

.notice {
    margin: 1rem 0;
    padding: .8rem .9rem;
    display: flex;
    flex-direction: column;
    gap: .2rem;
    border: 1px solid var(--border);
    border-radius: .65rem;
    font-size: .84rem;
}

.notice-error {
    color: var(--danger);
    background: var(--danger-soft);
    border-color: color-mix(in srgb, var(--danger) 30%, transparent);
}

.notice-success {
    color: var(--accent-strong);
    background: var(--accent-soft);
    border-color: color-mix(in srgb, var(--accent) 30%, transparent);
}

.notice-warning {
    color: var(--warning);
    background: var(--warning-soft);
    border-color: color-mix(in srgb, var(--warning) 30%, transparent);
}

.confirmation-backdrop {
    position: fixed;
    z-index: 1000;
    inset: 0;
    padding: 1rem;
    display: grid;
    place-items: center;
    background: rgb(16 33 61 / 48%);
    backdrop-filter: blur(6px);
}

.confirmation-dialog {
    width: min(100%, 36rem);
    max-height: calc(100vh - 2rem);
    padding: clamp(1.25rem, 4vw, 1.75rem);
    overflow-y: auto;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: .7rem;
    box-shadow: var(--shadow-lg);
}

.confirmation-dialog h2 {
    margin-bottom: .55rem;
}

.confirmation-dialog > p:not(.eyebrow) {
    color: var(--muted);
}

.confirmation-choices {
    margin: 1.25rem 0;
    display: grid;
    gap: .75rem;
}

.confirmation-choice {
    padding: 1rem;
    display: grid;
    gap: .35rem;
    color: var(--text);
    text-align: left;
    background: var(--surface-raised);
    border: 1px solid var(--border-strong);
    border-radius: .75rem;
    cursor: pointer;
}

.confirmation-choice:hover,
.confirmation-choice:focus-visible {
    border-color: var(--accent);
    outline: 3px solid var(--accent-soft);
}

.confirmation-choice span {
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.5;
}

.confirmation-choice-danger {
    border-color: color-mix(in srgb, var(--danger) 45%, var(--border));
}

.confirmation-choice-danger strong {
    color: var(--danger);
}

.confirmation-choice:disabled {
    cursor: progress;
    opacity: .58;
}

.confirmation-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
}

.restore-panel {
    margin-bottom: .9rem;
}

.restore-source-summary {
    margin-top: .85rem;
    padding: .75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    color: var(--muted);
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .65rem;
    font-size: .78rem;
}

.restore-source-summary > div {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .55rem;
}

.selection-review {
    margin-top: 1rem;
    padding: .9rem;
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .75rem;
}

.selection-review > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
}

.selection-review > summary strong,
.selection-review > summary small,
.selection-review-item strong,
.selection-review-item small {
    display: block;
}

.selection-review > summary small,
.selection-review-item small {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .74rem;
}

.selection-review-list {
    margin: .85rem 0;
    display: grid;
    gap: .45rem;
}

.selection-review-item {
    padding: .65rem .75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .58rem;
}

.field {
    display: grid;
    gap: .38rem;
}

.field > span {
    color: var(--muted);
    font-size: .76rem;
    font-weight: 720;
}

.field input,
.field select,
.field textarea {
    width: 100%;
    min-height: 2.65rem;
    padding: .6rem .7rem;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-control);
}

.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--accent); }
.field input[aria-invalid="true"], .field .invalid { border-color: var(--danger); }
.field { min-width: 0; }

.field textarea {
    resize: vertical;
}

.field input:disabled {
    opacity: .55;
}

.form-grid {
    margin: 1rem 0;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: .85rem;
}

.option-list {
    margin: .85rem 0 1.1rem;
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.25rem;
    color: var(--muted);
    font-size: .84rem;
}

.option-list label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.browse-toolbar {
    margin: .9rem 0;
    display: flex;
    align-items: center;
    gap: .75rem;
}

.browse-path {
    min-width: 0;
    overflow: hidden;
    color: var(--muted);
    font-size: .8rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.archive-download {
    margin-top: .85rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .65rem;
}

.selection-count {
    color: var(--muted);
    font-size: .78rem;
}

.button-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .55rem;
}

.page-actions {
    justify-content: flex-end;
}

.inventory-browser {
    margin-top: .9rem;
}

.inventory-next {
    margin-top: .85rem;
}

.policy-create,
.policy-list {
    margin-bottom: .9rem;
}

.policy-create {
    display: grid;
    gap: 1rem;
}

body.policy-wizard-open { overflow: hidden; }

.policy-wizard-backdrop {
    position: fixed;
    z-index: 1200;
    inset: 0;
    padding: clamp(.5rem, 2vw, 1.5rem);
    display: grid;
    place-items: center;
    background: rgb(9 23 42 / 67%);
    backdrop-filter: blur(8px);
}

.policy-wizard-dialog {
    width: min(100%, 76rem);
    max-height: calc(100dvh - 1rem);
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    overflow: hidden;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: 1.1rem;
    box-shadow: 0 1.5rem 5rem rgb(0 0 0 / 32%);
    animation: portal-enter 180ms ease-out;
}

.policy-wizard-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: clamp(1.25rem, 3vw, 1.8rem) clamp(1.2rem, 3vw, 2rem);
    color: white;
    background: linear-gradient(115deg, var(--sidebar-bg) 0%, #174961 65%, #087e87 100%);
}

.policy-wizard-header .eyebrow {
    margin-bottom: .35rem;
    color: #a9eff0;
    letter-spacing: .1em;
}

.policy-wizard-header h2 {
    margin: 0 0 .2rem;
    color: white;
    font-size: clamp(1.35rem, 2.6vw, 2rem);
}

.policy-wizard-header h2:focus { outline: none; }
.policy-wizard-header p:last-child { margin: 0; color: #dceef2; }

.policy-wizard-close {
    width: 2.4rem;
    height: 2.4rem;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    color: white;
    background: rgb(255 255 255 / 14%);
    border: 1px solid rgb(255 255 255 / 30%);
    border-radius: 50%;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.policy-wizard-close:hover { background: rgb(255 255 255 / 25%); }
.policy-wizard-close:disabled { opacity: .5; cursor: wait; }

.policy-wizard-steps {
    padding: .7rem clamp(.8rem, 2.5vw, 1.7rem);
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .4rem;
    border-bottom: 1px solid var(--border);
    background: var(--surface-raised);
}

.policy-wizard-step {
    min-width: 0;
    padding: .5rem .55rem;
    display: flex;
    align-items: center;
    gap: .55rem;
    color: var(--muted);
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    border-radius: .65rem;
    cursor: pointer;
    font-size: .82rem;
    font-weight: 720;
}

.policy-wizard-step-index {
    width: 1.85rem;
    height: 1.85rem;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: 50%;
    font-size: .74rem;
}

.policy-wizard-step.is-current {
    color: var(--accent-strong);
    background: var(--accent-soft);
    border-color: color-mix(in srgb, var(--accent) 25%, var(--border));
}

.policy-wizard-step.is-current .policy-wizard-step-index,
.policy-wizard-step.is-complete .policy-wizard-step-index {
    color: white;
    background: var(--accent-strong);
    border-color: var(--accent-strong);
}

.policy-wizard-step:disabled { opacity: .62; cursor: default; }
.policy-wizard-scroll { min-height: 0; padding: clamp(1rem, 2.5vw, 1.6rem); overflow: auto; }
.policy-wizard-scroll:focus { outline: none; }
.policy-wizard-scroll [hidden] { display: none !important; }
.policy-wizard-scroll .policy-create { margin: 0; }
.policy-wizard-scroll .form-section,
.policy-wizard-scroll .settings-disclosure { background: var(--surface); }

.policy-wizard-scroll .policy-source-grid { align-items: start; }
.policy-wizard-scroll .policy-source-grid .field { align-content: start; }
.policy-wizard-scroll .policy-source-grid.policy-source-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.policy-source-path-field { grid-column: 1 / -1; }

.policy-destination-note {
    margin: -.2rem 0 1rem;
    padding: .65rem .8rem;
    color: var(--muted);
    background: var(--surface-raised);
    border-left: 3px solid var(--accent);
    border-radius: .35rem;
    font-size: .78rem;
    line-height: 1.5;
}

.policy-fixed-source {
    overflow: hidden;
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .75rem;
}

.policy-fixed-source-heading {
    padding: .9rem 1rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--border);
}

.policy-fixed-source-heading strong { font-size: .88rem; }
.policy-fixed-source-heading p,
.policy-fixed-source-footer {
    margin: .2rem 0 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.5;
}

.policy-fixed-tag {
    padding: .2rem .55rem;
    flex: 0 0 auto;
    color: var(--accent-strong);
    background: var(--accent-soft);
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.policy-fixed-source-details {
    padding: .85rem 1rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem 1.25rem;
}

.policy-fixed-source-details > div { min-width: 0; display: grid; align-content: start; gap: .18rem; }
.policy-fixed-source-details span { color: var(--muted); font-size: .72rem; font-weight: 700; }
.policy-fixed-source-details strong { overflow-wrap: anywhere; font-size: .85rem; }
.policy-fixed-source-paths { grid-column: 1 / -1; max-height: 9rem; overflow: auto; }
.policy-fixed-source-footer { margin: 0; padding: .65rem 1rem .8rem; border-top: 1px solid var(--border); }

.policy-wizard-scroll .policy-wizard-section {
    padding: 0;
    background: transparent;
    border: 0;
}

.policy-wizard-section > .form-section-heading { padding: .15rem .1rem; }

.policy-setting-stack {
    margin-top: 1rem;
    display: grid;
    gap: .8rem;
}

.policy-setting-block {
    min-width: 0;
    padding: 1rem;
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .75rem;
}

.policy-setting-block-heading { margin-bottom: .85rem; }
.policy-setting-block-heading h4 { margin: 0; font-size: .9rem; }
.policy-setting-block-heading p,
.policy-setting-help {
    margin: .2rem 0 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.5;
}

.policy-setting-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: .75rem;
}

.policy-setting-grid + .policy-setting-grid { margin-top: .75rem; }
.policy-setting-grid .field { align-content: start; }
.policy-setting-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.policy-setting-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.policy-setting-help { margin-top: .7rem; }

.policy-option-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.policy-option-card {
    padding: .8rem .9rem;
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .6rem;
    cursor: pointer;
}

.policy-option-card:has(input:checked) {
    border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
    background: var(--accent-soft);
}

.policy-option-card input {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
    margin: .12rem 0 0;
    accent-color: var(--accent-strong);
}

.policy-option-card span { display: grid; gap: .15rem; }
.policy-option-card strong { font-size: .8rem; }
.policy-option-card small { color: var(--muted); font-size: .73rem; line-height: 1.4; }

.policy-recommendations {
    margin-top: 1rem;
    padding: .85rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--accent-soft);
    border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border));
    border-radius: .7rem;
}

.policy-recommendations strong { font-size: .84rem; }
.policy-recommendations p { margin: .2rem 0 0; color: var(--muted); font-size: .76rem; line-height: 1.4; }
.policy-recommendations .button { flex: 0 0 auto; }

.policy-exclusion-grid {
    margin-top: .8rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: .8rem;
}

.policy-exclusion-card {
    padding: 1rem;
    align-content: start;
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .7rem;
}

.policy-exclusion-card > span { color: var(--text); font-size: .84rem; }
.policy-exclusion-card .field-help { min-height: 2.2rem; line-height: 1.45; }
.policy-exclusion-card textarea { min-height: 9rem; line-height: 1.45; background: var(--surface); }
.policy-exclusion-override { border-color: color-mix(in srgb, var(--accent) 30%, var(--border)); }

@media (max-width: 860px) {
    .policy-setting-grid,
    .policy-setting-grid-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.policy-wizard-footer {
    padding: .85rem clamp(1rem, 2.5vw, 1.6rem);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid var(--border);
    background: var(--surface);
}

.policy-wizard-footer-copy { display: grid; gap: .1rem; }
.policy-wizard-footer-copy strong { font-size: .85rem; }
.policy-wizard-footer-copy span { color: var(--muted); font-size: .75rem; }
.policy-wizard-footer .button-row { flex: 0 0 auto; }

.policy-wizard-review {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.policy-wizard-review > div {
    min-width: 0;
    padding: .9rem 1rem;
    display: grid;
    gap: .2rem;
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .7rem;
}

.policy-wizard-review span { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.policy-wizard-review strong { overflow-wrap: anywhere; font-size: .88rem; }

@media (max-width: 720px) {
    .policy-wizard-backdrop { padding: 0; }
    .policy-wizard-dialog { width: 100%; max-height: 100dvh; height: 100dvh; border-radius: 0; }
    .policy-wizard-steps { display: flex; overflow-x: auto; }
    .policy-wizard-step { min-width: max-content; }
    .policy-wizard-footer { align-items: stretch; flex-direction: column; }
    .policy-wizard-footer .button-row { justify-content: flex-end; }
    .policy-wizard-review { grid-template-columns: 1fr; }
    .policy-wizard-scroll .policy-source-grid.policy-source-grid-two { grid-template-columns: 1fr; }
    .policy-fixed-source-details { grid-template-columns: 1fr; }
    .policy-setting-grid,
    .policy-setting-grid-two,
    .policy-setting-grid-four,
    .policy-option-grid,
    .policy-exclusion-grid { grid-template-columns: 1fr; }
    .policy-recommendations { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .policy-wizard-dialog { animation: none; }
}

.policy-organizer {
    display: grid;
    grid-template-columns: minmax(12rem, 2fr) repeat(3, minmax(9rem, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.policy-organizer-summary,
.policy-computer-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
}

.policy-organizer-summary {
    color: var(--muted);
    font-size: .82rem;
    margin-bottom: .75rem;
}

.policy-computer-group { margin-top: .75rem; }

.policy-computer-heading {
    width: 100%;
    padding: .9rem 1rem;
    color: var(--text);
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    cursor: pointer;
    text-align: left;
}

.policy-computer-heading:hover { border-color: var(--accent); }
.policy-computer-heading:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.policy-computer-title { display: inline-flex; align-items: center; gap: .5rem; font-weight: 750; }
.policy-computer-meta { color: var(--muted); font-size: .8rem; margin-left: auto; }
.policy-computer-chevron { color: var(--accent-strong); font-size: 1.2rem; }
.policy-computer-group .table-shell { margin-top: .35rem; }

@media (max-width: 900px) {
    .policy-organizer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .policy-organizer { grid-template-columns: 1fr; }
    .policy-organizer-summary { align-items: flex-start; flex-direction: column; }
    .policy-computer-heading { flex-wrap: wrap; }
    .policy-computer-meta { width: 100%; margin-left: 0; order: 3; }
}

.form-section,
.settings-disclosure {
    padding: 1rem;
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .8rem;
}

.form-section-heading,
.settings-disclosure > summary {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.form-section-heading h3,
.settings-disclosure > summary strong {
    margin: 0;
    font-size: .95rem;
}

.form-section-heading p,
.settings-disclosure > summary small {
    margin: .18rem 0 0;
    display: block;
    color: var(--muted);
    font-size: .78rem;
}

.step-number {
    width: 1.9rem;
    height: 1.9rem;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    color: var(--accent-strong);
    background: var(--accent-soft);
    border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 850;
}

.settings-disclosure > summary {
    min-height: 2.75rem;
    cursor: pointer;
    list-style-position: outside;
}

.settings-disclosure > summary:hover strong {
    color: var(--accent-strong);
}

.settings-disclosure[open] > summary {
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--border);
}

.field-help {
    color: var(--muted);
    font-size: .78rem;
}

.policy-submit {
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--accent-soft);
    border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
    border-radius: .8rem;
}

.policy-submit strong,
.policy-submit span {
    display: block;
}

.policy-submit span {
    margin-top: .2rem;
    color: var(--muted);
    font-size: .78rem;
}

.directory-selector {
    margin: 1rem 0;
    padding: 1rem;
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .75rem;
}

.directory-search {
    max-width: 28rem;
    margin: .85rem 0;
}

.path-rule-list {
    margin: .9rem 0;
    display: grid;
    gap: .45rem;
}

.path-rule {
    padding: .65rem .75rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .58rem;
}

.path-rule small {
    margin-top: .15rem;
    display: block;
    color: var(--muted);
    font-size: .72rem;
}

.tree-check {
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    display: inline-grid;
    place-items: center;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: .35rem;
    cursor: pointer;
    font-weight: 850;
}

.tree-check-true {
    color: #ffffff;
    background: var(--accent-strong);
    border-color: var(--accent-strong);
}

.tree-check-mixed {
    color: var(--accent-strong);
    background: var(--accent-soft);
    border-color: var(--accent);
}

.form-grid-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.field-wide {
    grid-column: span 2;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.loading-panel,
.empty-state {
    padding: 3.5rem 1.5rem;
    color: var(--muted);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    text-align: center;
}

.empty-state h1,
.empty-state h2 {
    color: var(--text);
}

.empty-state-icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 1rem;
    display: grid;
    place-items: center;
    color: var(--accent-strong);
    background: var(--accent-soft);
    border-radius: .9rem;
    font-size: 1.4rem;
    font-weight: 850;
}

.table-shell {
    position: relative;
    overflow-x: auto;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
}

.table-shell:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--accent) 45%, transparent);
    outline-offset: 2px;
}

.table-shell > table {
    min-width: 42rem;
}

table {
    width: 100%;
    border-collapse: collapse;
    font-size: .84rem;
}

th,
td {
    padding: .9rem 1rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: middle;
}

th {
    color: var(--muted);
    background: var(--surface-raised);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

tbody tr { transition: background-color 150ms ease; }
tbody tr:hover { background: color-mix(in srgb, var(--accent-soft) 30%, var(--surface)); }
td { overflow-wrap: normal; }
.table-shell .button { font-size: .78rem; min-height: 2.3rem; padding: .4rem .65rem; }
.table-shell td select { min-width: 9rem; }
.form-section, .settings-disclosure, .directory-selector, .panel-subsection { border-radius: var(--radius-card); }
progress { accent-color: var(--accent); border: 0; border-radius: .3rem; overflow: hidden; }
progress::-webkit-progress-bar { background: var(--border); border-radius: .3rem; }
progress::-webkit-progress-value { background: linear-gradient(90deg, #14b8b0, #008c9b); border-radius: .3rem; transition: width 350ms ease; }
progress::-moz-progress-bar { background: var(--accent); border-radius: .3rem; }
@keyframes portal-enter { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.content, .account-card { animation: portal-enter 200ms cubic-bezier(.2,.7,.2,1); }
.confirmation-dialog { animation: portal-enter 160ms ease-out; }
@media (prefers-reduced-motion: reduce) { .button:hover:not(:disabled) { transform: none; } }

tbody tr:last-child td {
    border-bottom: 0;
}

.table-subtitle {
    margin-top: .18rem;
    display: block;
    color: var(--muted);
    font-size: .74rem;
}

.status-pill {
    padding: .27rem .48rem;
    display: inline-flex;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 750;
    white-space: nowrap;
}

.status-good {
    color: var(--accent-strong);
    background: var(--accent-soft);
}

.status-warning {
    color: var(--warning);
    background: var(--warning-soft);
}

.status-danger {
    color: var(--danger);
    background: var(--danger-soft);
}

.status-muted {
    color: var(--muted);
    background: var(--surface-raised);
}

.status-info {
    color: var(--info);
    background: var(--info-soft);
}

.filter-panel {
    margin-bottom: .9rem;
}

.check-field {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--muted);
    font-size: .84rem;
}

.compact-code {
    max-width: 19rem;
    display: inline-block;
    overflow: hidden;
    color: var(--text);
    font-size: .72rem;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
}

.audit-details {
    margin-top: .4rem;
    color: var(--muted);
    font-size: .75rem;
}

.audit-details summary {
    cursor: pointer;
    font-weight: 700;
}

.audit-details code {
    max-width: 28rem;
    margin-top: .35rem;
    display: block;
    overflow-wrap: anywhere;
    color: var(--text);
    white-space: normal;
}

.pagination-row {
    padding-top: 1rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .7rem;
    color: var(--muted);
    font-size: .78rem;
}

.notification-list {
    display: grid;
    gap: .75rem;
}

.notification-card {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1rem;
}

.notification-card h2 {
    margin-top: .7rem;
}

.notification-card p:last-child {
    margin-bottom: 0;
}

.notification-title-row {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.diagnostic-captured {
    margin-top: -1rem;
    margin-bottom: 1rem;
    text-align: right;
}

.diagnostics-actions {
    margin-top: -1rem;
    margin-bottom: 1rem;
    justify-content: flex-end;
}

.diagnostics-storage {
    margin-top: .9rem;
}

.user-create {
    margin-bottom: .9rem;
}

.user-list {
    display: grid;
    gap: .75rem;
}

.user-card-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1rem;
}

.user-card-heading p {
    margin-bottom: .6rem;
    color: var(--muted);
}

.role-fieldset {
    margin: 1rem 0;
    padding: .8rem;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1rem;
    border: 1px solid var(--border);
    border-radius: .65rem;
}

.role-fieldset legend {
    padding: 0 .35rem;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 750;
}

.role-fieldset label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
}

.password-reset {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: minmax(14rem, 24rem) auto;
    align-items: end;
    gap: .65rem;
}

.panel-subsection {
    margin: 1rem 0;
    padding: .9rem;
    border: 1px solid var(--border);
    border-radius: .7rem;
    background: color-mix(in srgb, var(--surface-raised) 55%, transparent);
}

.panel-subsection h3 {
    margin: 0 0 .8rem;
}

.metric-inline {
    min-height: 4.2rem;
    display: grid;
    align-content: center;
    gap: .15rem;
}

.metric-inline span,
.metric-inline small {
    color: var(--muted);
    font-size: .75rem;
}

.quota-progress {
    width: 100%;
    height: .8rem;
    margin: .25rem 0 1rem;
    overflow: hidden;
    accent-color: var(--accent, #4ee6aa);
}

.account-divider {
    margin: .2rem 0;
    display: flex;
    align-items: center;
    gap: .65rem;
    color: var(--muted);
    font-size: .72rem;
    text-transform: uppercase;
}

.account-divider::before,
.account-divider::after {
    height: 1px;
    flex: 1;
    content: "";
    background: var(--border);
}

.setup-steps {
    color: var(--muted);
    font-size: .86rem;
}

.setup-steps li {
    margin-bottom: .35rem;
}

.authenticator-uri {
    margin: 1rem 0;
    color: var(--muted);
    font-size: .78rem;
}

.authenticator-uri code {
    margin-top: .4rem;
    display: block;
    overflow-wrap: anywhere;
    color: var(--text);
    user-select: all;
}

.security-password {
    max-width: 26rem;
    margin: 1rem 0;
}

.recovery-panel {
    margin-top: .9rem;
}

.recovery-code-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.recovery-code-grid code {
    padding: .55rem;
    color: var(--text);
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .45rem;
    text-align: center;
    user-select: all;
}

.target-row {
    padding: .7rem 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    border-bottom: 1px solid var(--border);
}

.target-row:last-child {
    border-bottom: 0;
}

.storage-section {
    margin-top: .9rem;
}

.settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.settings-list {
    margin: 1rem 0 0;
}

.settings-list > div {
    padding: .55rem 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--border);
}

.settings-list > div:last-child {
    border-bottom: 0;
}

.settings-list dt {
    color: var(--muted);
    font-size: .78rem;
}

.settings-list dd {
    margin: 0;
    font-size: .82rem;
    font-weight: 700;
    text-align: right;
}

@media (max-width: 1050px) {
    .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .page-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .page-heading .button {
        align-self: start;
    }

    .page-actions {
        justify-content: flex-start;
    }

    .form-grid-three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .page-actions,
    .page-actions .button {
        width: 100%;
    }

    .metric-grid,
    .content-grid {
        grid-template-columns: 1fr;
    }

    .storage-summary-grid {
        grid-template-columns: 1fr;
    }

    .definition-grid {
        grid-template-columns: 1fr;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .field-wide {
        grid-column: auto;
    }

    .notification-card {
        flex-direction: column;
    }

    .pagination-row {
        justify-content: center;
    }

    .user-card-heading {
        flex-direction: column;
    }

    .password-reset {
        grid-template-columns: 1fr;
    }

    .recovery-code-grid {
        grid-template-columns: 1fr;
    }

    .settings-grid {
        grid-template-columns: 1fr;
    }

    .path-rule {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .path-rule .text-button {
        grid-column: 2;
        justify-self: start;
    }

    .policy-submit {
        align-items: stretch;
        flex-direction: column;
    }

    .policy-submit .button {
        width: 100%;
    }

    .restore-source-summary,
    .selection-review > summary,
    .selection-review-item {
        align-items: flex-start;
        flex-direction: column;
    }

    .copy-field {
        align-items: stretch;
        flex-direction: column;
    }

    .command-block {
        grid-template-columns: 1fr;
    }
}

@keyframes busy-spin {
    to {
        transform: rotate(1turn);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}

.job-progress {
    display: grid;
    gap: 0.28rem;
    min-width: 16rem;
}

.job-progress progress {
    width: 100%;
    height: 0.55rem;
    overflow: hidden;
    accent-color: var(--accent, #4ee6aa);
}

.job-current-path {
    display: block;
    max-width: 34rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Public proof and enquiry sections: shared navy/teal marketing palette. */
.hero-secondary { display: inline-block; margin: 1rem; color: #153b49; font-weight: 700; text-underline-offset: .3em; }
.marketing-proof { margin: 0 auto; padding: 3rem max(5%, 1.25rem); background: #102f3b; color: white; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; align-items: center; }
.marketing-proof h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); max-width: 24ch; color: white; }
.marketing-proof .marketing-eyebrow, .marketing-proof .live-refresh { color: #9fe4d8; }
.marketing-proof-number { display: flex; flex-direction: column; gap: .5rem; }
.marketing-proof-number strong { font-size: clamp(2rem, 4vw, 3.6rem); font-variant-numeric: tabular-nums; line-height: 1.2; overflow-wrap: anywhere; }
.marketing-proof-number span { font-size: 1rem; color: #d2e3e8; }
.marketing-proof-note { grid-column: 1 / -1; color: #cfdee3; font-size: .875rem; max-width: 100ch; margin: 0; }
.marketing-faq { max-width: 1100px; margin: auto; padding: 5rem 1.5rem; }
.marketing-faq h2, .marketing-close h2 { font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.15; margin-bottom: 2rem; }
.marketing-faq details { border-bottom: 1px solid #cbd7da; padding: 1.35rem 0; font-size: 1rem; }
.marketing-faq summary { cursor: pointer; font-weight: 700; font-size: 1.1rem; }
.marketing-faq details p { max-width: 75ch; margin: 1rem 0 0; line-height: 1.7; }
.marketing-close { padding: 4rem max(5%, 1.5rem); background: #e7f5f1; display: flex; gap: 3rem; align-items: center; justify-content: space-between; }
.marketing-close p { max-width: 55ch; font-size: 1rem; }
.marketing-close a { overflow-wrap: anywhere; }
@media (max-width: 760px) { .marketing-proof { grid-template-columns: 1fr; } .marketing-proof-note { grid-column: auto; } .marketing-close { flex-direction: column; align-items: flex-start; } .hero-secondary { margin-left: 0; } }
