:root{--ink:#071b3d;--muted:#52627b;--line:#dce3eb;--paper:#fff;--wash:#f5f8fb;--red:#c81f32;--teal:#267d6d;--sans:Inter,ui-sans-serif,system-ui,sans-serif;--serif:Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);line-height:1.55}a{color:inherit}button,input,select,textarea{font:inherit}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.7rem;z-index:9}.top{min-height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:14px max(5vw,24px)}.brand{font:700 1.25rem var(--serif);text-decoration:none}.nav{display:flex;gap:28px;align-items:center}.nav a{text-decoration:none;font-size:.9rem}.hero{background:linear-gradient(90deg,#fff,#f7fafe);padding:62px max(7vw,28px) 54px;display:grid;grid-template-columns:1fr 1fr;gap:7vw;min-height:420px}.hero h1,.page h1{font:700 clamp(2.5rem,5vw,4.5rem)/.98 var(--serif);letter-spacing:-.035em;margin:0 0 22px}.hero p{font-size:1.12rem;max-width:580px}.hero-side{border-left:1px solid #aeb9c6;padding-left:4vw}.hero-side h2,.page h2{font:700 1.75rem/1.12 var(--serif)}.red-rule{width:28px;border-top:4px solid var(--red);margin:28px 0}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);border-radius:5px;padding:.78rem 1.25rem;text-decoration:none;background:#fff;color:var(--ink);font-weight:650;cursor:pointer}.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.small{padding:.4rem .7rem;font-size:.84rem}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5aa9e6;outline-offset:2px}.journey{padding:22px max(6vw,20px);display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}.step{text-align:center;font-size:.78rem}.step b{display:grid;place-items:center;margin:0 auto 8px;width:36px;height:36px;border-radius:50%;background:#e8edf2}.step.active b{background:var(--ink);color:#fff}.page{max-width:1180px;margin:0 auto;padding:54px 28px 90px}.page h1{font-size:3.2rem}.notice{background:#eef4f8;border-left:4px solid var(--teal);padding:16px 20px;margin:24px 0}.question{padding:25px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:56px 1fr;gap:12px}.question strong{font:700 1.2rem var(--serif)}.flow{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 74px)}.rail{padding:40px 26px;border-right:1px solid var(--line);background:var(--wash)}.rail a{display:block;text-decoration:none;padding:12px 0;font-size:.86rem}.rail .on{color:var(--red);font-weight:700}.panel{padding:45px max(5vw,30px);max-width:900px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:650;font-size:.9rem}.field input,.field select,.field textarea{border:1px solid #aab6c5;border-radius:5px;padding:.75rem;background:#fff}.upload{border:1px dashed #9aabba;padding:20px;background:#fbfdff}.status{padding:14px 16px;border:1px solid #acd2c9;background:#f0faf7;color:#195e51;margin:18px 0}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line)}.table th{color:var(--muted);font-size:.75rem;text-transform:uppercase}.admin-shell{display:grid;grid-template-columns:290px minmax(0,1fr);min-height:100vh}.admin-main{padding:40px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:25px 0}.metric{background:#fff;padding:24px}.metric b{display:block;font:700 2rem var(--serif)}.muted{color:var(--muted)}footer{padding:30px max(5vw,24px);border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:.85rem}@media(max-width:760px){.nav a:not(:last-child){display:none}.hero{grid-template-columns:1fr;padding-top:42px}.hero-side{border:0;border-top:1px solid var(--line);padding:24px 0}.journey{grid-template-columns:repeat(3,1fr);gap:15px}.flow,.admin-shell{grid-template-columns:1fr}.rail{display:flex;overflow:auto;gap:18px;border:0;border-bottom:1px solid var(--line);padding:14px 20px}.rail a{white-space:nowrap}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.metrics{grid-template-columns:1fr}.page h1{font-size:2.5rem}footer{display:block}}
/* Estructura común: pie al fondo y contenido centrado en un ancho máximo compartido */
:root{--max:1240px;--pad:max(4vw,24px)}
body{min-height:100vh;display:flex;flex-direction:column}
body>main,.admin-shell{flex:1}
.page{width:100%}
.top{gap:32px}
.brand{min-width:0}
.nav{flex-shrink:0}
@media(min-width:761px) and (max-width:1240px){.brand{font-size:1.08rem;line-height:1.3}.nav{gap:20px}}
.home{display:flex;flex-direction:column}
.home .hero{flex:1}
@media(min-width:761px){
.top,footer,.hero,.journey,.page{padding-left:max(var(--pad),calc((100% - var(--max))/2));padding-right:max(var(--pad),calc((100% - var(--max))/2))}
.page{max-width:none}
.hero{gap:clamp(48px,6vw,120px);align-items:center}
.question div{max-width:78ch}
.flow{width:100%;grid-template-columns:260px minmax(0,1fr)}
.flow .rail{padding-left:max(26px,2vw)}
.admin-main{max-width:1280px}
}
@media(min-width:1800px){:root{--max:1360px}html{font-size:106.25%}}
@media(min-width:2300px){:root{--max:1480px}html{font-size:112.5%}}
.flow>.panel{min-width:0}
@media(max-width:760px){.flow{grid-template-columns:minmax(0,1fr)}}
/* Calendario semanal (Agenda de disponibilidades del panel y Reserva del participante) */
.week-nav{display:flex;gap:8px}
.week-nav a{border:1px solid var(--line);border-radius:5px;padding:9px 13px;text-decoration:none;background:#fff;font-size:.88rem}
.calendar{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.calendar-title{padding:17px 20px;background:var(--wash);border-bottom:1px solid var(--line);font-weight:700}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.day{min-height:360px;border-right:1px solid var(--line)}
.day:last-child{border-right:0}
.day-head{padding:14px 10px;text-align:center;border-bottom:1px solid var(--line)}
.day-head small{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}
.day-head strong{display:block;font:700 1.45rem var(--serif);margin-top:3px}
.day.today .day-head{background:#eef4f8;box-shadow:inset 0 -3px 0 var(--red)}
.day-list{padding:10px;display:grid;gap:9px}
.slot-card{border-left:4px solid var(--teal);border-radius:5px;background:#eff9f6;padding:10px 9px;font-size:.78rem}
.slot-card.reservado{border-left-color:var(--red);background:#fff2f3}
.slot-time{font-weight:800;font-size:.92rem}
.slot-meta{color:var(--muted);margin-top:2px}
.empty-day{color:#9aa6b5;text-align:center;font-size:.77rem;margin-top:28px}
@media(max-width:900px){.calendar{overflow-x:auto}.calendar-grid{min-width:820px}}
/* Teléfonos: los mismos días y tarjetas, uno debajo del otro (sin desplazamiento lateral) */
@media(max-width:640px){.calendar{overflow:visible}.calendar-grid{display:block;min-width:0}.day{display:grid;grid-template-columns:62px minmax(0,1fr);min-height:0;border-right:0;border-bottom:1px solid var(--line)}.day:last-child{border-bottom:0}.day-head{display:flex;flex-direction:column;justify-content:center;border-bottom:0;border-right:1px solid var(--line);padding:12px 4px}.day.today .day-head{box-shadow:inset -3px 0 0 var(--red)}.day-list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.empty-day{grid-column:1/-1;margin:8px 4px;text-align:left}.calendar-title{padding:14px 16px}}
/* Reserva: tarjetas seleccionables sobre el mismo calendario */
.slot-card.selectable{position:relative;display:block;padding-right:22px;cursor:pointer;transition:background .15s,box-shadow .15s}
.slot-card.selectable input{position:absolute;opacity:0;pointer-events:none}
.slot-card.selectable:hover{background:#e0f3ed}
.slot-card.selectable:has(input:checked){background:var(--teal);color:#fff;box-shadow:0 6px 14px rgba(38,125,109,.3)}
.slot-card.selectable:has(input:checked) .slot-meta{color:#dff3ee}
.slot-card.selectable:has(input:checked)::after{content:"✓";position:absolute;top:8px;right:7px;font-weight:800}
.slot-card.selectable:has(input:focus-visible){outline:3px solid #5aa9e6;outline-offset:2px}
.booking-page .week-nav{margin:0 0 16px}
.booking-choice{margin:18px 0;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--wash);font-weight:650}
.booking-choice.is-set{border-color:#acd2c9;background:#f0faf7;color:#195e51}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.file-actions{white-space:nowrap}
.participant-search{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 8px}
.participant-search input{flex:1;min-width:240px;border:1px solid #aab6c5;border-radius:5px;padding:.6rem}
.consent-review h2{display:flex;align-items:center;gap:10px;margin:30px 0 14px;font:700 1.35rem var(--serif)}
.count-pill{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--wash);border:1px solid var(--line);font:700 .85rem var(--sans)}
.review-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;padding:16px 18px;margin-bottom:10px;border:1px solid var(--line);border-left:4px solid #cf9c18;border-radius:8px;background:#fff}
.review-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}
.review-actions form{margin:0}
.btn-approve{background:var(--teal);border-color:var(--teal);color:#fff}
.btn-reject{background:var(--red);border-color:var(--red);color:#fff}
.reject-box summary{list-style:none}
.reject-box summary::-webkit-details-marker{display:none}
.reject-box[open] summary{background:var(--wash)}
.reject-box[open] summary.btn-approve{color:var(--teal)}
.reject-form{display:grid;gap:8px;width:min(360px,calc(100vw - 100px));max-width:100%;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.reject-form label{font-weight:650;font-size:.85rem}
.reject-form textarea{min-height:80px;border:1px solid #aab6c5;border-radius:5px;padding:.6rem;font:inherit}
.reject-form>*,.other-time>*{min-width:0}.reject-form select,.reject-form textarea,.reject-form input:not([type=checkbox]){width:100%;max-width:100%}
.reject-form .check{display:flex;gap:8px;align-items:center;font-weight:500}.reject-form .check input{width:auto}.other-time{display:grid;gap:8px}.other-time[hidden]{display:none}
.reject-form select,.reject-form input{border:1px solid #aab6c5;border-radius:5px;padding:.55rem;font:inherit;background:#fff}
.request-message{margin:8px 0 0;padding:8px 12px;border-left:3px solid var(--line);background:var(--wash);white-space:pre-line}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700}
.badge-pending{background:#fff3cf;color:#7a5a00}
.badge-ok{background:#e3f4ee;color:#195e51}
.badge-no{background:#fdecee;color:#8a1d2a}
.participant-detail h1{margin:6px 0 4px}
.detail-card{margin:22px 0;padding:22px 24px;border:1px solid var(--line);border-radius:10px;background:#fff}
.detail-card h2{margin:0 0 16px;font:700 1.3rem var(--serif)}
.detail-card h3{margin:18px 0 8px;font-size:1rem}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px 28px;margin:0}
.detail-grid dt{color:var(--muted);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.detail-grid dd{margin:3px 0 0;font-weight:600;overflow-wrap:anywhere}
.detail-line{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;padding:12px 0;border-top:1px solid var(--line)}
.detail-line:first-of-type{border-top:0}
.modal{border:0;border-radius:8px;padding:0;width:calc(100% - 32px);max-width:460px;color:var(--ink);background:var(--paper);box-shadow:0 24px 60px rgba(7,27,61,.28)}
.modal::backdrop{background:rgba(7,27,61,.5)}
.modal form{padding:30px 30px 26px}
.modal h2{font:700 1.55rem/1.15 var(--serif);letter-spacing:-.01em;margin:0}
.modal .red-rule{margin:16px 0 18px}
.modal p{margin:0;color:var(--muted)}
.modal .actions{justify-content:flex-end;margin-top:26px}
.modal .btn:focus-visible{outline:3px solid #5aa9e6;outline-offset:2px}
.proposal-list{margin:10px 0 0;padding-left:1.3rem;display:grid;gap:4px}
.proposal-form{margin-top:18px}
.proposal-box{margin-top:26px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--wash)}
.proposal-box summary{cursor:pointer;font-weight:700;color:var(--ink)}
.proposal-box[open] summary{margin-bottom:8px}
.pick-form{display:grid;gap:8px;margin-top:12px;max-width:520px}.pick-form fieldset{border:0;margin:0;padding:0;display:grid;gap:6px}.pick-form legend{font-weight:700;margin-bottom:6px}
.pick-option{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.pick-option:has(input:checked){border-color:var(--teal);background:#eef7f4;font-weight:650}.pick-option.is-past{opacity:.55;cursor:default}
.pick-settings{display:flex;flex-wrap:wrap;gap:12px}.pick-settings label{display:grid;gap:4px;font-size:.85rem;font-weight:650}.pick-form select,.pick-form textarea{border:1px solid #aab6c5;border-radius:5px;padding:.5rem;font:inherit;background:#fff;max-width:100%}.pick-form textarea{min-height:64px}.pick-form>label{font-size:.85rem;font-weight:650}.pick-form .btn{justify-self:start}
/* Menú del panel privado */
.admin-nav{background:var(--ink);color:#fff;padding:24px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}
.nav-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 10px 18px;border-bottom:1px solid rgba(255,255,255,.12)}
.nav-brand{color:#fff;text-decoration:none;font:700 1.25rem var(--serif)}
.nav-toggle{display:none;align-items:center;gap:8px;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:7px 12px;font:600 .9rem var(--sans);cursor:pointer}
.nav-body{display:flex;flex-direction:column;flex:1;gap:6px;padding-top:14px}
.nav-group{display:grid;gap:2px;padding:6px 0}
.nav-title{margin:8px 10px 4px;font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#8fa3bf}
.admin-nav a:not(.nav-brand){display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:7px;color:#dbe6f3;text-decoration:none;font-size:.94rem;line-height:1.25;border-left:3px solid transparent}
.admin-nav a:not(.nav-brand):hover{background:rgba(255,255,255,.08);color:#fff}
.admin-nav a:not(.nav-brand):focus-visible{outline:2px solid #fff;outline-offset:1px}
.admin-nav a.is-active{background:rgba(255,255,255,.14);color:#fff;font-weight:650;border-left-color:#e2a32b}
.admin-nav svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.admin-nav a span:not(.nav-badge){flex:1}
.nav-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#e2a32b;color:var(--ink);font-size:.75rem;font-weight:800}
.nav-account{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:12px}
.nav-user{margin:0 10px 6px;font-size:.8rem;color:#b9c7da;overflow-wrap:anywhere}
.nav-user small{color:#8fa3bf}
@media(max-width:760px){
.admin-nav{position:static;height:auto;padding:12px 14px}
.nav-head{padding:0;border-bottom:0}
.nav-toggle{display:inline-flex}
.nav-body{display:none;padding-top:10px}
.admin-nav.is-open .nav-body{display:flex}
.nav-account{margin-top:6px}
}
/* Vistas del panel privado */
.admin-shell{background:#f3f6fa}
.admin-main{width:100%;max-width:1260px;padding:34px 44px 72px}
.admin-main>h1,.schedule-head h1{margin:0 0 6px;font:700 1.85rem/1.2 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.admin-main>h1+.muted,.admin-main>.page-lead{margin:0 0 26px;max-width:75ch}
.admin-main h2{font:700 1.25rem var(--serif)}
.panel-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 24px;box-shadow:0 1px 2px rgba(7,27,61,.04);margin-bottom:22px}
.panel-card>h2{margin:0 0 4px}
.panel-card>h2+.muted{margin:0 0 16px}
.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.card-head h2{margin:0}
.admin-main .table{background:#fff;border:1px solid var(--line);border-radius:12px;border-collapse:separate;border-spacing:0;overflow:hidden}
.admin-main .table th{background:#f7f9fc;padding:11px 14px;letter-spacing:.04em}
.admin-main .table td{padding:12px 14px;vertical-align:middle}
.admin-main .table tr:last-child td{border-bottom:0}
.admin-main .table tr:hover td{background:#fafcfe}
.panel-card .table{border:0;border-radius:0}
.panel-card .table th{background:transparent;padding-left:0}
.panel-card .table td{padding-left:0}
.table-wrap{overflow-x:auto;margin-bottom:22px}
.table-wrap .table{min-width:720px}
.nowrap{white-space:nowrap}
.cell-sub{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.row-actions{display:flex;gap:6px;flex-wrap:nowrap;justify-content:flex-end}
.row-actions form{margin:0}
.badge-info{background:#e7effa;color:#1d4a85}
.badge{white-space:nowrap}
.admin-main .field .btn,.admin-main .form-grid>.btn{align-self:flex-start;justify-self:start}
.admin-main .status,.admin-main .notice{border-radius:8px}
/* Resumen */
.task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}
.task-card{display:flex;flex-direction:column;gap:6px;padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);box-shadow:0 1px 2px rgba(7,27,61,.04);transition:border-color .15s,box-shadow .15s}
.task-card:hover{border-color:#9fb3cc;box-shadow:0 6px 18px rgba(7,27,61,.08)}
.task-card.has-work{border-left:5px solid #e2a32b}
.task-count{font:700 2.2rem/1 var(--serif)}
.task-label{font-weight:700}
.task-hint{color:var(--muted);font-size:.88rem}
.task-go{margin-top:auto;padding-top:8px;font-weight:650;font-size:.88rem;color:var(--teal)}
.task-card.is-clear .task-count{color:#7b8aa0}
.stat-row{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0 0 22px;padding:14px 20px;background:#fff;border:1px solid var(--line);border-radius:12px}
.stat-row div{display:flex;align-items:baseline;gap:8px;color:var(--muted);font-size:.9rem}
.stat-row b{font:700 1.3rem var(--serif);color:var(--ink)}
.dash-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}
.empty-note{color:var(--muted);margin:6px 0 0}
/* Consentimiento vigente */
.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:22px;align-items:start}
@media(max-width:1100px){.task-grid,.dash-grid,.two-col{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.admin-main{padding:22px 16px 48px}.admin-main>h1{font-size:1.5rem}.panel-card{padding:18px 16px}}
.btn-danger-outline{border-color:#d9a3aa;color:#8a1d2a}.btn-danger-outline:hover{background:#fdecee}
.row-actions .btn{white-space:nowrap}
.panel-card .table-wrap{margin-bottom:0}.panel-card .table-wrap .table{min-width:0}
.admin-main,.schedule-page{min-width:0}
@media(max-width:760px){.admin-shell{grid-template-columns:minmax(0,1fr)}.admin-main .table-wrap .table{min-width:640px}}
.review-row>*{min-width:0}.review-who{flex:1 1 300px}.pick-form{width:100%}
@media(max-width:760px){.form-grid{grid-template-columns:minmax(0,1fr)}.field input[type=file]{max-width:100%}}
/* Agenda: lista de bloques editable */
.slot-list{margin-top:26px}
.slot-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px 18px;align-items:start;padding:14px 0;border-top:1px solid var(--line)}
.slot-row:first-of-type{border-top:0}
.slot-row:target{background:#fff8e6;box-shadow:0 0 0 8px #fff8e6;border-radius:4px}
.slot-row-status{padding-top:2px}
.slot-row .row-actions{align-items:flex-start}
a.slot-card{display:block;text-decoration:none;color:inherit}
a.slot-card:hover{outline:2px solid #9fb3cc}
@media(max-width:760px){.slot-row{grid-template-columns:minmax(0,1fr)}.slot-row .row-actions{justify-content:flex-start;flex-wrap:wrap}}
/* Grabaciones y transcripciones */
.media-item{padding:14px 0;border-top:1px solid var(--line)}
.media-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px 16px;flex-wrap:wrap}
.media-head>div:first-child{min-width:0;overflow-wrap:anywhere}
.media-item audio{width:100%;margin-top:10px}
.media-item video{width:100%;max-height:320px;margin-top:10px;background:#000;border-radius:8px}
.upload-form{display:grid;gap:8px;margin-top:16px;padding:14px;border:1px dashed #aab6c5;border-radius:10px;background:#f9fbfd}
.upload-form label{font-weight:650;font-size:.85rem}
.upload-form input:not([type=hidden]){width:100%;max-width:100%;border:1px solid #aab6c5;border-radius:5px;padding:.5rem;background:#fff;font:inherit}
.upload-form progress{width:100%;height:10px}
.upload-form .btn{justify-self:start}
/* Google Drive */
.drive-card{border-left:5px solid #e2a32b}.drive-card.is-on{border-left-color:var(--teal)}
.drive-howto{margin:8px 0 16px;padding-left:1.3rem;display:grid;gap:8px;line-height:1.5}
.copy-uri{display:inline-block;margin-top:4px;padding:4px 8px;background:#f1f4f8;border:1px solid var(--line);border-radius:5px;font-size:.85rem;user-select:all;overflow-wrap:anywhere}
.drive-steps{margin-top:14px}.drive-steps summary{cursor:pointer;color:var(--muted);font-size:.9rem}
.drive-form{margin-top:10px}
/* Portada del estudio (tres grupos). Diseño sereno: pocos colores, sin animaciones, lectura clara. */
.top{flex-wrap:wrap;row-gap:8px}
.home{background:#fff}
.home .hero{flex:none;min-height:0;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,5vw,64px);align-items:center;padding:clamp(36px,6vw,76px) var(--pad);background:linear-gradient(180deg,#f3f7fc,#fff)}
.hero-main,.hero-card,.home-section,.facts{width:100%}
.home .hero>*{max-width:none}
.eyebrow{margin:0 0 14px;font-size:.8rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--teal)}
.home .hero h1{font:700 clamp(1.9rem,4.2vw,3.3rem)/1.08 var(--serif);letter-spacing:-.02em;margin:0 0 18px;max-width:18ch}
.hero-lead{font-size:clamp(1rem,1.5vw,1.15rem);max-width:56ch;margin:0;color:#263a59}
.hero-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:14px;padding:clamp(20px,3vw,30px);box-shadow:0 10px 30px rgba(7,27,61,.07)}
.hero-card h2{font:700 1.25rem var(--serif);margin:0 0 10px}
.hero-card p{font-size:1rem;margin:0 0 10px;max-width:none}
.hero-card p:last-child{margin-bottom:0}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border-block:1px solid var(--line);max-width:none}
.fact{background:#fff;padding:18px clamp(16px,2.4vw,28px);display:grid;gap:4px;align-content:start}
.fact strong{font-size:1rem}.fact span{color:var(--muted);font-size:.9rem;line-height:1.45}
.home-section{max-width:var(--max);margin:0 auto;padding:clamp(30px,5vw,56px) var(--pad) 0}
.home-section:last-child{padding-bottom:clamp(36px,6vw,64px)}
.home-section>h2{font:700 clamp(1.4rem,2.6vw,1.9rem)/1.15 var(--serif);margin:0 0 8px}
.section-lead{margin:0 0 20px;color:var(--muted);max-width:65ch}
.group-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0}
.group-card{display:flex;flex-direction:column;gap:10px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-decoration:none;line-height:1.45}
.group-card:hover{border-color:var(--ink);box-shadow:0 8px 22px rgba(7,27,61,.09)}
.group-card:focus-visible{outline:3px solid #5aa9e6;outline-offset:2px}
.group-icon{width:38px;height:38px;padding:8px;border-radius:10px;background:#eaf3f1;color:var(--teal);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.group-card strong{font-size:1.08rem;line-height:1.3}
.group-meta{font-size:.82rem;font-weight:700;color:var(--muted)}
.group-go{margin-top:auto;padding-top:6px;font-weight:700;color:var(--red)}
.group-tag{display:inline-block;margin:0 0 14px;padding:5px 12px;border-radius:999px;background:var(--wash);border:1px solid var(--line);font-weight:650;font-size:.9rem}
.page .group-cards{margin-top:22px}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.steps li{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:12px;background:var(--wash);border:1px solid var(--line)}
.steps b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font:700 .95rem var(--sans);flex:none}
.steps div{display:grid;gap:4px}.steps span{color:var(--muted);font-size:.9rem;line-height:1.45}
.study-title{font-weight:700;font-size:1.05rem;margin:0 0 18px;max-width:70ch}
.about-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px}
.about-card{border:1px solid var(--line);border-radius:14px;padding:22px 24px;background:#fff}
.about-card h3{font:700 1.05rem var(--serif);margin:0 0 8px}.about-card h3:not(:first-child){margin-top:20px}
.about-card p{margin:0 0 10px}.about-card ol{margin:0;padding-left:1.2rem;display:grid;gap:10px;line-height:1.5}
.plain{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:4px}
footer{flex-wrap:wrap;gap:10px 24px}
@media(max-width:1000px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.home .hero{grid-template-columns:minmax(0,1fr)}.home .hero h1{max-width:none}.group-cards,.about-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
body{overflow-x:hidden}
.top{flex-direction:column;align-items:flex-start;min-height:0;padding:14px 20px}
.brand{font-size:1.05rem;line-height:1.3}
.nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.nav a,.nav a:not(:last-child){display:inline-block;padding:6px 0;font-size:.95rem;font-weight:600}
.nav a[href^="mailto:"]{display:none}
.actions{display:grid;grid-template-columns:minmax(0,1fr)}.actions .btn{width:100%}
.page h1{font-size:clamp(1.7rem,7vw,2.3rem);line-height:1.1}
footer{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){.steps{grid-template-columns:minmax(0,1fr)}.steps li{flex-direction:row;align-items:flex-start}.facts{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Portada: encabezado, secciones y pie comparten el mismo margen lateral */
:root{--gutter:max(5vw,24px,calc((100% - 1280px)/2))}
.top,footer{padding-inline:var(--gutter)}
.home .hero{padding-inline:var(--gutter)}
.home-section{max-width:none;padding-inline:var(--gutter)}
.facts{width:auto;margin-inline:var(--gutter);border:1px solid var(--line);border-radius:14px;overflow:hidden}
@media(max-width:760px){:root{--gutter:20px}}

