/* Policy Journal: shared application palette and public Fluent 25.2 tokens. */
:root {
    color-scheme: light;
    --pj-canvas: #f5f3ed;
    --pj-paper: #fffefb;
    --pj-ink: #292e28;
    --pj-muted: #555d53;
    --pj-rule: #d4d7cc;
    --pj-control: #7d8977;
    --pj-accent: #285541;
    --pj-accent-hover: #1c4230;
    --pj-accent-soft: #e7eee7;
    --pj-info: #245b83;
    --pj-info-soft: #eaf2f8;
    --pj-warning: #78500b;
    --pj-warning-soft: #fbf1d8;
    --pj-danger: #a1322d;
    --pj-danger-soft: #faebe8;
    --pj-success: #255e43;
    --pj-success-soft: #e7f1e9;
    --pj-proposal: #624884;
    --pj-proposal-soft: #f0ebf6;
    --pj-focus: #a45a00;
    --pj-body-font: "Segoe UI", Arial, sans-serif;
    --pj-heading-font: Georgia, Cambria, "Times New Roman", serif;

    --dxds-font-family-sans-serif: var(--pj-body-font);
    --dxds-font-family-serif: var(--pj-heading-font);
    --dxds-primary-10: #f4f7f3;
    --dxds-primary-20: #edf2eb;
    --dxds-primary-30: var(--pj-accent-soft);
    --dxds-primary-40: #d9e5da;
    --dxds-primary-50: #c4d7c7;
    --dxds-primary-60: #a4bfab;
    --dxds-primary-70: #6b9478;
    --dxds-primary-80: #3d7151;
    --dxds-primary-90: var(--pj-accent);
    --dxds-primary-100: #244e3a;
    --dxds-primary-110: var(--pj-accent-hover);
    --dxds-primary-120: #183b2c;
    --dxds-primary-130: #143323;
    --dxds-primary-140: #112b1d;
    --dxds-primary-150: #0d2418;
    --dxds-primary-160: #0a1d13;
    --dxds-primary-170: #07160f;
    --dxds-neutral-10: var(--pj-paper);
    --dxds-neutral-20: var(--pj-canvas);
    --dxds-neutral-30: #eeede6;
    --dxds-neutral-40: #e4e7dd;
    --dxds-neutral-50: var(--pj-rule);
    --dxds-neutral-60: #bcc4b4;
    --dxds-neutral-140: var(--pj-muted);
    --dxds-neutral-200: var(--pj-muted);
    --dxds-neutral-230: #3d453c;
    --dxds-neutral-250: var(--pj-ink);

    --bs-body-bg: var(--pj-canvas);
    --bs-body-color: var(--pj-ink);
    --bs-body-bg-rgb: 245, 243, 237;
    --bs-body-color-rgb: 41, 46, 40;
    --bs-body-font-family: var(--pj-body-font);
    --bs-heading-color: var(--pj-ink);
    --bs-primary: var(--pj-accent);
    --bs-primary-rgb: 40, 85, 65;
    --bs-secondary-color: var(--pj-muted);
    --bs-secondary-color-rgb: 85, 93, 83;
    --bs-tertiary-bg: var(--pj-canvas);
    --bs-border-color: var(--pj-rule);
    --bs-border-radius: 4px;
    --bs-border-radius-lg: 6px;
    --bs-link-color: var(--pj-accent);
    --bs-link-color-rgb: 40, 85, 65;
    --bs-link-hover-color: var(--pj-accent-hover);
    --bs-link-hover-color-rgb: 28, 66, 48;
}

html, body {
    display: block;
    height: auto;
    min-height: 100%;
    overflow: visible;
    background: var(--pj-canvas);
    color: var(--pj-ink);
    font-family: var(--pj-body-font);
    font-size: 16px;
    line-height: 1.6;
}

body { margin: 0; }
a { color: var(--pj-accent); text-underline-offset: 3px; }
a:hover { color: var(--pj-accent-hover); }
button, input, select, textarea { font-family: var(--pj-body-font); }
button, select, summary { touch-action: manipulation; }
input[type="checkbox"], input[type="radio"], progress { accent-color: var(--pj-accent); }
:focus-visible { outline: 3px solid var(--pj-focus); outline-offset: 3px; }

