:root{--wine:#6d001f;--deep:#420014;--gold:#e8ad18;--ink:#292b2d;--muted:#686a69;--paper:#faf9f6;--white:#fff;--line:#dedbd5;--ok:#287a4a;--bad:#b3261e;--max:1120px}*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}.app-header{min-height:72px;position:sticky;top:0;z-index:50;padding:0 max(20px,calc((100vw - var(--max))/2));display:flex;align-items:center;justify-content:space-between;gap:30px;background:rgba(250,249,246,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.app-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.app-brand>span{width:40px;height:40px;display:grid;place-items:center;color:#fff;background:var(--wine);border-radius:50%;font:700 14px Georgia,serif}.app-brand strong,.app-brand small{display:block}.app-brand strong{letter-spacing:.1em}.app-brand small{margin-top:3px;color:var(--muted);font-size:9px}.app-header nav{display:flex;align-items:center;gap:20px;overflow-x:auto}.app-header nav a{white-space:nowrap;text-decoration:none;font-size:12px;font-weight:700}.app-main{width:min(var(--max),calc(100% - 40px));min-height:calc(100vh - 160px);margin:auto;padding:54px 0 80px}.app-footer{min-height:90px;padding:25px max(20px,calc((100vw - var(--max))/2));display:flex;justify-content:space-between;gap:20px;color:#fff;background:var(--deep)}.app-footer small{color:#d8c3ca}.page-head{display:grid;grid-template-columns:1fr minmax(240px,.5fr);gap:50px;align-items:end;margin-bottom:38px;padding-bottom:28px;border-bottom:1px solid var(--line)}.eyebrow{margin:0 0 10px;color:var(--wine);font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.page-head h1{margin:0;font:400 clamp(32px,5vw,52px)/1.02 Georgia,serif}.page-head h1 em{color:var(--wine);font-weight:400}.page-head>p{margin:0;color:var(--muted);line-height:1.65}.panel{padding:26px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 12px 34px rgba(41,43,45,.05)}.panel+.panel{margin-top:18px}.panel h2{margin:0 0 16px;font:400 25px Georgia,serif}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{min-width:0}.field.full{grid-column:1/-1}.field label{display:block;margin-bottom:7px;font-size:11px;font-weight:800}.field input,.field select,.field textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #aaa;border-radius:4px;background:#fff}.field textarea{min-height:120px;resize:vertical}.field small{display:block;margin-top:5px;color:var(--muted);line-height:1.4}.check{display:flex;align-items:flex-start;gap:9px}.check input{margin-top:3px}.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:0 18px;border:0;border-radius:4px;color:#fff;background:var(--wine);font-size:13px;font-weight:800;text-decoration:none;cursor:pointer}.button.secondary{color:var(--ink);background:var(--gold)}.button.outline{color:var(--ink);border:1px solid var(--ink);background:transparent}.button.danger{background:var(--bad)}.button[disabled]{cursor:not-allowed;opacity:.45}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.alert{margin-bottom:18px;padding:14px 16px;border-left:4px solid var(--gold);background:#fff8df;line-height:1.5}.alert.success{border-color:var(--ok);background:#eefaf2}.alert.error{border-color:var(--bad);background:#fff0ee}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:28px}.metric{padding:20px;border:1px solid var(--line);border-radius:6px;background:#fff}.metric span,.metric strong{display:block}.metric span{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.metric strong{margin-top:8px;font:400 28px Georgia,serif;color:var(--wine)}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.quick-link{min-height:145px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:7px;background:#fff;text-decoration:none}.quick-link small{color:var(--wine);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.quick-link strong{font:400 23px Georgia,serif}.event-list{border-top:1px solid var(--line)}.event{display:grid;grid-template-columns:120px minmax(0,1fr) 200px;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.event-date span,.event-date strong{display:block}.event-date span{color:var(--wine);font-size:10px;font-weight:800;text-transform:uppercase}.event-date strong{margin-top:5px;font:400 18px Georgia,serif}.event h2{margin:0 0 7px;font:400 23px Georgia,serif}.event p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.event-side{text-align:right}.badge{display:inline-block;padding:6px 8px;border-radius:20px;background:#f3e9ec;color:var(--wine);font-size:9px;font-weight:800;text-transform:uppercase}.badge.ok{background:#e9f5ed;color:var(--ok)}.badge.wait{background:#fff4d2;color:#7a5700}.pass{max-width:650px;margin:auto;text-align:center}.pass-code{margin:18px 0 8px;font:700 27px Georgia,serif;letter-spacing:.1em;color:var(--wine)}.qr{width:min(320px,100%);margin:25px auto;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff}.qr img{width:100%;height:auto}.question{padding:20px 0;border-bottom:1px solid var(--line)}.question h3{margin:0 0 14px;font:400 18px/1.4 Georgia,serif}.scale{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.scale.ten{grid-template-columns:repeat(11,1fr)}.scale label{position:relative}.scale input{position:absolute;opacity:0}.scale span{min-height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;cursor:pointer}.scale input:checked+span{color:#fff;border-color:var(--wine);background:var(--wine)}.scale-labels{display:flex;justify-content:space-between;margin-top:7px;color:var(--muted);font-size:10px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;background:#fff;font-size:12px}th,td{padding:12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:9px;letter-spacing:.09em;text-transform:uppercase}.empty{padding:48px 20px;text-align:center;border:1px dashed #bbb;border-radius:8px;color:var(--muted)}.scan-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.reader{min-height:310px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#111}.reader video{width:100%;height:100%;object-fit:cover}.muted{color:var(--muted)}@media(max-width:800px){.app-header{align-items:flex-start;padding-top:14px;padding-bottom:14px;flex-direction:column;gap:12px}.app-header nav{width:100%;padding-bottom:3px}.app-main{width:min(100% - 28px,680px);padding-top:36px}.page-head{grid-template-columns:1fr;gap:14px}.form-grid,.quick-grid,.scan-layout{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.event{grid-template-columns:85px minmax(0,1fr)}.event-side{grid-column:2;text-align:left}.scale.ten{grid-template-columns:repeat(6,1fr)}.app-footer{align-items:flex-start;flex-direction:column}.panel{padding:20px}}@media(max-width:420px){.metrics{grid-template-columns:1fr}.event{grid-template-columns:1fr}.event-side{grid-column:1}.scale{grid-template-columns:repeat(3,1fr)}.scale.ten{grid-template-columns:repeat(4,1fr)}.actions .button{width:100%}}

/* Ajustes operativos FIL CNEIP */
.field.check{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:12px;line-height:1.45}.field.check input{width:18px;min-height:18px;height:18px;margin:2px 0 0}.field.check label{margin:0;font-size:13px;font-weight:600}.form-note{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.admin-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.admin-actions form{margin:0}.button.small{min-height:34px;padding:0 12px;gap:8px;font-size:11px}.button.linklike{color:var(--wine);background:transparent;border:0;padding:0;min-height:auto}.status-pill{display:inline-block;padding:5px 8px;border-radius:20px;background:#f3e9ec;color:var(--wine);font-size:10px;font-weight:800;text-transform:uppercase}.status-pill.off{background:#eee;color:#555}.split-panel{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:18px;align-items:start}.subtle-box{padding:16px;border:1px solid var(--line);border-radius:6px;background:#fbfaf7}.subtle-box+.subtle-box{margin-top:12px}.event-meta{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0}.event-detail{margin-top:10px;color:var(--muted);line-height:1.55}.event-detail strong{color:var(--ink)}.qr-sheet{max-width:760px;margin:auto}.qr-preview{display:grid;grid-template-columns:260px minmax(0,1fr);gap:26px;align-items:center}.qr-code-box{padding:18px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:center}.qr-code-box svg{width:100%;height:auto}.callout-list{margin:14px 0 0;padding-left:20px;line-height:1.65}.callout-list li+li{margin-top:4px}.pdf-card{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fff}.identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.identity-item{padding:16px;background:#fbfaf7;border:1px solid var(--line);border-radius:8px}.identity-item span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.identity-item strong{display:block;margin-top:6px;color:var(--wine);font:700 24px Georgia,serif;letter-spacing:.06em}.danger-zone{margin-top:18px;padding:16px;border:1px solid #e0b6b2;background:#fff6f5;border-radius:8px}.table-wrap td .button{margin:2px 0}.table-wrap td form{display:inline-block}.nowrap{white-space:nowrap}.help-text{color:var(--muted);font-size:12px;line-height:1.5}.preview-title{font:400 31px/1.08 Georgia,serif;margin:0 0 10px}.preview-title em{color:var(--wine);font-style:italic}.file-current{padding:12px;border-radius:6px;background:#f8efcf;color:#6d001f;font-weight:700;line-height:1.5}
@media(max-width:900px){.split-panel,.qr-preview{grid-template-columns:1fr}.app-header nav{gap:16px}.pdf-card{align-items:flex-start;flex-direction:column}.identity-grid{grid-template-columns:1fr}}
@media(max-width:560px){.field.check{grid-template-columns:22px minmax(0,1fr);gap:10px}.field.check label{font-size:12.5px}.admin-actions{flex-direction:column;align-items:stretch}.admin-actions .button,.admin-actions form,.admin-actions form button{width:100%}.table-wrap{margin-left:-14px;margin-right:-14px;width:calc(100% + 28px)}table{font-size:11px}.preview-title{font-size:27px}.qr-code-box{padding:12px}.identity-item strong{font-size:21px}.scale.ten{grid-template-columns:repeat(5,1fr)}}

/* QR por actividad - flujo operativo */
.no-print{print-color-adjust:exact;-webkit-print-color-adjust:exact}.qr-list-head h1{max-width:820px}.qr-base-box{display:grid;gap:8px;margin-bottom:18px}.qr-base-box span{font-size:11px;font-weight:800;color:var(--wine);letter-spacing:.12em;text-transform:uppercase}.qr-base-box code,.qr-url-mini,.qr-url-box code{display:block;width:100%;padding:10px 12px;border:1px solid #d7dce5;border-radius:8px;background:#f9fafb;color:#1f2937;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:12px;line-height:1.35;word-break:break-all}.qr-base-box small,.qr-url-box small{color:var(--muted);font-size:12px}.qr-top-actions{margin-bottom:24px}.qr-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.qr-event-card{display:grid;grid-template-columns:210px minmax(0,1fr);gap:22px;align-items:center;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 18px 44px rgba(41,43,45,.06);break-inside:avoid;page-break-inside:avoid}.qr-event-code{padding:16px;border:1px solid #d7dce5;border-radius:15px;background:#fbfcfd;display:grid;place-items:center;min-height:210px}.qr-event-code .qr-img,.qr-code-box .qr-img{display:block;width:100%;height:auto;max-width:240px;margin:auto}.qr-event-code .qr-svg svg,.qr-code-box .qr-svg svg{width:100%;height:auto}.qr-html table{border-collapse:collapse;margin:auto;background:#fff}.qr-html table td{padding:0!important;border:0!important}.qr-event-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.qr-event-kicker>span:first-child{display:inline-flex;min-height:26px;align-items:center;padding:0 10px;border-radius:20px;background:#eef3fb;color:#123b6d;font-size:10px;font-weight:900;letter-spacing:.04em}.qr-event-info h2{margin:0 0 5px;font:700 23px/1.08 "Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;color:#1f2937}.qr-event-info p{margin:5px 0;color:#3f4651;line-height:1.42}.qr-subtitle{font-size:15px}.qr-token{margin-top:10px;color:#0f3766;font-size:12px;font-weight:800;word-break:break-word}.qr-url-mini{margin-top:8px;color:#697386;background:#f8fafc}.qr-card-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.qr-preview-large{grid-template-columns:310px minmax(0,1fr)}.qr-code-printable{min-height:310px;display:grid;place-items:center}.qr-code-printable .qr-img{max-width:270px}.qr-url-box{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7}.qr-url-box span{display:block;margin-bottom:8px;color:var(--wine);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.qr-fallback{display:grid;gap:8px;place-items:center;text-align:center;color:var(--muted);min-height:160px}.qr-fallback strong{color:var(--wine)}
@media(max-width:1100px){.qr-event-grid{grid-template-columns:1fr}.qr-event-card{grid-template-columns:190px minmax(0,1fr)}}
@media(max-width:720px){.qr-event-card,.qr-preview-large{grid-template-columns:1fr}.qr-event-code{min-height:auto}.qr-event-code .qr-img,.qr-code-box .qr-img{max-width:260px}.qr-card-actions .button{width:100%}.qr-base-box code,.qr-url-mini,.qr-url-box code{font-size:11px}.qr-code-printable{min-height:auto}}
@media print{body{background:#fff}.app-header,.app-footer,.no-print{display:none!important}.app-main{width:100%;padding:0;margin:0}.panel{box-shadow:none}.qr-event-grid{display:block;margin:0}.qr-event-card{box-shadow:none;border:1px solid #999;border-radius:0;margin:0 0 12mm;padding:10mm;grid-template-columns:55mm 1fr;page-break-inside:avoid}.qr-event-code{min-height:55mm;padding:4mm;border:1px solid #999;border-radius:3mm}.qr-event-info h2{font-size:18pt}.qr-url-mini{font-size:8pt}.printable-qr-sheet{border:0;box-shadow:none}.qr-preview-large{grid-template-columns:70mm 1fr;gap:10mm}.qr-code-printable{border:1px solid #999;min-height:70mm}.subtle-box{border:1px solid #999;background:#fff}}

/* Filtros públicos por modalidad */
.public-filter{display:flex;gap:8px;overflow-x:auto;margin:-16px 0 28px;padding:0 0 8px;scrollbar-width:thin}.public-filter a{flex:0 0 auto;min-height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 15px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:12px;font-weight:800;text-decoration:none}.public-filter a.active,.public-filter a:hover{border-color:var(--gold);background:var(--gold)}@media(max-width:560px){.public-filter{margin-top:-10px}.public-filter a{font-size:11px;padding:0 13px}}
/* Programa público: ficha editorial ampliada */
.program-days{display:grid;gap:34px}.program-day-head{display:flex;align-items:end;justify-content:space-between;gap:22px;margin:8px 0 14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.program-day-head span{color:var(--wine);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.program-day-head h2{margin:0;font:400 clamp(25px,3.2vw,36px)/1.08 Georgia,serif}.program-event-list{border-top:0}.event.program-card{align-items:start;padding:28px 0;grid-template-columns:120px minmax(0,1fr) 210px}.program-card-body{min-width:0}.program-card-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.program-capacity{display:inline-flex;min-height:25px;align-items:center;padding:0 9px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.program-place{margin-top:8px!important;color:var(--muted)!important}.program-place strong{color:var(--ink)}.program-author{margin-top:14px;padding:12px 14px;border-left:4px solid var(--gold);border-radius:6px;background:#fffdf5}.program-author span,.program-author strong{display:block}.program-author span{margin-bottom:4px;color:var(--wine);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.program-author strong{font-size:14px;line-height:1.45}.program-description-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:14px}.program-copy,.program-note{min-width:0;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#fff}.program-copy.primary{border-left:4px solid var(--wine)}.program-copy h3,.program-note h3{margin:0 0 6px;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.program-copy h3{color:var(--wine)}.program-note{border-color:#ecd98b;background:#fff9df}.program-note h3{color:#7a5700}.program-copy p,.program-note p{margin:0!important;color:var(--muted)!important;font-size:13px!important;line-height:1.6!important}.event-date em{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-style:normal;line-height:1.3}@media(max-width:900px){.event.program-card{grid-template-columns:90px minmax(0,1fr)}.event.program-card .event-side{grid-column:2;text-align:left}.program-day-head{align-items:flex-start;flex-direction:column;gap:4px}.program-day-head h2{font-size:30px}}@media(max-width:560px){.event.program-card{grid-template-columns:1fr;gap:14px}.event.program-card .event-side{grid-column:1}.event.program-card .event-side .button,.event.program-card .event-side form{width:100%}.event.program-card .event-side .button{justify-content:center}.program-card-top{gap:6px}.program-author,.program-copy,.program-note{padding:12px}.program-copy p,.program-note p{font-size:12.5px!important}.program-day-head h2{font-size:27px}.program-capacity{font-size:9px}}

/* Programa público compacto: datos editoriales sin etiquetas invasivas */
.compact-program{gap:30px}.program-stream{border-top:1px solid var(--line)}.program-row{display:grid;grid-template-columns:104px minmax(0,1fr) 150px;gap:22px;align-items:start;padding:20px 0;border-bottom:1px solid var(--line)}.program-time{display:block;color:var(--wine);font:700 17px/1.25 Georgia,serif;letter-spacing:.01em}.program-main{min-width:0}.program-line{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:0 0 5px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.program-kind{color:var(--wine)}.program-person{position:relative;padding-left:12px;letter-spacing:.03em;text-transform:none;font-size:12px;font-weight:700;color:var(--ink)}.program-person:before{content:"";position:absolute;left:0;top:.55em;width:4px;height:4px;border-radius:50%;background:var(--gold)}.program-main h2{margin:0;font:400 clamp(22px,2.6vw,31px)/1.08 Georgia,serif}.program-summary{max-width:760px;margin:8px 0 0!important;color:var(--muted)!important;font-size:14px!important;line-height:1.55!important}.program-where{margin:8px 0 0!important;color:var(--ink)!important;font-size:12px!important;font-weight:700;line-height:1.45!important}.program-note-compact{max-width:760px;margin:8px 0 0!important;padding:8px 10px;border-left:3px solid var(--gold);background:#fff9df;color:#6a4d00!important;font-size:12px!important;line-height:1.45!important}.program-note-compact strong{color:#6a4d00}.program-more{margin-top:8px}.program-more summary{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--wine);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;list-style:none}.program-more summary::-webkit-details-marker{display:none}.program-more summary:after{content:"+";font-size:13px;line-height:1}.program-more[open] summary:after{content:"−"}.program-more-content{max-width:760px;margin-top:10px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fff}.program-more-content p{margin:0!important;color:var(--muted)!important;font-size:13px!important;line-height:1.6!important}.program-more-content p+p{margin-top:9px!important}.program-action{display:grid;justify-items:end;gap:8px;text-align:right}.program-action form{margin:0}.program-action .button{min-height:38px;padding:0 16px}.program-seats{display:inline-flex;min-height:24px;align-items:center;padding:0 9px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;white-space:nowrap}.program-action .badge{white-space:nowrap}@media(max-width:900px){.program-row{grid-template-columns:88px minmax(0,1fr);gap:16px}.program-action{grid-column:2;justify-items:start;text-align:left;display:flex;flex-wrap:wrap;align-items:center}.program-action .button{min-height:36px}.program-main h2{font-size:25px}}@media(max-width:560px){.program-row{grid-template-columns:1fr;gap:10px;padding:18px 0}.program-time{font-size:15px}.program-line{gap:5px 8px;font-size:10px}.program-person{display:block;width:100%;padding-left:10px;font-size:11.5px}.program-main h2{font-size:24px}.program-summary{font-size:13px!important;line-height:1.5!important}.program-action{grid-column:1}.program-action,.program-action form,.program-action .button{width:100%}.program-action .button{justify-content:center}.program-seats{width:auto}.program-more summary{width:100%;justify-content:center}.program-more-content{padding:11px 12px}.program-day-head h2{font-size:26px}}

/* Dashboard de evaluación FIL CNEIP */
.analytics-hero{display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(0,1.2fr);gap:26px;align-items:center;margin-bottom:18px}.analytics-label{display:block;color:var(--wine);font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.analytics-hero strong{display:block;margin-top:8px;color:var(--wine);font:400 clamp(42px,6vw,72px)/.95 Georgia,serif}.analytics-hero p{margin:10px 0 0;color:var(--muted);line-height:1.55}.analytics-ring{width:160px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--wine) calc(var(--value)*1%), #eee7df 0);position:relative}.analytics-ring:after{content:"";position:absolute;inset:13px;border-radius:50%;background:#fff}.analytics-ring span{position:relative;z-index:1;color:var(--wine);font:700 26px Georgia,serif}.analytics-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.analytics-summary-grid div{min-width:0;padding:15px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7}.analytics-summary-grid span{display:block;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.analytics-summary-grid strong{margin-top:6px;color:var(--ink);font-size:26px}.analytics-summary-grid small{display:block;color:var(--muted);line-height:1.4}.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.section-inline-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:18px}.section-inline-head h2{margin:0}.section-inline-head p:not(.eyebrow){max-width:420px;margin:0;color:var(--muted);font-size:13px;line-height:1.55}.insight-list{display:grid;gap:10px}.insight-list div{padding:14px 15px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7}.insight-list span{display:block;color:var(--wine);font:700 18px Georgia,serif}.insight-list strong{display:block;margin-top:4px;line-height:1.35}.insight-list small{display:block;margin-top:5px;color:var(--muted);line-height:1.4}.insight-list.attention div{border-left:4px solid var(--gold)}.analytics-question-list{display:grid;gap:0;border-top:1px solid var(--line)}.analytics-question{display:grid;grid-template-columns:minmax(0,1fr) 100px 160px;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.analytics-question h3{margin:7px 0 4px;font:400 18px/1.35 Georgia,serif}.analytics-question p{margin:0;color:var(--muted);font-size:12px}.analytics-score{text-align:center}.analytics-score strong{display:block;color:var(--wine);font:700 24px Georgia,serif}.analytics-score span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.1em}.mini-bars{height:58px;display:flex;align-items:end;gap:5px}.mini-bars i{flex:1;min-width:5px;position:relative;border-radius:4px 4px 0 0;background:var(--wine);opacity:.82}.mini-bars i span{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:3px;color:var(--muted);font-size:8px;font-style:normal}.status-pill.good{background:#eef6ff;color:#24527a}.status-pill.warn{background:#fff4d2;color:#7a5700}.status-pill.bad{background:#fff0ee;color:var(--bad)}.status-pill.neutral{background:#eee;color:#555}.keyword-cloud{display:flex;flex-wrap:wrap;gap:9px}.keyword-cloud span{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;border-radius:999px;background:#f3e9ec;color:var(--wine);font-size:13px;font-weight:800}.keyword-cloud small{color:var(--muted);font-size:10px}.decision-list{display:grid;gap:10px}.decision-list div{padding:14px;border-left:4px solid var(--wine);border-radius:8px;background:#fbfaf7}.decision-list strong{display:block}.decision-list p{margin:5px 0 0;color:var(--muted);line-height:1.5}.quote-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.quote-columns h3{margin:0 0 10px;font:400 20px Georgia,serif}.quote-columns blockquote{margin:0 0 10px;padding:13px 14px;border-left:3px solid var(--gold);background:#fffdf5;color:#4d4d4a;font-size:13px;line-height:1.55}.progress-line{height:8px;overflow:hidden;border-radius:999px;background:#eee7df}.progress-line span{display:block;height:100%;max-width:100%;border-radius:999px;background:var(--wine)}.demographic-blocks{display:grid;gap:18px}.demographic-blocks h3{margin:0 0 10px;color:var(--wine);font-size:11px;text-transform:uppercase;letter-spacing:.12em}.demographic-blocks p{display:flex;justify-content:space-between;gap:12px;margin:10px 0 5px;color:var(--muted);font-size:12px}.demographic-blocks p strong{color:var(--ink)}

/* Voces invitadas administración */
.voices-admin-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.voices-admin-list{display:grid;gap:12px}.voice-admin-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7}.voice-admin-card h3{margin:0 0 4px;font:400 21px Georgia,serif}.voice-admin-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.voice-admin-avatar{width:72px;height:72px;overflow:hidden;border-radius:50%;background:var(--wine);display:grid;place-items:center;color:#fff;font:700 22px Georgia,serif}.voice-admin-avatar img{width:100%;height:100%;object-fit:cover}.voice-admin-card .admin-actions{margin-top:12px}
@media(max-width:900px){.analytics-hero{grid-template-columns:1fr}.analytics-ring{width:140px}.analytics-summary-grid,.analytics-grid,.quote-columns,.voices-admin-layout{grid-template-columns:1fr}.analytics-question{grid-template-columns:1fr;gap:12px}.analytics-score{text-align:left}.mini-bars{max-width:260px}.section-inline-head{align-items:flex-start;flex-direction:column;gap:8px}}
@media(max-width:520px){.analytics-summary-grid{grid-template-columns:1fr}.voice-admin-card{grid-template-columns:54px minmax(0,1fr);padding:12px}.voice-admin-avatar{width:54px;height:54px;font-size:17px}.voice-admin-card .admin-actions .button{width:100%}}

/* Evaluación y mejora continua 2.0 · Feria del Libro */
.eval-top-actions{margin:-18px 0 24px}.eval-hero{display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(0,.85fr);gap:26px;align-items:center;margin-bottom:18px}.eval-ring{justify-self:center}.eval-quality-card{padding:18px;border:1px solid var(--line);border-radius:10px;background:#fbfaf7}.eval-quality-card span{display:block;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.eval-quality-card strong{display:block;margin-top:7px;color:var(--wine);font:400 42px/1 Georgia,serif}.eval-quality-card p{margin:8px 0 0;color:var(--muted);line-height:1.5}.eval-quality-card.bad{border-left:5px solid var(--bad)}.eval-quality-card.warn{border-left:5px solid var(--gold)}.eval-quality-card.good,.eval-quality-card.ok{border-left:5px solid var(--ok)}.eval-metric small{display:block;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.35}.eval-main-grid{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr)}.decision-list-strong div{border-left-width:5px}.decision-list small{display:block;margin-top:7px;color:var(--wine);font-size:11px;font-weight:800;line-height:1.45}.quality-list{display:grid;gap:9px;margin-bottom:16px}.quality-list p{margin:0;padding:11px 12px;border-left:3px solid var(--gold);background:#fffaf0;color:#5f5440;line-height:1.5}.compact-table table{font-size:12px}.compact-table th{width:42%}.funnel-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.funnel-step{padding:16px;border:1px solid var(--line);border-radius:10px;background:#fbfaf7}.funnel-step span,.funnel-step small{display:block;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.funnel-step strong{display:block;margin:7px 0;color:var(--wine);font:400 30px Georgia,serif}.dimension-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dimension-card{padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}.dimension-card span{display:inline-block;padding:5px 8px;border-radius:999px;background:#eee;color:#555;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.dimension-card.ok span{background:#e9f5ed;color:var(--ok)}.dimension-card.good span{background:#eef6ff;color:#24527a}.dimension-card.warn span{background:#fff4d2;color:#7a5700}.dimension-card.bad span{background:#fff0ee;color:var(--bad)}.dimension-card h3{min-height:42px;margin:10px 0 8px;font:400 20px/1.08 Georgia,serif}.dimension-card strong{display:block;margin-bottom:8px;color:var(--wine);font:700 27px Georgia,serif}.dimension-card small{display:block;margin-top:7px;color:var(--muted);font-size:11px}.priority-list{display:grid;gap:12px}.priority-item{padding:15px;border:1px solid var(--line);border-radius:10px;background:#fbfaf7}.priority-item>div:first-child{display:flex;align-items:start;justify-content:space-between;gap:16px}.priority-item strong{display:block;font:400 20px Georgia,serif}.priority-item span{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eee;color:#555;font-size:9px;font-weight:900;text-transform:uppercase}.priority-item.ok span{background:#e9f5ed;color:var(--ok)}.priority-item.good span{background:#eef6ff;color:#24527a}.priority-item.warn span{background:#fff4d2;color:#7a5700}.priority-item.bad span{background:#fff0ee;color:var(--bad)}.priority-item p{margin:8px 0 12px;color:var(--muted);font-size:13px;line-height:1.5}.priority-bars{display:grid;gap:6px}.priority-bars label{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.pareto-list{display:grid;gap:11px}.pareto-list p{display:flex;align-items:center;justify-content:space-between;margin:0 0 5px;gap:12px}.pareto-list span{font-weight:800}.pareto-list strong{color:var(--wine)}.pareto-list small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.question-section+.question-section{margin-top:26px}.question-section>h3{margin:0 0 8px;color:var(--wine);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.analytics-question h4{margin:7px 0 4px;font:400 18px/1.35 Georgia,serif}.eval-quote-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.category-evidence-list{display:grid;gap:10px}.category-evidence-list details{padding:13px;border:1px solid var(--line);border-radius:9px;background:#fbfaf7}.category-evidence-list summary{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:900;cursor:pointer}.category-evidence-list summary span{display:inline-flex;min-width:28px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:#f3e9ec;color:var(--wine);font-size:11px}.category-evidence-list blockquote{margin:10px 0 0;padding:10px 12px;border-left:3px solid var(--gold);background:#fff;color:#4d4d4a;font-size:12px;line-height:1.5}.summary-tabs{display:grid;gap:10px}.summary-tabs details{padding:13px;border:1px solid var(--line);border-radius:9px;background:#fbfaf7}.summary-tabs summary{font-weight:900;cursor:pointer}.summary-tabs p{display:flex;justify-content:space-between;gap:12px;margin:12px 0 5px;color:var(--muted);font-size:12px}.summary-tabs p strong{color:var(--wine)}.summary-tabs h3{margin:16px 0 4px;color:var(--wine);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.eval-form-intro{margin-bottom:18px;padding:15px;border:1px solid var(--line);border-left:4px solid var(--wine);border-radius:8px;background:#fbfaf7}.eval-form-intro strong{display:block;font:400 22px Georgia,serif;color:var(--wine)}.eval-form-intro p{margin:7px 0 0;color:var(--muted);line-height:1.55}.eval-question-section{margin-top:18px}.eval-question-section h2{margin:0;padding:13px 0 8px;border-bottom:1px solid var(--line);color:var(--wine);font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.eval-na{margin-top:10px;font-size:12px;color:var(--muted)}@media(max-width:980px){.eval-hero,.eval-main-grid{grid-template-columns:1fr}.funnel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dimension-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.eval-quote-columns{grid-template-columns:1fr}}@media(max-width:560px){.eval-top-actions .button{width:100%}.funnel-grid,.dimension-grid{grid-template-columns:1fr}.priority-item>div:first-child{display:block}.priority-item span{margin-top:7px}.eval-quality-card strong{font-size:34px}.analytics-question h4{font-size:16px}.eval-form-intro strong{font-size:19px}}

/* Evaluación FIL 2026 · selección de actividades desde programa publicado */
.event-choice-help{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.45}.event-choice-list{display:grid;gap:9px}.event-choice{display:grid;grid-template-columns:22px minmax(0,1fr);gap:11px;align-items:start;padding:12px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.event-choice:hover{border-color:#b89a52;box-shadow:0 8px 20px rgba(41,43,45,.06)}.event-choice input{position:absolute;opacity:0;pointer-events:none}.event-choice-mark{width:20px;height:20px;margin-top:2px;border:1px solid #aaa;border-radius:50%;background:#fff}.event-choice input[type=checkbox]+.event-choice-mark{border-radius:5px}.event-choice input:checked+.event-choice-mark{border-color:var(--wine);background:radial-gradient(circle at center,var(--wine) 0 42%,transparent 45%)}.event-choice input[type=checkbox]:checked+.event-choice-mark{background:var(--wine);position:relative}.event-choice input[type=checkbox]:checked+.event-choice-mark:after{content:"";position:absolute;left:5px;top:2px;width:7px;height:12px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.event-choice:has(input:checked){border-color:var(--wine);background:#fff9fb}.event-choice.attended{border-left:4px solid var(--gold)}.event-choice-body strong,.event-choice-body small{display:block}.event-choice-body strong{font:400 17px/1.25 Georgia,serif}.event-choice-body small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.4}.event-impact-list{display:grid;gap:10px}.event-impact-list div{padding:13px 14px;border:1px solid var(--line);border-radius:9px;background:#fbfaf7}.event-impact-list strong,.event-impact-list span,.event-impact-list small{display:block}.event-impact-list strong{font:400 19px/1.25 Georgia,serif}.event-impact-list span{margin-top:5px;color:var(--wine);font-size:12px;font-weight:900}.event-impact-list small{margin:3px 0 8px;color:var(--muted);font-size:11px;line-height:1.35}@media(max-width:560px){.event-choice{grid-template-columns:20px minmax(0,1fr);padding:11px}.event-choice-body strong{font-size:15.5px}.event-choice-body small{font-size:10.5px}}
.question-missing{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px;border-left:4px solid var(--bad);background:#fff7f6}.question-missing h3{color:#5f001b}.eval-missing-list ul{margin:8px 0 0;padding-left:20px}.eval-missing-list li{margin:4px 0}.eval-form textarea{white-space:pre-wrap}

/* Análisis con IA · Evaluación de la Feria del Libro */
.ai-page-head h1 em{color:var(--wine)}.ai-control-panel{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;align-items:center}.ai-control-main h2{margin:0 0 8px;font:400 34px Georgia,serif;color:var(--wine)}.ai-control-main p{margin:0;color:var(--muted);line-height:1.6}.ai-control-side{display:grid;gap:10px}.ai-control-side small{display:block;color:var(--muted);font-size:11px;line-height:1.35;word-break:break-word}.ai-config-warning code,.code-block, .ai-context-panel pre{white-space:pre-wrap;word-break:break-word}.code-block,.ai-context-panel pre{padding:16px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7;color:#292b2d;font-size:12px;line-height:1.55;overflow:auto}.ai-executive .ai-lead{margin:0;color:#333;font:400 22px/1.55 Georgia,serif}.ai-usage{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.ai-usage span{display:inline-flex;gap:5px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#fbfaf7;color:var(--muted);font-size:11px}.ai-usage strong{color:var(--wine)}.ai-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-reliability{padding:16px;border:1px solid var(--line);border-radius:9px;background:#fbfaf7}.ai-reliability strong{display:block;color:var(--wine);font:400 26px Georgia,serif}.ai-reliability p{margin:8px 0 0;color:var(--muted);line-height:1.55}.ai-bullets{margin:14px 0 0;padding-left:20px;line-height:1.65}.ai-bullets li+li{margin-top:6px}.ai-evidence-list{display:grid;gap:12px}.ai-evidence-list article{position:relative;padding:17px 18px;border:1px solid var(--line);border-radius:10px;background:#fff}.ai-evidence-list article>span{display:inline-flex;margin-bottom:9px;padding:5px 8px;border-radius:999px;background:#f3e9ec;color:var(--wine);font-size:10px;font-weight:900;text-transform:uppercase}.ai-evidence-list h3{margin:0;font:400 21px/1.25 Georgia,serif}.ai-evidence-list p{margin:8px 0;color:#444;line-height:1.55}.ai-evidence-list small{display:block;color:var(--muted);line-height:1.45}.ai-recommendations{display:grid;gap:14px}.ai-recommendations article{padding:18px;border:1px solid var(--line);border-radius:10px;background:#fbfaf7}.ai-recommendations article>div{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.ai-recommendations span{display:inline-flex;padding:5px 8px;border-radius:999px;background:var(--wine);color:#fff;font-size:10px;font-weight:900;text-transform:uppercase}.ai-recommendations h3{margin:0;font:400 22px/1.25 Georgia,serif}.ai-recommendations p{margin:10px 0;color:#444;line-height:1.55}.ai-recommendations dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 14px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:12px}.ai-recommendations dt{color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.08em}.ai-recommendations dd{margin:0;color:#333}.ai-report-text{margin:0;color:#333;font:400 19px/1.65 Georgia,serif}.ai-subtitle{margin:24px 0 0;color:var(--wine);font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.ai-context-panel summary{cursor:pointer;font-weight:900}.ai-context-panel pre{max-height:520px;margin-top:16px}.ai-metrics .metric strong{font-size:26px}@media print{.app-header,.app-footer,.actions,.ai-control-panel,.ai-context-panel{display:none!important}.app-main{width:100%;padding:0}.panel{box-shadow:none;break-inside:avoid}.ai-grid-two,.analytics-grid{grid-template-columns:1fr!important}}@media(max-width:900px){.ai-control-panel,.ai-grid-two{grid-template-columns:1fr}.ai-control-side{justify-items:start}.ai-control-side .button{width:100%}}@media(max-width:560px){.ai-executive .ai-lead{font-size:18px}.ai-recommendations article>div{display:block}.ai-recommendations span{margin-top:8px}.ai-recommendations dl{grid-template-columns:1fr}.ai-evidence-list h3,.ai-recommendations h3{font-size:19px}}

/* Integración del análisis IA dentro del dashboard de evaluación.
   El botón principal permanece en evaluacion.php; evaluacion_ia.php conserva la vista extendida. */
.eval-actions-with-form,
.eval-actions-with-form .inline-action-form {
  align-items: center;
}
.inline-action-form {
  display: inline-flex;
  margin: 0;
}
.inline-action-form .button {
  white-space: nowrap;
}
.eval-ai-integrated-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: center;
  border-left: 6px solid var(--vino, #830024);
}
.eval-ai-integrated-main h2 {
  margin: .2rem 0 .7rem;
}
.eval-ai-summary {
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  line-height: 1.7;
  margin-bottom: .8rem;
}
.eval-ai-integrated-actions {
  display: grid;
  gap: .75rem;
}
.eval-ai-integrated-actions form {
  margin: 0;
}
.eval-ai-integrated-actions .button,
.eval-ai-integrated-actions button {
  width: 100%;
}
@media (max-width: 760px) {
  .eval-ai-integrated-panel {
    grid-template-columns: 1fr;
  }
  .eval-actions-with-form,
  .eval-actions-with-form .inline-action-form,
  .eval-actions-with-form .button,
  .eval-actions-with-form button {
    width: 100%;
  }
  .inline-action-form {
    display: flex;
  }
}

/* Progreso en tiempo real del análisis IA dentro de evaluacion.php */
.ai-progress-panel{border-left:6px solid var(--gold);background:linear-gradient(180deg,#fff,#fffdfa)}
.ai-progress-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}.ai-progress-head h2{margin:.1rem 0 .55rem}.ai-progress-head p{margin:0;color:var(--muted);line-height:1.55}.ai-progress-head strong{font:400 clamp(38px,7vw,72px)/1 Georgia,serif;color:var(--wine)}
.ai-progress-bar{height:15px;margin:18px 0 12px;border:1px solid var(--line);border-radius:999px;background:#f4f1ea;overflow:hidden}.ai-progress-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--wine),var(--gold));transition:width .45s ease}
.ai-progress-current{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:16px;color:var(--muted);font-size:12px}.ai-progress-current span{color:var(--ink);font-weight:900}.ai-progress-current small{white-space:nowrap;color:var(--wine);font-weight:900}
.ai-progress-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ai-progress-step{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7;color:var(--muted);font-size:12px;line-height:1.35}.ai-progress-step i{width:22px;height:22px;display:grid;place-items:center;border-radius:999px;background:#ebe7dd;color:#777;font-style:normal;font-size:10px;font-weight:900}.ai-progress-step.done{border-color:#cbdccf;background:#f1fbf4;color:#2c6540}.ai-progress-step.done i{background:#287a4a;color:#fff}.ai-progress-step.current{border-color:#d8b849;background:#fff8df;color:#3d3200;box-shadow:0 8px 22px rgba(232,173,24,.14)}.ai-progress-step.current i{background:var(--gold);color:#2b2200}.ai-progress-step.error{border-color:#d9a19b;background:#fff0ee;color:#7a1f18}.ai-progress-step.error i{background:var(--bad);color:#fff}
.ai-progress-message{margin-top:14px;padding:11px 13px;border-left:4px solid var(--gold);background:#fff8df;color:#5e4700;font-size:13px;line-height:1.45}.ai-progress-message.success{border-color:var(--ok);background:#eefaf2;color:#245f38}.ai-progress-message.error{border-color:var(--bad);background:#fff0ee;color:#7a1f18}
@media(max-width:760px){.ai-progress-head{grid-template-columns:1fr}.ai-progress-head strong{font-size:46px}.ai-progress-current{display:block}.ai-progress-current small{display:block;margin-top:6px}.ai-progress-steps{grid-template-columns:1fr}}

/* Super panel anual y constancias */
.certificate-block .table-wrap{margin-top:14px}.certificate-block table strong{font-size:14px}.certificate-block .badge{margin-right:6px}.admin-actions select{min-height:34px;padding:5px 8px;border:1px solid var(--line);border-radius:4px;background:#fff}.split-panel .panel .admin-actions{margin-top:8px}.table-wrap input[type=date],.table-wrap input[type=number],.table-wrap input[type=text],.table-wrap input:not([type]){min-height:34px;padding:6px 8px;border:1px solid #aaa;border-radius:4px}.table-wrap .check{display:flex;align-items:center;gap:6px;margin:4px 0}.table-wrap .check input{width:auto;min-height:auto}.table-wrap .check span{font-size:12px}.status-pill.off{background:#f1f1f1;color:#666}@media(max-width:900px){.split-panel{grid-template-columns:1fr}.certificate-block .table-wrap table{min-width:720px}}

/* Administración de plantillas, firmantes y verificación de constancias */
.certificate-admin-layout{align-items:stretch}.certificate-template-preview{position:relative;display:grid;place-items:center;min-height:245px;border:1px solid var(--line);border-radius:10px;background:#fbfaf7;overflow:hidden}.certificate-template-preview.horizontal{aspect-ratio:1.294/1}.certificate-template-preview.vertical{aspect-ratio:.772/1;max-height:520px;margin:auto}.certificate-template-preview img{width:100%;height:100%;object-fit:contain;background:#fff}.certificate-empty-preview{display:grid;gap:6px;text-align:center;color:var(--muted)}.certificate-empty-preview strong{color:var(--wine);font:400 22px Georgia,serif}.certificate-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.certificate-meta-grid span{padding:11px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7;color:var(--muted);font-size:12px}.certificate-meta-grid strong{display:block;margin-bottom:4px;color:var(--wine);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.signer-admin-list{display:grid;gap:14px}.signer-admin-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}.signer-admin-card.is-off{opacity:.68;background:#fbfaf7}.signer-preview{height:58px;margin-bottom:12px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:8px;background:#fbfaf7}.signer-preview img{max-width:220px;max-height:50px;object-fit:contain}.signer-preview span{color:var(--muted);font-size:12px}.verify-search{margin-bottom:18px}.verify-result{border-left:6px solid var(--gold)}.verify-result.valid{border-left-color:var(--ok)}.verify-result.invalid,.verify-result.pending{border-left-color:var(--bad)}.verify-status{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:18px}.verify-status span{display:inline-flex;padding:7px 10px;border-radius:999px;background:#eefaf2;color:var(--ok);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.verify-status strong{font:400 24px Georgia,serif;color:var(--wine);text-align:right}.verify-identity h2{margin:0;font:400 clamp(30px,5vw,48px)/1.05 Georgia,serif}.verify-identity p{margin:8px 0 0;color:var(--muted);font-size:15px}.verify-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.verify-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.verify-grid div{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7}.verify-grid span{display:block;margin-bottom:6px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.verify-grid strong{display:block;color:#292b2d;font-size:13px;line-height:1.4;word-break:break-word}.verify-event-box{margin-top:22px;padding:20px;border:1px solid var(--line);border-radius:10px;background:#fffdfa}.verify-event-box h3{margin:0;font:400 28px/1.2 Georgia,serif}.verify-event-box p:not(.eyebrow){margin:8px 0 0;color:var(--muted)}.verify-note{margin:22px 0 0;color:var(--muted);font-size:13px;line-height:1.55}@media(max-width:850px){.signer-admin-card{grid-template-columns:1fr}.verify-status{display:block}.verify-status strong{display:block;margin-top:12px;text-align:left}.verify-grid,.verify-grid.compact,.certificate-meta-grid{grid-template-columns:1fr}.certificate-template-preview{min-height:180px}}

.qr-placement-control{padding:16px;border:1px solid var(--line);border-radius:10px;background:#fffdfa}.qr-coordinate-help{display:block;margin:0 0 14px;padding:12px 14px;border-left:4px solid var(--gold);border-radius:6px;background:#fbfaf7;color:var(--muted);font-size:12px;line-height:1.55}.qr-coordinate-help strong{color:var(--wine)}.qr-coordinate-help code{padding:2px 5px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}.qr-coordinate-help span{display:block;margin-top:6px}.qr-placement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.qr-placement-card{padding:14px;border:1px solid var(--line);border-radius:9px;background:#fff}.qr-placement-card h3{margin:0 0 12px;font:400 20px Georgia,serif;color:var(--wine)}.certificate-qr-preview-marker{position:absolute;display:grid;place-items:center;border:2px solid var(--wine);background:rgba(255,255,255,.78);color:var(--wine);font-size:9px;font-weight:900;letter-spacing:.08em;box-shadow:0 4px 14px rgba(41,43,45,.12);pointer-events:none}.certificate-template-preview{isolation:isolate}.certificate-template-preview img,.certificate-empty-preview{z-index:1}.certificate-qr-preview-marker{z-index:2}@media(max-width:850px){.qr-placement-grid{grid-template-columns:1fr}}
