/*
 * Preflight compilado de Tailwind CSS 4.2.1.
 * La aplicación aprobada lo recibe mediante `@import "tailwindcss"`; el paquete
 * PHP lo incorpora aquí para conservar el mismo reset sin depender de Node.js.
 */
@layer theme {
  :root,
  :host {
    --font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
    --font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
    --default-font-family:var(--font-sans);
    --default-mono-font-family:var(--font-mono);
  }
}
@layer base {
  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    box-sizing:border-box;
    margin:0;
    padding:0;
    border:0 solid;
  }
  html,
  :host {
    line-height:1.5;
    -webkit-text-size-adjust:100%;
    tab-size:4;
    font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");
    font-feature-settings:var(--default-font-feature-settings,normal);
    font-variation-settings:var(--default-font-variation-settings,normal);
    -webkit-tap-highlight-color:transparent;
  }
  hr {
    height:0;
    color:inherit;
    border-top-width:1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration:underline dotted;
    text-decoration:underline dotted;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size:inherit;
    font-weight:inherit;
  }
  a {
    color:inherit;
    -webkit-text-decoration:inherit;
    text-decoration:inherit;
  }
  b,
  strong { font-weight:bolder; }
  code,
  kbd,
  samp,
  pre {
    font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);
    font-feature-settings:var(--default-mono-font-feature-settings,normal);
    font-variation-settings:var(--default-mono-font-variation-settings,normal);
    font-size:1em;
  }
  small { font-size:80%; }
  sub,
  sup {
    font-size:75%;
    line-height:0;
    position:relative;
    vertical-align:baseline;
  }
  sub { bottom:-.25em; }
  sup { top:-.5em; }
  table {
    text-indent:0;
    border-color:inherit;
    border-collapse:collapse;
  }
  :-moz-focusring { outline:auto; }
  progress { vertical-align:baseline; }
  summary { display:list-item; }
  ol,
  ul,
  menu { list-style:none; }
  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    display:block;
    vertical-align:middle;
  }
  img,
  video {
    max-width:100%;
    height:auto;
  }
  button,
  input,
  select,
  optgroup,
  textarea,
  ::file-selector-button {
    font:inherit;
    font-feature-settings:inherit;
    font-variation-settings:inherit;
    letter-spacing:inherit;
    color:inherit;
    border-radius:0;
    background-color:transparent;
    opacity:1;
  }
  :where(select:is([multiple],[size])) optgroup { font-weight:bolder; }
  :where(select:is([multiple],[size])) optgroup option { padding-inline-start:20px; }
  ::file-selector-button { margin-inline-end:4px; }
  ::placeholder { opacity:1; }
  @supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px) {
    ::placeholder { color:currentColor; }
    @supports (color:color-mix(in lab,red,red)) {
      ::placeholder { color:color-mix(in oklab,currentcolor 50%,transparent); }
    }
  }
  textarea { resize:vertical; }
  ::-webkit-search-decoration { -webkit-appearance:none; }
  ::-webkit-date-and-time-value {
    min-height:1lh;
    text-align:inherit;
  }
  ::-webkit-datetime-edit { display:inline-flex; }
  ::-webkit-datetime-edit-fields-wrapper { padding:0; }
  ::-webkit-datetime-edit,
  ::-webkit-datetime-edit-year-field,
  ::-webkit-datetime-edit-month-field,
  ::-webkit-datetime-edit-day-field,
  ::-webkit-datetime-edit-hour-field,
  ::-webkit-datetime-edit-minute-field,
  ::-webkit-datetime-edit-second-field,
  ::-webkit-datetime-edit-millisecond-field,
  ::-webkit-datetime-edit-meridiem-field { padding-block:0; }
  ::-webkit-calendar-picker-indicator { line-height:1; }
  :-moz-ui-invalid { box-shadow:none; }
  button,
  input:where([type="button"],[type="reset"],[type="submit"]),
  ::file-selector-button { appearance:button; }
  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button { height:auto; }
  [hidden]:where(:not([hidden="until-found"])) { display:none!important; }
}

