:root{--ff-navy:#0D1E46;--ff-indigo:#5367e8;--ff-indigo-soft:#eef0ff;--ff-navy-tint:#9DB8FF;--ff-green:#137a5a;--ff-green-soft:#e8f7f1;--ff-ink:#17203b;--ff-muted:#6d7489;--ff-line:#e4e7ef;--ff-surface:#fff;--ff-bg:#f5f6fa;--ff-danger:#b44343;--ff-shadow:0 18px 48px rgba(28,35,61,.09);--ff-font-body:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--ff-font-display:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-family:var(--ff-font-body);color:var(--ff-ink)}
*{box-sizing:border-box}
html:root{background:var(--ff-bg);margin-top:0!important;scroll-behavior:smooth}
body.ff-body{background:var(--ff-bg);color:var(--ff-ink);font-family:var(--ff-font-body)!important;margin:0;min-height:100vh}
.ff-center-page .fjxp-burbuja,.ff-public-form-page .fjxp-burbuja{display:none!important}
.screen-reader-text{clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}
a{color:inherit}
button,input,select,textarea{font:inherit}
h1,h2,h3,h4,legend,.ff-brand,.ff-button{font-family:var(--ff-font-display)}
[hidden]{display:none!important}
.ff-eyebrow,.mr-kicker{color:var(--ff-indigo);font-size:11px;font-weight:800;letter-spacing:.14em;margin:0 0 6px;text-transform:uppercase}
.ff-button{align-items:center;background:var(--ff-navy);border:1px solid var(--ff-navy);border-radius:11px;color:#fff;display:inline-flex;font-size:13px;font-weight:750;gap:8px;justify-content:center;min-height:42px;padding:9px 15px;text-decoration:none;transition:.18s ease}
.ff-button:hover{box-shadow:0 8px 20px rgba(16,27,63,.16);transform:translateY(-1px)}
.ff-button-secondary{background:#fff;border-color:var(--ff-line);color:var(--ff-ink)}

/* Centro */
.ff-app-shell{display:block;min-height:100vh;padding-left:252px}
.ff-sidebar{background:var(--ff-navy);color:#fff;display:flex;flex-direction:column;height:100dvh;inset:0 auto 0 0;overflow-y:auto;padding:24px 15px;position:fixed;width:252px;z-index:30}
.ff-brand{align-items:center;display:flex;gap:11px;margin:0 9px 34px;text-decoration:none}
.ff-brand-mark{align-items:center;background:linear-gradient(145deg,#274B8B,#1E3A8A);border-radius:12px;color:#fff;display:inline-flex;font-family:Georgia,serif;font-size:25px;font-weight:700;height:42px;justify-content:center;box-shadow:inset 0 0 0 1px #ffffff28;width:42px}
.ff-brand span:last-child{display:grid;line-height:1.1}.ff-brand strong{font-size:14px;letter-spacing:.16em}.ff-brand small{color:#aab2cf;font-size:12px;margin-top:4px}
.ff-nav-label{color:#818caa;font-size:10px;font-weight:800;letter-spacing:.13em;margin:22px 11px 8px;text-transform:uppercase}
.ff-sidebar nav{display:grid;gap:4px}
.ff-sidebar nav a{align-items:center;border-radius:10px;color:#c6cce0;display:grid;font-size:13px;font-weight:650;gap:10px;grid-template-columns:24px 1fr auto;min-height:42px;padding:8px 11px;text-decoration:none;transition:.18s ease}
.ff-sidebar nav a>span{align-items:center;color:#98a3c3;display:flex;font-size:16px;height:22px;justify-content:center}
.ff-sidebar nav a>small{background:#ffffff12;border-radius:999px;font-size:10px;padding:3px 7px}
.ff-sidebar nav a:hover,.ff-sidebar nav a[aria-current=page]{background:#ffffff12;color:#fff}
.ff-sidebar nav a[aria-current=page]{box-shadow:inset 3px 0 var(--ff-navy-tint)}
.ff-sidebar nav a[aria-current=page]>span{color:var(--ff-navy-tint)}
.ff-form-nav{align-items:center;background:#ffffff0a;border:1px solid #ffffff12;border-radius:12px;color:#fff;display:grid;gap:9px;grid-template-columns:34px 1fr auto;margin:2px 3px;padding:10px;text-decoration:none}
.ff-form-nav>span:first-child{align-items:center;background:#ffffff12;border-radius:9px;color:var(--ff-navy-tint);display:flex;font-size:10px;font-weight:800;height:34px;justify-content:center}
.ff-form-nav>span:nth-child(2){display:grid}.ff-form-nav strong{font-size:12px}.ff-form-nav small{color:#929dbd;font-size:10px;margin-top:3px}.ff-form-nav i{color:#8e98b6;font-style:normal}
.ff-workspace-nav{background:linear-gradient(135deg,#ffffff12,#ffffff07);border-color:#ffffff20}.ff-workspace-nav>span:first-child{background:linear-gradient(145deg,#274B8B,#1E3A8A);color:#fff;font-family:Georgia,serif}.ff-workspace-nav:hover{background:#ffffff16}
.ff-sidebar-spacer{flex:1}
.ff-privacy-card{align-items:flex-start;background:#ffffff0b;border:1px solid #ffffff14;border-radius:12px;color:#b8c0d8;display:flex;font-size:11px;gap:9px;margin:16px 3px;padding:12px}
.ff-privacy-card>span{color:#68caa9;font-size:17px}.ff-privacy-card strong{color:#ecf0fa;display:block;font-size:11px}.ff-privacy-card p{line-height:1.45;margin:4px 0 0}
.ff-user{align-items:center;border-top:1px solid #ffffff10;display:grid;gap:9px;grid-template-columns:32px 1fr;margin:0 3px;padding:14px 5px 0;text-decoration:none}
.ff-user>span:first-child{align-items:center;background:#6677df;border-radius:50%;display:flex;font-size:12px;font-weight:800;height:32px;justify-content:center}.ff-user>span:last-child{display:grid}.ff-user strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-user small{color:#8e98b6;font-size:10px;margin-top:2px}
.ff-main-shell{min-height:100vh;min-width:0}
.ff-topbar{align-items:center;background:#fffffff2;border-bottom:1px solid var(--ff-line);display:flex;gap:20px;justify-content:space-between;min-height:82px;padding:15px clamp(24px,4vw,54px);position:sticky;top:0;z-index:20;backdrop-filter:blur(15px)}
.ff-topbar h1{font-size:17px;line-height:1.2;margin:0}.ff-topbar .ff-eyebrow{font-size:9px;margin-bottom:4px}.ff-top-actions{display:flex;gap:9px}.ff-menu-button{background:none;border:0;display:none;padding:8px}.ff-menu-button>span:not(.screen-reader-text){background:var(--ff-navy);display:block;height:2px;margin:4px;width:20px}
.ff-content{margin:0 auto;max-width:1500px;padding:38px clamp(24px,4vw,54px) 70px}
.ff-section-head{align-items:flex-start;display:flex;gap:24px;justify-content:space-between;margin-bottom:25px}.ff-section-head h2{font-size:clamp(24px,2.5vw,34px);letter-spacing:-.025em;line-height:1.15;margin:0}.ff-section-head>div>p:last-child{color:var(--ff-muted);font-size:14px;margin:9px 0 0}.ff-live-pill,.ff-count-pill{align-items:center;background:#fff;border:1px solid var(--ff-line);border-radius:999px;color:var(--ff-muted);display:flex;font-size:11px;font-weight:700;gap:7px;padding:8px 12px;white-space:nowrap}.ff-live-pill i{background:#38ad79;border-radius:50%;box-shadow:0 0 0 4px #dff5eb;height:7px;width:7px}
.ff-kpi-grid{display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin-bottom:18px}.ff-kpi{background:#fff;border:1px solid var(--ff-line);border-radius:15px;box-shadow:0 6px 18px rgba(27,34,58,.035);display:grid;min-height:138px;padding:20px;position:relative;overflow:hidden}.ff-kpi:after{background:var(--accent);border-radius:999px;content:"";height:7px;opacity:.85;position:absolute;right:-24px;top:22px;transform:rotate(-35deg);width:78px}.ff-kpi>span{color:var(--ff-muted);font-size:11px;font-weight:750;text-transform:uppercase}.ff-kpi>strong{font-size:31px;letter-spacing:-.03em;margin-top:10px}.ff-kpi>small{color:#9298a9;font-size:11px;margin-top:4px}.ff-kpi-indigo{--accent:#6678ed}.ff-kpi-green{--accent:#3ca77d}.ff-kpi-navy{--accent:#274B8B}.ff-kpi-sky{--accent:#5a9bd5}
.ff-dashboard-grid{display:grid;gap:17px;grid-template-columns:1.3fr .7fr}.ff-card{background:#fff;border:1px solid var(--ff-line);border-radius:16px;box-shadow:0 8px 24px rgba(28,35,61,.035);padding:22px}.ff-card-wide{grid-row:span 2}.ff-card-head{align-items:flex-start;display:flex;gap:15px;justify-content:space-between;margin-bottom:19px}.ff-card-head h3{font-size:17px;line-height:1.25;margin:0}.ff-card-head>a{color:var(--ff-indigo);font-size:11px;font-weight:750;text-decoration:none}.ff-card-head>span{align-items:center;background:var(--ff-indigo-soft);border-radius:999px;color:var(--ff-indigo);display:flex;font-size:11px;font-weight:800;height:27px;justify-content:center;min-width:27px;padding:0 8px}
.ff-signal-columns{display:grid;gap:25px;grid-template-columns:1fr 1fr}.ff-signal-columns h4{color:var(--ff-muted);font-size:10px;letter-spacing:.11em;margin:0 0 10px;text-transform:uppercase}.ff-signal-row{align-items:center;border-top:1px solid #eff0f4;display:grid;gap:10px;grid-template-columns:8px 1fr auto;padding:13px 0}.ff-signal-row p{font-size:12px;line-height:1.4;margin:0}.ff-signal-row p small{color:#9298aa;display:block;font-size:10px;margin-top:3px}.ff-signal-row>strong{font-size:18px}.ff-dot{border-radius:50%;height:7px;width:7px}.ff-dot-positive{background:#3eac81}.ff-dot-attention{background:#d29b3d}
.ff-bar-list{display:grid;gap:14px}.ff-bar-list>div>p{align-items:center;display:flex;font-size:11px;gap:10px;justify-content:space-between;margin:0 0 6px}.ff-bar-list>div>p span{color:#555e76}.ff-bar-list>div>p strong{color:var(--ff-ink)}.ff-bar-list i{background:#eef0f5;border-radius:99px;display:block;height:6px;overflow:hidden}.ff-bar-list i span{background:linear-gradient(90deg,#596de9,#8391ed);border-radius:inherit;display:block;height:100%;min-width:2px}
.ff-integrity{align-items:baseline;display:flex;gap:9px;margin:4px 0 12px}.ff-integrity strong{font-size:35px}.ff-integrity span{color:var(--ff-muted);font-size:11px;max-width:120px}.ff-note{background:var(--ff-green-soft);border-radius:10px;color:#39705f;font-size:11px;line-height:1.5;margin:0;padding:11px}
.ff-question-list{display:grid;gap:13px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.ff-rating-card{background:#fff;border:1px solid var(--ff-line);border-radius:15px;padding:18px}.ff-rating-title{align-items:flex-start;display:flex;gap:15px;justify-content:space-between}.ff-rating-title h3{font-size:13px;line-height:1.4;margin:0}.ff-rating-title p{color:var(--ff-muted);font-size:10px;margin:5px 0 0}.ff-rating-title>strong{color:var(--ff-navy);font-size:25px;letter-spacing:-.04em;white-space:nowrap}.ff-rating-title>strong small{color:#9097aa;font-size:11px;font-weight:600;letter-spacing:0}.ff-distribution{display:grid;gap:6px;margin-top:16px}.ff-distribution>div{align-items:center;display:grid;font-size:10px;gap:7px;grid-template-columns:10px 1fr 18px}.ff-distribution i{background:#f0f1f5;border-radius:99px;height:5px;overflow:hidden}.ff-distribution i span{background:#6e7ee2;border-radius:inherit;display:block;height:100%;min-width:1px}.ff-distribution>div>strong{text-align:right}
.ff-choice-section{margin-top:17px}.ff-choice-grid,.ff-team-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.ff-choice-card,.ff-team-card{border:1px solid var(--ff-line);border-radius:13px;padding:16px}.ff-choice-card h4,.ff-team-card h4{font-size:12px;line-height:1.4;margin:0 0 14px}.ff-choice-card .ff-bar-list{gap:9px}.ff-choice-card .ff-bar-list>div>p{font-size:10px;margin-bottom:4px}.ff-choice-card .ff-bar-list i{height:4px}.ff-team-card>div{align-items:center;border-top:1px solid #eff0f4;display:flex;font-size:11px;gap:10px;justify-content:space-between;padding:10px 0}.ff-team-card>div strong{font-size:15px}.ff-team-card>div small{color:var(--ff-muted);font-size:9px}
.ff-comment-groups{display:grid;gap:17px}.ff-comment-group{padding:22px}.ff-comment-grid{display:grid;gap:11px;grid-template-columns:repeat(2,minmax(0,1fr))}.ff-comment-grid article{background:#f8f9fc;border:1px solid #eceef4;border-radius:12px;padding:15px}.ff-comment-grid p{font-family:var(--ff-font-body);font-size:14px;line-height:1.65;margin:0}
.ff-response-list{display:grid;gap:10px}.ff-response-card{background:#fff;border:1px solid var(--ff-line);border-radius:14px;overflow:hidden}.ff-response-card summary{align-items:center;cursor:pointer;display:grid;gap:12px;grid-template-columns:38px 1fr auto;list-style:none;min-height:70px;padding:12px 18px}.ff-response-card summary::-webkit-details-marker{display:none}.ff-response-card summary>span:nth-child(2){display:grid}.ff-response-card summary strong{font-size:12px}.ff-response-card summary small{color:var(--ff-muted);font-size:10px;margin-top:4px}.ff-response-card summary>i{color:#9299ac;font-size:19px;font-style:normal;transition:.2s}.ff-response-card[open] summary>i{transform:rotate(180deg)}.ff-response-number{align-items:center;background:var(--ff-indigo-soft);border-radius:9px;color:var(--ff-indigo);display:flex;font-size:11px;font-weight:800;height:38px;justify-content:center}.ff-response-body{border-top:1px solid var(--ff-line);padding:22px}.ff-answer-grid{display:grid;gap:1px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.ff-answer-grid>div{background:#f8f9fc;border-radius:8px;margin:3px;padding:12px}.ff-answer-grid .ff-answer-wide{grid-column:1/-1}.ff-answer-grid dt{color:var(--ff-muted);font-size:10px;line-height:1.4}.ff-answer-grid dd{font-size:12px;font-weight:650;line-height:1.5;margin:5px 0 0}.ff-empty{align-items:center;background:#fff;border:1px dashed #cfd3df;border-radius:15px;color:var(--ff-muted);display:flex;flex-direction:column;gap:8px;justify-content:center;min-height:180px;padding:30px;text-align:center}.ff-empty span{color:#9ba3b9;font-size:25px}.ff-empty p{font-size:13px;margin:0}

/* Página pública del formulario */
.ff-public-form-page{background:radial-gradient(circle at 85% 0,#e8ebff 0,transparent 31%),linear-gradient(180deg,#f7f8fc,#eef1f7)}
.mr-muncamp-public-card{background:#fff;border:1px solid #e4e7ef;border-radius:24px;box-shadow:var(--ff-shadow);margin:36px auto;max-width:980px;overflow:hidden}
.mr-form-hero{align-items:center;background:linear-gradient(122deg,#0D1E46 0%,#182b61 100%);color:#fff;display:grid;gap:24px;grid-template-columns:118px 1fr auto;padding:32px 38px;position:relative;overflow:hidden}.mr-form-hero:after{border:1px solid #ffffff13;border-radius:50%;content:"";height:260px;position:absolute;right:-70px;top:-110px;width:260px}.mr-form-logo{background:#fff;border-radius:15px;height:105px;object-fit:contain;padding:6px;width:118px;z-index:1}.mr-form-hero>div{z-index:1}.mr-form-hero h1{color:#fff;font-size:34px;letter-spacing:-.035em;line-height:1.08;margin:0}.mr-form-hero p:not(.mr-kicker){color:#c1c9e0;font-size:14px;margin:9px 0 0}.mr-form-time{background:#ffffff10;border:1px solid #ffffff1f;border-radius:14px;color:#c8d0e5;display:block;font-size:10px;padding:11px 14px;text-align:center;z-index:1}.mr-form-time strong{color:#fff;display:block;font-size:21px}
.mr-muncamp-feedback-intro{display:grid;gap:12px;grid-template-columns:1.3fr .85fr;margin:25px 30px 4px}.mr-muncamp-feedback-intro>div{border:1px solid var(--ff-line);border-radius:14px;padding:16px 18px}.mr-muncamp-intro-main{background:#f5f6ff;grid-row:span 2}.mr-muncamp-privacy{background:#ecf8f3}.mr-muncamp-sensitive{background:#fff8ea}.mr-muncamp-feedback-intro span,.mr-muncamp-feedback-intro strong{font-size:13px}.mr-muncamp-feedback-intro p{color:#626a7f;font-size:12px;line-height:1.65;margin:6px 0 0}
.mr-eventfb-form{display:grid;gap:13px;padding:18px 30px 34px}.mr-eventfb-area{background:#fff;border:1px solid var(--ff-line);border-radius:15px;margin:0;padding:18px}.mr-eventfb-area legend{color:var(--ff-navy);font-size:15px;font-weight:800;padding:0 6px}.mr-muted{color:var(--ff-muted);font-size:12px;line-height:1.55}.mr-form-progress{background:#ffffffee;border:1px solid var(--ff-line);border-radius:12px;box-shadow:0 8px 20px rgba(20,27,49,.06);padding:10px 14px;position:sticky;top:8px;z-index:8;backdrop-filter:blur(10px)}.mr-form-progress>div{display:flex;font-size:10px;font-weight:750;justify-content:space-between;margin-bottom:7px;text-transform:uppercase}.mr-form-progress>div strong{color:var(--ff-indigo)}.mr-form-progress>i{background:#e9ebf2;border-radius:99px;display:block;height:5px;overflow:hidden}.mr-form-progress>i>span{background:linear-gradient(90deg,#5367e8,#8a98ef);display:block;height:100%;transition:width .25s ease}
.mr-form-question{padding:12px 0}.mr-form-question+.mr-form-question{border-top:1px solid #eef0f4}.mr-form-question>p{font-size:13px;font-weight:650;line-height:1.45;margin:0 0 10px}.mr-form-scale{align-items:center;display:flex;flex-wrap:wrap;gap:7px}.mr-form-scale>span{color:var(--ff-muted);font-size:10px}.mr-muncamp-scale-max{margin-left:auto}.mr-eventfb-score{cursor:pointer;position:relative}.mr-eventfb-score input,.mr-muncamp-choice-grid input,.mr-muncamp-team-picks input{opacity:0;position:absolute;width:1px}.mr-eventfb-score span{align-items:center;background:#f7f8fb;border:1px solid #dfe2eb;border-radius:9px;display:flex;font-size:12px;font-weight:750;height:40px;justify-content:center;min-width:40px;transition:.15s}.mr-eventfb-score input:focus-visible+span,.mr-muncamp-choice-grid input:focus-visible+span,.mr-muncamp-team-picks input:focus-visible+span{outline:3px solid #9da8f3;outline-offset:2px}.mr-eventfb-score input:checked+span,.mr-muncamp-choice-grid input:checked+span,.mr-muncamp-team-picks input:checked+span{background:var(--ff-navy);border-color:var(--ff-navy);color:#fff;box-shadow:0 5px 12px #0D1E462b}.mr-muncamp-na{margin-left:4px}.mr-muncamp-na span{border-radius:999px;color:var(--ff-muted);padding:0 13px;white-space:nowrap}
.mr-muncamp-choice-grid,.mr-muncamp-team-picks{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.mr-muncamp-choice-grid label,.mr-muncamp-team-picks label{cursor:pointer;position:relative}.mr-muncamp-choice-grid label>span,.mr-muncamp-team-picks label>span{align-items:center;background:#f8f9fc;border:1px solid #dfe2eb;border-radius:10px;display:flex;font-size:12px;justify-content:center;line-height:1.35;min-height:44px;padding:8px;text-align:center}.mr-muncamp-choice--recommend-score .mr-muncamp-choice-grid{grid-template-columns:repeat(11,1fr)}.mr-muncamp-choice--future-participation .mr-muncamp-choice-grid{grid-template-columns:repeat(3,1fr)}.mr-muncamp-nps-legend{color:var(--ff-muted);display:flex;font-size:9px;justify-content:space-between;margin-top:6px}.mr-eventfb-open{display:grid;font-size:12px;font-weight:650;gap:7px;margin-top:14px}.mr-eventfb-open textarea,.mr-eventfb-open select{background:#fbfcfe;border:1px solid #d9dde7;border-radius:10px;color:var(--ff-ink);min-height:44px;padding:11px;width:100%}.mr-eventfb-open textarea{min-height:105px;resize:vertical}.mr-eventfb-open textarea:focus,.mr-eventfb-open select:focus{border-color:#7888ec;box-shadow:0 0 0 3px #5367e81c;outline:0}.mr-muncamp-team-block{background:#fafbfe;margin-top:12px}.mr-muncamp-team-block h4{font-size:13px;margin:0 0 5px}.mr-muncamp-optional{border:1px solid var(--ff-line);border-radius:15px;padding:0}.mr-muncamp-optional>summary{cursor:pointer;font-size:13px;font-weight:750;list-style:none;padding:17px}.mr-muncamp-optional>summary:after{content:"+";float:right;font-size:18px}.mr-muncamp-optional[open]>summary:after{content:"−"}.mr-muncamp-optional>.mr-eventfb-area{border-width:1px 0 0;border-radius:0}.mr-muncamp-ack{align-items:flex-start;background:#f5f6ff;display:flex;font-size:12px;gap:9px;line-height:1.5}.mr-muncamp-ack input{accent-color:var(--ff-indigo);height:18px;margin-top:1px;width:18px}.mr-form-review{background:#edf8f3;border:1px solid #cceadd;border-radius:14px;padding:17px}.mr-form-review h3{font-size:15px;margin:0}.mr-form-review p,.mr-form-review li{color:#516b62;font-size:11px;line-height:1.5}.mr-form-actions{display:flex;gap:9px;justify-content:flex-end}.mr-form-actions button{background:var(--ff-navy);border:0;border-radius:11px;color:#fff;cursor:pointer;font-size:13px;font-weight:750;min-height:45px;padding:10px 20px}.mr-form-actions button:disabled{opacity:.6}.mr-form-error{background:#fff0f0;border:1px solid #f0caca;border-radius:12px;color:var(--ff-danger);font-size:13px;margin:18px 30px 0;padding:13px}.mr-form-success{background:var(--ff-green-soft);border:1px solid #bde2d3;border-radius:16px;margin:28px;padding:24px}.mr-form-success strong{font-size:20px}.mr-form-success p{color:#3d6b5b;line-height:1.6}.mr-form-success a{color:var(--ff-green);font-weight:750}.mr-app-empty{border-radius:14px;margin:22px;padding:20px}.mr-app-empty--warning{background:#fff6e7;border:1px solid #ecd5a9}
.ff-state-page{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:24px}.ff-state-card{background:#fff;border:1px solid var(--ff-line);border-radius:20px;box-shadow:var(--ff-shadow);max-width:500px;padding:38px;text-align:center}.ff-state-card .ff-brand-mark{margin-bottom:18px}.ff-state-card h1{font-size:28px;margin:0}.ff-state-card p:not(.ff-eyebrow){color:var(--ff-muted);line-height:1.6;margin:14px 0 24px}

/* Contraste AA en modo normal (auditoría visual oct-2026, formularios-local-g01-02 y g02-04). Las
   correcciones de abajo existían solo dentro de @media(prefers-contrast:more); aquí se aplican
   siempre. Se cambian los SELECTORES y no el token --ff-muted, que pasa sobre blanco (4,66:1) y
   se comprueba literalmente en pruebas/estatico.php. #555e76 = 6,46:1 sobre #fff y 5,99:1 sobre
   --ff-bg; #3f52d6 = 5,74:1 sobre --ff-bg y 5,47:1 sobre --ff-indigo-soft (con --ff-indigo daban
   4,35:1 y 4,15:1). pruebas/auditoria-visual-oct.php calcula las razones desde este archivo. */
.ff-eyebrow{color:#3f52d6}
.ff-section-head>div>p:last-child,.mr-muted{color:#555e76}
.ff-kpi>small,.ff-signal-row p small,.ff-rating-title>strong small,.ff-response-card summary>i,.ff-empty span{color:#555e76}
.ff-card-head>span{color:#3f52d6}

/* Enlace de salto de la plantilla propia (se muestra solo con el foco del teclado) y destino del salto. */
.ff-skip{background:var(--ff-navy);border-radius:0 0 11px 0;color:#fff;font-size:14px;font-weight:700;left:0;padding:10px 16px;position:absolute;text-decoration:none;top:0;transform:translateY(-110%);z-index:100}
.ff-skip:focus{outline:3px solid #9da8f3;outline-offset:2px;transform:none}
main[tabindex="-1"]:focus{outline:none}

/* Integración de equipos con la marca del Centro (auditoría visual oct-2026, formularios-local-g02-05).
   Antes: un <style> en línea en views/integration-form.php con azul genérico y colores literales
   fuera de los tokens, esquinas rectas y cuerpo heredado del tema. Ahora: tokens navy/dorado/línea,
   radios de 11–16px, Inter 16px/400 y el sello F del Centro. El bloque va con alcance .ff-integration
   para no mover nada del resto de vistas. */
.ff-integration{color:var(--ff-ink);font-size:16px;font-weight:400;line-height:1.55;margin:38px auto;max-width:900px;padding:0 20px}
.ff-integration__head{margin-bottom:24px}
.ff-integration__brand{align-items:center;color:var(--ff-navy);display:flex;gap:11px;margin:0 0 22px}
.ff-integration__brand>span:last-child{display:grid;line-height:1.2}
.ff-integration__brand strong{font-size:16px;letter-spacing:.02em}
.ff-integration__brand small{color:#555e76;font-size:12px}
.ff-integration h1{color:var(--ff-navy);font-size:clamp(1.9rem,5vw,3rem);font-weight:800;letter-spacing:-.025em;line-height:1.12;margin:.25rem 0 .5rem}
.ff-integration__head p:last-child{color:#555e76;margin:0}
.ff-integration__card{background:var(--ff-surface);border:1px solid var(--ff-line);border-radius:16px;box-shadow:var(--ff-shadow);margin:18px 0;padding:28px}
.ff-integration__card legend{color:var(--ff-navy);font-size:1.35rem;font-weight:800;padding:0 4px}
.ff-integration label{display:block;font-weight:650;margin:16px 0}
.ff-integration input:not([type=checkbox]):not([type=radio]),.ff-integration select,.ff-integration textarea{background:#fff;border:1px solid var(--ff-muted);border-radius:11px;display:block;font:inherit;font-weight:400;margin-top:7px;padding:11px;width:100%}
.ff-integration textarea{min-height:100px}
.ff-integration__row,.ff-integration__choices{display:grid;gap:14px;grid-template-columns:1fr 1fr}
.ff-integration__choices label{background:#f8f9fc;border:1px solid var(--ff-line);border-radius:11px;font-weight:600;margin:0;padding:14px}
.ff-integration__choices label:has(input:checked){background:var(--ff-indigo-soft);border-color:var(--ff-navy);box-shadow:inset 0 0 0 1px var(--ff-navy)}
.ff-integration__choices input{margin-right:8px}
.ff-integration__steps{display:flex;gap:18px;list-style:none;margin:0;overflow:auto;padding:0 0 4px}
.ff-integration__steps li{box-shadow:inset 0 -3px 0 transparent;color:#555e76;font-weight:600;padding-bottom:7px;white-space:nowrap}
.ff-integration__steps .is-active{box-shadow:inset 0 -3px 0 var(--ff-navy);color:var(--ff-navy);font-weight:800}
.ff-integration__actions{display:flex;gap:12px;justify-content:space-between}
.ff-integration button,.ff-integration__button{align-items:center;background:var(--ff-navy);border:1px solid var(--ff-navy);border-radius:11px;color:#fff;cursor:pointer;display:inline-flex;font:inherit;font-weight:750;justify-content:center;min-height:44px;padding:11px 18px;text-decoration:none;transition:.18s ease}
.ff-integration button:hover,.ff-integration__button:hover{box-shadow:0 8px 20px rgba(16,27,63,.16);transform:translateY(-1px)}
.ff-integration button.ff-integration__secondary{background:#fff;border-color:var(--ff-line);color:var(--ff-ink)}
.ff-integration :focus-visible{outline:3px solid #9da8f3;outline-offset:2px}
.ff-integration__check{font-weight:500!important}
.ff-integration .ff-required{color:var(--ff-danger);font-weight:800}
.ff-integration__required-note{color:#555e76;font-size:.92rem;margin:0 0 12px}
@media(max-width:620px){.ff-integration__row,.ff-integration__choices{grid-template-columns:1fr}.ff-integration__card{padding:20px}}
@media(prefers-contrast:more){.ff-integration__card,.ff-integration__choices label{border-color:#555e76}}

@media(max-width:1050px){.ff-kpi-grid{grid-template-columns:repeat(2,1fr)}.ff-question-list{grid-template-columns:1fr}.ff-choice-grid,.ff-team-grid{grid-template-columns:1fr}}
@media(max-width:780px){.ff-app-shell{display:block}.ff-sidebar{box-shadow:15px 0 45px #0a112c40;left:0;position:fixed;transform:translateX(-102%);transition:transform .24s ease;width:270px}.ff-sidebar.is-open{transform:translateX(0)}.ff-scrim{background:#10162f7d;inset:0;position:fixed;z-index:25}.ff-menu-button{display:block}.ff-topbar{gap:10px;padding:12px 16px}.ff-topbar h1{font-size:14px}.ff-top-actions .ff-button-secondary{display:none}.ff-top-actions .ff-button{font-size:0;min-height:38px;padding:8px 11px}.ff-top-actions .ff-button span{font-size:16px}.ff-content{padding:27px 16px 55px}.ff-dashboard-grid{grid-template-columns:1fr}.ff-card-wide{grid-row:auto}.ff-comment-grid{grid-template-columns:1fr}.ff-answer-grid{grid-template-columns:1fr}.ff-answer-grid .ff-answer-wide{grid-column:auto}.ff-section-head{align-items:flex-start;flex-direction:column;gap:12px}.ff-kpi{min-height:125px;padding:17px}.ff-kpi>strong{font-size:26px}.ff-signal-columns{grid-template-columns:1fr}.mr-muncamp-public-card{border-radius:0;margin:0;min-height:100vh}.mr-form-hero{grid-template-columns:82px 1fr;padding:24px 18px}.mr-form-logo{height:76px;width:82px}.mr-form-hero h1{font-size:25px}.mr-form-time{grid-column:1/-1;justify-self:start}.mr-form-time strong{display:inline;font-size:13px;margin-right:4px}.mr-muncamp-feedback-intro{grid-template-columns:1fr;margin:17px 14px 2px}.mr-muncamp-intro-main{grid-row:auto}.mr-eventfb-form{padding:13px 14px 26px}.mr-muncamp-choice-grid,.mr-muncamp-team-picks{grid-template-columns:1fr}.mr-muncamp-choice--perspective .mr-muncamp-choice-grid{grid-template-columns:1fr 1fr}.mr-muncamp-choice--recommend-score .mr-muncamp-choice-grid{grid-template-columns:repeat(6,1fr)}.mr-muncamp-choice--future-participation .mr-muncamp-choice-grid{grid-template-columns:repeat(3,1fr)}.mr-form-scale{display:grid;gap:7px;grid-template-columns:repeat(5,minmax(40px,1fr));max-width:340px}.mr-form-scale>.mr-muncamp-scale-min,.mr-form-scale>.mr-muncamp-scale-max{color:#555e76;font-size:12px;grid-row:2;line-height:1.3}.mr-form-scale>.mr-muncamp-scale-min{grid-column:1/-1;justify-self:start;max-width:48%}.mr-form-scale>.mr-muncamp-scale-max{grid-column:1/-1;justify-self:end;margin-left:0;max-width:48%;text-align:right}.mr-form-scale>.mr-muncamp-na{grid-column:1/-1;grid-row:3;justify-self:start}.mr-muncamp-na{margin-left:0}.mr-form-actions{display:grid}.mr-form-actions button{width:100%}.mr-form-error{margin:14px}.mr-form-success{margin:18px}}
@media(max-width:440px){.ff-kpi-grid{grid-template-columns:1fr 1fr;gap:9px}.ff-kpi{min-height:116px;padding:14px}.ff-kpi>span{font-size:9px}.ff-kpi>strong{font-size:23px}.ff-kpi>small{font-size:9px}.ff-card{padding:17px}.ff-topbar .ff-eyebrow{display:none}.mr-muncamp-choice--perspective .mr-muncamp-choice-grid{grid-template-columns:1fr}.mr-eventfb-area{padding:15px}.mr-form-hero{grid-template-columns:64px 1fr}.mr-form-logo{height:60px;width:64px}.mr-form-hero h1{font-size:22px}}
@media(max-width:780px){.ff-app-shell{padding-left:0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Revisión y errores accesibles: alcance exclusivo del formulario. */
.mr-field-error{color:#9b2028;font-size:14px;line-height:1.5;margin:8px 0}
.mr-form-review dt{font-size:14px;font-weight:750;margin-top:14px}
.mr-form-review dd{color:#27483b;font-size:14px;line-height:1.5;margin:4px 0;overflow-wrap:anywhere;white-space:pre-wrap}
.mr-form-actions button:focus-visible,.mr-muncamp-optional>summary:focus-visible{outline:3px solid #435bd1;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.mr-form-progress>i>span{transition:none}}

/* 1.10.0 · Fase 3 del rediseño de formularios (informe de diseño del 19-oct-2026, problema 10; fases 1 y 2 en
   MUN Revolution OS 3.17–3.19). Encuesta pública: una escala de cuatro tamaños (14 · 16 · 20 · 32), la paleta de
   funajit.org (fjxp-tokens.css: navy #0A1628/#0D1E46, texto #3D4A66/#4B5A75, fondo #F6F8FC, borde #E5E9EF, navy medio
   #1E3A8A; no el azul de enlace, que 1.8.2 retiró de esta hoja) en lugar del índigo #5367e8 y de las tarjetas lavanda, menta y crema; la leyenda pasa a título de
   sección (no corta el borde de la caja); las opciones llevan indicador de radio o casilla y van alineadas a la
   izquierda; «Mucho» queda pegado a la escala y «No aplica» aparte; en móvil el 0–10 cabe en una fila.
   Va antes de DIS-13 para que el contraste reforzado y los colores forzados sigan ganando. */
.mr-muncamp-public-card,.ff-cf-card{--ff-indigo:#1E3A8A;--ff-indigo-soft:#EEF3FC;--ff-ink:#0A1628;--ff-muted:#4B5A75;--ff-line:#E5E9EF}
.ff-public-form-page{background:#F6F8FC}
.mr-form-hero .mr-kicker,.ff-cf-brand{color:#DCE3F2;font-size:14px;font-weight:600;letter-spacing:.02em;text-transform:none}
.mr-form-hero h1{font-size:32px;letter-spacing:-.01em;line-height:1.15}
.mr-form-time{font-size:14px}
.mr-muncamp-feedback-intro>div{background:#fff;border-color:var(--ff-line)}
.mr-muncamp-privacy,.mr-muncamp-sensitive{background:#F6F8FC}
.mr-muncamp-feedback-intro span,.mr-muncamp-feedback-intro strong{font-size:16px}
.mr-muncamp-feedback-intro p{color:#3D4A66;font-size:14px;line-height:1.6}
.mr-eventfb-form{gap:16px}
fieldset.mr-eventfb-area{padding:20px}
fieldset.mr-eventfb-area>legend{color:var(--ff-navy);float:left;font-size:20px;font-weight:700;line-height:1.3;margin:0 0 8px;padding:0;width:100%}
fieldset.mr-eventfb-area>legend+*{clear:both}
.mr-muted{color:#4B5A75;font-size:14px}
.mr-form-progress>div{font-size:14px;font-weight:600;text-transform:none}
.mr-form-progress>div strong{color:var(--ff-navy)}
.mr-form-progress>i>span{background:var(--ff-navy)}
.mr-form-question>p{font-size:16px;font-weight:600}
.mr-form-scale{gap:8px}
.mr-form-scale>span{color:#4B5A75;font-size:14px}
.mr-muncamp-scale-max{margin-left:0}
.mr-muncamp-na{margin-left:auto}
.mr-eventfb-score span{background:#fff;border-color:#6B7487;font-size:16px;font-weight:600;height:44px;min-width:44px}
.mr-muncamp-na span{color:#3D4A66;font-size:14px}
.mr-muncamp-choice-grid label>span,.mr-muncamp-team-picks label>span{background:#fff;border-color:#6B7487;font-size:16px;min-height:48px}
.mr-muncamp-choice:not(.mr-muncamp-choice--recommend-score) .mr-muncamp-choice-grid label>span,.mr-muncamp-team-picks label>span{gap:12px;justify-content:flex-start;padding:12px 16px;text-align:left}
.mr-muncamp-choice:not(.mr-muncamp-choice--recommend-score) .mr-muncamp-choice-grid label>span::before,.mr-muncamp-team-picks label>span::before{background:#fff;border:2px solid #6B7487;box-sizing:border-box;content:"";flex:0 0 20px;height:20px}
.mr-muncamp-choice-grid input[type=radio]+span::before{border-radius:50%}
.mr-muncamp-choice-grid input[type=checkbox]+span::before,.mr-muncamp-team-picks input+span::before{border-radius:5px}
.mr-muncamp-choice:not(.mr-muncamp-choice--recommend-score) .mr-muncamp-choice-grid input:checked+span,.mr-muncamp-team-picks input:checked+span{background:#EEF3FC;border-color:var(--ff-navy);box-shadow:inset 0 0 0 1px var(--ff-navy);color:var(--ff-ink)}
.mr-muncamp-choice-grid input[type=radio]:checked+span::before{background:radial-gradient(circle,var(--ff-navy) 0 5px,#fff 5.5px);border-color:var(--ff-navy)}
.mr-muncamp-choice-grid input[type=checkbox]:checked+span::before,.mr-muncamp-team-picks input:checked+span::before{background:var(--ff-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='white' stroke-width='2.2'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--ff-navy)}
.mr-muncamp-nps-legend{color:#4B5A75;font-size:14px}
.mr-eventfb-open{font-size:16px;font-weight:600;gap:8px}
.mr-eventfb-open textarea,.mr-eventfb-open select{background:#fff;border-color:#6B7487;font-size:16px;min-height:48px}
.mr-eventfb-open textarea:focus,.mr-eventfb-open select:focus{border-color:var(--ff-navy);box-shadow:0 0 0 3px #0D1E4633}
.mr-muncamp-team-block{background:#F6F8FC}
.mr-muncamp-team-block h4{font-size:16px}
.mr-muncamp-optional>summary{font-size:16px;min-height:48px}
.mr-muncamp-ack{background:#F6F8FC;font-size:14px}
.mr-muncamp-ack input{accent-color:var(--ff-navy);height:20px;width:20px}
.mr-form-review{background:#fff;border-color:var(--ff-line)}
.mr-form-review h3{font-size:20px}
.mr-form-review p,.mr-form-review li{color:#3D4A66;font-size:14px}
.mr-form-actions button{font-size:16px;font-weight:600;min-height:48px}
@media(max-width:780px){
  .mr-form-hero h1{font-size:26px}
  .mr-muncamp-choice--recommend-score .mr-muncamp-choice-grid{gap:4px;grid-template-columns:repeat(11,minmax(0,1fr))}
  .mr-muncamp-choice--recommend-score .mr-muncamp-choice-grid label>span{border-radius:8px;font-size:14px;min-height:44px;padding:0}
  .mr-muncamp-choice--future-participation .mr-muncamp-choice-grid{grid-template-columns:1fr}
  .mr-form-scale>.mr-muncamp-scale-min,.mr-form-scale>.mr-muncamp-scale-max{color:#4B5A75;font-size:14px}
}

/* DIS-13 · contraste reforzado y colores forzados. Hasta aquí la única hoja del plugin no tenía
   ni una consulta `prefers-contrast` ni `forced-colors`. Van al FINAL porque tienen que ganarle a
   todo lo anterior. Ratios con la fórmula de luminancia relativa de WCAG 2.1 y contra el fondo
   REAL de cada elemento; lo que ya pasaba no se toca ni se cuenta como arreglo.
   LO QUE FALLABA, MEDIDO:
   · EL FOCO DE LAS ESCALAS ERA EL AGUJERO GRANDE. En `.mr-eventfb-score`, `.mr-muncamp-choice-grid`
     y `.mr-muncamp-team-picks` el radio real es `opacity:0`, así que `outline:3px solid #9da8f3`
     sobre el `<span>` es el ÚNICO indicador de foco del formulario público: 2,2511:1 sobre #fff y
     2,1197:1 sobre el fondo propio del chip (#f7f8fb). SC 1.4.11 pide 3:1. Falla en los dos.
     No hay un solo color que gane en los dos estados: el chip marcado tiene fondo --ff-navy y
     cualquier navy desaparece encima. Por eso el anillo va en DOS capas, como en funajit-paginas:
       · trazo var(--ff-navy) #0D1E46 sobre #f7f8fb → 15,3143:1 (chip sin marcar)
       · halo #fff por fuera sobre --ff-navy        → 16,2632:1 (chip marcado)
     Siempre queda una de las dos capas visible.
   · Límites de control por debajo de 3:1 (SC 1.4.11): `.mr-eventfb-score span` y
     `.mr-muncamp-choice-grid label>span` borde #dfe2eb = 1,2950:1 sobre #fff y 1,2301:1 sobre
     #f8f9fc; `.mr-eventfb-open textarea,select` borde #d9dde7 = 1,3595:1 sobre #fff. Todos a
     var(--ff-navy) = 16,2632:1 y de 1px a 2px.
   · Texto pequeño por debajo del 4,5:1 de AA, todo sobre #fff: `.ff-kpi>small` #9298a9 = 2,8791:1,
     `.ff-signal-row p small` #9298aa = 2,8791:1, `.ff-rating-title>strong small` #9097aa =
     2,9195:1, `.ff-response-card summary>i` #9299ac = 2,8477:1 y `.ff-empty span` #9ba3b9 =
     2,5201:1 → #555e76 = 6,4636:1.
   · var(--ff-muted) #6d7489 da 4,6567:1 sobre #fff, que pasa, pero 4,3119:1 sobre --ff-bg #f5f6fa
     —el fondo REAL de `.ff-section-head` y `.mr-muted`—, que NO pasa. Se sube a #555e76 =
     5,9851:1 sobre #f5f6fa y 6,4636:1 sobre #fff. Se cambian los SELECTORES y no el token: el
     token se comprueba literalmente en pruebas/estatico.php («paleta y tipografía alineadas»).
   · `.ff-sidebar` NO estaba rota: sus grises van sobre --ff-navy y el peor (#8e98b6) da 5,6665:1.
     No se toca. */
@media (prefers-contrast: more) {
	.mr-eventfb-score input:focus-visible+span,.mr-muncamp-choice-grid input:focus-visible+span,.mr-muncamp-team-picks input:focus-visible+span{outline:3px solid var(--ff-navy)!important;outline-offset:2px!important;box-shadow:0 0 0 6px #fff!important}
	.mr-eventfb-score span,.mr-muncamp-choice-grid label>span,.mr-muncamp-team-picks label>span{border-width:2px;border-color:var(--ff-navy)}
	.mr-eventfb-open textarea,.mr-eventfb-open select{border-width:2px;border-color:var(--ff-navy)}
	.mr-eventfb-open textarea:focus,.mr-eventfb-open select:focus{outline:3px solid var(--ff-navy);outline-offset:2px;border-color:var(--ff-navy)}
	.ff-kpi>small,.ff-signal-row p small,.ff-rating-title>strong small,.ff-response-card summary>i,.ff-empty span{color:#555e76}
	.ff-section-head>div>p:last-child,.ff-live-pill,.ff-count-pill,.ff-kpi>span,.ff-signal-columns h4,.ff-integrity span,.ff-rating-title p,.ff-team-card>div small,.ff-response-card summary small,.ff-answer-grid dt,.ff-empty,.mr-muted,.mr-form-scale>span,.mr-muncamp-na span,.mr-muncamp-nps-legend,.ff-state-card p:not(.ff-eyebrow){color:#555e76}
	.ff-empty{border-color:#555e76}
	.ff-card,.ff-kpi,.ff-rating-card,.ff-choice-card,.ff-team-card,.ff-response-card,.ff-state-card,.mr-eventfb-area,.mr-muncamp-optional,.mr-muncamp-public-card{border-color:#555e76}
}

/* En el modo de colores forzados el navegador ANULA fondos, degradados y sombras: todo lo que hoy
   se distingue SOLO por color de fondo deja de verse. Este bloque no repinta —pone límites
   explícitos y se apoya en lo que el navegador no fuerza: grosor y estilo de trazo—.
   · `.mr-form-actions button` es `border:0` con relleno navy: sin borde deja de parecer un botón.
   · El chip MARCADO de las escalas se distingue solo por `background:var(--ff-navy)`; se
     reconstruye con contorno de 3px, que sobrevive a la paleta forzada.
   · `.ff-sidebar nav a[aria-current=page]` se marca con `background:#ffffff12` y un
     `box-shadow` dorado: ninguno de los dos se pinta. Se marca con contorno y subrayado.
   · La barra de progreso `.mr-form-progress>i>span` es un degradado sobre un carril claro: sin
     fondo las dos mitades quedan iguales. Se le da borde y al carril un límite. */
@media (forced-colors: active) {
	.ff-button,.ff-button-secondary,.mr-form-actions button{border:1px solid ButtonText!important}
	.mr-form-actions button,.ff-button{border-width:3px!important}
	.ff-card,.ff-kpi,.ff-rating-card,.ff-choice-card,.ff-team-card,.ff-response-card,.ff-state-card,.ff-empty,.mr-eventfb-area,.mr-muncamp-optional,.mr-muncamp-public-card,.mr-muncamp-feedback-intro>div{border:1px solid CanvasText!important}
	.mr-eventfb-score span,.mr-muncamp-choice-grid label>span,.mr-muncamp-team-picks label>span{border:1px solid CanvasText!important}
	.mr-eventfb-score input:checked+span,.mr-muncamp-choice-grid input:checked+span,.mr-muncamp-team-picks input:checked+span{border-width:3px!important;box-shadow:none!important}
	.mr-eventfb-score input:focus-visible+span,.mr-muncamp-choice-grid input:focus-visible+span,.mr-muncamp-team-picks input:focus-visible+span,.mr-form-actions button:focus-visible,.mr-muncamp-optional>summary:focus-visible,.ff-sidebar nav a:focus-visible,.mr-eventfb-open textarea:focus,.mr-eventfb-open select:focus{outline:3px solid Highlight!important;outline-offset:2px!important;box-shadow:none!important}
	.ff-sidebar nav a[aria-current=page]{border:2px solid Highlight!important;text-decoration:underline!important}
	.mr-form-progress{border:1px solid CanvasText!important}
	.mr-form-progress>i>span{background:Highlight!important;forced-color-adjust:none}
	.ff-live-pill,.ff-count-pill{border:1px solid CanvasText!important}
}
/* Cuenta de la sesión en la cabecera del Centro: nombre, correo y «Cambiar de cuenta». En el móvil baja a su fila. */
.ff-account{align-items:center;display:flex;flex:0 0 auto;gap:12px;margin-left:auto;min-width:0}.ff-account>span{display:grid;min-width:0;text-align:right}.ff-account strong{color:var(--ff-navy);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-account small{color:var(--ff-muted);font-size:12px;white-space:nowrap}.ff-account a{border:1px solid var(--ff-navy);border-radius:11px;color:var(--ff-navy);font-size:12px;font-weight:700;padding:8px 11px;text-decoration:none;white-space:nowrap}.ff-account a:hover,.ff-account a:focus-visible{background:#0D1E4614}.ff-account a:focus-visible{outline:3px solid var(--ff-navy);outline-offset:2px}
@media(max-width:780px){.ff-topbar{flex-wrap:wrap}.ff-account{border-top:1px solid var(--ff-line);flex-basis:100%;justify-content:space-between;margin-left:0;order:3;padding-top:10px}.ff-account>span{text-align:left}}

/* ── Formularios a medida (1.8.0 · F6) ───────────────────────────────────────────────────
   Base de la página pública /formularios/f/<slug>/. Sin fondos crema, sin fuentes monoespaciadas en la
   interfaz y sin cursivas en títulos. Contrastes de texto ≥ 4,5:1 sobre blanco. El bloque de producto de
   abajo (1.10.0 → 1.16.0) refina medidas y colores por encima de esta base. */
.ff-cf-shell{margin:0 auto;max-width:860px;padding:32px 16px 64px}
.ff-cf-card{background:#fff;border:1px solid #555e76;border-radius:22px;box-shadow:var(--ff-shadow);overflow:hidden}
.ff-cf-hero{background:linear-gradient(122deg,var(--ff-navy) 0%,#182b61 100%);color:#fff;padding:30px clamp(20px,4vw,40px);position:relative}
.ff-cf-hero::after{background:var(--ff-cf-acento,#1E3A8A);bottom:0;content:"";height:4px;left:0;position:absolute;right:0}
.ff-cf-brand{align-items:center;color:#dfe4f5;display:flex;font-size:14px;font-weight:600;gap:9px;margin:0 0 14px}
.ff-cf-hero h1{font-size:clamp(24px,3.4vw,34px);letter-spacing:-.02em;line-height:1.15;margin:0}
.ff-cf-description{color:#e6e9f4;font-size:16px;line-height:1.6;margin:12px 0 0;max-width:640px}
.ff-cf-preview-banner{background:#fff6e0;border-bottom:1px solid #e7c77e;color:#5a3c00;font-size:14px;padding:12px clamp(20px,4vw,40px)}
.ff-cf-form{display:grid;gap:18px;padding:22px clamp(20px,4vw,40px) 34px}
.ff-cf-required-note{color:#555e76;font-size:14px;margin:0}
.ff-cf-req{color:#9b2028;font-weight:800}
.ff-cf-trap{height:1px;left:-10000px;overflow:hidden;position:absolute;width:1px}
.ff-cf-section{display:grid;gap:4px;padding:18px 0}
.ff-cf-section h2{color:var(--ff-navy);font-size:20px;margin:0}
.ff-cf-section-hint{color:#555e76;font-size:14px;margin:2px 0 6px}
.ff-cf-q{display:grid;gap:8px;padding:12px 0}
.ff-cf-q+.ff-cf-q{border-top:1px solid #eef0f4}
.ff-cf-label,.ff-cf-group legend{color:var(--ff-ink);font-size:16px;font-weight:600;line-height:1.4;padding:0}
.ff-cf-group{border:0;display:grid;gap:8px;margin:0;min-width:0;padding:0}
.ff-cf-help,.ff-cf-cond-note{color:#555e76;font-size:14px;line-height:1.5}
.ff-cf-js .ff-cf-cond-note{display:none}
.ff-cf-q input[type=text],.ff-cf-q input[type=email],.ff-cf-q input[type=tel],.ff-cf-q input[type=date],.ff-cf-q input[type=number],.ff-cf-q select,.ff-cf-q textarea{background:#fff;border:2px solid #8a91a6;border-radius:11px;color:var(--ff-ink);font-size:16px;min-height:46px;padding:10px 12px;width:100%}
.ff-cf-q textarea{min-height:110px;resize:vertical}
.ff-cf-q input:not([type=radio]):not([type=checkbox]):focus,.ff-cf-q select:focus,.ff-cf-q textarea:focus{border-color:var(--ff-navy);outline:3px solid #435bd166;outline-offset:1px}
.ff-cf-options{display:grid;gap:8px}
.ff-cf-options.is-multi{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.ff-cf-identity{background:var(--ff-indigo-soft);border-bottom:1px solid #c9d0ee;color:var(--ff-ink);display:grid;font-size:14px;gap:6px;padding:12px clamp(20px,4vw,40px)}
.ff-cf-identity p{margin:0}
.ff-cf-option,.ff-cf-check{align-items:flex-start;border:2px solid #8a91a6;border-radius:12px;cursor:pointer;display:flex;gap:10px;padding:11px 13px}
.ff-cf-option input,.ff-cf-check input{accent-color:var(--ff-navy);flex:0 0 auto;height:20px;margin:1px 0 0;width:20px}
.ff-cf-option:has(input:checked),.ff-cf-check:has(input:checked){background:var(--ff-indigo-soft);border-color:var(--ff-navy)}
.ff-cf-check span{font-size:16px;font-weight:500;line-height:1.45}
.ff-cf-scale{align-items:center;display:flex;flex-wrap:wrap;gap:8px}
.ff-cf-scale-end{color:#555e76;font-size:14px;font-weight:600}
.ff-cf-score{cursor:pointer;position:relative}
.ff-cf-score input{height:1px;opacity:0;position:absolute;width:1px}
.ff-cf-score span{align-items:center;border:2px solid #8a91a6;border-radius:12px;display:inline-flex;font-size:16px;font-weight:600;height:46px;justify-content:center;width:46px}
.ff-cf-score input:checked+span{background:var(--ff-navy);border-color:var(--ff-navy);color:#fff}
.ff-cf-score input:focus-visible+span,.ff-cf-option input:focus-visible,.ff-cf-check input:focus-visible{outline:3px solid var(--ff-navy);outline-offset:2px}
.ff-cf-q.has-error input[type=text],.ff-cf-q.has-error input[type=email],.ff-cf-q.has-error input[type=tel],.ff-cf-q.has-error input[type=date],.ff-cf-q.has-error input[type=number],.ff-cf-q.has-error select,.ff-cf-q.has-error textarea,.ff-cf-q.has-error .ff-cf-option,.ff-cf-q.has-error .ff-cf-check,.ff-cf-q.has-error .ff-cf-score span{border-color:#9b2028}
.ff-cf-error{color:#9b2028;font-size:14px;font-weight:600;line-height:1.45;margin:0}
.ff-cf-summary,.ff-cf-server-error{background:#fdf0f0;border:2px solid #9b2028;border-radius:14px;color:#6f141b;font-size:14px;padding:14px 16px}
.ff-cf-summary ul{margin:8px 0 0;padding-left:20px}.ff-cf-summary a{color:#6f141b;font-weight:600}
.ff-cf-draft{align-items:center;background:var(--ff-indigo-soft);border:1px solid #c5ccf6;border-radius:12px;display:flex;flex-wrap:wrap;font-size:14px;gap:10px;justify-content:space-between;padding:10px 14px}
.ff-cf-link{background:none;border:0;color:var(--ff-navy);cursor:pointer;font-weight:600;padding:4px;text-decoration:underline}
.ff-cf-submit{display:grid;gap:10px;justify-items:start}
.ff-cf-submit .ff-button{font-size:16px;min-height:48px;padding:11px 22px}
.ff-cf-submit .ff-button[disabled]{cursor:not-allowed;opacity:.6}
.ff-cf-submit p{color:#555e76;font-size:14px;line-height:1.5;margin:0}
.ff-cf-done,.ff-cf-state{display:grid;gap:12px;justify-items:center;padding:42px clamp(20px,4vw,40px);text-align:center}
.ff-cf-done p,.ff-cf-state p{font-size:16px;line-height:1.6;margin:0;max-width:560px}
.ff-cf-results{display:grid;gap:14px;margin:8px auto 0;max-width:640px;padding:0 clamp(16px,4vw,32px) 28px;text-align:left;width:100%}.ff-cf-results h2{font-size:22px;margin:0}.ff-cf-results h3{font-size:16px;margin:0}.ff-cf-results-note{color:var(--ff-tx2,#3D4A66);font-size:14px;margin:0}.ff-cf-results ul{display:grid;gap:10px;list-style:none;margin:8px 0 0;padding:0}.ff-cf-results li{align-items:center;display:grid;gap:4px 12px;grid-template-columns:minmax(0,1fr) auto}.ff-cf-result-name{font-size:15px;font-weight:600;grid-column:1/-1}.ff-cf-result-bar{background:var(--ff-tinte,#EEF3FC);box-shadow:inset 0 0 0 1px var(--ff-linea,rgba(10,22,40,.1));border-radius:999px;display:block;height:10px;overflow:hidden}.ff-cf-result-bar i{background:var(--ff-ac,#1E3A8A);border-radius:999px;display:block;height:100%}.ff-cf-result-pct{color:var(--ff-tx2,#3D4A66);font-size:14px;font-variant-numeric:tabular-nums}.ff-cf-tope{font-weight:600}
.ff-cf-done-mark{align-items:center;background:var(--ff-green-soft);border-radius:999px;color:var(--ff-green);display:inline-flex;font-size:26px;font-weight:800;height:58px;justify-content:center;width:58px}

/* 1.10.0 · Formularios a medida a nivel de producto (Hegel, 20-oct-2026, 19:38 RD: «no está para nada a la
   altura») y 1.16.0 · rediseño de la vista a medida (Hegel, 22-oct-2026, 14:14 RD: «mucho margen de mejora para
   estar a la altura de los grandes de la industria»). Lo que fija este bloque, en el orden en que se lee la página:
   · Tipografía de funajit.org: Outfit en títulos y DM Sans en texto, autoalojadas por funajit-paginas
     (fjxp-fonts.css + assets/fonts, licencia OFL) y servidas desde ESTE sitio: ninguna petición a Google ni a otro
     tercero (FOR-03 sigue en pie). Si ese archivo no está, cae a la fuente del sistema. Los tokens de :root no se
     tocan (el Centro sigue en Inter); solo body.ff-cf-page los redefine.
   · Cabecera compacta con la marca del programa (FF_Custom_Forms::marca(), derivada del color que declara la
     audiencia: --ff-marca, --ff-acento, --ff-acento-tinta; AJ en su azul, nunca el dorado de MUN): marca, título
     32 (26 en móvil), una frase y los datos en una línea de texto, sin píldoras.
   · Escritorio con índice (a partir de 4 secciones): columna izquierda fija con «n de N obligatorias», barra y el
     estado de cada sección (actual, completa, con errores); columna de lectura de 680 px. Móvil: barra pegajosa
     «Sección n de N · título». Sin índice, la tarjeta vuelve a una columna de 760 px.
   · Patrón GOV.UK de error: etiqueta → ayuda → error → control, barra roja a la izquierda de la pregunta, resumen
     arriba con el nombre corto; texto de error 14/600 sin icono.
   · Opciones como tarjetas de 52 px con el control nativo de 22 px (contraste 3:1), seleccionada con fondo suave y
     borde del acento, foco en dos capas; controles de 48 px con borde #6B7487 (≥ 3:1); escala 14 · 16 · 20 · 26/32.
   · Microinteracciones discretas (borde, fondo y anillo en 150 ms; botón que se hunde 1 px al pulsar) y pantalla de
     envío con la marca de verificación dibujada; todo se apaga con prefers-reduced-motion. */
body.ff-cf-page{--ff-font-display:"Outfit",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--ff-font-body:"DM Sans",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
.ff-cf-shell{max-width:1120px;padding:40px 24px 80px}
.ff-cf-card{border:1px solid #E5E9EF;border-radius:20px;overflow:clip;box-shadow:0 1px 2px rgba(10,22,40,.04),0 12px 40px rgba(10,22,40,.08);margin:0 auto}
.ff-cf-card:not(.has-index){max-width:760px}
.ff-cf-hero{background:linear-gradient(135deg,var(--ff-marca,#0D1E46),var(--ff-marca-2,#1E3A8A));padding:28px 48px 26px}
.ff-cf-hero::after{background:var(--ff-acento,#1E3A8A);height:4px}
.ff-cf-brand{align-items:center;color:#fff;display:flex;font-size:16px;gap:12px;letter-spacing:0;margin:0 0 22px;text-transform:none}
.ff-cf-brand img{background:#fff;border-radius:10px;height:40px;object-fit:contain;padding:5px;width:40px}
.ff-cf-brand span{background:none;border-radius:0;display:grid;gap:2px;height:auto;width:auto;justify-content:start;font-size:16px}
.ff-cf-brand strong{font-family:var(--ff-font-display);font-weight:600}
.ff-cf-brand .ff-cf-brand-f{align-items:center;background:#fff;border-radius:10px;color:#0D1E46;display:inline-flex;font-family:var(--ff-font-display);font-size:20px;font-weight:700;height:40px;justify-content:center;width:40px}
.ff-cf-state p a:not(.ff-button){color:var(--ff-acento-tinta,#1E3A8A);font-weight:600}
.ff-cf-brand small{color:#C9D5EE;font-size:14px;font-weight:400}
.ff-cf-hero h1{color:#fff;font-family:var(--ff-font-display);font-size:32px;font-weight:600;letter-spacing:-.015em;line-height:1.2;max-width:780px} /* 1.10.1: color propio; el tema de funajit.org inyecta h1{color:#3a416f} en línea */
.ff-cf-description{color:#E6ECF8;font-size:16px;line-height:1.6;margin-top:10px;max-width:680px}
.ff-cf-facts{color:#DCE3F2;display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:16px 0 0;padding:0}
.ff-cf-facts li{font-size:14px;line-height:1.5}
.ff-cf-facts li+li::before{color:#9FB0D6;content:"·";padding:0 10px}
.ff-cf-identity{background:var(--ff-acento-suave,#EEF3FC);border-bottom:1px solid #E5E9EF;color:#0A1628;font-size:14px;line-height:1.5;padding:12px 48px}
.ff-cf-body{display:grid;grid-template-columns:minmax(0,1fr)}
.ff-cf-main{min-width:0;padding:28px 40px 40px}
.has-index .ff-cf-body{align-items:start;gap:56px;grid-template-columns:232px minmax(0,680px);padding:36px 48px 56px}
.has-index .ff-cf-main{padding:0}
.ff-cf-index{position:sticky;top:24px}
.ff-cf-index-title{color:#4B5A75;font-size:14px;font-weight:600;letter-spacing:0;margin:0 0 4px;text-transform:none}
.ff-cf-index-count{color:#0A1628;font-family:var(--ff-font-display);font-size:20px;font-weight:600;line-height:1.25;margin:0}
.ff-cf-index-bar{background:#E5E9EF;border-radius:999px;display:block;height:6px;margin:12px 0 20px;overflow:hidden}
.ff-cf-index-bar span{background:var(--ff-acento,#1E3A8A);border-radius:inherit;display:block;height:100%;transition:width .3s ease;width:0}
.ff-cf-index ol{display:grid;gap:2px;list-style:none;margin:0;padding:0}
.ff-cf-index a{align-items:start;border-left:2px solid #E5E9EF;border-radius:0 10px 10px 0;color:#3D4A66;display:grid;font-size:14px;gap:2px 10px;grid-template-columns:18px minmax(0,1fr);line-height:1.4;padding:8px 10px 8px 14px;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease}
.ff-cf-index a:hover{background:#F6F8FC;color:#0A1628}
.ff-cf-index a[aria-current]{border-left-color:var(--ff-acento,#1E3A8A);color:#0A1628;font-weight:600}
.ff-cf-index a:focus-visible{outline:3px solid var(--ff-acento,#1E3A8A);outline-offset:2px}
.ff-cf-index-dot{align-items:center;background:#fff;border:2px solid #6B7487;border-radius:50%;box-sizing:border-box;color:#fff;display:inline-flex;font-size:14px;font-weight:700;height:18px;justify-content:center;line-height:1;margin-top:1px;transition:background .15s ease,border-color .15s ease;width:18px}
.ff-cf-index a[aria-current] .ff-cf-index-dot{border-color:var(--ff-acento,#1E3A8A);box-shadow:inset 0 0 0 3px #fff;background:var(--ff-acento,#1E3A8A)}
.ff-cf-index a.is-done .ff-cf-index-dot{background:var(--ff-acento-tinta,#1E3A8A) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='white' stroke-width='2.2'/%3E%3C/svg%3E") center/12px no-repeat;border-color:var(--ff-acento-tinta,#1E3A8A);box-shadow:none}
.ff-cf-index a.has-error .ff-cf-index-dot{background:#9b2028;border-color:#9b2028;box-shadow:none}
.ff-cf-index a.has-error .ff-cf-index-dot::after{content:"!"}
.ff-cf-index-label{overflow-wrap:anywhere}
.ff-cf-index-meta{color:#4B5A75;font-size:14px;font-weight:400;grid-column:2}
.ff-cf-index a.is-done .ff-cf-index-meta{color:var(--ff-acento-tinta,#1E3A8A)}
.ff-cf-index a.has-error .ff-cf-index-meta{color:#9b2028;font-weight:600}
.ff-cf-form{gap:24px;grid-template-columns:minmax(0,1fr);padding:0}
.ff-cf-progress{background:#fff;border-bottom:1px solid #E5E9EF;margin:0 -40px;padding:12px 40px;position:sticky;top:0;z-index:5}
.has-index .ff-cf-progress{display:none}
.ff-cf-progress p{align-items:baseline;color:#0A1628;display:flex;font-size:14px;font-weight:600;gap:12px;justify-content:space-between;margin:0 0 8px}
.ff-cf-progress p span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ff-cf-progress p span+span{color:#4B5A75;flex:0 0 auto;font-weight:400}
.ff-cf-progress i{background:#E5E9EF;border-radius:999px;display:block;height:4px;overflow:hidden}
.ff-cf-progress i span{background:var(--ff-acento,#1E3A8A);display:block;height:100%;transition:width .3s ease;width:0}
.ff-cf-required-note{color:#4B5A75;font-size:14px}
.ff-cf-section{border-top:1px solid #E5E9EF;gap:0;padding:28px 0 4px;scroll-margin-top:72px}
.ff-cf-trap+.ff-cf-section{border-top:0;padding-top:4px}
.ff-cf-section-n{color:var(--ff-acento-tinta,#1E3A8A);font-size:14px;font-weight:600;margin:0 0 4px}
.ff-cf-section h2{color:#0A1628;font-family:var(--ff-font-display);font-size:20px;font-weight:600;line-height:1.3;outline:none}
.ff-cf-section h2:focus-visible{border-radius:4px;outline:3px solid var(--ff-acento,#1E3A8A);outline-offset:4px}
.ff-cf-section-hint{color:#4B5A75;font-size:14px;line-height:1.55;margin:6px 0 0;max-width:620px}
.ff-cf-q{gap:8px;padding:24px 0}
.ff-cf-q+.ff-cf-q{border-top:1px solid #EEF1F5}
.ff-cf-q.has-error{border-left:4px solid #9b2028;padding-left:16px}
.ff-cf-label,.ff-cf-group legend{color:#0A1628;font-size:16px;font-weight:600;line-height:1.4;margin-bottom:2px}
.ff-cf-help,.ff-cf-cond-note{color:#4B5A75;font-size:14px}
.ff-cf-error{color:#9b2028;font-size:14px;font-weight:600;line-height:1.45}
.ff-cf-q input[type=text],.ff-cf-q input[type=email],.ff-cf-q input[type=tel],.ff-cf-q input[type=date],.ff-cf-q input[type=number],.ff-cf-q select,.ff-cf-q textarea{border:1.5px solid #6B7487;border-radius:12px;min-height:48px;padding:11px 14px;transition:border-color .15s ease,box-shadow .15s ease}
.ff-cf-q select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%230A1628' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 14px center/18px no-repeat;padding-right:44px}
.ff-cf-q input:hover,.ff-cf-q select:hover,.ff-cf-q textarea:hover{border-color:#0A1628}
.ff-cf-q input:not([type=radio]):not([type=checkbox]):focus,.ff-cf-q select:focus,.ff-cf-q textarea:focus{border-color:var(--ff-acento,#1E3A8A);box-shadow:0 0 0 4px var(--ff-acento-suave,#EEF3FC);outline:2px solid var(--ff-acento,#1E3A8A);outline-offset:1px}
.ff-cf-q.has-error input[type=text],.ff-cf-q.has-error input[type=email],.ff-cf-q.has-error input[type=tel],.ff-cf-q.has-error input[type=date],.ff-cf-q.has-error input[type=number],.ff-cf-q.has-error select,.ff-cf-q.has-error textarea{border-width:2px}
.ff-cf-options{gap:10px}
.ff-cf-options.is-cortas{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.ff-cf-option,.ff-cf-check{align-items:center;background:#fff;border:1.5px solid #CDD4DF;border-radius:12px;gap:12px;min-height:52px;padding:13px 16px;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .1s ease}
.ff-cf-option span,.ff-cf-check span{font-size:16px;line-height:1.4}
.ff-cf-option input,.ff-cf-check input{accent-color:var(--ff-acento,#1E3A8A);cursor:pointer;flex:0 0 22px;height:22px;margin:0;width:22px}
.ff-cf-check{align-items:flex-start}.ff-cf-check input{margin-top:1px}
.ff-cf-option:hover,.ff-cf-check:hover{border-color:var(--ff-acento,#1E3A8A)}
.ff-cf-option:active,.ff-cf-check:active{transform:scale(.99)}
.ff-cf-option:has(input:checked),.ff-cf-check:has(input:checked){background:var(--ff-acento-suave,#EEF3FC);border-color:var(--ff-acento,#1E3A8A);box-shadow:inset 0 0 0 1px var(--ff-acento,#1E3A8A)}
.ff-cf-option:has(input:focus-visible),.ff-cf-check:has(input:focus-visible){outline:3px solid var(--ff-acento,#1E3A8A);outline-offset:2px}
.ff-cf-option input:focus,.ff-cf-check input:focus,.ff-cf-option input:focus-visible,.ff-cf-check input:focus-visible{box-shadow:none;outline:none}
.ff-cf-option,.ff-cf-check{-webkit-tap-highlight-color:transparent}
.ff-cf-option:has(input:focus-visible),.ff-cf-check:has(input:focus-visible){border-radius:12px}
.ff-cf-score span{border:1.5px solid #CDD4DF;height:48px;transition:border-color .15s ease,background .15s ease;width:48px}
.ff-cf-score:hover span{border-color:var(--ff-acento,#1E3A8A)}
.ff-cf-score input:checked+span{background:var(--ff-acento-tinta,#1E3A8A);border-color:var(--ff-acento-tinta,#1E3A8A)} /* número blanco: con el acento AJ #2F6BFF daba 4,499:1 */
.ff-cf-score input:focus-visible+span{outline:3px solid var(--ff-acento,#1E3A8A);outline-offset:2px}
.ff-cf-scale-end{color:#4B5A75;font-size:14px}
.ff-cf-score-na{margin-left:auto}
.ff-cf-score-na span{height:48px;min-width:46px;padding:0 14px;width:auto}
.ff-cf-pasos-on .ff-cf-score.ff-cf-score-na span{height:56px;width:auto}
.ff-cf-summary{scroll-margin-top:72px}
.ff-cf-submit{border-top:1px solid #E5E9EF;gap:12px;margin-top:4px;padding-top:28px}
.ff-cf-submit .ff-button{background:var(--ff-marca,#0D1E46);border-color:var(--ff-marca,#0D1E46);border-radius:12px;font-family:var(--ff-font-body);font-size:16px;font-weight:600;min-height:52px;padding:14px 28px;transition:background .15s ease,box-shadow .15s ease,transform .1s ease}
.ff-cf-submit .ff-button:hover{background:var(--ff-marca-2,#1E3A8A);border-color:var(--ff-marca-2,#1E3A8A);box-shadow:0 8px 20px rgba(10,22,40,.16);transform:translateY(-1px)}
.ff-cf-submit .ff-button:active{box-shadow:none;transform:translateY(0)}
.ff-cf-submit .ff-button:focus-visible{outline:3px solid var(--ff-acento,#1E3A8A);outline-offset:3px}
.ff-cf-submit p{color:#4B5A75;font-size:14px}
.ff-cf-done,.ff-cf-state{gap:14px;padding:56px clamp(20px,6vw,64px)}
.ff-cf-done h2,.ff-cf-state h2{color:#0A1628;font-family:var(--ff-font-display);font-size:26px;font-weight:600;line-height:1.25;margin:0}
.ff-cf-done p,.ff-cf-state p{color:#3D4A66;font-size:16px}
.ff-cf-done-mark,.ff-cf-state-icon{align-items:center;background:var(--ff-acento-suave,#EEF3FC);border-radius:999px;color:var(--ff-acento-tinta,#1E3A8A);display:inline-flex;font-size:32px;font-weight:700;height:72px;justify-content:center;width:72px}
.ff-cf-done-mark svg{display:block}
.ff-cf-done-path{animation:ff-cf-trazo .5s ease-out .15s both;stroke-dasharray:40;stroke-dashoffset:40}
@keyframes ff-cf-trazo{to{stroke-dashoffset:0}}
.ff-cf-state-icon::before{content:"!"}
.ff-cf-state.is-hecho .ff-cf-state-icon::before{content:"✓"}
.ff-cf-state.is-acceso .ff-cf-state-icon::before{content:"→"}
.ff-cf-state.is-cerrado .ff-cf-state-icon::before{content:"–"}
.ff-cf-done .ff-button,.ff-cf-state .ff-button{background:var(--ff-marca,#0D1E46);border-color:var(--ff-marca,#0D1E46);border-radius:12px;font-size:16px;min-height:52px;padding:14px 24px}
.ff-cf-done .ff-button-secondary{background:#fff;color:var(--ff-marca,#0D1E46)}
@media(max-width:979px){
  .ff-cf-shell{max-width:808px}
  .ff-cf-card,.ff-cf-card:not(.has-index){max-width:760px}
  .has-index .ff-cf-body{gap:0;grid-template-columns:minmax(0,1fr);padding:0}
  .ff-cf-index{display:none}
  .has-index .ff-cf-main{padding:28px 40px 40px}
  .has-index .ff-cf-progress{display:block}
  .ff-cf-hero{padding:28px 40px 26px}
  .ff-cf-identity{padding:12px 40px}
}
@media(max-width:780px){
  .ff-cf-shell{padding:0 0 48px}
  .ff-cf-card{border:0;border-radius:0;box-shadow:none}
  .ff-cf-hero{padding:24px 20px 24px}
  .ff-cf-hero h1{font-size:26px}
  .ff-cf-brand{margin-bottom:18px}
  .ff-cf-identity{padding:12px 20px}
  .ff-cf-main,.has-index .ff-cf-main{padding:16px 16px 32px}
  .ff-cf-form{gap:20px}
  .ff-cf-progress{margin:-16px -16px 0;padding:10px 16px}
  .ff-cf-section{padding-top:24px;scroll-margin-top:64px}
  .ff-cf-q{padding:20px 0}
  .ff-cf-q.has-error{margin-left:-16px;padding-left:12px}
  .ff-cf-submit .ff-button{width:100%}
}
@media(prefers-reduced-motion:reduce){.ff-cf-done-path{animation:none;stroke-dashoffset:0}.ff-cf-option,.ff-cf-check,.ff-cf-submit .ff-button{transform:none!important}}

/* Equipo: Centro, constructor y respuestas */
.ff-cf-admin-page .ff-content{padding-top:24px}
.ff-cf-bar{align-items:center;background:#fff;border-bottom:1px solid var(--ff-line);display:flex;flex-wrap:wrap;gap:14px 22px;padding:14px clamp(16px,3vw,34px);position:sticky;top:0;z-index:20}
.ff-cf-back{color:var(--ff-navy);font-size:13px;font-weight:750;text-decoration:none}
.ff-cf-bar-title h1{color:var(--ff-navy);font-size:20px;margin:0}
.ff-cf-bar-title .ff-eyebrow{margin-bottom:2px}
.ff-cf-bar-actions{display:flex;flex-wrap:wrap;gap:8px}
.ff-cf-notice{background:var(--ff-green-soft);border:1px solid #9ad4bf;border-radius:12px;color:#0d4f3a;font-size:14px;margin:0 0 16px;padding:11px 14px}
.ff-cf-notice.is-error{background:#fdf0f0;border-color:#9b2028;color:#6f141b}
.ff-cf-create{margin-bottom:20px}
.ff-cf-create-form{display:grid;gap:14px}.ff-cf-create-form>.ff-button{cursor:pointer;justify-self:start}
.ff-cf-templates{border:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin:0;padding:0}
.ff-cf-templates legend{font-size:13px;font-weight:750;margin-bottom:8px;padding:0}
.ff-cf-template{border:2px solid var(--ff-line);border-radius:14px;cursor:pointer;display:flex;gap:10px;padding:13px}
.ff-cf-template:has(input:checked){background:var(--ff-indigo-soft);border-color:var(--ff-navy)}
.ff-cf-template input{accent-color:var(--ff-navy);margin-top:3px}
.ff-cf-template span{display:grid;gap:3px}.ff-cf-template small{color:#555e76;font-size:13px;line-height:1.45}
.ff-cf-field{display:grid;gap:6px;min-width:0}
.ff-cf-field>span{color:var(--ff-ink);font-size:13px;font-weight:700}
.ff-cf-field input,.ff-cf-field select,.ff-cf-field textarea{background:#fff;border:1px solid #8a91a6;border-radius:10px;color:var(--ff-ink);font-size:14px;min-height:40px;padding:8px 10px;width:100%}
.ff-cf-field-small{max-width:200px}
.ff-cf-list{display:grid;gap:14px}
.ff-cf-item{display:grid;gap:10px}
.ff-cf-item-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}
.ff-cf-item h3{color:var(--ff-navy);font-size:18px;margin:0 0 4px}
.ff-cf-meta{color:#555e76;font-size:13px;line-height:1.5;margin:0;overflow-wrap:anywhere}
.ff-cf-meta code{font-family:inherit;font-weight:650}
.ff-cf-pill{border-radius:999px;font-size:12px;font-weight:800;padding:5px 11px;white-space:nowrap}
.ff-cf-pill.is-abierto{background:var(--ff-green-soft);color:#0d5c43}
.ff-cf-pill.is-cerrado{background:#f1f2f6;color:#3f4659}
.ff-cf-pill.is-borrador{background:#fff3d6;color:#6b4a00}
.ff-cf-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}
.ff-cf-inline-form{display:inline-flex;margin:0}
.ff-cf-inline-form button,.ff-cf-actions button.ff-button{cursor:pointer}
.ff-cf-builder{display:grid;gap:14px;margin:0 auto;max-width:1500px;padding:18px clamp(16px,3vw,34px) 60px}
.ff-cf-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.ff-cf-toolbar button{cursor:pointer}
.ff-cf-save{color:#555e76;font-size:13px;font-weight:650;margin-right:auto}
.ff-cf-save.is-ok{color:#0d5c43}.ff-cf-save.is-error{color:#9b2028}.ff-cf-save.is-draft{color:#6b4a00}
.ff-cf-alert{background:#fdf0f0;border:2px solid #9b2028;border-radius:12px;color:#6f141b;font-size:14px;padding:11px 14px}
.ff-cf-settings{padding:0}
.ff-cf-settings>summary{cursor:pointer;font-weight:750;padding:16px 20px}
.ff-cf-settings-form{display:grid;gap:12px;padding:0 20px 20px}
.ff-cf-note{color:#555e76;font-size:13px;line-height:1.5;margin:0}
.ff-cf-toggle{align-items:center;display:inline-flex;font-size:14px;font-weight:650;gap:8px}
.ff-cf-toggle input{accent-color:var(--ff-navy);height:18px;width:18px}
.ff-cf-state-actions{display:inline-flex;flex-wrap:wrap;gap:8px}
.ff-cf-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.ff-cf-editor{display:grid;gap:14px}
.ff-cf-sec{background:#fff;border:1px solid #8a91a6;border-radius:16px;display:grid;gap:10px;padding:14px}
.ff-cf-sec-head{align-items:center;display:flex;gap:8px}
.ff-cf-sec-title{border:1px solid transparent;border-radius:9px;color:var(--ff-navy);flex:1;font-size:17px;font-weight:750;min-width:0;padding:6px 8px}
.ff-cf-sec-title:hover,.ff-cf-sec-title:focus,.ff-cf-sec-hint:hover,.ff-cf-sec-hint:focus{border-color:#8a91a6}
.ff-cf-sec-hint{border:1px solid transparent;border-radius:9px;color:#555e76;font-size:13px;padding:5px 8px}
.ff-cf-sec-tools{display:flex;gap:6px}
.ff-cf-qs{display:grid;gap:8px;min-height:8px}
.ff-cf-q-card{background:var(--ff-bg);border:1px solid var(--ff-line);border-radius:12px}
.ff-cf-q-card.is-open{background:#fff;border-color:var(--ff-navy);box-shadow:0 8px 22px rgba(13,30,70,.08)}
.ff-cf-q-card.is-dragging{opacity:.45}.ff-cf-q-card.is-over{box-shadow:0 -3px 0 var(--ff-navy)}
.ff-cf-q-head{align-items:center;background:none;border:0;border-radius:12px;color:var(--ff-ink);cursor:grab;display:flex;font-size:14px;gap:8px;min-height:44px;padding:9px 12px;text-align:left;width:100%}
.ff-cf-grip{color:#555e76;letter-spacing:-2px}
.ff-cf-q-label{flex:1;font-weight:650;min-width:0;overflow-wrap:anywhere}
.ff-cf-tag{background:#e9ecf5;border-radius:999px;color:#3f4659;font-size:11px;font-weight:750;padding:3px 8px;white-space:nowrap}
.ff-cf-tag.is-cond{background:#fff3d6;color:#6b4a00}
/* 1.13.0: pregunta de la etapa 2 y reglas con nombre en el constructor. */
.ff-cf-tag.is-stage{background:#e6eefb;color:#1e3a8a}
/* 1.15.0: formulario cuyo esquema es de un destino (constructor único) y sus preguntas fijas. */
.ff-cf-owner{background:#F6F8FC;border:1px solid #E5E9EF;border-left:4px solid #0A1628;border-radius:12px;color:#3D4A66;font-size:14px;padding:12px 16px}
.ff-cf-owner p{margin:0}.ff-cf-owner p+p{margin-top:6px}
.ff-cf-tag.is-fixed{background:#0A1628;color:#fff}
@media (max-width:640px){.ff-cf-q-head.has-fixed{flex-wrap:wrap}.ff-cf-q-head.has-fixed .ff-cf-q-label{flex-basis:calc(100% - 40px)}}
.ff-cf-rules{background:#fff;border:1px solid #8a91a6;border-radius:16px;display:grid;gap:10px;padding:14px}
.ff-cf-rules-title{color:var(--ff-navy);font-size:20px;margin:0}
.ff-cf-rule{border-top:1px solid var(--ff-line);padding-top:10px}
.ff-cf-field[data-ff-fb-ctl="formats"]{display:flex;flex-wrap:wrap;gap:8px 18px}
.ff-cf-q-body{border-top:1px solid var(--ff-line);display:grid;gap:12px;padding:12px}
.ff-cf-row{align-items:end;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.ff-cf-mini{background:#fff;border:1px solid #8a91a6;border-radius:9px;color:var(--ff-ink);cursor:pointer;font-size:13px;font-weight:650;min-height:34px;padding:5px 10px}
.ff-cf-mini:hover{border-color:var(--ff-navy)}.ff-cf-mini.is-active{background:var(--ff-navy);border-color:var(--ff-navy);color:#fff}
.ff-cf-mini.is-danger{border-color:#b44343;color:#9b2028}
.ff-cf-add{background:#fff;border:2px dashed #8a91a6;border-radius:12px;color:var(--ff-navy);cursor:pointer;font-size:14px;font-weight:750;min-height:42px;padding:8px 12px}
.ff-cf-add:hover{border-color:var(--ff-navy)}
.ff-cf-add-sec{background:transparent}
.ff-cf-preview{background:#fff;border:1px solid #8a91a6;border-radius:16px;overflow:hidden;position:sticky;top:84px}
.ff-cf-preview-bar{align-items:center;border-bottom:1px solid var(--ff-line);display:flex;font-size:13px;font-weight:750;gap:10px;justify-content:space-between;padding:10px 12px}
.ff-cf-preview-bar>div{display:flex;gap:6px}
.ff-cf-frame{background:var(--ff-bg);border:0;display:block;height:calc(100vh - 170px);margin:0 auto;min-height:520px;width:100%}
.ff-cf-q-head:focus-visible,.ff-cf-mini:focus-visible,.ff-cf-add:focus-visible,.ff-cf-link:focus-visible,.ff-cf-settings>summary:focus-visible,.ff-cf-row-item>summary:focus-visible{outline:3px solid var(--ff-navy);outline-offset:2px}
.ff-cf-table-card{display:grid;gap:14px;margin-top:18px}
.ff-cf-search{align-items:end;display:flex;flex-wrap:wrap;gap:10px}
.ff-cf-search .ff-cf-field{flex:1 1 260px}
.ff-cf-search button{cursor:pointer}
.ff-cf-table{display:grid;gap:6px}
.ff-cf-table-head,.ff-cf-row-item>summary{display:grid;gap:12px;grid-template-columns:48px repeat(3,minmax(0,1fr))}
.ff-cf-table-head{color:#555e76;font-size:12px;font-weight:800;letter-spacing:.06em;padding:0 14px;text-transform:uppercase}
.ff-cf-row-item{border:1px solid var(--ff-line);border-radius:12px}
.ff-cf-row-item>summary{align-items:center;cursor:pointer;font-size:14px;list-style:none;padding:12px 14px}
.ff-cf-row-item>summary::-webkit-details-marker{display:none}
.ff-cf-row-item>summary>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ff-cf-row-item[open]>summary{border-bottom:1px solid var(--ff-line)}
.ff-cf-row-item .ff-response-number{color:var(--ff-navy);font-weight:800}
.ff-cf-row-item .ff-answer-grid{margin:0;padding:14px}
.ff-cf-pages{display:flex;flex-wrap:wrap;gap:6px}
.ff-cf-pages a{border:1px solid #8a91a6;border-radius:9px;font-size:13px;font-weight:700;min-width:34px;padding:6px 10px;text-align:center;text-decoration:none}
.ff-cf-pages a[aria-current]{background:var(--ff-navy);border-color:var(--ff-navy);color:#fff}
@media(max-width:1020px){.ff-cf-layout{grid-template-columns:1fr}.ff-cf-preview{position:static}.ff-cf-frame{height:640px}}
@media(max-width:780px){.ff-cf-bar{position:static}.ff-cf-bar .ff-account{order:3}.ff-cf-table-head{display:none}.ff-cf-row-item>summary{grid-template-columns:40px minmax(0,1fr)}.ff-cf-row-item>summary>span:nth-child(n+3){display:none}.ff-cf-item-head{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.ff-cf-q-card,.ff-cf-add,.ff-cf-mini{transition:none}}
@media(forced-colors:active){.ff-cf-option,.ff-cf-check,.ff-cf-score span,.ff-cf-section,.ff-cf-card,.ff-cf-sec,.ff-cf-rules,.ff-cf-q-card{border:1px solid CanvasText!important}.ff-cf-score input:checked+span,.ff-cf-option:has(input:checked),.ff-cf-check:has(input:checked){border-width:3px!important}}
.ff-cf-audience{margin-top:17px}.ff-cf-pending{columns:2 220px;font-size:13px;line-height:1.6;margin:8px 0 0;padding-left:18px}.ff-cf-pending small{color:var(--ff-muted)}
/* 1.12.0 · Formularios con destino: subida de archivo y aceptación de documentos (paleta de funajit.org). */
.ff-cf-q input[type=file]{background:#fff;border:1.5px dashed #6B7487;border-radius:12px;color:#3D4A66;font-size:16px;min-height:50px;padding:12px 14px;width:100%}
.ff-cf-q.has-error input[type=file]{border-color:#9b2028;border-style:solid}
.ff-cf-file-rules{color:#4B5A75;display:block;font-size:14px;margin:2px 0 6px}
.ff-cf-file-chosen{color:#3D4A66;display:block;font-size:14px;font-weight:600;margin-top:6px}
.ff-cf-file-chosen:empty{display:none}
.ff-cf-docs{border:1px solid #E5E9EF;border-radius:14px;margin:24px 0 0;min-width:0;padding:16px 18px}
.ff-cf-docs legend{float:left;font-size:20px;font-weight:600;line-height:1.3;margin:0 0 10px;padding:0;width:100%}
.ff-cf-docs legend+*{clear:both}
.ff-cf-doc+.ff-cf-doc{border-top:1px solid #E5E9EF;margin-top:12px;padding-top:12px}
.ff-cf-doc-link{font-size:16px;margin:0 0 6px}
.ff-cf-docs.has-error{border-color:#9b2028;border-left-width:4px}
.ff-cf-limit{display:grid;gap:0 12px;grid-template-columns:1fr 1fr 2fr;width:100%}
@media (max-width:640px){.ff-cf-limit{grid-template-columns:1fr}}
.ff-cf-limit-title{font-weight:600;grid-column:1/-1;margin:4px 0 6px}
/* 1.14.0 · Lo que aporta un destino (fase 5: el kit de MUN). Preferencias en orden, «Antes de empezar» y logos de
   aliados. Colores solo por tokens de la marca (--ff-acento*): el dorado aparece únicamente si el destino es MUN. */
.ff-cf-rank{display:grid;gap:12px;list-style:none;margin:4px 0 0;padding:0}
.ff-cf-rank li{display:grid;gap:6px}
.ff-cf-rank label{color:#0A1628;font-size:14px;font-weight:600}
.ff-cf-rank label{font-size:16px}
/* 1.17.0 · Ficha de la opción elegida en una preferencia en orden (`detalles`): va debajo de su desplegable, sin
   tarjetas aparte; se pinta al elegir. Colores solo por tokens de la marca. */
.ff-cf-rank-detalle:empty{display:none}
.ff-cf-rank-detalle{margin-top:8px;min-width:0}
.ff-cf-ficha{background:#F6F8FC;border:1px solid #E5E9EF;border-left:4px solid var(--ff-acento,#1E3A8A);border-radius:12px;color:#3D4A66;display:grid;font-size:16px;gap:6px;line-height:1.5;min-width:0;overflow-wrap:anywhere;padding:12px 14px}
.ff-cf-ficha-title{color:#0A1628;font-family:var(--ff-font-display);font-size:18px;font-weight:600;line-height:1.3;margin:0}
.ff-cf-ficha-sub{margin:0}
.ff-cf-ficha-badges{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0}
.ff-cf-badge{background:#F6F8FC;border:1px solid #E5E9EF;border-radius:999px;color:#3D4A66;font-size:14px;font-weight:600;line-height:1.4;padding:2px 10px}
.ff-cf-badge.is-strong{background:var(--ff-acento-suave,#EEF3FC);border-color:var(--ff-acento-tinta,#1E3A8A);color:var(--ff-acento-tinta,#1E3A8A)}
.ff-cf-ficha-data{display:flex;flex-wrap:wrap;gap:2px 22px;margin:0}
.ff-cf-ficha-data div{display:flex;flex-wrap:wrap;gap:0 6px}
.ff-cf-ficha-data dt{color:#0A1628;font-weight:600}
.ff-cf-ficha-data dt::after{content:":"}
.ff-cf-ficha-data dd{margin:0}
.ff-cf-ficha-list-title{color:#0A1628;font-weight:600;margin:4px 0 0}
.ff-cf-ficha-list-title:empty{display:none}
.ff-cf-ficha-list{margin:0;padding-left:20px}
.ff-cf-ficha-list li{margin:2px 0}
.ff-cf-brand .ff-cf-brand-logos{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.ff-cf-brand .ff-cf-brand-logos img{height:32px;max-width:120px;width:auto}
.ff-cf-before{border:1px solid #E5E9EF;border-radius:16px;margin:0 0 24px;padding:18px 24px}
.ff-cf-before>summary{cursor:pointer;list-style:none}
.ff-cf-before>summary::-webkit-details-marker{display:none}
.ff-cf-before>summary h2{color:#0A1628;display:inline;font-family:var(--ff-font-display);font-size:20px;font-weight:600;line-height:1.3}
.ff-cf-before>summary::after{color:var(--ff-acento-tinta,#1E3A8A);content:"＋";float:right;font-size:20px}
.ff-cf-before[open]>summary::after{content:"−"}
.ff-cf-before-block{color:#3D4A66;font-size:16px;line-height:1.6;margin-top:14px}
.ff-cf-before-block h3{color:#0A1628;font-size:16px;font-weight:600;margin:0 0 4px}
.ff-cf-before-block p{margin:0 0 8px}
.ff-cf-before-block ul{margin:0;padding-left:20px}
.ff-cf-steps{counter-reset:paso;display:grid;gap:10px;list-style:none;margin:0;padding:0}
.ff-cf-steps li{border-left:3px solid var(--ff-acento,#1E3A8A);padding-left:12px}
.ff-cf-steps strong{color:var(--ff-acento-tinta,#1E3A8A);display:block}
@media (max-width:640px){.ff-cf-before{margin-bottom:16px;padding:16px}.ff-cf-brand:has(.ff-cf-brand-logos){flex-wrap:wrap}.ff-cf-brand .ff-cf-brand-logos{margin-left:0;width:100%}}

/* 1.18.0 · Salto real: una pregunta por pantalla (.ff-cf-pasos-on, la pone custom-form.js; sin JS todo sigue en una
   página), navegación con teclado, revisión antes de enviar y estado del guardado en la cuenta. Escala 14·16·20·32;
   controles de 48 px o más; todo lo animado se apaga con prefers-reduced-motion. */
.ff-cf-step-n,.ff-cf-key{display:none}
.ff-cf-pasos-on .ff-cf-section:not(.is-current),.ff-cf-pasos-on [data-ff-q]:not(.is-current){display:none}
.ff-cf-pasos-on .ff-cf-section{border-top:0;padding:4px 0 0}
.ff-cf-pasos-on .ff-cf-section-n{display:none}
.ff-cf-pasos-on .ff-cf-section>h2{color:#4B5A75;font-family:var(--ff-font-body);font-size:14px;font-weight:600;letter-spacing:0;line-height:1.4;margin:0}
.ff-cf-pasos-on .ff-cf-section>.ff-cf-section-hint{font-size:14px;margin:4px 0 0}
.ff-cf-pasos-on .ff-cf-q.is-current{border-top:0;padding:16px 0 0}
.ff-cf-pasos-on .ff-cf-step-n{color:var(--ff-acento-tinta,#1E3A8A);display:block;font-size:14px;font-weight:600;line-height:1.4;margin:0}
.ff-cf-pasos-on .ff-cf-q>.ff-cf-label,.ff-cf-pasos-on .ff-cf-q>.ff-cf-group>legend,.ff-cf-pasos-on .ff-cf-docs>legend,.ff-cf-pasos-on .ff-cf-info>.ff-cf-info-title{color:#0A1628;font-family:var(--ff-font-display);font-size:20px;font-weight:600;line-height:1.35}
.ff-cf-pasos-on .ff-cf-q.is-in-fwd{animation:ff-cf-entra .28s cubic-bezier(.2,.7,.2,1)}
.ff-cf-pasos-on .ff-cf-q.is-in-back{animation:ff-cf-vuelve .28s cubic-bezier(.2,.7,.2,1)}
.ff-cf-review.is-in-fwd{animation:ff-cf-entra .28s cubic-bezier(.2,.7,.2,1)}
.ff-cf-review.is-in-back{animation:ff-cf-vuelve .28s cubic-bezier(.2,.7,.2,1)}
@keyframes ff-cf-entra{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes ff-cf-vuelve{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
.ff-cf-nav{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.ff-cf-nav .ff-cf-next{background:var(--ff-marca,#0D1E46);border:1.5px solid var(--ff-marca,#0D1E46);border-radius:12px;color:#fff;font-family:var(--ff-font-body);font-size:16px;font-weight:600;min-height:52px;padding:14px 28px}
.ff-cf-nav .ff-cf-next:hover{box-shadow:0 6px 18px rgba(10,22,40,.18)}
.ff-cf-back{align-items:center;background:#fff;border:1.5px solid #CDD4DF;border-radius:12px;color:#3D4A66;cursor:pointer;display:inline-flex;font-family:var(--ff-font-body);font-size:16px;font-weight:600;min-height:52px;padding:12px 18px}
.ff-cf-back:hover{border-color:#0A1628;color:#0A1628}
.ff-cf-back[hidden]{display:none}
.ff-cf-back:focus-visible,.ff-cf-nav .ff-cf-next:focus-visible{outline:3px solid var(--ff-acento,#1E3A8A);outline-offset:2px}
.ff-cf-hint{color:#4B5A75;font-size:14px}
.ff-cf-key{align-items:center;background:#F6F8FC;border:1px solid #CDD4DF;border-radius:6px;color:#3D4A66;flex:0 0 auto;font-family:var(--ff-font-body);font-size:14px;font-weight:600;height:26px;justify-content:center;margin-left:auto;min-width:26px}
@media (hover:hover) and (pointer:fine){.ff-cf-pasos-on .ff-cf-key{display:inline-flex}}
@media (hover:none){.ff-cf-hint{display:none}}
.ff-cf-autosave{color:#4B5A75;font-size:14px;line-height:1.4;margin:0;min-height:20px}
.ff-cf-autosave:empty{display:none}
.ff-cf-review{display:grid;gap:8px}
.ff-cf-review[hidden]{display:none}
.ff-cf-review>.ff-cf-back{justify-self:start;margin-bottom:8px}
.ff-cf-review>h2{color:#0A1628;font-family:var(--ff-font-display);font-size:20px;font-weight:600;margin:0}
.ff-cf-review>h2:focus{outline:none}
.ff-cf-review>h2:focus-visible{outline:3px solid var(--ff-acento,#1E3A8A);outline-offset:4px}
.ff-cf-review-list h3{color:#0A1628;font-family:var(--ff-font-display);font-size:16px;font-weight:600;margin:20px 0 0}
.ff-cf-review-list dl{margin:0}
.ff-cf-review-item{border-top:1px solid #EEF1F5;display:grid;gap:4px;padding:14px 0}
.ff-cf-review-item dt{color:#4B5A75;font-size:14px;font-weight:600;line-height:1.4}
.ff-cf-review-item dd{align-items:baseline;display:flex;gap:16px;justify-content:space-between;margin:0}
.ff-cf-review-answer{color:#0A1628;font-size:16px;line-height:1.5;min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}
.ff-cf-review-answer.is-empty{color:#4B5A75}
.ff-cf-review-answer.is-error{color:#B42318;font-weight:600}
.ff-cf-review-item.has-error{border-left:4px solid #B42318;padding-left:12px}
.ff-cf-review-item .ff-cf-link{color:var(--ff-acento-tinta,#1E3A8A);flex:0 0 auto;font-size:16px;min-height:44px}
.ff-cf-pasos-on .ff-cf-submit{border-top:0;padding-top:8px}
.ff-cf-submit[hidden]{display:none}
@media (max-width:640px){
  .ff-cf-pasos-on .ff-cf-q>.ff-cf-label,.ff-cf-pasos-on .ff-cf-q>.ff-cf-group>legend,.ff-cf-pasos-on .ff-cf-docs>legend,.ff-cf-pasos-on .ff-cf-info>.ff-cf-info-title{font-size:20px}
  .ff-cf-nav{background:#fff;border-top:1px solid #E5E9EF;bottom:0;margin:20px -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));position:sticky;z-index:4}
  .ff-cf-nav .ff-cf-next{flex:1 1 auto}
  .ff-cf-review-item dd{flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){.ff-cf-pasos-on .ff-cf-q.is-in-fwd,.ff-cf-pasos-on .ff-cf-q.is-in-back,.ff-cf-review.is-in-fwd,.ff-cf-review.is-in-back{animation:none}}
@media (forced-colors:active){.ff-cf-back,.ff-cf-key{border:1px solid CanvasText}.ff-cf-review-item.has-error{border-left:4px solid CanvasText}}
/* 1.17.0: aviso bajo la opción marcada (solo presentación; el color es el del programa). */
.ff-cf-avisos:empty{display:none}
.ff-cf-aviso{background:var(--ff-acento-suave,#EEF3FC);border-left:4px solid var(--ff-acento,#1E3A8A);border-radius:12px;color:#0A1628;font-size:16px;line-height:1.5;margin:10px 0 0;overflow-wrap:anywhere;padding:12px 14px}
.ff-cf-aviso[hidden]{display:none}

/* 1.18.0 · A: bienvenida, cabecera compacta, pregunta inmersiva, barra superior, agradecimiento y muestra del tema. Todo
   cuelga de .is-pasos / .is-bienvenida / .ff-cf-pasos-on, que pone custom-form.js: sin JS no existe nada de esto. Escala
   14·16·20·32 (26 en móvil el título), controles de 56 px (44 como mínimo), todo lo animado se apaga con reduced-motion. */
.ff-cf-welcome-go{align-items:center;display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:28px}
.ff-cf-welcome-go[hidden]{display:none}
.ff-cf-welcome-go .ff-cf-hint{color:#DCE3F2;font-size:14px}
.ff-cf-start{background:#fff;border:1.5px solid #fff;border-radius:12px;color:var(--ff-marca,#0D1E46);cursor:pointer;font-family:var(--ff-font-body);font-size:20px;font-weight:600;min-height:56px;padding:14px 40px}
.ff-cf-start:hover{background:#F6F8FC;box-shadow:0 8px 20px rgba(0,0,0,.28)}
.ff-cf-start:focus-visible{outline:3px solid #fff;outline-offset:3px}
.ff-cf-card.is-bienvenida .ff-cf-hero{padding:44px clamp(20px,5vw,56px) 40px}
.ff-cf-card.is-bienvenida .ff-cf-brand{gap:16px;margin-bottom:28px}
.ff-cf-card.is-bienvenida .ff-cf-brand img:first-child{border-radius:16px;height:80px;padding:8px;width:80px}
.ff-cf-card.is-bienvenida .ff-cf-brand .ff-cf-brand-f{border-radius:16px;font-size:36px;height:80px;width:80px}
.ff-cf-card.is-bienvenida .ff-cf-brand strong{font-size:20px}
.ff-cf-card.is-bienvenida .ff-cf-form,.ff-cf-card.is-bienvenida .ff-cf-index,.ff-cf-card.is-bienvenida .ff-cf-topbar{display:none}
.ff-cf-card.has-index.is-bienvenida .ff-cf-body{grid-template-columns:minmax(0,680px);justify-content:center}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero{align-items:center;display:flex;gap:12px;padding:10px clamp(16px,4vw,48px)}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-brand{margin:0}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-brand img:first-child,.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-brand .ff-cf-brand-f{border-radius:8px;font-size:16px;height:32px;padding:4px;width:32px}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-brand .ff-cf-brand-name,.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-brand .ff-cf-brand-logos,.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-description,.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-facts,.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-welcome-go{display:none}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero h1{font-size:16px;font-weight:600;letter-spacing:0;line-height:1.3;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-before{margin-bottom:8px;padding:0 16px}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-before summary{min-height:44px}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-before summary h2{font-size:16px}
.ff-cf-topbar{background:#E5E9EF;box-shadow:0 1px 3px rgba(10,22,40,.18);height:5px;left:0;position:fixed;right:0;top:0;z-index:50}
.ff-cf-topbar span{background:var(--ff-marca,#0D1E46);display:block;height:100%;transition:width .3s ease;width:0}
.ff-cf-pasos-on .ff-cf-progress{top:5px}
.ff-cf-pasos-on .ff-cf-progress i{display:none}
.ff-cf-pasos-on .ff-cf-progress{padding-bottom:6px}
.ff-cf-card.is-pasos .ff-cf-main{margin:0 auto;max-width:720px;width:100%}
.ff-cf-card.has-index.is-pasos .ff-cf-body{gap:48px;grid-template-columns:200px minmax(0,680px);justify-content:center}
.ff-cf-card.has-index.is-pasos .ff-cf-main{max-width:680px}
.ff-cf-card.is-pasos .ff-cf-index-bar{display:none}
.ff-cf-card.is-pasos .ff-cf-index-count{font-size:16px;margin-bottom:12px}
.ff-cf-pasos-on .ff-cf-q>.ff-cf-label,.ff-cf-pasos-on .ff-cf-q>.ff-cf-group>legend,.ff-cf-pasos-on .ff-cf-docs>legend,.ff-cf-pasos-on .ff-cf-info>.ff-cf-info-title{font-size:32px;letter-spacing:-.015em;line-height:1.2}
.ff-cf-pasos-on .ff-cf-help,.ff-cf-pasos-on .ff-cf-cond-note,.ff-cf-pasos-on .ff-cf-section-hint{font-size:16px;line-height:1.5}
.ff-cf-pasos-on .ff-cf-option,.ff-cf-pasos-on .ff-cf-check{min-height:56px}
.ff-cf-pasos-on .ff-cf-q input[type=text],.ff-cf-pasos-on .ff-cf-q input[type=email],.ff-cf-pasos-on .ff-cf-q input[type=tel],.ff-cf-pasos-on .ff-cf-q input[type=date],.ff-cf-pasos-on .ff-cf-q input[type=number],.ff-cf-pasos-on .ff-cf-q select,.ff-cf-pasos-on .ff-cf-q textarea{font-size:16px;min-height:56px}
.ff-cf-pasos-on .ff-cf-score span{height:56px;width:56px}
.ff-cf-pasos-on .ff-cf-q.is-current{padding-top:24px}
.ff-cf-done-mark{height:88px;width:88px}
.ff-cf-done-mark svg{height:56px;width:56px}
.ff-cf-done h2{font-size:32px}
.ff-cf-theme-sample{align-items:center;display:flex;gap:12px;margin:0}
.ff-cf-theme-dot{background:#1E3A8A;border:1px solid #6B7487;border-radius:50%;flex:0 0 24px;height:24px;width:24px}
.ff-cf-theme-sample img{background:#fff;border:1px solid #CDD4DF;border-radius:10px;height:40px;object-fit:contain;padding:4px;width:40px}
.ff-cf-theme-sample img[hidden]{display:none}
@media (max-width:640px){
  .ff-cf-start{width:100%}
  .ff-cf-card.is-bienvenida .ff-cf-brand img:first-child,.ff-cf-card.is-bienvenida .ff-cf-brand .ff-cf-brand-f{height:72px;width:72px}
  .ff-cf-pasos-on .ff-cf-q>.ff-cf-label,.ff-cf-pasos-on .ff-cf-q>.ff-cf-group>legend,.ff-cf-pasos-on .ff-cf-docs>legend,.ff-cf-pasos-on .ff-cf-info>.ff-cf-info-title{font-size:26px;line-height:1.25}
  .ff-cf-pasos-on .ff-cf-score span{height:48px;width:48px}
  .ff-cf-done h2{font-size:26px}
}
@media (max-width:979px){
  .ff-cf-card.has-index.is-pasos .ff-cf-body{gap:0;grid-template-columns:minmax(0,1fr)}
  .ff-cf-card.has-index.is-bienvenida .ff-cf-body{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){.ff-cf-topbar span{transition:none}.ff-cf-start:hover{box-shadow:none}}
@media (forced-colors:active){.ff-cf-start{border:2px solid CanvasText}.ff-cf-topbar{border-bottom:5px solid CanvasText;height:0}}
/* 1.18.0 · A (auditoría de Codex, tanda 57): tokens del tema con respaldo, una sola lectura del progreso, menos repetición,
   salto predecible, guardado dicho con palabras y móvil. Los valores del programa llegan en el style de la tarjeta
   (FF_Custom_Forms::marca() / FF_Temas); estos son solo el respaldo y el adaptador hacia fjxp-tokens.css si está cargado.
   Común a todos los programas, sin variantes: neutros, error, éxito, Outfit/DM Sans, espacios, radios, tamaños táctiles. */
.ff-cf-card{--ff-marca:var(--fjx-navy-doc,#0D1E46);--ff-marca-2:var(--fjx-navy-medio,#1E3A8A);--ff-acento:var(--fjx-navy-medio,#1E3A8A);--ff-acento-tinta:var(--fjx-navy-medio,#1E3A8A);--ff-acento-suave:#EEF3FC;--ff-sobre-marca:#fff;--ff-foco:var(--ff-acento)}
.ff-cf-welcome-note{color:#DCE3F2;flex:1 1 100%;font-size:14px;line-height:1.5;margin:0;max-width:560px}
.ff-cf-welcome-go .ff-cf-welcome-note:first-of-type{margin-top:4px}
.ff-cf-start:focus-visible{outline-color:var(--ff-sobre-marca)}
.ff-cf-pasos-on .ff-cf-required-note,.ff-cf-pasos-on .ff-cf-section>h2,.ff-cf-pasos-on .ff-cf-section>.ff-cf-section-hint{display:none}
.ff-cf-pasos-on .ff-cf-section.is-first.is-current>.ff-cf-section-hint{display:block}
.ff-cf-pasos-on .ff-cf-q:focus{outline:none}
.ff-cf-pasos-on .ff-cf-q input,.ff-cf-pasos-on .ff-cf-q select,.ff-cf-pasos-on .ff-cf-q textarea,.ff-cf-pasos-on .ff-cf-option{scroll-margin-bottom:112px;scroll-margin-top:72px}
.ff-cf-auto{align-items:center;color:#3D4A66;cursor:pointer;display:flex;flex:1 1 100%;font-size:14px;gap:10px;line-height:1.4;min-height:44px}
.ff-cf-auto[hidden]{display:none}
.ff-cf-auto input{accent-color:var(--ff-acento,#1E3A8A);flex:0 0 22px;height:22px;margin:0;width:22px}
.ff-cf-auto:has(input:focus-visible){outline:3px solid var(--ff-foco,var(--ff-acento,#1E3A8A));outline-offset:2px}
.ff-cf-pasos-on .ff-cf-autosave{min-height:24px}
.ff-cf-pasos-on .ff-cf-autosave:empty{display:block}
.ff-cf-autosave .ff-cf-link{margin:-10px 0;min-height:44px;padding:0 4px}
.ff-cf-review-status{color:#B42318;font-size:16px;font-weight:600;margin:0 0 8px}
.ff-cf-review-status.is-ready{color:var(--ff-acento-tinta,#1E3A8A)}
.ff-cf-done-note{font-size:16px}
.ff-cf-done-note a{color:var(--ff-acento-tinta,#1E3A8A);font-weight:600}
@media (max-width:640px){
  .ff-cf-card.is-bienvenida .ff-cf-hero{padding:24px 20px 24px}
  .ff-cf-card.is-bienvenida .ff-cf-brand{margin-bottom:16px}
  .ff-cf-card.is-bienvenida .ff-cf-welcome-go{margin-top:20px}
  .ff-cf-pasos-on .ff-cf-q.is-current{padding-top:12px}
  .ff-cf-pasos-on .ff-cf-form{gap:12px}
}

/* 1.20.0 · Bloque «Texto o instrucciones» (tipo `contenido`): solo lectura, título y párrafos, sin control. En el modo de una
   pregunta por pantalla es una pantalla propia (el título toma el tamaño de una pregunta). */
.ff-cf-info{border-left:3px solid var(--ff-acento,#1E3A8A);padding:4px 0 4px 16px}
.ff-cf-info-title{color:#0A1628;font-family:var(--ff-font-display);font-size:18px;font-weight:600;line-height:1.3;margin:0 0 6px}
.ff-cf-info-text p{color:#3D4A66;font-size:16px;line-height:1.55;margin:0 0 10px;max-width:620px}
.ff-cf-info-text p:last-child{margin-bottom:0}
.ff-cf-pasos-on .ff-cf-info.is-current{border-left:0;padding-left:0}
.ff-cf-section-cond{background:var(--ff-acento-suave,#EAF1FD);border-radius:10px;color:var(--ff-acento-tinta,#1E3A8A);margin:6px 0 0;max-width:620px;padding:8px 12px}
/* 1.20.0 · Constructor: galería «Añadir», plegar sección, número de preguntas, condición de sección y bloque de texto. Sin dorado. */
.ff-cf-sec.is-folded{gap:0}
.ff-cf-sec-fold{min-width:34px;padding:5px 8px}
.ff-cf-sec-count{background:#e9ecf5;color:#3f4659}
.ff-cf-sec-hint{display:block;font-family:inherit;line-height:1.4;max-width:100%;resize:vertical;width:100%}
.ff-cf-sec-cond{background:var(--ff-bg);border:1px solid var(--ff-line);border-radius:10px;padding:8px 10px}
.ff-cf-tag.is-info{background:var(--ff-indigo-soft);color:#1e3a8a}
.ff-cf-count{color:var(--ff-muted);font-size:12px;justify-self:end}
.ff-cf-gal{background:#fff;border:1px solid var(--ff-navy);border-radius:14px;box-shadow:0 10px 26px rgba(13,30,70,.12);display:grid;gap:10px;padding:12px}
.ff-cf-gal-search{border:1px solid #8a91a6;border-radius:10px;font-size:14px;min-height:40px;padding:6px 10px;width:100%}
.ff-cf-gal-body{display:grid;gap:12px;max-height:340px;overflow-y:auto}
.ff-cf-gal-group h3{color:var(--ff-navy);font-size:12px;letter-spacing:.04em;margin:0 0 6px;text-transform:uppercase}
.ff-cf-gal-items{display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.ff-cf-gal-item{align-items:flex-start;background:var(--ff-bg);border:1px solid var(--ff-line);border-radius:10px;color:var(--ff-ink);cursor:pointer;display:flex;gap:9px;padding:8px 10px;text-align:left}
.ff-cf-gal-item:hover:not(:disabled){border-color:var(--ff-navy)}
.ff-cf-gal-item:disabled{cursor:not-allowed;opacity:.55}
.ff-cf-gal-item:focus-visible{outline:3px solid var(--ff-navy);outline-offset:2px}
.ff-cf-gal-ico{align-items:center;background:var(--ff-indigo-soft);border-radius:8px;color:var(--ff-navy);display:inline-flex;flex:0 0 30px;font-weight:800;height:30px;justify-content:center}
.ff-cf-gal-txt{display:grid;gap:2px;min-width:0}
.ff-cf-gal-txt strong{font-size:13px}
.ff-cf-gal-txt small{color:var(--ff-muted);font-size:12px;line-height:1.35}
/* La cabecera de sección ahora lleva plegar, número de preguntas, etiqueta y duplicar: en una columna estrecha se parte en líneas. */
.ff-cf-sec{min-width:0}
.ff-cf-sec-head{flex-wrap:wrap}
.ff-cf-sec-title{flex:1 1 160px;width:160px}
.ff-cf-sec-tools{flex-wrap:wrap}

/* 1.21.1 · Plantilla sobria y translúcida. Hegel rechazó la 1.21.0 (26-oct-2026, 21:29 RD: «se ve muy hortero, muchos
   cuadros innecesarios, nada minimalista, quiero algo más profesional, minumalista») y pidió (21:34 RD) «transparente tipo
   apple (modo claro y oscuro, y que uno pueda elegir el fondo), pero que no afecte la visibilidad del texto».
   · UNA superficie translúcida (material tipo Apple: desenfoque y saturación detrás) sobre el fondo elegido. Dentro, nada
     de cajas: la jerarquía es tipografía y espacio. Los únicos bordes claros son los de los controles (≥ 3:1).
   · Modo claro y oscuro: por omisión el del sistema (prefers-color-scheme); [data-ff-modo] lo fija (custom-form.js).
   · Fondo: [data-ff-fondo] = programa (liso) · degradado (por omisión) · malla (neutra) · neutro. Todos salen del tema
     (--ff-marca, --ff-marca-2, --ff-acento-suave, --ff-acento-rgb) o son neutros: sin imágenes ni nada externo.
   · Legibilidad: la superficie tiene ≥ 74 % de opacidad y el texto se mide sobre su color compuesto con el píxel más
     desfavorable de cada fondo y modo (tinta ≥ 4,5:1, bordes de control ≥ 3:1). Sin backdrop-filter o con
     prefers-reduced-transparency, la superficie es opaca. El acento del tema es solo acento: botón, foco y progreso.
   · Datos del evento en UNA línea, con íconos SVG finos (FF_Iconos, trazo 1,5) del color del texto secundario.
   Escala 14 · 16 · 20 · 32 (26 en móvil), controles de 44–56 px, error GOV.UK y funcionamiento sin JS: sin tocar.
   Sin índigo genérico, sin tarjetas lavanda, menta o crema, sin antetítulos de 11 px, sin 01/02/03, sin monoespaciadas,
   sin cursivas en títulos y sin dorado (es de MUN: solo llega con el tema `mun`). */
.ff-cf-shell{--ff-tx:#0A1628;--ff-tx2:#3D4A66;--ff-tx3:#4B5A75;--ff-sep:#8A94A8;--ff-linea:rgba(10,22,40,.1);--ff-control:#6B7487;--ff-control-bg:#FFFFFF;--ff-hover:rgba(10,22,40,.045);--ff-tinte:var(--ff-acento-suave,#EEF3FC);--ff-ac:var(--ff-acento,#1E3A8A);--ff-ac-tx:var(--ff-acento-tinta,#1E3A8A);--ff-foco-c:var(--ff-foco,#1E3A8A);--ff-err:#9B2028;--ff-err-bg:#FDF0F0;--ff-err-tx:#6F141B;--ff-sup:rgba(255,255,255,.76);--ff-sup-op:#FFFFFF;--ff-sup-borde:rgba(10,22,40,.08);--ff-sombra:0 1px 2px rgba(10,22,40,.04),0 18px 50px -14px rgba(10,22,40,.16);--ff-flecha:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%230A1628' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--ff-bg-programa:var(--ff-acento-suave,#EEF3FC);--ff-bg-degradado:radial-gradient(1100px 700px at 0 0,rgba(var(--ff-acento-rgb,30,58,138),.2),transparent 62%),radial-gradient(900px 640px at 100% 100%,rgba(var(--ff-acento-rgb,30,58,138),.12),transparent 60%),linear-gradient(180deg,#F7F9FC,#EDF1F7);--ff-bg-malla:radial-gradient(760px 520px at 12% 8%,#DCE2EB,transparent 64%),radial-gradient(680px 520px at 92% 18%,#E9ECF1,transparent 62%),radial-gradient(820px 600px at 60% 100%,#E0E4EA,transparent 64%),#F4F5F7;--ff-bg-neutro:#F5F5F7;--ff-bg:var(--ff-bg-degradado);color-scheme:light;isolation:isolate;max-width:none;min-height:100vh;padding:48px 24px 64px;position:relative}
.ff-cf-shell[data-ff-fondo=programa]{--ff-bg:var(--ff-bg-programa)}
.ff-cf-shell[data-ff-fondo=malla]{--ff-bg:var(--ff-bg-malla)}
.ff-cf-shell[data-ff-fondo=neutro]{--ff-bg:var(--ff-bg-neutro)}
.ff-cf-shell[data-ff-modo=oscuro]{--ff-tx:#F2F4F8;--ff-tx2:#D3D9E4;--ff-tx3:#B4BCCB;--ff-sep:#7D8699;--ff-linea:rgba(255,255,255,.12);--ff-control:#8F99AD;--ff-control-bg:#151922;--ff-hover:rgba(255,255,255,.06);--ff-tinte:rgba(var(--ff-claro-rgb,159,182,240),.14);--ff-ac:var(--ff-claro,#9FB6F0);--ff-ac-tx:var(--ff-claro,#9FB6F0);--ff-foco-c:var(--ff-claro,#9FB6F0);--ff-err:#FF9C94;--ff-err-bg:rgba(255,156,148,.1);--ff-err-tx:#FFD9D5;--ff-sup:rgba(22,28,44,.8);--ff-sup-op:#161C2C;--ff-sup-borde:rgba(255,255,255,.1);--ff-sombra:0 1px 2px rgba(0,0,0,.3),0 18px 50px -14px rgba(0,0,0,.55);--ff-flecha:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%23E6EAF2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--ff-bg-programa:var(--ff-marca,#0D1E46);--ff-bg-degradado:radial-gradient(1000px 640px at 0 0,rgba(var(--ff-acento-rgb,30,58,138),.26),transparent 62%),linear-gradient(165deg,#0A0F1C,#111A30);--ff-bg-malla:radial-gradient(760px 520px at 12% 8%,#242939,transparent 64%),radial-gradient(680px 520px at 92% 18%,#1B1E27,transparent 62%),radial-gradient(820px 600px at 60% 100%,#272B36,transparent 64%),#0E1014;--ff-bg-neutro:#111214;color-scheme:dark}
@media (prefers-color-scheme:dark){.ff-cf-shell:not([data-ff-modo=claro]){--ff-tx:#F2F4F8;--ff-tx2:#D3D9E4;--ff-tx3:#B4BCCB;--ff-sep:#7D8699;--ff-linea:rgba(255,255,255,.12);--ff-control:#8F99AD;--ff-control-bg:#151922;--ff-hover:rgba(255,255,255,.06);--ff-tinte:rgba(var(--ff-claro-rgb,159,182,240),.14);--ff-ac:var(--ff-claro,#9FB6F0);--ff-ac-tx:var(--ff-claro,#9FB6F0);--ff-foco-c:var(--ff-claro,#9FB6F0);--ff-err:#FF9C94;--ff-err-bg:rgba(255,156,148,.1);--ff-err-tx:#FFD9D5;--ff-sup:rgba(22,28,44,.8);--ff-sup-op:#161C2C;--ff-sup-borde:rgba(255,255,255,.1);--ff-sombra:0 1px 2px rgba(0,0,0,.3),0 18px 50px -14px rgba(0,0,0,.55);--ff-flecha:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%23E6EAF2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--ff-bg-programa:var(--ff-marca,#0D1E46);--ff-bg-degradado:radial-gradient(1000px 640px at 0 0,rgba(var(--ff-acento-rgb,30,58,138),.26),transparent 62%),linear-gradient(165deg,#0A0F1C,#111A30);--ff-bg-malla:radial-gradient(760px 520px at 12% 8%,#242939,transparent 64%),radial-gradient(680px 520px at 92% 18%,#1B1E27,transparent 62%),radial-gradient(820px 600px at 60% 100%,#272B36,transparent 64%),#0E1014;--ff-bg-neutro:#111214;color-scheme:dark}}
/* En oscuro, el acento del tema (que llega en el style de la tarjeta) pasa a su «claro»: foco, progreso y casillas se ven. */
.ff-cf-shell[data-ff-modo=oscuro] .ff-cf-card{--ff-acento:var(--ff-claro,#9FB6F0)!important;--ff-acento-suave:rgba(var(--ff-claro-rgb,159,182,240),.14)!important;--ff-foco:var(--ff-claro,#9FB6F0)!important}
@media (prefers-color-scheme:dark){.ff-cf-shell:not([data-ff-modo=claro]) .ff-cf-card{--ff-acento:var(--ff-claro,#9FB6F0)!important;--ff-acento-suave:rgba(var(--ff-claro-rgb,159,182,240),.14)!important;--ff-foco:var(--ff-claro,#9FB6F0)!important}}
html:has(body.ff-cf-page){background:#F5F5F7}
html:has(.ff-cf-shell[data-ff-modo=oscuro]){background:#111214}
@media (prefers-color-scheme:dark){html:has(.ff-cf-shell:not([data-ff-modo=claro])){background:#111214}}
body.ff-cf-page{background:transparent}
.ff-cf-shell::before{background:var(--ff-bg);content:"";inset:0;pointer-events:none;position:fixed;z-index:-1}
.ff-ico{display:block;flex:0 0 auto;height:1em;width:1em}
/* La superficie */
.ff-cf-card{background:transparent;border:1px solid var(--ff-sup-borde);border-radius:24px;box-shadow:var(--ff-sombra);color:var(--ff-tx);max-width:1072px;position:relative;z-index:0}
.ff-cf-card:not(.has-index),.ff-cf-card.has-index.is-bienvenida{max-width:760px}
.ff-cf-card::before{-webkit-backdrop-filter:blur(28px) saturate(1.6);backdrop-filter:blur(28px) saturate(1.6);background:var(--ff-sup);border-radius:inherit;content:"";inset:0;position:absolute;z-index:-1}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.ff-cf-card::before{background:var(--ff-sup-op)}}
@media (prefers-reduced-transparency:reduce){.ff-cf-card::before{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--ff-sup-op)}}
/* Cabecera: sin banda de color; marca, título, una frase y los datos en una línea */
.ff-cf-hero{background:none;color:var(--ff-tx);padding:40px 48px 8px}
.ff-cf-hero::after{content:none}
.ff-cf-brand{color:var(--ff-tx2);margin-bottom:24px}
.ff-cf-brand strong{color:var(--ff-tx)}
.ff-cf-brand small{color:var(--ff-tx3)}
.ff-cf-brand img{border-radius:10px;height:36px;padding:4px;width:36px}
.ff-cf-brand .ff-cf-brand-f{background:var(--ff-marca,#0D1E46);color:#fff;height:36px;width:36px}
.ff-cf-hero h1{color:var(--ff-tx);margin:0;max-width:760px;text-wrap:balance}
.ff-cf-description{color:var(--ff-tx2);max-width:640px}
.ff-cf-facts{align-items:center;color:var(--ff-tx3);display:flex;flex-wrap:wrap;gap:6px 22px;list-style:none;margin:16px 0 0;padding:0}
.ff-cf-fact{align-items:center;display:inline-flex;font-size:14px;gap:7px;line-height:1.5;min-width:0}
.ff-cf-facts .ff-cf-fact+.ff-cf-fact::before{content:none} /* el icono ya separa: sin «·» que, al partirse la línea, quedaría al principio */
.ff-cf-fact-ico{display:inline-flex;font-size:16px}
.ff-cf-fact-label{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}
.ff-cf-fact-value{color:var(--ff-tx3);overflow-wrap:anywhere}
/* Modo y fondo: discretos, arriba a la derecha; solo con JS */
.ff-cf-hero{position:relative}
.ff-cf-apariencia{display:flex;gap:8px;position:absolute;right:40px;top:32px}
.ff-cf-apariencia[hidden]{display:none}
.ff-cf-hero:has(.ff-cf-apariencia:not([hidden])) .ff-cf-brand{padding-right:400px}
.ff-cf-apariencia label{align-items:center;color:var(--ff-tx3);display:inline-flex;font-size:14px;gap:6px}
.ff-cf-apariencia select{-webkit-appearance:none;appearance:none;background:var(--ff-hover) var(--ff-flecha) right 8px center/14px no-repeat;border:0;border-radius:8px;color:var(--ff-tx);cursor:pointer;font:inherit;font-size:14px;min-height:36px;padding:0 28px 0 10px}
.ff-cf-apariencia select:focus-visible{outline:3px solid var(--ff-foco-c);outline-offset:2px}
@media (pointer:coarse){.ff-cf-apariencia select{min-height:44px}}
.ff-cf-identity{background:none;border:0;color:var(--ff-tx2);padding:8px 48px 0}
.ff-cf-main{padding:28px 48px 40px}
.ff-cf-card.is-bienvenida .ff-cf-main{padding-top:0}
/* Bienvenida */
.ff-cf-card.is-bienvenida .ff-cf-hero{padding:48px 48px 28px}
.ff-cf-card.is-bienvenida .ff-cf-brand img:first-child,.ff-cf-card.is-bienvenida .ff-cf-brand .ff-cf-brand-f{border-radius:14px;height:64px;width:64px}
.ff-cf-start{background:var(--ff-acento-tinta,#1E3A8A);border-color:var(--ff-acento-tinta,#1E3A8A);box-shadow:none;color:#fff}
.ff-cf-start:hover{background:var(--ff-acento-tinta,#1E3A8A);box-shadow:none;filter:brightness(1.12)}
.ff-cf-start:focus-visible{outline:3px solid var(--ff-foco-c);outline-offset:3px}
.ff-cf-welcome-go .ff-cf-hint,.ff-cf-welcome-note{color:var(--ff-tx3)}
/* Índice: texto ligero, sin caja ni carril */
.ff-cf-index-title,.ff-cf-index-meta{color:var(--ff-tx3)}
.ff-cf-index-count{color:var(--ff-tx)}
.ff-cf-index-bar{background:var(--ff-linea);height:3px}
.ff-cf-index-bar span,.ff-cf-progress i span,.ff-cf-topbar span{background:var(--ff-ac)}
.ff-cf-index a{border-left:0;border-radius:8px;color:var(--ff-tx3);padding:7px 8px 7px 0}
.ff-cf-index a:hover{background:none;color:var(--ff-tx)}
.ff-cf-index a[aria-current]{background:none;color:var(--ff-tx)}
.ff-cf-index a:focus-visible{outline-color:var(--ff-foco-c)}
.ff-cf-index-dot{background:transparent;border-color:var(--ff-control)}
.ff-cf-index a[aria-current] .ff-cf-index-dot{background:var(--ff-ac);border-color:var(--ff-ac);box-shadow:inset 0 0 0 3px var(--ff-sup-op)}
.ff-cf-index a.is-done .ff-cf-index-meta{color:var(--ff-ac-tx)}
.ff-cf-index a.has-error .ff-cf-index-dot{background:var(--ff-err);border-color:var(--ff-err)}
.ff-cf-index a.has-error .ff-cf-index-meta{color:var(--ff-err)}
/* Cuerpo: secciones separadas por espacio y su título */
.ff-cf-progress{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--ff-sup-op);border-bottom-color:var(--ff-linea)}
.ff-cf-progress p{color:var(--ff-tx)}
.ff-cf-progress p span+span,.ff-cf-required-note,.ff-cf-section-hint,.ff-cf-help,.ff-cf-cond-note,.ff-cf-scale-end,.ff-cf-submit p,.ff-cf-hint,.ff-cf-autosave{color:var(--ff-tx3)}
.ff-cf-progress i,.ff-cf-topbar{background:var(--ff-linea)}
.ff-cf-req{color:var(--ff-err)}
.ff-cf-section{border-top:0;padding:40px 0 4px}
.ff-cf-section h2,.ff-cf-label,.ff-cf-group legend,.ff-cf-docs>legend,.ff-cf-pasos-on .ff-cf-q>.ff-cf-label,.ff-cf-pasos-on .ff-cf-q>.ff-cf-group>legend,.ff-cf-pasos-on .ff-cf-docs>legend,.ff-cf-pasos-on .ff-cf-info>.ff-cf-info-title,.ff-cf-review>h2,.ff-cf-review-list h3,.ff-cf-review-answer,.ff-cf-done h2,.ff-cf-state h2,.ff-cf-before-block h3,.ff-cf-ficha-title,.ff-cf-ficha-data dt,.ff-cf-ficha-list-title,.ff-cf-info-title,.ff-cf-option span,.ff-cf-check span{color:var(--ff-tx)}
.ff-cf-section-n,.ff-cf-pasos-on .ff-cf-step-n,.ff-cf-link,.ff-cf-review-item .ff-cf-link,.ff-cf-review-status.is-ready,.ff-cf-done-note a,.ff-cf-state p a:not(.ff-button),.ff-cf-ficha-ico{color:var(--ff-ac-tx)}
.ff-cf-q{padding:20px 0}
.ff-cf-q+.ff-cf-q{border-top:0}
.ff-cf-q.has-error{border-left-color:var(--ff-err)}
.ff-cf-error,.ff-cf-review-status,.ff-cf-review-answer.is-error{color:var(--ff-err)}
.ff-cf-review-item.has-error{border-left-color:var(--ff-err)}
.ff-cf-q input[type=text],.ff-cf-q input[type=email],.ff-cf-q input[type=tel],.ff-cf-q input[type=date],.ff-cf-q input[type=number],.ff-cf-q select,.ff-cf-q textarea{background-color:var(--ff-control-bg);border-color:var(--ff-control);box-shadow:none;color:var(--ff-tx)}
.ff-cf-q select{background-image:var(--ff-flecha)}
.ff-cf-q input:hover,.ff-cf-q select:hover,.ff-cf-q textarea:hover{border-color:var(--ff-tx)}
.ff-cf-q input:not([type=radio]):not([type=checkbox]):focus,.ff-cf-q select:focus,.ff-cf-q textarea:focus{border-color:var(--ff-ac);box-shadow:0 0 0 4px var(--ff-tinte)}
.ff-cf-q.has-error input[type=text],.ff-cf-q.has-error input[type=email],.ff-cf-q.has-error input[type=tel],.ff-cf-q.has-error input[type=date],.ff-cf-q.has-error input[type=number],.ff-cf-q.has-error select,.ff-cf-q.has-error textarea{border-color:var(--ff-err)}
/* Opciones: filas sin caja (la casilla o el círculo es el control); la elegida, con un tinte */
.ff-cf-option,.ff-cf-check{background:transparent;border-color:transparent;box-shadow:none;padding:12px}
.ff-cf-options:not(.is-cortas):not(.is-multi) .ff-cf-option,.ff-cf-group>.ff-cf-check{margin:0 -12px}
.ff-cf-option:hover,.ff-cf-check:hover{background:var(--ff-hover);border-color:transparent}
.ff-cf-option:has(input:checked),.ff-cf-check:has(input:checked){background:var(--ff-tinte);border-color:transparent;box-shadow:none}
.ff-cf-option:has(input:focus-visible),.ff-cf-check:has(input:focus-visible){outline-color:var(--ff-foco-c)}
.ff-cf-score span{background:transparent;border-color:var(--ff-control);color:var(--ff-tx)}
.ff-cf-score:hover span{border-color:var(--ff-ac)}
.ff-cf-score input:checked+span{color:#fff}
.ff-cf-ficha{background:none;border:0;border-left:2px solid var(--ff-linea);border-radius:0;color:var(--ff-tx2);padding:2px 0 2px 14px}
.ff-cf-info{border-left:0;padding-left:0}
.ff-cf-info-text p,.ff-cf-before-block,.ff-cf-done p,.ff-cf-state p{color:var(--ff-tx2)}
.ff-cf-section-cond{background:none;color:var(--ff-tx3);padding:0}
.ff-cf-aviso{background:var(--ff-tinte);border-left:0;color:var(--ff-tx)}
.ff-cf-draft{background:var(--ff-tinte);border:0;color:var(--ff-tx)}
.ff-cf-summary,.ff-cf-server-error{background:var(--ff-err-bg);border-color:var(--ff-err);color:var(--ff-err-tx)}
.ff-cf-summary a{color:var(--ff-err-tx)}
/* «Antes de empezar»: plegado y sin caja, un enlace con su flecha */
.ff-cf-before{background:none;border:0;border-radius:0;box-shadow:none;margin:0 0 8px;padding:0}
.ff-cf-before>summary{align-items:center;color:var(--ff-ac-tx);display:inline-flex;gap:10px;min-height:44px}
.ff-cf-before>summary h2{color:var(--ff-ac-tx);font-family:var(--ff-font-body);font-size:16px;font-weight:600}
.ff-cf-before>summary::after{border-bottom:1.5px solid currentColor;border-right:1.5px solid currentColor;content:"";float:none;height:7px;margin:-4px 0 0;transform:rotate(45deg);width:7px}
.ff-cf-before[open]>summary::after{content:"";margin-top:4px;transform:rotate(-135deg)}
.ff-cf-before>summary:focus-visible{border-radius:6px;outline:3px solid var(--ff-foco-c);outline-offset:2px}
.ff-cf-before-block{max-width:640px}
.ff-cf-steps li{border-left:0;padding-left:0}
.ff-cf-steps strong{color:var(--ff-tx)}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-before{padding:0}
/* Botones: el principal lleva el acento del tema; el secundario, solo texto */
.ff-cf-submit{border-top:0;padding-top:12px}
.ff-cf-submit .ff-button,.ff-cf-nav .ff-cf-next,.ff-cf-done .ff-button,.ff-cf-state .ff-button{background:var(--ff-acento-tinta,#1E3A8A);border-color:var(--ff-acento-tinta,#1E3A8A);box-shadow:none;color:#fff}
.ff-cf-submit .ff-button:hover,.ff-cf-nav .ff-cf-next:hover{background:var(--ff-acento-tinta,#1E3A8A);border-color:var(--ff-acento-tinta,#1E3A8A);box-shadow:none;filter:brightness(1.12);transform:none}
.ff-cf-submit .ff-button:focus-visible,.ff-cf-back:focus-visible,.ff-cf-nav .ff-cf-next:focus-visible{outline-color:var(--ff-foco-c)}
/* 1.28.2 · AJ en oscuro: #0021C6 sobre la tarjeta oscura da 1,67:1 (< 3:1 de un control); borde #7FB2FF de 1 px (7,98:1) para que el botón se distinga */
.ff-cf-shell[data-ff-modo=oscuro] .ff-cf-card[style*="--ff-acento-tinta:#0021c6" i] .ff-cf-submit .ff-button,.ff-cf-shell[data-ff-modo=oscuro] .ff-cf-card[style*="--ff-acento-tinta:#0021c6" i] .ff-cf-nav .ff-cf-next,.ff-cf-shell[data-ff-modo=oscuro] .ff-cf-card[style*="--ff-acento-tinta:#0021c6" i] .ff-cf-done .ff-button,.ff-cf-shell[data-ff-modo=oscuro] .ff-cf-card[style*="--ff-acento-tinta:#0021c6" i] .ff-cf-state .ff-button{border-color:#7FB2FF}
@media (prefers-color-scheme:dark){.ff-cf-shell:not([data-ff-modo=claro]) .ff-cf-card[style*="--ff-acento-tinta:#0021c6" i] .ff-cf-submit .ff-button,.ff-cf-shell:not([data-ff-modo=claro]) .ff-cf-card[style*="--ff-acento-tinta:#0021c6" i] .ff-cf-nav .ff-cf-next,.ff-cf-shell:not([data-ff-modo=claro]) .ff-cf-card[style*="--ff-acento-tinta:#0021c6" i] .ff-cf-done .ff-button,.ff-cf-shell:not([data-ff-modo=claro]) .ff-cf-card[style*="--ff-acento-tinta:#0021c6" i] .ff-cf-state .ff-button{border-color:#7FB2FF}}
.ff-cf-done .ff-button-secondary{background:transparent;border-color:var(--ff-control);color:var(--ff-ac-tx)}
.ff-cf-back{background:transparent;border-color:transparent;color:var(--ff-tx2)}
.ff-cf-back:hover{background:var(--ff-hover);border-color:transparent;color:var(--ff-tx)}
.ff-cf-key{background:var(--ff-hover);border-color:transparent;color:var(--ff-tx3)}
.ff-cf-auto{color:var(--ff-tx2)}
.ff-cf-review-item{border-top-color:var(--ff-linea)}
.ff-cf-review-item dt,.ff-cf-review-answer.is-empty{color:var(--ff-tx3)}
.ff-cf-done-mark,.ff-cf-state-icon{background:var(--ff-tinte);box-shadow:none;color:var(--ff-ac-tx)}
.ff-cf-topbar{box-shadow:none;height:3px}
.ff-cf-pasos-on .ff-cf-progress{top:3px}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero h1{color:var(--ff-tx)}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero{padding:16px 48px}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-apariencia{flex:0 0 auto;margin-left:auto;order:2;position:static}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero h1{flex:1 1 auto}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero .ff-cf-brand{padding-right:0}
/* Pie: dentro de la superficie (sobre el fondo elegido no se garantiza el contraste) */
.ff-cf-foot{border-top:1px solid var(--ff-linea);color:var(--ff-tx3);font-size:14px;line-height:1.5;margin:0;padding:20px 48px 28px}
.ff-cf-foot a{color:var(--ff-ac-tx);font-weight:600}
.ff-cf-foot a:focus-visible{outline:3px solid var(--ff-foco-c);outline-offset:3px}
@media (max-width:979px){
  .ff-cf-card,.ff-cf-card:not(.has-index){max-width:760px}
  .ff-cf-hero{padding:36px 40px 8px}
  .ff-cf-identity{padding:8px 40px 0}
  .ff-cf-main,.has-index .ff-cf-main{padding:28px 40px 40px}
  .ff-cf-card.is-bienvenida .ff-cf-hero{padding:40px 40px 24px}
  .ff-cf-foot{padding:20px 40px 28px}
}
@media (max-width:780px){
  .ff-cf-shell{padding:12px 12px 32px}
  .ff-cf-card{border:1px solid var(--ff-sup-borde);border-radius:20px;box-shadow:var(--ff-sombra)}
  .ff-cf-hero,.ff-cf-card.is-bienvenida .ff-cf-hero{padding:24px 20px 4px}
  .ff-cf-card.is-bienvenida .ff-cf-hero{padding-bottom:28px}
  .ff-cf-apariencia{flex-wrap:wrap;margin:0 0 20px;position:static}
  .ff-cf-hero:has(.ff-cf-apariencia:not([hidden])) .ff-cf-brand{padding-right:0}
  .ff-cf-identity{padding:8px 20px 0}
  .ff-cf-main,.has-index .ff-cf-main{padding:16px 20px 28px}
  .ff-cf-progress{margin:-16px -20px 0;padding:10px 20px}
  .ff-cf-section{padding-top:32px}
  .ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero{padding:12px 20px}
  .ff-cf-foot{padding:16px 20px 24px}
}
@media (max-width:640px){
  .ff-cf-facts{gap:4px 16px}
  .ff-cf-nav{background:var(--ff-sup-op);border-top-color:var(--ff-linea);margin:20px -20px 0;padding:12px 20px calc(12px + env(safe-area-inset-bottom))}
  .ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero{flex-wrap:wrap;row-gap:8px}
  .ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero h1{flex:1 1 0;min-width:0}
  .ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-apariencia{margin:0;order:3;width:100%}
  .ff-cf-apariencia{flex-wrap:nowrap;gap:8px}
  .ff-cf-apariencia label>span{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px} /* en el móvil, las opciones ya dicen qué son */
}
/* La bienvenida (con JS) tiene una sola columna: el índice no se ve, y la regla de «una pregunta por pantalla» la dejaba en 200 px. */
.ff-cf-card.has-index.is-pasos.is-bienvenida .ff-cf-body{grid-template-columns:minmax(0,680px);justify-content:center}
.ff-cf-card.has-index.is-pasos.is-bienvenida .ff-cf-main{max-width:680px;width:100%}
@media (prefers-reduced-motion:reduce){.ff-cf-start:hover,.ff-cf-submit .ff-button:hover,.ff-cf-nav .ff-cf-next:hover{filter:none}}
@media (forced-colors:active){.ff-cf-shell::before,.ff-cf-card::before{display:none}.ff-cf-card{background:Canvas;border:1px solid CanvasText}.ff-cf-apariencia select{border:1px solid CanvasText}}

/* 1.22.0 — lote 2: escala 0–10, «Otro», cuadrícula, imagen o video, saltos y secciones repetibles.
   Sobrio a propósito: sin tarjetas, cajas, sombras, cristal, chips ni degradados; líneas finas, texto y acento con los tokens
   de la 1.21.1 (--ff-tx, --ff-tx2, --ff-linea, --ff-ac-tx), para que el modo oscuro también se lea. */
.ff-cf-nps{display:flex;margin:4px 0 0}
.ff-cf-nps-score{align-items:center;cursor:pointer;display:flex;flex:1 1 0;flex-direction:column;gap:6px;justify-content:center;min-height:44px;min-width:0;padding:4px 0}
.ff-cf-nps-score span{color:var(--ff-tx2,#3D4A66);font-size:16px;line-height:1}
.ff-cf-nps-score input{accent-color:var(--ff-acento,#1E3A8A);cursor:pointer;height:20px;margin:0;width:20px}
.ff-cf-nps-score:has(input:checked) span{color:var(--ff-ac-tx,#1E3A8A);font-weight:700}
.ff-cf-nps-score input:focus-visible{outline:2px solid var(--ff-foco,#1E3A8A);outline-offset:2px}
.ff-cf-nps-ends{color:var(--ff-tx2,#3D4A66);display:flex;font-size:14px;gap:16px;justify-content:space-between;line-height:1.4;margin:4px 0 0}
.ff-cf-otro{display:grid;gap:4px;margin:8px 0 0;max-width:420px}
.ff-cf-otro-label{color:var(--ff-tx3,#4B5A75);font-size:14px}
.ff-cf-otro.is-off input[type=text]{opacity:.6} /* se atenúa el campo, nunca el rótulo (contraste ≥ 4,5:1) */
.ff-cf-otro input[type=text]{min-height:44px}
.ff-cf-grid-wrap{margin:4px 0 0}
.ff-cf-grid{border-collapse:collapse;width:100%}
.ff-cf-grid th,.ff-cf-grid td{border-bottom:1px solid var(--ff-linea,#E5E9EF);color:var(--ff-tx2,#3D4A66);font-size:16px;padding:0;text-align:center;vertical-align:middle}
.ff-cf-grid thead th{font-size:14px;font-weight:600;padding:8px 6px}
.ff-cf-grid tbody th{font-weight:400;padding:8px 12px 8px 0;text-align:left;width:34%}
.ff-cf-grid-cell{align-items:center;cursor:pointer;display:flex;justify-content:center;min-height:44px;min-width:44px}
.ff-cf-grid-cell input{accent-color:var(--ff-acento,#1E3A8A);cursor:pointer;height:20px;margin:0;width:20px}
.ff-cf-grid-cell input:focus-visible{outline:2px solid var(--ff-foco,#1E3A8A);outline-offset:2px}
.ff-cf-grid-col{clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}
@media (max-width:599px){
  .ff-cf-grid,.ff-cf-grid tbody,.ff-cf-grid tr,.ff-cf-grid th,.ff-cf-grid td{display:block}
  .ff-cf-grid thead{clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;width:1px}
  .ff-cf-grid tr{border-bottom:1px solid var(--ff-linea,#E5E9EF);padding:10px 0}
  .ff-cf-grid th,.ff-cf-grid td{border:0;text-align:left}
  .ff-cf-grid tbody th{color:var(--ff-tx,#0A1628);font-weight:600;padding:0 0 2px;width:auto}
  .ff-cf-grid-cell{gap:12px;justify-content:flex-start}
  .ff-cf-grid-col{clip:auto;clip-path:none;height:auto;overflow:visible;position:static;white-space:normal;width:auto}
}
.ff-cf-media{margin:8px 0 0;max-width:640px}
.ff-cf-media-img{display:block;height:auto;max-width:100%}
.ff-cf-media.is-video{width:100%}
.ff-cf-video-box{aspect-ratio:16/9;background:#F6F8FC;position:relative;width:100%}
.ff-cf-shell[data-ff-modo=oscuro] .ff-cf-video-box{background:var(--ff-control-bg,#151922)}
@media (prefers-color-scheme:dark){.ff-cf-shell:not([data-ff-modo=claro]) .ff-cf-video-box{background:var(--ff-control-bg,#151922)}}
.ff-cf-video-box iframe{border:0;height:100%;inset:0;position:absolute;width:100%}
.ff-cf-video-alt{font-size:14px;line-height:1.4;margin:8px 0 0}
.ff-cf-video-alt a{color:var(--ff-ac-tx,#1E3A8A);text-decoration:underline}
.ff-cf-info.has-media{border-left:0;padding-left:0}
.ff-cf-pasos-on .ff-cf-section>.ff-cf-section-media{display:none}
.ff-cf-pasos-on .ff-cf-section.is-first.is-current>.ff-cf-section-media{display:block}
/* El título de la sección ya sale una vez (h2 o rótulo del paso): este queda en el DOM solo para el nombre accesible y el resumen. */
.ff-cf-rep-title{display:none}
.ff-cf-rep-list{display:grid;gap:0}
.ff-cf-rep-item{border:0;border-top:1px solid var(--ff-linea,#E5E9EF);display:flow-root;margin:0;min-width:0;padding:16px 0}
.ff-cf-rep-item:first-child{border-top:0;padding-top:4px}
.ff-cf-rep-item>legend{color:var(--ff-tx,#0A1628);float:left;font-family:var(--ff-font-body);font-size:20px;font-weight:600;letter-spacing:0;line-height:1.3;padding:0;width:calc(100% - 96px)}
.ff-cf-rep-item>.ff-cf-q{clear:both;margin:12px 0 0}
.ff-cf-rep-item[data-ff-bad]>legend{color:var(--ff-err,#B42318)}
.ff-cf-rep-remove{float:right;font-size:14px;min-height:44px;min-width:44px;padding:0 4px}
.ff-cf-rep-remove:focus-visible,.ff-cf-rep-add:focus-visible{outline:2px solid var(--ff-foco,#1E3A8A);outline-offset:2px}
.ff-cf-rep-add{background:transparent;border:1px solid var(--ff-acento,#1E3A8A);color:var(--ff-ac-tx,#1E3A8A);font-size:16px;justify-self:start;margin:8px 0 0;min-height:44px}
/* Dentro de un elemento repetible las preguntas no son pantallas: etiquetas a 16 px/600 (escala 14·16·20·32), también por pasos. */
.ff-cf-pasos-on .ff-cf-rep-item .ff-cf-q>.ff-cf-label,.ff-cf-pasos-on .ff-cf-rep-item .ff-cf-q>.ff-cf-group>legend{font-family:var(--ff-font-body);font-size:16px;font-weight:600;letter-spacing:0;line-height:1.4}
/* 1.22.1 — el logo de la marca es siempre un icono cuadrado. La cabecera es un flex con padding-right de 400 px (barra de Modo y Fondo) y un
   nombre largo; sin esto el <img>/la «F» se encogían de ancho (flex-shrink:1) y el tema del sitio los dejaba sin tope (img{max-width:100%}):
   quedaba una ficha blanca más alta que ancha (45×64 en AJ), que en modo oscuro se leía como un borde vertical junto al título. El ancho y el
   alto ya los fija cada estado (64, 40, 36, 32, 72): aquí solo se impide que el ancho ceda y se fuerza la proporción 1:1. */
.ff-cf-brand>img:first-child,.ff-cf-brand>.ff-cf-brand-f{aspect-ratio:1/1;box-sizing:border-box;flex:none;max-width:none;min-width:0}
.ff-cf-brand>img:first-child{object-fit:contain}

/* 1.23.0: opción de un radio con `detalles` — ficha de dos líneas: la opción (16/600) y debajo su subtítulo (14). Mismos tokens del tema. */
.ff-cf-option.has-detail{align-items:flex-start}
.ff-cf-option.has-detail input{margin-top:2px}
.ff-cf-option-body{display:grid;gap:3px;min-width:0}
.ff-cf-option .ff-cf-option-title{color:var(--ff-tx,#0A1628);font-size:16px;font-weight:600;line-height:1.35}
.ff-cf-option .ff-cf-option-sub{color:var(--ff-tx2,#3D4A66);font-size:14px;font-weight:400;line-height:1.4}

/* 1.25.0 — Catálogo de formularios (portada de /formularios/administrar/). Mismos tokens del Centro; sin dorado. */
.ff-cat-head .ff-button{white-space:nowrap}
.ff-cat-new{margin:0 0 20px}.ff-cat-new>summary{background:var(--ff-indigo-soft);border:1px solid var(--ff-line);border-radius:12px;color:#2f3fa8;cursor:pointer;font-weight:800;list-style:none;padding:12px 16px}
.ff-cat-new:not([open]){display:none}
.ff-cat-new[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:12px}
.ff-cat-tabs{border-bottom:1px solid var(--ff-line);display:flex;flex-wrap:wrap;gap:4px;margin:0 0 16px}
.ff-cat-tabs a{border-bottom:3px solid transparent;color:var(--ff-muted);font-size:14px;font-weight:700;padding:10px 12px;text-decoration:none}
.ff-cat-tabs a span{background:#f1f2f6;border-radius:999px;color:#3f4659;font-size:12px;margin-left:4px;padding:2px 8px}
.ff-cat-tabs a[aria-current="page"]{border-bottom-color:#3f52d6;color:var(--ff-ink)}
.ff-cat-filters{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}
.ff-cat-filters input[type=search],.ff-cat-filters select{background:var(--ff-surface);border:1px solid var(--ff-line);border-radius:10px;color:var(--ff-ink);font:inherit;min-height:42px;padding:8px 12px}
.ff-cat-filters input[type=search]{min-width:260px}
.ff-cat-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.ff-cat-card{display:flex;flex-direction:column;gap:12px}.ff-cat-card h3{font-size:18px;line-height:1.25;margin:0;overflow-wrap:anywhere}
.ff-cat-card.is-archivado{opacity:.78}
.ff-cat-card .ff-cf-pill.is-borrador{background:#eef0f6;color:#3f4659}
.ff-cat-card-top{align-items:center;display:flex;flex-wrap:wrap;gap:6px}
.ff-cat-chip{background:var(--ff-indigo-soft);border-radius:999px;color:#2f3fa8;font-size:12px;font-weight:700;padding:5px 11px}.ff-cat-chip.is-tipo{background:#f1f2f6;color:#3f4659}
.ff-cf-pill.is-archivado{background:#e9eaf0;color:#3f4659}
.ff-cat-meta{display:grid;gap:6px;margin:0}.ff-cat-meta>div{display:flex;gap:8px;justify-content:space-between}
.ff-cat-meta dt{color:var(--ff-muted);font-size:13px}.ff-cat-meta dd{font-size:14px;font-weight:700;margin:0;text-align:right}
.ff-cat-readonly{background:#f6f7fb;border-radius:10px;padding:8px 10px}
/* 1.30.0: recuentos de un formulario de otro sistema (filtro funajit_forms_catalogo_externos); la barra lleva el color del tema del programa. */
.ff-cat-resumen{border-top:1px solid var(--ff-line,#e5e9ef);padding-top:10px}.ff-cat-resumen summary{cursor:pointer;font-size:14px;font-weight:700}
.ff-cat-resumen section{margin-top:12px}.ff-cat-resumen h4{font-size:14px;line-height:1.35;margin:0 0 4px}
.ff-cat-resumen ul{display:grid;gap:6px;list-style:none;margin:6px 0 0;padding:0}
.ff-cat-resumen li{display:grid;font-size:14px;gap:2px 8px;grid-template-columns:minmax(0,1fr) auto}.ff-cat-resumen li b{font-variant-numeric:tabular-nums}
.ff-cat-resumen li i{background:var(--ff-cat-acento,#1e3a8a);border-radius:2px;grid-column:1/-1;height:4px;min-width:2px}
.ff-cat-card .ff-cf-actions{margin-top:auto}
.ff-cat-card .ff-cf-actions{gap:6px}.ff-cat-card .ff-cf-actions .ff-button,.ff-cat-card .ff-cf-actions button{font-size:13px;min-height:0;padding:7px 11px}
@media(max-width:560px){.ff-cat-grid{grid-template-columns:1fr}.ff-cat-filters input[type=search]{min-width:0;width:100%}.ff-cat-head{flex-direction:column}}
/* 1.26.0 · Estándar de la cabecera (Hegel, 27-oct-2026, 13:21 RD: «esto no se ve nada profesional y no creo que esté al nivel de lo
   que estamos haciendo»). Cinco correcciones, todas de presentación y sin tocar la lógica ni el esquema:
   1. Modo y fondo (que Hegel pidió el 26-oct) salen de la tarjeta: ya no parecen parte de lo que ve quien responde. Son un botón
      discreto «Apariencia» arriba a la derecha de la página, con un panel (Modo: 3 opciones; Fondo: 4). Solo con JS.
   2. El título se lee entero (en dos líneas si hace falta) también en la cabecera compacta del paso a paso.
   3. El progreso es una barra fina con respiro y texto legible, sin bloque oscuro ni borde; el color es el del tema.
   4. «Guardado…» es una línea discreta bajo la barra (solo existe después de guardar); un fallo se ve entero, con «Reintentar».
   5. Composición: columna de lectura de unos 680 px y modo oscuro con superficie legible sobre un fondo más sobrio. */
.ff-cf-tools{display:flex;justify-content:flex-end;margin:0 auto 14px;max-width:760px;position:relative;z-index:10}
.ff-cf-tools[hidden]{display:none}
.ff-cf-shell:has(.ff-cf-card.has-index:not(.is-bienvenida)) .ff-cf-tools{max-width:1072px}
.ff-cf-tools-btn{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:var(--ff-sup-op);border:1px solid var(--ff-linea);border-radius:999px;color:var(--ff-tx);cursor:pointer;display:inline-flex;font-family:var(--ff-font-body);font-size:14px;font-weight:600;gap:8px;line-height:1;min-height:44px;padding:0 16px 0 12px}
.ff-cf-tools-btn:hover{background:var(--ff-sup-op);border-color:var(--ff-control)}
.ff-cf-tools-btn:focus-visible{outline:3px solid var(--ff-foco-c);outline-offset:3px}
.ff-cf-tools-btn svg{flex:none}
.ff-cf-ap-panel{background:var(--ff-sup-op);border:1px solid var(--ff-linea);border-radius:18px;box-shadow:var(--ff-sombra);color:var(--ff-tx);display:grid;gap:18px;padding:18px;position:absolute;right:0;top:calc(100% + 8px);width:min(340px,calc(100vw - 24px))}
.ff-cf-ap-panel[hidden]{display:none}
.ff-cf-ap-set{border:0;margin:0;min-width:0;padding:0}
.ff-cf-ap-set legend{color:var(--ff-tx3);float:left;font-family:var(--ff-font-body);font-size:14px;font-weight:600;margin:0 0 8px;padding:0;width:100%}
.ff-cf-ap-set legend+*{clear:both}
.ff-cf-ap-seg{background:var(--ff-hover);border-radius:12px;display:grid;gap:4px;grid-template-columns:repeat(3,1fr);padding:4px}
.ff-cf-ap-bg{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.ff-cf-ap-seg label,.ff-cf-ap-bg label{cursor:pointer;display:block;position:relative}
.ff-cf-ap-seg input,.ff-cf-ap-bg input{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}
.ff-cf-ap-seg span{align-items:center;border-radius:9px;color:var(--ff-tx2);display:flex;font-size:14px;font-weight:500;justify-content:center;min-height:44px;padding:0 6px;text-align:center}
.ff-cf-ap-seg input:checked+span{background:var(--ff-sup-op);box-shadow:inset 0 0 0 1.5px var(--ff-ac);color:var(--ff-tx);font-weight:600}
.ff-cf-ap-bg label{display:grid;gap:6px}
.ff-cf-ap-sw{border:1px solid var(--ff-linea);border-radius:10px;display:block;height:40px;overflow:hidden;position:relative}
.ff-cf-ap-sw.is-programa{background:var(--ff-bg-programa)}
.ff-cf-ap-sw.is-degradado{background:var(--ff-bg-degradado);background-size:cover}
.ff-cf-ap-sw.is-malla{background:var(--ff-bg-malla)}
.ff-cf-ap-sw.is-neutro{background:var(--ff-bg-neutro)}
.ff-cf-ap-bg span{color:var(--ff-tx2);font-size:14px;line-height:1.3}
.ff-cf-ap-bg input:checked~.ff-cf-ap-sw{box-shadow:0 0 0 2px var(--ff-sup-op),0 0 0 4px var(--ff-ac)}
.ff-cf-ap-bg input:checked~span{color:var(--ff-tx);font-weight:600}
.ff-cf-ap-seg input:focus-visible+span{outline:3px solid var(--ff-foco-c);outline-offset:1px}
.ff-cf-ap-bg input:focus-visible~.ff-cf-ap-sw{outline:3px solid var(--ff-foco-c);outline-offset:4px}
@media (pointer:coarse){.ff-cf-tools-btn{min-height:44px}.ff-cf-ap-seg span{min-height:44px}}

/* El título entero en la cabecera compacta (antes: una línea con puntos suspensivos). */
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero{align-items:center;gap:14px;padding:26px 48px 0}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-brand img:first-child,.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-brand .ff-cf-brand-f{border-radius:10px;height:36px;width:36px}
.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero h1{font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.25;overflow:visible;text-overflow:clip;text-wrap:balance;white-space:normal}

/* Progreso: barra fina con respiro; sin banda, sin borde y sin pegarse al borde del navegador. */
.ff-cf-pasos-on .ff-cf-progress{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;margin:0 0 30px;padding:0;position:relative;top:auto;z-index:auto}
.ff-cf-pasos-on .ff-cf-progress p:not(.ff-cf-autosave){align-items:baseline;color:var(--ff-tx2);font-size:14px;gap:16px;line-height:1.4;margin:0 0 10px}
.ff-cf-pasos-on .ff-cf-progress p:not(.ff-cf-autosave) span:first-child{color:var(--ff-tx);font-weight:600}
.ff-cf-pasos-on .ff-cf-progress i{background:var(--ff-linea);border-radius:999px;display:block;height:4px}
.ff-cf-pasos-on .ff-cf-progress i span{background:var(--ff-ac);border-radius:999px}
.ff-cf-card.is-pasos .ff-cf-index-bar{display:block}
.ff-cf-topbar{display:none}

/* Guardado: una línea discreta bajo la barra, a la derecha; solo existe cuando hay algo que decir (:empty). */
.ff-cf-progress .ff-cf-autosave{align-items:center;color:var(--ff-tx3);display:flex;font-size:14px;gap:6px;justify-content:flex-end;line-height:1.4;margin:0;min-height:0;position:absolute;right:0;top:calc(100% + 6px)}
.ff-cf-progress .ff-cf-autosave:empty,.ff-cf-pasos-on .ff-cf-progress .ff-cf-autosave:empty{display:none}
.ff-cf-progress .ff-cf-autosave::before{background:currentColor;content:"";flex:none;height:14px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4.5 10.5l3.5 3.5 7.5-8' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4.5 10.5l3.5 3.5 7.5-8' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;width:14px}
.ff-cf-progress .ff-cf-autosave.is-problema{background:var(--ff-err-bg);border-radius:12px;color:var(--ff-err-tx);display:block;margin-top:14px;padding:10px 14px;position:static}
.ff-cf-progress .ff-cf-autosave.is-problema::before{content:none}
.ff-cf-progress .ff-cf-autosave.is-problema .ff-cf-link{color:var(--ff-err-tx);text-decoration:underline}
/* Alineación y ancho de lectura: cabecera, progreso, pregunta y pie parten del mismo borde (48 px), en una columna de unos 660 px. */
.ff-cf-card.is-pasos:not(.has-index) .ff-cf-main{max-width:none}
.ff-cf-pasos-on .ff-cf-progress{margin-bottom:0}
.ff-cf-pasos-on .ff-cf-progress p:not(.ff-cf-autosave){flex-wrap:wrap;row-gap:2px}
.ff-cf-pasos-on .ff-cf-progress p:not(.ff-cf-autosave) span:first-child{overflow:visible;text-overflow:clip;white-space:normal}
@media (max-width:979px){.ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero{padding:24px 40px 0}}
@media (max-width:780px){
  .ff-cf-tools{margin-bottom:10px}
  .ff-cf-card.is-pasos:not(.is-bienvenida) .ff-cf-hero{padding:20px 20px 0}
  .ff-cf-ap-panel{right:0}
}

/* 1.27.0 · La sencillez de FUNAJIT App (Hegel, 27-oct-2026, 17:51 RD, ante un formulario del Panel de App: «nuestro sistema
   / skill de formularios debería de aprender de esa delicadeza, minimalismo y limpieza»). Comparado con «Nos faltan algunos
   datos tuyos», el tutor, Proponer, Solicitudes y Autorizar del Panel (vista-app.css), el estándar se queda con lo suyo
   —una pregunta por pantalla, superficie translúcida, color del programa— y toma de App siete decisiones:
   1. Tipografía tranquila: la pregunta a 24 px (20 en el móvil), no a 32; la ayuda a 14 px en gris, no a 16.
   2. Se marca lo opcional, no lo obligatorio: sin asterisco en el paso a paso y el rótulo solo dice «Opcional» o la sección.
   3. Un dato por sitio: la sección se dice una vez (en el rótulo, no también en la barra), sin «Faltan n obligatorias» en
      cada pantalla (lo cuenta la revisión) ni «o pulsa Enter» ni las letras A, B, C (los atajos siguen funcionando).
   4. Controles de 52 px, radio 14 y borde de 1,5 px más claro (≥ 3:1 sobre la superficie en el peor fondo, los dos modos).
   5. Error como en App: borde rojo del control y una línea corta con su icono; sin franja roja a la izquierda de la pregunta.
   6. Botones de 48 px, 15/700: uno principal con el color del tema y «Atrás» solo texto; «Empezar» a 16 px, no a 20.
   7. El guardado sigue siendo la línea discreta de la 1.26.0 y el fallo, su caja con «Reintentar»: así lo hace App.
   Todo es presentación de la plantilla: no cambia el contenido de ningún formulario, ni la lógica, ni el esquema. */
.ff-cf-shell{--ff-control:#7C8699}
.ff-cf-shell[data-ff-modo=oscuro]{--ff-control:#727C90}
@media (prefers-color-scheme:dark){.ff-cf-shell:not([data-ff-modo=claro]){--ff-control:#727C90}}
.ff-cf-pasos-on .ff-cf-q>.ff-cf-label,.ff-cf-pasos-on .ff-cf-q>.ff-cf-group>legend,.ff-cf-pasos-on .ff-cf-docs>legend,.ff-cf-pasos-on .ff-cf-info>.ff-cf-info-title{font-size:24px;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.ff-cf-pasos-on .ff-cf-step-n{color:var(--ff-tx3);font-size:14px;font-weight:500;margin:0 0 6px}
.ff-cf-pasos-on .ff-cf-step-n:empty{display:none}
.ff-cf-pasos-on .ff-cf-req{display:none}
.ff-cf-pasos-on .ff-cf-help,.ff-cf-pasos-on .ff-cf-cond-note,.ff-cf-pasos-on .ff-cf-section-hint{color:var(--ff-tx3);font-size:14px;line-height:1.5}
.ff-cf-pasos-on .ff-cf-hint,.ff-cf-pasos-on .ff-cf-key,.ff-cf-welcome-go .ff-cf-hint{display:none}
.ff-cf-pasos-on .ff-cf-progress p:not(.ff-cf-autosave) span+span{display:none}
.ff-cf-q input[type=text],.ff-cf-q input[type=email],.ff-cf-q input[type=tel],.ff-cf-q input[type=date],.ff-cf-q input[type=number],.ff-cf-q select,.ff-cf-q textarea,.ff-cf-pasos-on .ff-cf-q input[type=text],.ff-cf-pasos-on .ff-cf-q input[type=email],.ff-cf-pasos-on .ff-cf-q input[type=tel],.ff-cf-pasos-on .ff-cf-q input[type=date],.ff-cf-pasos-on .ff-cf-q input[type=number],.ff-cf-pasos-on .ff-cf-q select{border-radius:14px;border-width:1.5px;min-height:52px;padding:13px 16px}
.ff-cf-q textarea{border-radius:14px;border-width:1.5px}
.ff-cf-q.has-error{border-left:0;margin-left:0;padding-left:0}
.ff-cf-q.has-error input[type=text],.ff-cf-q.has-error input[type=email],.ff-cf-q.has-error input[type=tel],.ff-cf-q.has-error input[type=date],.ff-cf-q.has-error input[type=number],.ff-cf-q.has-error select,.ff-cf-q.has-error textarea{border-width:2px}
.ff-cf-q .ff-cf-error{align-items:center;display:flex;font-size:14px;font-weight:700;gap:6px;line-height:1.4;margin:6px 0 8px}
.ff-cf-q .ff-cf-error::before{background:currentColor;content:"";flex:none;height:16px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='7.5' fill='none' stroke='%23000' stroke-width='1.7'/%3E%3Cpath d='M10 6.2v4.6' stroke='%23000' stroke-width='1.9' stroke-linecap='round'/%3E%3Ccircle cx='10' cy='13.7' r='1.1'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='7.5' fill='none' stroke='%23000' stroke-width='1.7'/%3E%3Cpath d='M10 6.2v4.6' stroke='%23000' stroke-width='1.9' stroke-linecap='round'/%3E%3Ccircle cx='10' cy='13.7' r='1.1'/%3E%3C/svg%3E") center/contain no-repeat;width:16px}
.ff-cf-nav{margin-top:28px}
.ff-cf-nav .ff-cf-next,.ff-cf-submit .ff-button{border-radius:12px;font-size:15px;font-weight:700;min-height:48px;padding:0 24px}
.ff-cf-back{font-size:15px;gap:6px;min-height:48px;padding:0 16px}
.ff-cf-start{border-radius:12px;font-size:16px;font-weight:700;min-height:52px;padding:0 32px}
.ff-cf-done h2{font-size:24px}
@media (max-width:640px){
  .ff-cf-pasos-on .ff-cf-q>.ff-cf-label,.ff-cf-pasos-on .ff-cf-q>.ff-cf-group>legend,.ff-cf-pasos-on .ff-cf-docs>legend,.ff-cf-pasos-on .ff-cf-info>.ff-cf-info-title{font-size:20px}
  .ff-cf-done h2{font-size:20px}
  /* La barra de botones sigue fija abajo en el móvil, pero del mismo material que la tarjeta: sin franja blanca ni raya encima. */
  .ff-cf-nav{-webkit-backdrop-filter:blur(28px) saturate(1.6);backdrop-filter:blur(28px) saturate(1.6);background:var(--ff-sup);border-top:0;margin-top:24px}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){@media (max-width:640px){.ff-cf-nav{background:var(--ff-sup-op)}}}
@media (forced-colors:active){.ff-cf-q .ff-cf-error::before{background:CanvasText}}

/* 1.29.0 — tarjeta de enlace de un `radio` (`presentacion.enlaces` del destino): va primera, destacada sobre las opciones y lleva a otra
   página. Solo tokens del tema (--ff-ac, --ff-ac-tx, --ff-tinte, --ff-tx, --ff-tx2), así sigue la paleta del programa en claro y oscuro. */
.ff-cf-options>.ff-cf-enlace{background:var(--ff-tinte,#EEF3FC);border:2px solid var(--ff-ac,#1E3A8A);border-radius:14px;box-sizing:border-box;color:var(--ff-tx,#0A1628);display:grid;gap:4px;margin:0 0 6px;padding:16px 18px;text-decoration:none;transition:box-shadow .15s ease,transform .1s ease}
.ff-cf-options>.ff-cf-enlace:hover{box-shadow:0 6px 18px rgba(var(--ff-acento-rgb,30,58,138),.18);text-decoration:none}
.ff-cf-options>.ff-cf-enlace:active{transform:scale(.99)}
.ff-cf-options>.ff-cf-enlace:focus-visible{outline:3px solid var(--ff-foco-c,#1E3A8A);outline-offset:2px}
.ff-cf-enlace-insignia{border:1px solid currentColor;border-radius:999px;color:var(--ff-ac-tx,#1E3A8A);font-size:12px;font-weight:700;justify-self:start;letter-spacing:.04em;line-height:1.3;margin-bottom:4px;padding:3px 10px;text-transform:uppercase}
.ff-cf-enlace .ff-cf-enlace-title{color:var(--ff-tx,#0A1628);font-size:18px;font-weight:700;line-height:1.3}
.ff-cf-enlace .ff-cf-enlace-sub{color:var(--ff-tx2,#3D4A66);font-size:14px;line-height:1.4}
.ff-cf-enlace .ff-cf-enlace-accion{color:var(--ff-ac-tx,#1E3A8A);font-size:15px;font-weight:700;line-height:1.4;margin-top:6px}
@media (prefers-reduced-motion:reduce){.ff-cf-options>.ff-cf-enlace{transform:none!important}}
@media (forced-colors:active){.ff-cf-options>.ff-cf-enlace{border:3px solid LinkText!important}}
/* 1.32.0 · Pantalla agrupada (`grupo`): un título con el tamaño de la pregunta (24 px, 20 en móvil) y cada pregunta con su
   etiqueta de 16 px, como un formulario de App. Solo existe en el paso a paso: en la página única cada pregunta va como siempre. */
.ff-cf-grupo-titulo{display:none}
.ff-cf-pasos-on .ff-cf-grupo-titulo{color:var(--ff-tx);display:block;font-family:var(--ff-font-display);font-size:24px;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:0 0 16px}
.ff-cf-pasos-on .ff-cf-q.is-agrupada>.ff-cf-label{font-family:inherit;font-size:16px;font-weight:600;letter-spacing:0;line-height:1.4}
.ff-cf-pasos-on .ff-cf-q.is-agrupada.is-current:not(.is-grupo-1){padding-top:12px}
.ff-cf-pasos-on .ff-cf-q.is-agrupada:not(.is-grupo-1) .ff-cf-cond-note{display:none}
.ff-cf-grupo-opc{color:var(--ff-tx3);font-weight:500}
@media (max-width:640px){.ff-cf-pasos-on .ff-cf-grupo-titulo{font-size:20px}}
