/* Cuestionarios D3-HIFU · estilo comun (formulario, indice y panel de coordinacion).
   Una columna blanca, opciones grandes y faciles de pulsar. */
:root{
  color-scheme:light;
  --bg:#ffffff; --soft:#f5f9fb; --soft-2:#ecf3f6; --ink:#15222d; --ink-2:#3b4b5a; --muted:#6a7988; --line:#e0e8ee; --line-2:#cbd7e0;
  --teal:#0aa3bd; --teal-dk:#07798d; --teal-soft:#e8f7fa; --teal-soft-2:#cfeef4;
  --violet:#4d63d6; --violet-soft:#eef1ff;
  --peach:#bd5128; --peach-soft:#fff1e9;
  --ok:#1f8a5b; --ok-soft:#e7f6ee;
  --warn:#9a6a06; --warn-soft:#fff6e3;
  --err:#c2462e; --err-soft:#fdf1ed;
  --f:"Figtree","Segoe UI",system-ui,-apple-system,sans-serif;
  --r:14px; --r-lg:20px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--f);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--teal-dk)}
:focus-visible{outline:3px solid var(--teal-soft-2);outline-offset:2px}
[hidden]{display:none!important}
.wrap{max-width:780px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.wrap.wide{max-width:1080px}

/* Cabecera */
.top{border-bottom:1px solid var(--line);background:var(--bg)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;padding-block:14px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;min-width:0;font-size:14.5px;color:var(--muted)}
.logo{font-weight:700;font-size:17px;color:var(--ink);letter-spacing:-.01em;text-decoration:none}
.logo b{color:var(--teal);font-weight:700}
.crumb{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.crumb a{color:var(--muted);text-decoration:none}
.crumb a:hover{color:var(--ink);text-decoration:underline}
.crumb>*+*::before{content:"/";margin-right:6px;color:var(--line-2)}
.top-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px;color:var(--muted)}

main.wrap{padding-block:34px 20px}

/* Progreso */
.prog{display:grid;gap:10px;margin-bottom:30px}
.prog-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;color:var(--muted)}
.prog-top strong{color:var(--ink);font-weight:600}
.segs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}
.seg-b{height:8px;border-radius:99px;border:0;padding:0;background:var(--soft-2);cursor:pointer;position:relative;overflow:hidden}
.seg-b:disabled{cursor:default}
.seg-b i{position:absolute;inset:0;width:0;background:var(--teal);border-radius:99px;transition:width .3s ease}
.seg-b.is-current{box-shadow:0 0 0 2px var(--teal-soft-2)}

/* Texto */
h1,h2,h3{text-wrap:balance;margin:0;letter-spacing:-.02em}
h1{font-size:clamp(28px,5vw,38px);line-height:1.15;font-weight:700}
h2{font-size:clamp(24px,3.6vw,30px);line-height:1.2;font-weight:700}
h3{font-size:17px;font-weight:700}
.kicker{font-size:14.5px;font-weight:600;color:var(--teal-dk);margin:0 0 10px}
.lead{font-size:18px;color:var(--ink-2);max-width:60ch;margin:14px 0 0}
.sec-desc{color:var(--muted);max-width:60ch;margin:8px 0 0;font-size:16.5px}
.hint{font-size:14px;color:var(--muted);margin:0}

/* Portada */
.pills{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none}
.pill{display:flex;align-items:center;gap:8px;background:var(--soft);border-radius:999px;padding:8px 14px;font-weight:600;font-size:14.5px;color:var(--ink-2)}
.pill svg{width:17px;height:17px;flex:none}
.phases-h{margin:34px 0 12px;font-weight:600;color:var(--ink-2)}
.phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ph{border-radius:var(--r);padding:16px;display:grid;gap:4px;align-content:start}
.ph-n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13.5px;color:#fff;margin-bottom:6px}
.ph-name{font-weight:700;font-size:16px}
.ph-desc{font-size:14px;color:var(--ink-2);line-height:1.45}
.ph.pre{background:var(--violet-soft)} .ph.pre .ph-n{background:var(--violet)}
.ph.marco{background:var(--peach-soft)} .ph.marco .ph-n{background:var(--peach)}
.ph.rm{background:var(--teal-soft)} .ph.rm .ph-n{background:var(--teal-dk)}
.note{display:flex;gap:12px;align-items:flex-start;margin:26px 0 0;padding:14px 16px;border-radius:var(--r);background:var(--soft);font-size:14.5px;color:var(--ink-2);max-width:64ch}
.note svg{width:20px;height:20px;flex:none;margin-top:1px}
.note.warn{background:var(--warn-soft);color:var(--warn)}
.intro-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:30px}

