.policy-center { color: #172a35; font-size: 14px; line-height: 1.55; }
.policy-center h1 { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 650; letter-spacing: -.025em; overflow-wrap: anywhere; }
.policy-center h2 { font-size: 1.15rem; font-weight: 650; }
.policy-center h3 { font-size: .95rem; font-weight: 650; }
.policy-center a { color: #047857; text-underline-offset: 3px; }
.policy-center a:hover { text-decoration: underline; }
.policy-eyebrow { color: #047857; font-size: .72rem; letter-spacing: .12em; font-weight: 650; text-transform: uppercase; }
.policy-muted { color: #526273; font-size: .85rem; }
.policy-header { margin-bottom: 20px; }
.policy-nav { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 0 20px; }
.policy-nav a { padding: 7px 12px; border: 1px solid #d7e2dc; border-radius: 8px; background: white; font-weight: 550; }
.policy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.policy-panel { background: white; border: 1px solid #dce4e5; border-radius: 14px; padding: 20px; margin-bottom: 18px; min-width: 0; }
.policy-panel-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.policy-production { border-top: 3px solid #059669; }
.policy-badge { display: inline-block; border: 1px solid #dce4e5; background: #f5f7f9; color: #455465; padding: 3px 8px; border-radius: 6px; font-size: 11px; font-weight: 650; white-space: nowrap; }
.policy-active { background: #e7f8ef; color: #065f46; border-color: #a7dec2; }
.policy-unavailable { color: #92400e; background: #fff8eb; padding: 8px 10px; border-radius: 6px; margin-top: 8px; }
.policy-counts { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 10px; margin: 10px 0 20px; }
.policy-counts div { border-left: 2px solid #c6d6cc; padding: 8px 12px; }
.policy-counts dd { font-size: 1.5rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.policy-table-wrap { overflow-x: auto; }
.policy-center table { width: 100%; border-collapse: collapse; text-align: left; }
.policy-center th { color: #526273; font-size: .72rem; font-weight: 650; background: #f5f8f7; }
.policy-center td, .policy-center th { padding: 10px 12px; vertical-align: top; border-bottom: 1px solid #edf1ef; overflow-wrap: anywhere; }
.policy-center td { font-variant-numeric: tabular-nums; }
.policy-rules th { width: 25%; min-width: 130px; text-transform: none; font-size: .82rem; }
.policy-center summary { cursor: pointer; color: #526273; }
.policy-center details { margin-top: 8px; }
.policy-center code, .policy-center pre { overflow-wrap: anywhere; white-space: pre-wrap; font-size: .75rem; }
.policy-children { display: grid; gap: 8px; margin: 14px 0; }
.policy-child { display: flex; justify-content: space-between; align-items: start; gap: 8px; background: #f6f9f7; padding: 10px 12px; border-radius: 7px; }
.policy-child small { display: block; color: #526273; overflow-wrap: anywhere; }
.policy-preview { border-left: 3px solid #7aa995; background: #f4f9f6; }
.policy-preview p { margin: 8px 0; }
.policy-definition { display: grid; grid-template-columns: minmax(0, 2fr) minmax(230px, 1fr); gap: 20px; }
.policy-form { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.policy-form label { display: block; margin-bottom: 5px; font-weight: 600; }
.policy-form select { max-width: 100%; border: 1px solid #cbd5d1; background: white; border-radius: 7px; padding: 8px; }
.policy-form button { color: white; background: #047857; border-radius: 7px; padding: 9px 18px; cursor: pointer; }
.policy-timeline { border-left: 2px solid #cbded1; padding-left: 18px; }
.policy-timeline article { padding: 0 0 20px; }
.policy-center .policy-empty { padding: 15px 0; color: #526273; }
@media (max-width: 760px) {
  .policy-grid, .policy-definition { grid-template-columns: minmax(0, 1fr); }
  .policy-counts { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .policy-panel { padding: 14px; }
  .policy-child { flex-wrap: wrap; }
  .policy-center td, .policy-center th { padding: 8px; }
  .policy-form > div { width: 100%; min-width: 0; }
  .policy-form select { width: 100%; }
}

.policy-equation { background: #ecf7f0; border-radius: 8px; padding: 12px; font-weight: 650; margin: 12px 0; }

/* Admin › Setup rules */
.rulebook-steps, .rulebook-trace { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rulebook-step { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(0, 2.2fr); gap: 18px; padding: 14px; border: 1px solid #e3eae6; border-radius: 10px; }
.rulebook-disabled { background: #f7f8f9; color: #526273; }
.rulebook-state { display: flex; gap: 12px; align-items: flex-start; }
.rulebook-state h3 { margin: 0; }
.rulebook-state p { margin: 2px 0 0; }
.rulebook-index { flex: none; display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #e7f8ef; color: #065f46; font-weight: 650; font-size: .8rem; }
.rulebook-customer { font-size: .8rem; color: #455465; }
.rulebook-body > * + * { margin-top: 6px; }
.rulebook-label { color: #526273; font-size: .72rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.rulebook-clauses { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.rulebook-clauses li { background: #f5f8f7; border-radius: 6px; padding: 6px 10px; }
.rulebook-clauses code { color: #526273; margin-left: 6px; }
.rulebook-disqualifiers li { background: #fff4f2; }
.rulebook-note { font-size: .85rem; color: #455465; }
.rulebook-mark { display: inline-block; width: 1.2em; text-align: center; font-weight: 700; }
.rulebook-pass { color: #047857; }
.rulebook-fail { color: #b42318; }
.rulebook-unknown { color: #b54708; }
.rulebook-badge-fail { background: #fff4f2; color: #9f1d15; border-color: #f4c7c1; }
.rulebook-dimensions { margin: 12px 0 18px; }
.rulebook-curve { width: 100%; max-width: 640px; height: auto; margin: 8px 0; display: block; }
.rulebook-curve .rulebook-line { fill: none; stroke: #047857; stroke-width: 2.5; }
.rulebook-curve .rulebook-knot { fill: white; stroke: #047857; stroke-width: 1.5; }
.rulebook-curve .rulebook-grid { stroke: #e3eae6; }
.rulebook-curve .rulebook-axis { fill: #526273; font-size: 11px; }
.rulebook-zone-good, .rulebook-key-good { fill: #bfead3; background: #bfead3; }
.rulebook-zone-developing, .rulebook-key-developing { fill: #e6f4ec; background: #e6f4ec; }
.rulebook-zone-extended, .rulebook-key-extended { fill: #fdeceb; background: #fdeceb; }
.rulebook-key { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -1px; border: 1px solid #d5dfda; }
.rulebook-symbol { border: 1px solid #cbd5d1; border-radius: 7px; padding: 8px; width: 9rem; text-transform: uppercase; }
.rulebook-verdict { margin: 14px 0 10px; }
.rulebook-verdict .policy-muted { display: block; }
.rulebook-trace > li { border: 1px solid #e3eae6; border-radius: 10px; padding: 10px 12px; }
.rulebook-trace-head { display: flex; justify-content: space-between; gap: 8px; font-weight: 600; margin-bottom: 6px; }
@media (max-width: 760px) {
  .rulebook-step { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}
.rulebook-examples td { white-space: nowrap; }
.rulebook-examples th[scope="row"] { min-width: 180px; }
