:root {
  --policy-ink: #12362f;
  --policy-deep: #075a4c;
  --policy-green: #137965;
  --policy-lime: #dff47b;
  --policy-paper: #fffdf8;
  --policy-line: #cadbd5;
  --policy-muted: #6d837d;
  --policy-coral: #d75d45;
  --policy-amber: #f1b84a;
}

body.policies-module-active .policies-page {
  width: 100%;
  min-height: calc(100vh - 176px);
  padding: 0;
  color: var(--policy-ink);
  background:
    radial-gradient(circle at 94% 2%, rgba(148, 219, 194, .24), transparent 28rem),
    radial-gradient(circle at 5% 92%, rgba(223, 244, 123, .16), transparent 25rem),
    #f7f7f0;
  font-family: "Manrope", sans-serif;
}

.policies-page *,
.policies-page *::before,
.policies-page *::after { box-sizing: border-box; }

.policy-canvas {
  width: min(1480px, calc(100% - 64px));
  margin: 0 auto;
  padding: 34px 0 90px;
}

.policy-period-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 30px;
}

.policy-period-bar label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px 6px 14px;
  border: 1px solid var(--policy-line);
  border-radius: 12px;
  background: rgba(255, 253, 248, .86);
}

.policy-period-bar label span {
  color: var(--policy-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.policy-period-bar select {
  min-width: 118px;
  border: 0;
  outline: 0;
  color: var(--policy-deep);
  background: transparent;
  font: 800 14px/1 "Manrope", sans-serif;
}

.policy-secure {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  padding: 10px 14px;
  border: 1px solid var(--policy-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, .8);
  color: var(--policy-deep);
  font-size: 12px;
  font-weight: 800;
}

.policy-secure i,
.policy-toast-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #51b96d;
  box-shadow: 0 0 0 5px rgba(81, 185, 109, .13);
}

.policy-link-button {
  padding: 8px 2px;
  border: 0;
  color: var(--policy-deep);
  background: transparent;
  font: 800 12px/1 "Manrope", sans-serif;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.policy-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 32px;
}

.policy-hero > * { min-width: 0; }

.policy-kicker {
  margin: 0 0 10px !important;
  color: var(--policy-green) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.policy-hero h1 {
  max-width: 900px;
  margin: 0;
  color: #10392f;
  font: 400 clamp(38px, 4.2vw, 64px)/.98 "DM Serif Display", Georgia, serif;
  letter-spacing: -.035em;
}

.policy-hero > div > p:last-child {
  max-width: 820px;
  margin: 14px 0 0;
  color: var(--policy-muted);
  font-size: 15px;
  line-height: 1.65;
}

.policy-primary,
.policy-secondary,
.policy-danger,
.policy-row-primary,
.policy-row-danger,
.policy-row-button,
.policy-fatal button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: 12px;
  font: 800 12px/1 "Manrope", sans-serif;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.policy-primary,
.policy-row-primary,
.policy-fatal button {
  color: #fff;
  background: var(--policy-deep);
  box-shadow: 0 12px 24px rgba(7, 90, 76, .15);
}

.policy-primary:hover,
.policy-row-primary:hover,
.policy-fatal button:hover { transform: translateY(-1px); background: #064b40; }
.policy-primary:disabled { cursor: not-allowed; opacity: .45; transform: none; box-shadow: none; }
.policy-secondary { border-color: var(--policy-line); color: var(--policy-deep); background: var(--policy-paper); }
.policy-danger, .policy-row-danger { color: #fff; background: #bd4c38; }
.policy-row-button { border-color: var(--policy-line); color: var(--policy-deep); background: #fff; }

.policy-primary svg,
.policy-secondary svg,
.policy-row-button svg,
.policy-batch-actions svg,
[data-policy-nav] svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.policy-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.policy-stat {
  position: relative;
  min-height: 174px;
  padding: 24px;
  overflow: hidden;
  border: 1px solid var(--policy-line);
  border-radius: 20px;
  background: rgba(255, 253, 248, .92);
  box-shadow: 0 14px 32px rgba(22, 66, 56, .07);
}

.policy-stat:first-child { color: #fff; border-color: transparent; background: linear-gradient(140deg, #075a4c, #207561); }
.policy-stat > span { display: block; margin: 16px 0 7px; color: inherit; opacity: .72; font-size: 12px; font-weight: 750; }
.policy-stat > strong { display: block; font: 400 35px/1 "DM Serif Display", Georgia, serif; }
.policy-stat > small { display: block; margin-top: 10px; color: inherit; opacity: .68; font-size: 11px; }
.policy-stat-icon { position: absolute; top: 20px; right: 20px; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; color: var(--policy-deep); background: #edf8f4; }
.policy-stat:first-child .policy-stat-icon { color: var(--policy-deep); background: var(--policy-lime); }
.policy-stat-icon svg { width: 19px; height: 19px; }

.policy-flow-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.policy-flow {
  min-height: 250px;
  padding: 28px;
  border: 1px solid var(--policy-line);
  border-radius: 22px;
  background: var(--policy-paper);
  box-shadow: 0 16px 34px rgba(22, 66, 56, .06);
}
.policy-flow.mint { background: linear-gradient(145deg, #e8f7f1, #f7fff9); }
.policy-flow.cream { background: linear-gradient(145deg, #fffceb, #fffef7); }
.policy-flow.blue { background: linear-gradient(145deg, #eaf7fa, #f7ffff); }
.policy-step { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; color: var(--policy-deep); background: var(--policy-lime); font-size: 12px; font-weight: 900; }
.policy-flow h2 { margin: 30px 0 10px; font: 400 29px/1.05 "DM Serif Display", Georgia, serif; }
.policy-flow p { min-height: 50px; margin: 0; color: var(--policy-muted); font-size: 13px; line-height: 1.6; }
.policy-flow button { display: flex; align-items: center; gap: 10px; margin-top: 22px; padding: 0; border: 0; color: var(--policy-deep); background: transparent; font: 900 12px/1 "Manrope", sans-serif; cursor: pointer; }
.policy-flow button span { font-size: 18px; }

.policy-rule,
.policy-control-note {
  display: flex;
  gap: 18px;
  margin-top: 18px;
  padding: 22px 26px;
  border: 1px solid #b9d5cb;
  border-radius: 18px;
  color: #17483d;
  background: rgba(231, 246, 240, .9);
}
.policy-rule > div:first-child,
.policy-control-note > div:first-child { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 12px; background: #cdeee2; }
.policy-rule svg, .policy-control-note svg { width: 21px; height: 21px; }
.policy-rule strong { font-size: 13px; }
.policy-rule p, .policy-control-note p { margin: 5px 0 0; color: #58746d; font-size: 12px; line-height: 1.6; }
.policy-control-note h2 { margin: 0; font: 400 24px/1.1 "DM Serif Display", Georgia, serif; }

.policy-form {
  display: grid;
  gap: 18px;
}

.policy-form-section {
  padding: 28px;
  border: 1px solid var(--policy-line);
  border-radius: 22px;
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 16px 38px rgba(22, 66, 56, .06);
}
.policy-form-section.policy-start { background: linear-gradient(130deg, #e6f6ef, #fffdf7); }
.policy-section-heading { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.policy-section-heading > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 11px; color: var(--policy-deep); background: var(--policy-lime); font-size: 11px; font-weight: 900; }
.policy-section-heading h2 { margin: 0 0 5px; font: 400 27px/1.1 "DM Serif Display", Georgia, serif; }
.policy-section-heading p { margin: 0; color: var(--policy-muted); font-size: 12px; }
.policy-grid { display: grid; gap: 18px; }
.policy-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.policy-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.policy-field { display: flex; flex-direction: column; min-width: 0; }
.policy-field.span-2 { grid-column: span 2; }
.policy-field > span,
.policy-modal-form label > span,
.policy-age > span,
.policy-total > span { margin-bottom: 8px; color: #385b53; font-size: 11px; font-weight: 850; }
.policy-field input,
.policy-field select,
.policy-modal-form input,
.policy-modal-form textarea,
.policy-modal-form select {
  width: 100%;
  min-height: 46px;
  padding: 0 13px;
  border: 1px solid #c9d8d3;
  border-radius: 11px;
  outline: none;
  color: #102f29;
  background: #fff;
  font: 700 13px/1.3 "Manrope", sans-serif;
  box-sizing: border-box;
}
.policy-field input:focus,
.policy-field select:focus,
.policy-modal-form input:focus,
.policy-modal-form textarea:focus { border-color: #4c9b88; box-shadow: 0 0 0 3px rgba(76, 155, 136, .12); }
.policy-field small { min-height: 14px; margin-top: 5px; color: #83938f; font-size: 9px; }
.policy-age, .policy-total { display: flex; min-height: 76px; flex-direction: column; justify-content: center; padding: 0 16px; border: 1px dashed #aecdc3; border-radius: 12px; background: #f2faf7; }
.policy-age strong, .policy-total strong { font: 400 24px/1 "DM Serif Display", Georgia, serif; }
.policy-age small, .policy-total small { margin-top: 6px; color: var(--policy-muted); font-size: 9px; }

.policy-lookup { display: grid; grid-template-columns: .8fr 1.2fr auto; align-items: end; gap: 18px; margin-bottom: 18px; padding: 18px; border-radius: 16px; background: #f2f8f5; }
.policy-lookup > div > .policy-field small { display: none; }
.policy-lookup button { display: inline-flex; min-height: 46px; align-items: center; gap: 8px; padding: 0 16px; border: 1px solid #aac9bf; border-radius: 11px; color: var(--policy-deep); background: #fff; font: 850 11px/1 "Manrope", sans-serif; cursor: pointer; }
.policy-lookup button svg { width: 17px; height: 17px; }

.policy-check { display: flex; align-items: flex-start; gap: 12px; margin-top: 22px; padding: 17px; border: 1px solid #c8dcd5; border-radius: 14px; background: #eef8f4; cursor: pointer; }
.policy-check input { width: 18px; height: 18px; accent-color: var(--policy-deep); }
.policy-check span { display: flex; flex-direction: column; gap: 4px; }
.policy-check strong { font-size: 12px; }
.policy-check small { color: var(--policy-muted); font-size: 10px; }
.policy-beneficiary { margin-top: 18px; padding: 20px; border: 1px dashed #b9cdc7; border-radius: 15px; }
.policy-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #dde7e3; }
.policy-form-actions p { max-width: 720px; margin: 0; color: var(--policy-muted); font-size: 11px; line-height: 1.6; }

.policy-table-card {
  overflow: hidden;
  border: 1px solid var(--policy-line);
  border-radius: 20px;
  background: var(--policy-paper);
  box-shadow: 0 16px 38px rgba(22, 66, 56, .07);
}
.policy-table-tools, .policy-table-title { display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 20px; padding: 0 22px; border-bottom: 1px solid #dce6e2; }
.policy-table-tools label { display: flex; width: min(520px, 70%); align-items: center; gap: 10px; padding: 0 14px; border: 1px solid #c9d8d3; border-radius: 11px; background: #fff; }
.policy-table-tools label svg { width: 18px; height: 18px; color: var(--policy-muted); }
.policy-table-tools input { width: 100%; min-height: 44px; border: 0; outline: 0; color: var(--policy-ink); background: transparent; font: 700 12px/1 "Manrope", sans-serif; }
.policy-table-tools > strong, .policy-table-title > span { color: var(--policy-muted); font-size: 11px; }
.policy-table-title h2 { margin: 0 0 5px; font: 400 25px/1.1 "DM Serif Display", Georgia, serif; }
.policy-table-title p { margin: 0; color: var(--policy-muted); font-size: 10px; }
.policy-table-scroll { overflow-x: auto; }
.policy-table { width: 100%; border-collapse: collapse; }
.policy-table th { padding: 14px 16px; color: #68817b; background: #f7faf8; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.policy-table td { padding: 14px 16px; border-top: 1px solid #e0e8e5; color: #294b43; font-size: 11px; vertical-align: middle; }
.policy-table td strong, .policy-table td small { display: block; }
.policy-table td strong { color: #173b33; font-size: 11px; }
.policy-table td small { margin-top: 4px; color: #80918d; font-size: 9px; }
.policy-table code { color: var(--policy-deep); font: 850 10px/1 "Manrope", sans-serif; }
.policy-status { display: inline-flex; padding: 7px 10px; border-radius: 999px; font-size: 9px; font-weight: 900; white-space: nowrap; }
.policy-status.pending_ins { color: #885a08; background: #fff0be; }
.policy-status.in_batch { color: #355f79; background: #e5f1f7; }
.policy-status.sent_ins, .policy-status.correction_required { color: #36528a; background: #e7ecff; }
.policy-status.issued { color: #176552; background: #dff4ed; }
.policy-status.delivered { color: #fff; background: #137965; }
.policy-status.annulled { color: #963f31; background: #fde5df; }
.policy-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.policy-row-actions button { min-height: 34px; padding: 0 10px; font-size: 9px; white-space: nowrap; box-shadow: none; }
.policy-empty { display: flex; min-height: 320px; flex-direction: column; align-items: center; justify-content: center; color: var(--policy-muted); text-align: center; }
.policy-empty svg { width: 40px; height: 40px; padding: 14px; border-radius: 18px; color: var(--policy-deep); background: #edf7f3; }
.policy-empty h3 { margin: 15px 0 4px; color: var(--policy-ink); font-size: 14px; }
.policy-empty p { margin: 0; font-size: 11px; }

.policy-batch-guide { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 18px; margin-bottom: 18px; padding: 22px; border: 1px solid var(--policy-line); border-radius: 19px; background: linear-gradient(120deg, #e9f7f2, #fffdf5); }
.policy-batch-guide > div { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; }
.policy-batch-guide span { display: grid; width: 32px; height: 32px; grid-row: span 2; place-items: center; border-radius: 9px; color: var(--policy-deep); background: var(--policy-lime); font-size: 10px; font-weight: 900; }
.policy-batch-guide strong { font-size: 11px; }
.policy-batch-guide p { margin: 3px 0 0; color: var(--policy-muted); font-size: 9px; }
.policy-batch-guide > i { color: #9ab1aa; font-style: normal; }
.policy-batches article { display: grid; grid-template-columns: 1.3fr .75fr .75fr 1.5fr; align-items: center; gap: 20px; padding: 18px 22px; border-top: 1px solid #e1e9e6; }
.policy-batches article:first-child { border-top: 0; }
.policy-batch-code span, .policy-batch-code small, .policy-batches article > div:nth-child(2) strong, .policy-batches article > div:nth-child(2) small { display: block; }
.policy-batch-code span { color: var(--policy-deep); font-size: 12px; font-weight: 900; }
.policy-batch-code small, .policy-batches article > div:nth-child(2) small { margin-top: 5px; color: var(--policy-muted); font-size: 9px; }
.policy-batch-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.policy-batch-actions a, .policy-batch-actions button { display: inline-flex; min-height: 34px; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid var(--policy-line); border-radius: 9px; color: var(--policy-deep); background: #fff; font: 850 9px/1 "Manrope", sans-serif; text-decoration: none; cursor: pointer; }
.policy-batch-actions button { color: #fff; border-color: var(--policy-deep); background: var(--policy-deep); }
.policy-batch-actions svg { width: 14px; height: 14px; }

.policy-report-grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 16px; }
.policy-report-grid article { min-height: 180px; padding: 25px; border: 1px solid var(--policy-line); border-radius: 20px; background: var(--policy-paper); box-shadow: 0 14px 32px rgba(22, 66, 56, .06); }
.policy-report-grid article > span { color: var(--policy-muted); font-size: 11px; font-weight: 800; }
.policy-report-grid article > strong { display: block; margin-top: 22px; font: 400 36px/1 "DM Serif Display", Georgia, serif; }
.policy-report-grid article > p { color: var(--policy-muted); font-size: 10px; }
.policy-report-grid .policy-report-main { color: #fff; border: 0; background: linear-gradient(135deg, #075a4c, #1a725f); }
.policy-report-grid .policy-report-main > span, .policy-report-grid .policy-report-main > p { color: rgba(255,255,255,.7); }
.policy-report-main a { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; padding: 11px 13px; border-radius: 10px; color: var(--policy-deep); background: var(--policy-lime); font-size: 10px; font-weight: 900; text-decoration: none; }
.policy-report-main svg { width: 16px; height: 16px; }

.policy-loading, .policy-fatal { display: flex; min-height: 620px; flex-direction: column; align-items: center; justify-content: center; gap: 16px; color: var(--policy-muted); text-align: center; }
.policy-loading span { width: 32px; height: 32px; border: 3px solid #cfe2dc; border-top-color: var(--policy-deep); border-radius: 50%; animation: policy-spin .8s linear infinite; }
.policy-loading strong { font-size: 12px; }
.policy-fatal > div { display: grid; width: 64px; height: 64px; place-items: center; border-radius: 22px; color: var(--policy-deep); background: #e4f3ee; }
.policy-fatal svg { width: 30px; height: 30px; }
.policy-fatal h2 { margin: 0; color: var(--policy-ink); font: 400 31px/1.1 "DM Serif Display", Georgia, serif; }
.policy-fatal p { max-width: 540px; margin: 0; font-size: 12px; }
@keyframes policy-spin { to { transform: rotate(360deg); } }

.policy-toasts { position: fixed; right: 24px; bottom: 24px; z-index: 10050; display: grid; gap: 10px; width: min(390px, calc(100vw - 32px)); }
.policy-toast { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-radius: 14px; color: #fff; background: #0b5146; box-shadow: 0 18px 40px rgba(0,0,0,.2); animation: policy-toast-in .24s ease-out; }
.policy-toast.warning { background: #835c16; }
.policy-toast.error { background: #a94432; }
.policy-toast strong { font-size: 11px; line-height: 1.5; }
.policy-toast.warning .policy-toast-dot { background: #ffd96a; }
.policy-toast.error .policy-toast-dot { background: #ff9c8b; }
@keyframes policy-toast-in { from { opacity: 0; transform: translateY(10px); } }

.policy-modal-overlay { position: fixed; inset: 0; z-index: 10020; display: grid; place-items: center; padding: 24px; overflow-y: auto; background: rgba(7, 39, 34, .68); backdrop-filter: blur(7px); }
.policy-modal { width: min(780px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; border-radius: 22px; background: #fffdf8; box-shadow: 0 30px 90px rgba(0, 0, 0, .28); }
.policy-small-modal { width: min(560px, 100%); }
.policy-receipt-modal { width: min(670px, 100%); }
.policy-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; border-bottom: 1px solid #dbe5e1; }
.policy-modal-head span { color: var(--policy-green); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.policy-modal-head h2 { margin: 5px 0 0; font: 400 28px/1 "DM Serif Display", Georgia, serif; }
.policy-modal-head button { display: grid; width: 36px; height: 36px; place-items: center; border: 0; border-radius: 11px; color: #4f6b64; background: #edf3f1; font-size: 22px; cursor: pointer; }
.policy-modal-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding: 18px 24px; border-top: 1px solid #dbe5e1; }
.policy-modal-actions > button:not(.policy-primary):not(.policy-danger) { min-height: 42px; padding: 0 16px; border: 1px solid var(--policy-line); border-radius: 11px; color: var(--policy-deep); background: #fff; font: 800 11px/1 "Manrope", sans-serif; cursor: pointer; }
.policy-review { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 24px; }
.policy-review > div { padding: 16px; border: 1px solid #d7e3df; border-radius: 13px; background: #f9fbfa; }
.policy-review span, .policy-review strong, .policy-review small { display: block; }
.policy-review span { color: var(--policy-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.policy-review strong { margin-top: 8px; font-size: 12px; }
.policy-review small { margin-top: 5px; color: var(--policy-muted); font-size: 9px; }
.policy-review-warning { margin: 0 24px 24px; padding: 16px; border: 1px solid #efcf82; border-radius: 13px; background: #fff7d9; }
.policy-review-warning strong { font-size: 11px; }
.policy-review-warning p { margin: 5px 0 0; color: #7b6841; font-size: 10px; line-height: 1.5; }
.policy-modal-form { display: grid; gap: 15px; padding: 24px; }
.policy-modal-form label { display: flex; flex-direction: column; }
.policy-modal-form textarea { min-height: 110px; padding-top: 12px; resize: vertical; }
.policy-modal-form > p { margin: 0; color: var(--policy-muted); font-size: 10px; line-height: 1.6; }
.policy-modal-form .policy-modal-actions { margin: 8px -24px -24px; }
.policy-modal-person { padding: 11px 13px; border-radius: 10px; color: var(--policy-deep) !important; background: #edf7f3; font-weight: 900; }
.policy-confirm-delivery { display: flex; align-items: center; gap: 15px; padding: 20px; border-radius: 15px; background: #edf8f4; }
.policy-confirm-delivery svg { width: 28px; height: 28px; color: var(--policy-deep); }
.policy-confirm-delivery p { margin: 0; color: #365b52; font-size: 12px; line-height: 1.6; }

.policy-receipt-preview { display: flex; justify-content: center; padding: 24px; background: #e7e9e8; }
.policy-receipt-print { width: 68mm; max-width: 68mm; box-sizing: border-box; padding: 3.5mm 2.5mm; overflow: hidden; color: #000; background: #fff; font-family: Arial, Helvetica, sans-serif; box-shadow: 0 3px 12px rgba(0,0,0,.16); }
.policy-receipt-print *, .policy-receipt-print *::before, .policy-receipt-print *::after { box-sizing: border-box; max-width: 100%; }
.policy-receipt-print header { display: grid; grid-template-columns: 19mm minmax(0, 1fr); align-items: center; gap: 2.5mm; padding-bottom: 3mm; border-bottom: .7mm solid #000; }
.policy-receipt-print header img { display: block; width: 19mm; height: 19mm; object-fit: contain; filter: grayscale(1) contrast(1.5); }
.policy-receipt-print header strong, .policy-receipt-print header span, .policy-receipt-print header small { display: block; color: #000; font-weight: 900; }
.policy-receipt-print header strong { font: 900 16px/1.08 Georgia, serif; overflow-wrap: anywhere; }
.policy-receipt-print header span { margin-top: 2mm; font-size: 14px; }
.policy-receipt-print header small { margin-top: .8mm; font-size: 13px; }
.policy-receipt-number { margin: 4mm 0; padding: 3mm 2mm; border: .6mm solid #000; text-align: center; }
.policy-receipt-number span { display: block; font-size: 12px; font-weight: 900; }
.policy-receipt-number strong { display: block; margin-top: 1.5mm; font: 900 19px/1.05 Georgia, serif; letter-spacing: .2px; overflow-wrap: anywhere; }
.policy-receipt-print dl { margin: 0; }
.policy-receipt-print dl > div { display: grid; grid-template-columns: minmax(0, 32%) minmax(0, 1fr); gap: 1.5mm; padding: 2.2mm 0; border-bottom: .45mm solid #000; font-size: 12px; line-height: 1.35; }
.policy-receipt-print dt { font-weight: 900; }
.policy-receipt-print dd { min-width: 0; margin: 0; font-weight: 800; text-align: right; overflow-wrap: anywhere; word-break: break-word; }
.policy-receipt-print dl > div.total { padding: 3mm 0; font-size: 16px; }
.policy-receipt-notice { margin-top: 4mm; padding: 3mm; border: .5mm solid #000; }
.policy-receipt-notice strong { display: block; font-size: 14px; font-weight: 900; text-transform: uppercase; }
.policy-receipt-notice p { margin: 1.5mm 0 0; font-size: 11.5px; font-weight: 800; line-height: 1.45; text-align: justify; }
.policy-signature { height: 19mm; position: relative; margin-top: 5mm; border-bottom: .45mm solid #000; }
.policy-signature span { position: absolute; right: 0; bottom: 1.5mm; left: 0; font-size: 11px; font-weight: 900; text-align: center; }
.policy-receipt-print footer { padding-top: 3mm; font-size: 11px; font-weight: 900; line-height: 1.35; text-align: center; }
.policy-cut-space { position: relative; height: 120mm; color: #000; }
.policy-cut-space span { position: absolute; right: 0; bottom: 14mm; left: 0; padding-top: 2mm; border-top: .35mm dashed #000; font-size: 8px; font-weight: 900; letter-spacing: .12em; text-align: center; }
.policy-cut-space::after { position: absolute; right: 1mm; bottom: 0; color: #000; content: "·"; font-size: 6px; font-weight: 900; }
#policy-print-stage { display: none; }

body.module-shell-ready.module-context-policies.policies-module-active .sidebar .nav-item[data-module-scope="global"],
body.module-shell-ready.module-context-policies.policies-module-active .sidebar .nav-item[data-module-scope="policies"],
body.module-shell-ready.module-context-policies.policies-module-active .sidebar [data-policy-dynamic] { display: flex !important; }
body.policies-module-active [data-module-nav]:not([data-module-nav="home"]):not([data-module-nav="policies"]) { display: none !important; }
body.module-context-policies.policies-module-active .sidebar [data-nav="excedentes"],
body.module-context-policies.policies-module-active .sidebar [data-real-nav="contributions"] { display: none !important; }
body.policies-module-active [data-policy-nav] { gap: 12px; }
body.policies-module-active [data-policy-nav] svg { width: 19px; height: 19px; }

.module-hub-page .mh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.module-hub-page .mh-card { min-width: 0; }
.module-hub-page .mh-card-copy h2,
.module-hub-page .mh-card-copy p { overflow-wrap: anywhere; }
.module-hub-page .mh-card.policies { grid-column: auto; min-height: 250px; color: #fff; border-color: transparent; background: linear-gradient(145deg, #164f79 0%, #237f8c 58%, #54a79d 100%); box-shadow: 0 20px 44px rgba(22, 79, 121, .2); }
.module-hub-page .mh-card.policies .mh-tag { color: #153e54; background: #d8f2ef; }
.module-hub-page .mh-card.policies .mh-icon { color: #154c5d; background: #dff47b; }
.module-hub-page .mh-card.policies h2, .module-hub-page .mh-card.policies p, .module-hub-page .mh-card.policies .mh-card-metric { color: inherit; }
.module-hub-page .mh-card.policies p, .module-hub-page .mh-card.policies .mh-card-metric { opacity: .78; }
.module-hub-page .mh-card.policies .mh-metric { color: rgba(255,255,255,.78); }
.module-hub-page .mh-card.policies .mh-open { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 12px 15px; border: 0; border-radius: 12px; color: #16495d; background: #fff; font: inherit; font-size: 11px; font-weight: 900; box-shadow: 0 10px 22px rgba(8,55,72,.18); }
.module-hub-page .mh-card.members { grid-column: 1 / -1; min-height: 205px; }

@media (min-width: 851px) {
  .module-hub-page .mh-card.members { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(240px, .5fr); align-items: center; gap: 34px; }
  .module-hub-page .mh-card.members .mh-card-copy { margin-top: 17px; }
  .module-hub-page .mh-card.members .mh-card-copy p { min-height: 0; }
  .module-hub-page .mh-card.members .mh-card-bottom { justify-content: flex-end; flex-direction: column; align-items: flex-end; margin-top: 0; text-align: right; }
}

@media print {
  @page { size: 72mm 450mm; margin: 0; }
  html, body.policy-printing { width: 72mm !important; min-width: 72mm !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; background: #fff !important; }
  body.policy-printing > :not(#policy-print-stage) { display: none !important; }
  body.policy-printing #policy-print-stage { display: block !important; position: static !important; width: 72mm !important; height: auto !important; margin: 0 !important; padding: 0 0 0 1mm !important; overflow: visible !important; }
  body.policy-printing #policy-print-stage .policy-receipt-print { position: static !important; display: block !important; width: 68mm !important; max-width: 68mm !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 3mm 2mm 0 !important; overflow: visible !important; box-shadow: none !important; color: #000 !important; background: #fff !important; break-inside: auto; }
  body.policy-printing #policy-print-stage .policy-receipt-print * { visibility: visible !important; }
  body.policy-printing #policy-print-stage header img { display: block !important; visibility: visible !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

@media (max-width: 1180px) {
  .policy-canvas { width: min(100% - 36px, 1100px); }
  .policy-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .policy-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .policy-flow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .policy-flow-grid .policy-flow:last-child { grid-column: 1 / -1; min-height: 210px; }
  .policy-flow-grid .policy-flow:last-child p { min-height: 0; }
  .policy-batches article { grid-template-columns: 1fr 1fr; }
  .policy-batch-actions { justify-content: flex-start; }
  .policy-report-grid { grid-template-columns: repeat(3, 1fr); }
  .policy-report-grid .policy-report-main { grid-column: span 3; }
}

@media (max-width: 850px) {
  .module-hub-page .mh-grid { grid-template-columns: 1fr !important; }
  .module-hub-page .mh-card.members,
  .module-hub-page .mh-card.policies { grid-column: auto; }
}

@media (max-width: 820px) {
  .policy-canvas { width: calc(100% - 24px); padding-top: 22px; }
  .policy-period-bar { flex-wrap: wrap; }
  .policy-secure { order: 3; width: 100%; margin-left: 0; box-sizing: border-box; }
  .policy-hero { align-items: flex-start; flex-direction: column; }
  .policy-hero h1 { font-size: 42px; }
  .policy-stats, .policy-flow-grid, .policy-grid.three, .policy-grid.four { grid-template-columns: 1fr; }
  .policy-flow-grid .policy-flow:last-child { grid-column: auto; min-height: 250px; }
  .policy-field.span-2 { grid-column: auto; }
  .policy-lookup { grid-template-columns: 1fr; }
  .policy-form-section { padding: 21px 18px; }
  .policy-form-actions { align-items: stretch; flex-direction: column; }
  .policy-batch-guide { grid-template-columns: 1fr; }
  .policy-batch-guide > i { display: none; }
  .policy-batches article { grid-template-columns: 1fr; }
  .policy-batch-actions { flex-wrap: wrap; }
  .policy-report-grid { grid-template-columns: 1fr; }
  .policy-report-grid .policy-report-main { grid-column: auto; }
  .policy-review { grid-template-columns: 1fr; }
  .policy-modal-overlay { padding: 10px; }
  .policy-modal { max-height: calc(100vh - 20px); border-radius: 17px; }
  .policy-receipt-preview { padding: 12px 4px; overflow-x: auto; }
  .module-hub-page .mh-card.policies { grid-column: auto; }
}
body.module-shell-ready.module-context-policies.policies-module-active .sidebar [data-surplus-nav],
body.module-shell-ready.module-context-policies.policies-module-active .sidebar [data-real-nav="contributions"] {
  display: none !important;
}

.module-hub-page .mh-card.policies [data-module-action="policies"] {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 20px;
  border: 0;
  border-radius: 14px;
  background: #e2f56f;
  color: #123f38;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 12px 24px rgba(4, 54, 48, 0.18);
}

.module-hub-page .mh-card.policies [data-module-action="policies"]:focus-visible {
  outline: 3px solid rgba(226, 245, 111, 0.48);
  outline-offset: 3px;
}