/* Preguntas */
.qs{display:grid;margin-top:26px}
.q-group{display:grid;gap:14px;padding-block:28px;border-top:1px solid var(--line)}
.q-group:first-child{border-top:0;padding-top:6px}
.q{display:grid;gap:12px;min-width:0}
.q-label{display:flex;gap:12px;align-items:flex-start;font-weight:600;font-size:17.5px;line-height:1.4;margin:0}
.q-num{flex:none;width:28px;height:28px;border-radius:50%;background:var(--teal-soft);color:var(--teal-dk);font-weight:700;font-size:13px;display:grid;place-items:center;margin-top:-1px;font-variant-numeric:tabular-nums}
.req{color:var(--err);margin-left:3px}
.q-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-left:40px}
.q-body{padding-left:40px;display:grid;gap:10px;min-width:0}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}
.tag::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.tag.pre{background:var(--violet-soft);color:var(--violet)}
.tag.marco{background:var(--peach-soft);color:var(--peach)}
.tag.rm{background:var(--teal-soft);color:var(--teal-dk)}
.tag-prop{font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px dashed var(--violet);color:var(--violet)}
.multi{font-size:13.5px;color:var(--muted)}
.tag-new{font-size:11.5px;font-weight:600;color:var(--violet);font-style:normal}
body:not(.revision) .tag-prop,body:not(.revision) .tag-new{display:none}

.q-child{background:var(--soft);border-radius:var(--r-lg);padding:18px 20px;margin-left:40px}
.q-child .q-meta,.q-child .q-body,.q-child .q-err{padding-left:0}
.q-child .q-label{font-size:16.5px}
.child-k{font-size:13.5px;font-weight:600;color:var(--teal-dk)}

.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.opt{position:relative;display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1.5px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer;line-height:1.4;transition:border-color .15s,background-color .15s}
.opt:hover{border-color:var(--line-2);background:var(--soft)}
.q-child .opt:hover{background:#fbfdfe}
.opt input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.opt:has(input:checked){border-color:var(--teal);background:var(--teal-soft)}
.opt:has(input:focus-visible){outline:3px solid var(--teal-soft-2);outline-offset:2px}
.ind{flex:none;width:20px;height:20px;border:2px solid var(--line-2);border-radius:50%;display:grid;place-items:center;background:#fff;transition:background-color .15s,border-color .15s}
.ind::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .15s}
.is-check .ind{border-radius:6px}
.is-check .ind::after{width:5px;height:10px;border-radius:0;background:transparent;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);margin-top:-2px}
.opt:has(input:checked) .ind{background:var(--teal);border-color:var(--teal)}
.opt:has(input:checked) .ind::after{transform:scale(1)}
.is-check:has(input:checked) .ind::after{transform:rotate(45deg) scale(1)}
.opt-t{display:grid;gap:2px;min-width:0;font-weight:500}
.opt-t small{color:var(--muted);font-size:13px;font-weight:400}