h1, h2, h3, h4, h5, h6 { color: var(--pj-ink); }
h1, .title-header-text {
    font-family: var(--pj-heading-font);
    font-size: clamp(1.9rem, 3.1vw, 2.65rem);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -.025em;
    margin-bottom: 1rem;
}
h2 { font-size: 1.4rem; line-height: 1.35; }
h3 { font-size: 1.15rem; line-height: 1.4; }
p { max-width: 90ch; }
hr { border-color: var(--pj-rule); opacity: 1; }
label, legend, summary { color: var(--pj-ink); }
small, .small { font-size: .875rem; }
code { color: var(--pj-muted); }
.text-muted { color: var(--pj-muted) !important; }
.title-content-text { font-size: 1.05rem; line-height: 1.7; color: var(--pj-muted); max-width: 72ch; }
.main-content { height: auto; min-height: 0; padding: 1.5rem 0; align-items: flex-start; }
.block-content { background: var(--pj-paper); border: 1px solid var(--pj-rule); border-top: 3px solid var(--pj-accent); padding: clamp(1.1rem, 3vw, 2rem); }
.info-message { justify-content: flex-start; background: var(--pj-info-soft); color: var(--pj-info); border-left: 3px solid var(--pj-info); }
.validation-message { color: var(--pj-danger); }
.invalid { outline-color: var(--pj-danger); }

.btn { font-size: .95rem; font-weight: 500; border-radius: 4px; padding: .5rem .85rem; }
.btn-primary {
    --bs-btn-bg: var(--pj-accent); --bs-btn-color: var(--pj-paper); --bs-btn-border-color: var(--pj-accent);
    --bs-btn-hover-bg: var(--pj-accent-hover); --bs-btn-hover-color: var(--pj-paper); --bs-btn-hover-border-color: var(--pj-accent-hover);
    --bs-btn-active-bg: #143323; --bs-btn-active-color: var(--pj-paper); --bs-btn-active-border-color: #143323;
    --bs-btn-disabled-bg: var(--pj-accent); --bs-btn-disabled-color: var(--pj-paper); --bs-btn-disabled-border-color: var(--pj-accent);
}
.btn-secondary, .btn-outline-secondary, .btn-outline-primary {
    --bs-btn-bg: var(--pj-paper); --bs-btn-color: var(--pj-accent); --bs-btn-border-color: var(--pj-control);
    --bs-btn-hover-bg: var(--pj-accent-soft); --bs-btn-hover-color: var(--pj-accent-hover); --bs-btn-hover-border-color: var(--pj-accent);
    --bs-btn-active-bg: var(--pj-accent-soft); --bs-btn-active-color: var(--pj-accent-hover); --bs-btn-active-border-color: var(--pj-accent);
    --bs-btn-disabled-bg: var(--pj-canvas); --bs-btn-disabled-color: var(--pj-muted); --bs-btn-disabled-border-color: var(--pj-rule);
}
.btn-link { --bs-btn-color: var(--pj-accent); --bs-btn-hover-color: var(--pj-accent-hover); }
.form-control, .form-select {
    color: var(--pj-ink); background-color: var(--pj-paper); border-color: var(--pj-control);
    border-radius: 4px; font-size: 1rem; min-height: 2.7rem; line-height: 1.5;
}
.form-control:focus, .form-select:focus { color: var(--pj-ink); background-color: var(--pj-paper); border-color: var(--pj-accent); box-shadow: 0 0 0 2px var(--pj-accent-soft); }
.form-control::placeholder { color: var(--pj-muted); opacity: 1; }
.form-control:disabled, .form-select:disabled { background-color: #eeede6; color: var(--pj-muted); }
.form-check-input:checked { background-color: var(--pj-accent); border-color: var(--pj-accent); }
.table {
    --bs-table-color: var(--pj-ink); --bs-table-bg: var(--pj-paper); --bs-table-border-color: var(--pj-rule);
    --bs-table-striped-bg: #f3f3ed; --bs-table-striped-color: var(--pj-ink);
    --bs-table-hover-bg: var(--pj-accent-soft); --bs-table-hover-color: var(--pj-ink);
    --bs-table-active-bg: #d9e5da; --bs-table-active-color: var(--pj-ink);
    font-size: .95rem; line-height: 1.55;
}
.table > :not(caption) > * > * { padding: .85rem .9rem; }
.table > thead > tr > th { background: var(--pj-canvas); font-size: .85rem; color: var(--pj-muted); font-weight: 600; border-bottom-width: 1px; }
.alert { border: 0; border-left: 3px solid; border-radius: 0; padding: .85rem 1rem; }
.alert-info { --bs-alert-color: var(--pj-info); --bs-alert-bg: var(--pj-info-soft); --bs-alert-border-color: var(--pj-info); }
.alert-warning { --bs-alert-color: var(--pj-warning); --bs-alert-bg: var(--pj-warning-soft); --bs-alert-border-color: var(--pj-warning); }
.alert-danger { --bs-alert-color: var(--pj-danger); --bs-alert-bg: var(--pj-danger-soft); --bs-alert-border-color: var(--pj-danger); }
.alert-success { --bs-alert-color: var(--pj-success); --bs-alert-bg: var(--pj-success-soft); --bs-alert-border-color: var(--pj-success); }

@media (max-width: 600px) {
    h1, .title-header-text { font-size: 1.85rem; }
    .button-group { flex-wrap: wrap; }
}
@media print {
    html, body { background: white; color: black; }
    .table { --bs-table-bg: white; --bs-table-color: black; }
}
