:root{--magenta:#a20f62;--dark:#790748;--accent:#d62d8b;--pale:#fbeaf4;--ink:#251822;--muted:#736570;--line:#e4d5df;--page:#faf7f9;--white:#fff;--red:#b42318;--green:#16764a;--shadow:0 10px 30px #4b19351a}
*{box-sizing:border-box}
html{overflow-y:scroll;scrollbar-gutter:stable}
body{margin:0;background:var(--page);color:var(--ink);font:15px/1.45 Arial,sans-serif}
#shell{display:flex;min-height:100vh;flex-direction:column}
#app{width:100%;flex:1}
.app-footer{display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 20px;border-top:1px solid var(--line);background:#fff;color:var(--muted);font-size:12px;text-align:center}
.app-footer strong{color:var(--dark);font-size:13px}
.app-footer span{padding-left:9px;border-left:1px solid var(--line)}
.app-footer b{color:var(--ink)}
body.auth-page{display:flex;min-height:100vh;flex-direction:column}
body.auth-page .auth{min-height:0;flex:1}
button,input,select,textarea{font:inherit}
[hidden]{display:none!important}
.topbar{height:62px;display:flex;align-items:center;gap:22px;padding:0 24px;background:linear-gradient(110deg,var(--dark),var(--magenta));color:white;box-shadow:0 3px 14px #79074855;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;text-decoration:none}
.brand-icon,.logo-mark{display:grid;place-items:center;background:#fff;color:var(--magenta);border-radius:9px;width:36px;height:36px;font-weight:800}
.topbar nav{display:flex;flex:1}
.topbar nav a,.topbar summary{padding:20px 12px;color:#ffffffcc;text-decoration:none;font-weight:600;cursor:pointer;list-style:none}
.topbar a:hover,.topbar a.active{color:#fff}
.topbar details{position:relative}
.dropdown{position:absolute;right:0;top:50px;width:225px;background:white;color:var(--ink);padding:7px;border-radius:9px;box-shadow:var(--shadow)}
.topbar #internal-menu .dropdown{width:285px}.topbar #internal-menu .dropdown a{white-space:nowrap}
.topbar #admin-menu .dropdown{width:285px}.topbar #admin-menu .dropdown a{white-space:nowrap}
.dropdown a{display:block;padding:10px;border-radius:6px;text-decoration:none}
.dropdown a:hover{background:var(--pale);color:var(--magenta)}
.topbar .dropdown a{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:400}
.topbar .dropdown a:hover{background:var(--pale);color:var(--magenta)}
.topbar .dropdown a.active,.topbar .dropdown a.active:hover{background:#e2edf9;color:var(--magenta);font-weight:700}
.topbar .dropdown a i{width:18px;color:inherit;text-align:center}
.route-loading-page{display:grid;min-height:calc(100vh - 112px);place-items:center}.route-loading-panel{display:grid;place-items:center;gap:8px;padding:28px 38px;color:var(--muted);text-align:center}.route-loading-panel .spinner{width:30px;height:30px;border-width:3px}.route-loading-panel strong{color:var(--dark);font-size:16px}.route-loading-panel small{font-size:12px}
.user{display:flex;gap:5px}
.user button{border:0;background:transparent;color:#fff;cursor:pointer}
.user #profile{font-weight:600}
.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 75% 20%,#d62d8b33,transparent 34%),linear-gradient(145deg,#fff,#f5dfec)}
.auth-card{width:min(420px,92vw);padding:42px;background:white;border-radius:18px;box-shadow:0 22px 60px #79074829}
.auth-card .logo-mark{background:var(--magenta);color:#fff;width:52px;height:52px}
.auth-card h1{margin:18px 0 0}
.auth-card p{color:var(--muted);margin:4px 0 28px}
label{display:grid;gap:6px;font-weight:600}
input,select,textarea{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink)}
input[type="number"]{-moz-appearance:textfield;appearance:textfield}
input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input:focus,select:focus,textarea:focus{outline:2px solid #d62d8b35;border-color:var(--accent)}
.auth-card label{margin:14px 0}
.btn{border:0;border-radius:7px;padding:10px 15px;font-weight:700;cursor:pointer}
.primary{background:var(--magenta);color:#fff}
.primary:hover{background:var(--dark)}
.secondary{background:#eee5eb}
.danger{background:#fee4e2;color:var(--red)}
.link{border:0;background:transparent;color:var(--magenta);cursor:pointer;padding:12px}
.auth-card .primary{width:100%;margin-top:8px}
.message{color:var(--red);margin-top:8px}
.page{padding:30px;max-width:1600px;margin:auto}
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.page-head h1{margin:0;font-size:25px}
.page-head h1 i{margin-right:7px;color:var(--dark)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
.card,.panel{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 4px 15px #4b19350b}
.card{padding:22px}
.card strong{display:block;font-size:28px;color:var(--magenta)}
.card span{color:var(--muted)}
.panel{padding:18px;margin-bottom:18px}
.toolbar{display:flex;gap:10px;align-items:center}
.toolbar{flex-wrap:wrap}.formation-status-filters{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));flex:1 0 100%;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:#fff}.formation-status-filters button{padding:10px 12px;border:0;border-right:1px solid var(--line);background:#fff;color:var(--ink);font-size:13px;font-weight:700;cursor:pointer}.formation-status-filters button:last-child{border-right:0}.formation-status-filters button.active{background:var(--magenta);color:#fff}
.toolbar input{max-width:520px}
.toolbar select{width:auto;min-width:210px}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;white-space:nowrap}
th,td{padding:11px 12px;border-bottom:1px solid #eee5eb;text-align:left}
th{background:#5e1845;color:#fff;font-size:13px}
td.wrap{white-space:normal;min-width:220px}
.actions{display:flex;gap:5px}
.icon-btn{border:0;border-radius:6px;padding:7px 9px;cursor:pointer;background:var(--pale);color:var(--magenta)}
.badge{padding:4px 8px;border-radius:20px;background:#eee;font-size:12px}
.badge.aprobado{background:#dcfae6;color:var(--green)}
.badge.revisar{background:#fff3cd;color:#805500}
.badge.no{background:#fee4e2;color:var(--red)}
dialog{border:0;border-radius:12px;padding:0;width:min(780px,94vw);box-shadow:0 25px 70px #25182255}
dialog::backdrop{background:#25182288}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}
.modal-head h2{margin:0;font-size:20px}
.modal-head button{border:0;background:none;font-size:27px}
.modal-body{padding:20px}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}
.full{grid-column:1/-1}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.permissions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.permission-group{padding:12px;border:1px solid var(--line);border-radius:8px}
.permission-group h4{margin:0 0 8px;color:var(--magenta)}
.permission-group label{display:flex;font-weight:normal;margin:6px}
.permission-group input{width:auto}
.tabs{display:flex;gap:4px;margin-bottom:15px}
.tabs button{border:0;padding:9px 13px;border-radius:7px}
.tabs button.active{background:var(--magenta);color:#fff}
.form-actions{margin-top:18px}
.empty{text-align:center;color:var(--muted);padding:30px}
#toast{position:fixed;right:20px;bottom:20px;background:#251822;color:#fff;padding:12px 18px;border-radius:8px;opacity:0;transition:.2s;pointer-events:none}
#toast.show{opacity:1}
@media(max-width:850px){.topbar{height:auto;min-height:60px;flex-wrap:wrap;padding:10px}
.topbar nav{order:3;width:100%}
.topbar nav a{padding:8px}
.page{padding:18px}
.grid,.permissions{grid-template-columns:1fr}
.topbar .brand span:last-child{display:none}
}

/* Paleta institucional CEFIRE / Generalitat Valenciana */
:root{
  --magenta:#0754a6;
  --dark:#063b7a;
  --accent:#1684b1;
  --pale:#eaf3fb;
  --ink:#172b3f;
  --muted:#667789;
  --line:#d5e1ec;
  --page:#f5f8fb;
  --shadow:0 10px 30px #063b7a1a;
}
.topbar{background:linear-gradient(110deg,var(--dark),#4057b8);box-shadow:0 3px 14px #063b7a55}
.topbar .brand,.topbar .brand:visited{color:#fff}
.brand-icon{overflow:hidden;flex:0 0 36px}
.brand-icon img{width:100%;height:100%;object-fit:contain}
.logo-mark img{width:100%;height:100%;object-fit:contain}
.auth-card .logo-mark:has(img){padding:5px;background:#fff;border:1px solid var(--line);box-shadow:0 3px 10px #063b7a1f}
.auth{background:radial-gradient(circle at 75% 20%,#1684b133,transparent 34%),linear-gradient(145deg,#fff,#e7f1fa)}
.auth-card{border-top:4px solid var(--magenta);box-shadow:0 22px 60px #063b7a29}
input:focus,select:focus,textarea:focus{outline-color:#1684b135}
.secondary{background:#e5edf5;color:var(--dark)}
.card,.panel{box-shadow:0 4px 15px #063b7a0b}
th,td{border-bottom-color:#e5edf5}
th{background:var(--accent)}
dialog{box-shadow:0 25px 70px #172b3f55}
dialog::backdrop{background:#172b3f88}
#toast{background:var(--dark)}

/* Administración · Datos del CEFIRE */
.page-subtitle{margin:-12px 0 22px;color:var(--muted)}
.company-form{padding:0;margin-bottom:0;border-radius:4px}
.company-form+.company-form{margin-top:0;border-top:0}
.company-form h2{margin:0;padding:17px 18px;border-bottom:1px solid var(--line);font-size:16px;color:var(--dark)}
.company-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;padding:20px}
.company-fields .full{grid-column:1/-1}
.company-actions{display:flex;justify-content:flex-end;padding:0 20px 18px;margin:0}
.company-assets-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:20px}
.company-asset-card{padding:14px;border:1px solid var(--line);border-radius:5px;background:#f9fbfd}
.company-asset-card h3{margin:0 0 13px;font-size:14px}
.company-image-preview{display:grid;place-items:center;height:165px;margin-bottom:12px;border:1px dashed #9eb4c9;border-radius:4px;background:#fff;color:var(--muted);overflow:hidden}
.company-image-preview img{display:block;max-width:90%;max-height:145px;object-fit:contain}
.drop-zone{position:relative;cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s}
.drop-zone:hover,.drop-zone:focus-visible{border-color:var(--accent);background:var(--pale);outline:0;box-shadow:0 0 0 3px #1684b122}
.drop-zone.drag-over{border:2px solid var(--accent);background:#dff2fb;box-shadow:0 0 0 4px #1684b12b}
.drop-placeholder{display:grid;place-items:center;gap:5px;text-align:center;pointer-events:none}
.drop-placeholder i{font-size:29px;color:var(--accent)}
.drop-placeholder b{color:var(--dark);font-size:13px}
.drop-placeholder small{margin:0;font-size:11px}
.drop-hint{position:absolute;right:0;bottom:0;left:0;padding:5px 8px;background:#063b7ad9;color:#fff;text-align:center;font-size:11px;opacity:0;transition:opacity .18s;pointer-events:none}
.drop-zone:hover .drop-hint,.drop-zone:focus-visible .drop-hint,.drop-zone.drag-over .drop-hint{opacity:1}
.watermark-preview img{opacity:.65}
.favicon-preview img{max-width:96px;max-height:96px}
.company-asset-card label{font-size:13px}
.company-asset-card input[type=file]{padding:6px;margin-top:5px;font-size:12px}
.company-asset-card small{display:block;margin-top:10px;color:var(--muted);font-size:11px;line-height:1.4}
@media(max-width:850px){.company-fields,.company-assets-grid{grid-template-columns:1fr}.company-fields .full{grid-column:auto}}

/* Configuración · vista compacta de parámetros */
#params[hidden],#tariffs[hidden],#smtp[hidden]{display:none}
#params{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:14px;align-items:start}
#params>.panel{margin:0;padding:14px;border-radius:8px;box-shadow:0 3px 10px #063b7a0a}
#params>.panel:nth-child(1){grid-column:1;grid-row:1}
#params>.panel:nth-child(3){grid-column:2;grid-row:1}
#params>.panel:nth-child(4){grid-column:3;grid-row:1}
#params>.panel:nth-child(2){grid-column:1/-1;grid-row:2}
#params>.panel .page-head{margin:0 0 10px;gap:8px}
#params>.panel .page-head h3{margin:0;font-size:14px;line-height:1.25;color:var(--dark)}
#params>.panel .page-head .btn{padding:6px 10px;font-size:12px}
#params>.panel .table-wrap{border-radius:5px;overflow:hidden}
#params>.panel table{white-space:normal}
#params>.panel td{padding:7px 9px;font-size:12px;line-height:1.25}
#params>.panel td:nth-child(2){width:60px;text-align:center}
#params>.panel td:last-child{width:84px;min-width:84px}
#params>.panel:first-child td:last-child{width:118px;min-width:118px}
#params>.panel .actions{justify-content:flex-end;gap:3px}
#params>.panel .icon-btn{padding:4px 6px;font-size:12px}
#params>.panel tbody tr:last-child td{border-bottom:0}
#params>.panel:nth-child(1) tbody,#params>.panel:nth-child(3) tbody,#params>.panel:nth-child(4) tbody{display:block;width:100%}
#params>.panel:nth-child(1) tr,#params>.panel:nth-child(3) tr,#params>.panel:nth-child(4) tr{display:grid;width:100%;background:#fff}
#params>.panel:nth-child(1) tr{grid-template-columns:minmax(0,1fr) 60px 118px}
#params>.panel:nth-child(3) tr,#params>.panel:nth-child(4) tr{grid-template-columns:minmax(0,1fr) 60px 84px}
#params>.panel:nth-child(1) tr>td,#params>.panel:nth-child(3) tr>td,#params>.panel:nth-child(4) tr>td{display:flex;align-items:center;width:auto;min-width:0}
#params>.panel:nth-child(1) tr>td:nth-child(2),#params>.panel:nth-child(3) tr>td:nth-child(2),#params>.panel:nth-child(4) tr>td:nth-child(2){justify-content:center}
#params>.panel:nth-child(1) tr>td:last-child,#params>.panel:nth-child(3) tr>td:last-child,#params>.panel:nth-child(4) tr>td:last-child{justify-content:flex-end;width:auto;min-width:0}
#params>.panel:nth-child(2) tbody{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}
.tariff-panel{max-width:1120px;padding:18px}
.tariff-panel>.page-head{margin-bottom:16px}.tariff-panel>.page-head h2{margin:0 0 4px;font-size:18px}.tariff-panel>.page-head p{margin:0;color:var(--muted);font-size:13px}
.tariff-table th:nth-child(3),.tariff-table td:nth-child(3){width:190px}.tariff-table th:nth-child(4),.tariff-table td:nth-child(4){width:160px}.tariff-table th:nth-child(5),.tariff-table td:nth-child(5){width:120px}.tariff-table th:last-child,.tariff-table td:last-child{width:110px}
.tariff-amount{font-size:15px;font-weight:800;color:var(--dark)}.tariff-amount small{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:600}
.tariff-pending{color:var(--muted);font-size:12px;font-weight:600}.tariff-info{display:flex;align-items:flex-start;gap:8px;margin:14px 0;padding:12px;border-radius:7px;background:#eef6fd;color:var(--dark);font-size:13px}.tariff-info i{color:var(--accent)}
.tariff-field-help{margin:13px 0 -4px;color:var(--muted);font-size:12px}
.tariff-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:14px 0}.input-suffix{display:flex}.input-suffix input{border-radius:7px 0 0 7px}.input-suffix b{display:grid;place-items:center;min-width:48px;padding:0 10px;border:1px solid var(--line);border-left:0;border-radius:0 7px 7px 0;background:#eef4f9;color:var(--dark);font-size:13px}.tariff-summary{display:grid;gap:4px;margin-bottom:16px;padding:12px;border-radius:7px;background:var(--pale)}.tariff-summary span{color:var(--muted);font-size:12px}.tariff-summary strong{font-size:15px}
.tariff-modalities{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:7px}.tariff-modalities legend{padding:0 5px;font-weight:700}.tariff-modalities>div{display:flex;flex-wrap:wrap;gap:8px}.tariff-modalities label{display:flex;align-items:center;gap:6px;width:auto;padding:7px 10px;border-radius:6px;background:var(--pale);cursor:pointer}.tariff-modalities input{width:auto;margin:0}.tariff-modalities small{display:block;margin-top:8px;color:var(--muted)}.tariff-modalities-cell{white-space:normal;line-height:1.35}
@media(max-width:650px){.tariff-fields-grid{grid-template-columns:1fr}}
#params>.panel:nth-child(2) tr{display:grid;grid-template-columns:minmax(0,1fr) 60px 84px;background:#fff}
#params>.panel:nth-child(2) td{display:flex;align-items:center;border:0}
#params>.panel:nth-child(2) td:nth-child(2){justify-content:center;width:auto}
#params>.panel:nth-child(2) td:last-child{width:auto;min-width:0}
.family-parameter-name{display:flex;align-items:center;gap:9px;min-width:0}.family-parameter-name>span{overflow:hidden;text-overflow:ellipsis}.family-color-swatch{display:inline-block;flex:0 0 18px;width:18px;height:18px;border:2px solid #fff;border-radius:50%;background:var(--family-banner-color,#5DA9E9);box-shadow:0 0 0 1px #b8c9d9,0 2px 5px #172b3f24}
.family-color-editor{display:grid;grid-template-columns:1fr;gap:12px;margin:4px 0 2px}.family-color-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.family-color-inputs{display:grid;grid-template-columns:58px minmax(0,1fr);gap:9px;margin-top:6px}.family-color-inputs input[type=color]{width:58px;height:42px;padding:3px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer}.family-color-inputs input[type=text]{font-family:Consolas,monospace;font-weight:700;text-transform:uppercase}.family-color-editor small{display:block;color:var(--muted);font-size:11px;line-height:1.4}.family-color-preview{display:grid;grid-template-columns:minmax(260px,1fr) 190px;align-items:center;gap:16px;width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--dark);font-size:12px;box-sizing:border-box}.family-color-preview>div:last-child{display:grid;gap:3px}.family-color-preview>div:last-child strong{font-size:13px}.family-color-preview>div:last-child small{margin:0}.family-banner-miniature{display:grid;grid-template-rows:26px 58px 25px;width:100%;overflow:hidden;border:2px solid var(--family-banner-color,#5DA9E9);border-radius:4px;background:var(--family-banner-extreme-color,#FFFFFF);box-shadow:0 3px 9px #172b3f1f}.family-banner-miniature>span{display:flex;box-sizing:border-box}.family-banner-mini-top{align-items:center;justify-content:flex-end;padding:0 14px;background:var(--family-banner-extreme-color,#FFFFFF);font-size:8px}.family-banner-mini-center{flex-direction:column;justify-content:center;padding:7px 16px;background:var(--family-banner-color,#5DA9E9);color:#111}.family-banner-mini-center strong{font-size:12px;line-height:1.1}.family-banner-mini-center small{margin-top:3px;color:#111;font-size:7px;font-weight:700}.family-banner-mini-bottom{background:var(--family-banner-extreme-color,#FFFFFF)}.family-color-help{margin-top:-5px}
@media(max-width:600px){.family-color-controls,.family-color-preview{grid-template-columns:1fr}.family-color-preview>div:last-child{display:none}}
.campaign-banner-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px 12px;margin:12px 0}.campaign-banner-label{grid-column:1/-1;color:var(--dark);font-size:14px;font-weight:800}.campaign-banner-drop{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:14px;min-height:130px;padding:12px;border:2px dashed #8fb9df;border-radius:9px;background:#f5faff;cursor:pointer;box-sizing:border-box;transition:border-color .16s,background .16s,box-shadow .16s}.campaign-banner-drop:hover,.campaign-banner-drop.is-dragging{border-color:#0873d1;background:#eaf5ff;box-shadow:0 0 0 3px #0873d11c}.campaign-banner-preview{display:grid;place-items:center;width:180px;height:94px;overflow:hidden;border:1px solid #c7dbea;border-radius:7px;background:#fff;color:#0873d1;font-size:32px}.campaign-banner-preview img{display:block;width:100%;height:100%;object-fit:contain}.campaign-banner-copy{display:grid;gap:4px;color:#4e6982}.campaign-banner-copy strong{color:#073d78;font-size:14px}.campaign-banner-copy span{font-size:12px}.campaign-banner-copy small{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.35}.campaign-banner-remove{align-self:center;padding:9px 11px;border:1px solid #edb7bf;border-radius:7px;background:#fff1f3;color:#b51e35;font-weight:750;cursor:pointer}.campaign-banner-remove:hover{background:#ffe1e6}@media(max-width:650px){.campaign-banner-editor{grid-template-columns:1fr}.campaign-banner-drop{grid-template-columns:1fr}.campaign-banner-preview{width:100%}.campaign-banner-remove{width:100%}}
@media(max-width:1100px){#params{grid-template-columns:repeat(2,minmax(260px,1fr))}#params>.panel:nth-child(1),#params>.panel:nth-child(3),#params>.panel:nth-child(4){grid-column:auto;grid-row:auto}#params>.panel:nth-child(2){grid-column:1/-1;grid-row:auto}#params>.panel:nth-child(2) tbody{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){#params{grid-template-columns:1fr}#params>.panel:nth-child(2){grid-column:auto}#params>.panel:nth-child(2) tbody{display:table-row-group}#params>.panel:nth-child(2) tr{display:table-row}#params>.panel:nth-child(2) td{display:table-cell}}

/* Roles y permisos */
.role-dialog{width:min(1050px,96vw);max-height:92vh}
.role-dialog .modal-body{max-height:calc(92vh - 66px);overflow:auto;padding:18px 20px}
.role-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.permission-heading{display:flex;align-items:center;justify-content:space-between;margin:4px 0 8px}
.permission-heading h3{margin:0;font-size:15px}
.permission-heading .link{padding:4px 0;font-size:12px;font-weight:700}
.permission-sections{display:grid;gap:10px}
.permission-section{padding:10px 12px 12px;border:1px solid var(--line);border-radius:8px;background:#fbfdff}
.permission-section h4{display:flex;align-items:center;gap:7px;margin:0 0 9px;color:var(--dark);font-size:14px}
.permission-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.permission-module{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:center;gap:8px 13px;min-width:0;min-height:64px;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:#fff}
.permission-module legend{max-width:calc(100% - 10px);padding:0 5px;color:var(--magenta);font-size:12px;font-weight:800}
.permission-option{display:inline-flex;grid-template-columns:none;align-items:center;gap:5px;min-width:max-content;font-size:12px;font-weight:400;cursor:pointer}
.permission-option input{width:auto;margin:0;accent-color:var(--magenta)}
.role-dialog .dialog-actions{position:sticky;bottom:-18px;margin:14px -20px -18px;padding:12px 20px;background:#fff;border-top:1px solid var(--line)}
.protected-badge{display:inline-block;margin-left:7px;padding:3px 7px;border-radius:5px;background:#14804a;color:#fff;font-size:11px;font-weight:800;vertical-align:middle}
.roles-table .view-role{background:#11b9dc;color:#fff}
.roles-table .edit{background:#f5b800;color:#3c2b00}
.roles-table .del{background:#df3447;color:#fff}
.roles-table td:first-child strong{font-weight:700}
.users-table .edit{background:#f5b800;color:#3c2b00}
.users-table .del{background:#df3447;color:#fff}
.users-table td:nth-child(5),.users-table td:nth-child(6){white-space:nowrap}
.delete-role-warning{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;padding:13px;border:1px solid #f2c6c2;border-radius:7px;background:#fff4f2;color:#7a271a}
.delete-role-warning>i{font-size:22px}
.delete-role-warning p{margin:3px 0 0;color:#8f4a40}
.delete-role-warning+label{margin-bottom:8px}
@media(max-width:850px){.role-fields,.permission-module-grid{grid-template-columns:1fr}.role-dialog{width:96vw}}

/* Sistema común de botones de acciones */
.actions{align-items:center;gap:7px}
.icon-btn,.actions .icon-btn,#params>.panel .icon-btn{display:inline-grid;place-items:center;flex:0 0 36px;width:36px;height:36px;padding:0;border:0;border-radius:7px;font-size:15px;line-height:1;transition:transform .15s,filter .15s,box-shadow .15s}
.icon-btn:hover{filter:brightness(.94);box-shadow:0 3px 8px #172b3f28;transform:translateY(-1px)}
.icon-btn:active{transform:translateY(0)}
.icon-btn.view,.icon-btn.view-role{background:#11b9dc;color:#fff}
.icon-btn.edit,.icon-btn.edit-param{background:#f5b800;color:#302300}
.icon-btn.default-param{background:#e7f0ff;color:#075daf}.default-badge{display:inline-flex;align-items:center;gap:4px;margin-left:7px;padding:2px 7px;border-radius:11px;background:#fff3cd;color:#795b00;font-size:10px;font-weight:800}.default-badge i{font-size:9px}
.icon-btn.del,.icon-btn.del-param{background:#df3447;color:#fff}
.icon-btn.state{background:#3976d4;color:#fff}
.icon-btn.economic-sheet{background:#198754;color:#fff;text-decoration:none}
.icon-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}

/* Columnas visibles del listado de formaciones */
body[data-page="formaciones"] #app table th:nth-child(12),
body[data-page="formaciones"] #app table td:nth-child(12){display:none}
body[data-page="formaciones"] #app{max-width:none}
body[data-page="formaciones"] #app .table-wrap{overflow-x:hidden}
body[data-page="formaciones"] #app table{table-layout:fixed;white-space:normal}
body[data-page="formaciones"] #app th,
body[data-page="formaciones"] #app td{padding:10px 8px;overflow-wrap:anywhere;vertical-align:middle}
body[data-page="formaciones"] #app td.wrap{min-width:0}
body[data-page="formaciones"] #app th:nth-child(1){width:8%}
body[data-page="formaciones"] #app th:nth-child(2){width:9%}
body[data-page="formaciones"] #app th:nth-child(3){width:15%}
body[data-page="formaciones"] #app th:nth-child(4){width:14%}
body[data-page="formaciones"] #app th:nth-child(5),
body[data-page="formaciones"] #app th:nth-child(6){width:5.5%}
body[data-page="formaciones"] #app th:nth-child(7){width:4%}
body[data-page="formaciones"] #app th:nth-child(8){width:6%}
body[data-page="formaciones"] #app th:nth-child(9){width:8%}
body[data-page="formaciones"] #app th:nth-child(10){width:5%}
body[data-page="formaciones"] #app th:nth-child(11){width:7%}
body[data-page="formaciones"] #app th:nth-child(13){width:7%}
body[data-page="formaciones"] #app th:nth-child(14){width:13%}
body[data-page="formaciones"] #app td:nth-child(1),
body[data-page="formaciones"] #app td:nth-child(5),
body[data-page="formaciones"] #app td:nth-child(6),
body[data-page="formaciones"] #app td:nth-child(7),
body[data-page="formaciones"] #app td:nth-child(10),
body[data-page="formaciones"] #app td:nth-child(11),
body[data-page="formaciones"] #app td:nth-child(13){white-space:nowrap;overflow-wrap:normal}
body[data-page="formaciones"] #app .formation-list-total{color:var(--dark);font-weight:800}
body[data-page="formaciones"] #app td.actions{flex-wrap:nowrap;white-space:nowrap}
body[data-page="formaciones"] #app .icon-btn{flex:0 0 34px;width:34px;height:34px;padding:0}
.formation-head-actions{display:flex;gap:9px}

/* Detalle de la formación */
.formation-detail-modal{width:min(900px,96vw);max-height:94vh}
.formation-detail-modal .modal-body{max-height:calc(94vh - 66px);overflow:auto}
.detail-tabs{display:flex;gap:5px;margin:-4px 0 18px;padding-bottom:0;border-bottom:1px solid var(--line)}
.detail-tabs button{display:flex;align-items:center;gap:7px;margin-bottom:-1px;padding:11px 15px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-weight:700;cursor:pointer}
.detail-tabs button.active{border-bottom-color:var(--magenta);color:var(--magenta)}
.detail-tabs button>span{display:grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:11px;background:var(--pale);font-size:11px}
.detail-formation-total{display:grid;align-self:center;gap:1px;margin:0 8px 6px auto;text-align:right}.detail-formation-total span{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.detail-formation-total strong{color:var(--magenta);font-size:20px;line-height:1.1;white-space:nowrap}
.detail-tab-panel{display:none}.detail-tab-panel.active{display:block}
.formation-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.detail-item{min-width:0;padding:11px 13px;border:1px solid var(--line);border-radius:7px;background:#f8fbfe}
.detail-item.detail-full{grid-column:1/-1}
.detail-item span{display:block;margin-bottom:3px;color:var(--muted);font-size:12px;font-weight:700}
.detail-item strong{display:block;color:var(--ink);font-size:14px;font-weight:600;overflow-wrap:anywhere}
.detail-speaker{margin-bottom:14px;padding:14px;border:1px solid var(--line);border-radius:9px;background:#fbfdff}
.detail-speaker:last-child{margin-bottom:0}.detail-speaker h3{display:flex;align-items:center;gap:9px;margin:0 0 12px;font-size:16px}
.detail-speaker h3>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--magenta);color:#fff;font-size:12px}
.detail-speaker-payments{margin-top:12px;padding:11px 13px;border:1px solid var(--line);border-radius:7px;background:#fff}.detail-speaker-payments>strong{display:block;margin-bottom:7px;font-size:12px}.detail-speaker-payments>div{display:flex;justify-content:space-between;gap:15px;padding:5px 0;border-top:1px solid #edf2f6;font-size:12px}.detail-speaker-payments>div span{overflow-wrap:anywhere}.detail-speaker-payments>div b{white-space:nowrap;color:var(--dark)}.detail-empty-payments{margin:10px 0 0;color:var(--muted);font-size:12px}
.detail-speaker-payments>.detail-speaker-total{margin-top:4px;padding-top:9px;border-top:2px solid var(--line);font-size:14px}.detail-speaker-payments>.detail-speaker-total b{color:var(--magenta);font-size:16px}
.detail-empty{margin:0;padding:24px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);text-align:center}
.field-help{display:block;margin-top:5px;color:var(--muted);font-size:12px;font-weight:400}
.variables-panel{max-width:760px}.variables-panel>h2{margin:0 0 5px}.variables-panel>p{margin:0 0 20px;color:var(--muted)}.variables-grid{max-width:430px}
#status-fields{margin-top:14px}
.activity-type{display:flex;align-items:center;gap:22px;margin:0;padding:10px 13px;border:1px solid var(--line);border-radius:7px}
.activity-type legend{display:flex;align-items:center;gap:6px;padding:0 5px;font-weight:700}
.field-info-button{display:inline-grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:#e7f3ff;color:#0867b8;font-size:13px;cursor:pointer}
.field-info-button:hover,.field-info-button:focus-visible{background:#0867b8;color:#fff;outline:2px solid #0867b844;outline-offset:1px}
.field-label-with-info{display:flex;align-items:center;gap:6px}
.status-info-button{width:18px;height:18px;font-size:11px}
.table-header-with-info{display:inline-flex;align-items:center;gap:5px}
.management-page-title{display:inline-flex;align-items:center;gap:8px}
.management-info-button{vertical-align:middle}
.management-help-info{width:min(1180px,calc(100vw - 32px));max-width:none;max-height:90vh;overflow:auto;padding:34px 42px 30px;text-align:left}
.management-help-info .notice-icon{width:62px;height:62px;margin-bottom:14px;background:#e7f3ff;color:#0867b8;font-size:30px}
.management-help-info h2{margin:0 0 8px;text-align:center;font-size:28px}
.management-help-info>p{max-width:760px;margin:0 auto 28px;text-align:center;font-size:15px;line-height:1.55}
.management-help-section{margin-top:25px}
.management-help-section h3{display:flex;align-items:center;gap:10px;margin:0 0 13px;color:var(--dark);font-size:18px}
.management-help-section h3::before{content:'';width:5px;height:22px;border-radius:4px;background:var(--magenta)}
.management-help-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.management-help-rules article{display:flex;align-items:flex-start;gap:12px;min-height:105px;padding:15px;border:1px solid #c9ddeb;border-radius:11px;background:linear-gradient(145deg,#f8fbfe,#eef6fc)}
.management-help-rules article>i{display:grid;place-items:center;flex:0 0 39px;height:39px;border-radius:10px;background:#e1f0ff;color:#0867b8;font-size:19px}
.management-help-rules article div{display:grid;gap:5px}
.management-help-rules article strong{color:var(--dark);font-size:14px}
.management-help-rules article span{color:var(--muted);font-size:12px;line-height:1.45}
.management-help-rules article:last-child{grid-column:1/-1}
.management-help-rules article ul{grid-column:1/-1;margin:3px 0 0;padding-left:18px;color:var(--muted);font-size:12px;line-height:1.5}
.management-help-rules article li{margin:3px 0}
.management-help-rules article li strong{font-size:12px}
.management-help-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.management-help-status-card{padding:16px;border:1px solid #c9ddeb;border-radius:11px;background:#f8fbfe}
.management-help-status p{margin:0;padding:16px;border:1px solid #c9ddeb;border-radius:11px;background:#f8fbfe;color:var(--muted);font-size:12px;line-height:1.45}
.management-help-status-card p{padding:0;border:0;background:transparent}
.management-help-status ul{margin:8px 0 0;padding-left:19px;color:var(--muted);font-size:12px;line-height:1.45}
.management-help-status li{margin:3px 0}
.help-action-icon{display:inline-grid;place-items:center;width:23px;height:23px;margin:0 2px;border-radius:6px;background:#2879c2;color:#fff;vertical-align:middle}
.management-help-status strong{color:var(--dark)}
.management-help-status em{color:#0754a6;font-style:normal;font-weight:700}
.management-help-info .notice-accept{display:block;margin:28px auto 0}
@media(max-width:850px){.management-help-info{padding:28px 22px 24px}.management-help-rules{grid-template-columns:repeat(2,minmax(0,1fr))}.management-help-status{grid-template-columns:1fr}}
@media(max-width:560px){.management-help-info{width:calc(100vw - 18px);padding:25px 15px 20px}.management-help-info h2{font-size:23px}.management-help-rules{grid-template-columns:1fr}.management-help-rules article{min-height:0}}
.state-info-rules{display:grid;gap:8px;margin:0 0 20px;text-align:left}
.state-info-rules article{display:flex;align-items:flex-start;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f8fbfe}
.state-info-rules article>i{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:7px;background:var(--pale);color:var(--magenta);font-size:16px}
.state-info-rules article div{display:grid;gap:2px}
.state-info-rules strong{color:var(--dark);font-size:13px}
.state-info-rules span{color:var(--muted);font-size:12px;line-height:1.35}
.activity-type label{display:inline-flex;grid-template-columns:none;align-items:center;gap:7px;font-weight:600;cursor:pointer}
.activity-type input{width:auto;margin:0;accent-color:var(--magenta)}
.hours-notice{width:min(500px,92vw);padding:28px;border:0;border-radius:15px;box-shadow:0 26px 80px #172b3f66;text-align:center}
.hours-notice::backdrop{background:#172b3fa8;backdrop-filter:blur(2px)}
.notice-close{position:absolute;top:12px;right:14px;border:0;background:transparent;color:var(--muted);font-size:26px;cursor:pointer}
.notice-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 12px;border-radius:50%;background:#fff0cf;color:#ad7000;font-size:27px}
.hours-notice h2{margin:0 0 7px;color:var(--ink);font-size:22px}
.hours-notice>p{margin:0 auto 19px;max-width:390px;color:var(--muted)}
.management-help-info{box-sizing:border-box;width:95vw!important;max-width:1400px!important;max-height:90vh;padding:34px 42px 30px;text-align:left}
.management-help-info>p{max-width:760px}
.hours-rules{display:grid;gap:8px;margin-bottom:20px;text-align:left}
.hours-rule{display:flex;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:#f8fbfe}
.hours-rule>i{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;background:var(--pale);color:var(--magenta);font-size:17px}
.hours-rule span{display:grid;flex:1}.hours-rule strong{font-size:14px}.hours-rule small{color:var(--muted);font-size:12px}
.hours-rule em{padding:4px 7px;border-radius:12px;background:var(--magenta);color:#fff;font-size:10px;font-style:normal;font-weight:700}
.hours-rule.selected{border-color:var(--accent);background:#edf7fc;box-shadow:0 0 0 2px #1684b11f}
.formation-modality-info{width:min(620px,94vw)}.modality-rules{display:grid;gap:9px;margin-bottom:20px;text-align:left}.modality-rules article{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#f8fbfe}.modality-rules article>i{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--pale);color:var(--magenta);font-size:18px}.modality-rules article span{display:grid;gap:2px}.modality-rules article strong{color:var(--dark);font-size:14px}.modality-rules article small{color:var(--muted);font-size:12px}.modality-rules article>b{padding:6px 9px;border-radius:16px;background:#e2edf9;color:var(--magenta);font-size:12px;white-space:nowrap}
.tariff-hours-warning{width:min(620px,94vw)}.tariff-hours-comparison{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:0 0 12px}.tariff-hours-comparison>div{display:grid;gap:3px;padding:12px;border:1px solid #b9d4e9;border-radius:9px;background:#f4f9fd;text-align:left}.tariff-hours-comparison>div.mismatch{border-color:#edbd60;background:#fff8e7}.tariff-hours-comparison span{color:var(--muted);font-size:11px;font-weight:700}.tariff-hours-comparison strong{color:var(--dark);font-size:20px}.tariff-hours-comparison>i{color:#7893aa}.tariff-hours-speakers{display:grid;gap:6px;margin-bottom:10px}.tariff-hours-speakers>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;text-align:left}.tariff-hours-speakers span{display:flex;align-items:center;gap:8px;min-width:0;color:var(--dark);font-size:12px;font-weight:700}.tariff-hours-speakers span b{display:grid;place-items:center;flex:0 0 22px;height:22px;border-radius:50%;background:#e2edf9;color:var(--magenta);font-size:10px}.tariff-hours-speakers strong{color:#075daf;font-size:13px;white-space:nowrap}.tariff-hours-note{display:block;margin:0 0 18px;color:var(--muted);font-size:10px;line-height:1.4;text-align:left}@media(max-width:560px){.tariff-hours-comparison{grid-template-columns:1fr}.tariff-hours-comparison>i{transform:rotate(90deg)}}
.notice-accept{min-width:130px}
.identity-correction{display:grid;gap:6px;margin:0 auto 18px;max-width:330px;text-align:left}.identity-correction input{font-size:17px;font-weight:700;text-align:center;text-transform:uppercase}.identity-correction small{min-height:17px;color:var(--muted);font-size:12px;font-weight:500}.identity-notice .notice-accept{min-width:230px}
.formation-save-error{width:min(560px,92vw)}.formation-save-error .notice-icon{background:#ffe3e3;color:#c72d3e}.formation-refresh-error .notice-icon.success{background:#dff7e9;color:#168757}.formation-save-error-detail{display:grid;gap:4px;margin:0 0 20px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#f8fbfe;text-align:left}.formation-save-error-detail span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.formation-save-error-detail strong{color:var(--dark);font-size:13px;overflow-wrap:anywhere}
.economic-code-notice .notice-icon{background:#fff0cf;color:#ad7000}.economic-code-summary{display:grid;gap:3px;margin:0 0 20px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#f8fbfe;text-align:left}.economic-code-summary span{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.economic-code-summary strong{color:var(--dark);font-size:15px}
.formation-wizard{width:min(920px,96vw);max-height:94vh}
.formation-wizard .modal-body{max-height:calc(94vh - 66px);overflow:auto}
.wizard-progress{display:grid;grid-template-columns:30px auto minmax(40px,1fr) 30px auto;align-items:center;gap:8px;margin-bottom:20px;padding:10px 14px;border-radius:8px;background:#f4f8fc}
.wizard-progress>span{display:grid;place-items:center;width:28px;height:28px;border:2px solid #b8c8d8;border-radius:50%;background:#fff;color:var(--muted);font-weight:800}
.wizard-progress>span.active{border-color:var(--magenta);background:var(--magenta);color:#fff}.wizard-progress>span.done{border-color:var(--green);background:var(--green);color:#fff}
.wizard-progress>b{font-size:13px}.wizard-progress>i{height:2px;background:var(--line)}
.wizard-actions{position:sticky;bottom:-20px;align-items:center;justify-content:space-between;margin:18px -20px -20px;padding:13px 20px;background:#fff;border-top:1px solid var(--line)}.wizard-buttons{display:flex;gap:8px}.formation-grand-total{display:grid;gap:2px}.formation-grand-total span{color:var(--muted);font-size:12px;font-weight:700}.formation-grand-total strong{color:var(--magenta);font-size:22px;line-height:1.1}
.formation-wizard .grid>.dialog-actions{position:sticky;bottom:-20px;align-items:center;justify-content:space-between;grid-column:1/-1;margin:18px -20px -20px;padding:13px 20px;background:#fff;border-top:1px solid var(--line)}
.speaker-count{max-width:240px;margin-bottom:14px}
#speakers-container{display:grid;gap:14px}
.speaker-card{padding:15px;border:1px solid var(--line);border-radius:9px;background:#fbfdff}
.speaker-card h3{display:flex;align-items:center;gap:9px;margin:0 0 13px;color:var(--dark);font-size:16px}
.speaker-card h3>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--magenta);color:#fff;font-size:12px}
.speaker-types{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0 0 13px;padding:10px 13px;border:1px solid var(--line);border-radius:7px;background:#fff}
.speaker-types legend{padding:0 5px;font-size:13px;font-weight:700}.speaker-types label{display:inline-flex;grid-template-columns:none;align-items:center;gap:6px;font-weight:600;cursor:pointer}.speaker-types input{width:auto;margin:0;accent-color:var(--magenta)}
.speaker-card[data-billing-confirmed="true"] input[value="Ponente no GVA"]+span::after{content:"✓ Declaración de facturación confirmada";display:inline-block;margin-left:8px;padding:2px 7px;border-radius:12px;background:#dcfae6;color:#16764a;font-size:10px;font-weight:800;vertical-align:middle}
.speaker-types.subtype{margin-top:4px}.speaker-empty{margin:4px 0;color:var(--muted);font-size:13px}
.speaker-step-tools{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}.speaker-step-tools .speaker-count{margin-bottom:0}.speaker-count small{display:block;max-width:410px;margin-top:5px;color:#7a8896;font-size:11px;font-style:italic;line-height:1.35}.speaker-types-help{flex:0 0 auto;margin-top:25px}.speaker-types-help-dialog{width:min(1200px,96vw);max-height:96vh;padding:0;overflow:hidden;border:0;border-radius:15px;box-shadow:0 28px 90px #172b3f80}.speaker-types-help-dialog::backdrop{background:#172b3fb3;backdrop-filter:blur(3px)}.speaker-help-head{display:flex;align-items:center;justify-content:space-between;padding:18px 23px;background:linear-gradient(135deg,#064b91,#0874c9);color:#fff}.speaker-help-head>div{display:flex;align-items:center;gap:13px}.speaker-help-head>div>i{display:grid;place-items:center;width:46px;height:46px;border-radius:11px;background:#ffffff24;font-size:23px}.speaker-help-head span{display:grid}.speaker-help-head small{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;opacity:.8}.speaker-help-head h2{margin:2px 0 0;color:#fff;font-size:22px}.speaker-help-head button{border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.speaker-help-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;max-height:calc(96vh - 145px);padding:19px 23px;overflow:auto}.speaker-help-body>p{grid-column:1/-1;margin:0 0 4px;color:var(--muted);line-height:1.5}.speaker-help-body article{display:grid;grid-template-columns:36px minmax(0,1fr);align-content:start;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:#f8fbfe}.speaker-help-body article>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#0873d1;color:#fff;font-weight:800}.speaker-help-body h3{margin:3px 0 6px;color:#073d78;font-size:16px}.speaker-help-body article p{margin:4px 0;color:#47627c;font-size:13px;line-height:1.45}.speaker-help-body ul{margin:6px 0 0;padding-left:19px;color:#47627c;font-size:13px;line-height:1.45}.speaker-help-actions{display:flex;justify-content:flex-end;padding:12px 23px;border-top:1px solid var(--line);background:#fff}@media(max-width:800px){.speaker-step-tools{align-items:stretch;flex-direction:column}.speaker-types-help{align-self:flex-start;margin-top:0}.speaker-help-body{grid-template-columns:1fr}.speaker-help-body article{grid-template-columns:36px minmax(0,1fr)}.speaker-help-body article>span{width:28px;height:28px}}
.speaker-fields .grid,.speaker-subfields .grid{align-items:start}
.calculator-fields{display:grid;grid-template-columns:1.4fr 1fr .65fr .65fr;align-items:end;gap:12px;margin-bottom:16px}.calculator-fields .activity-type{height:100%;margin:0}.calculator-modal #calculator-speakers{display:grid;gap:14px}.calculator-speaker .speaker-payments{margin-top:0}.calculator-actions{z-index:2}
.speaker-payments{margin:15px 0 0;padding:13px;border:1px solid var(--line);border-radius:8px;background:#fff}.speaker-payments legend{padding:0 5px;font-size:13px;font-weight:700}.speaker-payment-list{display:grid;gap:9px;margin-bottom:10px}.speaker-payment-row{display:grid;grid-template-columns:minmax(245px,1.5fr) 95px minmax(145px,.75fr) 115px 36px;align-items:end;gap:9px}.speaker-payment-row label{font-size:12px}.speaker-payment-row .icon-btn{height:38px;color:#c52236}.speaker-line-total{display:grid;align-content:end;height:58px;padding:0 8px 7px;border-bottom:2px solid var(--magenta)}.speaker-line-total span{color:var(--muted);font-size:11px}.speaker-line-total strong{color:var(--dark);font-size:15px;white-space:nowrap}.speaker-payment-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.speaker-payment-footer>strong{font-size:15px}.speaker-grand-total{color:var(--magenta);font-size:18px}.add-speaker-payment{padding:7px 10px;font-size:12px}
.speaker-payments[hidden]{display:none!important}
@media(max-width:850px){.speaker-payment-row{grid-template-columns:1fr 1fr}.speaker-payment-row .payment-tariff{grid-column:1/-1}.speaker-line-total{height:auto;min-height:45px}.speaker-payment-row .icon-btn{align-self:end}.speaker-payment-footer{align-items:flex-end;flex-direction:column-reverse}}
@media(max-width:850px){.calculator-fields{grid-template-columns:1fr 1fr}.calculator-fields .activity-type{grid-column:1/-1}}
@media(max-width:650px){.wizard-actions{align-items:stretch;flex-direction:column}.wizard-buttons{justify-content:flex-end}.formation-grand-total{padding-bottom:8px}}
@media(max-width:650px){.formation-head-actions{align-items:stretch;flex-direction:column}.calculator-fields{grid-template-columns:1fr}}
@media(max-width:850px){.formation-status-filters{grid-template-columns:repeat(2,1fr)}.formation-status-filters button{border-bottom:1px solid var(--line)}}

/* Gestión de formaciones */
.management-toolbar input{max-width:560px}body[data-page="gestion_formaciones"] #app{max-width:none}body[data-page="gestion_formaciones"] #app .table-wrap{overflow-x:hidden}body[data-page="gestion_formaciones"] #app table{width:100%;min-width:0;table-layout:fixed;white-space:normal}body[data-page="gestion_formaciones"] #app th,body[data-page="gestion_formaciones"] #app td{padding:10px 6px;overflow-wrap:anywhere;vertical-align:middle}body[data-page="gestion_formaciones"] #app th{font-size:12px;line-height:1.15}body[data-page="gestion_formaciones"] #app th:nth-child(1){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(2){width:10%}body[data-page="gestion_formaciones"] #app th:nth-child(3){width:11%}body[data-page="gestion_formaciones"] #app th:nth-child(4){width:16%}body[data-page="gestion_formaciones"] #app th:nth-child(5),body[data-page="gestion_formaciones"] #app th:nth-child(6){width:6%}body[data-page="gestion_formaciones"] #app th:nth-child(7),body[data-page="gestion_formaciones"] #app th:nth-child(8){width:4%}body[data-page="gestion_formaciones"] #app th:nth-child(9){width:8%}body[data-page="gestion_formaciones"] #app th:nth-child(10){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(11){width:9%}body[data-page="gestion_formaciones"] #app th:nth-child(12){width:12%}.management-table th:nth-child(n+5):nth-child(-n+10),.management-table td:nth-child(n+5):nth-child(-n+10){text-align:center}.management-table .management-state{display:inline-block;max-width:100%;text-align:center;white-space:normal}.management-table td.actions{flex-wrap:nowrap;white-space:nowrap}.management-table .icon-btn{flex:0 0 34px;width:34px;height:34px}.management-check{display:inline-grid;place-items:center}.management-check input{width:18px;height:18px;margin:0;accent-color:var(--green);opacity:1}.management-modal-summary{display:grid;gap:3px;margin-bottom:16px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--pale)}.management-modal-summary span{color:var(--muted);font-size:12px}.management-modal-summary strong{color:var(--dark)}.management-task-modal{width:min(760px,94vw)}.management-task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.management-task-button{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:2px 9px;min-height:76px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--dark);text-align:left;cursor:pointer}.management-task-button:hover{border-color:var(--magenta);background:var(--pale)}.management-task-button i{grid-row:1/3;color:var(--magenta);font-size:23px}.management-task-button span{font-weight:750}.management-task-button small{color:var(--muted)}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:850px){.management-task-grid{grid-template-columns:1fr 1fr}.management-toolbar select,.management-toolbar input{width:100%;max-width:none}}

body .management-task-modal{width:min(820px,94vw);border-radius:14px}body .management-task-modal .modal-head{padding:20px 22px;background:linear-gradient(135deg,#073d78,#0a62b5);color:#fff}body .management-task-modal .modal-head h2{font-size:21px}body .management-task-modal .modal-head button{color:#fff}.management-task-modal .modal-body{padding:20px}.management-task-modal .management-modal-summary{position:relative;overflow:hidden;margin-bottom:18px;padding:15px 18px 15px 22px;border:0;border-radius:10px;background:linear-gradient(105deg,#e9f4ff,#f5faff);box-shadow:inset 0 0 0 1px #bdd9f2}.management-task-modal .management-modal-summary:before{position:absolute;inset:0 auto 0 0;width:6px;background:#0873d1;content:""}.management-task-modal .management-modal-summary span{color:#55718c;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.management-task-modal .management-modal-summary strong{color:#073d78;font-size:17px}.management-task-modal .management-task-grid{gap:12px}.management-task-modal .management-task-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:112px;padding:14px 10px;border:0;border-radius:10px;color:#fff;text-align:center;box-shadow:0 5px 12px #172b3f28;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.management-task-modal .management-task-button:hover{border:0;background:inherit;filter:brightness(1.08);box-shadow:0 8px 17px #172b3f3d;transform:translateY(-3px)}.management-task-modal .management-task-button:active{transform:translateY(-1px)}.management-task-modal .management-task-button i{grid-row:auto;color:inherit;font-size:31px;line-height:1}.management-task-modal .management-task-button span{font-size:15px;font-weight:800;line-height:1.15}.management-task-modal .management-task-button small{color:inherit;font-size:11px;opacity:.82}.management-task-modal .management-task-button:nth-child(1){background:linear-gradient(135deg,#176df5,#0753c7)}.management-task-modal .management-task-button:nth-child(2){background:linear-gradient(135deg,#12a56b,#08784b)}.management-task-modal .management-task-button:nth-child(3){background:linear-gradient(135deg,#e83248,#bd1730)}.management-task-modal .management-task-button:nth-child(4){background:linear-gradient(135deg,#12bddb,#0786b2)}.management-task-modal .management-task-button:nth-child(5){background:linear-gradient(135deg,#e87508,#bd4e00)}.management-task-modal .management-task-button:nth-child(6){background:linear-gradient(135deg,#747f8a,#4f5963)}.management-task-modal .management-task-button:nth-child(7){background:linear-gradient(135deg,#f8bd13,#e38a00);color:#211800}.management-task-modal .dialog-actions{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:600px){.management-task-modal .management-task-grid{grid-template-columns:1fr 1fr}.management-task-modal .management-task-button{min-height:100px}}
.management-table tbody tr.management-clickable-row{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.management-table tbody tr.management-clickable-row:hover{background:#eef7ff;box-shadow:inset 4px 0 #0873d1}.management-table tbody tr.management-clickable-row:focus-visible{outline:2px solid #0873d1;outline-offset:-2px;background:#eef7ff}
.management-code-modal{width:min(520px,92vw);padding:0;border:0;border-radius:14px;color:var(--dark);box-shadow:0 25px 65px #10263f66}.management-code-modal::backdrop{background:#18334f99;backdrop-filter:blur(2px)}.management-code-modal form{position:relative;padding:26px}.management-code-modal .notice-close{position:absolute;top:14px;right:14px}.management-code-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 13px;border-radius:50%;background:#e5f1ff;color:#0965c0;font-size:27px}.management-code-modal h2{margin:0 0 8px;text-align:center;font-size:23px}.management-code-modal>form>p{margin:0 15px 22px;color:var(--muted);text-align:center;line-height:1.5}.management-code-modal label{display:grid;gap:7px;color:var(--dark);font-size:13px;font-weight:800}.management-code-modal input{height:48px;padding:0 14px;border:2px solid #b9d2ea;border-radius:8px;color:#073d78;font-size:19px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.management-code-modal input:focus{border-color:#0873d1;outline:3px solid #0873d126}.management-code-pattern{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:11px 12px;border-radius:8px;background:#eef6ff;color:#47627c;font-size:12px;line-height:1.45}.management-code-pattern i{margin-top:1px;color:#0873d1;font-size:15px}.management-code-modal .dialog-actions{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
body[data-page="gestion_formaciones"] #app th:nth-child(1){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(2){width:9%}body[data-page="gestion_formaciones"] #app th:nth-child(3){width:10%}body[data-page="gestion_formaciones"] #app th:nth-child(4){width:15%}body[data-page="gestion_formaciones"] #app th:nth-child(5){width:6%}body[data-page="gestion_formaciones"] #app th:nth-child(6){width:8%}body[data-page="gestion_formaciones"] #app th:nth-child(7){width:8%}body[data-page="gestion_formaciones"] #app th:nth-child(8),body[data-page="gestion_formaciones"] #app th:nth-child(9){width:4%}body[data-page="gestion_formaciones"] #app th:nth-child(10){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(11){width:6%}body[data-page="gestion_formaciones"] #app th:nth-child(12){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(13){width:9%}.management-table th:nth-child(n+5):nth-child(-n+11),.management-table td:nth-child(n+5):nth-child(-n+11){text-align:center}.management-authorization-modal{width:min(610px,94vw)}.management-coming-soon{display:grid;justify-items:center;padding:26px 20px;border:1px dashed #9fc3e5;border-radius:11px;background:#f3f9ff;text-align:center}.management-coming-soon i{display:grid;place-items:center;width:68px;height:68px;margin-bottom:12px;border-radius:50%;background:#dcebff;color:#1268bc;font-size:31px}.management-coming-soon h3{margin:0 0 8px;color:#073d78;font-size:19px}.management-coming-soon p{max-width:430px;margin:0;color:var(--muted);line-height:1.55}
.management-code-modal{width:min(680px,94vw)}.management-date-grid{display:grid;gap:12px;margin-top:16px}.management-existing-dates{grid-template-columns:1fr 1fr;padding:14px;border:1px solid #c9dceb;border-radius:9px;background:#f4f8fc}.management-new-dates{grid-template-columns:repeat(3,1fr)}.management-code-modal .management-date-grid input{height:43px;border-width:1px;color:#183d60;font-size:14px;font-weight:700;letter-spacing:0;text-transform:none}.management-code-modal .management-existing-dates input{background:#e8eef4;color:#526a80}.management-date-help{display:block;margin-top:9px;color:#61778d;font-size:11px}.management-date-help:before{margin-right:5px;color:#0873d1;content:"ⓘ"}@media(max-width:650px){.management-new-dates{grid-template-columns:1fr}.management-existing-dates{grid-template-columns:1fr 1fr}}
.management-date-notice{width:min(690px,94vw);padding:28px;border:0;border-radius:15px;color:var(--dark);text-align:center;box-shadow:0 25px 70px #10263f70}.management-date-notice::backdrop{background:#18334fa3;backdrop-filter:blur(3px)}.management-date-notice .notice-close{position:absolute;top:14px;right:14px}.management-date-notice-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 13px;border-radius:50%;background:#fff0d1;color:#d97900;font-size:29px}.management-date-notice h2{margin:0 0 9px;font-size:24px}.management-date-notice>p{max-width:550px;margin:0 auto 22px;color:var(--muted);line-height:1.55}.management-date-sequence{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;gap:7px}.management-date-sequence span{display:grid;place-items:center;min-height:65px;padding:9px;border:1px solid #bad5ee;border-radius:9px;background:#f1f7fd;color:#174b7c;font-size:12px;font-weight:800}.management-date-sequence i{align-self:center;color:#3980c2}.management-date-sequence .formation-start{border-color:#f1c36a;background:#fff6df;color:#795000}.management-date-rule{display:flex;justify-content:center;align-items:center;gap:8px;margin:17px 0;padding:12px;border-radius:9px;background:#e9f4ff;color:#07569f}.management-date-notice .notice-accept{min-width:150px}@media(max-width:650px){.management-date-sequence{grid-template-columns:1fr}.management-date-sequence i{transform:rotate(90deg)}.management-date-sequence span{min-height:48px}}
.management-validation-results{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;text-align:left}.management-validation-result{display:grid;grid-template-columns:23px 1fr;gap:8px;padding:12px;border:1px solid;border-radius:9px}.management-validation-result i{font-size:19px}.management-validation-result div{display:grid;gap:3px}.management-validation-result strong{font-size:13px}.management-validation-result span{font-size:11px;line-height:1.35}.management-validation-result.valid{border-color:#9ed9b7;background:#edfaf2;color:#137744}.management-validation-result.invalid{border-color:#f0adb5;background:#fff0f2;color:#ad2437}.management-validation-general{margin:0 0 15px!important;padding:10px;border-radius:8px;background:#fff0f2;color:#ad2437!important}.management-date-notice:has(.management-validation-result.invalid) .management-date-notice-icon{background:#ffe8d8;color:#da5b00}@media(max-width:650px){.management-validation-results{grid-template-columns:1fr}}
.management-economic-sign{width:min(650px,94vw);padding:28px;border:0;border-radius:15px;color:var(--dark);text-align:center;box-shadow:0 28px 80px #10263f75}.management-economic-sign::backdrop{background:#18334fa3;backdrop-filter:blur(3px)}.management-economic-sign .notice-close{position:absolute;top:14px;right:14px}.economic-sign-icon{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 12px;border-radius:50%;background:#e7f7ee;color:#128553;font-size:30px}.management-economic-sign h2{margin:0 0 7px;font-size:24px}.management-economic-sign>p{margin:0 0 20px;color:var(--muted)}.economic-sign-steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px;margin-bottom:18px}.economic-sign-steps>div{display:grid;justify-items:center;gap:5px;padding:10px;border-radius:9px;background:#edf1f5;color:#718092;font-size:11px;font-weight:800}.economic-sign-steps>div i{font-size:20px}.economic-sign-steps>div.active{background:#e6f2ff;color:#0865bd}.economic-sign-steps>i{color:#9aaabd}.economic-sign-status{display:grid;justify-items:center;gap:6px;min-height:100px;padding:18px;border:1px solid #bdd8ef;border-radius:10px;background:#f3f9ff}.economic-sign-status strong{color:#174b7c}.economic-sign-status small{color:var(--muted)}.economic-sign-status .success{color:#168954;font-size:28px}.economic-sign-error{display:grid;grid-template-columns:28px 1fr;gap:3px 10px;padding:15px;border:1px solid #efabb4;border-radius:10px;background:#fff0f2;color:#ad2437;text-align:left}.economic-sign-error i{grid-row:1/3;font-size:22px}.economic-sign-error span{font-size:12px;line-height:1.4}.economic-sign-error[hidden]{display:none}.management-economic-sign .dialog-actions{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.management-economic-sign .dialog-actions a{text-decoration:none}.spinner{width:26px;height:26px;border:3px solid #c4d9ec;border-top-color:#0873d1;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.management-economic-sign{padding:0;overflow:hidden;text-align:left}.economic-sign-hero{position:relative;display:flex;align-items:center;gap:17px;padding:22px 26px;background:linear-gradient(135deg,#064b91,#0874c9);color:#fff}.management-economic-sign .economic-sign-hero .notice-close{color:#fff}.economic-sign-hero .economic-sign-icon{flex:0 0 66px;margin:0;background:#ffffff24;color:#fff;box-shadow:inset 0 0 0 1px #ffffff38}.economic-sign-hero>div:last-child{min-width:0}.economic-sign-hero span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;opacity:.8}.economic-sign-hero h2{margin:3px 0 5px;color:#fff;font-size:24px}.economic-sign-hero p{margin:0;color:#dceeff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.economic-sign-body{padding:22px 26px}.economic-autofirma-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin-top:11px}.economic-autofirma-guide span{display:grid;justify-items:center;align-content:start;gap:5px;padding:9px;border-radius:8px;background:#fff;color:#4a6680;font-size:10px;line-height:1.35;text-align:center}.economic-autofirma-guide b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#0873d1;color:#fff;font-size:11px}.economic-sign-status:has(.economic-autofirma-guide){background:#eef8f3;border-color:#a9dac1}.economic-sign-status:has(.economic-autofirma-guide)>strong{color:#13794a}@media(max-width:600px){.economic-sign-hero{padding:19px}.economic-sign-body{padding:18px}.economic-autofirma-guide{grid-template-columns:1fr}.economic-sign-hero p{white-space:normal}}
.economic-signed-modal{width:min(590px,94vw)}.economic-signed-decision{text-align:center}.economic-signed-check{display:grid;place-items:center;width:70px;height:70px;margin:2px auto 13px;border-radius:50%;background:#e4f8ed;color:#11824e;font-size:34px;box-shadow:inset 0 0 0 1px #b5e3c9}.economic-signed-decision h3{margin:0 0 8px;color:#073d78;font-size:21px}.economic-signed-decision>p{max-width:430px;margin:0 auto 18px;color:var(--muted);line-height:1.5}.economic-signed-file{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid #bdd8ef;border-radius:9px;background:#f2f8fe;text-align:left}.economic-signed-file>i{color:#d52d43;font-size:29px}.economic-signed-file div{display:grid;min-width:0;gap:3px}.economic-signed-file span{color:var(--muted);font-size:11px}.economic-signed-file strong{overflow:hidden;color:#174b7c;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.economic-signed-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.economic-signed-actions a{text-decoration:none}.economic-download-current{color:#0b6b45!important;background:#e6f7ee!important}@media(max-width:600px){.economic-signed-actions{flex-direction:column-reverse}.economic-signed-actions .btn{justify-content:center;width:100%}}
.management-economic-sign [data-autofirma]:disabled{background:#cbd5df;color:#718094;cursor:not-allowed;filter:none;box-shadow:none;opacity:.8;pointer-events:none}.management-economic-sign [data-autofirma]:disabled i{color:#718094}

body[data-page="fichas_economicas"] #app{max-width:none}.economic-sheet-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:18px}.economic-sheet-toolbar #economic-course{flex:0 0 190px;width:190px;min-width:190px}.economic-sheet-search{position:relative;flex:1;min-width:180px}.economic-sheet-search i{position:absolute;top:50%;left:14px;color:#56728d;transform:translateY(-50%)}.economic-sheet-search input{width:100%;padding-left:40px}.economic-sheet-filters{display:flex;flex:0 0 auto;overflow:hidden;border:1px solid #b9cfe3;border-radius:8px}.economic-sheet-filters button{min-width:112px;padding:11px 16px;border:0;border-right:1px solid #b9cfe3;background:#fff;color:#31506d;font-weight:800;cursor:pointer}.economic-sheet-filters button:last-child{border-right:0}.economic-sheet-filters button.active{background:#075daf;color:#fff}.economic-sheet-table table{width:100%;table-layout:fixed}.economic-sheet-table th:nth-child(1){width:11%}.economic-sheet-table th:nth-child(2){width:19%}.economic-sheet-table th:nth-child(3){width:19%}.economic-sheet-table th:nth-child(4){width:25%}.economic-sheet-table th:nth-child(5){width:16%;text-align:center}.economic-sheet-table th:nth-child(6){width:10%}.economic-sheet-table td:nth-child(5){text-align:center}.economic-sheet-table td{vertical-align:middle}.economic-director-check{display:inline-grid;justify-items:center;gap:4px;color:#63778a;font-size:11px}.economic-director-check input{width:19px;height:19px;margin:0;accent-color:#128553;opacity:1}.economic-director-check:has(input:checked){color:#128553;font-weight:800}.economic-sheet-viewer{width:min(1180px,96vw);height:min(850px,94vh);padding:0;border:0;border-radius:14px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.economic-sheet-viewer::backdrop{background:#17324ea8;backdrop-filter:blur(3px)}.economic-view-head{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;background:linear-gradient(135deg,#063f7e,#0872c7);color:#fff}.economic-view-head>div{display:flex;align-items:center;gap:12px}.economic-view-head>div>i{font-size:29px}.economic-view-head span{display:grid;gap:2px}.economic-view-head small{color:#dcecff}.economic-view-head button{border:0;background:transparent;color:#fff;font-size:26px;cursor:pointer}.economic-sheet-viewer iframe{display:block;width:100%;height:calc(100% - 116px);border:0;background:#dce3ea}.economic-view-actions{display:flex;justify-content:flex-end;padding:10px 18px;border-top:1px solid var(--line);background:#fff}.economic-director-sign .economic-sign-hero{background:linear-gradient(135deg,#594407,#d29600)}.economic-reject-modal{width:min(610px,94vw)}.economic-reject-warning{display:flex;align-items:flex-start;gap:13px;margin-bottom:16px;padding:14px;border:1px solid #f0acb5;border-radius:9px;background:#fff0f2;color:#a52234}.economic-reject-warning>i{font-size:24px}.economic-reject-warning p{margin:4px 0 0;color:#77323b;font-size:13px;line-height:1.45}.economic-reject-modal textarea{resize:vertical}.economic-reject-modal .btn.danger{background:#df3447;color:#fff}@media(max-width:800px){.economic-sheet-toolbar{align-items:stretch;flex-direction:column}.economic-sheet-toolbar #economic-course{width:100%;min-width:0;flex-basis:auto}.economic-sheet-filters button{flex:1;min-width:0}.economic-sheet-table{overflow-x:auto}.economic-sheet-table table{min-width:900px}}

/* Formulario de formación más compacto para aprovechar la altura disponible */
.formation-wizard{max-height:96vh;overflow:hidden}
.formation-wizard .modal-head{padding:11px 20px}.formation-wizard .modal-head h2{font-size:19px}
.formation-wizard .modal-body{max-height:calc(96vh - 58px);padding:14px 20px}
.formation-wizard .wizard-progress{margin-bottom:13px;padding:7px 12px}
.formation-wizard .wizard-progress>span{width:26px;height:26px;font-size:13px}
.formation-wizard .grid{column-gap:14px;row-gap:9px}
.formation-wizard label{gap:4px;font-size:14px}
.formation-wizard input,.formation-wizard select,.formation-wizard textarea{padding:8px 10px;font-size:14px}
.formation-wizard .activity-type{gap:18px;padding:7px 11px}
.formation-code-field input[readonly]{border-color:#cbd8e4;background:#eef3f7;color:#526a80;cursor:not-allowed}.formation-code-field input[readonly]::placeholder{color:#687f94;font-style:italic;opacity:1}.formation-code-field small{display:flex;align-items:center;gap:5px;margin-top:2px;color:#708395;font-size:11px;font-style:italic;font-weight:400;line-height:1.3}.formation-code-field small i{color:#397ebd;font-size:12px}
.formation-wizard .speaker-count{margin-bottom:10px}
.formation-wizard .grid>.dialog-actions{bottom:-14px;margin:10px -20px -14px;padding:10px 20px}
.formation-wizard .wizard-actions{bottom:-14px;margin:12px -20px -14px;padding:10px 20px}
.billing-requirement{width:min(720px,94vw);max-height:92vh;padding:0;border:0;border-radius:14px;box-shadow:0 28px 85px #172b3f77}
.billing-requirement::backdrop{background:#172b3fb3;backdrop-filter:blur(2px)}
.billing-head{display:flex;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#eef6fd,#fff)}
.billing-head>div{display:flex;align-items:center;gap:12px}.billing-head i{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;background:var(--magenta);color:#fff;font-size:20px}.billing-head h2{margin:0;font-size:20px}
.billing-close{margin-left:auto;border:0;background:transparent;color:var(--ink);font-size:27px;line-height:1;cursor:pointer}
.billing-body{padding:20px 24px}.billing-body>p:first-child{margin-top:0}.billing-body li{margin:8px 0}
.document-download{display:inline-flex;align-items:center;gap:8px;margin:4px 0 16px;padding:9px 12px;border-radius:7px;background:var(--pale);color:var(--magenta);font-weight:700;text-decoration:none}.document-download:hover{background:#dcecf9}
.billing-warning{padding:12px;border-left:4px solid #e9a600;background:#fff8e5;color:#694f00;font-weight:600}
.billing-confirm{display:flex;grid-template-columns:none;align-items:flex-start;gap:10px;margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fbfe;font-weight:600}.billing-confirm input{width:auto;margin-top:3px;accent-color:var(--magenta)}
.diet-requirements{width:min(610px,92vw);padding:28px;border:0;border-radius:16px;box-shadow:0 28px 90px #172b3f73}.diet-requirements::backdrop{background:#172b3fb3;backdrop-filter:blur(3px)}.diet-notice-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:14px;border-radius:14px;background:#e8f3ff;color:var(--magenta);font-size:28px}.diet-notice-heading>span{color:var(--magenta);font-size:12px;font-weight:800;letter-spacing:.7px;text-transform:uppercase}.diet-notice-heading h2{margin:5px 0 8px;color:var(--dark);font-size:23px}.diet-notice-heading p{margin:0 0 18px;color:var(--muted);line-height:1.5}.diet-requirement-list{display:grid;gap:9px}.diet-requirement-list article{display:flex;align-items:flex-start;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:9px;background:#f8fbfe}.diet-requirement-list article>i{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:8px;background:#fff;color:var(--magenta);font-size:17px}.diet-requirement-list article div{display:grid;gap:2px}.diet-requirement-list article strong{color:var(--dark);font-size:14px}.diet-requirement-list article span{color:var(--muted);font-size:13px;line-height:1.4}.diet-notice-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
.dependent-files-choice{margin:17px 0 0;padding:12px 14px;border-left:4px solid #e0a124;border-radius:7px;background:#fff8e8;color:var(--muted);font-size:13px;line-height:1.5}.dependent-files-choice strong{color:var(--dark)}#dependent-files-refresh .diet-notice-actions{flex-wrap:wrap}#dependent-files-refresh .diet-notice-actions .btn{flex:1 1 auto}
.approved-locked-field{opacity:.72}.approved-locked-field select,.approved-locked-field input{cursor:not-allowed}.approved-locked-field legend::after,.approved-locked-field>span:first-child::after{content:' · Bloqueado al estar aprobada';color:var(--muted);font-size:11px;font-weight:600}
.billing-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 24px;border-top:1px solid var(--line);background:#fff}
.delete-confirmation{width:min(480px,92vw);padding:28px;border:0;border-radius:15px;box-shadow:0 28px 85px #172b3f77;text-align:center}
.delete-confirmation::backdrop{background:#172b3fb3;backdrop-filter:blur(2px)}
.delete-confirm-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 13px;border-radius:50%;background:#fee4e2;color:var(--red);font-size:25px}
.delete-confirmation h2{margin:0 0 6px;font-size:22px}.delete-confirmation>p{margin:0 0 17px;color:var(--muted)}
.delete-summary{display:grid;gap:3px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#f8fbfe;text-align:left}.delete-summary span,.delete-summary small{color:var(--muted);font-size:12px}.delete-summary strong{font-size:15px}
.delete-warning{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:11px;border-radius:7px;background:#fff4f2;color:#8f271d;text-align:left;font-size:12px}.delete-warning i{margin-top:1px}
.confirm-actions{display:flex;justify-content:center;gap:9px;margin-top:20px}.confirm-actions .btn{min-width:135px}.confirm-actions .danger{background:#df3447;color:#fff}
@media(max-width:650px){.formation-detail{grid-template-columns:1fr}.detail-item.detail-full{grid-column:auto}.detail-tabs{flex-wrap:wrap}.detail-tabs button{padding:10px 8px;font-size:12px}.detail-formation-total{width:100%;margin:-2px 6px 8px;text-align:left}}

.economic-sheet-filters button{padding-right:14px;padding-left:14px;font-size:12.5px}
.economic-sheet-table tbody tr.economic-clickable-row{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.economic-sheet-table tbody tr.economic-clickable-row:hover{background:#eef7ff;box-shadow:inset 4px 0 #0873d1}.economic-sheet-table tbody tr.economic-clickable-row:focus-visible{outline:2px solid #0873d1;outline-offset:-2px;background:#eef7ff}
.economic-sheet-table{overflow-x:hidden}.economic-sheet-table table{width:100%;min-width:0;table-layout:fixed;white-space:normal}.economic-sheet-table th,.economic-sheet-table td{box-sizing:border-box;padding-right:8px;padding-left:8px;overflow-wrap:anywhere}.economic-sheet-table th{font-size:12px;line-height:1.15}.economic-sheet-table th:nth-child(1){width:8%}.economic-sheet-table th:nth-child(2){width:17%}.economic-sheet-table th:nth-child(3){width:18%}.economic-sheet-table th:nth-child(4){width:23%}.economic-sheet-table th:nth-child(5){width:10%;text-align:center}.economic-sheet-table th:nth-child(6){width:16%;text-align:center}.economic-sheet-table th:nth-child(7){width:8%}.economic-sheet-table td:nth-child(5),.economic-sheet-table td:nth-child(6){text-align:center}.economic-sheet-table:has(.economic-select-head) th:nth-child(1){width:7%}.economic-sheet-table:has(.economic-select-head) th:nth-child(2){width:16%}.economic-sheet-table:has(.economic-select-head) th:nth-child(3){width:17%}.economic-sheet-table:has(.economic-select-head) th:nth-child(4){width:22%}.economic-sheet-table:has(.economic-select-head) th:nth-child(5){width:9%}.economic-sheet-table:has(.economic-select-head) th:nth-child(6){width:14%;text-align:center}.economic-sheet-table:has(.economic-select-head) th:nth-child(7){width:7%;text-align:center}.economic-sheet-table:has(.economic-select-head) th:nth-child(8){width:8%}.economic-sheet-table td.actions{gap:5px;flex-wrap:nowrap;white-space:nowrap}.economic-sheet-table .icon-btn{flex:0 0 32px;width:32px;height:32px}
.economic-sheet-viewer{height:min(820px,calc(100vh - 40px))}.economic-sheet-viewer iframe{height:calc(100% - 126px)}.economic-view-actions{align-items:center;gap:9px;padding:9px 18px 17px}.economic-view-actions .btn{min-height:38px}
.economic-batch-inline{display:flex;align-items:center;flex:0 0 auto;gap:7px;padding:0 2px;color:#174b7c;white-space:nowrap}.economic-batch-inline i{font-size:20px}.economic-sheet-toolbar #economic-sign-selected{flex:0 0 auto;white-space:nowrap}.economic-sheet-toolbar #economic-sign-selected b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:12px;background:#ffffff2b}.economic-sheet-table:has(.economic-select-head) th:nth-child(1){width:10%}.economic-sheet-table:has(.economic-select-head) th:nth-child(2){width:17%}.economic-sheet-table:has(.economic-select-head) th:nth-child(3){width:17%}.economic-sheet-table:has(.economic-select-head) th:nth-child(4){width:23%}.economic-sheet-table:has(.economic-select-head) th:nth-child(5){width:14%}.economic-sheet-table:has(.economic-select-head) th:nth-child(6){width:10%;text-align:center}.economic-sheet-table:has(.economic-select-head) th:nth-child(7){width:9%}.economic-select-head span{display:block}.economic-select-head label{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:11px;cursor:pointer}.economic-select-head input,.economic-select{width:18px;height:18px;margin:0;accent-color:#075daf;cursor:pointer}.economic-select-cell{text-align:center;color:#8a99a7}.economic-batch-sign{width:min(720px,94vw)}.economic-batch-summary{display:flex;align-items:flex-start;gap:9px;margin-bottom:15px;padding:11px 13px;border-radius:8px;background:#fff7dd;color:#725700;font-size:12px;line-height:1.45}.economic-batch-progress{display:grid;gap:7px}.economic-batch-progress>div{display:flex;justify-content:space-between;gap:10px;color:#174b7c}.economic-batch-progress progress{width:100%;height:12px;accent-color:#0873d1}.economic-batch-progress small{color:var(--muted)}.economic-batch-list{display:grid;gap:6px;max-height:260px;margin-top:14px;overflow:auto}.economic-batch-list>div{display:grid;grid-template-columns:22px 1fr 28px;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.economic-batch-list>div>i{color:#8192a2}.economic-batch-list span{display:grid;min-width:0}.economic-batch-list small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.economic-batch-list em{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e6edf3;color:#506a82;font-size:11px;font-style:normal;font-weight:800}.economic-batch-list>div.active{border-color:#7cb8e9;background:#eef7ff}.economic-batch-list>div.active>i{color:#0873d1}.economic-batch-list>div.done{border-color:#a8dbc0;background:#effaf4}.economic-batch-list>div.done>i{color:#168954}@media(max-width:1150px){.economic-sheet-toolbar{flex-wrap:wrap}.economic-sheet-search{flex-basis:100%}}@media(max-width:700px){.economic-batch-inline{justify-content:center}.economic-sheet-toolbar #economic-sign-selected{justify-content:center}}
body[data-page="gestion_formaciones"] #app th:nth-child(1){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(2){width:8%}body[data-page="gestion_formaciones"] #app th:nth-child(3){width:14%}body[data-page="gestion_formaciones"] #app th:nth-child(4){width:14%}body[data-page="gestion_formaciones"] #app th:nth-child(5){width:6%}body[data-page="gestion_formaciones"] #app th:nth-child(6){width:8%}body[data-page="gestion_formaciones"] #app th:nth-child(7){width:8%}body[data-page="gestion_formaciones"] #app th:nth-child(8),body[data-page="gestion_formaciones"] #app th:nth-child(9){width:4%}body[data-page="gestion_formaciones"] #app th:nth-child(10){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(11){width:6%}body[data-page="gestion_formaciones"] #app th:nth-child(12),body[data-page="gestion_formaciones"] #app th:nth-child(13){width:7%}

.economic-sign-error{grid-template-columns:30px minmax(0,1fr);gap:5px 12px;padding:17px 18px;border-color:#ef9da9;border-radius:12px;background:linear-gradient(135deg,#fff5f6,#ffedef);box-shadow:0 5px 16px #a91f330d}.economic-sign-error i{grid-column:1;grid-row:1/5;margin-top:1px;font-size:23px}.economic-sign-error strong,.economic-sign-error span,.economic-sign-error small{grid-column:2;min-width:0;overflow-wrap:anywhere}.economic-sign-error strong{font-size:15px;line-height:1.3}.economic-sign-error span{font-size:13px;line-height:1.45}.economic-sign-error small{display:block;margin-top:5px;padding:9px 11px;border-left:3px solid #e05668;border-radius:6px;background:#fff9fa;color:#7d3440;font-size:12px;line-height:1.5}
.economic-batch-inline strong{display:grid;gap:1px}.economic-batch-inline strong::after{content:"Selecciona las fichas pendientes que quieras firmar.";color:#5c7185;font-size:11px;font-weight:400;line-height:1.2}
.economic-batch-list>div.failed{border-color:#efabb4;background:#fff0f2}.economic-batch-list>div.failed>i{color:#c7283d}

body[data-page="documentacion_plantilla"] #app{max-width:1280px}.template-blocks{display:grid;gap:18px}.template-block{padding:0;overflow:hidden}.template-block-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #bdd4e8;background:linear-gradient(135deg,#eaf5ff,#f8fbfe)}.template-block-head>div{display:grid;gap:3px}.template-block-head span{color:#39708f;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.template-block-head h2{margin:0;color:#073d78;font-size:22px}.template-block-head>i{color:#0873d1;font-size:33px}.template-document-list{display:grid;gap:14px;padding:20px}.template-document-card{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:15px;padding:18px;border:1px solid #c8dbea;border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s}.template-document-card:has(.template-drop-zone.dragging){border-color:#0873d1;box-shadow:0 0 0 3px #0873d126}.template-document-icon{display:grid;place-items:center;align-self:start;width:50px;height:50px;border-radius:12px;background:#e8f3ff;color:#0873d1;font-size:24px}.template-document-copy{min-width:0}.template-document-copy h3{margin:1px 0 6px;color:#073d78;font-size:17px}.template-document-copy>p{max-width:760px;margin:0;color:#5d7286;font-size:13px;line-height:1.5}.template-file-current{display:flex;align-items:center;gap:9px;max-width:620px;margin-top:12px;padding:10px 12px;border-radius:8px;background:#edf8f2;color:#13794a}.template-file-current>i{font-size:18px}.template-file-current span{display:grid;min-width:0;gap:2px}.template-file-current strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.template-file-current small{color:#5c7b6b;font-size:10px}.template-file-missing{display:flex;align-items:center;gap:7px;margin-top:12px;color:#7a8896;font-size:12px;font-style:italic}.template-document-actions{display:flex;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap;gap:7px;max-width:290px}.template-document-actions .btn{min-height:38px;text-decoration:none}.template-select{cursor:pointer}.template-document-actions .danger{background:#df3447;color:#fff}.template-drop-zone{grid-column:2/-1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:55px;padding:10px;border:2px dashed #a9c7df;border-radius:9px;background:#f6faff;color:#56738e;cursor:pointer;transition:.15s}.template-drop-zone>i{color:#0873d1;font-size:21px}.template-drop-zone strong{font-size:12px}.template-drop-zone span{font-size:11px}.template-drop-zone.dragging{border-color:#0873d1;background:#e8f4ff;color:#075aa9}.template-document-card.uploading{pointer-events:none;opacity:.75}.speaker-template-download{margin:10px 0 0;font-size:11px}.speaker-help-body article .speaker-template-download i{color:#0873d1}@media(max-width:900px){.template-document-card{grid-template-columns:50px minmax(0,1fr)}.template-document-actions{grid-column:2;justify-content:flex-start;max-width:none}.template-drop-zone{grid-column:1/-1}}@media(max-width:600px){.template-document-list{padding:12px}.template-document-card{grid-template-columns:1fr;padding:14px}.template-document-actions{grid-column:1}.template-drop-zone{grid-column:1}.template-document-icon{width:42px;height:42px}.template-document-actions .btn{flex:1;justify-content:center}.template-drop-zone{align-items:center;flex-direction:column;text-align:center}}
body[data-page="documentacion_plantilla"] #app{max-width:1280px}.template-blocks{display:grid;gap:12px}.template-block{padding:0;overflow:hidden}.template-block-head{display:flex;align-items:center;justify-content:space-between;padding:13px 20px;border-bottom:1px solid #bdd4e8;background:linear-gradient(135deg,#eaf5ff,#f8fbfe)}.template-block-head>div{display:grid;gap:1px}.template-block-head span{color:#39708f;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.template-block-head h2{margin:0;color:#073d78;font-size:19px}.template-block-head>i{color:#0873d1;font-size:27px}.template-document-list{display:grid;gap:9px;padding:12px 16px}.template-document-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px 12px;padding:12px 14px;border:1px solid #c8dbea;border-radius:10px;background:#fff;transition:border-color .15s,box-shadow .15s}.template-document-card:has(.template-drop-zone.dragging){border-color:#0873d1;box-shadow:0 0 0 3px #0873d126}.template-document-icon{display:grid;place-items:center;align-self:start;width:40px;height:40px;border-radius:9px;background:#e8f3ff;color:#0873d1;font-size:19px}.template-document-copy{min-width:0}.template-document-copy h3{margin:0 0 4px;color:#073d78;font-size:15px}.template-document-copy>p{max-width:800px;margin:0;color:#5d7286;font-size:12px;line-height:1.35}.template-file-current{display:flex;align-items:center;gap:7px;max-width:650px;margin-top:7px;padding:6px 9px;border-radius:7px;background:#edf8f2;color:#13794a}.template-file-current>i{font-size:15px}.template-file-current span{display:grid;min-width:0;gap:1px}.template-file-current strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.template-file-current small{color:#5c7b6b;font-size:9px}.template-file-missing{display:flex;align-items:center;gap:6px;margin-top:7px;color:#7a8896;font-size:11px;font-style:italic}.template-document-actions{display:flex;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap;gap:5px;max-width:330px}.template-document-actions .btn{min-height:32px;padding:7px 10px;font-size:12px;text-decoration:none}.template-select{cursor:pointer}.template-document-actions .danger{background:#df3447;color:#fff}.template-drop-zone{grid-column:2/-1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:6px 9px;border:1.5px dashed #a9c7df;border-radius:7px;background:#f6faff;color:#56738e;cursor:pointer;transition:.15s}.template-drop-zone>i{color:#0873d1;font-size:17px}.template-drop-zone strong{font-size:11px}.template-drop-zone span{font-size:10px}.template-drop-zone.dragging{border-color:#0873d1;background:#e8f4ff;color:#075aa9}.template-document-card.uploading{pointer-events:none;opacity:.75}.speaker-template-download{margin:10px 0 0;font-size:11px}.speaker-help-body article .speaker-template-download i{color:#0873d1}@media(max-width:900px){.template-document-card{grid-template-columns:40px minmax(0,1fr)}.template-document-actions{grid-column:2;justify-content:flex-start;max-width:none}.template-drop-zone{grid-column:1/-1}}@media(max-width:600px){.template-document-list{padding:9px}.template-document-card{grid-template-columns:1fr;padding:11px}.template-document-actions{grid-column:1}.template-drop-zone{grid-column:1}.template-document-icon{width:38px;height:38px}.template-document-actions .btn{flex:1;justify-content:center}.template-drop-zone{align-items:center;flex-direction:column;text-align:center}}

/* Filtros compactos de curso y estados en una sola línea cuando hay espacio */
body[data-page="formaciones"] .toolbar #academic-course-filter{flex:0 0 145px;width:145px;min-width:145px}
body[data-page="formaciones"] .toolbar #search{flex:0 1 430px;min-width:240px}
body[data-page="formaciones"] .formation-status-filters{grid-template-columns:repeat(6,minmax(95px,1fr));flex:1 1 650px}
body[data-page="formaciones"] .formation-status-filters button{padding-right:8px;padding-left:8px;font-size:12px;white-space:nowrap}
body[data-page="gestion_formaciones"] .management-toolbar #management-year{width:145px;min-width:145px}
body[data-page="fichas_economicas"] .economic-sheet-toolbar #economic-course{flex-basis:145px;width:145px;min-width:145px}
@media(max-width:1100px){body[data-page="formaciones"] .formation-status-filters{flex-basis:100%}}
@media(max-width:800px){body[data-page="formaciones"] .toolbar #academic-course-filter,body[data-page="fichas_economicas"] .economic-sheet-toolbar #economic-course{width:100%;min-width:0;flex-basis:auto}}

/* Documentación de formaciones */
body[data-page="documentacion_formaciones"] #app{max-width:none}.course-document-toolbar{display:flex;align-items:center;gap:13px}.course-document-toolbar select{flex:0 0 145px;width:145px}.course-document-search{position:relative;flex:1;max-width:720px}.course-document-search i{position:absolute;top:50%;left:14px;color:#56728d;transform:translateY(-50%)}.course-document-search input{padding-left:40px}.course-document-table table{table-layout:fixed}.course-document-table th:nth-child(1){width:8%}.course-document-table th:nth-child(2){width:11%}.course-document-table th:nth-child(3){width:18%}.course-document-table th:nth-child(4){width:17%}.course-document-table th:nth-child(5),.course-document-table th:nth-child(6){width:6%}.course-document-table th:nth-child(7){width:5%}.course-document-table th:nth-child(8){width:8%}.course-document-table th:nth-child(9){width:12%}.course-document-table th:nth-child(10){width:9%}.course-document-row{cursor:pointer;transition:background .15s,box-shadow .15s}.course-document-row:hover,.course-document-row:focus-visible{background:#eef7ff;box-shadow:inset 4px 0 #0873d1;outline:0}.course-document-modal{width:min(1050px,95vw);height:min(840px,94vh);padding:0;border:0;border-radius:15px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.course-document-modal::backdrop,.course-document-viewer::backdrop{background:#17324ea8;backdrop-filter:blur(3px)}.course-document-modal-head,.course-document-view-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,#063f7e,#0872c7);color:#fff}.course-document-modal-head>div,.course-document-view-head>div{display:flex;align-items:center;gap:14px;min-width:0}.course-document-modal-head>div>i,.course-document-view-head>div>i{font-size:32px}.course-document-modal-head span,.course-document-view-head span{display:grid;min-width:0;gap:2px}.course-document-modal-head small,.course-document-view-head small{color:#dcecff;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.course-document-modal-head strong,.course-document-view-head strong{overflow:hidden;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.course-document-modal-head em{color:#dcecff;font-size:11px;font-style:normal}.course-document-modal-head button,.course-document-view-head button{border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.course-document-modal-body{height:calc(100% - 135px);padding:18px 22px;overflow:auto;background:#f5f8fb}.course-document-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.course-document-summary>span{display:grid;gap:3px;padding:10px 12px;border:1px solid #cbddea;border-radius:8px;background:#fff}.course-document-summary small{color:#647b90;font-size:10px;text-transform:uppercase}.course-document-summary strong{color:#174b7c;font-size:12px}.course-document-list{display:grid;gap:8px}.course-document-file{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 13px;border:1px solid #cbddea;border-radius:9px;background:#fff}.course-document-file-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;background:#e8f3ff;color:#0873d1;font-size:22px}.course-document-file-info{display:grid;min-width:0;gap:3px}.course-document-file-info>strong{overflow:hidden;color:#173d60;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.course-document-file-info>span{color:#6c8092;font-size:10px}.course-document-file-info>small{color:#148152;font-size:10px}.course-document-file-actions{display:flex;align-items:center;gap:6px}.course-document-file-actions .btn{min-height:34px;padding:7px 10px;font-size:11px;text-decoration:none}.course-document-empty{display:grid;justify-items:center;gap:7px;padding:40px;border:1px dashed #b8cfe2;border-radius:10px;background:#fff;color:#6c8092}.course-document-empty i{font-size:35px}.course-document-drop{display:grid;justify-items:center;gap:5px;margin-top:16px;padding:19px;border:2px dashed #87b6da;border-radius:11px;background:#eef7ff;color:#315d80;cursor:pointer;transition:.15s}.course-document-drop input{display:none}.course-document-drop>i{color:#0873d1;font-size:30px}.course-document-drop>span,.course-document-drop>small{font-size:11px}.course-document-drop>small{color:#6d8295}.course-document-drop.dragging{border-color:#0873d1;background:#dceeff;transform:scale(1.005)}.course-document-drop.uploading{pointer-events:none}.course-document-modal-actions{display:flex;justify-content:flex-end;height:61px;padding:11px 22px;border-top:1px solid #cfdee9;background:#fff}.course-document-loading,.course-document-load-error,.course-document-view-loading{display:grid;place-items:center;align-content:center;gap:12px;height:100%;padding:35px;text-align:center}.course-document-load-error{color:#ad2437}.course-document-load-error i{font-size:34px}.course-document-viewer{width:min(1180px,96vw);height:min(850px,94vh);padding:0;border:0;border-radius:14px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.course-document-viewer iframe{display:block;width:100%;height:calc(100% - 132px);border:0;background:#dce3ea}.course-document-view-actions{display:flex;justify-content:flex-end;gap:9px;height:62px;padding:11px 18px;background:#fff}.course-document-view-actions a{text-decoration:none}@media(max-width:800px){.course-document-toolbar{align-items:stretch;flex-direction:column}.course-document-toolbar select,.course-document-search{width:100%;max-width:none}.course-document-summary{grid-template-columns:1fr}.course-document-file{grid-template-columns:40px minmax(0,1fr)}.course-document-file-actions{grid-column:1/-1;justify-content:flex-end}.course-document-table{overflow:auto}.course-document-table table{min-width:1100px}}
body[data-page="documentacion_formaciones"] #app{max-width:none}.course-document-toolbar{display:flex;align-items:center;gap:13px}.course-document-toolbar select{flex:0 0 145px;width:145px}.course-document-search{position:relative;flex:1;max-width:720px}.course-document-search i{position:absolute;top:50%;left:14px;color:#56728d;transform:translateY(-50%)}.course-document-search input{padding-left:40px}.course-document-table table{table-layout:fixed}.course-document-table th:nth-child(1){width:8%}.course-document-table th:nth-child(2){width:11%}.course-document-table th:nth-child(3){width:18%}.course-document-table th:nth-child(4){width:17%}.course-document-table th:nth-child(5),.course-document-table th:nth-child(6){width:6%}.course-document-table th:nth-child(7){width:5%}.course-document-table th:nth-child(8){width:8%}.course-document-table th:nth-child(9){width:12%}.course-document-table th:nth-child(10){width:9%}.course-document-row{cursor:pointer;transition:background .15s,box-shadow .15s}.course-document-row:hover,.course-document-row:focus-visible{background:#eef7ff;box-shadow:inset 4px 0 #0873d1;outline:0}.course-document-modal{width:min(1050px,95vw);height:min(840px,94vh);padding:0;border:0;border-radius:15px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.course-document-modal::backdrop,.course-document-viewer::backdrop{background:#17324ea8;backdrop-filter:blur(3px)}.course-document-modal-head,.course-document-view-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,#063f7e,#0872c7);color:#fff}.course-document-modal-head>div,.course-document-view-head>div{display:flex;align-items:center;gap:14px;min-width:0}.course-document-modal-head>div>i,.course-document-view-head>div>i{font-size:32px}.course-document-modal-head span,.course-document-view-head span{display:grid;min-width:0;gap:2px}.course-document-modal-head small,.course-document-view-head small{color:#dcecff;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.course-document-modal-head strong,.course-document-view-head strong{overflow:hidden;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.course-document-modal-head em{color:#dcecff;font-size:11px;font-style:normal}.course-document-modal-head button,.course-document-view-head button{border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.course-document-modal-body{height:calc(100% - 100px);padding:18px 22px;overflow:auto;background:#f5f8fb}.course-document-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.course-document-summary>span{display:grid;gap:3px;padding:10px 12px;border:1px solid #cbddea;border-radius:8px;background:#fff}.course-document-summary small{color:#647b90;font-size:10px;text-transform:uppercase}.course-document-summary strong{color:#174b7c;font-size:12px}.course-document-list{display:grid;gap:8px}.course-document-file{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 13px;border:1px solid #cbddea;border-radius:9px;background:#fff}.course-document-file-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;background:#e8f3ff;color:#0873d1;font-size:22px}.course-document-file-info{display:grid;min-width:0;gap:3px}.course-document-file-info>strong{overflow:hidden;color:#173d60;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.course-document-file-info>span{color:#6c8092;font-size:10px}.course-document-file-info>small{color:#148152;font-size:10px}.course-document-file-actions{display:flex;align-items:center;gap:6px}.course-document-file-actions .btn{min-height:34px;padding:7px 10px;font-size:11px;text-decoration:none}.course-document-empty{display:grid;justify-items:center;gap:7px;padding:40px;border:1px dashed #b8cfe2;border-radius:10px;background:#fff;color:#6c8092}.course-document-empty i{font-size:35px}.course-document-drop{display:grid;justify-items:center;gap:5px;margin-top:16px;padding:16px 19px;border:2px dashed #87b6da;border-radius:11px;background:#eef7ff;color:#315d80;cursor:pointer;transition:.15s}.course-document-drop input{display:none}.course-document-drop>i{color:#0873d1;font-size:30px}.course-document-drop>span,.course-document-drop>small{font-size:11px}.course-document-drop>small{color:#6d8295}.course-document-upload-notice{display:flex;align-items:flex-start;gap:8px;max-width:620px;margin-top:8px;padding:9px 12px;border:1px solid #efd184;border-radius:8px;background:#fff8df;color:#765900;text-align:left}.course-document-upload-notice>i{margin-top:1px;color:#d89200;font-size:16px}.course-document-upload-notice>span{display:grid;gap:2px;font-size:11px;line-height:1.35}.course-document-upload-notice strong{font-size:11px}.course-document-drop.dragging{border-color:#0873d1;background:#dceeff;transform:scale(1.005)}.course-document-drop.uploading{pointer-events:none}.course-document-loading,.course-document-load-error,.course-document-view-loading{display:grid;place-items:center;align-content:center;gap:12px;height:100%;padding:35px;text-align:center}.course-document-load-error{color:#ad2437}.course-document-load-error i{font-size:34px}.course-document-viewer{width:min(1180px,96vw);height:min(850px,94vh);padding:0;border:0;border-radius:14px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.course-document-viewer iframe{display:block;width:100%;height:calc(100% - 132px);border:0;background:#dce3ea}.course-document-view-actions{display:flex;justify-content:flex-end;gap:9px;height:62px;padding:11px 18px;background:#fff}.course-document-view-actions a{text-decoration:none}@media(max-width:800px){.course-document-toolbar{align-items:stretch;flex-direction:column}.course-document-toolbar select,.course-document-search{width:100%;max-width:none}.course-document-summary{grid-template-columns:1fr}.course-document-file{grid-template-columns:40px minmax(0,1fr)}.course-document-file-actions{grid-column:1/-1;justify-content:flex-end}.course-document-table{overflow:auto}.course-document-table table{min-width:1100px}}

/* Autorizaciones de ponentes */
dialog.management-authorization-modal{width:min(980px,95vw);height:min(850px,94vh);padding:0;border:0;border-radius:15px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.management-authorization-modal::backdrop{background:#17324ea8;backdrop-filter:blur(3px)}.authorization-head{display:flex;align-items:center;justify-content:space-between;padding:19px 24px;background:linear-gradient(135deg,#9f1239,#ed2449);color:#fff}.authorization-head>div{display:flex;align-items:center;gap:14px;min-width:0}.authorization-head>div>i{font-size:33px}.authorization-head span{display:grid;min-width:0;gap:2px}.authorization-head small{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.authorization-head strong{overflow:hidden;font-size:19px;text-overflow:ellipsis;white-space:nowrap}.authorization-head em{font-size:11px;font-style:normal;opacity:.85}.authorization-head button{border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.authorization-body{display:grid;gap:13px;height:calc(100% - 96px);padding:18px 21px;overflow:auto;background:#f5f8fb}.authorization-download{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #bcd8ee;border-radius:10px;background:#eef7ff}.authorization-download>div{display:flex;align-items:center;gap:12px}.authorization-download>div>i{color:#0873d1;font-size:29px}.authorization-download span{display:grid;gap:3px}.authorization-download span>strong{color:#174b7c;font-size:14px}.authorization-download small{color:#60778c;font-size:11px}.authorization-download a{text-decoration:none;white-space:nowrap}.authorization-warning{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border:1px solid #efcf7c;border-radius:8px;background:#fff8dc;color:#735600}.authorization-warning>i{font-size:20px}.authorization-warning>span{display:grid;gap:3px;font-size:11px}.authorization-speakers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.authorization-speakers>div{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #cfdee9;border-radius:8px;background:#fff}.authorization-speakers>div>i{color:#71889c;font-size:20px}.authorization-speakers>div.complete{border-color:#a9ddc1;background:#effaf4}.authorization-speakers>div.complete>i{color:#168954}.authorization-speakers span{display:grid;min-width:0;gap:2px}.authorization-speakers strong{overflow:hidden;color:#173d60;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.authorization-speakers small{color:#6d8193;font-size:10px}.authorization-section-title{display:flex;align-items:center;justify-content:space-between;margin:2px 0 7px}.authorization-section-title h3{margin:0;color:#173d60;font-size:14px}.authorization-section-title>span{display:flex;align-items:center;gap:5px;color:#168954;font-size:11px;font-weight:800}.authorization-file-list{display:grid;gap:7px}.authorization-file-list article{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:11px;padding:9px 11px;border:1px solid #cbddea;border-radius:8px;background:#fff}.authorization-file-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#fde8ed;color:#dc2347;font-size:20px}.authorization-file-copy{display:grid;min-width:0;gap:2px}.authorization-file-copy strong{overflow:hidden;color:#173d60;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.authorization-file-copy span,.authorization-file-copy small{color:#6b8093;font-size:9px}.authorization-file-actions{display:flex;align-items:center;gap:5px}.authorization-file-actions .btn{min-height:32px;padding:6px 9px;font-size:10px;text-decoration:none}.authorization-empty{display:flex;align-items:center;justify-content:center;gap:11px;padding:22px;border:1px dashed #b6cada;border-radius:9px;background:#fff;color:#667d90}.authorization-empty>i{font-size:29px}.authorization-empty>span{display:grid;gap:3px}.authorization-empty strong{font-size:12px}.authorization-empty small{font-size:10px}.authorization-drop{display:grid;justify-items:center;gap:4px;padding:16px;border:2px dashed #e18ba0;border-radius:10px;background:#fff1f4;color:#843047;cursor:pointer;transition:.15s}.authorization-drop input{display:none}.authorization-drop>i{color:#dc2347;font-size:29px}.authorization-drop>span,.authorization-drop>small{font-size:10px}.authorization-drop.dragging{border-color:#dc2347;background:#ffe2e9;transform:scale(1.004)}.authorization-drop.uploading{pointer-events:none}.authorization-loading,.authorization-error{display:grid;place-items:center;align-content:center;gap:12px;height:100%;padding:35px;text-align:center}.authorization-error{color:#ad2437}.authorization-error>i{font-size:34px}@media(max-width:700px){.authorization-download{align-items:stretch;flex-direction:column}.authorization-speakers{grid-template-columns:1fr}.authorization-file-list article{grid-template-columns:38px minmax(0,1fr)}.authorization-file-actions{grid-column:1/-1;justify-content:flex-end}}
.management-cdd-modal .authorization-head{background:linear-gradient(135deg,#08758f,#10a9c8)}.management-cdd-modal .authorization-file-icon{background:#e2f7fb;color:#0787a3}.management-cdd-modal .authorization-drop{border-color:#7dc9d8;background:#eefbfe;color:#246879}.management-cdd-modal .authorization-drop>i{color:#0795b3}.management-cdd-modal .authorization-drop.dragging{border-color:#0795b3;background:#ddf7fc}
.template-variables{display:inline-flex;align-items:center;gap:4px;margin-left:7px;padding:3px 7px;border:1px solid #83b8e5;border-radius:12px;background:#eef7ff;color:#075daf;font-size:10px;font-weight:800;vertical-align:middle;cursor:pointer}.template-variables-modal{width:min(760px,94vw);max-height:88vh;padding:24px;border:0;border-radius:15px;overflow:auto;box-shadow:0 25px 75px #17324f66}.template-variables-modal::backdrop{background:#17324f99;backdrop-filter:blur(2px)}.template-variables-modal .notice-close{float:right}.template-variables-head{display:flex;gap:14px;padding-right:35px}.template-variables-head>i{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:12px;background:#e7f3ff;color:#0873d1;font-size:24px}.template-variables-head span{display:grid;gap:3px}.template-variables-head small{color:#0873d1;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.template-variables-head h2{margin:0;color:#073d78;font-size:21px}.template-variables-head p{margin:2px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.template-variable-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:17px 0}.template-variable-list article{display:grid;gap:4px;padding:9px 11px;border:1px solid #c9ddeb;border-radius:8px;background:#f8fbfe}.template-variable-list code{color:#075daf;font-size:11px;font-weight:800}.template-variable-list span{color:#5d7286;font-size:10px;line-height:1.35}.template-variables-close{float:right}
.template-variables-modal .template-variables-head p{font-size:13px;line-height:1.5}.template-variables-modal .template-variable-list code{font-size:12.5px}.template-variables-modal .template-variable-list span{font-size:11.5px;line-height:1.45}
dialog.management-designa-modal{width:min(1060px,96vw);height:min(900px,95vh);padding:0;border:0;border-radius:15px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.management-designa-modal::backdrop{background:#17324ea8;backdrop-filter:blur(3px)}.designa-head{display:flex;align-items:center;justify-content:space-between;padding:19px 24px;background:linear-gradient(135deg,#074b87,#0b76c5);color:#fff}.designa-head>div{display:flex;align-items:center;gap:14px;min-width:0}.designa-head>div>i{font-size:33px}.designa-head span{display:grid;min-width:0;gap:2px}.designa-head small{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.designa-head strong{overflow:hidden;font-size:19px;text-overflow:ellipsis;white-space:nowrap}.designa-head em{font-size:11px;font-style:normal;opacity:.85}.designa-head>button{border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.designa-body{display:grid;gap:12px;height:calc(100% - 92px);padding:17px 20px;overflow:auto;background:#f3f7fb}.designa-complete{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid #96d8b4;border-radius:9px;background:#ecfaf3;color:#137a49}.designa-complete>i{font-size:24px}.designa-complete span{display:grid}.designa-complete small{font-size:10px}.designa-speaker-card{overflow:hidden;border:1px solid #bed4e6;border-radius:11px;background:#fff}.designa-speaker-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid #d8e5ef;background:#f6faff}.designa-speaker-card>header>div{display:flex;align-items:center;gap:9px;min-width:0}.designa-speaker-card>header b{display:grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border-radius:50%;background:#dceeff;color:#075daf;font-size:11px}.designa-speaker-card>header span{display:grid;gap:2px;min-width:0}.designa-speaker-card>header strong{color:#123f68;font-size:13px}.designa-speaker-card>header small{overflow:hidden;color:#6a7f92;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.designa-speaker-status{display:flex!important;grid-auto-flow:column!important;align-items:center;gap:5px!important;color:#996e08;font-size:10px!important;font-weight:800;white-space:nowrap}.designa-speaker-status.complete{color:#168954}.designa-speaker-body{display:grid;gap:9px;padding:12px 14px}.designa-requirement,.designa-self,.designa-contract{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #cbddea;border-radius:8px;background:#f9fcff}.designa-requirement>div,.designa-self>span,.designa-contract>div{display:flex;align-items:center;gap:9px}.designa-requirement>div>i,.designa-self>i,.designa-contract>div>i{color:#0873d1;font-size:22px}.designa-requirement span,.designa-self span,.designa-contract div>span{display:grid;gap:2px}.designa-requirement strong,.designa-self strong,.designa-contract strong{color:#174b7c;font-size:12px}.designa-requirement small,.designa-self small,.designa-contract small{color:#687f93;font-size:10px}.designa-self label,.designa-contract>label{display:grid;gap:4px;color:#385c7d;font-size:10px;font-weight:700}.designa-self label{display:flex;align-items:center;font-size:11px}.designa-self input,.designa-contract-check{width:18px;height:18px;accent-color:#0873d1}.designa-template-warning{display:flex;align-items:center;gap:7px;margin:0;padding:8px 10px;border-radius:7px;background:#fff4d9;color:#7c5b08;font-size:10px}.designa-file-list{display:grid;gap:6px}.designa-file-list>div{display:grid;grid-template-columns:28px minmax(0,1fr) auto 32px;align-items:center;gap:7px;padding:7px 9px;border:1px solid #d2e0eb;border-radius:7px}.designa-file-list>div>i{color:#0873d1;font-size:19px}.designa-file-list span{display:grid;min-width:0}.designa-file-list strong{overflow:hidden;color:#244b6d;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.designa-file-list small{color:#718598;font-size:9px}.designa-file-list .btn{min-height:30px;padding:5px 8px;font-size:9px;text-decoration:none}.designa-drop{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:8px 12px;border:1.5px dashed #79b9e6;border-radius:8px;background:#f0f8ff;color:#2f648b;cursor:pointer}.designa-drop input{display:none}.designa-drop>i{color:#0873d1;font-size:22px}.designa-drop span{display:grid;gap:2px}.designa-drop strong{font-size:10px}.designa-drop small{font-size:9px}.designa-drop.dragging{background:#dfefff}.designa-drop.uploading{pointer-events:none}.designa-proforma-title{margin-top:4px}.designa-contract{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(180px,260px) auto}.designa-contract>label:nth-of-type(1){display:flex;align-items:center;white-space:nowrap}.designa-contract-number{min-height:34px;padding:7px 9px}.designa-contract .btn{align-self:end}.management-designa-modal .authorization-loading,.management-designa-modal .authorization-error{height:100%}@media(max-width:750px){.template-variable-list{grid-template-columns:1fr}.designa-speaker-card>header,.designa-requirement,.designa-self{align-items:flex-start;flex-direction:column}.designa-contract{grid-template-columns:1fr}.designa-file-list>div{grid-template-columns:25px minmax(0,1fr)}.designa-file-list .btn,.designa-file-list .icon-btn{grid-row:2}.designa-file-list .btn{grid-column:2}.designa-file-list .icon-btn{grid-column:1}}
.designa-body{display:flex;align-items:stretch;flex-direction:column;gap:16px}.designa-body>.designa-complete,.designa-body>.designa-speaker-card,.designa-body>.authorization-empty{flex:0 0 auto}.designa-speaker-body{gap:12px;padding:14px}.designa-generate.template-missing{background:#fff4d9;color:#805d08;box-shadow:inset 0 0 0 1px #e3bf60}.designa-generate.template-missing:hover{background:#ffe9ad}
.designa-requirement .designa-generate{min-height:36px;padding:7px 12px;gap:5px;font-size:12px}.designa-requirement .designa-generate i{font-size:13px}
.designa-three-quotes-notice{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #edc568;border-radius:8px;background:#fff8e7;color:#765500}.designa-three-quotes-notice>i{flex:0 0 auto;margin-top:1px;color:#c18100;font-size:19px}.designa-three-quotes-notice span{display:grid;gap:3px}.designa-three-quotes-notice strong{font-size:12px}.designa-three-quotes-notice small{color:#765f25;font-size:10px;line-height:1.45}
body[data-page="gestion_formaciones"] #app th:nth-child(1){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(2){width:8%}body[data-page="gestion_formaciones"] #app th:nth-child(3){width:13%}body[data-page="gestion_formaciones"] #app th:nth-child(4){width:14%}body[data-page="gestion_formaciones"] #app th:nth-child(5){width:6%}body[data-page="gestion_formaciones"] #app th:nth-child(6){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(7),body[data-page="gestion_formaciones"] #app th:nth-child(8){width:8%}body[data-page="gestion_formaciones"] #app th:nth-child(9){width:4%}body[data-page="gestion_formaciones"] #app th:nth-child(10){width:6%}body[data-page="gestion_formaciones"] #app th:nth-child(11){width:7%}body[data-page="gestion_formaciones"] #app th:nth-child(12),body[data-page="gestion_formaciones"] #app th:nth-child(13){width:6%}
.management-banner-editor{width:min(1500px,98vw);height:min(930px,96vh);padding:0;border:0;border-radius:15px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.management-banner-editor::backdrop,.management-banner-viewer::backdrop{background:#17324eaa;backdrop-filter:blur(3px)}.banner-editor-head{display:flex;align-items:center;justify-content:space-between;padding:15px 21px;background:linear-gradient(135deg,#9b4700,#df6b00);color:#fff}.banner-editor-head>div{display:flex;align-items:center;gap:12px;min-width:0}.banner-editor-head>div>i{font-size:29px}.banner-editor-head span{display:grid;min-width:0;gap:2px}.banner-editor-head small{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;opacity:.8}.banner-editor-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.banner-editor-head button{border:0;background:transparent;color:#fff;font-size:27px;cursor:pointer}.management-banner-editor iframe{display:block;width:100%;height:calc(100% - 64px);border:0;background:#eef3f7}.banner-saved-modal{width:min(760px,95vw)}.banner-saved{text-align:center}.banner-saved-check{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 12px;border-radius:50%;background:#e9f8f0;color:#148553;font-size:31px}.banner-saved h3{margin:0 0 7px;color:#173d60;font-size:21px}.banner-saved>p{margin:0 0 17px;color:var(--muted)}.banner-language-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.banner-language-grid article{display:grid;justify-items:center;gap:7px;padding:16px;border:1px solid #c8ddea;border-radius:10px;background:#f5f9fc}.banner-language-grid article>i{color:#d56200;font-size:28px}.banner-language-grid article>strong{color:#174b7c}.banner-language-grid article>div{display:flex;gap:6px}.banner-language-grid .btn{min-height:33px;padding:6px 9px;font-size:10px;text-decoration:none}.banner-saved-actions,.banner-view-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.banner-saved-actions a{text-decoration:none}.management-banner-viewer{width:min(1200px,96vw);padding:0;border:0;border-radius:14px;overflow:hidden}.banner-view-image{display:grid;place-items:center;padding:24px;background:#dfe7ed}.banner-view-image img{display:block;width:100%;height:auto;max-height:calc(92vh - 175px);object-fit:contain;box-shadow:0 5px 20px #173d6040}.banner-view-actions{margin:0;padding:11px 18px;background:#fff}.banner-view-actions a{text-decoration:none}@media(max-width:650px){.banner-language-grid{grid-template-columns:1fr}.banner-language-grid article>div{flex-wrap:wrap;justify-content:center}}
.economic-signed-modal{width:min(720px,94vw)}.economic-view-current{color:#075daf!important;background:#e7f2fd!important}
.management-economic-pending{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 8px;border-radius:12px;background:#fff3cd;color:#785b00;font-size:10px;font-weight:800;line-height:1.2;text-align:center;white-space:nowrap}.management-economic-pending i{font-size:12px}


.banner-delete-confirm{text-align:center;padding:18px 10px 8px}.banner-delete-icon{width:64px;height:64px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;background:#fff0f0;color:#c0392b;font-size:28px}.banner-delete-confirm h3{margin:0 0 8px;color:#173d60;font-size:20px}.banner-delete-confirm p{margin:0 auto;color:#667789;line-height:1.5;max-width:440px}.btn.danger{background:#c0392b;color:#fff;border:0}.btn.danger:hover{background:#a93226}
.banner-created-confirm{text-align:center;padding:18px 10px 8px}.banner-created-icon{width:64px;height:64px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;background:#e9f8f0;color:#148553;font-size:30px}.banner-created-confirm h3{margin:0 0 8px;color:#173d60;font-size:21px}.banner-created-confirm p{margin:0 auto;color:#667789;line-height:1.5;max-width:440px}
.management-banner-status{display:inline-block;max-width:100%;padding:4px 7px;border-radius:10px;font-size:10px;font-weight:800;line-height:1.15;text-align:center;white-space:normal}.banner-state-en-edición{background:#fff3cd;color:#815d00}.banner-state-en-revisión{background:#e5f1ff;color:#075a9f}.banner-state-para-corregir{background:#ffe8e8;color:#a12626}
.banner-review-modal{width:min(1500px,98vw);height:min(930px,96vh);padding:0;overflow:hidden}.banner-review-modal #modal-form{display:flex;flex-direction:column;height:calc(100% - 58px)}.banner-review-info{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line);color:var(--dark)}.banner-review-info strong{color:#174b7c}.banner-review-info span{font-weight:750}.banner-review-info small{color:var(--muted)}.banner-review-images{display:grid;gap:14px;flex:1;overflow:auto;padding:14px 18px;background:#eef3f7}.banner-review-images img{display:block;width:100%;height:auto;border:2px solid #f0a227;background:#fff6df;box-shadow:0 3px 12px #173d6020}.banner-review-modal .dialog-actions{justify-content:flex-end;margin:0;padding:12px 18px;border-top:1px solid var(--line);background:#fff}
.banner-review-images img{max-height:calc((100vh - 220px)/2);object-fit:contain}
.banner-state-filters{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.banner-state-filters button{border:1px solid var(--line);border-radius:14px;padding:7px 11px;background:#fff;color:var(--muted);font-size:11px;font-weight:750;cursor:pointer}.banner-state-filters button:hover,.banner-state-filters button.active{border-color:#168ab5;background:#168ab5;color:#fff}
.banner-review-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px 18px;background:#f5f8fb;border-bottom:1px solid var(--line)}.banner-review-facts span{display:grid;gap:2px;padding:7px 9px;border-radius:7px;background:#fff;border:1px solid #d7e3ec}.banner-review-facts small{color:#70869a;font-size:9px;text-transform:uppercase}.banner-review-facts strong{overflow:hidden;color:#173d60;font-size:11px;text-overflow:ellipsis;white-space:nowrap}@media(max-width:800px){.banner-review-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.banner-module-toolbar{width:100%;margin-bottom:18px}.banner-module-toolbar>input{flex:1;min-width:220px}.banner-module-toolbar #banner-year{flex:0 0 190px;width:190px}.banner-module-toolbar .banner-state-filters{flex:0 0 auto}.banner-module-toolbar #banner-filter{flex:0 0 auto;white-space:nowrap}body[data-page="banners"] #app{max-width:none}body[data-page="banners"] #app .table-wrap{width:100%}@media(max-width:1050px){.banner-module-toolbar{flex-wrap:wrap}.banner-module-toolbar>input{flex-basis:calc(100% - 210px)}}
.banner-review-modal .modal-head{background:linear-gradient(135deg,#9b4700,#df6b00);color:#fff}.banner-review-modal .modal-head h2{color:#fff}.banner-review-modal .modal-head button{color:#fff}
.banner-review-modal .modal-head{box-sizing:border-box;height:64px;padding:15px 21px}.banner-review-modal #modal-form{height:calc(100% - 64px)}.banner-review-preview{display:flex;flex-direction:column}.banner-review-preview .banner-review-image{flex:1 1 0;min-height:0}.banner-review-preview .banner-review-image:last-child{margin-bottom:0}.banner-review-preview .banner-review-image img{width:100%;height:100%;max-height:none;object-fit:contain}

/* La tabla de fichas económicas debe ocupar el ancho disponible sin desplazamiento lateral. */
body[data-page="fichas_economicas"] .economic-sheet-table{overflow-x:hidden}
body[data-page="fichas_economicas"] .economic-sheet-table table{width:100%;min-width:0;table-layout:fixed;white-space:normal}
body[data-page="fichas_economicas"] .economic-sheet-table:has(.economic-select-head) th:nth-child(1){width:7%}
body[data-page="fichas_economicas"] .economic-sheet-table:has(.economic-select-head) th:nth-child(2){width:16%}
body[data-page="fichas_economicas"] .economic-sheet-table:has(.economic-select-head) th:nth-child(3){width:17%}
body[data-page="fichas_economicas"] .economic-sheet-table:has(.economic-select-head) th:nth-child(4){width:22%}
body[data-page="fichas_economicas"] .economic-sheet-table:has(.economic-select-head) th:nth-child(5){width:9%}
body[data-page="fichas_economicas"] .economic-sheet-table:has(.economic-select-head) th:nth-child(6){width:14%}
body[data-page="fichas_economicas"] .economic-sheet-table:has(.economic-select-head) th:nth-child(7){width:7%}
body[data-page="fichas_economicas"] .economic-sheet-table:has(.economic-select-head) th:nth-child(8){width:8%}
body[data-page="fichas_economicas"] .economic-sheet-table td.actions{display:table-cell;text-align:center;white-space:nowrap}
body[data-page="fichas_economicas"] .economic-sheet-table td.actions .icon-btn{display:inline-grid;margin:0 2px}

/* Gestión de formaciones: 14 columnas repartidas dentro del ancho disponible. */
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(1){width:6%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(2){width:8%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(3){width:11%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(4){width:12%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(5){width:6%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(6){width:6%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(7){width:7%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(8){width:7%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(9){width:4%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(10){width:5%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(11){width:7%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(12){width:6%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(13){width:7%}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(14){width:8%}
body[data-page="gestion_formaciones"] .management-table td.actions{display:table-cell;text-align:center;white-space:nowrap}
body[data-page="gestion_formaciones"] .management-table td.actions .icon-btn{display:inline-grid;flex:none;width:30px;height:30px;margin:1px}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(5),body[data-page="gestion_formaciones"] #app .management-table td:nth-child(5){text-align:left}
body[data-page="gestion_formaciones"] #app .management-table th:nth-child(n+6):nth-child(-n+12),body[data-page="gestion_formaciones"] #app .management-table td:nth-child(n+6):nth-child(-n+12){text-align:center}
.banner-module-toolbar>input{flex:0 1 560px!important;min-width:420px!important;max-width:620px!important}
.banner-module-toolbar{flex-wrap:nowrap!important;overflow:hidden}.banner-module-toolbar .formation-status-filters{flex:1 1 auto;min-width:0}body[data-page="banners"]{overflow-x:hidden}body[data-page="banners"] #app .table-wrap{overflow-x:hidden}body[data-page="banners"] #app table{width:100%;min-width:0;table-layout:fixed}
.banner-module-toolbar .formation-status-filters{flex:0 0 auto!important;width:max-content;grid-template-columns:repeat(4,minmax(145px,1fr))}.banner-module-toolbar .formation-status-filters button{min-width:145px}
.banner-row{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.banner-row:hover{background:#eef7ff;box-shadow:inset 4px 0 #0873d1}.banner-row:focus-visible{outline:2px solid #0873d1;outline-offset:-2px}
.banner-review-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;height:100%;min-height:0;padding:12px;background:#eef3f7}.banner-review-preview,.banner-review-side{min-height:0;border:1px solid #cadbea;border-radius:12px;background:#fff;box-shadow:0 4px 15px #173d6010}.banner-review-preview{padding:12px;overflow:hidden}.banner-review-label{display:flex;justify-content:space-between;margin-bottom:7px;color:#526d84;font-size:11px;font-weight:800;text-transform:uppercase}.banner-review-image{display:grid;place-items:center;margin-bottom:11px;border:2px solid #f0a227;background:#fff6df;overflow:hidden}.banner-review-image img{display:block;width:100%;height:clamp(300px,calc((100vh - 180px)/2),350px);object-fit:contain}.banner-review-side{display:flex;flex-direction:column;gap:10px;padding:14px;overflow:auto}.banner-review-summary{display:grid;gap:3px;padding:10px;border-radius:8px;background:#f1f6fa}.banner-review-summary small{color:#70869a;font-size:9px;text-transform:uppercase}.banner-review-summary strong{color:#174b7c;font-size:13px}.banner-review-summary span{color:#173d60;font-size:12px;font-weight:750}.banner-review-side .banner-review-facts{grid-template-columns:1fr 1fr;padding:0;border:0;background:transparent}.banner-review-side .dialog-actions{margin-top:auto;padding:12px 0 0;border-top:1px solid var(--line);background:transparent;flex-wrap:wrap}.banner-review-side .dialog-actions .btn{flex:1;white-space:nowrap}@media(max-width:950px){.banner-review-layout{grid-template-columns:1fr;overflow:auto}.banner-review-side{grid-row:1}.banner-review-preview{overflow:visible}}
.banner-correction-dialog{width:min(590px,94vw);padding:0;border:0;border-radius:15px;overflow:hidden;box-shadow:0 28px 80px #10263f75}.banner-correction-dialog::backdrop{background:#17324eaa;backdrop-filter:blur(3px)}.banner-correction-dialog form{position:relative;padding:26px}.banner-correction-dialog .notice-close{position:absolute;top:13px;right:15px;border:0;background:transparent;color:#60788e;font-size:26px;cursor:pointer}.banner-correction-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 12px;border-radius:50%;background:#fff1dc;color:#c65c00;font-size:28px}.banner-correction-dialog h2{margin:0 0 7px;color:#173d60;text-align:center;font-size:23px}.banner-correction-dialog form>p{margin:0 auto 20px;max-width:440px;color:#667789;text-align:center;line-height:1.45}.banner-correction-dialog label{display:block;margin-bottom:7px;color:#173d60;font-size:12px;font-weight:800}.banner-correction-dialog textarea{width:100%;min-height:125px;padding:12px 13px;border:2px solid #b9d2e8;border-radius:9px;color:#173d60;font:inherit;line-height:1.45;resize:vertical}.banner-correction-dialog textarea:focus{border-color:#0873d1;outline:3px solid #0873d122}.banner-correction-help{display:flex;align-items:center;gap:6px;margin-top:7px;color:#718497;font-size:10px}.banner-correction-dialog .dialog-actions{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}
.banner-review-preview{display:flex;flex-direction:column}.banner-review-preview .banner-review-image{flex:1 1 0;min-height:0}.banner-review-preview .banner-review-image:last-child{margin-bottom:0}.banner-review-preview .banner-review-image img{width:100%;height:100%;max-height:none;object-fit:contain}
.banner-status{display:inline-flex;align-items:center;justify-content:center;min-width:86px;padding:5px 10px;border:1px solid transparent;border-radius:14px;font-size:10px;font-weight:800}.banner-status.banner-en-edición{border-color:#e6c764;background:#fff3cd;color:#765900}.banner-status.banner-en-revisión{border-color:#91c4ee;background:#e4f2ff;color:#075b9f}.banner-status.banner-para-corregir{border-color:#f1b28a;background:#fff0e6;color:#a4430b}.banner-status.banner-validado{border-color:#91d0ad;background:#e7f7ee;color:#117546}
.banner-correction-message{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:10px;margin:0 0 15px;padding:12px 14px;border:1px solid #efb083;border-radius:9px;background:#fff4ea;text-align:left}.banner-correction-message>i{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#f4d1b4;color:#a7440d;font-size:16px}.banner-correction-message small{display:block;margin-bottom:3px;color:#9b410e;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.banner-correction-message p{margin:0;color:#6f3b20;font-size:12px;line-height:1.45;white-space:pre-wrap}
.banner-review-correction{padding:13px 14px;border:1px solid #efb083;border-radius:9px;background:#fff4ea;color:#6f3b20}.banner-review-correction>div{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:#a7440d}.banner-review-correction>div i{font-size:17px}.banner-review-correction>div strong{font-size:11px;text-transform:uppercase;letter-spacing:.04em}.banner-review-correction p{max-height:190px;margin:0;overflow:auto;font-size:12px;line-height:1.5;white-space:pre-wrap}
.app-confirm-dialog{width:min(460px,calc(100vw - 32px));padding:0;border:0;border-radius:18px;background:#fff;box-shadow:0 25px 80px #102a4666;overflow:hidden;text-align:center}.app-confirm-dialog::backdrop{background:#102a468c;backdrop-filter:blur(4px)}.confirm-dialog-icon{display:grid;place-items:center;width:64px;height:64px;margin:28px auto 12px;border-radius:50%;background:#fff0f1;color:#d9233f;font-size:27px}.confirm-dialog-content{padding:0 30px}.confirm-dialog-content h2{margin:0;color:#173b60;font-size:20px}.confirm-dialog-content p{margin:9px 0 0;color:#657a8e;font-size:13px;line-height:1.55}.confirm-dialog-actions{display:flex;justify-content:center;gap:10px;margin-top:25px;padding:16px 24px 22px;background:#f7fafc;border-top:1px solid #e4edf4}.confirm-dialog-actions .btn{min-width:112px}.confirm-dialog-actions .btn.danger{background:#df3048;color:#fff;box-shadow:0 5px 13px #df304833}.confirm-dialog-actions .btn.danger:hover{background:#c8233b}
.pending-menu-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:7px;padding:0 5px;border-radius:99px;background:#df3048;color:#fff;font-size:10px;font-weight:900;line-height:18px;box-shadow:0 0 0 2px #fff3}
.table-select-all{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap}.table-select-all input{width:17px;height:17px;margin:0;accent-color:#075daf;cursor:pointer}.economic-sheet-toolbar #designa-download-selected{margin-left:auto;white-space:nowrap}.economic-sheet-toolbar #designa-download-selected:disabled{opacity:.55;cursor:not-allowed}@media(max-width:800px){.economic-sheet-toolbar #designa-download-selected{margin-left:0;width:100%}}
.designa-multi-upload-dialog{width:min(650px,94vw);padding:0;border:0;border-radius:16px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.designa-multi-upload-dialog::backdrop{background:#17324eaa;backdrop-filter:blur(3px)}.designa-multi-upload-body{padding:22px}.designa-multi-upload-body>p{margin:0 0 16px;color:var(--muted);line-height:1.5}.designa-multi-drop{display:grid;place-items:center;gap:6px;padding:28px 18px;border:2px dashed #7bb8e5;border-radius:12px;background:#f2f9ff;color:#16578e;text-align:center;cursor:pointer}.designa-multi-drop input{display:none}.designa-multi-drop i{font-size:34px;color:#0873d1}.designa-multi-drop span{font-size:12px;color:var(--muted)}.designa-multi-drop.dragover{border-color:#0873d1;background:#e2f2ff}.designa-multi-files{display:grid;gap:7px;max-height:180px;margin-top:14px;overflow:auto}.designa-multi-files>div{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.designa-multi-files i{color:#d92842;font-size:20px}.designa-multi-files span{display:grid;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.designa-multi-files small{color:var(--muted);font-size:11px}.designa-multi-result{margin-top:12px;color:#174b7c;font-size:13px}.designa-multi-result ul{margin:8px 0 0;padding-left:20px;color:#b02235}.designa-multi-upload-dialog .dialog-actions{justify-content:flex-end;margin-top:18px}
.economic-sheet-toolbar #designa-multi-upload{flex:0 0 auto;min-width:180px;white-space:nowrap}
.designa-delete-dialog{width:min(560px,94vw);padding:0;border:0;border-radius:16px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.designa-delete-dialog::backdrop{background:#17324eaa;backdrop-filter:blur(3px)}.designa-delete-body{padding:24px}.designa-delete-body>p{margin:0 0 18px;color:var(--muted);line-height:1.5}.designa-delete-body label{display:grid;gap:7px;color:#174b7c;font-weight:700}.designa-delete-body textarea{width:100%;min-height:130px;resize:vertical}.designa-delete-body .dialog-actions{justify-content:flex-end;margin-top:20px}.designa-delete-body .btn.danger{background:#df3447;color:#fff}
.management-task-button.is-locked{filter:grayscale(.7);opacity:.42;cursor:not-allowed;box-shadow:none}.management-task-button.is-locked:hover{transform:none}
.needs-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.needs-toolbar select{flex:0 0 145px;width:145px}.needs-toolbar>input{flex:1;min-width:220px}.needs-toolbar .economic-sheet-filters{flex:0 0 auto}.needs-table table{width:100%;table-layout:fixed}.needs-table th:nth-child(1){width:8%}.needs-table th:nth-child(2){width:13%}.needs-table th:nth-child(3){width:14%}.needs-table th:nth-child(4){width:17%}.needs-table th:nth-child(5){width:16%}.needs-table th:nth-child(6){width:12%}.needs-table th:nth-child(7){width:12%}.needs-table th:nth-child(8){width:8%}.needs-table td{vertical-align:middle}.needs-row{cursor:pointer}.needs-row:hover{background:#eef7ff}.needs-signed,.needs-pending{display:inline-flex;padding:5px 9px;border-radius:13px;font-size:10px;font-weight:800}.needs-signed{background:#e7f7ee;color:#117546}.needs-pending{background:#fff3cd;color:#785b00}.needs-table td.actions{text-align:center;white-space:nowrap}.needs-table td.actions .icon-btn{display:inline-grid;margin:1px}.needs-toolbar .economic-sheet-filters button{white-space:nowrap}@media(max-width:1050px){.needs-toolbar{flex-wrap:wrap}.needs-toolbar>input{order:3;flex-basis:100%}.needs-toolbar .economic-sheet-filters{margin-left:auto}}
/* Informes de necesidades: selección y firma múltiple. */
.needs-toolbar #needs-sign-selected{white-space:nowrap;min-width:190px}.needs-select-head{text-align:center}.needs-select-head label{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:4px;font-size:10px}.needs-select-head input{accent-color:#075daf}.needs-table th:nth-child(8){width:7%}.needs-table th:nth-child(9){width:8%}
.designa-drop[data-kind="report"]{display:none!important}.designa-drop[data-kind="report"][data-ready="1"]{display:grid!important}
.needs-view-signed{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border-radius:8px;background:#e7f7ee;color:#117546;font-size:12px;font-weight:800}
body[data-page="informes_necesidades"] #app{max-width:none}.needs-table{overflow-x:hidden}.needs-table table{width:100%;min-width:0;table-layout:fixed;white-space:normal}.needs-table th,.needs-table td{padding:10px 6px;overflow-wrap:anywhere}.needs-table th{font-size:11px;line-height:1.15}.needs-table th:nth-child(1){width:7%}.needs-table th:nth-child(2){width:12%}.needs-table th:nth-child(3){width:13%}.needs-table th:nth-child(4){width:16%}.needs-table th:nth-child(5){width:15%}.needs-table th:nth-child(6){width:10%}.needs-table th:nth-child(7){width:13%}.needs-table th:nth-child(8){width:6%}.needs-table th:nth-child(9){width:8%}.needs-table td.actions{display:table-cell;text-align:center}.needs-table td.actions .icon-btn{display:inline-grid;width:30px;height:30px;margin:1px}
dialog.management-designa-modal .designa-modal-actions{display:flex;justify-content:flex-end;flex:0 0 auto;padding:10px 20px 14px;background:#f3f7fb}
dialog.management-designa-modal .designa-body{height:calc(100% - 150px)}
dialog.management-designa-modal .designa-file-list>div{grid-template-columns:28px minmax(0,1fr) auto auto 32px}
dialog.management-designa-modal .designa-file-list>div .btn{white-space:nowrap}
@media(max-width:750px){dialog.management-designa-modal .designa-file-list>div{grid-template-columns:25px minmax(0,1fr);}.designa-file-list>div .btn,.designa-file-list>div .icon-btn{grid-row:2}.designa-file-list>div .btn{grid-column:auto}.designa-file-list>div .icon-btn{grid-column:auto}}
dialog.designa-signed-upload-dialog{width:min(620px,94vw);padding:0;border:0;border-radius:16px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}dialog.designa-signed-upload-dialog::backdrop{background:#17324eaa;backdrop-filter:blur(3px)}.designa-signed-upload-body{padding:22px}.designa-signed-upload-body>p{margin:0 0 16px;color:var(--muted);line-height:1.5}.designa-signed-drop{display:grid;place-items:center;gap:6px;padding:34px 18px;border:2px dashed #7bb8e5;border-radius:12px;background:#f2f9ff;color:#16578e;text-align:center;cursor:pointer}.designa-signed-drop input{display:none}.designa-signed-drop i{font-size:38px;color:#d52d43}.designa-signed-drop span{font-size:12px;color:var(--muted)}.designa-signed-drop.dragover{border-color:#0873d1;background:#e2f2ff}.designa-signed-upload-status{min-height:20px;margin-top:12px;color:#174b7c;font-size:12px}.designa-signed-upload-body .dialog-actions{justify-content:flex-end;margin-top:18px}
 body[data-page="informes_necesidades"] #app .needs-table th,body[data-page="informes_necesidades"] #app .needs-table td{padding:11px 12px}body[data-page="informes_necesidades"] #app .needs-table th{font-size:14px;line-height:1.2;font-weight:700}body[data-page="informes_necesidades"] #app .needs-table th:nth-child(7){width:11%}body[data-page="informes_necesidades"] #app .needs-table th:nth-child(8){width:8%}body[data-page="informes_necesidades"] #app .needs-table th:nth-child(9){width:8%}body[data-page="informes_necesidades"] #app .needs-select-head label{white-space:nowrap}
body[data-page="informes_necesidades"] #app .needs-table th:nth-child(2){width:9%}body[data-page="informes_necesidades"] #app .needs-table th:nth-child(4){width:19%}
body[data-page="gestion_formaciones"] .management-toolbar{align-items:stretch}.management-filter-group{display:flex;align-items:center;gap:8px;flex:1 1 100%;min-width:0;padding:5px 0}.management-filter-group>strong{flex:0 0 75px;color:var(--dark);font-size:12px}.management-status-filters{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));flex:1;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:#fff}.management-filter-group:last-child .management-status-filters{grid-template-columns:repeat(3,minmax(140px,1fr))}.management-status-filters button{padding:9px 10px;border:0;border-right:1px solid var(--line);background:#fff;color:var(--ink);font-size:12px;font-weight:700;cursor:pointer}.management-status-filters button:last-child{border-right:0}.management-status-filters button.active{background:var(--blue);color:#fff}@media(max-width:850px){.management-filter-group{flex-wrap:wrap}.management-filter-group>strong{flex-basis:100%}.management-status-filters,.management-filter-group:last-child .management-status-filters{grid-template-columns:1fr;width:100%}.management-status-filters button{border-right:0;border-bottom:1px solid var(--line)}.management-status-filters button:last-child{border-bottom:0}}
body[data-page="gestion_formaciones"] .authorization-drop>span{display:block;max-width:700px;padding:10px 14px;border:2px solid #d52d43;border-radius:7px;background:#ffe1e7;color:#a51d38;font-size:15px;font-weight:800;line-height:1.35;text-align:center}.authorization-drop>small{font-size:12px;font-weight:700}
body[data-page="gestion_formaciones"] .management-toolbar{flex-wrap:nowrap!important;gap:10px;overflow:hidden}.management-toolbar .management-filter-group{flex:0 1 auto;padding:0;gap:5px;white-space:nowrap}.management-toolbar .management-filter-group>strong{flex:0 0 auto;font-size:11px}.management-toolbar .management-status-filters{grid-template-columns:repeat(4,minmax(92px,1fr));flex:0 1 auto;min-width:0}.management-toolbar .management-filter-group:last-child .management-status-filters{grid-template-columns:repeat(3,minmax(105px,1fr))}.management-toolbar .management-status-filters button{padding:9px 8px;font-size:11px;white-space:nowrap}.management-toolbar .management-filter-group:last-child{margin-left:2px}@media(max-width:1250px){body[data-page="gestion_formaciones"] .management-toolbar{flex-wrap:wrap!important;overflow:visible}.management-toolbar .management-filter-group{flex:1 1 100%}.management-toolbar .management-status-filters,.management-toolbar .management-filter-group:last-child .management-status-filters{flex:1}}
dialog.management-authorization-modal .authorization-modal-actions{display:flex;justify-content:flex-end;padding:12px 21px;border-top:1px solid #cbddea;background:#fff}dialog.management-authorization-modal .authorization-modal-actions button{min-width:110px}
body[data-page="gestion_formaciones"] .management-status-filters button.active{background:#075daf;color:#fff}
body[data-page="gestion_formaciones"] .management-table table,body[data-page="gestion_formaciones"] .management-table thead,body[data-page="gestion_formaciones"] .management-table tbody{display:block;width:100%;height:auto!important;min-height:0!important}
body[data-page="gestion_formaciones"] .management-table tr{display:grid;grid-template-columns:1.05fr 1.4fr 1.8fr 2.1fr .9fr .9fr 1.15fr 1.15fr .65fr .75fr 1.1fr 1.05fr 1.05fr 1.2fr 1fr;width:100%}
body[data-page="gestion_formaciones"] .management-table th,body[data-page="gestion_formaciones"] .management-table td{width:auto!important;min-width:0}
body[data-page="gestion_formaciones"] .management-table thead tr{min-height:42px!important}
body[data-page="gestion_formaciones"] .management-table thead th{display:flex;align-items:center;height:auto!important;min-height:0!important;padding:4px 7px!important;font-size:13.5px!important;line-height:1.05!important;vertical-align:middle}
body[data-page="gestion_formaciones"] .management-table thead th:nth-child(n+5){justify-content:center;text-align:center}
body[data-page="gestion_formaciones"] .management-table tbody .empty{grid-column:1/-1}
.management-not-applicable{display:inline-block;padding:4px 7px;border-radius:8px;background:#eef1f4;color:#687888;font-size:10px;font-weight:800;line-height:1.15;text-align:center;white-space:nowrap}
dialog.management-space-request-modal{width:min(900px,95vw)}
.space-request-file{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 15px;border:1px solid #cbddea;border-radius:10px;background:#f7fbff}
.space-request-file.complete{grid-template-columns:34px minmax(0,1fr) auto auto 34px;border-color:#a9dbc2;background:#f1fbf6}
.space-request-file>i{color:#176bb0;font-size:28px}.space-request-file.complete>i{color:#d52d43}.space-request-file>span{display:grid;min-width:0;gap:3px}.space-request-file>span strong{overflow:hidden;color:#174b7c;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.space-request-file>span small{color:#70869a;font-size:10px}.space-request-file .btn{white-space:nowrap}
@media(max-width:700px){.space-request-file,.space-request-file.complete{grid-template-columns:30px minmax(0,1fr)}.space-request-file .btn{grid-row:2}.space-request-file .btn:first-of-type{grid-column:1}.space-request-file .btn:last-child{grid-column:2}}

/* Solicitud y tramitación de contratos menores. */
.designa-contract{grid-template-columns:minmax(280px,1fr) auto}.designa-contract .designa-contract-request:disabled{border-color:#aeb8c1;background:#aeb8c1;color:#f4f6f8;box-shadow:none;cursor:not-allowed;opacity:.75}.designa-contract-requested{display:inline-flex;align-items:center;gap:7px;color:#9a6d00;font-size:13px}.designa-contract-result{display:flex;align-items:center;justify-content:flex-end;gap:14px}.designa-contract-result>span{display:grid;gap:2px;text-align:right}.designa-contract-result>span small{color:#6b8092;font-size:9px;text-transform:uppercase}.designa-contract-result>span strong{color:#075daf;font-size:15px}.designa-contract-result .needs-signed{align-items:center;gap:5px}.designa-contract-complete{white-space:nowrap}
body[data-page="contratos_menores"] #app{max-width:none}.contract-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.contract-toolbar select{flex:0 0 160px;width:160px}.contract-toolbar>input{flex:1;min-width:320px}.contract-toolbar .economic-sheet-filters{flex:0 0 auto}.contract-table{overflow-x:auto}.contract-table table{width:100%;min-width:1180px;table-layout:fixed}.contract-table th:nth-child(1){width:8%}.contract-table th:nth-child(2){width:11%}.contract-table th:nth-child(3){width:11%}.contract-table th:nth-child(4){width:17%}.contract-table th:nth-child(5){width:13%}.contract-table th:nth-child(6){width:12%}.contract-table th:nth-child(7){width:9%}.contract-table th:nth-child(8){width:11%}.contract-table th:nth-child(9){width:8%}.contract-table td{vertical-align:middle;overflow-wrap:anywhere}.contract-row{cursor:pointer}.contract-row:hover{background:#eef7ff}.contract-table td.actions{text-align:center;white-space:nowrap}.contract-table td.actions .icon-btn{display:inline-grid;margin:1px}
.contract-minor-modal{width:min(820px,94vw);padding:0;border:0;border-radius:16px;overflow:hidden;box-shadow:0 28px 90px #172b3f80}.contract-minor-modal::backdrop{background:#17324eaa;backdrop-filter:blur(3px)}.contract-modal-body{display:grid;gap:18px;padding:22px}.contract-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.contract-facts>div{display:grid;gap:3px;padding:10px 12px;border:1px solid #d5e1ec;border-radius:8px;background:#f7fafc}.contract-facts>div:nth-child(4){grid-column:span 2}.contract-facts small{color:#6b8092;font-size:9px;font-weight:800;text-transform:uppercase}.contract-facts strong{color:#173d60;font-size:13px}.contract-number-field{display:grid;gap:6px;color:#174b7c;font-size:12px;font-weight:800}.contract-number-field input{min-height:40px}.contract-number-field input[readonly]{background:#f1f4f6;color:#4f6578}.contract-report-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:12px;border:1px solid #cbddea;border-radius:9px;background:#f7fbff}.contract-report-card>i{color:#d52d43;font-size:27px}.contract-report-card>span{display:grid;min-width:0}.contract-report-card strong{color:#174b7c;font-size:12px}.contract-report-card small{overflow:hidden;color:#718598;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.contract-report-card .btn{white-space:nowrap}.contract-modal-body .dialog-actions{justify-content:flex-end;margin-top:0}
@media(max-width:900px){.contract-toolbar{flex-wrap:wrap}.contract-toolbar>input{order:3;flex-basis:100%;min-width:0}.designa-contract{grid-template-columns:1fr}.designa-contract-result{align-items:flex-start;flex-direction:column}.designa-contract-result>span{text-align:left}.contract-facts{grid-template-columns:1fr}.contract-facts>div:nth-child(4){grid-column:auto}.contract-report-card{grid-template-columns:30px minmax(0,1fr)}.contract-report-card .btn{grid-row:2}.contract-report-card .btn:first-of-type{grid-column:1}.contract-report-card .btn:last-child{grid-column:2}}
dialog.management-authorization-modal .authorization-body .authorization-modal-actions{display:flex;justify-content:flex-end;padding:12px 0 0;margin-top:2px;background:transparent}dialog.management-authorization-modal .authorization-body .authorization-modal-actions button{min-width:110px}
dialog.management-authorization-modal .authorization-body .authorization-modal-actions{position:sticky;bottom:-18px;z-index:3;display:flex;justify-content:flex-end;padding:12px 0 18px;margin-top:2px;background:linear-gradient(transparent,#f5f8fb 18px)}dialog.management-authorization-modal .authorization-drop>small{display:none!important}dialog.management-authorization-modal .authorization-drop::after{content:'Solo PDF';font-size:12px;font-weight:700}
dialog.management-authorization-modal .authorization-body{position:relative;padding-bottom:72px}dialog.management-authorization-modal .authorization-body .authorization-modal-actions{position:absolute;right:21px;bottom:0;left:21px;z-index:4;box-sizing:border-box;display:flex;justify-content:flex-end;padding:12px 0;background:#f5f8fb}
dialog.management-cdd-modal .authorization-body{align-content:start}dialog.management-cdd-modal .authorization-download{padding:10px 14px}dialog.management-cdd-modal .authorization-download>div>i{font-size:25px}dialog.management-cdd-modal .authorization-speakers>div{padding:7px 10px;min-height:52px}dialog.management-cdd-modal .authorization-speakers>div>i{font-size:18px}
/* El botón de cierre de Autorizaciones permanece al pie del modal, no sobre el listado. */
dialog.management-authorization-modal .authorization-body{padding-bottom:18px}
dialog.management-authorization-modal .authorization-body .authorization-modal-actions{position:sticky;right:auto;bottom:0;left:auto;z-index:4;box-sizing:border-box;display:flex;justify-content:flex-end;padding:12px 0;background:#f5f8fb}
dialog.management-designa-modal{position:relative}
dialog.management-designa-modal .designa-modal-actions{position:absolute;right:0;bottom:0;left:0;z-index:5;display:flex;justify-content:flex-end;padding:10px 20px 14px;background:#f3f7fb;border-top:1px solid #cbddea}
dialog.management-designa-modal .designa-body{height:calc(100% - 150px);padding-bottom:76px}
dialog.management-cdd-modal{position:relative}
dialog.management-cdd-modal{display:flex;flex-direction:column}
dialog.management-cdd-modal .authorization-body{position:static;height:auto;min-height:0;flex:1;padding-bottom:72px}
dialog.management-cdd-modal .authorization-modal-actions{position:fixed!important;right:0;bottom:0;left:0;z-index:999;box-sizing:border-box;display:flex;justify-content:flex-end;padding:12px 21px;background:#f5f8fb;border-top:1px solid #cbddea}
dialog.management-authorization-modal[open]{display:flex;flex-direction:column}
dialog.management-authorization-modal>.authorization-head{flex:0 0 auto}
dialog.management-authorization-modal>.authorization-body{position:static;min-height:0;height:auto;flex:1;overflow:auto;padding-bottom:18px}
dialog.management-authorization-modal>.authorization-modal-actions,
dialog.management-cdd-modal>.authorization-modal-actions{position:static!important;right:auto;bottom:auto;left:auto;z-index:auto;box-sizing:border-box;display:flex;flex:0 0 auto;justify-content:flex-end;width:100%;padding:12px 21px;background:#f5f8fb;border-top:1px solid #cbddea}
dialog.management-designa-modal[open]{display:flex;flex-direction:column}
dialog.management-designa-modal>.designa-head{flex:0 0 auto}
dialog.management-designa-modal>.designa-body{min-height:0;height:auto;flex:1;overflow:auto;padding-bottom:18px}
dialog.management-designa-modal>.designa-modal-actions{position:static!important;right:auto;bottom:auto;left:auto;z-index:auto;box-sizing:border-box;display:flex;flex:0 0 auto;justify-content:flex-end;width:100%;padding:12px 20px;background:#f3f7fb;border-top:1px solid #cbddea}
/* Solicitud de espacios: modal ajustado al contenido, sin zonas vacías de altura fija. */
dialog.management-space-request-modal[open]{display:flex;width:min(820px,94vw);height:fit-content!important;min-height:0!important;max-height:90vh;block-size:fit-content!important}
dialog.management-space-request-modal>.authorization-head{padding:14px 20px}
dialog.management-space-request-modal>.authorization-body{flex:0 1 auto;height:auto!important;min-height:0;max-height:calc(90vh - 145px);gap:10px;padding:14px 18px;overflow-y:auto}
dialog.management-space-request-modal .authorization-download{padding:11px 13px}
dialog.management-space-request-modal .authorization-empty{padding:14px 16px}
dialog.management-space-request-modal .authorization-drop{padding:12px}
dialog.management-space-request-modal>.authorization-modal-actions{padding:9px 18px}
/* Revisión de banners: mostrar ambos completos, reducidos y sin desplazamiento. */
body[data-page="banners"] .banner-review-preview{display:grid;grid-template-rows:auto minmax(0,1fr) auto minmax(0,1fr);overflow:hidden}
body[data-page="banners"] .banner-review-image{display:grid;place-items:center;min-height:0;margin-bottom:8px;overflow:hidden}
body[data-page="banners"] .banner-review-image:last-child{margin-bottom:0}
body[data-page="banners"] .banner-review-image img{display:block!important;width:auto!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important}
.banner-saved-preview-modal{width:min(1400px,98vw);height:96vh;max-height:96vh;overflow:hidden}
.banner-saved-preview-modal .modal-body{display:grid;grid-template-rows:minmax(0,1fr) auto;height:calc(96vh - 58px);max-height:none;overflow:hidden;padding:12px 20px}
.banner-saved-preview-modal .banner-saved{display:flex;min-height:0;flex-direction:column}
.banner-saved-preview-modal .banner-saved-check{display:none}
.banner-saved-preview-modal .banner-saved h3{font-size:18px}
.banner-saved-preview-modal .banner-saved>p{margin-bottom:8px}
.banner-saved-preview-grid{display:grid;min-height:0;flex:1;grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;text-align:left}
.banner-saved-preview-grid article{display:grid;min-height:0;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto minmax(0,1fr);gap:5px 9px;padding:7px 10px;border:1px solid #c8ddea;border-radius:10px;background:#f5f9fc}
.banner-saved-preview-grid article>strong{grid-column:1/-1;color:#174b7c;text-align:center}
.banner-saved-preview-grid img{display:block;width:auto;height:100%;max-width:100%;max-height:100%;grid-column:1;grid-row:2;justify-self:center;object-fit:contain;border:1px solid #d2e0eb;background:#fff}
.banner-saved-preview-grid article>div{display:flex;grid-column:2;grid-row:2;align-self:center;flex-direction:column;justify-content:center;gap:7px}
.banner-saved-preview-grid .btn{min-height:33px;padding:6px 11px;font-size:10px;text-decoration:none}
.banner-saved-preview-modal .banner-saved-actions{margin-top:8px;padding-top:8px}
.contract-table .contract-download-row{display:inline-grid;place-items:center;background:#e7f1fb;color:#075daf;text-decoration:none}
body[data-page="contratos_menores"] #app .contract-table{overflow-x:hidden}
body[data-page="contratos_menores"] #app .contract-table table{width:100%;min-width:0;table-layout:fixed;font-size:14px}
body[data-page="contratos_menores"] #app .contract-table th{padding:10px 6px;font-size:12px;line-height:1.15;white-space:normal}
body[data-page="contratos_menores"] #app .contract-table td{padding:10px 6px;white-space:normal;overflow-wrap:anywhere}
body[data-page="contratos_menores"] #app .contract-table th:nth-child(1){width:7%}body[data-page="contratos_menores"] #app .contract-table th:nth-child(2){width:8%}body[data-page="contratos_menores"] #app .contract-table th:nth-child(3){width:10%}body[data-page="contratos_menores"] #app .contract-table th:nth-child(4){width:15%}body[data-page="contratos_menores"] #app .contract-table th:nth-child(5){width:14%}body[data-page="contratos_menores"] #app .contract-table th:nth-child(6){width:11%}body[data-page="contratos_menores"] #app .contract-table th:nth-child(7){width:8%}body[data-page="contratos_menores"] #app .contract-table th:nth-child(8){width:9%}body[data-page="contratos_menores"] #app .contract-table th:nth-child(9){width:18%}
body[data-page="contratos_menores"] #app .contract-table td.actions{white-space:nowrap}
body[data-page="contratos_menores"] #app .contract-table td.actions{display:table-cell;text-align:center;vertical-align:middle}
body[data-page="contratos_menores"] #app .contract-table td.actions .icon-btn{width:32px;height:32px;padding:6px;font-size:13px}

/* Dashboard personal del asesor. */
body[data-page="dashboard"] #app{max-width:none;padding:26px clamp(20px,2vw,38px)}.dashboard-welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:22px 25px;border-radius:14px;background:linear-gradient(125deg,#063f7e,#0872c7);box-shadow:0 12px 30px #075daf25;color:#fff}.dashboard-welcome>div:first-child>span{font-size:13px;font-weight:700;opacity:.8}.dashboard-welcome h2{margin:3px 0 4px;font-size:25px}.dashboard-welcome p{margin:0;font-size:13px;opacity:.82}.dashboard-course{display:flex;align-items:center;gap:11px;padding:11px 15px;border:1px solid #ffffff40;border-radius:10px;background:#ffffff14}.dashboard-course>i{font-size:25px}.dashboard-course>span{display:grid;gap:2px;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.dashboard-course strong{font-size:15px;text-transform:none;letter-spacing:0}.dashboard-state-cards{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:11px;margin-bottom:18px}.dashboard-state-card{display:flex;min-height:82px;align-items:center;justify-content:space-between;gap:10px;padding:15px 16px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--dark);text-decoration:none;box-shadow:0 4px 15px #063b7a0b;transition:transform .15s,box-shadow .15s,border-color .15s}.dashboard-state-card:hover{border-color:#91b9d8;box-shadow:0 8px 22px #063b7a18;transform:translateY(-2px)}.dashboard-state-card>span{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:700}.dashboard-state-card>span i{color:#0873d1;font-size:19px}.dashboard-state-card>strong{font-size:25px}.dashboard-state-card.correction{border-color:#efc56b;background:#fffaf0}.dashboard-state-card.correction>span i,.dashboard-state-card.correction>strong{color:#b77500}.dashboard-state-card.rejected>span i,.dashboard-state-card.rejected>strong{color:#bd3045}.dashboard-state-card.approved>span i,.dashboard-state-card.approved>strong{color:#168954}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px}.dashboard-section{padding:0;overflow:hidden}.dashboard-section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 19px;border-bottom:1px solid var(--line)}.dashboard-section-head>div{display:flex;align-items:center;gap:11px}.dashboard-section-head>div>i{display:grid;place-items:center;width:37px;height:37px;border-radius:9px;background:#eaf4fd;color:#0873d1;font-size:18px}.dashboard-section-head span{display:grid;gap:2px}.dashboard-section-head h2{margin:0;color:var(--dark);font-size:16px}.dashboard-section-head p{margin:0;color:var(--muted);font-size:10px}.dashboard-section-head>a{color:#075daf;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}.dashboard-task-list,.dashboard-agenda-list{display:grid}.dashboard-task,.dashboard-milestone{display:grid;align-items:center;color:var(--ink);text-decoration:none;border-bottom:1px solid #e8eef3;transition:background .15s}.dashboard-task:last-child,.dashboard-milestone:last-child{border-bottom:0}.dashboard-task:hover,.dashboard-milestone:hover{background:#f2f8fd}.dashboard-task{grid-template-columns:39px minmax(0,1fr) auto 14px;gap:10px;padding:11px 16px}.dashboard-task>i:first-child{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#eef6fc;color:#0873d1;font-size:17px}.dashboard-task.urgent>i:first-child{background:#fff1d7;color:#bd7900}.dashboard-task>span{display:grid;min-width:0;gap:2px}.dashboard-task>span strong{font-size:12px}.dashboard-task>span small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.dashboard-task>b{display:grid;place-items:center;min-width:27px;height:27px;padding:0 7px;border-radius:14px;background:#e7f1fb;color:#075daf;font-size:12px}.dashboard-task.urgent>b{background:#ffe9bd;color:#975f00}.dashboard-task>i:last-child,.dashboard-milestone>i{color:#88a0b4;font-size:11px}.dashboard-milestone{grid-template-columns:75px minmax(0,1fr) 14px;gap:11px;padding:9px 15px}.dashboard-milestone time{display:grid;gap:1px;padding:6px 8px;border-left:3px solid #3186c8;border-radius:4px;background:#eef7ff}.dashboard-milestone time strong{color:#145d94;font-size:13px}.dashboard-milestone time span{color:#5c7890;font-size:9px;white-space:nowrap}.dashboard-milestone.soon time{border-color:#dc910b;background:#fff6df}.dashboard-milestone.soon time strong{color:#996300}.dashboard-milestone.overdue time{border-color:#cf3d52;background:#fff0f2}.dashboard-milestone.overdue time strong{color:#ad2437}.dashboard-milestone>span{display:grid;min-width:0;gap:3px}.dashboard-milestone>span>b{color:#526c82;font-size:9px;text-transform:uppercase}.dashboard-milestone>span>strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.dashboard-upcoming{margin-bottom:16px}.dashboard-upcoming-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:14px}.dashboard-upcoming-card{display:grid;min-width:0;gap:9px;padding:12px;border:1px solid #d5e1eb;border-radius:9px;background:#fbfdff;color:var(--ink);text-decoration:none;transition:.15s}.dashboard-upcoming-card:hover{border-color:#77acd4;background:#f0f8ff;transform:translateY(-1px)}.dashboard-upcoming-card>div{display:flex;align-items:center;justify-content:space-between;gap:5px}.dashboard-upcoming-card time{color:#075daf;font-size:12px;font-weight:800}.dashboard-upcoming-card>div span{padding:3px 6px;border-radius:10px;background:#e8f2fb;color:#4d6d87;font-size:9px}.dashboard-upcoming-card>strong{overflow:hidden;font-size:11px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.dashboard-upcoming-card>small{overflow:hidden;color:#a86b00;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.dashboard-upcoming-card.ready>small{color:#168954}.dashboard-progress-section{margin-bottom:4px}.dashboard-progress-table{border:0;border-radius:0;box-shadow:none}.dashboard-progress-table table{min-width:1120px}.dashboard-progress-table th{padding:10px 11px;font-size:10px}.dashboard-progress-table td{padding:10px 11px;font-size:11px;vertical-align:middle}.dashboard-progress-table tbody tr{cursor:pointer}.dashboard-progress-table tbody tr:hover{background:#eef7ff}.dashboard-progress-table td:first-child{display:grid;max-width:320px;gap:3px}.dashboard-progress-table td:first-child strong{color:#075daf;font-size:10px}.dashboard-progress-table td:first-child span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-progress-table .missing-date{color:#ad2437;font-size:10px;font-weight:700;white-space:nowrap}.dashboard-progress{display:flex;align-items:center;gap:7px;min-width:115px}.dashboard-progress>span{width:78px;height:7px;overflow:hidden;border-radius:5px;background:#dfe8ef}.dashboard-progress>span i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#0873d1,#20a56d)}.dashboard-progress>b{color:#47677f;font-size:10px}.dashboard-ready,.dashboard-pending{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:10px;font-size:9px;font-weight:800;white-space:nowrap}.dashboard-ready{background:#e7f7ee;color:#117546}.dashboard-pending{background:#fff3cd;color:#785b00}.dashboard-empty,.dashboard-no-course{display:grid;place-items:center;align-content:center;gap:7px;min-height:130px;padding:25px;color:var(--muted);text-align:center}.dashboard-empty i,.dashboard-no-course>i{color:#78a2c2;font-size:28px}.dashboard-no-course{min-height:320px}.dashboard-no-course h2,.dashboard-no-course p{margin:0}.dashboard-no-course h2{color:var(--dark);font-size:19px}.dashboard-no-course p{font-size:12px}
@media(max-width:1150px){.dashboard-state-cards{grid-template-columns:repeat(3,1fr)}.dashboard-upcoming-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.dashboard-welcome{align-items:flex-start;flex-direction:column}.dashboard-course{width:100%}.dashboard-columns{grid-template-columns:1fr}.dashboard-upcoming-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.dashboard-state-cards{grid-template-columns:repeat(2,1fr)}.dashboard-upcoming-grid{grid-template-columns:1fr}.dashboard-welcome{padding:18px}.dashboard-section-head{align-items:flex-start}.dashboard-section-head>a{display:none}}
/* Administración · Avisos Correo Electrónico */
.email-notice-blocks{display:grid;gap:22px;margin-top:22px}.email-notice-block{padding:0;overflow:hidden}.email-notice-block>header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,#063b7a,#0754a6);color:#fff}.email-notice-block>header small{display:block;margin-bottom:3px;color:#cfe3fa;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.email-notice-block>header h2{margin:0;font-size:20px}.email-notice-block>header>b{padding:6px 11px;border:1px solid #5f8fc1;border-radius:999px;background:#ffffff17;font-size:12px}.email-notice-block>div{display:grid}.email-notice-card{display:grid;grid-template-columns:155px minmax(300px,1fr) auto;gap:22px;align-items:center;padding:22px 24px;border-top:1px solid #dce5ee;background:#fff;transition:.2s}.email-notice-card:first-child{border-top:0}.email-notice-card.inactive{background:#f7f9fb}.email-notice-card.inactive .email-notice-copy{opacity:.65}.email-notice-status{align-self:start;display:grid;gap:9px}.email-notice-status em{width:max-content;padding:4px 8px;border-radius:5px;background:#eaf3fb;color:#0754a6;font-size:11px;font-style:normal;font-weight:700}.notice-switch{display:flex;align-items:center;gap:9px;cursor:pointer}.notice-switch input{position:absolute;opacity:0}.notice-switch span{position:relative;width:42px;height:23px;border-radius:20px;background:#9aaaba;transition:.2s}.notice-switch span:after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0004;transition:.2s}.notice-switch input:checked+span{background:#168954}.notice-switch input:checked+span:after{transform:translateX(19px)}.notice-switch input:disabled+span{opacity:.55;cursor:not-allowed}.notice-switch b{font-size:13px}.email-notice-copy h3{margin:0 0 9px;color:#172b3f;font-size:17px}.email-notice-copy p{margin:4px 0;color:#52687d;font-size:13px;line-height:1.5}.email-notice-copy p strong{color:#294b68}.email-notice-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.email-notice-actions .btn{padding:9px 12px}
.email-notice-modal{width:min(1180px,calc(100vw - 32px));max-width:none;padding:0;border:0;border-radius:14px;box-shadow:0 24px 70px #10283d66}.email-notice-modal::backdrop{background:#10283d99}.email-notice-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100vh - 40px)}.email-notice-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:20px 26px;border-bottom:1px solid #d5e1ec;background:#f8fafc}.email-notice-dialog>header span{color:#0754a6;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.email-notice-dialog>header h2{margin:3px 0 0;color:#172b3f;font-size:22px}.email-notice-dialog>header .notice-close{position:static}.email-notice-dialog-body{min-height:0;padding:20px 26px;overflow:auto}.notice-subject{display:grid;gap:6px;margin-bottom:14px;color:#294b68;font-weight:700}.notice-subject input{width:100%}.notice-subject input[readonly]{background:#f6f8fa;color:#40566c}.notice-variables{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:16px;padding:10px 12px;border-radius:7px;background:#eff5fb;color:#40566c;font-size:12px}.notice-variables code{padding:3px 7px;border:1px solid #bfd2e4;border-radius:5px;background:#fff;color:#0754a6;cursor:pointer}.notice-preview{display:block;width:100%;height:430px;border:1px solid #c9d7e4;border-radius:8px;background:#fff}.email-notice-dialog>footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 26px;border-top:1px solid #d5e1ec;background:#f8fafc}.notice-editor{border:1px solid #c9d7e4;border-radius:8px;overflow:hidden}.notice-editor-tabs{display:flex;gap:2px;padding:10px 12px 0;border-bottom:1px solid #c9d7e4;background:#f5f8fb}.notice-editor-tab{padding:9px 13px;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0;background:transparent;color:#40566c;font-weight:700;cursor:pointer}.notice-editor-tab.active{margin-bottom:-1px;border-color:#c9d7e4;background:#fff;color:#0754a6}.notice-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid #c9d7e4;background:#f9fbfd}.notice-toolbar select{width:150px;margin-right:2px}.notice-toolbar button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #c9d7e4;border-radius:5px;background:#fff;color:#294b68;cursor:pointer}.notice-toolbar button:hover{border-color:#0754a6;color:#0754a6}.notice-visual-editor,.notice-html-source,.notice-markdown-source{width:100%;height:390px;min-height:390px;padding:20px 26px;border:0;border-radius:0;background:#fff;color:#172b3f;font:15px/1.6 Arial,sans-serif;resize:vertical;outline:none}.notice-html-source,.notice-markdown-source{font-family:Consolas,"Courier New",monospace;font-size:13px;white-space:pre}.notice-visual-editor:focus{box-shadow:inset 0 0 0 2px #75a7db}.notice-visual-editor p:first-child{margin-top:0}
@media(max-width:850px){.email-notice-card{grid-template-columns:1fr;gap:13px}.email-notice-actions{justify-content:flex-start}.email-notice-modal{width:calc(100vw - 16px)}.notice-toolbar{overflow-x:auto;flex-wrap:nowrap}.notice-visual-editor,.notice-html-source,.notice-markdown-source{height:330px;min-height:330px}}
.email-notice-modal .notice-preview{height:560px;background:#f5f8fb}
.email-notice-modal{width:min(1400px,calc(100vw - 24px))}
.notice-edit-workspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:16px;align-items:start}.notice-live-preview{overflow:hidden;border:1px solid #c9d7e4;border-radius:8px;background:#f5f8fb}.notice-live-preview>header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #c9d7e4;background:#f9fbfd;color:#294b68}.notice-live-preview>header>i{display:grid;width:34px;height:34px;place-items:center;border-radius:7px;background:#e2edf9;color:#0754a6;font-size:17px}.notice-live-preview>header span{display:grid}.notice-live-preview>header small{color:#667789;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.notice-live-preview>header strong{font-size:14px}.notice-live-preview iframe{display:block;width:100%;height:500px;border:0;background:#f5f8fb}.notice-html-source{line-height:1.55;tab-size:2;overflow-wrap:normal;white-space:pre}
@media(max-width:1050px){.notice-edit-workspace{grid-template-columns:1fr}.notice-live-preview iframe{height:520px}}
.email-notice-blocks{gap:14px;margin-top:16px}.email-notice-block>header{padding:13px 20px}.email-notice-block>header small{margin-bottom:1px;font-size:10px}.email-notice-block>header h2{font-size:18px;line-height:1.2}.email-notice-block>header>b{padding:4px 9px}.email-notice-card{gap:16px;padding:14px 20px}.email-notice-status{gap:5px}.email-notice-copy h3{margin:0 0 5px;font-size:16px;line-height:1.25}.email-notice-copy p{margin:2px 0;font-size:13px;line-height:1.35}.email-notice-actions{gap:6px}.email-notice-actions .btn{padding:8px 11px}