:root { --navy:#082f53; --royal:#1478d4; --ocean:#0b5fae; --sky:#9bdcff; --powder:#eaf5fd; --ice:#f4f8fc; --line:#d6e4f0; --ink:var(--navy); --cream:var(--ice); --lime:var(--sky); --coral:var(--royal); --blue:var(--ocean); --muted:#60788d; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:linear-gradient(180deg,#f8fbfe 0,var(--cream) 46%,#edf5fb 100%); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
.shell { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.nav { height:94px; display:flex; align-items:center; justify-content:space-between; position:relative; z-index:10; }
.brand { border:0; background:none; display:flex; align-items:center; gap:10px; color:var(--ink); padding:0; text-align:left; font-size:20px; font-weight:900; letter-spacing:-1px; }
.brand small { display:block; text-transform:uppercase; font-size:8px; letter-spacing:2.5px; margin-top:-2px; }
.brand-logo { flex:0 0 auto; width:46px; height:46px; border-radius:50%; object-fit:cover; background:#fff; box-shadow:0 5px 16px rgba(17,45,50,.16); }
.brand-mark { width:35px; height:35px; border-radius:50%; display:grid; place-items:center; color:#fff; font-family:Georgia,serif; font-style:italic; background:var(--coral); box-shadow:inset 0 0 0 5px rgba(255,255,255,.18); }
.brand-inverse { color:#fff; }
.nav-links { display:flex; gap:34px; font-weight:700; font-size:14px; }
.nav-links a:hover { color:var(--blue); }
.btn { border:0; border-radius:999px; min-height:46px; padding:0 22px; display:inline-flex; justify-content:center; align-items:center; gap:20px; font-weight:800; transition:.2s ease; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:linear-gradient(135deg,var(--royal),#0861b5); color:#fff; box-shadow:0 10px 25px rgba(20,120,212,.24); }
.btn-ghost { background:transparent; border:1px solid #bec8c5; color:var(--ink); }
.btn-dark { width:100%; background:var(--ink); color:#fff; }
.btn-light { background:white; color:var(--ink); }
.hero { min-height:635px; padding:55px 0 70px; display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:65px; }
.pill,.kicker { display:inline-block; color:#385134; font-size:12px; font-weight:900; letter-spacing:1.8px; text-transform:uppercase; }
.pill { padding:10px 15px; background:var(--lime); border-radius:999px; }
.hero h1 { font-family:Georgia,serif; font-size:clamp(55px,6vw,84px); line-height:.94; letter-spacing:-4.5px; margin:25px 0; font-weight:500; }
.hero h1 em { color:var(--coral); font-weight:500; }
.hero-copy>p { font-size:19px; line-height:1.6; max-width:590px; color:#536568; }
.hero-actions { display:flex; align-items:center; gap:25px; margin:35px 0 32px; }
.micro { display:flex; flex-direction:column; font-size:13px; }
.micro small { color:var(--muted); margin-top:3px; }
.trust-row { display:flex; gap:20px; font-size:12px; font-weight:700; color:#42575a; }
.hero-art { height:510px; position:relative; border-radius:48% 48% 44% 38%; background:#bad7df; overflow:hidden; box-shadow:0 35px 70px rgba(17,45,50,.18); }
.hero-photo { object-fit:cover; object-position:center 43%; }
.hero-art:before { content:""; position:absolute; z-index:2; inset:0; background:linear-gradient(180deg,transparent 48%,rgba(8,35,40,.24)); pointer-events:none; }
.hero-art:after { content:none; }
.sun { display:none; }
.portrait-label,.floating-card { position:absolute; z-index:3; display:flex; align-items:center; gap:12px; background:white; border-radius:15px; box-shadow:0 15px 40px rgba(17,45,50,.16); }
.portrait-label { left:20px; bottom:28px; padding:13px 18px; }
.portrait-label span { font-size:25px; color:var(--coral); }
.portrait-label p,.floating-card p { margin:0; display:flex; flex-direction:column; font-size:12px; }
.portrait-label small,.floating-card small { margin-top:3px; color:var(--muted); }
.floating-card { right:14px; top:105px; padding:10px 14px; }
.avatar { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:var(--blue); color:#fff; font-size:11px; font-weight:900; }
.section { padding:100px 0; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:45px; gap:30px; }
.section-heading h2,.branches h2,.cta h2 { font-family:Georgia,serif; font-weight:500; font-size:48px; letter-spacing:-2px; margin:8px 0 0; }
.section-heading>p { max-width:390px; color:var(--muted); line-height:1.55; }
.plans-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.plan-card { background:white; border-radius:25px; overflow:hidden; position:relative; box-shadow:0 4px 0 rgba(17,45,50,.04); border:1px solid rgba(17,45,50,.07); }
.plan-card.popular {}
.popular { position:absolute; top:15px; right:15px; background:var(--ink); color:#fff; padding:7px 11px; border-radius:999px; text-transform:uppercase; font-size:9px; letter-spacing:1px; z-index:2; }
.plan-visual { height:185px; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; }
.plan-card.lime .plan-visual,.mini-cover.lime { background:var(--lime); }
.plan-card.coral .plan-visual,.mini-cover.coral { background:#ff9e86; }
.plan-card.blue .plan-visual,.mini-cover.blue { background:#86b8ff; }
.plan-visual.with-image { background-size:cover!important; background-position:center!important; }
.plan-visual.with-image:after,.plan-detail-cover.with-image:after,.catalog-cover.with-image:after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(7,27,31,.78)); }
.plan-visual.with-image small { color:#fff; z-index:2; text-shadow:0 1px 5px rgba(0,0,0,.4); }
.plan-icon { font-size:64px; z-index:1; }
.plan-orbit { position:absolute; width:130px; height:130px; border:1px solid rgba(17,45,50,.3); border-radius:50%; }
.plan-visual small { position:absolute; bottom:17px; font-weight:800; }
.plan-body { padding:28px; }
.audience { text-transform:uppercase; font-weight:900; font-size:10px!important; letter-spacing:1.5px; color:var(--coral)!important; }
.plan-body h3 { font-family:Georgia,serif; font-size:30px; margin:7px 0; }
.plan-body p { color:var(--muted); font-size:14px; line-height:1.5; min-height:42px; }
.price { font-family:Georgia,serif; font-size:42px; margin:20px 0; }
.price>span { font-family:Arial,sans-serif; font-size:14px; vertical-align:top; margin-right:4px; font-weight:900; }
.price small { font-family:Arial,sans-serif; font-size:12px; color:var(--muted); margin-left:5px; }
.plan-body ul { list-style:none; padding:0; margin:0 0 26px; display:grid; gap:11px; color:var(--coral); font-weight:900; font-size:13px; }
.plan-body li span { color:#394f52; font-weight:600; margin-left:7px; }
.plan-body li span small { display:block; margin:3px 0 0 7px; color:#657977; font-size:9px; font-weight:800; }
.text-button { background:none; border:0; padding:14px 0 0; color:var(--ink); font-weight:800; font-size:12px; }
.plan-body .text-button { width:100%; }
.steps-section { background:var(--ink); color:#fff; padding:90px 0; }
.section-heading.light p { color:#bac5c6; }
.section-heading.light .kicker { color:var(--lime); }
.steps { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #3a5154; }
.steps>div { padding:38px 40px 0 0; position:relative; }
.steps>div:not(:last-child):after { content:"→"; position:absolute; right:30px; top:40px; color:var(--lime); }
.steps b { color:var(--lime); font-size:12px; display:block; margin-bottom:35px; }
.steps span { font-family:Georgia,serif; font-size:31px; display:block; }
.steps p { color:#aebbbb; line-height:1.5; }
.branches { padding:95px 0; display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.branch-list { border-top:1px solid #bdc8c6; }
.branch-list>a { min-height:90px; display:grid; grid-template-columns:45px 1fr auto; align-items:center; gap:12px; border-bottom:1px solid #bdc8c6; color:var(--ink); transition:.2s ease; }
.branch-list>a:hover { padding-inline:10px; background:#f5f7f3; }
.branch-list span { color:var(--coral); font-weight:900; font-size:11px; }
.branch-list b { font-size:18px; }
.branch-list p { display:flex; flex-direction:column; gap:5px; margin:0; }
.branch-list small { color:var(--muted); font-weight:600; }
.branch-list i { color:var(--ink); font-size:11px; font-style:normal; font-weight:900; }
.cta { padding:75px; margin-bottom:90px; border-radius:30px; text-align:center; background:var(--coral); color:#fff; }
.cta p { font-weight:900; text-transform:uppercase; font-size:11px; letter-spacing:2px; }
.cta h2 { max-width:700px; margin:14px auto 30px; }
footer { background:#0b2429; color:#fff; }
.footer-inner { min-height:150px; display:flex; align-items:center; justify-content:space-between; gap:32px; font-size:12px; color:#9fb0b2; }
.footer-copy { display:flex; flex-direction:column; gap:5px; }
.footer-copy p { margin:0; color:#d7e0e1; font-weight:700; }
.footer-legal { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px 18px; max-width:430px; }
.footer-legal a { color:#d7e0e1; font-weight:700; }
.footer-legal a:hover { color:var(--lime); }
.modal-backdrop { position:fixed; z-index:50; inset:0; background:rgba(4,27,48,.74); backdrop-filter:blur(8px); display:flex; align-items:flex-start; justify-content:center; padding:25px; overflow-y:auto; }
.modal-backdrop>* { flex:0 0 auto; margin-block:auto; }
.signup-modal { width:min(1000px,100%); height:min(820px,calc(100dvh - 50px)); min-height:0; background:#fff; border-radius:28px; overflow:hidden; display:grid; grid-template-columns:35% 65%; grid-template-rows:minmax(0,1fr); position:relative; box-shadow:0 35px 100px rgba(0,0,0,.3); }
.modal-close { position:absolute; z-index:3; top:18px; right:20px; width:35px; height:35px; border-radius:50%; border:1px solid #d6dfdd; background:#fff; font-size:24px; line-height:1; }
.signup-side { min-height:0; overflow:hidden; background:var(--ink); color:#fff; padding:40px; display:flex; flex-direction:column; justify-content:space-between; }
.signup-side .kicker { color:var(--lime); }
.signup-side h2 { font-family:Georgia,serif; font-size:40px; margin:12px 0 5px; }
.signup-side p { color:#b6c2c3; }
.signup-side .price { color:#fff; }
.secure { font-size:11px; line-height:1.5; }
.signup-form { min-width:0; min-height:0; height:100%; padding:55px 50px 40px 60px; display:flex; flex-direction:column; overflow-x:hidden; overflow-y:scroll; overscroll-behavior:contain; touch-action:pan-y; scrollbar-gutter:stable; }
.signup-form::-webkit-scrollbar { width:10px; }
.signup-form::-webkit-scrollbar-track { background:#eef2f0; }
.signup-form::-webkit-scrollbar-thumb { border:2px solid #eef2f0; border-radius:999px; background:#8fa09d; }
.signup-form::-webkit-scrollbar-thumb:hover { background:#657976; }
.progress { height:4px; background:#edf0ef; margin:0 50px 25px 0; border-radius:10px; overflow:hidden; }
.progress span { display:block; height:100%; background:var(--coral); transition:.3s ease; }
.step-label { text-transform:uppercase; letter-spacing:1.5px; color:var(--coral)!important; font-size:10px!important; font-weight:900; }
.signup-form h2,.edit-modal h2 { font-family:Georgia,serif; font-size:36px; margin:8px 0; }
.signup-form>p { color:var(--muted); margin-top:0; font-size:14px; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:25px; }
label { font-size:11px; font-weight:900; color:#415659; display:flex; flex-direction:column; gap:7px; }
input,select,textarea { width:100%; border:1px solid #ccd5d3; border-radius:10px; padding:13px 14px; outline:none; background:#fff; color:var(--ink); }
input:focus,select:focus,textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(30,103,232,.1); }
.locked-cardholder { background:#f1f4f3; color:#324b4f; font-weight:800; cursor:not-allowed; }
.locked-cardholder+small { color:var(--muted); font-size:9px; font-weight:600; line-height:1.4; }
.date-format-hint { color:var(--muted); font-size:9px; font-weight:600; line-height:1.4; }
.form-actions { margin-top:auto; padding-top:30px; display:flex; justify-content:flex-end; gap:10px; }
.member-card,.summary-box,.payment-note { border-radius:14px; background:#f3f5f2; }
.member-card { display:flex; align-items:center; gap:14px; margin-top:20px; padding:15px; }
.member-card>span { width:34px; height:34px; display:grid; place-items:center; background:var(--lime); border-radius:50%; font-weight:900; }
.member-card div { display:flex; flex-direction:column; font-size:13px; }
.member-card small { color:var(--muted); margin-top:3px; }
.beneficiary-heading { display:flex; justify-content:space-between; align-items:start; gap:20px; }
.beneficiary-heading h2 { margin-top:0; }
.beneficiary-heading p { margin:0; color:var(--muted); font-size:13px; }
.beneficiary-heading>span { flex:0 0 auto; padding:8px 11px; border-radius:999px; background:var(--lime); color:#385134; font-size:10px; font-weight:900; }
.beneficiary-stack { display:grid; gap:10px; margin-top:20px; }
.beneficiary-editor { border:1px solid #dce3e1; border-radius:14px; overflow:hidden; background:#fff; }
.beneficiary-editor.open { border-color:#9fb2ad; box-shadow:0 8px 25px rgba(17,45,50,.06); }
.beneficiary-toggle { width:100%; border:0; background:#f7f8f6; padding:13px 15px; display:flex; align-items:center; gap:12px; text-align:left; color:var(--ink); }
.beneficiary-editor.open .beneficiary-toggle { background:#eff4e1; }
.beneficiary-toggle>span { width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:var(--ink); color:#fff; font-size:11px; font-weight:900; }
.beneficiary-toggle p { margin:0; display:flex; flex-direction:column; flex:1; gap:3px; }
.beneficiary-toggle b { font-size:12px; }.beneficiary-toggle small { color:var(--muted); font-size:10px; }
.beneficiary-toggle i { font-style:normal; font-size:20px; color:var(--coral); }
.beneficiary-fields { padding:3px 17px 17px; }
.beneficiary-fields .field-grid { margin-top:15px; }
.contact-choice { flex-direction:row; align-items:center; align-self:end; min-height:45px; padding:10px 12px; border-radius:10px; background:#f3f5f2; }
.contact-choice input { width:auto; }.contact-choice span { line-height:1.35; }
.remove-beneficiary { border:0; background:none; color:#a83c2f; font-size:10px; font-weight:900; padding:14px 0 0; }
.add-beneficiary { width:100%; margin-top:10px; border:1px dashed #9dafaa; border-radius:14px; background:#fff; min-height:67px; padding:12px 16px; display:flex; align-items:center; gap:12px; text-align:left; color:var(--ink); }
.add-beneficiary>span { width:35px; height:35px; border-radius:50%; display:grid; place-items:center; background:var(--coral); color:#fff; font-size:21px; }
.add-beneficiary p { margin:0; display:flex; flex-direction:column; gap:3px; }
.add-beneficiary b { font-size:12px; }.add-beneficiary small { color:var(--muted); font-size:10px; }
.branch-field { margin-top:16px; }
.summary-box { margin:25px 0 18px; padding:10px 20px; }
.summary-box>div { display:flex; justify-content:space-between; padding:13px 0; border-bottom:1px solid #d9dfdd; font-size:13px; }
.summary-box>div:last-child { border:0; }
.check { flex-direction:row; align-items:start; font-weight:600; line-height:1.5; }
.check input { width:auto; margin-top:4px; }
.check a { color:#1559bb; text-decoration:underline; text-underline-offset:2px; font-weight:800; }
.payment-note { margin-top:18px; padding:13px; color:#526568; font-size:11px; line-height:1.5; }
.summary-box.compact { margin:16px 0; }
.card-entry { border-top:1px solid #e0e6e4; padding-top:18px; }
.card-entry .field-grid { margin-top:17px; }
.annual-payment-choice { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px; margin:0 0 18px; padding:14px 16px; border:1px solid #bdd783; border-radius:14px; background:#f5fae8; cursor:pointer; transition:.2s ease; }
.annual-payment-choice:hover,.annual-payment-choice.selected { border-color:#8eb63e; box-shadow:0 8px 22px rgba(82,117,33,.12); }
.annual-payment-choice>input { position:absolute; opacity:0; pointer-events:none; }
.annual-check { width:25px; height:25px; display:grid; place-items:center; border:2px solid #4c9bd8; border-radius:7px; color:transparent; background:#fff; font-size:14px; }
.annual-payment-choice.selected .annual-check { color:#073b66; background:var(--lime); }
.annual-payment-choice>div { display:flex; flex-direction:column; gap:3px; min-width:0; }
.annual-payment-choice>div b { color:var(--ink); font-size:12px; }
.annual-payment-choice>div small { color:#5b6e62; font-size:10px; font-weight:700; }
.annual-payment-choice>div em { color:#35703f; font-size:10px; font-style:normal; font-weight:900; }
.annual-payment-choice>strong { color:var(--ink); font-family:Georgia,serif; font-size:20px; white-space:nowrap; }
.annual-payment-choice>strong small { display:block; color:var(--muted); font:9px Arial,sans-serif; text-align:right; }
.annual-method-section { margin:2px 0 18px; padding:17px; border:1px solid #d4e3ee; border-radius:17px; background:linear-gradient(145deg,#fff,#f1f8fd); box-shadow:0 10px 28px rgba(8,47,83,.07); }
.annual-method-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:13px; }
.annual-method-heading .kicker { font-size:8px; color:var(--royal); }
.annual-method-heading h3 { margin:4px 0 0; font-family:Georgia,serif; font-size:20px; font-weight:500; }
.annual-method-heading>small { max-width:190px; color:var(--muted); font-size:9px; line-height:1.4; text-align:right; }
.annual-method-buttons { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.annual-method-buttons button { min-width:0; display:grid; grid-template-columns:38px 1fr auto; align-items:center; gap:10px; padding:12px; border:1px solid #d1dad7; border-radius:13px; color:var(--ink); background:#fff; text-align:left; cursor:pointer; transition:.2s ease; }
.annual-method-buttons button:hover:not(:disabled) { transform:translateY(-1px); border-color:#99b8cf; box-shadow:0 7px 18px rgba(8,47,83,.09); }
.annual-method-buttons button.selected { transform:translateY(-2px); border-width:2px; box-shadow:0 10px 24px rgba(8,47,83,.14); }
.annual-method-buttons button.selected.yappy { border-color:#159dd9; background:linear-gradient(145deg,#effaff,#fff); }
.annual-method-buttons button.selected.cards { border-color:#174f7d; background:linear-gradient(145deg,#edf6fd,#fff); }
.annual-method-buttons button>span { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; color:#fff; background:#137fc2; font-size:17px; font-weight:900; }
.annual-method-buttons button.cards>span { background:linear-gradient(145deg,var(--navy),#145d95); }
.annual-method-buttons button p { min-width:0; margin:0; display:flex; flex-direction:column; gap:3px; }
.annual-method-buttons button b { font-size:12px; }
.annual-method-buttons button small { overflow:hidden; color:var(--muted); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.annual-method-buttons button .method-status { min-width:54px; display:flex; align-items:center; justify-content:flex-end; gap:5px; color:#718084; font-size:8px; font-style:normal; font-weight:900; }
.annual-method-buttons button .method-status b { width:21px; height:21px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#159dd9; font-size:12px; box-shadow:0 4px 10px rgba(21,157,217,.24); }
.annual-method-buttons button.cards .method-status b { background:#174f7d; box-shadow:0 4px 10px rgba(23,79,125,.22); }
.annual-method-buttons button.selected .method-status span { color:var(--ink); }
.annual-method-buttons button:disabled { opacity:.45; cursor:not-allowed; }
.yappy-payment-panel { margin-top:12px; padding:15px; border:1px solid #b9dff0; border-radius:14px; background:#effaff; }
.yappy-instructions { display:grid; grid-template-columns:42px 1fr; align-items:start; gap:12px; }
.yappy-instructions>span { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; color:#fff; background:linear-gradient(145deg,#159dd9,#0873b5); font-size:20px; font-weight:900; box-shadow:0 8px 18px rgba(19,127,194,.22); }
.yappy-instructions>div { display:flex; flex-direction:column; gap:2px; }
.yappy-instructions small { color:#4e7181; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.7px; }
.yappy-instructions strong { color:#075e93; font-size:20px; letter-spacing:-.4px; }
.yappy-instructions p { margin:3px 0 0; color:#42616e; font-size:10px; line-height:1.45; }
.yappy-upload { position:relative; margin-top:13px; display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:10px; padding:11px 12px; border:1px dashed #64b6d8; border-radius:12px; color:var(--ink); background:#fff; cursor:pointer; transition:.2s ease; }
.yappy-upload:hover { border-color:#167fab; background:#fbfeff; }
.yappy-upload.ready { border-style:solid; border-color:#75ad58; background:#f8fceb; }
.yappy-upload input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.yappy-upload>span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:#086b9d; background:#daf1fb; font-size:16px; font-weight:900; }
.yappy-upload.ready>span { color:#2d754c; background:#e2f3d7; }
.yappy-upload p { min-width:0; margin:0; display:flex; flex-direction:column; gap:3px; }
.yappy-upload b { font-size:10px; }
.yappy-upload small { overflow:hidden; color:var(--muted); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.yappy-upload>i { color:#167fab; font-size:9px; font-style:normal; font-weight:900; }
.yappy-audit-note { display:block; margin:8px 0 0 47px; color:#55727e; font-size:8px; line-height:1.4; }
.card-preview { width:min(360px,100%); min-height:170px; border-radius:18px; padding:24px; color:#fff; background:linear-gradient(135deg,#145b91,#061f36 72%); position:relative; overflow:hidden; box-shadow:0 18px 35px rgba(8,47,83,.22); display:flex; flex-direction:column; justify-content:space-between; }
.card-preview:after { content:""; position:absolute; width:160px; height:160px; border-radius:50%; right:-55px; top:-65px; background:var(--coral); opacity:.9; }
.card-preview>span { font-weight:900; letter-spacing:-1px; position:relative; z-index:1; }
.card-preview>span i { float:right; font-style:normal; font-size:9px; text-transform:uppercase; letter-spacing:.8px; color:#bdd0d2; }
.card-preview>b { font-family:monospace; font-size:21px; letter-spacing:1.5px; position:relative; z-index:1; }
.card-preview>small { display:flex; justify-content:space-between; text-transform:uppercase; letter-spacing:1px; position:relative; z-index:1; }
.card-preview i { font-style:normal; }
.no-cvv { min-height:64px; border-radius:10px; background:#edf6df; padding:12px 14px; align-self:end; display:flex; flex-direction:column; justify-content:center; }
.no-cvv b { color:#385134; font-size:11px; }
.no-cvv small { color:#61705e; font-size:10px; margin-top:3px; }
.secure-note { border-left:3px solid var(--royal); background:#edf7ff; }
.form-error { border-radius:10px; padding:12px 14px; margin-top:15px; color:#a83c2f; background:#fff0ed; font-size:12px; font-weight:700; }
.btn:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.success-state { grid-column:1/-1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:70px; }
.success-state>span { width:80px; height:80px; border-radius:50%; display:grid; place-items:center; background:var(--lime); font-size:40px; }
.success-state h2 { font-family:Georgia,serif; font-size:42px; margin:25px 0 10px; }
.success-state p { color:var(--muted); max-width:550px; line-height:1.6; }
.success-state b { background:#f0f2ef; padding:12px 20px; border-radius:10px; margin:15px 0 25px; }
.success-state>small { max-width:430px; margin:-14px 0 25px; color:var(--muted); font-size:11px; line-height:1.5; }
.plan-detail-modal { width:min(900px,100%); max-height:92vh; overflow:auto; border-radius:26px; background:#fff; display:grid; grid-template-columns:.85fr 1.15fr; position:relative; }
.plan-detail-cover { min-height:640px; position:relative; display:flex; flex-direction:column; justify-content:center; align-items:center; overflow:hidden; background-size:cover; background-position:center; }
.plan-detail-cover.lime { background-color:var(--lime); }.plan-detail-cover.coral { background-color:#ff9e86; }.plan-detail-cover.blue { background-color:#86b8ff; }
.plan-detail-cover>span { font-size:95px; }.plan-detail-cover>small { position:absolute; z-index:2; left:25px; right:25px; bottom:25px; text-align:center; font-weight:900; }
.plan-detail-cover.with-image>small { color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.5); }
.plan-detail-content { padding:55px; display:flex; flex-direction:column; }
.plan-detail-content h2 { font-family:Georgia,serif; font-size:42px; font-weight:500; margin:9px 0; }
.plan-detail-content>p { color:var(--muted); line-height:1.6; margin:0; }
.plan-detail-price { display:flex; justify-content:space-between; align-items:center; padding:20px 0; border-bottom:1px solid #e0e6e4; }
.plan-detail-price .price { margin:0; }.plan-detail-price>span { padding:8px 10px; border-radius:999px; background:#eef3e0; color:#496044; font-size:9px; font-weight:900; }
.benefit-detail-list { padding:22px 0; display:grid; gap:11px; }
.benefit-detail-list h3 { margin:0 0 4px; font-size:13px; }
.benefit-detail-list>div { display:flex; gap:10px; align-items:center; font-size:12px; }
.benefit-detail-list>div>span { width:22px; height:22px; border-radius:50%; display:grid; place-items:center; background:var(--lime); color:#385134; font-weight:900; }
.benefit-detail-list p { margin:0; }
.benefit-detail-list p small { display:block; margin-top:3px; color:#617673; font-size:9px; font-weight:800; }
.admin { min-height:100vh; background:#f3f5f2; display:grid; grid-template-columns:245px 1fr; }
.admin aside { background:var(--ink); color:#fff; padding:35px 25px; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; }
.admin aside nav { display:grid; gap:8px; margin-top:55px; }
.admin aside nav button { border:0; background:transparent; color:#acbabb; border-radius:10px; padding:13px 15px; text-align:left; font-weight:700; display:flex; gap:13px; }
.admin aside nav button.active,.admin aside nav button:hover { color:#fff; background:#203e43; }
.admin-user { margin-top:auto; border-top:1px solid #345055; padding-top:22px; display:flex; gap:10px; align-items:center; }
.admin-user>span,.table-avatar { width:35px; height:35px; display:grid; place-items:center; background:var(--coral); color:#fff; border-radius:50%; font-size:11px; font-weight:900; }
.admin-user p { display:flex; flex-direction:column; margin:0; font-size:12px; }
.admin-user small { color:#9aabad; margin-top:3px; }
.admin-main { padding:45px clamp(25px,5vw,70px); min-width:0; }
.admin-main>header { display:flex; justify-content:space-between; align-items:center; margin-bottom:35px; }
.admin-main h1 { font-family:Georgia,serif; font-size:38px; margin:7px 0 5px; }
.admin-main header p { margin:0; color:var(--muted); }
.admin-actions { display:flex; gap:10px; align-items:center; }
.icon-btn { width:44px; height:44px; border:1px solid #ccd5d3; border-radius:50%; background:white; }
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.metric-grid>div,.panel { background:#fff; border:1px solid #e1e6e4; border-radius:16px; padding:22px; }
.metric-grid span { color:var(--muted); font-size:12px; }
.metric-grid b { display:block; font-family:Georgia,serif; font-size:29px; margin:12px 0 8px; }
.metric-grid small { font-size:10px; font-weight:800; }
.up { color:#34845b; }.warn { color:#d46845; }
.dashboard-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:16px; margin:16px 0; }
.panel-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.panel h3 { margin:0 0 5px; font-size:15px; }
.panel p { margin:0; color:var(--muted); font-size:11px; }
.panel select { width:auto; padding:9px 12px; font-size:11px; }
.chart { height:205px; display:flex; align-items:end; gap:28px; padding:20px 25px 0; border-bottom:1px solid #dce3e1; background:repeating-linear-gradient(to bottom,transparent 0 50px,#eef1f0 51px); }
.chart span { flex:1; background:var(--blue); border-radius:5px 5px 0 0; }
.chart-labels { display:flex; justify-content:space-around; color:var(--muted); font-size:10px; padding-top:10px; }
.donut { width:155px; height:155px; margin:20px auto; border-radius:50%; background:conic-gradient(var(--blue) 0 46%,var(--lime) 46% 78%,var(--coral) 78%); display:grid; place-items:center; }
.donut:before { content:""; position:absolute; width:100px; height:100px; background:#fff; border-radius:50%; }
.donut span { z-index:1; text-align:center; }
.donut b { display:block; font-family:Georgia,serif; font-size:24px; }
.donut small { color:var(--muted); }
.legend p { display:flex; align-items:center; padding:7px 0; }
.legend p b { margin-left:auto; color:var(--ink); }
.dot { width:8px; height:8px; border-radius:50%; margin-right:8px; }.dot.blue{background:var(--blue)}.dot.lime{background:var(--lime)}.dot.coral{background:var(--coral)}
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; font-size:12px; }
th { text-align:left; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:1px; padding:11px 10px; border-bottom:1px solid #e2e7e5; }
td { padding:13px 10px; border-bottom:1px solid #edf0ef; }
td:first-child { display:flex; align-items:center; gap:10px; }
.table-avatar { display:inline-grid; width:31px; height:31px; }
.status { padding:6px 9px; border-radius:999px; background:#fff0dc; color:#a86616; font-size:9px; font-weight:900; }
.status.active { background:#e5f5eb; color:#2d754c; }
.status.processed { background:#e8f0ff; color:#355c9c; }
.status.payment_declined { background:#fff0ed; color:#a83c2f; }
.status.overdue { background:#f6e9f0; color:#7b435e; }
.admin-plans { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.admin-plans article { background:#fff; border-radius:17px; overflow:hidden; border:1px solid #e1e6e4; }
.mini-cover { height:130px; display:flex; align-items:center; justify-content:center; font-size:45px; position:relative; }
.mini-cover small { position:absolute; top:12px; right:12px; background:#fff; border-radius:999px; padding:6px 9px; font-size:8px; }
.admin-plans article>div:last-child { padding:20px; }
.admin-plans article span { font-size:9px; text-transform:uppercase; font-weight:900; color:var(--coral); }
.admin-plans article h3 { margin:8px 0; }
.admin-plans article p { font-size:12px; line-height:1.5; color:var(--muted); min-height:52px; }
.plan-admin-footer { display:flex; justify-content:space-between; align-items:center; padding-top:15px; border-top:1px solid #e5e9e8; }
.plan-admin-footer b { font-family:Georgia,serif; font-size:20px; }
.plan-admin-footer small { font:10px Arial,sans-serif; color:var(--muted); }
.search-box { border:1px solid #ccd5d3; border-radius:10px; padding:0 10px; }
.search-box input { width:210px; border:0; box-shadow:none; padding:10px; }
.edit-modal { width:min(760px,100%); max-height:92vh; overflow:auto; background:#fff; border-radius:25px; padding:42px; position:relative; }
.edit-modal>.field-grid { margin-bottom:18px; }
.edit-modal>label { margin-top:16px; }
.upload-zone { border:1px dashed #9eaeaa; border-radius:12px; min-height:110px; align-items:center; justify-content:center; color:var(--muted); }
.upload-zone>b { color:var(--ink); }.upload-zone input { display:none; }
.toast { position:fixed; right:25px; bottom:25px; z-index:80; color:#fff; background:var(--ink); border-radius:12px; padding:16px 20px; font-size:13px; font-weight:800; box-shadow:0 20px 50px rgba(0,0,0,.2); }
.admin-footnote { text-align:center; color:#8b999b; font-size:10px; margin-top:25px; }
.admin-destinations { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:18px; }
.admin-destinations>a { min-height:150px; border-radius:18px; background:#fff; border:1px solid #e1e6e4; padding:25px; display:grid; grid-template-columns:auto 1fr auto; gap:17px; align-items:center; transition:.2s ease; }
.admin-destinations>a:hover { transform:translateY(-3px); box-shadow:0 18px 40px rgba(17,45,50,.08); }
.admin-destinations>a>span { width:47px; height:47px; border-radius:14px; display:grid; place-items:center; color:#fff; background:var(--ink); font-size:20px; }
.admin-destinations b { font-family:Georgia,serif; font-size:23px; font-weight:500; }
.admin-destinations p { margin:7px 0 0; color:var(--muted); font-size:11px; line-height:1.5; }
.admin-destinations i { font-style:normal; color:var(--coral); font-size:23px; }
.admin-page { min-height:100vh; background:#eef5fa; display:grid; grid-template-columns:245px 1fr; }
.admin-sidebar { background:var(--ink); color:#fff; padding:35px 25px; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; }
.admin-sidebar nav { display:grid; gap:8px; margin-top:55px; }
.admin-sidebar nav a { color:#b8cad9; border-radius:10px; padding:13px 15px; font-weight:700; display:flex; gap:13px; font-size:13px; }
.admin-sidebar nav a.active,.admin-sidebar nav a:hover { color:#fff; background:#124c78; }
.admin-workspace { min-width:0; padding:45px clamp(25px,5vw,70px); }
.admin-workspace>header { display:flex; justify-content:space-between; align-items:center; margin-bottom:30px; }
.admin-workspace h1 { font-family:Georgia,serif; font-weight:500; font-size:42px; letter-spacing:-1.5px; margin:7px 0 5px; }
.admin-workspace header p { color:var(--muted); margin:0; }
.security-banner { display:grid; grid-template-columns:auto 1fr auto; gap:15px; align-items:center; background:#e7f4fd; border:1px solid #c6e1f3; border-radius:15px; padding:18px 22px; margin-bottom:18px; }
.security-banner>span { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; color:#fff; background:#176da9; }
.security-banner b { font-size:13px; }.security-banner p { margin:4px 0 0; color:#4c6f88; font-size:11px; }
.security-banner>small { padding:7px 10px; border-radius:999px; color:#fff; background:#176da9; font-weight:900; }
.records-panel { background:#fff; border:1px solid #e1e6e4; border-radius:18px; margin-top:18px; overflow:hidden; }
.records-toolbar { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:24px; border-bottom:1px solid #e4e9e7; }
.records-toolbar h2 { font-family:Georgia,serif; font-size:24px; font-weight:500; margin:0 0 5px; }
.records-toolbar p { margin:0; color:var(--muted); font-size:11px; }
.records-controls { display:flex; gap:9px; }
.search-control { border:1px solid #ccd5d3; border-radius:10px; padding-left:12px; flex-direction:row; align-items:center; }
.search-control input { width:210px; border:0; padding:10px; box-shadow:none; }
.records-controls select { width:auto; padding:10px; font-size:11px; }
.enrollment-list { display:grid; }
.enrollment-item { border-bottom:1px solid #edf0ef; }
.enrollment-item:last-child { border:0; }
.enrollment-item.expanded { background:#f9fbfa; }
.enrollment-row { display:grid; grid-template-columns:1.3fr .7fr .8fr 1fr .8fr auto; gap:18px; align-items:center; padding:18px 24px; border-bottom:1px solid #edf0ef; }
.enrollment-item .enrollment-row { border:0; }
.enrollment-row>div:not(.enrollment-person):not(.record-action) { display:flex; flex-direction:column; gap:5px; min-width:0; }
.enrollment-row small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.7px; }
.enrollment-row b { font-size:12px; overflow:hidden; text-overflow:ellipsis; }
.enrollment-row em { color:var(--muted); font-size:10px; font-style:normal; }
.enrollment-person { display:flex; align-items:center; gap:10px; min-width:0; }
.enrollment-expand { width:100%; border:0; background:none; color:var(--ink); text-align:left; padding:0; }
.enrollment-expand>i { margin-left:auto; font-style:normal; color:var(--coral); font-size:17px; }
.enrollment-person>span { flex:0 0 auto; width:35px; height:35px; display:grid; place-items:center; border-radius:50%; background:var(--coral); color:#fff; font-size:10px; font-weight:900; }
.enrollment-person p { margin:0; display:flex; flex-direction:column; min-width:0; gap:3px; }
.enrollment-person p small { text-transform:none; letter-spacing:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.billing-cycle-badge { display:inline-flex; align-items:center; align-self:flex-start; width:max-content; margin-top:2px; border-radius:999px; padding:4px 7px; font-size:8px!important; font-weight:900; font-style:normal; line-height:1; letter-spacing:.2px!important; text-transform:none!important; white-space:nowrap; }
.billing-cycle-badge.monthly { color:#285f92; background:#e6f2ff; }
.billing-cycle-badge.annual { color:#2e7149; background:#e5f5df; }
.record-action .btn { min-height:38px; padding-inline:15px; font-size:10px; }
.enrollment-detail { margin:0 18px 18px; background:#f2f6f4; border:1px solid #cbd8d4; border-left:4px solid var(--blue); border-radius:14px; padding:20px; box-shadow:0 8px 24px rgba(17,45,50,.05); }
.holder-detail { display:grid; grid-template-columns:.7fr 1.3fr; gap:30px; padding:0 0 17px; border-bottom:1px solid #d5dfdc; }
.holder-detail h3 { font-size:17px; font-weight:800; margin:5px 0 0; }
.beneficiary-detail-heading h3 { font-size:18px; font-weight:700; margin:5px 0 0; }
.holder-detail dl { margin:0; display:grid; grid-template-columns:1fr 1fr; gap:16px 25px; }
.holder-detail dl div,.beneficiary-detail-grid dl div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.holder-detail dt,.beneficiary-detail-grid dt { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.8px; }
.holder-detail dd,.beneficiary-detail-grid dd { margin:0; font-size:11px; font-weight:800; overflow:hidden; text-overflow:ellipsis; }
.beneficiary-detail-heading { display:flex; align-items:end; justify-content:space-between; padding:17px 0 12px; }
.beneficiary-detail-heading>b { width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:var(--lime); font-size:12px; }
.beneficiary-detail-grid { display:grid; grid-template-columns:1fr; gap:8px; }
.beneficiary-detail-grid>article { position:relative; border-radius:13px; border:1px solid #dfe5e3; background:#fff; padding:14px 17px; display:grid; grid-template-columns:minmax(185px,1.25fr) minmax(110px,.7fr) minmax(135px,.8fr) minmax(190px,1.1fr) auto; gap:18px; align-items:center; }
.beneficiary-identity { min-width:0; padding-left:34px; }
.beneficiary-detail-grid h4 { margin:0 0 4px; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.beneficiary-identity>span { display:block; color:var(--muted); font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.beneficiary-number { position:absolute; top:14px; right:14px; width:25px; height:25px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--coral); font-size:9px; font-weight:900; }
.beneficiary-detail-grid .beneficiary-number { left:14px; right:auto; top:50%; transform:translateY(-50%); }
.beneficiary-detail-grid dl { display:contents; margin:0; }
.beneficiary-detail-grid>article>small { justify-self:end; white-space:nowrap; display:inline-block; margin:0; padding:5px 8px; border-radius:999px; color:#55704f; background:#edf4df; font-size:8px; font-weight:900; }
.protected-label { color:#2d754c; font-size:11px; font-weight:900; }
.external-pending-label { max-width:145px; color:#426c9b; font-size:10px; font-weight:900; line-height:1.35; }
.records-empty { min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:var(--muted); text-align:center; }
.records-empty>span:first-child { font-size:40px; color:#91a19e; }
.records-empty p { margin:0; font-size:11px; }
.payments-list { display:grid; }
.payment-row { display:grid; grid-template-columns:1.25fr .9fr .55fr .65fr .8fr .75fr; gap:16px; align-items:center; min-height:76px; padding:13px 24px; border-bottom:1px solid #edf0ef; }
.payment-row:last-child { border:0; }
.payment-row>div:not(.enrollment-person) { display:flex; flex-direction:column; gap:4px; min-width:0; }
.payment-row small { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.7px; }
.payment-row b { font-size:11px; overflow:hidden; text-overflow:ellipsis; }
.payment-row em { color:var(--muted); font-size:9px; font-style:normal; overflow:hidden; text-overflow:ellipsis; }
.payment-head { min-height:auto; padding-block:10px; background:#f8f9f7; }
.payment-head span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:1px; font-weight:900; }
.payment-status { align-self:flex-start; border-radius:999px; padding:6px 9px; font-size:9px; font-weight:900; }
.payment-status.pending { color:#8a681b; background:#fff4cf; }
.payment-status.paid { color:#2c764b; background:#e5f5eb; }
.payment-status.declined { color:#a83c2f; background:#fff0ed; }
.payment-status.overdue { color:#7b435e; background:#f6e9f0; }
.status-select select { padding:9px 10px; font-size:10px; min-width:105px; }
.table-pagination { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 24px; color:var(--muted); background:#f8faf9; font-size:10px; }
.table-pagination>div { display:flex; align-items:center; gap:12px; }
.table-pagination b { color:var(--ink); white-space:nowrap; }
.table-pagination button { min-height:34px; border:1px solid #cad5d2; border-radius:999px; padding:0 13px; background:#fff; color:var(--ink); font-size:10px; font-weight:800; }
.table-pagination button:disabled { cursor:not-allowed; opacity:.4; }
.member-status-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }
.member-status-strip>div { min-height:78px; display:flex; align-items:center; gap:13px; border:1px solid #dfe5e3; border-radius:15px; background:#fff; padding:16px 18px; }
.member-status-strip p { margin:0; display:flex; flex-direction:column; gap:3px; }
.member-status-strip small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.7px; }
.member-status-strip b { font-family:Georgia,serif; font-size:24px; font-weight:500; }
.service-dot { width:12px; height:12px; flex:0 0 auto; border-radius:50%; box-shadow:0 0 0 5px rgba(17,45,50,.05); }
.service-dot.active { background:#49a46c; }.service-dot.pending { background:#e3ac45; }.service-dot.suspended { background:#d76a59; }.service-dot.total { background:var(--blue); }
.active-members-panel { margin-top:0; }
.active-members-table-wrap { width:100%; overflow-x:auto; }
.active-members-table { min-width:1510px; }
.active-members-table th { padding:11px 14px; background:#f8faf9; }
.active-members-table td { padding:14px; vertical-align:middle; }
.active-members-table td:first-child { display:table-cell; }
.active-members-table td>small,.member-person small { display:block; max-width:210px; margin-top:4px; color:var(--muted); font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.active-members-table td>b { display:block; max-width:190px; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.member-person { display:flex; align-items:center; gap:10px; min-width:205px; }
.member-person>span { width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; background:var(--coral); color:#fff; font-size:9px; font-weight:900; }
.member-person p { margin:0; min-width:0; }
.member-person b { display:block; max-width:185px; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.member-plus-cell { min-width:265px; }
.member-plus-cell>b { max-width:none!important; }
.member-plus-list { display:grid; gap:6px; margin-top:8px; }
.member-plus { display:flex; align-items:center; gap:8px; max-width:280px; border:1px solid #dbe2df; border-radius:10px; padding:7px 9px; background:#f8faf9; }
.member-plus>i { width:22px; height:22px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; color:#82908e; background:#e7ecea; font-size:14px; font-style:normal; }
.member-plus>p { min-width:0; margin:0; display:flex; flex-direction:column; gap:2px; }
.member-plus>p b { overflow:hidden; color:#31494d; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.member-plus>p small { color:#73827f; font-size:8px; }
.member-plus.available { border-color:#98d1aa; background:#e9f7ed; }
.member-plus.available>i { color:#fff; background:#3c9a5d; box-shadow:0 0 0 4px rgba(60,154,93,.11); }
.member-plus.available>p b,.member-plus.available>p small { color:#286c43; }
.member-plus.blocked { border-color:#ecc8be; background:#fff4f1; }
.member-plus.blocked>i { color:#ad5e4d; background:#f6ddd7; }
.no-timed-benefits { padding:6px 0; font-style:italic; }
.service-status { display:inline-flex; align-items:center; white-space:nowrap; border-radius:999px; padding:7px 10px; font-size:9px; font-weight:900; }
.service-status.active { color:#246940; background:#e2f3e8; }.service-status.pending { color:#876315; background:#fff2cf; }.service-status.suspended { color:#9b3d32; background:#ffebe7; }
.loading-ring { width:35px; height:35px; border-radius:50%; border:3px solid #dfe6e4; border-top-color:var(--coral); animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.vault-modal { width:min(600px,100%); max-height:92vh; overflow:auto; background:#fff; border-radius:25px; padding:42px; position:relative; }
.vault-modal h2 { font-family:Georgia,serif; font-size:34px; font-weight:500; margin:8px 0; }
.vault-modal>p { color:var(--muted); font-size:12px; margin:0 0 22px; }
.vault-card { min-height:220px; border-radius:22px; background:linear-gradient(135deg,#173f46,#081d21); color:#fff; padding:28px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; box-shadow:0 20px 45px rgba(17,45,50,.22); }
.vault-card:after { content:""; position:absolute; width:210px; height:210px; border-radius:50%; right:-65px; top:-80px; background:var(--coral); }
.vault-card>span,.vault-card>b,.vault-card>div { position:relative; z-index:1; }
.vault-card>span { font-weight:900; text-transform:uppercase; letter-spacing:2px; }
.vault-card>b { font:26px monospace; letter-spacing:2px; }
.vault-card>div { display:flex; justify-content:space-between; }
.vault-card p { margin:0; display:flex; flex-direction:column; font-size:12px; text-transform:uppercase; letter-spacing:1px; }
.vault-card p small { color:#9db1b4; margin-bottom:5px; font-size:8px; }
.copy-button { width:100%; border:0; border-radius:0 0 12px 12px; padding:12px; color:#fff; background:#294b51; font-size:11px; font-weight:900; }
.vault-modal>label { margin-top:20px; }
.vault-warning { margin-top:18px; border-radius:12px; padding:14px; background:#fff0ed; color:#8c453a; }
.vault-warning b { font-size:11px; }.vault-warning p { font-size:10px; line-height:1.5; margin:5px 0 0; }
.plans-admin-section { border-radius:20px; border:1px solid #dfe5e3; background:#fff; padding:26px; }
.catalog-summary { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:24px; }
.catalog-summary h2 { margin:6px 0 0; font-family:Georgia,serif; font-size:29px; font-weight:500; }
.catalog-summary>p { max-width:460px; margin:0; color:var(--muted); font-size:11px; line-height:1.6; text-align:right; }
.annual-link-warning { display:flex; align-items:flex-start; gap:8px 18px; margin:0 0 20px; }
.annual-link-warning b { flex:0 0 auto; }
.annual-link-warning span { color:#7b4b44; font-weight:600; line-height:1.5; }
.catalog-admin-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.catalog-admin-card { min-width:0; overflow:hidden; border:1px solid #dfe5e3; border-radius:17px; background:#fff; box-shadow:0 10px 28px rgba(17,45,50,.05); }
.catalog-cover { height:155px; position:relative; display:grid; place-items:center; overflow:hidden; background-size:cover; background-position:center; }
.catalog-cover.lime { background-color:var(--lime); }.catalog-cover.coral { background-color:#ff9e86; }.catalog-cover.blue { background-color:#86b8ff; }
.catalog-cover>span { font-size:52px; }
.catalog-cover>small { position:absolute; z-index:2; top:13px; right:13px; border-radius:999px; padding:6px 9px; font-size:8px; font-weight:900; }
.catalog-cover>small.published { color:#2c764b; background:#e5f5eb; }
.catalog-cover>small.draft { color:#876719; background:#fff4cf; }
.catalog-card-body { padding:20px; }
.catalog-card-body>span { color:var(--coral); text-transform:uppercase; letter-spacing:1px; font-size:8px; font-weight:900; }
.catalog-card-body h3 { margin:7px 0; font-family:Georgia,serif; font-size:24px; font-weight:500; }
.catalog-card-body>p { min-height:51px; margin:0; color:var(--muted); font-size:11px; line-height:1.55; }
.catalog-facts { display:flex; flex-wrap:wrap; align-items:center; gap:7px 12px; margin:18px 0; padding-top:15px; border-top:1px solid #e5e9e8; }
.catalog-facts>b { flex-basis:100%; font-family:Georgia,serif; font-size:22px; font-weight:500; }
.catalog-facts>b small { margin-left:4px; color:var(--muted); font:9px Arial,sans-serif; }
.catalog-facts>strong { flex-basis:100%; color:#367449; font-size:10px; }
.catalog-facts>span { color:var(--muted); font-size:9px; font-weight:800; }
.catalog-card-body>.btn { width:100%; min-height:40px; font-size:10px; }
.default-promo-label { display:block; margin:-8px 0 13px; color:#5f744b; font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.7px; }
.membership-editor-modal { width:min(820px,100%); max-height:92vh; overflow:auto; position:relative; border-radius:25px; background:#fff; padding:42px; }
.membership-editor-modal h2 { margin:8px 0; font-family:Georgia,serif; font-size:36px; font-weight:500; }
.membership-editor-modal>p { margin:0 0 22px; color:var(--muted); font-size:12px; }
.membership-editor-modal>.field-grid { margin:0 0 18px; }
.membership-editor-modal>label { margin-top:16px; }
.featured-check { flex-direction:row; align-items:center; gap:9px; }
.featured-check input { width:auto; }
.annual-admin-config { margin:20px 0; padding:20px; border:1px solid #cfe09f; border-radius:15px; background:#f7faed; }
.annual-admin-config h3 { margin:5px 0; font-family:Georgia,serif; font-size:22px; font-weight:500; }
.annual-admin-config p { margin:0; color:var(--muted); font-size:10px; }
.annual-admin-config>.field-grid { margin:16px 0; }
.annual-admin-config>label { margin-top:13px; }
.annual-admin-config>small { display:block; margin-top:12px; color:#66775f; font-size:9px; line-height:1.5; }
.benefit-admin-config { margin:20px 0; padding:20px; border:1px solid #cdd9e7; border-radius:15px; background:#f5f9fd; }
.benefit-admin-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.benefit-admin-heading h3 { margin:5px 0; font-family:Georgia,serif; font-size:22px; font-weight:500; }
.benefit-admin-heading p { margin:0; color:var(--muted); font-size:10px; }
.benefit-admin-heading>button { flex:0 0 auto; min-height:36px; border:1px solid #aebfd2; border-radius:999px; padding:0 13px; color:#24537b; background:#fff; font-size:9px; font-weight:900; }
.benefit-admin-heading>button:disabled { opacity:.45; }
.benefit-editor-list { display:grid; gap:9px; margin-top:16px; }
.benefit-editor-row { display:grid; grid-template-columns:minmax(0,1fr) 190px 34px; gap:10px; align-items:end; padding:11px; border:1px solid #dce5ec; border-radius:12px; background:#fff; }
.benefit-editor-row>button { width:34px; height:42px; border:0; border-radius:9px; color:#a34b3d; background:#fff0ed; font-size:19px; }
.benefit-admin-config>small { display:block; margin-top:13px; color:#526b7c; font-size:9px; line-height:1.55; }
.branch-admin-list { display:grid; gap:10px; }
.branch-admin-list>article { display:grid; grid-template-columns:45px 1fr auto auto; align-items:center; gap:16px; min-height:92px; padding:15px 18px; border:1px solid #e0e6e4; border-radius:15px; background:#fbfcfb; }
.branch-admin-list>article>span { width:35px; height:35px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:#fff; font-size:10px; font-weight:900; }
.branch-admin-list h3 { margin:4px 0; font-size:16px; }
.branch-admin-list p { margin:0; color:var(--muted); font-size:10px; }
.branch-admin-list small { color:#488057; font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.7px; }
.branch-admin-list a { color:var(--blue); font-size:10px; font-weight:900; }
.branch-admin-list .btn { min-height:38px; font-size:10px; }
.branch-editor-modal { width:min(720px,100%); }
.communications-center { display:grid; gap:18px; }
.communication-status-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:17px; border:1px solid #d9e5db; border-radius:18px; padding:22px 25px; background:linear-gradient(105deg,#f8fbf3,#fff); box-shadow:0 10px 30px rgba(17,45,50,.04); }
.communication-status-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:15px; font-size:19px; }
.communication-status-icon.ready { color:#fff; background:#3b8e59; }.communication-status-icon.pending { color:#8a681b; background:#fff1c5; }
.communication-status-card h2 { margin:4px 0 2px; font-size:19px; }
.communication-status-card p { margin:0; color:var(--muted); font-size:10px; }
.connection-badge { border-radius:999px; padding:8px 11px; font-size:9px; font-weight:900; }
.connection-badge.ready { color:#2e7149; background:#e4f4e8; }.connection-badge.pending { color:#876315; background:#fff2cf; }
.communication-settings-grid { display:grid; grid-template-columns:1.5fr .75fr; gap:18px; }
.communication-card { display:flex; flex-direction:column; gap:16px; border:1px solid #dfe6e3; border-radius:18px; padding:24px; background:#fff; }
.communication-card>.field-grid { margin:0; }
.communication-card>label small { color:var(--muted); font-size:9px; font-weight:600; }
.communication-card>.btn { align-self:flex-end; }
.communication-card-heading { display:flex; align-items:flex-start; gap:12px; padding-bottom:16px; border-bottom:1px solid #e7ecea; }
.communication-card-heading>span { width:30px; height:30px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--ink); font-size:9px; font-weight:900; }
.communication-card-heading h3 { margin:0 0 5px; font-family:Georgia,serif; font-size:21px; font-weight:500; }
.communication-card-heading p { margin:0; color:var(--muted); font-size:10px; line-height:1.5; }
.test-email-card { background:#f8faf9; }
.email-security-note { margin-top:auto; border-left:3px solid var(--lime); border-radius:0 12px 12px 0; padding:13px 14px; background:#f0f6df; }
.email-security-note b { font-size:10px; }.email-security-note p { margin:5px 0 0; color:#61705e; font-size:9px; line-height:1.5; }
.communication-section { overflow:hidden; border:1px solid #dfe6e3; border-radius:18px; background:#fff; }
.communication-section-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; padding:24px; border-bottom:1px solid #e6ebe9; }
.communication-section-heading h2 { margin:5px 0; font-family:Georgia,serif; font-size:25px; font-weight:500; }
.communication-section-heading p { margin:0; color:var(--muted); font-size:10px; }
.communication-section-heading>span { flex:0 0 auto; border-radius:999px; padding:7px 10px; color:#4d6750; background:#eef5df; font-size:9px; font-weight:900; }
.template-workspace { display:grid; grid-template-columns:330px minmax(0,1fr); min-height:550px; }
.template-list { display:grid; align-content:start; border-right:1px solid #e5eae8; background:#f8faf9; }
.template-list>button { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; min-height:77px; border:0; border-bottom:1px solid #e5eae8; padding:13px 16px; color:var(--ink); background:transparent; text-align:left; }
.template-list>button.active { background:#fff; box-shadow:inset 4px 0 var(--coral); }
.template-list>button>span { color:#98a5a2; }.template-list>button.active>span { color:#3e9a5f; }
.template-list p { min-width:0; margin:0; display:flex; flex-direction:column; gap:4px; }
.template-list b { font-size:11px; }.template-list small { color:var(--muted); font-size:9px; line-height:1.35; }
.template-list i { align-self:start; border-radius:999px; padding:4px 6px; color:#557060; background:#e8f1e9; font-size:7px; font-style:normal; font-weight:900; }
.template-editor { display:flex; flex-direction:column; gap:15px; padding:26px; }
.template-editor h3 { margin:5px 0; font-family:Georgia,serif; font-size:25px; font-weight:500; }.template-editor>div>p { margin:0; color:var(--muted); font-size:10px; }
.template-switches { display:flex; flex-wrap:wrap; gap:11px 20px; }
.template-switches label { flex-direction:row; align-items:center; gap:8px; }.template-switches input { width:auto; }
.variable-help { border-radius:12px; padding:13px 15px; background:#f3f6f5; }
.variable-help>b { font-size:9px; text-transform:uppercase; letter-spacing:.7px; }.variable-help>div { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.variable-help code,.composer-footer code { border-radius:6px; padding:4px 6px; color:#285f92; background:#e7f1fb; font-size:9px; }
.template-editor>.btn { align-self:flex-end; }
.manual-composer>form { display:grid; gap:15px; padding:24px; }
.manual-composer .field-grid { margin:0; }
.composer-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.composer-footer p { max-width:600px; margin:0; color:var(--muted); font-size:9px; line-height:1.6; }
.communication-history-table { display:grid; overflow-x:auto; }
.communication-history-row { min-width:900px; display:grid; grid-template-columns:1.15fr 1.55fr .75fr .55fr; gap:18px; align-items:center; min-height:70px; padding:13px 24px; border-bottom:1px solid #e8eceb; }
.communication-history-row:last-child { border:0; }.communication-history-row.head { min-height:auto; color:var(--muted); background:#f8faf9; font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.8px; }
.communication-history-row>div { min-width:0; }.communication-history-row b { display:block; overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.communication-history-row small { display:block; margin-top:4px; overflow:hidden; color:var(--muted); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.message-status { display:inline-flex; border-radius:999px; padding:6px 9px; font-size:8px; font-weight:900; }.message-status.sent { color:#2c764b; background:#e5f5eb; }.message-status.failed { color:#a83c2f; background:#fff0ed; }.message-status.queued { color:#876315; background:#fff2cf; }
.records-empty.compact { min-height:190px; }
.plan-upload { margin-top:18px!important; padding:18px; flex-direction:row; flex-wrap:wrap; gap:7px 10px; cursor:pointer; }
.plan-upload>b { margin-right:auto; }
.plan-upload>small { flex-basis:100%; margin-left:25px; }
.plan-upload.has-file { border-color:#93ad57; background:#f4f8e8; }
.access-denied { min-height:100vh; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:30px; }
.access-denied .brand-mark { width:55px; height:55px; font-size:26px; }
.access-denied .brand-logo { width:86px; height:86px; }
.access-denied h1 { font-family:Georgia,serif; font-size:42px; font-weight:500; margin:24px 0 8px; }
.access-denied p { max-width:560px; color:var(--muted); line-height:1.6; margin:0 0 25px; }

.legal-page { min-height:100vh; background:#f8f7f2; }
.legal-nav { min-height:92px; display:flex; align-items:center; justify-content:space-between; }
.legal-hero { padding:78px 0; color:#fff; background:linear-gradient(135deg,#061f36,#145b91); }
.legal-hero-inner { max-width:900px; }
.legal-hero .kicker { color:var(--lime); }
.legal-hero h1 { margin:14px 0 18px; font-family:Georgia,serif; font-size:clamp(45px,6vw,72px); font-weight:500; letter-spacing:-2.5px; }
.legal-hero p { max-width:760px; margin:0 0 20px; color:#c4d0d1; font-size:18px; line-height:1.65; }
.legal-hero small { color:#91a6a8; font-weight:800; }
.legal-content { max-width:900px; padding-block:68px 85px; }
.legal-content section { padding:0 0 30px; margin:0 0 30px; border-bottom:1px solid #dbe2df; }
.legal-content section:last-child { border-bottom:0; }
.legal-content h2 { margin:0 0 12px; font-family:Georgia,serif; font-size:26px; font-weight:500; }
.legal-content p { margin:0; color:#4f6366; font-size:15px; line-height:1.8; }
.legal-content a { color:#1559bb; text-decoration:underline; text-underline-offset:3px; font-weight:700; }
.legal-footer { color:#a9b9bb; background:#0b2429; }
.legal-footer>.shell { min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:25px; font-size:11px; }
.legal-footer nav { display:flex; flex-wrap:wrap; gap:16px; color:#e3e9e9; font-weight:700; }
@media(max-width:900px){
  .nav-links{display:none}.hero{grid-template-columns:1fr;padding-top:30px}.hero-art{height:410px}.plans-grid,.metric-grid,.admin-plans{grid-template-columns:1fr 1fr}.section-heading,.branches{grid-template-columns:1fr;display:grid}.admin{grid-template-columns:78px 1fr}.admin aside{padding:25px 14px}.admin aside .brand>span:last-child,.admin aside nav span,.admin-user p{display:none}.admin aside .brand{justify-content:center}.admin aside nav button{justify-content:center}.dashboard-grid{grid-template-columns:1fr}.admin-main>header{align-items:flex-start}.admin-actions .btn{font-size:0;padding:0;width:44px}.admin-actions .btn:first-letter{font-size:18px}
}
@media(max-width:640px){
  .shell{width:min(100% - 28px,1180px)}.nav{height:78px}.nav>.btn{font-size:10px;width:auto;padding:0 15px}.hero{min-height:auto;gap:30px}.hero h1{font-size:52px;letter-spacing:-3px}.hero-actions{align-items:flex-start;flex-direction:column}.trust-row{flex-direction:column;gap:8px}.hero-art{height:360px}.plans-grid,.metric-grid,.admin-plans{grid-template-columns:1fr}.section{padding:70px 0}.section-heading h2,.branches h2,.cta h2{font-size:38px}.steps{grid-template-columns:1fr}.steps>div:not(:last-child):after{content:"↓"}.branches{padding:70px 0;gap:30px}.cta{padding:45px 25px}.footer-inner{flex-direction:column;justify-content:center;align-items:flex-start;gap:16px;padding-block:35px}.footer-legal{justify-content:flex-start}.modal-backdrop{padding:12px}.signup-modal{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:calc(100dvh - 24px)}.signup-side{padding:20px 25px;min-height:105px}.signup-side>div{display:none}.signup-form{padding:35px 18px 35px 25px;min-height:0}.success-state{padding:45px 24px;overflow-y:auto}.success-state h2{font-size:34px}.field-grid{grid-template-columns:1fr}.annual-payment-choice{grid-template-columns:auto 1fr}.annual-payment-choice>strong{grid-column:2;text-align:left}.annual-payment-choice>strong small{text-align:left}.admin{grid-template-columns:1fr}.admin aside{position:fixed;z-index:20;bottom:0;top:auto;width:100%;height:66px;padding:8px 12px;flex-direction:row}.admin aside>.brand,.admin-user{display:none}.admin aside nav{margin:0;display:flex;width:100%;justify-content:space-around}.admin aside nav button:nth-child(n+4){display:none}.admin-main{padding:28px 15px 90px}.admin-main>header{display:block}.admin-actions{margin-top:20px}.chart{gap:12px;padding-inline:10px}.branch-list>a{grid-template-columns:35px 1fr auto}.branch-list p small{display:none}.legal-nav{min-height:78px}.legal-nav>.btn{min-height:40px;padding-inline:14px;font-size:10px}.legal-hero{padding:55px 0}.legal-content{padding-block:50px}.legal-footer>.shell{min-height:130px;align-items:flex-start;justify-content:center;flex-direction:column;padding-block:25px}.legal-footer nav{gap:10px 14px}
}
@media(max-width:1050px) {
  .admin-destinations,.catalog-admin-grid { grid-template-columns:1fr 1fr; }
  .communication-settings-grid { grid-template-columns:1fr; }
  .template-workspace { grid-template-columns:270px minmax(0,1fr); }
  .enrollment-row { grid-template-columns:1.2fr .7fr .8fr auto; }
  .enrollment-row>div:nth-child(3),.enrollment-row>div:nth-child(5) { display:none!important; }
  .payment-row { grid-template-columns:1.2fr .8fr .6fr .8fr; }
  .payment-row>div:nth-child(3),.payment-row>div:nth-child(4),.payment-head>span:nth-child(3),.payment-head>span:nth-child(4) { display:none; }
  .beneficiary-detail-grid>article { grid-template-columns:minmax(180px,1.1fr) minmax(110px,.7fr) minmax(170px,1fr); }
  .beneficiary-detail-grid dl { display:grid; grid-template-columns:1fr 1fr; gap:9px 16px; }
  .beneficiary-detail-grid dl>div:last-child { grid-column:1/-1; }
}
@media(max-width:760px) {
  .admin-page { grid-template-columns:1fr; }
  .admin-sidebar { position:fixed; z-index:20; bottom:0; top:auto; width:100%; height:66px; padding:8px 12px; flex-direction:row; }
  .admin-sidebar>.brand,.admin-sidebar .admin-user { display:none; }
  .admin-sidebar nav { margin:0; display:flex; width:100%; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; }
  .admin-sidebar nav a { min-width:52px; justify-content:center; padding:13px; }
  .admin-sidebar nav span { display:none; }
  .admin-workspace { padding:28px 14px 90px; }
  .admin-workspace>header,.records-toolbar { align-items:flex-start; flex-direction:column; }
  .admin-actions { margin-top:14px; }
  .admin-workspace .metric-grid { grid-template-columns:1fr 1fr; }
  .member-status-strip { grid-template-columns:1fr 1fr; }
  .records-controls { width:100%; flex-direction:column; }
  .search-control input,.records-controls select { width:100%; }
  .enrollment-row { grid-template-columns:1fr auto; gap:12px; }
  .enrollment-row>div:not(.enrollment-person):not(.record-action) { display:none!important; }
  .payment-row { grid-template-columns:1fr auto; gap:12px; }
  .payment-head { display:none; }
  .payment-row>div:not(.enrollment-person) { display:none!important; }
  .payment-row>div:nth-child(5) { display:flex!important; grid-column:1; padding-left:45px; }
  .payment-row>div:not(.enrollment-person):last-child { display:flex!important; }
  .table-pagination { align-items:flex-start; flex-direction:column; }
  .table-pagination>div { width:100%; justify-content:space-between; }
  .security-banner { grid-template-columns:auto 1fr; }
  .security-banner>small { grid-column:2; justify-self:start; }
  .vault-modal { padding:35px 22px; }
  .vault-card { min-height:190px; padding:21px; }
  .vault-card>b { font-size:18px; }
  .admin-destinations,.catalog-admin-grid { grid-template-columns:1fr; }
  .enrollment-detail { margin:0 10px 12px; padding:16px; }
  .holder-detail { grid-template-columns:1fr; gap:18px; }
  .plans-admin-section { padding:17px; }
  .catalog-summary { display:block; }
  .catalog-summary>p { margin-top:10px; text-align:left; }
  .annual-link-warning { display:grid; }
  .membership-editor-modal { padding:35px 22px; }
  .membership-editor-modal .field-grid { grid-template-columns:1fr; }
  .benefit-admin-heading { flex-direction:column; }
  .benefit-editor-row { grid-template-columns:1fr 42px; }
  .benefit-editor-row>label:nth-child(2) { grid-column:1; }
  .benefit-editor-row>button { grid-column:2; grid-row:1 / span 2; height:100%; }
  .branch-admin-list>article { grid-template-columns:40px 1fr; gap:12px; }
  .branch-admin-list>article>a,.branch-admin-list>article>.btn { grid-column:2; width:100%; }
  .plan-detail-modal { grid-template-columns:1fr; }
  .plan-detail-cover { min-height:260px; }
  .plan-detail-content { padding:35px 25px; }
  .beneficiary-detail-grid>article { grid-template-columns:1fr; gap:11px; padding:15px 16px; }
  .beneficiary-identity { padding-left:34px; }
  .beneficiary-detail-grid .beneficiary-number { top:15px; transform:none; }
  .beneficiary-detail-grid dl { display:grid; grid-template-columns:1fr 1fr; gap:10px 15px; padding-top:4px; }
  .beneficiary-detail-grid dl>div:last-child { grid-column:1/-1; }
  .beneficiary-detail-grid>article>small { justify-self:start; margin-left:34px; }
  .communication-status-card { grid-template-columns:auto 1fr; }
  .communication-status-card>.connection-badge { grid-column:2; justify-self:start; }
  .template-workspace { grid-template-columns:1fr; }
  .template-list { max-height:310px; overflow-y:auto; border-right:0; border-bottom:1px solid #e5eae8; }
  .communication-section-heading,.composer-footer { align-items:flex-start; flex-direction:column; }
  .composer-footer .btn,.communication-card>.btn,.template-editor>.btn { width:100%; }
}

/* Adaptación técnica para servir la interfaz aprobada desde PHP. */
body.modal-open { overflow:hidden; }
.modal-backdrop[hidden] { display:none; }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; }
#signup-content>p { color:var(--muted); margin-top:0; font-size:14px; }

/* Cobros por periodo: cada mensualidad conserva su resultado e historial. */
.payment-period-controls { flex-wrap:wrap; }
.payment-period-controls select { min-width:150px; }
.payment-record { border-bottom:1px solid #d8e4ec; }
.payment-record:last-child { border-bottom:0; }
.payment-record>.payment-row { border-bottom:0; }
.payment-row em { display:block; margin-top:4px; color:#63809a; font-size:8px; font-style:normal; line-height:1.35; }
.voucher-link,.payment-history-toggle,.payment-resend { display:inline-flex; width:max-content; margin-top:7px; border:0; padding:0; color:#086db6; background:transparent; font-size:8px; font-weight:900; text-decoration:none; cursor:pointer; }
.voucher-link:hover,.payment-history-toggle:hover,.payment-resend:hover { color:#004d86; text-decoration:underline; text-underline-offset:3px; }
.payment-resend { color:#23764f; }
.payment-history-panel { margin:0 18px 16px; overflow:hidden; border:1px solid #cfe0ed; border-radius:15px; background:#f7fbfe; }
.payment-history-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; padding:17px 20px; border-bottom:1px solid #d9e7f1; background:#edf6fc; }
.payment-history-heading h3 { margin:4px 0 0; font-family:Georgia,serif; font-size:20px; font-weight:500; }
.payment-history-heading>b { border-radius:999px; padding:6px 9px; color:#0d5f97; background:#dceefa; font-size:8px; }
.payment-history-list { display:grid; }
.payment-history-list>article { min-width:860px; display:grid; grid-template-columns:1fr 1.25fr .7fr .8fr 1.15fr .75fr; align-items:center; gap:15px; padding:13px 20px; border-bottom:1px solid #e0eaf1; }
.payment-history-list>article:last-child { border-bottom:0; }
.payment-history-list small { display:block; color:#6e8395; font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.55px; }
.payment-history-list b { display:block; margin-top:4px; font-size:9px; }
.payment-history-list em { display:block; margin-top:3px; color:#6e8395; font-size:8px; font-style:normal; }

/* Integración segura con el expediente clínico. */
.api-credential-once { display:grid; grid-template-columns:48px 1fr; gap:15px; margin-bottom:22px; padding:19px 21px; border:1px solid #8ec9ae; border-radius:17px; color:#164f3a; background:linear-gradient(135deg,#eaf8f0,#f8fdf9); box-shadow:0 12px 28px rgba(17,84,56,.08); }
.api-credential-once>span { width:48px; height:48px; display:grid; place-items:center; border-radius:15px; color:#fff; background:#23865a; font-size:22px; font-weight:900; }
.api-credential-once small { font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.7px; }
.api-credential-once h2 { margin:5px 0; font-family:Georgia,serif; font-size:25px; font-weight:500; }
.api-credential-once p { margin:0 0 10px; color:#4f6c60; font-size:10px; }
.api-credential-once code { display:block; overflow-wrap:anywhere; border-radius:10px; padding:11px 13px; color:#063b29; background:#fff; font-size:13px; font-weight:800; user-select:all; }
.api-integration-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:20px; margin-bottom:22px; }
.api-config-card form { display:grid; gap:13px; padding:20px; }
.api-config-card form>label { display:flex; flex-direction:column; gap:7px; font-size:9px; font-weight:900; }
.api-config-card form>label small { color:#6b7e8d; font-size:8px; font-weight:500; line-height:1.45; }
.api-doc-card { padding-bottom:20px; }
.api-doc-card ol { display:grid; gap:12px; margin:4px 20px 15px; padding:0; list-style:none; counter-reset:api-step; }
.api-doc-card li { counter-increment:api-step; display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:9px; border-radius:11px; padding:12px; background:#f0f7fc; font-size:9px; }
.api-doc-card li:before { content:counter(api-step); width:24px; height:24px; display:grid; place-items:center; border-radius:8px; color:#fff; background:#0c72bc; font-weight:900; }
.api-doc-card code { overflow-wrap:anywhere; color:#064a7e; font-size:9px; }
.api-minimal-note { margin:0 20px; border-left:3px solid #2b8bd0; padding:11px 13px; color:#526c7e; background:#f7fbfe; font-size:9px; line-height:1.55; }
.api-client-list { display:grid; }
.api-client-list>article { display:grid; grid-template-columns:minmax(220px,1fr) minmax(420px,1.7fr) auto; align-items:center; gap:22px; padding:18px 24px; border-bottom:1px solid #e0e8ee; }
.api-client-list>article:last-child { border-bottom:0; }
.api-client-list h3 { margin:7px 0 3px; font-size:12px; }
.api-client-list p { margin:0; color:#647c8e; font-size:9px; }
.api-client-list dl { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:0; }
.api-client-list dt { color:#6c8191; font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.55px; }
.api-client-list dd { margin:4px 0 0; overflow-wrap:anywhere; font-size:9px; font-weight:800; }
.api-audit-row { grid-template-columns:1.05fr 1.35fr .65fr .75fr; }

@media(max-width:1050px) {
  .api-integration-grid { grid-template-columns:1fr; }
  .api-client-list>article { grid-template-columns:1fr auto; }
  .api-client-list dl { grid-column:1/-1; }
}
@media(max-width:760px) {
  .annual-method-heading { align-items:flex-start; flex-direction:column; }
  .annual-method-heading>small { max-width:none; text-align:left; }
  .annual-method-buttons { grid-template-columns:1fr; }
  .yappy-upload { grid-template-columns:34px 1fr; }
  .yappy-upload>i { grid-column:2; }
  .payment-period-controls .btn { width:100%; }
  .payment-history-panel { margin-inline:8px; overflow-x:auto; }
  .payment-history-heading { position:sticky; left:0; }
  .api-credential-once { grid-template-columns:1fr; }
  .api-client-list>article { grid-template-columns:1fr; }
  .api-client-list dl { grid-template-columns:1fr 1fr; }
  .api-client-list form,.api-client-list .btn { width:100%; }
}