.yn{display:flex;gap:10px;flex-wrap:wrap}
.yn-o{position:relative;cursor:pointer}
.yn-o input{position:absolute;opacity:0;width:1px;height:1px}
.yn-o span{display:flex;align-items:center;justify-content:center;gap:8px;min-width:128px;padding:12px 24px;border:1.5px solid var(--line);border-radius:999px;font-weight:600;font-size:16px;background:#fff;transition:background-color .15s,border-color .15s,color .15s}
.yn-o span svg{width:16px;height:16px}
.yn-o:hover span{border-color:var(--line-2);background:var(--soft)}
.yn-o:has(input:checked) span{background:var(--teal);border-color:var(--teal);color:#fff}
.yn-o:has(input:focus-visible) span{outline:3px solid var(--teal-soft-2);outline-offset:2px}

.field{width:100%;max-width:520px;border:1.5px solid var(--line);background:#fff;border-radius:var(--r);padding:13px 15px;font-size:16px;transition:border-color .15s,box-shadow .15s}
.field:hover{border-color:var(--line-2)}
.field:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 4px var(--teal-soft)}
.field::placeholder{color:#9aa7b3}
textarea.field{max-width:none;min-height:120px;resize:vertical;line-height:1.5}
select.field{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 22px) 52%,calc(100% - 16px) 52%;background-size:6px 6px;background-repeat:no-repeat;padding-right:44px;cursor:pointer}
.trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

.scale{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.scale .opt{flex-direction:column;gap:10px}
.scale .ind{display:none}
.bars{display:flex;align-items:flex-end;gap:3px;height:22px}
.bars i{width:7px;border-radius:3px;background:var(--soft-2)}
.bars i:nth-child(1){height:25%}.bars i:nth-child(2){height:50%}.bars i:nth-child(3){height:75%}.bars i:nth-child(4){height:100%}
.bars[data-n="1"] i:nth-child(-n+1),.bars[data-n="2"] i:nth-child(-n+2),.bars[data-n="3"] i:nth-child(-n+3),.bars[data-n="4"] i:nth-child(-n+4){background:var(--teal)}
.scale-h{font-weight:700;font-size:15px}
.scale-f{font-size:13.5px;font-weight:600;color:var(--teal-dk)}
.scale-d{font-size:13.5px;color:var(--muted);line-height:1.4;font-weight:400}

.q-err{display:flex;gap:8px;align-items:center;color:var(--err);font-size:14px;font-weight:600;margin:0;padding-left:40px}
.q.has-err .opt,.q.has-err .field,.q.has-err .yn-o span{border-color:var(--err)}

/* Navegacion y botones */
.nav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.nav-l{font-size:14px;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:13px 26px;font-weight:600;font-size:16px;cursor:pointer;border:1.5px solid transparent;text-decoration:none;transition:background-color .15s,border-color .15s,transform .1s}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--teal);color:#fff}
.btn.primary:hover{background:var(--teal-dk)}
.btn.primary:disabled{background:var(--line-2);cursor:not-allowed}
.btn.ghost{background:#fff;border-color:var(--line-2);color:var(--ink-2)}
.btn.ghost:hover{background:var(--soft)}
.btn.small{padding:8px 16px;font-size:14.5px}
.btn svg{width:18px;height:18px}
.link{background:none;border:0;padding:4px 2px;color:var(--teal-dk);font-weight:600;font-size:14.5px;cursor:pointer}
.link:hover{text-decoration:underline}
.link.danger{color:var(--err)}

/* Revision */
.rev{display:grid;gap:14px;margin-top:26px}
.rev-sec{border:1.5px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.rev-h{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 18px;background:var(--soft)}
.rev-h h3{display:flex;gap:10px;align-items:center}
.rev-h h3 span{width:24px;height:24px;border-radius:50%;background:#fff;color:var(--teal-dk);font-size:12.5px;display:grid;place-items:center}
.rev dl{margin:0;display:grid}
.rev-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:4px 20px;padding:11px 18px;border-top:1px solid var(--line);font-size:14.5px}
.rev-row:first-child{border-top:0}
.rev-row dt{color:var(--muted)}
.rev-row dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.rev-row dd.empty{color:var(--muted);font-weight:400;font-style:italic}
.rev-row dd.miss{color:var(--err)}

/* Mensajes */
.alert{display:flex;gap:10px;align-items:flex-start;padding:13px 16px;border-radius:var(--r);font-size:14.5px;font-weight:500}
.alert.err{background:var(--err-soft);color:var(--err)}
.alert.ok{background:var(--ok-soft);color:var(--ok)}

/* Fin */
.done{display:grid;gap:14px;justify-items:start;padding-block:10px}
.done-mark{width:64px;height:64px;border-radius:50%;background:var(--teal-soft);display:grid;place-items:center;margin-bottom:4px}
.done-mark svg{width:30px;height:30px}
.ref{font-weight:600;font-size:15px;padding:9px 14px;border-radius:999px;background:var(--soft);letter-spacing:.02em;font-variant-numeric:tabular-nums}

.foot{padding-block:26px 40px;font-size:13.5px;color:var(--muted);text-align:center;border-top:1px solid var(--line);margin-top:24px}
.foot a{color:var(--muted)}

.loading{display:flex;gap:12px;align-items:center;color:var(--muted);padding-block:40px}
.spin{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--soft-2);border-top-color:var(--teal);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.step-enter{animation:stepIn .3s ease both}
@keyframes stepIn{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.step-enter,.spin{animation:none}*{transition:none!important}}

@media (max-width:640px){
  main.wrap{padding-block:22px 16px}
  .q-meta,.q-body,.q-err{padding-left:0}
  .q-child{margin-left:0;padding:16px}
  .phases{grid-template-columns:minmax(0,1fr)}
  .scale{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rev-row{grid-template-columns:minmax(0,1fr)}
  .yn-o span{min-width:110px}
  .nav .btn{flex:1 1 auto}
  .nav-l{order:-1;flex-basis:100%;text-align:center}
  .crumb>*:not(:last-child){display:none}
  .crumb>*+*::before{content:none}
}
