
:root{
  --navy:#0b2a45;
  --navy-2:#153d5d;
  --sky:#8ec7e8;
  --sky-soft:#eef7fc;
  --bg:#f7f9fb;
  --white:#ffffff;
  --ink:#152636;
  --muted:#6a7d8d;
  --line:#dfe7ed;
  --green:#3f8f6b;
  --amber:#c48a2c;
  --red:#b55353;
  --radius:14px;
  --shadow:0 14px 35px rgba(11,42,69,.07);
  --sidebar:230px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
a{text-decoration:none;color:inherit}
button,input{font:inherit}
.app{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr}
.sidebar{background:#fff;border-right:1px solid var(--line);padding:22px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.brand{font-weight:800;color:var(--navy);font-size:1.03rem;line-height:1.2;padding:4px 10px 22px}
.brand small{display:block;font-size:.72rem;color:#7890a2;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-top:4px}
.nav{display:grid;gap:5px}
.nav a{padding:11px 12px;border-radius:10px;color:#496173;font-size:.94rem;font-weight:600;display:flex;align-items:center;gap:10px}
.nav a:hover{background:#f4f8fa;color:var(--navy)}
.nav a.active{background:var(--sky-soft);color:var(--navy);font-weight:800}
.nav .dot{width:8px;height:8px;border-radius:50%;background:#b9c9d5}
.nav a.active .dot{background:var(--sky)}
.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:14px}
.user{padding:10px 12px;display:flex;align-items:center;gap:10px}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800}
.user div{font-size:.86rem}
.user small{display:block;color:var(--muted);margin-top:2px}
.main{min-width:0}
.topbar{height:68px;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}
.topbar-title{font-size:.92rem;color:var(--muted)}
.top-actions{display:flex;gap:10px}
.btn{border:0;border-radius:999px;padding:10px 16px;font-weight:700;cursor:pointer}
.btn-primary{background:var(--navy);color:#fff}
.btn-secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}
.content{padding:34px;max-width:1440px;margin:0 auto}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}
.eyebrow{font-size:.75rem;letter-spacing:.11em;text-transform:uppercase;color:#7c91a0;font-weight:800;margin-bottom:8px}
h1,h2,h3{margin:0;color:var(--navy);letter-spacing:-.03em}
h1{font-size:2rem}
h2{font-size:1.25rem}
h3{font-size:1rem}
.lead{color:var(--muted);margin:7px 0 0}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}
.metric{background:#fff;border:1px solid var(--line);padding:20px;border-radius:var(--radius)}
.metric .num{font-size:2rem;font-weight:800;color:var(--navy);line-height:1}
.metric .label{font-size:.88rem;color:var(--muted);margin-top:8px}
.metric .hint{font-size:.78rem;color:#8da0ae;margin-top:8px}
.grid-2{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.panel-head{padding:19px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.panel-body{padding:0 20px}
.action-row{display:grid;grid-template-columns:1fr auto;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}
.action-row:last-child{border-bottom:0}
.action-title{font-weight:800;color:var(--navy);margin-bottom:4px}
.action-meta{font-size:.86rem;color:var(--muted)}
.action-link{color:var(--navy);font-weight:800;font-size:.84rem;align-self:center}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.74rem;font-weight:800}
.badge.sky{background:var(--sky-soft);color:#2f6d91}
.badge.amber{background:#fff5e3;color:#9b6b21}
.badge.green{background:#edf7f2;color:#347858}
.badge.red{background:#faeeee;color:#974646}
.quick{display:grid;gap:10px;padding:18px}
.quick a{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;font-weight:700;color:var(--navy)}
.quick a:hover{border-color:#bcd5e5;background:#fbfdfe}
.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px;align-items:center}
.search{flex:1;max-width:520px}
.search input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.table-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:auto}
table{border-collapse:collapse;width:100%;min-width:900px}
th,td{text-align:left;padding:15px 16px;border-bottom:1px solid var(--line);font-size:.88rem}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#7a8d9c;background:#fbfcfd}
td strong{color:var(--navy)}
tr:last-child td{border-bottom:0}
.company-head{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:18px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.company-title h1{font-size:2.1rem}
.company-title p{margin:6px 0 0;color:var(--muted)}
.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow:auto}
.tabs a{padding:13px 0;color:#667c8d;font-weight:700;white-space:nowrap;position:relative}
.tabs a.active{color:var(--navy)}
.tabs a.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--sky)}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.info-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.info-card .label{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:#8295a4;font-weight:800}
.info-card .value{margin-top:8px;font-weight:800;color:var(--navy)}
.list{background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.list-row{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line);align-items:center}
.list-row:last-child{border-bottom:0}
.list-row .muted{color:var(--muted);font-size:.84rem}
.mobile-toggle{display:none}
@media(max-width:1050px){
  .metrics{grid-template-columns:repeat(2,1fr)}
  .grid-2{grid-template-columns:1fr}
  .info-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  :root{--sidebar:0px}
  .app{display:block}
  .sidebar{position:fixed;left:0;top:0;width:240px;transform:translateX(-100%);transition:.2s;z-index:50;box-shadow:var(--shadow)}
  .sidebar.open{transform:translateX(0)}
  .mobile-toggle{display:block;background:none;border:0;font-size:1.3rem;color:var(--navy)}
  .topbar{padding:0 16px}
  .content{padding:22px 16px}
  .metrics{grid-template-columns:1fr 1fr}
  .page-head,.company-head{align-items:flex-start;flex-direction:column}
  .info-grid{grid-template-columns:1fr}
  .list-row{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .metrics{grid-template-columns:1fr}
}


/* v0.2 — navegación y estados limpios */
.topbar-left{display:flex;align-items:center;gap:12px}
.nav-icon{width:18px;display:inline-flex;justify-content:center;color:#8ca2b2;font-size:1rem}
.nav a.active .nav-icon{color:var(--navy)}
.nav-group{display:grid;gap:3px}
.nav-parent{width:100%;border:0;background:transparent;padding:11px 12px;border-radius:10px;color:#496173;font-size:.94rem;font-weight:700;display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.nav-parent>span:first-child{display:flex;align-items:center;gap:10px}
.nav-parent:hover,.nav-parent.active-parent{background:#f4f8fa;color:var(--navy)}
.chevron{transition:transform .18s ease;font-size:1rem}
.nav-parent[aria-expanded="false"] .chevron{transform:rotate(-90deg)}
.nav-submenu{display:none;padding-left:38px;gap:3px}
.nav-submenu.open{display:grid}
.nav-submenu a{padding:9px 10px;font-size:.88rem}
.nav-submenu a.active{background:var(--sky-soft)}
.page-head.compact{align-items:flex-start}
.panel-subtitle{margin:5px 0 0;color:var(--muted);font-size:.86rem}
.text-link{font-size:.84rem;font-weight:800;color:var(--navy)}
.today-panel{min-height:300px}
.empty-state{min-height:260px;padding:42px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.empty-state .empty-icon{width:42px;height:42px;border-radius:50%;background:var(--sky-soft);display:flex;align-items:center;justify-content:center;color:var(--navy);font-weight:900;margin-bottom:14px}
.empty-state h3{font-size:1.05rem}
.empty-state p{max-width:500px;margin:8px 0 0;color:var(--muted);line-height:1.55;font-size:.9rem}
.filter-row{display:flex;gap:8px;overflow:auto;margin-bottom:16px;padding-bottom:2px}
.filter{border:1px solid var(--line);background:#fff;color:#64798a;border-radius:999px;padding:9px 13px;font-weight:700;font-size:.84rem;white-space:nowrap;cursor:pointer}
.filter.active{background:var(--navy);border-color:var(--navy);color:#fff}
@media(max-width:760px){
  .panel-head{align-items:flex-start;gap:12px}
}

/* ========================================================================== */
/* IRIS                                                                       */
/* ========================================================================== */
.iris-root{position:fixed;right:24px;bottom:24px;z-index:1000;font-family:inherit}
.iris-launcher{height:54px;border:0;border-radius:999px;background:var(--navy);color:#fff;display:flex;align-items:center;gap:9px;padding:0 18px 0 8px;box-shadow:0 18px 42px rgba(11,42,69,.24);cursor:pointer;font-weight:800;letter-spacing:.02em;transition:transform .18s ease,box-shadow .18s ease}
.iris-launcher:hover{transform:translateY(-2px);box-shadow:0 22px 48px rgba(11,42,69,.3)}
.iris-launcher-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#bfe6fa,#79b9dd);color:var(--navy);font-size:1.05rem;font-weight:900}
.iris-launcher-label{font-size:.86rem}
.iris-panel{position:absolute;right:0;bottom:66px;width:min(380px,calc(100vw - 32px));height:min(580px,calc(100vh - 120px));background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 28px 70px rgba(11,42,69,.22);display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(12px) scale(.98);transform-origin:bottom right;transition:opacity .18s ease,transform .18s ease}
.iris-panel.open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
.iris-header{height:68px;flex:0 0 68px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfdfe)}
.iris-identity{display:flex;align-items:center;gap:11px}
.iris-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900}
.iris-identity strong{display:block;color:var(--navy);font-size:.93rem}
.iris-identity small{display:block;color:var(--muted);font-size:.72rem;margin-top:2px}
.iris-close{border:0;background:transparent;color:#7d909e;width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:1.45rem;line-height:1}
.iris-close:hover{background:#f2f6f8;color:var(--navy)}
.iris-messages{flex:1;overflow:auto;padding:18px 16px;display:flex;flex-direction:column;gap:10px;background:#fbfcfd;scroll-behavior:smooth}
.iris-message{display:flex;max-width:88%}
.iris-message-user{align-self:flex-end;justify-content:flex-end}
.iris-message-assistant{align-self:flex-start}
.iris-bubble{white-space:pre-wrap;overflow-wrap:anywhere;padding:11px 13px;border-radius:15px;font-size:.88rem;line-height:1.48}
.iris-message-user .iris-bubble{background:var(--navy);color:#fff;border-bottom-right-radius:5px}
.iris-message-assistant .iris-bubble{background:#fff;color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:5px;box-shadow:0 5px 16px rgba(11,42,69,.04)}
.iris-thinking .iris-bubble{color:var(--muted);font-style:italic}
.iris-form{flex:0 0 auto;display:flex;align-items:flex-end;gap:8px;padding:12px 12px 8px;background:#fff;border-top:1px solid var(--line)}
.iris-input{flex:1;resize:none;min-height:42px;max-height:112px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#f9fbfc;color:var(--ink);outline:none;font:inherit;font-size:.88rem;line-height:1.4}
.iris-input:focus{border-color:#9ecae2;background:#fff;box-shadow:0 0 0 3px rgba(142,199,232,.15)}
.iris-send{width:42px;height:42px;flex:0 0 42px;border:0;border-radius:12px;background:var(--navy);color:#fff;cursor:pointer;font-size:1.05rem;font-weight:900}
.iris-send:disabled{opacity:.45;cursor:default}
.iris-note{padding:0 14px 11px;background:#fff;color:#95a5b1;font-size:.66rem;text-align:center}
@media(max-width:760px){
  .iris-root{right:16px;bottom:16px}
  .iris-launcher{height:50px;padding-right:14px}
  .iris-launcher-mark{width:36px;height:36px}
  .iris-panel{position:fixed;left:12px;right:12px;bottom:76px;width:auto;height:min(610px,calc(100vh - 96px));border-radius:18px}
}

/* ========================================================================== */
/* V0.3 — FORMADORES                                                         */
/* ========================================================================== */
.trainers-head{gap:24px}.trainers-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{border:0;border-radius:11px;padding:11px 15px;font:inherit;font-size:.84rem;font-weight:800;cursor:pointer;transition:.16s}.btn:disabled{opacity:.42;cursor:default}.btn.primary{background:var(--navy);color:#fff}.btn.secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}.btn.ghost{background:#f6f9fa;color:#78909f}.trainer-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.trainer-stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:17px 18px}.trainer-stat span,.trainer-stat small{display:block;color:var(--muted)}.trainer-stat span{font-size:.73rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.trainer-stat strong{display:block;font-size:1.85rem;color:var(--navy);margin:7px 0 3px}.trainer-stat small{font-size:.76rem}.sync-status{font-size:.75rem;font-weight:800;color:#6f8494;background:#f2f6f8;padding:7px 10px;border-radius:999px}.trainer-toolbar{display:flex;gap:10px;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.trainer-search{max-width:520px;flex:1}.trainer-empty{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:45px 24px}.trainer-empty-icon{width:48px;height:48px;border-radius:16px;background:var(--sky-soft);display:grid;place-items:center;color:var(--navy);font-size:1.4rem;font-weight:900}.trainer-empty h3{margin:14px 0 6px;color:var(--navy)}.trainer-empty p{max-width:520px;color:var(--muted);font-size:.9rem;line-height:1.55;margin:0 0 18px}.trainer-table-wrap{border:0;border-radius:0}.trainer-table{min-width:980px}.trainer-table td small{display:block;color:var(--muted);font-size:.73rem;margin-top:4px}.mini-badge{display:inline-flex;min-width:34px;justify-content:center;border-radius:999px;padding:5px 8px;font-size:.72rem;font-weight:850}.mini-badge.yes{background:#edf7f2;color:#327356}.mini-badge.no{background:#f3f5f6;color:#83939e}.import-warnings{margin:16px 20px 0;padding:13px 14px;border-radius:11px;background:#fff8e8;border:1px solid #f1dfad;display:flex;gap:8px;flex-direction:column;color:#725a21}.import-warnings span{font-size:.82rem;line-height:1.45}.trainer-note-panel{margin-top:18px}.trainer-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:20px}.trainer-flow>div{display:flex;gap:11px;padding:8px 16px;border-right:1px solid var(--line)}.trainer-flow>div:last-child{border-right:0}.trainer-flow b{width:27px;height:27px;flex:0 0 27px;border-radius:50%;background:var(--sky-soft);display:grid;place-items:center;color:var(--navy);font-size:.75rem}.trainer-flow span strong,.trainer-flow span small{display:block}.trainer-flow span strong{color:var(--navy);font-size:.84rem}.trainer-flow span small{color:var(--muted);font-size:.74rem;line-height:1.4;margin-top:3px}.import-modal{position:fixed;inset:0;z-index:1200;display:none;align-items:center;justify-content:center;padding:22px}.import-modal.open{display:flex}.import-backdrop{position:absolute;inset:0;background:rgba(7,28,44,.55);backdrop-filter:blur(5px)}.import-dialog{position:relative;width:min(620px,100%);background:#fff;border-radius:20px;padding:34px;box-shadow:0 28px 80px rgba(7,28,44,.24)}.import-dialog h2{font-size:2.1rem;color:var(--navy);margin:8px 0 12px;letter-spacing:-.035em}.import-dialog>p{color:var(--muted);line-height:1.6;font-size:.92rem}.modal-close{position:absolute;right:15px;top:15px;width:38px;height:38px;border:0;border-radius:50%;background:#f2f6f8;color:var(--navy);font-size:1.4rem;cursor:pointer}.file-drop{width:100%;margin-top:22px;border:1.5px dashed #bcd4e2;background:#f8fbfc;border-radius:16px;padding:30px;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--navy);cursor:pointer}.file-drop.dragging{background:#eef8fc;border-color:#76b7d8}.file-drop-icon{font-size:1.65rem}.file-drop small{color:var(--muted)}.import-rule{display:grid;gap:4px;margin-top:17px;padding:13px 14px;border-radius:11px;background:#f4f7f9}.import-rule b{font-size:.76rem;color:var(--navy)}.import-rule span{font-size:.79rem;color:var(--muted)}
@media(max-width:1000px){.trainer-stats{grid-template-columns:1fr 1fr}.trainer-flow{grid-template-columns:1fr 1fr}.trainer-flow>div:nth-child(2){border-right:0}.trainer-flow>div{border-bottom:1px solid var(--line)}}
@media(max-width:760px){.trainers-head-actions{width:100%}.trainers-head-actions .btn{flex:1}.trainer-toolbar{flex-direction:column}.trainer-search{max-width:none}.trainer-flow{grid-template-columns:1fr}.trainer-flow>div{border-right:0}.trainer-stats{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.trainer-stats{grid-template-columns:1fr}.import-dialog{padding:28px 20px}.trainers-head-actions{display:grid;grid-template-columns:1fr}.trainer-head-actions .btn{width:100%}}

/* v0.4 — acciones de Formadores unificadas bajo la vista previa */
.trainers-head{align-items:flex-start}
.trainer-empty{min-height:300px;margin:0}
.trainer-empty p{margin-bottom:0}
.trainer-actions-bottom{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--line);background:#fff;border-radius:0 0 var(--radius) var(--radius)}
@media(max-width:760px){.trainer-actions-bottom{justify-content:stretch}.trainer-actions-bottom .btn{flex:1}}
@media(max-width:480px){.trainer-actions-bottom{display:grid;grid-template-columns:1fr}.trainer-actions-bottom .btn{width:100%}}

/* v0.5 — flujo de importación en dos pasos */
.trainer-empty[hidden], .trainer-results[hidden], .import-warnings[hidden]{display:none!important}
.trainer-results:not([hidden]){display:block}
.trainer-actions-bottom{align-items:center}
#confirmImport{min-width:170px}
@media(max-width:760px){
  .trainer-actions-bottom{display:grid;grid-template-columns:1fr 1fr}
  .trainer-actions-bottom #confirmImport{grid-column:1/-1}
}
@media(max-width:480px){
  .trainer-actions-bottom{grid-template-columns:1fr}
  .trainer-actions-bottom #confirmImport{grid-column:auto}
}

/* Management authentication */

.import-success{margin:0 16px 16px;padding:13px 15px;border-radius:11px;background:#edf8f2;color:#276447;font-size:.9rem}.import-success strong{display:block;margin-bottom:3px}


/* v0.7 · Acceso privado — misma experiencia visual que el panel del bar */
[hidden]{display:none !important}

.auth-locked body > .app{visibility:hidden}
.auth-pending #iris-persistent-root,
.auth-locked #iris-persistent-root{display:none!important}

.ms-auth-shell{
  position:fixed;
  inset:0;
  z-index:10000;
  background:#ece8df;
  overflow:auto;
}

.ms-auth-view{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:18px;
  background:#ece8df;
}

.ms-auth-card{
  width:min(440px,100%);
  padding:34px 30px;
  background:#fff;
  border:1px solid #ddd7cc;
  border-radius:20px;
  box-shadow:0 18px 45px rgba(40,35,28,.12);
  text-align:center;
  color:#1d1d1b;
}

.ms-auth-logo{
  width:62px;
  height:62px;
  margin:0 auto 18px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:#202020;
  color:#fff;
  font-family:Georgia,serif;
  font-size:25px;
  font-weight:700;
}

.ms-auth-eyebrow{
  margin:0 0 6px;
  color:#6f4e37;
  font-size:10px;
  font-weight:900;
  letter-spacing:.17em;
}

.ms-auth-card h1{
  margin:0;
  font-family:Georgia,serif;
  font-size:37px;
  font-weight:500;
  color:#1d1d1b;
}

.ms-auth-intro{
  margin:9px 0 23px;
  color:#777268;
  font-size:13px;
  line-height:1.5;
}

.ms-auth-card form{text-align:left}

.ms-auth-card label{
  display:grid;
  gap:6px;
  margin-bottom:13px;
  color:#1d1d1b;
  font-size:11px;
  font-weight:800;
}

.ms-auth-card input{
  width:100%;
  height:47px;
  padding:0 12px;
  border:1px solid #d7d0c4;
  border-radius:9px;
  outline:none;
  background:#fff;
  color:#1d1d1b;
  font:inherit;
}

.ms-auth-card input:focus{
  border-color:#9c8e80;
  box-shadow:0 0 0 3px rgba(111,78,55,.08);
}

.ms-pw{position:relative}

.ms-pw input{padding-right:70px}

.ms-pw button{
  position:absolute;
  right:6px;
  top:6px;
  height:35px;
  padding:0 10px;
  border:0;
  border-radius:7px;
  background:#eee9df;
  color:#3d3934;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}

.ms-auth-primary{
  width:100%;
  height:48px;
  border:0;
  border-radius:9px;
  background:#202020;
  color:#fff;
  font-weight:900;
  cursor:pointer;
}

.ms-auth-primary:disabled{opacity:.6;cursor:wait}

.ms-auth-link{
  width:100%;
  margin-top:12px;
  border:0;
  background:transparent;
  color:#5e574f;
  font-size:11px;
  font-weight:800;
  text-decoration:underline;
  cursor:pointer;
}

.ms-auth-msg{
  min-height:18px;
  margin:3px 0 7px;
  font-size:10.5px;
  line-height:1.4;
}

.ms-auth-msg.error{color:#a64036}
.ms-auth-msg.success{color:#39733c}

.ms-auth-tiny{
  margin:14px 0 0;
  color:#8c857b;
  font-size:9.5px;
}

.logout-btn{
  border:1px solid var(--line);
  background:#fff;
  color:var(--navy);
  border-radius:9px;
  padding:8px 12px;
  font-weight:700;
  cursor:pointer;
}

@media(max-width:720px){
  .ms-auth-card{padding:28px 20px}
}

/* v0.8 · Evita el parpadeo del login entre páginas mientras Supabase recupera la sesión */
.auth-pending body > .app{visibility:hidden}


/* v0.9 · Geolocalización automática y navegación más ágil */
.geo-attribution{
  display:block;
  margin:10px 10px 0;
  color:#8797a2;
  font-size:9px;
  line-height:1.35;
  text-decoration:none;
}
.geo-attribution:hover{text-decoration:underline}

.import-success-geo{
  display:block;
  margin-top:4px;
  color:#567062;
  font-size:.82rem;
}


/* ========================================================================== */
/* V0.10 — SOLICITUDES + DECISIÓN + TOP 3                                   */
/* ========================================================================== */

.requests-page-head{align-items:center}
.requests-summary{
  flex:0 0 auto;
  padding:8px 12px;
  border-radius:999px;
  background:#eef5f8;
  color:#6b8190;
  font-size:.78rem;
  font-weight:800;
}
.requests-panel{min-height:280px}
.requests-loading{
  min-height:260px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:var(--muted);
}
.request-spinner{
  width:18px;height:18px;border-radius:50%;
  border:2px solid #dbe7ee;border-top-color:var(--navy);
  animation:request-spin .75s linear infinite
}
@keyframes request-spin{to{transform:rotate(360deg)}}

.requests-error,.top3-error{
  margin:20px;
  padding:16px 18px;
  border:1px solid #efcaca;
  background:#fff4f4;
  color:#8f4545;
  border-radius:12px;
  display:grid;
  gap:5px;
}
.requests-error span,.top3-error span{font-size:.84rem;line-height:1.5}

.requests-list{display:block}
.request-row{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:#fff;
  padding:17px 20px;
  display:grid;
  grid-template-columns:minmax(270px,1.55fr) 1fr .55fr .8fr 1fr 34px;
  gap:18px;
  align-items:center;
  text-align:left;
  cursor:pointer;
  color:var(--ink);
}
.request-row:last-child{border-bottom:0}
.request-row:hover{background:#f9fbfc}
.request-main,.request-cell{min-width:0}
.request-main strong,.request-main small,.request-cell small,.request-cell b{display:block}
.request-main strong{color:var(--navy);font-size:.94rem}
.request-main small{margin-top:5px;color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.request-cell small{color:#8a9aa6;font-size:.67rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;margin-bottom:5px}
.request-cell b{color:#334b5e;font-size:.79rem;font-weight:750}
.request-row-arrow{color:#8ca4b4;font-size:1.1rem;justify-self:end}
.requests-empty{min-height:260px}

body.modal-open{overflow:hidden}
.request-modal{position:fixed;inset:0;z-index:1500;display:none;align-items:center;justify-content:center;padding:22px}
.request-modal.open{display:flex}
.request-modal-backdrop{position:absolute;inset:0;background:rgba(9,28,43,.58);backdrop-filter:blur(6px)}
.request-dialog{
  position:relative;
  z-index:1;
  width:min(1020px,100%);
  max-height:min(890px,calc(100vh - 42px));
  background:#fff;
  border-radius:24px;
  box-shadow:0 28px 90px rgba(7,28,44,.28);
  overflow:hidden;
}
.request-dialog-scroll{max-height:inherit;overflow:auto;padding:36px 42px 40px}
.request-close{
  position:absolute;right:18px;top:18px;z-index:5;
  width:42px;height:42px;border:0;border-radius:50%;
  background:#eef4f7;color:var(--navy);font-size:1.65rem;cursor:pointer;
}
.request-detail-head{display:flex;justify-content:space-between;gap:24px;padding-right:52px;margin-bottom:24px}
.request-detail-head h2{font-size:2.15rem;max-width:720px}
.request-detail-head p{margin:7px 0 0;color:var(--muted);font-size:.9rem}
.request-state{
  align-self:flex-start;
  background:#eef7fc;color:#2f6d91;
  border-radius:999px;padding:7px 11px;font-size:.73rem;font-weight:850;
}
.request-state[data-state="ganada"]{background:#edf7f2;color:#347858}
.request-state[data-state="perdida"],
.request-state[data-state="cancelada"]{background:#faeeee;color:#974646}

.request-detail-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.request-detail-item{
  min-height:78px;
  padding:14px 15px;
  background:#f7fafb;
  border:1px solid #edf2f5;
  border-radius:12px;
}
.request-detail-item span,.request-detail-item strong{display:block}
.request-detail-item span{
  color:#8295a4;font-size:.65rem;text-transform:uppercase;
  letter-spacing:.055em;font-weight:800;margin-bottom:7px;
}
.request-detail-item strong{
  color:#29445a;font-size:.8rem;line-height:1.4;overflow-wrap:anywhere;
}

.request-notes{
  margin-top:12px;padding:15px 17px;
  border:1px solid #e4edf2;border-radius:12px;
}
.request-notes span{
  display:block;color:#7b909f;font-size:.67rem;text-transform:uppercase;
  letter-spacing:.055em;font-weight:800;margin-bottom:7px;
}
.request-notes p{margin:0;color:#40596b;font-size:.84rem;line-height:1.55}

.request-decision,.request-branch{
  margin-top:28px;padding-top:26px;border-top:1px solid var(--line);
}
.request-section-heading{text-align:center;margin-bottom:18px}
.request-section-heading h3{font-size:1.28rem;margin-top:3px}
.request-section-heading p{margin:6px auto 0;max-width:650px;color:var(--muted);font-size:.82rem;line-height:1.5}

.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.decision-card{
  width:100%;min-height:112px;
  border:1px solid #dce7ed;background:#fff;border-radius:16px;
  padding:19px;
  display:grid;grid-template-columns:48px 1fr 22px;gap:14px;align-items:center;
  text-align:left;cursor:pointer;color:var(--ink);
  transition:.15s ease;
}
.decision-card:hover{border-color:#9dc7dd;background:#f8fcfe;transform:translateY(-1px)}
.decision-icon{
  width:48px;height:48px;border-radius:14px;background:var(--navy);
  color:#fff;display:grid;place-items:center;font-weight:900;font-size:.83rem
}
.decision-card strong,.decision-card small{display:block}
.decision-card strong{color:var(--navy);font-size:.94rem;margin-bottom:5px}
.decision-card small{color:var(--muted);line-height:1.45;font-size:.76rem}
.decision-card>b{font-size:1.15rem;color:#7f9aaa}

.branch-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px}
.branch-head>div{flex:1}
.branch-head h3{font-size:1.2rem;margin-top:3px}
.branch-head p{margin:5px 0 0;color:var(--muted);font-size:.8rem}
.branch-back{
  flex:0 0 auto;border:0;background:#f2f6f8;color:var(--navy);
  padding:8px 10px;border-radius:9px;font-weight:800;font-size:.75rem;cursor:pointer
}

.self-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.self-plan-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}
.self-plan-card span,.self-plan-card strong{display:block}
.self-plan-card span{font-size:.67rem;color:#8294a2;text-transform:uppercase;letter-spacing:.05em;font-weight:800;margin-bottom:6px}
.self-plan-card strong{font-size:.82rem;color:#29445a}
.branch-note{
  margin-top:12px;padding:12px 14px;border-radius:10px;
  background:#f5f8fa;color:#6b7f8e;font-size:.77rem;line-height:1.5
}

.top3-loading{
  padding:30px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted)
}
.top3-list{display:grid;gap:11px}
.candidate-card{
  position:relative;
  display:grid;grid-template-columns:48px 1fr;gap:15px;
  border:1px solid var(--line);border-radius:15px;background:#fff;padding:17px;
}
.candidate-card.best{border-color:#9fcde4;background:#fbfeff;box-shadow:0 8px 22px rgba(11,42,69,.055)}
.candidate-rank{
  width:42px;height:42px;border-radius:13px;background:#edf5f9;color:var(--navy);
  display:grid;place-items:center;font-weight:900;font-size:1.05rem
}
.candidate-card.best .candidate-rank{background:var(--navy);color:#fff}
.candidate-head{display:flex;justify-content:space-between;gap:14px}
.candidate-kicker{
  display:block;color:#6fa7c7;font-size:.61rem;letter-spacing:.08em;
  font-weight:900;margin-bottom:4px
}
.candidate-head h4{margin:0;color:var(--navy);font-size:1rem}
.candidate-head p{margin:3px 0 0;color:var(--muted);font-size:.77rem}
.candidate-distance{text-align:right;flex:0 0 auto}
.candidate-distance strong,.candidate-distance small{display:block}
.candidate-distance strong{color:var(--navy);font-size:1rem}
.candidate-distance small{color:#8b9da9;font-size:.65rem;margin-top:2px}
.candidate-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}
.candidate-badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.66rem;font-weight:850}
.candidate-badge.good{background:#edf7f2;color:#337759}
.candidate-badge.warn{background:#fff5e3;color:#91651e}
.candidate-badge.neutral{background:#f1f5f7;color:#647b8b}
.candidate-reason{display:grid;gap:2px;margin-top:11px}
.candidate-reason strong{font-size:.76rem;color:#345267}
.candidate-reason span{font-size:.7rem;color:#8697a3;line-height:1.4}
.candidate-contact{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid #edf1f3;color:#667d8d;font-size:.7rem}

@media(max-width:1100px){
  .request-row{grid-template-columns:1.45fr .9fr .5fr .75fr 30px}
  .request-created{display:none}
  .request-detail-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .request-row{grid-template-columns:1fr auto;gap:10px}
  .request-row .request-cell{display:none}
  .request-row-arrow{grid-column:2;grid-row:1}
  .request-dialog-scroll{padding:30px 18px 28px}
  .request-detail-head{padding-right:42px;flex-direction:column;gap:10px}
  .request-detail-head h2{font-size:1.65rem}
  .request-detail-grid{grid-template-columns:1fr 1fr}
  .decision-grid{grid-template-columns:1fr}
  .self-plan-grid{grid-template-columns:1fr 1fr}
  .request-modal{padding:8px}
  .request-dialog{border-radius:18px;max-height:calc(100vh - 16px)}
}
@media(max-width:480px){
  .request-detail-grid,.self-plan-grid{grid-template-columns:1fr}
  .candidate-card{grid-template-columns:38px 1fr;padding:13px}
  .candidate-rank{width:36px;height:36px}
}


/* ========================================================================== */
/* V0.11 — SELECCIÓN COMPACTA DE FORMADORES                                  */
/* ========================================================================== */

.trainer-branch-head{margin-bottom:12px}
.trainer-legend{
  display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;
  margin:-4px 0 11px;color:#8293a0;font-size:.62rem
}
.trainer-legend>span{display:inline-flex;align-items:center;gap:4px}
.trainer-legend .trainer-icon{
  width:17px;height:17px;border-radius:5px;background:#edf2f4;color:#6c7e8a;
  display:inline-grid;place-items:center;font-style:normal;font-weight:900;font-size:.56rem
}

.trainer-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.trainer-compact-card{
  position:relative;
  min-width:0;
  border:1px solid #e0e8ed;
  border-radius:12px;
  background:#fff;
  padding:12px 12px 11px;
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:
    "name check"
    "location distance"
    "caps caps";
  gap:4px 9px;
  text-align:left;
  cursor:pointer;
  color:var(--ink);
  transition:border-color .14s ease,background .14s ease,box-shadow .14s ease;
}
.trainer-compact-card:hover{border-color:#b6cfdd;background:#fbfdfe}
.trainer-compact-card.selected{
  border-color:#6da9c9;
  background:#f7fcff;
  box-shadow:0 0 0 1px rgba(109,169,201,.12);
}
.trainer-check{
  grid-area:check;
  width:18px;height:18px;border-radius:50%;
  border:1px solid #cad8e0;color:#fff;
  display:grid;place-items:center;font-size:.62rem;font-weight:900
}
.trainer-compact-card.selected .trainer-check{background:var(--navy);border-color:var(--navy)}
.trainer-compact-name{
  grid-area:name;
  min-width:0;
  color:var(--navy);
  font-size:.78rem;
  font-weight:850;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.trainer-compact-location{
  grid-area:location;
  min-width:0;
  color:#7b8f9d;
  font-size:.64rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.trainer-compact-distance{
  grid-area:distance;
  color:#405d70;
  font-size:.67rem;
  font-weight:850;
  white-space:nowrap
}
.trainer-capabilities{grid-area:caps;display:flex;gap:4px;align-items:center;margin-top:5px}
.trainer-capability{
  width:20px;height:20px;border-radius:6px;
  display:inline-grid;place-items:center;
  font-size:.58rem;font-weight:900;
  border:1px solid transparent
}
.trainer-capability.has{background:#eaf5f0;color:#33765a;border-color:#dceee5}
.trainer-capability.missing{background:#f1f3f4;color:#b2bdc4;border-color:#eceff1}

.trainer-search-actions{display:flex;justify-content:center;margin-top:12px}
.trainer-search-toggle{font-size:.73rem;padding:8px 11px}
.trainer-search-panel{
  margin-top:10px;border:1px solid var(--line);border-radius:13px;background:#fbfcfd;overflow:hidden
}
.trainer-search-box{padding:10px;border-bottom:1px solid var(--line)}
.trainer-search-box input{
  width:100%;border:1px solid #dce5ea;background:#fff;border-radius:9px;
  padding:10px 12px;outline:none;color:var(--ink);font:inherit;font-size:.78rem
}
.trainer-search-box input:focus{border-color:#9fc4d8;box-shadow:0 0 0 3px rgba(110,166,196,.1)}
.trainer-search-results{max-height:255px;overflow:auto}
.trainer-search-row{
  display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:14px;align-items:center;
  padding:9px 11px;border-bottom:1px solid #edf1f3
}
.trainer-search-row:last-child{border-bottom:0}
.trainer-search-person{min-width:0}
.trainer-search-person strong,.trainer-search-person span{display:block}
.trainer-search-person strong{font-size:.74rem;color:#2b485c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trainer-search-person span{font-size:.62rem;color:#8798a4;margin-top:2px}
.trainer-search-row .trainer-capabilities{margin:0}
.trainer-add-button{
  border:1px solid #d9e4ea;background:#fff;color:#48677a;border-radius:8px;
  padding:6px 8px;font-size:.65rem;font-weight:800;cursor:pointer;white-space:nowrap
}
.trainer-add-button.selected{background:#edf6f2;color:#39745a;border-color:#d7e9e0}
.trainer-search-empty{padding:16px;text-align:center;color:#8798a4;font-size:.72rem}

.trainer-selection-footer{
  margin-top:13px;padding:12px 13px;border-radius:12px;background:#f3f7f9;
  display:flex;align-items:center;justify-content:space-between;gap:16px
}
.trainer-selection-footer>div strong,.trainer-selection-footer>div span{display:block}
.trainer-selection-footer>div strong{font-size:.76rem;color:var(--navy)}
.trainer-selection-footer>div span{font-size:.63rem;color:#8496a3;margin-top:2px}
.trainer-selection-footer .primary-button{font-size:.7rem;padding:9px 12px}

.contact-preview{
  margin-top:13px;padding:15px;border:1px solid #dbe7ed;border-radius:13px;background:#fff
}
.contact-preview-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.contact-preview-head h4{margin:2px 0 0;color:var(--navy);font-size:.94rem}
.contact-preview-head p{margin:4px 0 0;color:#8294a1;font-size:.67rem;line-height:1.45}
.contact-preview-head .secondary-button{font-size:.65rem;padding:7px 9px;white-space:nowrap}
.contact-preview-recipients{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.contact-recipient{
  display:flex;align-items:center;gap:7px;padding:7px 9px;
  border:1px solid #e3eaee;border-radius:9px;background:#fafcfd
}
.contact-recipient-check{
  width:17px;height:17px;border-radius:50%;background:#e9f4ef;color:#34775a;
  display:grid;place-items:center;font-size:.56rem;font-weight:900
}
.contact-recipient strong,.contact-recipient span{display:block}
.contact-recipient strong{font-size:.67rem;color:#365468}
.contact-recipient span{font-size:.58rem;color:#8999a4;margin-top:1px}

@media(max-width:900px){
  .trainer-strip{grid-template-columns:1fr}
}
@media(max-width:600px){
  .trainer-legend{justify-content:flex-start}
  .trainer-search-row{grid-template-columns:1fr auto}
  .trainer-search-row .trainer-capabilities{grid-row:2;grid-column:1}
  .trainer-add-button{grid-row:1 / span 2;grid-column:2}
  .trainer-selection-footer,.contact-preview-head{align-items:stretch;flex-direction:column}
}

/* V0.12 · preparación de correo */
.mail-summary-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.mail-summary-head h4{margin:2px 0 0;color:var(--navy);font-size:1rem}
.mail-summary-head p{margin:5px 0 0;color:#8294a1;font-size:.68rem}
.mail-summary-card{display:grid;grid-template-columns:1.5fr 1.15fr .6fr .8fr;gap:1px;margin-top:14px;background:#e8eef1;border:1px solid #e8eef1;border-radius:11px;overflow:hidden}
.mail-summary-card>div{padding:11px 12px;background:#f9fbfc;min-width:0}
.mail-summary-card span,.mail-summary-card strong{display:block}
.mail-summary-card span{color:#8496a2;font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;font-weight:850;margin-bottom:4px}
.mail-summary-card strong{color:#2f4c60;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mail-recipients{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.mail-recipient-chip{display:flex;align-items:center;gap:8px;padding:7px 10px 7px 7px;border:1px solid #e3e9ed;border-radius:10px;background:#fbfcfd}
.mail-recipient-avatar{width:27px;height:27px;border-radius:8px;background:#eaf2f6;color:#466a80;display:grid;place-items:center;font-size:.58rem;font-weight:900}
.mail-recipient-chip strong,.mail-recipient-chip span{display:block}
.mail-recipient-chip strong{color:#355367;font-size:.66rem}.mail-recipient-chip div>span{color:#8a9aa5;font-size:.56rem;margin-top:1px}
.mail-common-note{margin-top:13px}.mail-common-note label{display:flex;gap:6px;color:#526d7e;font-size:.67rem;font-weight:800;margin-bottom:6px}.mail-common-note label span{color:#98a5ae;font-weight:600}
.mail-common-note textarea,.mail-editor input,.mail-editor textarea{width:100%;border:1px solid #dce5ea;border-radius:9px;background:#fff;color:#2d4759;font:inherit;outline:none}
.mail-common-note textarea{padding:9px 10px;resize:vertical;font-size:.72rem}
.mail-preview-toggle-row{margin-top:11px;padding-top:10px;border-top:1px solid #edf1f3}
.mail-preview-toggle{width:100%;border:0;background:transparent;color:#49697d;display:flex;align-items:center;justify-content:space-between;padding:5px 2px;font-size:.69rem;font-weight:850;cursor:pointer}
.mail-editor{margin-top:8px;padding:12px;border:1px solid #e2e8ec;border-radius:11px;background:#fafcfd}
.mail-editor-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.mail-editor-tab{border:1px solid #dce5ea;background:#fff;color:#758895;border-radius:999px;padding:5px 9px;font-size:.61rem;font-weight:800;cursor:pointer}
.mail-editor-tab.active{background:var(--navy);border-color:var(--navy);color:#fff}
.mail-editor-fields{display:grid;gap:9px}.mail-editor-fields label{display:grid;gap:5px;color:#60798a;font-size:.63rem;font-weight:850}
.mail-editor input{height:38px;padding:0 10px;font-size:.72rem}.mail-editor textarea{padding:10px;resize:vertical;line-height:1.55;font-size:.72rem;min-height:205px}
.mail-editor-help{margin:7px 0 0;color:#94a2ab;font-size:.58rem}
.mail-send-bar{margin-top:13px;padding:11px 12px;border-radius:11px;background:#f2f7f9;display:flex;align-items:center;justify-content:space-between;gap:16px}
.mail-send-info strong,.mail-send-info span{display:block}.mail-send-info strong{color:var(--navy);font-size:.72rem}.mail-send-info span{color:#8496a2;font-size:.59rem;margin-top:2px}
.mail-demo-notice{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff7e7;border:1px solid #f0e1bc;color:#836422}.mail-demo-notice strong,.mail-demo-notice span{display:block}.mail-demo-notice strong{font-size:.69rem}.mail-demo-notice span{font-size:.6rem;margin-top:2px}
@media(max-width:760px){.mail-summary-card{grid-template-columns:1fr 1fr}.mail-summary-head,.mail-send-bar{flex-direction:column;align-items:stretch}}

/* V0.13: solicitud compacta; acciones como foco */
.detail-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;margin-top:12px!important;border:1px solid #e3eaee!important;border-radius:13px!important;overflow:hidden!important;background:#fff!important}
.detail-item{min-height:0!important;padding:9px 13px!important;border:0!important;border-right:1px solid #edf1f3!important;border-bottom:1px solid #edf1f3!important;border-radius:0!important;background:#fbfcfd!important;box-shadow:none!important}
.detail-item:nth-child(4n){border-right:0!important}.detail-item:nth-last-child(-n+4){border-bottom:0!important}
.detail-item .detail-label,.detail-item>span:first-child{margin:0 0 3px!important;font-size:.54rem!important;line-height:1.1!important;letter-spacing:.065em!important;color:#8b9ca8!important}
.detail-item .detail-value,.detail-item>strong,.detail-item>span:last-child{font-size:.68rem!important;line-height:1.25!important;color:#355166!important}
.mail-summary-card{display:none!important}.contact-preview{padding-top:14px!important}
@media(max-width:900px){.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.detail-item:nth-child(4n){border-right:1px solid #edf1f3!important}.detail-item:nth-child(2n){border-right:0!important}.detail-item:nth-last-child(-n+4){border-bottom:1px solid #edf1f3!important}.detail-item:nth-last-child(-n+2){border-bottom:0!important}}
@media(max-width:560px){.detail-grid{grid-template-columns:1fr!important}.detail-item,.detail-item:nth-child(2n),.detail-item:nth-child(4n){border-right:0!important;border-bottom:1px solid #edf1f3!important}.detail-item:last-child{border-bottom:0!important}}


/* ========================================================================== */
/* V0.14 · Flujo progresivo inspirado en interfaces de producto               */
/* Contexto compacto -> decisión -> selección -> correo. Un paso cada vez.    */
/* ========================================================================== */

.request-dialog{
  width:min(980px,100%);
}

.request-dialog-scroll{
  padding:34px 42px 38px;
}

.request-detail-head{
  margin-bottom:14px;
}

.request-detail-head h2{
  font-size:2rem;
  letter-spacing:-.025em;
}

.request-summary-compact{
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:0;
  margin:12px 0 0;
  padding:11px 0;
  border-top:1px solid #e8eef1;
  border-bottom:1px solid #e8eef1;
}

.request-summary-item{
  position:relative;
  min-width:0;
  padding:0 17px;
}

.request-summary-item:first-child{padding-left:0}
.request-summary-item:not(:last-child)::after{
  content:"";
  position:absolute;
  right:0;
  top:3px;
  width:1px;
  height:29px;
  background:#e5ecef;
}

.request-summary-item span,
.request-summary-item strong{
  display:block;
}

.request-summary-item span{
  margin-bottom:3px;
  color:#92a1ab;
  font-size:.54rem;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.request-summary-item strong{
  max-width:210px;
  color:#314d61;
  font-size:.7rem;
  font-weight:750;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.request-more-toggle{
  display:block;
  margin:7px 0 0 auto;
  padding:3px 0;
  border:0;
  background:transparent;
  color:#7c929f;
  font-size:.61rem;
  font-weight:750;
  cursor:pointer;
}

.request-more-details{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px 16px;
  margin-top:8px;
  padding:11px 13px;
  border-radius:10px;
  background:#f8fafb;
}

.request-more-item span,
.request-more-item strong{display:block}

.request-more-item span{
  color:#96a4ad;
  font-size:.52rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.055em;
  margin-bottom:2px;
}

.request-more-item strong{
  color:#526c7c;
  font-size:.64rem;
  line-height:1.25;
}

/* La decisión es el centro visual de la primera pantalla. */
.request-decision{
  margin-top:28px;
  padding-top:0;
  border-top:0;
}

.request-section-heading{
  margin-bottom:16px;
}

.request-section-heading .eyebrow{
  font-size:.61rem;
}

.request-section-heading h3{
  font-size:1.42rem;
  letter-spacing:-.02em;
}

.request-section-heading p{
  max-width:560px;
  font-size:.75rem;
}

.decision-grid{
  gap:10px;
}

.decision-card{
  min-height:94px;
  padding:16px 18px;
  border-color:#e1e8ec;
  border-radius:14px;
  box-shadow:none;
}

.decision-card:hover{
  transform:none;
  border-color:#aac8d9;
  background:#fbfdfe;
}

.decision-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  font-size:.72rem;
}

.decision-card strong{
  font-size:.88rem;
}

.decision-card small{
  font-size:.7rem;
}

/* Cada rama reemplaza visualmente el paso anterior. */
.request-branch{
  margin-top:18px;
  padding-top:0;
  border-top:0;
}

.branch-head{
  margin-bottom:14px;
}

.branch-back{
  background:transparent;
  padding:5px 0;
  color:#718b9b;
}

.contact-preview{
  margin-top:0 !important;
  border:0 !important;
  border-radius:0 !important;
  padding:0 !important;
  background:transparent !important;
}

.mail-summary-head{
  padding-bottom:12px;
  border-bottom:1px solid #e8eef1;
}

.mail-recipients{
  margin-top:14px;
}

.mail-send-bar{
  margin-top:14px;
}

/* No mostrar antiguas tarjetas si quedan reglas previas en CSS. */
.request-detail-grid,
.detail-grid{
  display:none !important;
}

@media(max-width:760px){
  .request-dialog-scroll{padding:28px 20px 30px}
  .request-summary-compact{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .request-summary-item{padding:0}
  .request-summary-item::after{display:none}
  .request-more-details{grid-template-columns:1fr 1fr}
}


/* V0.15 · navegación atrás consistente en todo el flujo */
.mail-summary-head-flow{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:16px;
  padding-bottom:12px;
  border-bottom:1px solid #e8eef1;
}

.mail-summary-head-flow > div{
  flex:1;
}

.mail-summary-head-flow .mail-back{
  flex:0 0 auto;
  margin-top:1px;
  border:0;
  background:transparent;
  padding:5px 0;
  color:#718b9b;
  font-size:.75rem;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}

.mail-summary-head-flow .mail-back:hover{
  color:var(--navy);
}

/* Anula el aspecto de botón gris que tenía la versión previa. */
.mail-summary-head-flow .secondary-button{
  border:0;
  background:transparent;
  box-shadow:none;
}

@media(max-width:760px){
  .mail-summary-head-flow{
    flex-direction:row;
    align-items:flex-start;
  }

  .mail-summary-head-flow .mail-back{
    width:auto;
  }
}


/* ========================================================================== */
/* V0.16 · "La imparto yo" — flujo mínimo, progresivo y consistente          */
/* ========================================================================== */

.self-branch-head{
  margin-bottom:12px;
}

.client-preference-strip{
  display:flex;
  align-items:flex-start;
  gap:0;
  margin:0 0 18px;
  padding:10px 0;
  border-top:1px solid #e8eef1;
  border-bottom:1px solid #e8eef1;
}

.client-preference-strip > div{
  position:relative;
  padding:0 16px;
}

.client-preference-strip > div:first-child{
  padding-left:0;
}

.client-preference-strip > div:not(:last-child)::after{
  content:"";
  position:absolute;
  right:0;
  top:2px;
  width:1px;
  height:28px;
  background:#e5ecef;
}

.client-preference-strip span,
.client-preference-strip strong{
  display:block;
}

.client-preference-strip span{
  color:#94a3ad;
  font-size:.52rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:3px;
}

.client-preference-strip strong{
  color:#3d596c;
  font-size:.67rem;
}

.self-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.self-field{
  display:grid;
  gap:6px;
}

.self-field > span{
  color:#536d7e;
  font-size:.67rem;
  font-weight:850;
}

.self-field > span em{
  color:#9aa7af;
  font-style:normal;
  font-weight:600;
}

.self-field input,
.self-field textarea{
  width:100%;
  border:1px solid #dce5ea;
  border-radius:10px;
  background:#fff;
  color:#2d4759;
  font:inherit;
  outline:none;
}

.self-field input{
  height:44px;
  padding:0 11px;
  font-size:.76rem;
}

.self-field textarea{
  padding:10px 11px;
  resize:vertical;
  font-size:.73rem;
  line-height:1.45;
}

.self-field input:focus,
.self-field textarea:focus{
  border-color:#9fc5d8;
  box-shadow:0 0 0 3px rgba(103,164,195,.08);
}

.self-date-wrap{
  display:grid;
  gap:4px;
}

.date-status,
#selfTimeHint{
  color:#8b9ba6;
  font-size:.58rem;
}

.date-status.requested{
  color:#55798e;
}

.date-status.proposed{
  color:#8a6c29;
}

.self-details-field{
  margin-top:12px;
}

.self-call-option{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:13px;
  padding:11px 12px;
  border:1px solid #e5ebee;
  border-radius:11px;
  background:#fafcfd;
  cursor:pointer;
}

.self-call-option input{
  margin-top:2px;
  accent-color:#0b2a45;
}

.self-call-option strong,
.self-call-option small{
  display:block;
}

.self-call-option strong{
  color:#3d596b;
  font-size:.7rem;
}

.self-call-option small{
  margin-top:2px;
  color:#8a9aa5;
  font-size:.6rem;
  line-height:1.4;
}

.self-continue-row{
  display:flex;
  justify-content:flex-end;
  margin-top:14px;
}

.self-continue-row .primary-button{
  font-size:.72rem;
  padding:9px 14px;
}

.self-mail-head{
  margin-bottom:14px;
}

.client-mail-recipient{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 10px 7px 7px;
  border:1px solid #e3e9ed;
  border-radius:10px;
  background:#fbfcfd;
}

.client-recipient-avatar{
  width:29px;
  height:29px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:#eaf2f6;
  color:#466a80;
  font-size:.58rem;
  font-weight:900;
}

.client-mail-recipient strong,
.client-mail-recipient span{
  display:block;
}

.client-mail-recipient strong{
  color:#355367;
  font-size:.67rem;
}

.client-mail-recipient div > span{
  margin-top:1px;
  color:#8a9aa5;
  font-size:.56rem;
}

.self-mail-send-bar{
  margin-top:13px;
}

@media(max-width:700px){
  .self-form-grid{
    grid-template-columns:1fr;
  }

  .client-preference-strip{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
  }

  .client-preference-strip > div{
    padding:0;
  }

  .client-preference-strip > div::after{
    display:none;
  }
}

/* V0.17 · franjas propuestas */
.self-ranges{display:grid;gap:7px}.self-range-row{display:grid;grid-template-columns:minmax(95px,1fr) 15px minmax(95px,1fr) 30px;gap:7px;align-items:center}.self-range-row input{width:100%;height:44px;border:1px solid #dce5ea;border-radius:10px;background:#fff;color:#2d4759;font:inherit;padding:0 10px;outline:none}.self-range-row>span{text-align:center;color:#98a6af}.self-range-row button{width:28px;height:28px;border:0;border-radius:50%;background:#eef3f5;color:#728793;font-size:1rem;cursor:pointer}.self-add-range{justify-self:start;border:0;background:transparent;color:#56798e;padding:1px 0;font-size:.63rem;font-weight:800;cursor:pointer}
@media(max-width:620px){.self-range-row{grid-template-columns:1fr 12px 1fr 28px}.self-range-row input{padding:0 6px}}


/* V0.18 · fechas múltiples del cliente */
.self-client-dates{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:3px}
.self-date-chip{border:1px solid #dfe8ed;background:#fafcfd;color:#60798a;border-radius:999px;padding:6px 9px;font-size:.62rem;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.self-date-chip>span{width:16px;height:16px;border-radius:50%;background:#edf3f6;display:grid;place-items:center;font-size:.52rem}
.self-date-chip:hover{border-color:#b7cedb}
.self-date-chip.selected{border-color:#6da9c9;background:#f2f9fc;color:#254c65}
.self-date-chip.selected>span{background:#0b2a45;color:white}
.self-date-empty{color:#8496a2;font-size:.62rem;padding:4px 0}


/* V0.19 · entrada de hora natural */
.self-range-row input[data-self-start],
.self-range-row input[data-self-end]{
  font-variant-numeric:tabular-nums;
  letter-spacing:.015em;
}
.self-range-row input::placeholder{color:#a6b3bc}


/* ========================================================================== */
/* V0.21 · resumen único + propuesta de Carmen limpia                         */
/* ========================================================================== */

/* Las fechas reales del solicitante viven en el resumen superior. */
.request-summary-dates{
  min-width:max-content;
}

.summary-date-options{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}

.summary-date-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid #dce6eb;
  border-radius:999px;
  background:#fbfcfd;
  color:#526f81;
  padding:4px 7px 4px 5px;
  font:inherit;
  font-size:.59rem;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
  transition:border-color .13s ease, background .13s ease, color .13s ease;
}

.summary-date-chip > span{
  width:15px;
  height:15px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#edf3f6;
  color:#7290a1;
  font-size:.48rem;
}

.summary-date-chip:hover{
  border-color:#a9c8d9;
  background:#f6fbfd;
}

.summary-date-chip.selected{
  border-color:#67a8ca;
  background:#f1f9fc;
  color:#244d66;
}

.summary-date-chip.selected > span{
  background:#0b2a45;
  color:#fff;
}

.summary-date-flexible{
  color:#526f81;
  font-size:.67rem;
  font-weight:750;
}

/* Ya no existe un segundo resumen antes del formulario de Carmen. */
.client-preference-strip{
  display:none !important;
}

/* La fecha de Carmen es solo su propuesta. */
.self-date-field{
  align-content:start;
}

/* La disponibilidad del cliente se muestra como ayuda, no como valor editable. */
#selfTimeHint{
  margin-top:2px;
  color:#7f929f;
  font-size:.59rem;
  line-height:1.35;
}

/* V0.22 · varias fechas en la propuesta */
.self-proposal-dates{display:flex;flex-direction:column;gap:7px}
.self-proposal-date-row{display:flex;align-items:center;gap:7px}
.self-proposal-date-row input{flex:1;min-width:0}
.self-proposal-date-row button{width:34px;height:34px;border:0;border-radius:50%;background:#eef3f6;color:#718896;font-size:1.05rem;cursor:pointer}
.self-add-date{width:max-content;border:0;background:transparent;padding:2px 0;color:#42677d;font:inherit;font-size:.67rem;font-weight:800;cursor:pointer}


/* V0.24 · flujo operativo de solicitudes */
.waiting-actions{display:flex;justify-content:center;padding:18px 0 6px}
.waiting-received-btn{min-width:240px}
.response-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.response-option{border:1px solid #dde7ec;border-radius:14px;background:#fff;padding:16px;text-align:left;cursor:pointer;display:grid;gap:5px;color:#18384f}
.response-option strong{font-size:.78rem}
.response-option span{font-size:.63rem;color:#7a8e9b;line-height:1.4}
.response-option:hover{border-color:#a9c7d7;background:#fbfdfe}
.response-option.subtle{background:#f8fafb}
.response-option.danger{border-color:#efdada}
.response-option.danger strong{color:#8d4444}
.response-trainer-picker{margin-top:14px;padding:14px;border-radius:14px;background:#f7fafb}
.picker-label{display:block;font-size:.65rem;font-weight:800;color:#718795;margin-bottom:8px}
.response-trainer-list{display:grid;gap:7px}
.response-trainer{border:1px solid #dfe8ec;background:#fff;border-radius:11px;padding:10px 12px;text-align:left;cursor:pointer;display:flex;justify-content:space-between;gap:12px}
.response-trainer strong{font-size:.72rem;color:#18384f}
.response-trainer span{font-size:.62rem;color:#7b8e9a}
.request-state[data-state="esperando_respuesta"]{background:#fff4df;color:#8a641f}
.request-state[data-state="agendada"]{background:#e8f6ef;color:#2f7356}
.request-state[data-state="pendiente_gestion"]{background:#edf6fb;color:#2f6787}
@media(max-width:760px){.response-options{grid-template-columns:1fr}}

/* V0.25 · gestión operativa y calendario */
.waiting-actions-rich{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.secondary-action,.text-action{border:0;font:inherit;cursor:pointer}.secondary-action{padding:9px 13px;border:1px solid #dce6eb;border-radius:10px;background:#fff;color:#43657a;font-size:.68rem;font-weight:800}.text-action{background:transparent;color:#7f909b;font-size:.65rem;font-weight:750;padding:8px}.agenda-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.agenda-location-field{margin-top:12px}.agenda-location-field input{height:44px;padding:0 11px;border:1px solid #dce5ea;border-radius:10px;background:#fff;color:#2d4759;font:inherit}.agenda-responsible{margin-top:14px;padding:12px;border-top:1px solid #e7edf0;border-bottom:1px solid #e7edf0}.agenda-responsible-card{display:flex;justify-content:space-between;gap:12px;margin-top:5px}.agenda-responsible-card strong{font-size:.72rem;color:#314f62}.agenda-responsible-card span{font-size:.62rem;color:#8596a1}.agenda-actions,.closed-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:15px}.danger-soft{color:#985454!important;border-color:#ecdada!important}.agenda-save-notice{display:flex;gap:6px;align-items:center;margin-top:12px;padding:10px 12px;border-radius:10px;background:#edf8f2;color:#3d7359;font-size:.65rem}.operational-mail-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.operational-mail-modal[hidden]{display:none}.operational-mail-backdrop{position:absolute;inset:0;background:rgba(10,27,39,.28);backdrop-filter:blur(4px)}.operational-mail-card{position:relative;z-index:1;width:min(720px,100%);max-height:90vh;overflow:auto;border-radius:20px;background:#fff;padding:28px 30px;box-shadow:0 30px 80px rgba(18,44,61,.16)}.operational-mail-card h3{margin:5px 0 3px;color:#17394f;font-size:1.35rem}.operational-mail-card>p{margin:0 0 18px;color:#80919c;font-size:.69rem}.operational-mail-body{margin-top:12px}.operational-mail-body textarea{width:100%;border:1px solid #dce5ea;border-radius:11px;padding:11px;font:inherit;font-size:.72rem;line-height:1.5}.operational-mail-actions{display:flex;justify-content:flex-end;margin-top:13px}
.calendar-page{max-width:1240px}.calendar-shell,.calendar-day-panel{background:#fff;border:1px solid #e1e8ec;border-radius:18px;padding:18px 20px}.calendar-month-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;text-align:center;margin-bottom:15px}.calendar-month-head h2{margin:2px 0 0;text-transform:capitalize;color:#1c4057;font-size:1.22rem}.calendar-arrow{width:36px;height:36px;border:1px solid #e1e8ec;border-radius:50%;background:#fff;color:#4a697d;font-size:1.35rem;cursor:pointer}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{border-bottom:1px solid #edf1f3;padding-bottom:8px}.calendar-weekdays span{text-align:center;color:#94a2ac;font-size:.57rem;font-weight:850}.calendar-grid{gap:5px;padding-top:6px}.calendar-blank,.management-day{min-height:94px}.management-day{border:1px solid transparent;border-radius:12px;background:#fff;padding:8px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:6px}.management-day:hover{background:#f8fbfc;border-color:#e1e9ed}.management-day.today{box-shadow:inset 0 0 0 1px #b7d1df}.management-day.selected{background:#f1f8fb;border-color:#91bed4}.management-day-number{font-size:.67rem;font-weight:850;color:#536c7b}.management-day-events{display:grid;gap:3px}.management-event-pill{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;background:#eaf3f7;color:#42677d;padding:3px 5px;font-style:normal;font-size:.51rem;font-weight:750}.management-event-pill.completed{background:#f0f2f3;color:#8a969d}.management-event-more{font-style:normal;color:#8d9ba4;font-size:.5rem}.calendar-day-panel{margin-top:18px}.calendar-day-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid #edf1f3;padding-bottom:12px}.calendar-day-head h2{margin:2px 0 0;color:#1d4056;font-size:1.05rem;text-transform:capitalize}.calendar-day-list{display:grid;gap:7px;padding-top:10px}.calendar-training-card{display:grid;grid-template-columns:140px minmax(0,1fr) 180px 18px;gap:12px;align-items:center;width:100%;border:1px solid #e6ecef;border-radius:12px;background:#fff;padding:11px 12px;text-align:left;cursor:pointer}.calendar-training-card:hover{background:#fbfdfe}.calendar-training-time{font-size:.65rem;font-weight:850;color:#345d76}.calendar-training-main strong,.calendar-training-main small,.calendar-training-meta b,.calendar-training-meta small{display:block}.calendar-training-main strong{font-size:.72rem;color:#24485f}.calendar-training-main small,.calendar-training-meta small{font-size:.58rem;color:#8999a3}.calendar-training-meta{text-align:right}.calendar-training-meta b{font-size:.64rem;color:#526d7e}.calendar-event-summary{display:flex;padding:10px 0;margin-bottom:4px;border-top:1px solid #e9eef1;border-bottom:1px solid #e9eef1}.calendar-event-summary span{padding:0 15px;border-right:1px solid #e9eef1}.calendar-event-summary span:first-child{padding-left:0}.calendar-event-summary span:last-child{border-right:0}.calendar-event-summary small,.calendar-event-summary strong{display:block}.calendar-event-summary small{font-size:.52rem;color:#98a5ad;text-transform:uppercase;font-weight:800}.calendar-event-summary strong{font-size:.66rem;color:#456173}.calendar-event-dialog{width:min(850px,100%)}
@media(max-width:800px){.agenda-editor-grid{grid-template-columns:1fr}.calendar-blank,.management-day{min-height:70px}.management-event-pill{display:none}.calendar-training-card{grid-template-columns:1fr 18px}.calendar-training-time,.calendar-training-meta{grid-column:1}.calendar-training-meta{text-align:left}}


/* ==========================================================================
   V0.26 · navegación por pasos + calendario análogo al panel del bar
   ========================================================================== */

.agenda-readonly-card{
  margin-top:16px;
  padding:0;
  border-top:1px solid #e5ecef;
  border-bottom:1px solid #e5ecef;
}
.agenda-readonly-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1.4fr 1fr;
}
.agenda-readonly-grid>div{
  padding:15px 16px;
  border-right:1px solid #e5ecef;
}
.agenda-readonly-grid>div:first-child{padding-left:0}
.agenda-readonly-grid>div:last-child{border-right:0}
.agenda-readonly-grid span,.agenda-readonly-grid strong,.agenda-readonly-grid small{display:block}
.agenda-readonly-grid span{
  margin-bottom:4px;color:#899ba7;font-size:.55rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em
}
.agenda-readonly-grid strong{color:#294b61;font-size:.73rem}
.agenda-readonly-grid small{margin-top:2px;color:#92a0a9;font-size:.56rem}
.agenda-summary-actions{margin-top:16px}
.agenda-edit-surface{
  margin-top:14px;
  padding:16px;
  border:1px solid #9bc6dc;
  border-radius:14px;
  background:#f4fafc;
}
.agenda-edit-view .agenda-actions{justify-content:flex-end}
.agenda-mail-view{padding-top:2px}
.agenda-mail-body{margin-top:12px}
.agenda-mail-body textarea{
  width:100%;border:1px solid #dce5ea;border-radius:11px;padding:12px;font:inherit;font-size:.72rem;line-height:1.5;resize:vertical;background:#fff
}

/* Month calendar: closer to the bar management calendar */
.ms-calendar-legend{
  display:flex;
  align-items:center;
  gap:14px;
  margin:4px 0 11px;
  color:#81939f;
  font-size:.61rem;
}
.ms-calendar-legend span{display:flex;align-items:center;gap:6px}
.calendar-role-icon{
  width:26px;height:26px;border-radius:8px;display:inline-grid;place-items:center;flex:none;
  font-style:normal;font-size:.55rem;font-weight:900
}
.calendar-role-icon.carmen{background:#e4f2f8;color:#276889}
.calendar-role-icon.trainer{background:#e7f4ed;color:#327357}
.calendar-role-icon.completed{background:#eef1f3;color:#778791}

.calendar-shell{
  padding:14px;
  border-radius:14px;
}
.calendar-grid{gap:6px}
.calendar-blank{min-height:118px}
.management-day.ms-management-day{
  min-height:118px;
  padding:9px;
  border:1px solid #e0e8ec;
  border-radius:10px;
  background:#fff;
  gap:7px;
}
.management-day.ms-management-day:hover{border-color:#87b9d1}
.management-day.ms-management-day.selected{
  border-color:#72b0cf;
  box-shadow:0 0 0 2px rgba(73,156,199,.13);
  background:#fbfdfe;
}
.management-day.ms-management-day.is-today .management-day-number{
  background:#153a53;
  color:#fff;
}
.management-day-number{
  width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-size:.65rem;font-weight:900;color:#526c7d
}
.ms-day-events{display:grid;gap:4px;min-width:0}
.ms-day-event{
  display:grid;
  grid-template-columns:24px 34px minmax(0,1fr);
  align-items:center;
  gap:4px;
  min-height:28px;
  padding:3px 5px;
  border-radius:7px;
  overflow:hidden;
}
.ms-day-event i{
  width:21px;height:21px;border-radius:6px;display:grid;place-items:center;font-style:normal;font-size:.46rem;font-weight:900
}
.ms-day-event b{font-size:.49rem;font-variant-numeric:tabular-nums}
.ms-day-event em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;font-size:.48rem;font-weight:720}
.ms-day-event.carmen{background:#eef7fb;color:#356a86}
.ms-day-event.carmen i{background:#d7edf7;color:#1f668a}
.ms-day-event.trainer{background:#eef8f3;color:#44745e}
.ms-day-event.trainer i{background:#d9efe4;color:#2f7455}
.ms-day-event.completed{background:#f2f4f5;color:#87939a}
.ms-day-event.completed i{background:#e4e8ea;color:#6f7e86}
.ms-day-more{padding-left:4px;color:#8b9aa3;font-size:.49rem;font-weight:750}

.calendar-day-panel{padding:16px 18px}
.calendar-training-card.bar-like{
  grid-template-columns:30px 125px minmax(0,1fr) 180px 18px;
  gap:11px;
  padding:10px 12px;
  border-radius:10px;
}
.calendar-training-card.bar-like .calendar-training-time{font-size:.67rem}
.calendar-training-card.bar-like .calendar-training-main strong{font-size:.72rem}

.calendar-detail-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin:12px 0 14px;
}
.calendar-detail-grid>div{
  padding:12px;
  border:1px solid #e1e8ec;
  border-radius:10px;
  background:#fafcfd;
}
.calendar-detail-grid span,.calendar-detail-grid strong{display:block}
.calendar-detail-grid span{font-size:.54rem;color:#8799a5;text-transform:uppercase;font-weight:850}
.calendar-detail-grid strong{margin-top:4px;color:#2d4d61;font-size:.7rem}
.calendar-detail-lines{display:grid;border-top:1px solid #e7edef;border-bottom:1px solid #e7edef}
.calendar-detail-lines>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #edf1f3}
.calendar-detail-lines>div:last-child{border-bottom:0}
.calendar-detail-lines span{color:#8c9ba4;font-size:.59rem}
.calendar-detail-lines strong{color:#405f72;font-size:.65rem}
.calendar-detail-actions{margin-top:14px}
.calendar-inner-head{margin-bottom:14px}

@media(max-width:900px){
  .agenda-readonly-grid{grid-template-columns:1fr 1fr}
  .agenda-readonly-grid>div:nth-child(2){border-right:0}
  .calendar-blank,.management-day.ms-management-day{min-height:92px}
  .ms-day-event{grid-template-columns:22px 1fr}
  .ms-day-event b{display:none}
  .calendar-training-card.bar-like{grid-template-columns:30px 1fr 18px}
  .calendar-training-time,.calendar-training-meta{grid-column:2}
  .calendar-training-meta{text-align:left}
}

/* ========================================================================== */
/* V0.27 · Soft Glass + Neumorphism — minimalista Más Salud+Formación         */
/* ========================================================================== */
:root{
  --bg:#f2f7fa;
  --glass:rgba(255,255,255,.72);
  --glass-strong:rgba(255,255,255,.88);
  --glass-line:rgba(255,255,255,.78);
  --soft-line:rgba(108,145,168,.20);
  --pastel-blue:#e8f5fb;
  --pastel-green:#eaf7f1;
  --pastel-amber:#fff4df;
  --pastel-red:#faeeee;
  --glass-shadow:0 18px 48px rgba(21,61,93,.08), inset 0 1px 0 rgba(255,255,255,.82);
  --glass-shadow-hover:0 22px 56px rgba(21,61,93,.12), inset 0 1px 0 rgba(255,255,255,.9);
  --neo-shadow:6px 6px 14px rgba(83,116,137,.10),-6px -6px 14px rgba(255,255,255,.92);
  --neo-inset:inset 3px 3px 8px rgba(80,113,134,.09),inset -3px -3px 8px rgba(255,255,255,.9);
}
html,body{
  background:
    radial-gradient(circle at 88% 7%,rgba(142,199,232,.18),transparent 25rem),
    radial-gradient(circle at 16% 88%,rgba(175,224,205,.13),transparent 30rem),
    linear-gradient(145deg,#f7fafc 0%,#eef5f8 54%,#f7fafc 100%);
  background-attachment:fixed;
}
.sidebar{
  background:rgba(250,253,255,.76);
  border-right:1px solid rgba(255,255,255,.8);
  box-shadow:10px 0 36px rgba(28,65,91,.045);
  backdrop-filter:blur(22px) saturate(125%);
  -webkit-backdrop-filter:blur(22px) saturate(125%);
}
.topbar{
  background:rgba(250,253,255,.68);
  border-bottom:1px solid rgba(255,255,255,.76);
  box-shadow:0 8px 28px rgba(31,70,96,.035);
  backdrop-filter:blur(24px) saturate(135%);
  -webkit-backdrop-filter:blur(24px) saturate(135%);
}
.nav a,.nav-parent{transition:background .18s ease,box-shadow .18s ease,color .18s ease,transform .18s ease}
.nav a:hover,.nav-parent:hover{background:rgba(255,255,255,.58);box-shadow:var(--neo-shadow);transform:translateY(-1px)}
.nav a.active,.nav-submenu a.active,.nav-parent.active-parent{
  background:linear-gradient(145deg,rgba(235,247,252,.94),rgba(255,255,255,.72));
  box-shadow:var(--neo-inset);
}
.panel,.metric,.info-card,.list,.table-wrap,.company-head,.trainer-stat,.calendar-shell,.calendar-day-panel{
  background:var(--glass);
  border:1px solid var(--glass-line);
  box-shadow:var(--glass-shadow);
  backdrop-filter:blur(18px) saturate(125%);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
}
.panel,.metric,.info-card,.company-head,.trainer-stat,.calendar-shell,.calendar-day-panel{border-radius:18px}
.metric,.info-card,.trainer-stat{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.metric:hover,.info-card:hover,.trainer-stat:hover{transform:translateY(-2px);box-shadow:var(--glass-shadow-hover);border-color:rgba(255,255,255,.95)}
.panel-head{border-bottom-color:var(--soft-line);background:rgba(255,255,255,.24)}
.quick a,.filter,.btn-secondary,.btn.secondary,.secondary-action{
  background:rgba(255,255,255,.62);
  border-color:rgba(133,165,184,.24);
  box-shadow:var(--neo-shadow);
}
.quick a:hover,.filter:hover,.btn-secondary:hover,.btn.secondary:hover,.secondary-action:hover{background:rgba(255,255,255,.84);transform:translateY(-1px)}
.btn-primary,.btn.primary{
  background:linear-gradient(145deg,#153d5d,#092942);
  box-shadow:0 8px 20px rgba(11,42,69,.18),inset 0 1px 0 rgba(255,255,255,.12);
}
.btn-primary:hover,.btn.primary:hover{box-shadow:0 11px 24px rgba(11,42,69,.23);transform:translateY(-1px)}
.btn,.secondary-action,.calendar-arrow,.summary-date-chip,.response-option{transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}
.search input,input,textarea,select,.agenda-location-field input,.agenda-mail-body textarea,.operational-mail-body textarea{
  background:rgba(255,255,255,.68);
  border-color:rgba(126,159,179,.25);
  box-shadow:inset 0 1px 2px rgba(29,66,91,.025);
}
.search input:focus,input:focus,textarea:focus,select:focus{
  outline:none;border-color:rgba(89,161,199,.62);background:rgba(255,255,255,.9);box-shadow:0 0 0 4px rgba(142,199,232,.14)
}
.badge.sky,.request-state[data-state="pendiente_gestion"]{background:rgba(232,245,251,.86);color:#2f6787;border:1px solid rgba(111,178,211,.16)}
.badge.green,.request-state[data-state="agendada"]{background:rgba(234,247,241,.9);color:#2f7356;border:1px solid rgba(91,166,127,.14)}
.badge.amber,.request-state[data-state="esperando_respuesta"]{background:rgba(255,244,223,.92);color:#8a641f;border:1px solid rgba(204,155,69,.13)}
.badge.red{background:rgba(250,238,238,.9);color:#974646}
/* Solicitudes: el overlay es glass; el contenido sigue siendo limpio y legible. */
.request-modal-backdrop,.import-backdrop,.operational-mail-backdrop{background:rgba(21,45,62,.24)!important;backdrop-filter:blur(10px) saturate(110%)!important;-webkit-backdrop-filter:blur(10px) saturate(110%)!important}
.request-modal-card,.import-dialog,.operational-mail-card,.calendar-event-dialog{
  background:rgba(252,254,255,.91)!important;
  border:1px solid rgba(255,255,255,.88)!important;
  box-shadow:0 34px 90px rgba(13,42,62,.18),inset 0 1px 0 rgba(255,255,255,.95)!important;
  backdrop-filter:blur(26px) saturate(125%);
  -webkit-backdrop-filter:blur(26px) saturate(125%);
}
.agenda-edit-surface{
  background:linear-gradient(145deg,rgba(235,247,252,.82),rgba(255,255,255,.58));
  border-color:rgba(106,177,211,.45);
  box-shadow:var(--neo-inset);
}
.response-option{background:rgba(255,255,255,.58);border-color:rgba(122,157,177,.20);box-shadow:0 8px 22px rgba(36,75,101,.035)}
.response-option:hover{background:rgba(255,255,255,.88);box-shadow:var(--glass-shadow);transform:translateY(-2px)}
.response-option.danger{background:rgba(255,248,248,.68);border-color:rgba(190,104,104,.18)}
/* Calendario: cristal exterior, días discretos y eventos pastel con identidad. */
.calendar-month-head{padding:4px 4px 8px}
.calendar-arrow{
  border:1px solid rgba(125,158,178,.18);
  background:rgba(255,255,255,.64);
  box-shadow:var(--neo-shadow);
}
.calendar-arrow:hover{transform:translateY(-1px);background:rgba(255,255,255,.92)}
.management-day.ms-management-day{
  background:rgba(255,255,255,.48);
  border-color:rgba(127,159,178,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}
.management-day.ms-management-day:hover{background:rgba(255,255,255,.76);border-color:rgba(94,166,201,.36);box-shadow:0 9px 24px rgba(34,76,103,.055);transform:translateY(-1px)}
.management-day.ms-management-day.selected{background:rgba(237,248,252,.82);border-color:rgba(84,166,207,.55);box-shadow:var(--neo-inset)}
.ms-day-event.carmen{background:linear-gradient(135deg,rgba(222,242,251,.96),rgba(239,249,253,.86));color:#315f79;border:1px solid rgba(92,168,204,.10)}
.ms-day-event.trainer{background:linear-gradient(135deg,rgba(225,244,235,.96),rgba(242,250,246,.86));color:#3d7058;border:1px solid rgba(83,157,117,.10)}
.ms-day-event.completed{background:rgba(237,241,243,.78);color:#7e8c94}
.calendar-role-icon.carmen{background:linear-gradient(145deg,#e8f6fc,#d9edf7);box-shadow:3px 3px 8px rgba(69,118,146,.08),-3px -3px 8px rgba(255,255,255,.8)}
.calendar-role-icon.trainer{background:linear-gradient(145deg,#ebf8f2,#dcefe5);box-shadow:3px 3px 8px rgba(71,125,96,.07),-3px -3px 8px rgba(255,255,255,.8)}
.calendar-detail-grid>div{background:rgba(255,255,255,.5);border-color:rgba(125,158,178,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.calendar-training-card.bar-like{background:rgba(255,255,255,.54);border-color:rgba(126,158,177,.16)}
.calendar-training-card.bar-like:hover{background:rgba(255,255,255,.86);box-shadow:0 8px 22px rgba(33,72,97,.055)}
/* IRIS comparte el mismo lenguaje sin hacerse protagonista. */
.iris-panel{background:rgba(252,254,255,.88)!important;border:1px solid rgba(255,255,255,.86)!important;box-shadow:0 28px 70px rgba(12,43,64,.18)!important;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.iris-header,.iris-form,.iris-note{background:rgba(255,255,255,.64)}
.iris-messages{background:rgba(245,250,252,.54)}
.iris-message-assistant .iris-bubble{background:rgba(255,255,255,.72);border-color:rgba(130,162,181,.16);box-shadow:0 7px 20px rgba(23,60,85,.045)}
/* El login conserva sobriedad, pero ya pertenece visualmente al producto. */
.ms-auth-shell,.ms-auth-view{background:radial-gradient(circle at 80% 15%,rgba(142,199,232,.22),transparent 25rem),linear-gradient(145deg,#f4f8fa,#eaf2f6)}
.ms-auth-card{background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.88);box-shadow:0 24px 65px rgba(20,54,78,.12);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
@media(prefers-reduced-motion:reduce){.metric,.info-card,.trainer-stat,.btn,.nav a,.nav-parent,.response-option,.management-day.ms-management-day{transition:none!important}}


/* ==========================================================================
   V0.30 · Tipografía más legible + glassmorphism más marcado + soft neumorphism
   ========================================================================== */

:root{
  --ms-navy:#0f2f46;
  --ms-navy-2:#173d57;
  --ms-text:#2e4b5e;
  --ms-muted:#718694;
  --ms-line:rgba(133,163,180,.26);
  --ms-glass:rgba(255,255,255,.62);
  --ms-glass-strong:rgba(255,255,255,.78);
  --ms-glass-soft:rgba(246,251,253,.56);
  --ms-blue-pastel:#e8f4fa;
  --ms-green-pastel:#e8f5ee;
  --ms-amber-pastel:#fff3dd;
  --ms-red-pastel:#fbeceb;
  --ms-shadow:0 18px 45px rgba(25,55,76,.09);
  --ms-shadow-soft:0 8px 24px rgba(25,55,76,.07);
  --ms-neu-out:6px 6px 14px rgba(51,78,96,.12), -6px -6px 14px rgba(255,255,255,.86);
  --ms-neu-in:inset 3px 3px 7px rgba(54,80,98,.11), inset -3px -3px 7px rgba(255,255,255,.85);
}

/* Base readability. Keep hero/page titles unchanged. */
body{
  font-size:16px;
  color:var(--ms-text);
}
.nav a,
.nav-parent,
.nav-submenu a{
  font-size:.82rem !important;
  font-weight:800;
  letter-spacing:.01em;
}
.topbar-title{
  font-size:.9rem !important;
}
.page-head .lead,
.request-detail-head p,
.branch-head p,
.request-section-heading p{
  font-size:.75rem !important;
  line-height:1.45;
}
.eyebrow{
  font-size:.63rem !important;
  letter-spacing:.13em;
}
button,
.primary-button,
.secondary-button,
.primary-action,
.secondary-action,
.text-action,
.action-link,
.action-button,
.filter{
  font-size:.74rem !important;
}
input,
select,
textarea{
  font-size:.76rem !important;
}
small{
  font-size:.64rem;
}

/* Filters / status tabs: fix invisible white-hover state. */
.filters,
.request-filters{
  gap:9px;
}
.filter{
  color:#42647a !important;
  background:rgba(239,247,251,.78) !important;
  border:1px solid rgba(131,169,190,.27) !important;
  box-shadow:var(--ms-neu-out);
  transition:.16s ease;
}
.filter:hover{
  color:var(--ms-navy) !important;
  background:rgba(225,241,249,.95) !important;
  border-color:rgba(91,151,183,.45) !important;
  transform:translateY(-1px);
}
.filter.active,
.filter[aria-selected="true"]{
  color:#fff !important;
  background:linear-gradient(145deg,#173f59,#0e3048) !important;
  border-color:rgba(13,47,70,.85) !important;
  box-shadow:inset 2px 2px 6px rgba(0,0,0,.16), 0 8px 18px rgba(19,57,82,.15);
}
.filter.active:hover,
.filter[aria-selected="true"]:hover{
  color:#fff !important;
  background:linear-gradient(145deg,#1c4864,#10354e) !important;
}

/* Stronger glass on major surfaces, not every element. */
.sidebar{
  background:rgba(244,249,252,.76) !important;
  backdrop-filter:blur(18px) saturate(125%);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
  border-right:1px solid rgba(255,255,255,.75) !important;
  box-shadow:12px 0 35px rgba(25,55,76,.055);
}
.topbar{
  background:rgba(255,255,255,.55) !important;
  backdrop-filter:blur(16px) saturate(120%);
  -webkit-backdrop-filter:blur(16px) saturate(120%);
  border-bottom:1px solid rgba(255,255,255,.72) !important;
}
.request-dialog,
.calendar-event-dialog,
.operational-mail-card{
  background:rgba(255,255,255,.80) !important;
  backdrop-filter:blur(26px) saturate(130%);
  -webkit-backdrop-filter:blur(26px) saturate(130%);
  border:1px solid rgba(255,255,255,.88) !important;
  box-shadow:0 28px 70px rgba(17,46,65,.17), inset 0 1px 0 rgba(255,255,255,.75);
}
.calendar-shell,
.calendar-day-panel,
.requests-panel,
.course-panel,
.course-row,
.formadores-panel{
  background:rgba(255,255,255,.66) !important;
  backdrop-filter:blur(14px) saturate(118%);
  -webkit-backdrop-filter:blur(14px) saturate(118%);
  border-color:rgba(255,255,255,.80) !important;
  box-shadow:var(--ms-shadow-soft);
}

/* Neumorphism for controls that should feel pressable. */
.calendar-arrow,
.mobile-toggle,
.request-close,
.self-add-range,
.secondary-button,
.secondary-action,
.action-button,
.nav-icon{
  box-shadow:var(--ms-neu-out);
}
.calendar-arrow:active,
.mobile-toggle:active,
.request-close:active,
.secondary-button:active,
.secondary-action:active,
.action-button:active{
  box-shadow:var(--ms-neu-in);
  transform:translateY(1px);
}
.primary-button,
.primary-action{
  box-shadow:0 8px 18px rgba(15,47,70,.16), inset 0 1px 0 rgba(255,255,255,.16);
}

/* Inputs should look recessed and clearly editable. */
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea{
  background:rgba(252,254,255,.80) !important;
  border-color:rgba(136,169,187,.30) !important;
  box-shadow:var(--ms-neu-in);
}
input:focus,
select:focus,
textarea:focus{
  outline:none;
  border-color:rgba(70,146,185,.58) !important;
  box-shadow:0 0 0 3px rgba(100,177,216,.12), var(--ms-neu-in);
}

/* More legible request metadata. */
.request-meta span,
.request-summary-item span,
.request-summary-item small,
.request-detail-head .meta,
.request-primary-details span{
  font-size:.61rem !important;
}
.request-meta strong,
.request-summary-item strong,
.request-primary-details strong{
  font-size:.76rem !important;
}

/* Course catalogue: Carmen explicitly asked for bigger text everywhere. */
.course-row,
.course-card,
.course-list-item{
  font-size:.8rem !important;
}
.course-row h3,
.course-card h3,
.course-list-item h3,
.course-commercial-title{
  font-size:1rem !important;
  line-height:1.25;
}
.course-row .course-formal-name,
.course-card .course-formal-name,
.course-list-item .course-formal-name,
.course-formal-title,
.course-name{
  font-size:.82rem !important;
  line-height:1.35;
  color:#3f6176;
  font-weight:750;
}
.course-row p,
.course-card p,
.course-list-item p,
.course-row small,
.course-card small,
.course-list-item small,
.course-meta,
.course-description{
  font-size:.72rem !important;
  line-height:1.45;
}
.course-row .tag,
.course-card .tag,
.course-list-item .tag{
  font-size:.66rem !important;
}

/* Calendar: larger legibility while preserving premium feel. */
.calendar-weekdays span{
  font-size:.64rem !important;
}
.management-day-number{
  font-size:.72rem !important;
}
.ms-day-event{
  min-height:31px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
}
.ms-day-event i{
  font-size:.51rem !important;
}
.ms-day-event b,
.ms-day-event em{
  font-size:.54rem !important;
}
.calendar-training-time{
  font-size:.73rem !important;
}
.calendar-training-main strong{
  font-size:.78rem !important;
}
.calendar-training-main small,
.calendar-training-meta small{
  font-size:.63rem !important;
}
.calendar-training-meta b{
  font-size:.7rem !important;
}

/* Glass status chips with readable text. */
.request-state,
.status-badge,
.badge{
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 6px 16px rgba(31,62,80,.07), inset 0 1px 0 rgba(255,255,255,.65);
  font-size:.7rem !important;
}
.request-state[data-state="esperando_respuesta"]{
  background:rgba(255,240,209,.82) !important;
  color:#805d1d !important;
}
.request-state[data-state="agendada"]{
  background:rgba(224,244,234,.82) !important;
  color:#2f7055 !important;
}
.request-state[data-state="pendiente_gestion"],
.request-state[data-state="nueva"]{
  background:rgba(226,241,250,.84) !important;
  color:#2b6685 !important;
}

/* Selected/interactive cards visibly tactile. */
.response-option,
.trainer-card,
.calendar-training-card,
.decision-card,
.self-option-card{
  background:rgba(255,255,255,.67) !important;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 7px 20px rgba(27,59,78,.055);
  transition:.16s ease;
}
.response-option:hover,
.trainer-card:hover,
.calendar-training-card:hover,
.decision-card:hover,
.self-option-card:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(27,59,78,.095);
  border-color:rgba(85,152,187,.40) !important;
}

/* Make navigation more tactile without visual overload. */
.nav a{
  border:1px solid transparent;
}
.nav a:hover{
  background:rgba(255,255,255,.52) !important;
  border-color:rgba(255,255,255,.72);
  box-shadow:var(--ms-neu-out);
  color:var(--ms-navy) !important;
}
.nav a.active{
  background:linear-gradient(145deg,rgba(222,240,249,.92),rgba(244,250,253,.88)) !important;
  color:#174d6b !important;
  border-color:rgba(118,174,202,.28);
  box-shadow:var(--ms-neu-in);
}

/* Slight ambient background gradients so glass has something elegant to reveal. */
body::before,
body::after{
  content:"";
  position:fixed;
  z-index:-2;
  border-radius:999px;
  filter:blur(20px);
  pointer-events:none;
}
body::before{
  width:420px;height:420px;left:-120px;top:12%;
  background:radial-gradient(circle,rgba(192,228,244,.25),rgba(192,228,244,0) 68%);
}
body::after{
  width:500px;height:500px;right:-170px;bottom:-120px;
  background:radial-gradient(circle,rgba(198,233,216,.18),rgba(198,233,216,0) 70%);
}

/* Keep large titles exactly as before. */
.page-head h1,
.request-detail-head h2,
.hero-title{
  font-size:revert;
}

/* Mobile: bigger readable text without crowding. */
@media(max-width:760px){
  .nav a,.nav-parent,.nav-submenu a{font-size:.88rem !important}
  button,.primary-button,.secondary-button,.action-button,.filter{font-size:.78rem !important}
  .agenda-readonly-grid{grid-template-columns:1fr}
  .agenda-readonly-grid>div{border-right:0;border-bottom:1px solid var(--ms-line)}
}


/* ==========================================================================
   V0.31 · Alumnado / QR
   ========================================================================== */
.alumnado-action{
  background:rgba(229,244,250,.78)!important;
  color:#245e7b!important;
}
.agenda-students-view{padding-top:2px}
.students-registration-shell{
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.15fr);
  gap:22px;
  margin-top:16px;
}
.students-qr-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:22px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:18px;
  background:rgba(255,255,255,.68);
  box-shadow:var(--ms-shadow-soft);
}
.students-qr{
  width:226px;min-height:226px;
  display:grid;place-items:center;
  padding:8px;
  border-radius:14px;
  background:#fff;
  box-shadow:var(--ms-neu-in);
}
.students-qr img,.students-qr canvas{max-width:100%;height:auto}
.students-qr-card>strong{margin-top:14px;color:var(--ms-navy);font-size:.82rem}
.students-qr-card>span{margin-top:3px;color:var(--ms-muted);font-size:.68rem}
.qr-loading,.qr-error{font-size:.67rem;color:var(--ms-muted);padding:25px;text-align:center}
.students-registration-info{display:grid;align-content:start;gap:12px}
.students-count-card{
  padding:18px;
  border-radius:16px;
  background:linear-gradient(145deg,rgba(229,244,250,.82),rgba(249,253,255,.75));
  box-shadow:var(--ms-neu-out);
}
.students-count-card span,.students-count-card strong,.students-count-card small{display:block}
.students-count-card span{font-size:.57rem;letter-spacing:.1em;font-weight:850;color:#6c8798}
.students-count-card strong{font-size:2.2rem;line-height:1;color:#174d6b;margin:7px 0 4px}
.students-count-card small{color:#718795;font-size:.64rem}
.students-link-box{
  display:grid;gap:7px;padding:14px;border:1px solid rgba(255,255,255,.78);
  border-radius:14px;background:rgba(255,255,255,.58)
}
.students-link-box>span{font-size:.62rem;color:#758996;font-weight:800}
.students-link-box code{
  display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:9px;border-radius:9px;background:rgba(240,247,250,.8);color:#466476;font-size:.61rem
}
.students-list-panel{margin-top:18px;border-top:1px solid rgba(127,158,175,.22);padding-top:16px}
.students-list-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:8px}
.students-list-head h4{margin:3px 0 0;color:var(--ms-navy);font-size:.92rem}
.students-list{display:grid;gap:6px}
.student-row{
  display:grid;grid-template-columns:minmax(0,1fr) 160px 100px;
  align-items:center;gap:12px;padding:10px 12px;
  border:1px solid rgba(220,231,236,.8);border-radius:11px;background:rgba(255,255,255,.62)
}
.student-main strong,.student-main small,.student-doc span,.student-doc strong,.student-date span,.student-date strong{display:block}
.student-main strong{color:#34566b;font-size:.72rem}.student-main small{color:#82939e;font-size:.62rem}
.student-doc span,.student-date span{color:#94a2aa;font-size:.51rem;text-transform:uppercase;font-weight:850}
.student-doc strong,.student-date strong{color:#536f80;font-size:.62rem;margin-top:2px}
.students-empty{padding:18px;border-radius:11px;background:rgba(246,249,250,.75);color:#81929d;font-size:.67rem;text-align:center}

/* Public registration form */
.student-registration-page{
  min-height:100vh;
  margin:0;
  background:
    radial-gradient(circle at 10% 16%,rgba(181,224,243,.28),transparent 30%),
    radial-gradient(circle at 88% 82%,rgba(198,233,216,.22),transparent 27%),
    linear-gradient(145deg,#f6fafc,#fbfdfc);
}
.student-registration-main{
  min-height:100vh;display:grid;place-items:center;padding:28px;
}
.student-registration-card{
  width:min(780px,100%);
  padding:34px;
  border:1px solid rgba(255,255,255,.88);
  border-radius:24px;
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(24px) saturate(125%);
  -webkit-backdrop-filter:blur(24px) saturate(125%);
  box-shadow:0 28px 70px rgba(17,46,65,.13);
}
.student-registration-brand h1{
  margin:5px 0 9px;color:var(--ms-navy);font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.045em;line-height:1
}
.student-registration-brand p{max-width:620px;color:var(--ms-muted);font-size:.78rem;line-height:1.5}
.student-training-context{
  margin:22px 0;padding:17px 18px;border-radius:16px;
  background:linear-gradient(145deg,rgba(229,244,250,.84),rgba(248,252,254,.76));
  box-shadow:var(--ms-neu-out)
}
.student-context-label{font-size:.56rem;letter-spacing:.1em;color:#66889b;font-weight:850}
.student-training-context h2{margin:5px 0 8px;color:#1d4b67;font-size:1.25rem}
.student-context-meta{display:flex;gap:8px;flex-wrap:wrap}
.student-context-meta span{padding:5px 8px;border-radius:99px;background:rgba(255,255,255,.62);font-size:.65rem;color:#527285}
.student-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.student-form-grid label{display:grid;gap:6px}
.student-form-grid label>span{font-size:.65rem;font-weight:800;color:#516f81}
.student-form-grid input,.student-form-grid select{
  width:100%;height:45px;padding:0 11px;border-radius:10px;border:1px solid rgba(130,165,184,.3);
  background:rgba(252,254,255,.82);box-shadow:var(--ms-neu-in);font:inherit;color:#36576b
}
.student-wide{grid-column:1/-1}
.student-consent{display:grid;grid-template-columns:18px 1fr;gap:9px;align-items:start;margin:17px 0;color:#69808f;font-size:.65rem;line-height:1.45}
.student-consent input{margin-top:2px}
.student-submit{width:100%;min-height:46px}
.student-form-note{margin:11px 0 0;text-align:center;color:#8b9aa4;font-size:.6rem}
.student-registration-success{text-align:center;padding:35px 10px 15px}
.student-success-icon{width:58px;height:58px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#e4f5ec;color:#317154;font-size:1.5rem;font-weight:900;box-shadow:var(--ms-neu-out)}
.student-registration-success h2{margin:15px 0 6px;color:var(--ms-navy)}
.student-registration-success p{color:var(--ms-muted)}
.student-registration-error{margin-top:18px;padding:13px;border-radius:11px;background:#fbeceb;color:#8a4949;font-size:.7rem}
.student-loading{color:#7d919d;font-size:.7rem}

@media(max-width:720px){
  .students-registration-shell{grid-template-columns:1fr}
  .student-row{grid-template-columns:1fr 1fr}
  .student-date{display:none}
  .student-registration-card{padding:23px 18px;border-radius:18px}
  .student-registration-main{padding:12px}
  .student-form-grid{grid-template-columns:1fr}
  .student-wide{grid-column:auto}
}

/* ==========================================================================
   V0.32 · Formaciones
   ========================================================================== */
.formations-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:4px 0 18px}
.formation-tabs{display:flex;gap:8px;flex-wrap:wrap}
.formation-tab{border:1px solid rgba(255,255,255,.78);background:rgba(244,249,251,.72);color:#567486;border-radius:999px;padding:9px 13px;font-weight:800;box-shadow:var(--ms-neu-out);cursor:pointer}
.formation-tab span{margin-left:5px;opacity:.65}.formation-tab.active{background:#143f5a;color:#fff;box-shadow:0 8px 18px rgba(16,54,78,.16)}
.formation-search{min-width:280px;display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:12px;background:rgba(255,255,255,.7);box-shadow:var(--ms-neu-in)}
.formation-search input{height:42px;width:100%;border:0!important;background:transparent!important;box-shadow:none!important;outline:0;color:#466579}
.formations-list-panel{padding:8px!important}.formations-list{display:grid;gap:7px}
.formation-row{width:100%;display:grid;grid-template-columns:150px minmax(0,1fr) 100px 32px;align-items:center;gap:16px;text-align:left;padding:15px 16px;border:1px solid rgba(221,232,237,.8);border-radius:14px;background:rgba(255,255,255,.62);cursor:pointer;transition:.16s ease}
.formation-row:hover{transform:translateY(-1px);background:rgba(255,255,255,.86);box-shadow:0 10px 24px rgba(21,55,75,.07)}
.formation-date small,.formation-date strong,.formation-row-main strong,.formation-row-main small{display:block}
.formation-date small{font-size:.52rem;letter-spacing:.09em;color:#91a0a8;font-weight:850}.formation-date strong{font-size:.69rem;color:#526f80;margin-top:3px}
.formation-row-main strong{font-size:.78rem;color:#315b74}.formation-row-main small{font-size:.63rem;color:#82939e;margin-top:3px}
.formation-row-status,.formation-status{justify-self:start;padding:6px 9px;border-radius:999px;font-size:.57rem;font-weight:850}
.formation-row-status.agendada,.formation-status.agendada{background:#e4f1f8;color:#326b89}.formation-row-status.realizada,.formation-status.realizada{background:#e6f4ec;color:#39745a}
.formation-row-arrow{font-size:1rem;color:#8da1ad}.formations-empty{padding:28px;text-align:center;color:#82949f;font-size:.68rem}.formations-empty.error{color:#945151}
.formation-detail-modal{width:min(900px,calc(100vw - 36px));max-height:calc(100vh - 36px);overflow:auto;margin:auto;padding:25px;border:1px solid rgba(255,255,255,.85);border-radius:22px;background:rgba(249,252,253,.92);backdrop-filter:blur(24px);box-shadow:0 30px 80px rgba(11,38,55,.2)}
.formation-detail-head{display:flex;justify-content:space-between;align-items:center}.formation-hero{margin:18px 0}.formation-hero h2{font-size:1.8rem;line-height:1.05;color:var(--ms-navy);margin:5px 0}.formation-hero p{color:#738895;margin:0}
.formation-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0 24px}.formation-facts>div{padding:13px;border-radius:13px;background:rgba(237,246,250,.7);box-shadow:var(--ms-neu-in)}.formation-facts span,.formation-facts strong{display:block}.formation-facts span{font-size:.52rem;text-transform:uppercase;color:#8a9ba5;font-weight:850}.formation-facts strong{font-size:.66rem;color:#4d6b7d;margin-top:4px}
.formation-section-head{display:flex;justify-content:space-between;align-items:end;margin:12px 0 9px}.formation-section-head h3,.certificates-card h3{margin:3px 0 0;color:#315b74;font-size:.95rem}.formation-student-count{font-size:1.6rem;color:#1c5878}
.detail-search{width:100%;min-width:0;margin-bottom:10px}.formation-students{display:grid;gap:6px;max-height:300px;overflow:auto}
.formation-student-row{display:grid;grid-template-columns:36px minmax(0,1fr) 150px;align-items:center;gap:10px;padding:9px 11px;border-radius:11px;background:rgba(255,255,255,.65);border:1px solid rgba(221,232,237,.75)}
.student-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e4f1f7;color:#3d718d;font-size:.6rem;font-weight:900}.formation-student-row strong,.formation-student-row small{display:block}.formation-student-row>div:nth-child(2)>strong{font-size:.69rem;color:#476678}.formation-student-row small{font-size:.58rem;color:#8999a2;margin-top:2px}.student-document span{display:block;font-size:.49rem;color:#9aa7ae;font-weight:850}.student-document strong{font-size:.61rem;color:#587485;margin-top:2px}
.certificates-card{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:20px;padding:18px;border-radius:16px;background:linear-gradient(145deg,rgba(232,245,239,.78),rgba(249,252,250,.78));box-shadow:var(--ms-neu-out)}.certificates-card p{margin:5px 0 0;color:#738a7e;font-size:.63rem;max-width:520px}
@media(max-width:760px){.formations-toolbar{align-items:stretch;flex-direction:column}.formation-search{min-width:0}.formation-row{grid-template-columns:90px 1fr 28px}.formation-row-status{display:none}.formation-facts{grid-template-columns:1fr 1fr}.certificates-card{align-items:stretch;flex-direction:column}.formation-student-row{grid-template-columns:36px 1fr}.student-document{grid-column:2}}


/* ==========================================================================
   V0.33 · Fix apertura ficha de Formaciones
   ========================================================================== */
#formationModal.modal-backdrop{
  position:fixed;
  inset:0;
  z-index:1700;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(8,31,47,.38);
  backdrop-filter:blur(12px) saturate(110%);
  -webkit-backdrop-filter:blur(12px) saturate(110%);
}
#formationModal.modal-backdrop[hidden]{
  display:none !important;
}
#formationModal .formation-detail-modal{
  position:relative;
  z-index:1;
}


/* ==========================================================================
   V0.34 · Ficha Formaciones: alumnado contenido + cierre consistente
   ========================================================================== */

/* Todas las fichas de este tipo deben ofrecer cierre directo arriba a la derecha. */
#formationModal .formation-detail-modal{
  position:relative;
  overflow:hidden;
}
#formationModal .formation-x-close{
  position:absolute;
  top:22px;
  right:22px;
  z-index:5;
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.86);
  border-radius:50%;
  display:grid;
  place-items:center;
  padding:0;
  background:rgba(239,247,250,.84)!important;
  color:#123c57!important;
  font-size:1.45rem!important;
  font-weight:500;
  line-height:1;
  cursor:pointer;
  box-shadow:6px 6px 15px rgba(43,70,87,.11), -6px -6px 15px rgba(255,255,255,.88);
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
#formationModal .formation-x-close:hover{
  transform:translateY(-1px);
  background:rgba(226,241,248,.96)!important;
}
#formationModal .formation-x-close:active{
  transform:translateY(1px);
  box-shadow:inset 3px 3px 7px rgba(51,78,95,.12), inset -3px -3px 7px rgba(255,255,255,.82);
}
#formationModal .formation-detail-head{
  padding-right:58px;
}

/* El listado no hace crecer la ficha indefinidamente.
   Es una "ventana dentro de la ventana" con scroll propio y aspecto glass. */
.formation-students-viewport{
  position:relative;
  height:260px;
  overflow:hidden;
  padding:7px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:15px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.62),rgba(244,249,251,.55));
  box-shadow:
    inset 3px 3px 8px rgba(48,77,95,.075),
    inset -3px -3px 8px rgba(255,255,255,.8),
    0 8px 20px rgba(20,52,71,.045);
}
.formation-students-viewport::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:0;
  height:18px;
  pointer-events:none;
  border-radius:0 0 12px 12px;
  background:linear-gradient(180deg,rgba(247,251,252,0),rgba(247,251,252,.9));
}
.formation-students{
  height:100%!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden;
  display:grid;
  align-content:start;
  gap:7px;
  padding:2px 5px 18px 2px;
  scrollbar-width:thin;
  scrollbar-color:rgba(87,132,157,.42) transparent;
  overscroll-behavior:contain;
}
.formation-students::-webkit-scrollbar{
  width:7px;
}
.formation-students::-webkit-scrollbar-track{
  background:transparent;
}
.formation-students::-webkit-scrollbar-thumb{
  background:rgba(87,132,157,.32);
  border-radius:999px;
  border:2px solid transparent;
  background-clip:padding-box;
}
.formation-students::-webkit-scrollbar-thumb:hover{
  background:rgba(66,115,143,.50);
  border:2px solid transparent;
  background-clip:padding-box;
}

/* Empty/loading states occupy the inner viewport gracefully. */
.formation-students > .formations-empty:only-child{
  min-height:220px;
  display:grid;
  place-items:center;
  padding:20px;
  background:transparent;
}

/* Keep the full formation sheet within the screen;
   only the sheet itself scrolls if the viewport is especially short. */
#formationModal .formation-detail-modal{
  max-height:calc(100vh - 32px);
  overflow-y:auto;
  scrollbar-width:thin;
}

/* Mobile keeps the same concept, with a slightly smaller student window. */
@media(max-width:760px){
  #formationModal .formation-x-close{
    top:15px;
    right:15px;
    width:44px;
    height:44px;
  }
  #formationModal .formation-detail-head{
    padding-right:52px;
  }
  .formation-students-viewport{
    height:235px;
  }
}


/* ==========================================================================
   V0.35 · Modalidades + solicitud manual
   ========================================================================== */
.requests-head-actions{display:flex;align-items:center;gap:12px}
.manual-request-launch{white-space:nowrap}
.manual-request-dialog{max-width:980px}
.manual-request-form{display:grid;gap:17px;margin-top:16px}
.manual-form-section{padding:16px;border:1px solid rgba(255,255,255,.78);border-radius:16px;background:rgba(255,255,255,.52);box-shadow:0 8px 22px rgba(25,55,74,.045)}
.manual-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.manual-field{display:grid;gap:6px}.manual-field.wide{grid-column:1/-1}.manual-field>span,.manual-ranges-block>span{font-size:.62rem;font-weight:800;color:#5d7889}
.manual-field input,.manual-field select,.manual-field textarea{width:100%;min-height:44px;padding:10px 12px;border-radius:10px}
.manual-modality-options{display:flex;gap:9px;flex-wrap:wrap;margin-top:7px}
.manual-modality-pill{cursor:pointer}.manual-modality-pill input{position:absolute;opacity:0;pointer-events:none}.manual-modality-pill span{display:block;padding:9px 13px;border-radius:999px;background:rgba(241,247,250,.8);color:#537285;font-size:.66rem;font-weight:850;box-shadow:var(--ms-neu-out);border:1px solid rgba(255,255,255,.78)}
.manual-modality-pill input:checked+span{background:linear-gradient(145deg,#173f59,#0e3048);color:#fff;box-shadow:var(--ms-neu-in)}
.manual-placeholder{color:#8999a2;font-size:.64rem}
.manual-date-mode{display:flex;gap:14px;margin:10px 0}.manual-date-mode label{font-size:.66rem;font-weight:750;color:#557486}
.manual-dates,.manual-ranges{display:grid;gap:7px}.manual-date-row,.manual-range-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:8px;align-items:center}.manual-range-row{grid-template-columns:1fr 22px 1fr 34px}
.manual-date-row input,.manual-range-row input{min-height:43px;padding:9px 11px;border-radius:10px}
.manual-date-row button,.manual-range-row button{width:32px;height:32px;border:0;border-radius:50%;background:#edf4f7;color:#668190;cursor:pointer;box-shadow:var(--ms-neu-out)}
.manual-ranges-block{margin-top:14px}.manual-ranges-block small{font-weight:500;color:#8c9aa2}.manual-request-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:2px}
.request-modality-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e7f3f9;color:#376c88;font-size:.56rem;font-weight:850}
.formation-facts{grid-template-columns:repeat(5,1fr)!important}

.course-modalities-note{display:flex;flex-direction:column;gap:4px;padding:14px 16px;margin-bottom:13px;border-radius:13px;background:rgba(230,243,249,.68);box-shadow:var(--ms-neu-in)}
.course-modalities-note strong{color:#315c74;font-size:.72rem}.course-modalities-note span{color:#718895;font-size:.62rem}
.web-courses-editor{display:grid;gap:7px}.web-courses-editor-loading{padding:25px;text-align:center;color:#83949e}
.web-course-modality-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr) 90px;align-items:center;gap:14px;padding:13px 14px;border-radius:13px;border:1px solid rgba(220,231,236,.75);background:rgba(255,255,255,.58)}
.web-course-modality-row>div:first-child strong,.web-course-modality-row>div:first-child small{display:block}.web-course-modality-row>div:first-child strong{font-size:.7rem;color:#3b6076}.web-course-modality-row>div:first-child small{font-size:.56rem;color:#8a99a2;margin-top:2px}
.web-course-modality-options{display:flex;gap:7px;justify-content:flex-end}.web-modality-toggle input{position:absolute;opacity:0}.web-modality-toggle span{display:block;padding:7px 9px;border-radius:999px;background:#f0f5f7;color:#738895;font-size:.57rem;font-weight:800;cursor:pointer;box-shadow:var(--ms-neu-out)}.web-modality-toggle input:checked+span{background:#e2f1f8;color:#2c6785;box-shadow:var(--ms-neu-in)}
.web-course-save{font-size:.61rem!important}

@media(max-width:800px){
  .requests-head-actions{align-items:flex-end;flex-direction:column}.manual-grid{grid-template-columns:1fr}.manual-field.wide{grid-column:auto}
  .web-course-modality-row{grid-template-columns:1fr}.web-course-modality-options{justify-content:flex-start}
  .formation-facts{grid-template-columns:1fr 1fr!important}
}


/* ==========================================================================
   V0.36 · CTA manual + navegación tipo aplicación
   ========================================================================== */
.manual-request-entry{
  display:flex;
  justify-content:flex-start;
  margin:22px 0 20px;
}
.manual-request-main-button{
  display:flex;align-items:center;gap:13px;
  min-width:330px;
  padding:13px 19px 13px 13px;
  border:1px solid rgba(255,255,255,.84);
  border-radius:17px;
  background:linear-gradient(145deg,rgba(224,241,249,.96),rgba(248,252,254,.88));
  color:#184d6b;
  cursor:pointer;text-align:left;
  box-shadow:7px 7px 17px rgba(48,76,94,.11),-7px -7px 17px rgba(255,255,255,.9);
  transition:.16s ease;
}
.manual-request-main-button:hover{
  transform:translateY(-2px);
  background:linear-gradient(145deg,rgba(214,237,248,.98),rgba(249,253,255,.94));
  box-shadow:10px 10px 22px rgba(48,76,94,.13),-8px -8px 18px rgba(255,255,255,.92);
}
.manual-request-main-button:active{
  transform:translateY(1px);
  box-shadow:inset 3px 3px 8px rgba(50,79,96,.12),inset -3px -3px 8px rgba(255,255,255,.86);
}
.manual-request-plus{
  flex:0 0 44px;width:44px;height:44px;
  display:grid;place-items:center;
  border-radius:13px;
  background:linear-gradient(145deg,#173f59,#0e3048);
  color:#fff;font-size:1.5rem;font-weight:500;
  box-shadow:0 8px 17px rgba(16,55,79,.17),inset 0 1px 0 rgba(255,255,255,.18);
}
.manual-request-main-button strong,.manual-request-main-button small{display:block}
.manual-request-main-button strong{font-size:.78rem;color:#234f69}
.manual-request-main-button small{font-size:.59rem;color:#78909e;margin-top:3px;font-weight:600}
.requests-summary{margin-left:auto}

/* Turbo preview/transitions: remove the visual "full reload" feeling. */
html[data-turbo-preview] body{opacity:.99}
body{transition:opacity .08s ease}
@media(max-width:700px){
  .manual-request-main-button{min-width:0;width:100%}
}


/* ==========================================================================
   V0.37 · Turbo initialization + active navigation
   ========================================================================== */
.nav a.active,
.nav a.active:hover{
  color:#174d6b!important;
  background:linear-gradient(145deg,rgba(218,239,249,.96),rgba(248,252,254,.90))!important;
  border-color:rgba(105,169,201,.32)!important;
  box-shadow:
    inset 3px 3px 7px rgba(52,82,99,.09),
    inset -3px -3px 7px rgba(255,255,255,.84)!important;
}
.nav a.active .nav-icon{
  color:#174d6b!important;
}


/* ==========================================================================
   V0.38 · Fidelización
   ========================================================================== */
.loyalty-page{padding-bottom:70px}
.loyalty-metrics{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin:4px 0 26px;
}
.loyalty-metric{
  padding:17px 18px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:16px;
  background:rgba(255,255,255,.62);
  backdrop-filter:blur(12px);
  box-shadow:var(--ms-shadow-soft);
}
.loyalty-metric span,.loyalty-metric strong,.loyalty-metric small{display:block}
.loyalty-metric span{font-size:.54rem;letter-spacing:.1em;color:#8a9ba5;font-weight:900}
.loyalty-metric strong{font-size:1.65rem;color:#184f6e;line-height:1.05;margin:8px 0 4px}
.loyalty-metric small{font-size:.59rem;color:#81939e}
.loyalty-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:12px}
.loyalty-toolbar h2{font-size:1.12rem}
.loyalty-panel{padding:8px!important}
.loyalty-list{display:grid;gap:9px}
.loyalty-row{
  padding:17px;
  border:1px solid rgba(219,231,237,.82);
  border-radius:16px;
  background:rgba(255,255,255,.65);
  box-shadow:0 8px 22px rgba(24,55,73,.045);
}
.loyalty-main{display:flex;justify-content:space-between;align-items:start;gap:14px}
.loyalty-company h3{font-size:.9rem;color:#315b73}
.loyalty-company p{font-size:.62rem;color:#82939d;margin:4px 0 0}
.loyalty-company .eyebrow{margin-bottom:4px}
.loyalty-status{padding:6px 9px;border-radius:999px;font-size:.56rem;font-weight:850;white-space:nowrap}
.loyalty-status.normal{background:#e5f1f8;color:#326a88}
.loyalty-status.soon{background:#fff2d8;color:#876321}
.loyalty-status.urgent{background:#fde9df;color:#94533d}
.loyalty-status.overdue{background:#f8e4e4;color:#914949}
.loyalty-dates{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:13px 0;
}
.loyalty-dates>div{
  padding:10px 11px;border-radius:11px;
  background:rgba(239,247,250,.66);
  box-shadow:var(--ms-neu-in);
}
.loyalty-dates span,.loyalty-dates strong{display:block}
.loyalty-dates span{font-size:.51rem;color:#91a0a8;text-transform:uppercase;font-weight:850}
.loyalty-dates strong{font-size:.63rem;color:#536f80;margin-top:3px}
.loyalty-actions{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding-top:11px;border-top:1px solid rgba(218,229,234,.72)
}
.loyalty-actions>div span,.loyalty-actions>div strong{display:block}
.loyalty-actions>div span{font-size:.51rem;color:#95a3aa;text-transform:uppercase;font-weight:850}
.loyalty-actions>div strong{font-size:.62rem;color:#577486;margin-top:2px}
.loyalty-contact-btn{font-size:.64rem!important}
.loyalty-empty{text-align:center;padding:50px 22px}
.loyalty-empty-icon{
  width:58px;height:58px;margin:0 auto 14px;display:grid;place-items:center;
  border-radius:50%;background:#e6f2f8;color:#39708d;font-size:1.4rem;
  box-shadow:var(--ms-neu-out)
}
.loyalty-empty h3{font-size:.9rem}
.loyalty-empty p{max-width:560px;margin:7px auto 18px;color:#7d909b;font-size:.64rem;line-height:1.5}

/* Course renewal editor */
.course-renewal-panel{margin-top:18px}
.course-renewal-editor{display:grid;gap:7px;padding:0 8px 8px}
.course-renewal-row{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) 125px 145px 145px 88px;
  gap:12px;align-items:center;
  padding:13px 14px;
  border-radius:13px;
  border:1px solid rgba(219,231,236,.78);
  background:rgba(255,255,255,.58);
}
.course-renewal-name strong,.course-renewal-name small{display:block}
.course-renewal-name strong{font-size:.69rem;color:#3b6076}
.course-renewal-name small{font-size:.55rem;color:#8b9aa3;margin-top:2px}
.renewal-switch{display:flex;align-items:center;gap:7px;cursor:pointer}
.renewal-switch input{position:absolute;opacity:0}
.renewal-switch span{
  width:34px;height:19px;border-radius:999px;background:#dfe9ee;position:relative;
  box-shadow:var(--ms-neu-in);transition:.15s ease
}
.renewal-switch span::after{
  content:"";position:absolute;width:15px;height:15px;border-radius:50%;left:2px;top:2px;
  background:#fff;box-shadow:0 2px 5px rgba(20,52,70,.18);transition:.15s ease
}
.renewal-switch input:checked+span{background:#a9d7c1}
.renewal-switch input:checked+span::after{transform:translateX(15px)}
.renewal-switch b{font-size:.57rem;color:#617b8a}
.renewal-field{display:grid;gap:4px}
.renewal-field>span{font-size:.51rem;text-transform:uppercase;color:#93a1a8;font-weight:850}
.renewal-field>div{display:flex;align-items:center;gap:5px}
.renewal-field input{width:64px;height:36px;padding:6px 8px;border-radius:9px}
.renewal-field small{font-size:.54rem;color:#8798a2}
.renewal-save{font-size:.58rem!important}

@media(max-width:900px){
  .loyalty-metrics{grid-template-columns:1fr}
  .loyalty-toolbar{align-items:stretch;flex-direction:column}
  .loyalty-dates{grid-template-columns:1fr}
  .course-renewal-row{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .loyalty-actions{align-items:stretch;flex-direction:column}
  .loyalty-contact-btn{width:100%}
}


/* ==========================================================================
   V0.39 · Formaciones: QR accesible + ficha compacta
   ========================================================================== */
.formation-operations{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:11px;
  margin:18px 0 17px;
}
.formation-operation-card{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:82px;
  padding:13px 14px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:15px;
  background:rgba(255,255,255,.60);
  box-shadow:var(--ms-shadow-soft);
}
.formation-operation-card.certificates{
  background:linear-gradient(145deg,rgba(232,245,239,.74),rgba(249,252,250,.72));
}
.formation-operation-icon{
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:13px;
  background:#e4f2f8;
  color:#2f6b8a;
  font-size:1rem;font-weight:900;
  box-shadow:var(--ms-neu-out);
}
.formation-operation-icon.certificate{
  background:#e5f3eb;
  color:#3d745a;
}
.formation-operation-copy h3{
  margin:1px 0 2px;
  color:#315b74;
  font-size:.78rem;
}
.formation-operation-copy p{
  margin:0;
  color:#7c909b;
  font-size:.58rem;
}
.formation-operation-copy p strong{
  color:#315d76;
  font-size:.68rem;
}
.formation-operation-button{
  min-width:100px;
  font-size:.59rem!important;
  padding:8px 11px!important;
}
.formation-operation-card.registration-closed{
  opacity:.72;
}
.compact-students-head{
  margin:7px 0 7px!important;
}
.compact-students-head h3{
  font-size:.82rem!important;
}
.compact-search{
  margin-bottom:8px!important;
}
.compact-students-viewport{
  height:170px!important;
  min-height:170px!important;
}
.compact-students-viewport .formation-students > .formations-empty:only-child{
  min-height:150px!important;
}
.formation-student-row{
  padding:7px 10px!important;
}
.certificates-card{
  display:none!important;
}

/* Internal QR step in the same formation sheet. */
.formation-inner-view-head{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:18px;
  padding:8px 58px 8px 0;
  margin-top:7px;
}
.formation-inner-view-head h2{
  margin:3px 0 4px;
  color:var(--ms-navy);
  font-size:1.35rem;
  line-height:1.08;
}
.formation-inner-view-head p{
  margin:0;
  color:#768b98;
  font-size:.65rem;
}
.formation-registration-layout{
  display:grid;
  grid-template-columns:minmax(250px,.7fr) minmax(0,1fr);
  gap:18px;
  margin-top:18px;
}
.formation-registration-qr-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:19px;
  border:1px solid rgba(255,255,255,.84);
  border-radius:17px;
  background:rgba(255,255,255,.65);
  box-shadow:var(--ms-shadow-soft);
}
.formation-registration-qr-card>strong{
  margin-top:12px;
  color:#315c74;
  font-size:.72rem;
}
.formation-registration-qr-card>span{
  color:#80939e;
  font-size:.59rem;
  margin-top:3px;
}
.formation-registration-tools{
  display:grid;
  align-content:start;
  gap:12px;
}
.students-count-card.compact{
  padding:15px!important;
}
.students-count-card.compact strong{
  font-size:1.8rem!important;
}
#formationRegistrationView .students-link-box{
  padding:13px;
}
#formationRegistrationView .students-link-box code{
  font-size:.58rem;
}

@media(max-width:760px){
  .formation-operations{grid-template-columns:1fr}
  .formation-operation-card{grid-template-columns:42px 1fr}
  .formation-operation-button{grid-column:1/-1;width:100%}
  .formation-registration-layout{grid-template-columns:1fr}
  .compact-students-viewport{height:155px!important;min-height:155px!important}
}


/* ==========================================================================
   V0.40 · Clientes · bandeja comercial
   ========================================================================== */
.client-opportunity-tabs{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin:8px 0 26px;
}
.client-tab{
  display:flex;
  align-items:center;
  gap:7px;
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:999px;
  background:rgba(242,248,250,.76);
  color:#527285;
  font-size:.67rem;
  font-weight:850;
  cursor:pointer;
  box-shadow:var(--ms-neu-out);
  transition:.15s ease;
}
.client-tab span{
  min-width:20px;
  padding:2px 5px;
  border-radius:999px;
  background:rgba(255,255,255,.56);
  text-align:center;
  font-size:.54rem;
}
.client-tab.active{
  background:linear-gradient(145deg,#173f59,#0d3048);
  color:#fff;
  box-shadow:inset 3px 3px 7px rgba(0,0,0,.15),0 8px 18px rgba(14,49,71,.13);
}
.client-tab.active span{background:rgba(255,255,255,.14)}
.client-toolbar h2{margin:3px 0 3px}
.client-toolbar p{margin:0;color:#81939e;font-size:.62rem}
.client-opportunity-panel{padding:8px!important}
.client-opportunity-list{display:grid;gap:9px}

.client-opportunity-card{
  padding:17px;
  border:1px solid rgba(218,230,236,.82);
  border-radius:16px;
  background:rgba(255,255,255,.66);
  box-shadow:0 8px 24px rgba(20,53,72,.045);
}
.client-opportunity-card.managed{opacity:.86}

.client-opportunity-top{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:start;
}
.client-opportunity-top h3{
  margin:5px 0 3px;
  color:#315b74;
  font-size:.88rem;
}
.client-opportunity-top p{
  margin:0;
  color:#82939d;
  font-size:.61rem;
  max-width:680px;
}
.client-company-name{
  display:block!important;
  margin-top:9px!important;
}
.client-opportunity-type{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  font-size:.53rem;
  font-weight:900;
}
.client-opportunity-type.expiry{background:#fff0d8;color:#835f20}
.client-opportunity-type.habitual{background:#e4f1f8;color:#316c8a}
.client-opportunity-type.other{background:#e9ecfa;color:#565f91}

.client-due-date{text-align:right;white-space:nowrap}
.client-due-date small,.client-due-date strong{display:block}
.client-due-date small{font-size:.48rem;letter-spacing:.07em;color:#98a5ac;font-weight:900}
.client-due-date strong{font-size:.65rem;color:#577485;margin-top:3px}

.client-opportunity-details{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:13px 0;
}
.client-opportunity-details>div{
  padding:9px 11px;
  border-radius:10px;
  background:rgba(239,247,250,.67);
  box-shadow:var(--ms-neu-in);
}
.client-opportunity-details span,.client-opportunity-details strong{display:block}
.client-opportunity-details span{
  font-size:.48rem;
  color:#95a2a9;
  text-transform:uppercase;
  font-weight:850;
}
.client-opportunity-details strong{
  margin-top:3px;
  color:#557283;
  font-size:.61rem;
}

.client-opportunity-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding-top:11px;
  border-top:1px solid rgba(219,230,235,.72);
}
.client-contact-summary span,
.client-contact-summary strong,
.client-contact-summary small{display:block}
.client-contact-summary span{
  font-size:.47rem;color:#9aa6ad;text-transform:uppercase;font-weight:850
}
.client-contact-summary strong{font-size:.62rem;color:#536f80;margin-top:2px}
.client-contact-summary small{font-size:.55rem;color:#8999a2;margin-top:1px}

.client-opportunity-actions{display:flex;gap:8px}
.client-opportunity-actions button{font-size:.59rem!important}
.client-skip{color:#7c8b93!important}

.client-managed-state{
  padding:6px 9px;
  border-radius:999px;
  font-size:.54rem;
  font-weight:850;
  white-space:nowrap;
}
.client-managed-state.contacted{background:#e4f3eb;color:#3e765b}
.client-managed-state.discarded{background:#edf0f2;color:#76858d}
.client-managed-meta{font-size:.55rem;color:#8b9aa2}

@media(max-width:760px){
  .client-opportunity-top,.client-opportunity-footer{flex-direction:column;align-items:stretch}
  .client-due-date{text-align:left}
  .client-opportunity-details{grid-template-columns:1fr}
  .client-opportunity-actions{display:grid;grid-template-columns:1fr 1fr}
}


/* ==========================================================================
   V0.41 · Clientes: tipografía mayor + categorías más visuales
   ========================================================================== */

/* Regla de interfaz: textos medianos por defecto en Clientes. */
.clients-page .client-tab{
  font-size:.82rem!important;
  padding:11px 16px!important;
}
.clients-page .client-tab span{
  font-size:.68rem!important;
  min-width:24px;
  padding:3px 7px;
}
.clients-page .client-toolbar h2{
  font-size:1.28rem!important;
}
.clients-page .client-toolbar p{
  font-size:.78rem!important;
}
.clients-page .formation-search input{
  font-size:.8rem!important;
}

.client-opportunity-card{
  position:relative;
  overflow:hidden;
  padding:18px 18px 18px 22px!important;
  border-width:1px!important;
  transition:.16s ease;
}
.client-opportunity-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  border-radius:16px 0 0 16px;
  background:#b8cad5;
}
.client-opportunity-card:has(.client-opportunity-type.expiry){
  border-color:rgba(217,169,84,.34)!important;
  background:linear-gradient(90deg,rgba(255,245,224,.30),rgba(255,255,255,.68) 24%)!important;
}
.client-opportunity-card:has(.client-opportunity-type.expiry)::before{
  background:#d7a646;
}
.client-opportunity-card:has(.client-opportunity-type.habitual){
  border-color:rgba(91,158,193,.34)!important;
  background:linear-gradient(90deg,rgba(226,242,250,.34),rgba(255,255,255,.68) 24%)!important;
}
.client-opportunity-card:has(.client-opportunity-type.habitual)::before{
  background:#5b9fc2;
}
.client-opportunity-card:has(.client-opportunity-type.other){
  border-color:rgba(124,132,192,.30)!important;
  background:linear-gradient(90deg,rgba(236,238,251,.38),rgba(255,255,255,.68) 24%)!important;
}
.client-opportunity-card:has(.client-opportunity-type.other)::before{
  background:#7e85bd;
}
.client-opportunity-card.managed{
  opacity:.94!important;
}
.client-opportunity-card.managed::before{
  background:#9caab2!important;
}

.client-opportunity-type{
  padding:7px 11px!important;
  font-size:.72rem!important;
  letter-spacing:.01em;
}
.client-company-name{
  font-size:.68rem!important;
  margin-top:10px!important;
}
.client-opportunity-top h3{
  font-size:1rem!important;
  margin:7px 0 5px!important;
}
.client-opportunity-top p{
  font-size:.76rem!important;
  line-height:1.45;
}
.client-due-date small{
  font-size:.6rem!important;
}
.client-due-date strong{
  font-size:.78rem!important;
}

.client-opportunity-details span{
  font-size:.6rem!important;
}
.client-opportunity-details strong{
  font-size:.75rem!important;
}
.client-opportunity-details>div{
  padding:11px 12px!important;
}

.client-contact-summary span{
  font-size:.58rem!important;
}
.client-contact-summary strong{
  font-size:.76rem!important;
}
.client-contact-summary small{
  font-size:.68rem!important;
}
.client-opportunity-actions button,
.client-restore{
  font-size:.72rem!important;
  min-height:39px;
  padding:9px 13px!important;
}
.client-managed-state{
  font-size:.7rem!important;
  padding:7px 10px!important;
}
.client-managed-meta{
  font-size:.67rem!important;
}
.client-managed-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.client-restore{
  white-space:nowrap;
}

@media(max-width:760px){
  .client-managed-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .client-restore{
    width:100%;
  }
}

/* ==========================================================================
   V0.42 · Registro base de certificados
   ========================================================================== */
.formation-operation-card.certificates .formation-operation-copy p{
  max-width:300px;
}
.formation-operation-card.certificates .formation-operation-button:disabled{
  opacity:.5;
  cursor:not-allowed;
}

/* V0.44 · Formadores QR / formulario propio */
.trainer-add-methods{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:5px 0 19px}
.trainer-add-card{display:grid;grid-template-columns:52px minmax(0,1fr) 24px;gap:13px;align-items:center;min-height:92px;padding:15px;border:1px solid rgba(255,255,255,.84);border-radius:17px;background:rgba(255,255,255,.60);color:#385e74;text-align:left;cursor:pointer;box-shadow:var(--ms-shadow-soft);transition:.16s ease}
.trainer-add-card:hover{transform:translateY(-2px);box-shadow:0 13px 28px rgba(24,55,73,.09)}
.trainer-add-card.primary-method{background:linear-gradient(145deg,rgba(224,242,249,.92),rgba(249,252,254,.82));border-color:rgba(108,172,202,.30)}
.trainer-add-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:14px;background:#dff0f8;color:#28698b;font-size:1.15rem;box-shadow:var(--ms-neu-out)}
.trainer-add-icon.excel{background:#e8f3ec;color:#49765e}
.trainer-add-card small,.trainer-add-card strong,.trainer-add-card em{display:block}
.trainer-add-card small{font-size:.64rem!important;letter-spacing:.09em;font-weight:900;color:#8597a2}
.trainer-add-card strong{font-size:.9rem!important;color:#315c74;margin:3px 0}
.trainer-add-card em{font-size:.7rem!important;font-style:normal;color:#7c909c;line-height:1.35}
.trainer-add-card>b{font-size:1rem;color:#7e96a4}
.trainer-registration-dialog{max-width:760px}
.trainer-registration-share{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;margin-top:18px;align-items:center}
.trainer-registration-qr{min-height:240px;display:grid;place-items:center;padding:10px;border-radius:16px;background:#fff;box-shadow:var(--ms-neu-in)}
.trainer-registration-qr img,.trainer-registration-qr canvas{max-width:220px!important;width:100%!important;height:auto!important}
.trainer-registration-link{display:grid;gap:9px}.trainer-registration-link>span{font-size:.72rem;font-weight:850;color:#607c8c}
.trainer-registration-link code{padding:11px 12px;border-radius:10px;background:rgba(238,246,249,.8);color:#476a7e;font-size:.7rem;overflow-wrap:anywhere;box-shadow:var(--ms-neu-in)}

/* formulario público */
.trainer-registration-public{margin:0;min-height:100vh;background:radial-gradient(circle at 82% 9%,rgba(191,229,246,.52),transparent 30%),linear-gradient(145deg,#f5fafc,#edf5f8);color:#173d57;font-family:Arial,sans-serif}
.trainer-registration-shell{width:min(920px,calc(100% - 30px));margin:0 auto;padding:34px 0}
.trainer-registration-card{padding:30px;border:1px solid rgba(255,255,255,.88);border-radius:25px;background:rgba(249,252,253,.82);backdrop-filter:blur(20px);box-shadow:0 25px 65px rgba(19,53,73,.11)}
.trainer-registration-brand{margin-bottom:28px;font-size:1.05rem;font-weight:900;color:#123c57}
.trainer-registration-head h1{margin:5px 0 7px;font-size:2.15rem;line-height:1}.trainer-registration-head p{max-width:700px;margin:0;color:#698393;font-size:.92rem;line-height:1.5}
.public-trainer-form{display:grid;gap:22px;margin-top:29px}.public-trainer-form>section{padding:19px;border-radius:17px;background:rgba(255,255,255,.56);border:1px solid rgba(255,255,255,.82);box-shadow:0 9px 24px rgba(27,59,77,.045)}
.public-trainer-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:11px}.public-trainer-field{display:grid;gap:6px}.public-trainer-field.wide{grid-column:1/-1}.public-trainer-field>span{font-size:.82rem;font-weight:800;color:#4d6d80}
.public-trainer-field input{width:100%;box-sizing:border-box;min-height:48px;padding:10px 12px;border:1px solid rgba(194,214,224,.75);border-radius:11px;background:rgba(250,253,254,.88);color:#254e66;font:inherit;font-size:.88rem;outline:none}
.public-trainer-field input:focus{border-color:#74b4d2;box-shadow:0 0 0 3px rgba(93,166,200,.12)}
.public-trainer-questions{display:grid;gap:9px;margin-top:11px}.public-choice-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px;border-radius:12px;background:rgba(239,247,250,.66)}
.public-choice-row strong{font-size:.84rem;color:#3d6075}.public-choice-row small{display:block;font-size:.69rem;color:#84959f;margin-top:3px}.public-choice-options{display:flex;gap:7px;flex:0 0 auto}.public-choice-options input{position:absolute;opacity:0}
.public-choice-options label{min-width:48px;padding:8px 10px;border-radius:999px;text-align:center;background:#edf3f6;color:#738893;font-size:.76rem;font-weight:850;cursor:pointer;box-shadow:3px 3px 8px rgba(43,73,91,.08),-3px -3px 8px rgba(255,255,255,.8)}
.public-choice-options input:checked+label{background:#174c69;color:#fff;box-shadow:inset 2px 2px 5px rgba(0,0,0,.14)}
.public-trainer-privacy{display:flex;gap:10px;align-items:flex-start;color:#637d8c;font-size:.79rem;line-height:1.4}.public-trainer-privacy input{margin-top:3px}
.public-trainer-submit{min-height:52px;border:0;border-radius:14px;background:linear-gradient(145deg,#174c69,#0d3852);color:#fff;font-size:.92rem;font-weight:850;cursor:pointer;box-shadow:0 10px 22px rgba(16,55,79,.18)}
.public-trainer-message{padding:12px;border-radius:11px;font-size:.8rem}.public-trainer-message.error{background:#fdeaea;color:#934b4b}
.public-trainer-success{text-align:center;padding:55px 18px}.public-trainer-success-icon{width:65px;height:65px;margin:0 auto 17px;display:grid;place-items:center;border-radius:50%;background:#dff3e9;color:#397258;font-size:1.6rem;font-weight:900}.public-trainer-success h2{font-size:1.45rem;margin:0 0 7px}.public-trainer-success p{font-size:.9rem;color:#648090}.public-trainer-success small{font-size:.74rem;color:#8a9aa3}
@media(max-width:720px){.trainer-add-methods{grid-template-columns:1fr}.trainer-registration-share{grid-template-columns:1fr}.public-trainer-grid{grid-template-columns:1fr}.public-trainer-field.wide{grid-column:auto}.public-choice-row{align-items:flex-start;flex-direction:column}.trainer-registration-card{padding:20px}}


/* ==========================================================================
   INICIO OPERATIVO — V0.46
   ========================================================================== */
.home-dashboard{padding-bottom:56px}
.home-head{display:flex;justify-content:space-between;align-items:flex-end}
.home-date{text-transform:capitalize;color:var(--muted);font-weight:800;font-size:1rem;padding-bottom:8px}
.home-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 22px}
.home-kpi{min-height:112px;padding:20px;border:1px solid rgba(181,205,218,.7);border-radius:24px;background:rgba(255,255,255,.56);box-shadow:10px 12px 28px rgba(43,75,94,.08),inset 1px 1px 0 rgba(255,255,255,.9);backdrop-filter:blur(18px);display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;text-decoration:none;color:var(--navy);transition:.18s ease}
.home-kpi:hover{transform:translateY(-2px);border-color:#acd3e8;box-shadow:12px 16px 34px rgba(43,75,94,.12),inset 1px 1px 0 #fff}
.home-kpi-icon{width:48px;height:48px;border-radius:17px;display:grid;place-items:center;font-size:1.25rem;font-weight:900;box-shadow:inset 2px 2px 6px rgba(255,255,255,.72),4px 5px 12px rgba(65,91,108,.09)}
.home-kpi-icon.blue{background:#dff2fb;color:#17658c}.home-kpi-icon.amber{background:#fff0cf;color:#8b641b}.home-kpi-icon.violet{background:#ece8fb;color:#65558f}.home-kpi-icon.green{background:#e2f4ea;color:#2d7755}
.home-kpi strong{display:block;font-size:1.9rem;line-height:1;margin-bottom:7px}.home-kpi small{display:block;color:var(--muted);font-size:.92rem;font-weight:750;line-height:1.25}.home-kpi-arrow{font-size:1.25rem;color:#7d99aa}
.home-attention-panel,.home-upcoming-panel{overflow:hidden;margin-bottom:22px;min-height:0}
.home-section-head{padding:24px 28px}.home-section-head h2{font-size:1.55rem;margin:4px 0 3px}.home-section-head .panel-subtitle{font-size:.96rem}
.home-loading,.home-inline-error,.home-upcoming-empty{padding:32px 28px;color:var(--muted);font-weight:750}
.home-inline-error{color:#974b4b}
.home-attention-list{padding:8px 18px 18px}
.home-action{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:16px;align-items:center;padding:17px 18px;margin:10px 0;border:1px solid var(--soft-line);border-left:5px solid #7baed0;border-radius:19px;background:rgba(255,255,255,.58);text-decoration:none;color:var(--navy);transition:.16s ease}
.home-action:hover{transform:translateX(3px);background:rgba(255,255,255,.82);box-shadow:8px 10px 24px rgba(47,75,91,.08)}
.home-action.urgent{border-left-color:#d66c6c;background:rgba(255,240,240,.65)}.home-action.warning,.home-action.waiting{border-left-color:#e3b454}.home-action.client{border-left-color:#69ae8c}.home-action.opportunity{border-left-color:#9a86c5}.home-action.pending{border-left-color:#68a8cc}
.home-action-mark{width:44px;height:44px;border-radius:15px;background:rgba(230,241,247,.92);display:grid;place-items:center;font-size:1.1rem;font-weight:900;box-shadow:inset 1px 1px 2px #fff}
.home-action-body{min-width:0}.home-action-meta{display:block;color:#7890a0;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.home-action-body strong{display:block;font-size:1.03rem;line-height:1.25}.home-action-body small{display:block;color:var(--muted);font-size:.91rem;margin-top:4px;white-space:normal}.home-action-cta{font-size:.9rem;font-weight:900;color:#2c6585;white-space:nowrap}.home-action-cta b{font-size:1.1rem}
.home-all-clear{margin:18px 22px 24px;padding:24px;border-radius:20px;background:rgba(229,246,237,.72);border:1px solid #cfe8da;display:flex;align-items:center;gap:16px}.home-all-clear>span{width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;color:#2d7755;font-weight:900}.home-all-clear strong,.home-all-clear small{display:block}.home-all-clear small{margin-top:3px;color:#638070;font-size:.92rem}
.home-upcoming-list{padding:8px 18px 18px}
.home-upcoming-row{display:grid;grid-template-columns:150px minmax(250px,1.5fr) 190px 190px 24px;gap:18px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--soft-line);text-decoration:none;color:var(--navy)}
.home-upcoming-row:last-child{border-bottom:0}.home-upcoming-row:hover{background:rgba(237,247,252,.62);border-radius:16px}
.home-upcoming-date small,.home-upcoming-date strong,.home-upcoming-main strong,.home-upcoming-main small{display:block}.home-upcoming-date small{font-size:.72rem;letter-spacing:.1em;color:#7890a0;font-weight:900}.home-upcoming-date strong{margin-top:4px}.home-upcoming-main strong{font-size:1rem}.home-upcoming-main small,.home-upcoming-time,.home-upcoming-trainer{color:var(--muted);font-size:.9rem;margin-top:3px}.home-upcoming-arrow{font-size:1.15rem;color:#829aaa}
@media(max-width:1150px){.home-kpis{grid-template-columns:repeat(2,1fr)}.home-upcoming-row{grid-template-columns:125px 1fr 160px 24px}.home-upcoming-trainer{display:none}}
@media(max-width:720px){.home-head{align-items:flex-start}.home-date{display:none}.home-kpis{grid-template-columns:1fr}.home-action{grid-template-columns:42px 1fr}.home-action-cta{grid-column:2}.home-upcoming-row{grid-template-columns:105px 1fr 20px}.home-upcoming-time,.home-upcoming-trainer{display:none}}

/* V0.47 · Inicio operativo real */
.home-action,.home-upcoming-row{width:100%;font-family:inherit;text-align:left;cursor:pointer}
.home-action{appearance:none}
.home-action-overlay{position:fixed;inset:0;z-index:9000}
.home-action-overlay-backdrop{position:absolute;inset:0;background:rgba(18,38,52,.38);backdrop-filter:blur(7px)}
.home-action-overlay-shell{position:absolute;inset:2.5vh 2.2vw;overflow:hidden;border:1px solid rgba(255,255,255,.82);border-radius:28px;background:rgba(240,247,250,.96);box-shadow:0 30px 80px rgba(14,36,51,.25)}
.home-action-overlay-shell iframe{display:block;width:100%;height:100%;border:0;background:transparent}
.home-action-overlay-close{position:absolute;top:18px;right:20px;z-index:10;width:48px;height:48px;border:1px solid rgba(255,255,255,.85);border-radius:50%;background:rgba(245,250,252,.94);color:#123f5b;font-size:1.35rem;cursor:pointer;box-shadow:0 10px 24px rgba(33,63,81,.12)}
.embedded-action-page{background:transparent!important}
.embedded-action-page>.app{display:none!important}
.embedded-action-page .request-dialog,.embedded-action-page .formation-detail-modal{width:100%!important;max-width:none!important;min-height:100vh!important;border-radius:0!important;box-shadow:none!important}
.embedded-action-page .request-close,.embedded-action-page .formation-x-close{display:none!important}
.embedded-action-page .clients-page .page-head,.embedded-action-page .client-opportunity-tabs,.embedded-action-page .client-toolbar{display:none!important}
.embedded-action-page .client-opportunity-panel{margin:0!important;min-height:100vh;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;padding:80px 28px 28px!important}
.embedded-action-page .client-opportunity-card{max-width:1100px;margin:0 auto}
.confirmed-trainer-search{margin-top:14px;display:grid;gap:10px}
#confirmTrainerSearchPanel{display:grid;gap:10px}
#confirmTrainerSearchInput{width:100%;min-height:48px;padding:10px 14px;border:1px solid #d6e4eb;border-radius:13px;background:rgba(255,255,255,.78);color:#274f66;font:inherit;font-size:.82rem;outline:none}
.confirm-directory-row{width:100%;text-align:left;cursor:pointer}
@media(max-width:760px){.home-action-overlay-shell{inset:1vh 1vw;border-radius:20px}}


/* ==========================================================================
   V0.48 · Inicio por categorías
   ========================================================================== */
.home-work-tabs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:0 0 22px;
}
.home-work-tab{
  appearance:none;
  min-height:96px;
  display:grid;
  grid-template-columns:48px 1fr;
  gap:14px;
  align-items:center;
  padding:16px 18px;
  border:1px solid rgba(184,205,216,.76);
  border-radius:22px;
  background:rgba(255,255,255,.56);
  color:#446579;
  font-family:inherit;
  text-align:left;
  cursor:pointer;
  box-shadow:8px 10px 24px rgba(43,75,94,.065),inset 1px 1px 0 rgba(255,255,255,.9);
  transition:.17s ease;
}
.home-work-tab:hover{
  transform:translateY(-2px);
}
.home-work-tab.active{
  border-color:rgba(78,133,163,.46);
  background:rgba(242,249,252,.88);
  box-shadow:inset 3px 3px 8px rgba(59,89,106,.09),inset -3px -3px 8px #fff;
}
.home-work-tab.urgent.active{border-color:rgba(211,96,96,.48);background:rgba(255,242,242,.92)}
.home-work-tab.amber.active{border-color:rgba(220,174,74,.50);background:rgba(255,248,231,.93)}
.home-work-tab.green.active{border-color:rgba(87,158,118,.46);background:rgba(239,250,244,.94)}
.home-work-tab-icon{
  width:46px;height:46px;
  display:grid;place-items:center;
  border-radius:15px;
  background:#e8f2f7;
  color:#2d6887;
  font-size:1.1rem;
  font-weight:900;
}
.home-work-tab.urgent .home-work-tab-icon{background:#fde6e6;color:#a64a4a}
.home-work-tab.amber .home-work-tab-icon{background:#fff0cf;color:#8b641b}
.home-work-tab.green .home-work-tab-icon{background:#e2f4ea;color:#2d7755}
.home-work-tab strong{
  display:block;
  font-size:1.6rem;
  line-height:1;
  color:#153e58;
}
.home-work-tab small{
  display:block;
  margin-top:7px;
  font-size:.88rem;
  font-weight:850;
  color:#617c8c;
  line-height:1.15;
}

/* Recordatorios de agenda: deliberadamente distintos a las acciones,
   pero no como botones grises del navegador. */
.home-upcoming-row{
  appearance:none!important;
  border:0!important;
  border-bottom:1px solid var(--soft-line)!important;
  background:transparent!important;
  color:var(--navy)!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:17px 18px!important;
}
.home-upcoming-row:hover{
  background:rgba(230,242,248,.52)!important;
  border-radius:15px!important;
}
.home-upcoming-list{
  background:linear-gradient(180deg,rgba(247,251,253,.44),rgba(255,255,255,.16));
}
.home-upcoming-panel{
  border-color:rgba(196,215,225,.65);
}
.home-upcoming-panel .home-section-head{
  background:rgba(250,252,253,.40);
}
.client-home-back{
  margin:18px 0 0;
  border:0;
  background:transparent;
  color:#52758a;
  font:inherit;
  font-weight:850;
  cursor:pointer;
}

@media(max-width:1000px){
  .home-work-tabs{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .home-work-tabs{grid-template-columns:1fr}
}


/* ==========================================================================
   V0.49 · Inicio sin saltos + gestión en ventana
   ========================================================================== */

/* Cambiar pestaña solo cambia contenido: no hay desplazamiento automático. */
.home-work-tab{
  scroll-margin:0!important;
}

/* Ventana de acción sobre Inicio. */
.home-action-overlay{
  position:fixed;
  inset:0;
  z-index:9500;
}
.home-action-overlay-backdrop{
  position:absolute;
  inset:0;
  background:rgba(14,36,51,.38);
  backdrop-filter:blur(8px);
}
.home-action-overlay-shell{
  position:absolute;
  inset:2.4vh 2vw;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.86);
  border-radius:28px;
  background:#eff6f9;
  box-shadow:0 28px 85px rgba(12,35,50,.28);
}
.home-action-overlay-shell iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#eff6f9;
}
.home-action-overlay-close{
  position:absolute;
  right:20px;
  top:18px;
  z-index:30;
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.9);
  border-radius:50%;
  background:rgba(246,251,253,.97);
  color:#123f5a;
  font-size:1.4rem;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(35,64,82,.15);
}

/* Solicitudes y Formaciones:
   el listado/menu se oculta, pero sus modales viven FUERA de .app,
   por lo que se conserva la ficha real y toda su lógica. */
.embedded-action-page>.app{
  display:none!important;
}
.embedded-action-page{
  min-height:100vh;
  background:#eff6f9!important;
}
.embedded-action-page .request-modal.open,
.embedded-action-page #formationModal:not([hidden]){
  position:fixed!important;
  inset:0!important;
  z-index:1!important;
}
.embedded-action-page .request-modal-backdrop,
.embedded-action-page .modal-backdrop{
  background:transparent!important;
}
.embedded-action-page .request-dialog{
  width:100%!important;
  max-width:none!important;
  min-height:100vh!important;
  max-height:100vh!important;
  border-radius:0!important;
  box-shadow:none!important;
  border:0!important;
}
.embedded-action-page .formation-detail-modal{
  width:100%!important;
  max-width:none!important;
  min-height:100vh!important;
  max-height:100vh!important;
  border-radius:0!important;
  box-shadow:none!important;
  border:0!important;
}

/* La X la controla Inicio para evitar dos cierres superpuestos. */
.embedded-action-page .request-close,
.embedded-action-page .formation-x-close{
  visibility:hidden!important;
}

/* Clientes no tiene modal propio: mostramos la tarjeta enfocada sin sidebar. */
.embedded-action-page .app{
  min-height:100vh;
}
body.embedded-action-page:has(.clients-page)>.app{
  display:block!important;
}
body.embedded-action-page:has(.clients-page) .sidebar,
body.embedded-action-page:has(.clients-page) .topbar,
body.embedded-action-page:has(.clients-page) .clients-page>.page-head,
body.embedded-action-page:has(.clients-page) .client-opportunity-tabs,
body.embedded-action-page:has(.clients-page) .client-toolbar,
body.embedded-action-page:has(.clients-page) .client-home-back{
  display:none!important;
}
body.embedded-action-page:has(.clients-page) .main{
  margin:0!important;
  width:100%!important;
}
body.embedded-action-page:has(.clients-page) .clients-page{
  padding:78px 28px 28px!important;
}
body.embedded-action-page:has(.clients-page) .client-opportunity-panel{
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
body.embedded-action-page:has(.clients-page) .client-opportunity-card{
  max-width:1120px;
  margin:0 auto;
}

/* Los recordatorios de agenda son filas informativas, no botones grises. */
.home-upcoming-row{
  appearance:none!important;
  -webkit-appearance:none!important;
  background:transparent!important;
  color:var(--navy)!important;
  border-left:0!important;
  border-right:0!important;
  border-top:0!important;
  box-shadow:none!important;
}

@media(max-width:760px){
  .home-action-overlay-shell{
    inset:1vh 1vw;
    border-radius:20px;
  }
}


/* ==========================================================================
   V0.50 · Inicio: refresco automático + modales con tamaño original
   ========================================================================== */

/*
  La capa exterior ya no "convierte" la ficha en una pantalla completa.
  El iframe ocupa la ventana disponible, pero dentro se conserva exactamente
  el modal de Solicitudes / Formaciones con su ancho, alto, bordes y sombras
  originales.
*/
.home-action-overlay-shell{
  inset:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.home-action-overlay-shell iframe{
  width:100%!important;
  height:100%!important;
  background:transparent!important;
}

/* El cierre principal vuelve a ser la X real de la ficha. */
.home-action-overlay-close{
  display:none!important;
}

/* Mantener el fondo del propio modal y no sustituirlo por una pantalla plana. */
.embedded-action-page{
  background:transparent!important;
}
.embedded-action-page .request-modal-backdrop{
  background:rgba(16,38,52,.36)!important;
  backdrop-filter:blur(7px);
}
.embedded-action-page #formationModal{
  background:rgba(16,38,52,.36)!important;
  backdrop-filter:blur(7px);
}

/* Recuperar tamaño y apariencia NATIVOS. */
.embedded-action-page .request-dialog{
  width:min(1180px,calc(100vw - 52px))!important;
  max-width:1180px!important;
  min-height:0!important;
  max-height:calc(100vh - 42px)!important;
  margin:auto!important;
  border-radius:26px!important;
  border:1px solid rgba(255,255,255,.84)!important;
  box-shadow:0 28px 72px rgba(18,42,57,.20)!important;
}
.embedded-action-page .formation-detail-modal{
  width:min(1180px,calc(100vw - 52px))!important;
  max-width:1180px!important;
  min-height:0!important;
  max-height:calc(100vh - 42px)!important;
  margin:auto!important;
  border-radius:26px!important;
  border:1px solid rgba(255,255,255,.84)!important;
  box-shadow:0 28px 72px rgba(18,42,57,.20)!important;
}

/* Mostrar de nuevo las X propias de cada ficha. */
.embedded-action-page .request-close,
.embedded-action-page .formation-x-close{
  visibility:visible!important;
  display:grid!important;
}

/*
  Clientes no tiene modal propio en su sección. En Inicio usamos una tarjeta
  centrada, con el mismo ancho visual que las fichas anteriores.
*/
body.embedded-action-page:has(.clients-page) .clients-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:38px 26px!important;
  background:rgba(16,38,52,.36)!important;
  backdrop-filter:blur(7px);
}
body.embedded-action-page:has(.clients-page) .client-opportunity-panel{
  width:min(1180px,calc(100vw - 52px))!important;
  max-width:1180px!important;
  min-height:0!important;
  padding:18px!important;
  border:1px solid rgba(255,255,255,.84)!important;
  border-radius:26px!important;
  background:rgba(245,250,252,.97)!important;
  box-shadow:0 28px 72px rgba(18,42,57,.20)!important;
}
body.embedded-action-page:has(.clients-page) .client-opportunity-card{
  max-width:none!important;
  margin:0!important;
}

/* Cierre visible para la oportunidad de Cliente dentro de Inicio. */
body.embedded-action-page:has(.clients-page)::after{
  content:"×";
  position:fixed;
  top:32px;
  right:42px;
  z-index:20;
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(247,251,253,.98);
  color:#123f5a;
  font-size:1.35rem;
  font-weight:700;
  box-shadow:0 10px 24px rgba(31,61,79,.14);
  pointer-events:none;
}

@media(max-width:760px){
  .embedded-action-page .request-dialog,
  .embedded-action-page .formation-detail-modal,
  body.embedded-action-page:has(.clients-page) .client-opportunity-panel{
    width:calc(100vw - 18px)!important;
    max-height:calc(100vh - 18px)!important;
    border-radius:20px!important;
  }
}

.embedded-client-close{
  position:absolute;
  top:18px;
  right:18px;
  z-index:25;
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.90);
  border-radius:50%;
  background:rgba(247,251,253,.98);
  color:#123f5a;
  font-size:1.35rem;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(31,61,79,.14);
}
body.embedded-action-page:has(.clients-page) .client-opportunity-panel{
  position:relative;
}
body.embedded-action-page:has(.clients-page)::after{
  display:none!important;
}


/* ==========================================================================
   V0.51 · Inicio = Cosas que hacer hoy
   ========================================================================== */

/* Ya no existe "Urgente" como categoría. Los colores indican la clase de tarea. */
.home-work-tab.violet .home-work-tab-icon{
  background:#eee8fa;
  color:#665292;
}
.home-work-tab.violet.active{
  border-color:rgba(130,103,185,.45);
  background:rgba(247,243,253,.95);
}

/* En Formaciones, las acciones de alumnado mantienen la identidad violeta suave,
   no significan urgencia. */
.home-action.formation-task{
  border-left-color:#8c79b8;
}

/* Vista directa desde Inicio para alumnado/formulario. */
.formation-registration-students{
  margin-top:18px;
  padding:14px;
  border:1px solid rgba(217,229,235,.84);
  border-radius:16px;
  background:rgba(255,255,255,.54);
  box-shadow:var(--ms-shadow-soft);
}
.registration-students-viewport{
  height:190px!important;
  min-height:190px!important;
}
#formationRegistrationStudentCount{
  color:#315d76;
  font-size:1.15rem;
}

/* No insinuar que una formación futura es una acción. */
.home-upcoming-panel{
  margin-top:26px;
}


/* ==========================================================================
   V0.52 · Inicio: colores coherentes + modal realmente igual a su sección
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Colores de las tareas = color de la categoría superior
   -------------------------------------------------------------------------- */

/* Solicitudes — azul */
.home-action.pending{
  border-left-color:#68a8cc!important;
  background:rgba(239,248,252,.72)!important;
}
.home-action.pending .home-action-mark{
  background:#e5f2f8!important;
  color:#2d6f92!important;
}

/* Esperando respuesta — amarillo / naranja */
.home-action.waiting{
  border-left-color:#e3b454!important;
  background:rgba(255,248,231,.76)!important;
}
.home-action.waiting .home-action-mark{
  background:#fff0cf!important;
  color:#8b641b!important;
}

/* Formaciones — violeta */
.home-action.formation{
  border-left-color:#8c79b8!important;
  background:rgba(247,243,253,.78)!important;
}
.home-action.formation .home-action-mark{
  background:#eee8fa!important;
  color:#665292!important;
}

/* Clientes — verde */
.home-action.client{
  border-left-color:#69ae8c!important;
  background:rgba(239,250,244,.78)!important;
}
.home-action.client .home-action-mark{
  background:#e2f4ea!important;
  color:#2d7755!important;
}

/* Ninguna tarea cambia de color por llevar más días esperando.
   La antigüedad se muestra en el texto, no en el color. */
.home-action.urgent,
.home-action.warning{
  border-left-color:inherit;
}

/* --------------------------------------------------------------------------
   2. El iframe es transparente: se sigue viendo Inicio detrás
   -------------------------------------------------------------------------- */
.home-action-overlay{
  background:transparent!important;
}
.home-action-overlay-backdrop{
  /* El oscurecimiento pertenece a Inicio, no a otra "página" blanca. */
  background:rgba(16,38,52,.27)!important;
  backdrop-filter:blur(6px)!important;
  -webkit-backdrop-filter:blur(6px)!important;
}
.home-action-overlay-shell,
.home-action-overlay-shell iframe{
  background:transparent!important;
}
html.embedded-action-page-root,
body.embedded-action-page{
  background:transparent!important;
}

/* El modal interno NO vuelve a crear una segunda capa oscura/blanca.
   La única capa visual es la de Inicio. */
.embedded-action-page .request-modal-backdrop{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.embedded-action-page #formationModal.modal-backdrop{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* --------------------------------------------------------------------------
   3. Solicitudes: exactamente el tamaño nativo de Solicitudes
   -------------------------------------------------------------------------- */
.embedded-action-page .request-modal{
  padding:22px!important;
  align-items:center!important;
  justify-content:center!important;
}
.embedded-action-page .request-dialog{
  width:min(980px,100%)!important;
  max-width:none!important;
  min-height:0!important;
  max-height:min(890px,calc(100vh - 42px))!important;
  margin:0!important;
  border-radius:24px!important;
  overflow:hidden!important;
  background:rgba(255,255,255,.80)!important;
  backdrop-filter:blur(26px) saturate(130%)!important;
  -webkit-backdrop-filter:blur(26px) saturate(130%)!important;
  border:1px solid rgba(255,255,255,.88)!important;
  box-shadow:0 28px 70px rgba(17,46,65,.17),inset 0 1px 0 rgba(255,255,255,.75)!important;
}
.embedded-action-page .request-close{
  position:absolute!important;
  right:18px!important;
  top:18px!important;
  width:42px!important;
  height:42px!important;
  border:0!important;
  border-radius:50%!important;
  background:#eef4f7!important;
  color:var(--navy)!important;
  font-size:1.65rem!important;
  visibility:visible!important;
  display:grid!important;
  place-items:center!important;
}

/* --------------------------------------------------------------------------
   4. Formaciones: exactamente el tamaño nativo de Formaciones
   -------------------------------------------------------------------------- */
.embedded-action-page #formationModal.modal-backdrop{
  padding:18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.embedded-action-page .formation-detail-modal{
  width:min(900px,calc(100vw - 36px))!important;
  max-width:none!important;
  min-height:0!important;
  max-height:calc(100vh - 36px)!important;
  margin:auto!important;
  padding:25px!important;
  overflow:auto!important;
  border:1px solid rgba(255,255,255,.85)!important;
  border-radius:22px!important;
  background:rgba(249,252,253,.92)!important;
  backdrop-filter:blur(24px)!important;
  -webkit-backdrop-filter:blur(24px)!important;
  box-shadow:0 30px 80px rgba(11,38,55,.20)!important;
}
.embedded-action-page .formation-x-close{
  position:absolute!important;
  top:22px!important;
  right:22px!important;
  width:48px!important;
  height:48px!important;
  visibility:visible!important;
  display:grid!important;
}

/* --------------------------------------------------------------------------
   5. Clientes: mismo lenguaje visual, sin "página blanca" detrás
   -------------------------------------------------------------------------- */
body.embedded-action-page:has(.clients-page) .clients-page{
  min-height:100vh!important;
  display:grid!important;
  place-items:center!important;
  padding:22px!important;
  background:transparent!important;
  backdrop-filter:none!important;
}
body.embedded-action-page:has(.clients-page) .client-opportunity-panel{
  width:min(980px,calc(100vw - 44px))!important;
  max-width:980px!important;
  padding:18px!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.88)!important;
  backdrop-filter:blur(24px)!important;
  -webkit-backdrop-filter:blur(24px)!important;
  box-shadow:0 28px 70px rgba(17,46,65,.17)!important;
}

/* --------------------------------------------------------------------------
   Responsive: respetar el mismo comportamiento que las secciones
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  .embedded-action-page .request-modal{
    padding:8px!important;
  }
  .embedded-action-page .request-dialog{
    width:100%!important;
    max-height:calc(100vh - 16px)!important;
    border-radius:18px!important;
  }
  .embedded-action-page .formation-detail-modal{
    width:calc(100vw - 18px)!important;
    max-height:calc(100vh - 18px)!important;
    border-radius:20px!important;
  }
}


/* ==========================================================================
   V0.53 · INICIO — MODALES NATIVOS EXACTOS
   ==========================================================================
   Objetivo:
   - Inicio permanece detrás y se ve difuminado.
   - La ficha que se abre es visualmente LA MISMA que en su propia sección.
   - No se redimensiona el modal al embeberlo.
   - No aparece una segunda "página blanca".
   ========================================================================== */

/* --------------------------------------------------------------------------
   CAPA DE INICIO
   Inicio crea UNA sola capa de desenfoque.
   El iframe y su documento son totalmente transparentes.
   -------------------------------------------------------------------------- */
.home-action-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:9500!important;
  background:transparent!important;
}

.home-action-overlay-backdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(8,31,47,.38)!important;
  backdrop-filter:blur(12px) saturate(110%)!important;
  -webkit-backdrop-filter:blur(12px) saturate(110%)!important;
}

.home-action-overlay-shell{
  position:absolute!important;
  inset:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden!important;
}

.home-action-overlay-shell iframe{
  display:block!important;
  width:100%!important;
  height:100%!important;
  border:0!important;
  background:transparent!important;
}

/* No usamos una X externa: cada módulo conserva SU propia X. */
.home-action-overlay-close{
  display:none!important;
}

html.embedded-action-page-root,
body.embedded-action-page{
  margin:0!important;
  background:transparent!important;
  background-color:transparent!important;
}

/* --------------------------------------------------------------------------
   SOLICITUDES
   Copia literal del tamaño / estructura visual nativa de solicitudes.
   Solo hacemos transparente su backdrop porque el backdrop ya lo pone Inicio.
   -------------------------------------------------------------------------- */
.embedded-action-page>.app{
  display:none!important;
}

.embedded-action-page .request-modal{
  position:fixed!important;
  inset:0!important;
  z-index:1500!important;
  display:none;
  align-items:center!important;
  justify-content:center!important;
  padding:22px!important;
  background:transparent!important;
}
.embedded-action-page .request-modal.open{
  display:flex!important;
}
.embedded-action-page .request-modal-backdrop{
  position:absolute!important;
  inset:0!important;
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* EXACTAMENTE el .request-dialog nativo */
.embedded-action-page .request-dialog{
  position:relative!important;
  z-index:1!important;
  width:min(1020px,100%)!important;
  max-width:none!important;
  min-height:0!important;
  max-height:min(890px,calc(100vh - 42px))!important;
  margin:0!important;
  padding:0!important;
  background:#fff!important;
  border:0!important;
  border-radius:24px!important;
  box-shadow:0 28px 90px rgba(7,28,44,.28)!important;
  overflow:hidden!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

.embedded-action-page .request-dialog-scroll{
  max-height:inherit!important;
  overflow:auto!important;
  padding:36px 42px 40px!important;
}

/* EXACTAMENTE la X nativa */
.embedded-action-page .request-close{
  position:absolute!important;
  right:18px!important;
  top:18px!important;
  z-index:5!important;
  width:42px!important;
  height:42px!important;
  border:0!important;
  border-radius:50%!important;
  padding:0!important;
  background:#eef4f7!important;
  color:var(--navy)!important;
  font-size:1.65rem!important;
  line-height:1!important;
  cursor:pointer!important;
  visibility:visible!important;
  display:grid!important;
  place-items:center!important;
  box-shadow:none!important;
}

/* --------------------------------------------------------------------------
   FORMACIONES
   Copia literal del modal que aparece en Formaciones.
   -------------------------------------------------------------------------- */
.embedded-action-page #formationModal.modal-backdrop{
  position:fixed!important;
  inset:0!important;
  z-index:1700!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.embedded-action-page #formationModal.modal-backdrop[hidden]{
  display:none!important;
}

/* EXACTAMENTE el .formation-detail-modal nativo */
.embedded-action-page #formationModal .formation-detail-modal{
  position:relative!important;
  z-index:1!important;
  width:min(900px,calc(100vw - 36px))!important;
  max-width:none!important;
  min-height:0!important;
  max-height:calc(100vh - 36px)!important;
  overflow:auto!important;
  margin:auto!important;
  padding:25px!important;
  border:1px solid rgba(255,255,255,.85)!important;
  border-radius:22px!important;
  background:rgba(249,252,253,.92)!important;
  backdrop-filter:blur(24px)!important;
  -webkit-backdrop-filter:blur(24px)!important;
  box-shadow:0 30px 80px rgba(11,38,55,.2)!important;
}

/* EXACTAMENTE la X nativa */
.embedded-action-page #formationModal .formation-x-close{
  position:absolute!important;
  top:22px!important;
  right:22px!important;
  z-index:5!important;
  width:48px!important;
  height:48px!important;
  border:1px solid rgba(255,255,255,.86)!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  background:rgba(239,247,250,.84)!important;
  color:#123c57!important;
  font-size:1.45rem!important;
  font-weight:500!important;
  line-height:1!important;
  cursor:pointer!important;
  box-shadow:6px 6px 15px rgba(43,70,87,.11),
             -6px -6px 15px rgba(255,255,255,.88)!important;
  visibility:visible!important;
}

/* --------------------------------------------------------------------------
   CLIENTES
   Clientes no usa modal nativo en su sección, así que NO inventamos una
   pantalla completa: mantenemos la tarjeta real, centrada sobre el Inicio.
   -------------------------------------------------------------------------- */
body.embedded-action-page:has(.clients-page)>.app{
  display:block!important;
  min-height:100vh!important;
  background:transparent!important;
}
body.embedded-action-page:has(.clients-page) .sidebar,
body.embedded-action-page:has(.clients-page) .topbar,
body.embedded-action-page:has(.clients-page) .clients-page>.page-head,
body.embedded-action-page:has(.clients-page) .client-opportunity-tabs,
body.embedded-action-page:has(.clients-page) .client-toolbar,
body.embedded-action-page:has(.clients-page) .client-home-back{
  display:none!important;
}
body.embedded-action-page:has(.clients-page) .main{
  width:100%!important;
  margin:0!important;
  background:transparent!important;
}
body.embedded-action-page:has(.clients-page) .clients-page{
  min-height:100vh!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:22px!important;
  background:transparent!important;
}
body.embedded-action-page:has(.clients-page) .client-opportunity-panel{
  position:relative!important;
  width:min(1020px,100%)!important;
  max-width:1020px!important;
  min-height:0!important;
  margin:0!important;
  padding:18px!important;
  border:1px solid rgba(255,255,255,.85)!important;
  border-radius:24px!important;
  background:rgba(249,252,253,.94)!important;
  backdrop-filter:blur(24px)!important;
  -webkit-backdrop-filter:blur(24px)!important;
  box-shadow:0 28px 90px rgba(7,28,44,.24)!important;
}
body.embedded-action-page:has(.clients-page) .client-opportunity-card{
  max-width:none!important;
  margin:0!important;
}

/* --------------------------------------------------------------------------
   MÓVIL: dejamos que el propio patrón nativo se adapte, sin pantalla completa.
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  .embedded-action-page .request-modal{
    padding:10px!important;
  }
  .embedded-action-page .request-dialog{
    width:100%!important;
    max-height:calc(100vh - 20px)!important;
    border-radius:20px!important;
  }

  .embedded-action-page #formationModal.modal-backdrop{
    padding:9px!important;
  }
  .embedded-action-page #formationModal .formation-detail-modal{
    width:calc(100vw - 18px)!important;
    max-height:calc(100vh - 18px)!important;
    border-radius:20px!important;
  }

  body.embedded-action-page:has(.clients-page) .clients-page{
    padding:10px!important;
  }
  body.embedded-action-page:has(.clients-page) .client-opportunity-panel{
    width:100%!important;
    border-radius:20px!important;
  }
}


/* ==========================================================================
   V0.54 · Formadores: 3 + 3, confirmación compacta y flujo estable
   ========================================================================== */

/* Dos filas de tres candidatos máximo. */
.trainer-strip{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
}
.trainer-added-card{
  border-color:rgba(118,171,197,.44)!important;
  background:rgba(239,248,252,.82)!important;
}

/* Al cerrar el buscador los añadidos siguen formando parte de estas dos filas. */
.trainer-search-toggle:disabled{
  opacity:.62;
  cursor:default;
}

/* La espera de formadores y su siguiente paso usan EL MISMO lienzo/modal. */
.request-modal.trainer-response-flow .request-dialog{
  height:min(620px,calc(100vh - 42px))!important;
  min-height:min(620px,calc(100vh - 42px))!important;
}
.request-modal.trainer-response-flow .request-dialog-scroll{
  height:100%!important;
  box-sizing:border-box;
}

/* Primera pantalla: solo dos acciones claras. */
.request-modal.trainer-response-flow .waiting-actions-rich{
  justify-content:center!important;
  gap:14px!important;
}
.request-modal.trainer-response-flow #responseReceivedBtn,
.request-modal.trainer-response-flow #waitingEmailAgainBtn{
  min-width:250px;
}
.request-modal.trainer-response-flow #waitingBackPendingBtn{
  display:none!important;
}

/* Segundo paso: contactados, muy compactos, misma estética que sugerencias. */
.confirm-trainer-compact-block{
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(218,230,236,.88);
  border-radius:16px;
  background:rgba(248,251,252,.60);
}
.confirm-trainer-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:8px;
}
.confirm-trainer-card{
  min-height:82px!important;
  padding:11px 12px!important;
  text-align:left;
}
.confirm-trainer-card .trainer-compact-location{
  font-size:.65rem!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.confirm-trainer-card .trainer-compact-distance{
  color:#3d718e!important;
  font-size:.64rem!important;
  font-weight:850;
}
.confirm-search-toggle{
  margin:12px auto 0!important;
  display:block!important;
}
.confirm-trainer-search-panel{
  display:grid;
  gap:9px;
  margin-top:10px;
}
.confirm-trainer-search-panel[hidden]{
  display:none!important;
}
#confirmTrainerSearchInput{
  min-height:44px!important;
  font-size:.76rem!important;
}
.confirm-directory-row{
  width:100%;
  border:0;
  cursor:pointer;
  text-align:left;
}

/* En el paso de selección no necesitamos reservar sitio para response-options vacío. */
.request-modal.trainer-response-flow #responseOptions:empty{
  display:none!important;
}

@media(max-width:850px){
  .trainer-strip,
  .confirm-trainer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:600px){
  .trainer-strip,
  .confirm-trainer-grid{
    grid-template-columns:1fr!important;
  }
  .request-modal.trainer-response-flow .request-dialog{
    height:calc(100vh - 20px)!important;
  }
}


/* ==========================================================================
   V0.55 · Flujo de asignación de formador SIN saltos de tamaño
   ========================================================================== */

/*
  Esperando formador -> seleccionar quién confirmó -> revisar agenda
  son pasos de UNA MISMA ventana. El marco no cambia.
*/
.request-modal.trainer-assignment-flow .request-dialog{
  width:min(1020px,100%)!important;
  height:min(620px,calc(100vh - 42px))!important;
  min-height:min(620px,calc(100vh - 42px))!important;
  max-height:min(620px,calc(100vh - 42px))!important;
  border-radius:24px!important;
}

.request-modal.trainer-assignment-flow .request-dialog-scroll{
  height:100%!important;
  max-height:100%!important;
  box-sizing:border-box!important;
  overflow:auto!important;
}

/* Mismo contenido/espaciado durante la espera y la selección. */
.request-modal.trainer-assignment-flow #waitingStage,
.request-modal.trainer-assignment-flow #responseStage,
.request-modal.trainer-assignment-flow #agendaStage{
  min-height:330px;
}

/* Compactar agenda dentro del mismo marco sin agrandarlo. */
.request-modal.trainer-assignment-flow #agendaStage{
  padding-top:4px;
}
.request-modal.trainer-assignment-flow .agenda-readonly-card{
  margin-top:12px;
}
.request-modal.trainer-assignment-flow .agenda-summary-actions{
  margin-top:14px;
}

/* IRIS debe seguir siempre sobre la interfaz normal, pero nunca duplicarse
   dentro del iframe embebido de Inicio. */
#iris-persistent-root{
  position:relative;
  z-index:9800;
}
.embedded-action-page #iris-persistent-root{
  display:none!important;
}

@media(max-width:760px){
  .request-modal.trainer-assignment-flow .request-dialog{
    width:100%!important;
    height:calc(100vh - 20px)!important;
    min-height:calc(100vh - 20px)!important;
    max-height:calc(100vh - 20px)!important;
  }
}


/* ==========================================================================
   V0.56 · Flujo coherente + IRIS visible
   ========================================================================== */

/* Cada paso usa su tamaño natural. Se anula el tamaño fijo introducido antes. */
.request-modal.trainer-assignment-flow .request-dialog,
.request-modal.trainer-response-flow .request-dialog{
  height:auto!important;
  min-height:0!important;
  max-height:min(890px,calc(100vh - 42px))!important;
}
.request-modal.trainer-assignment-flow .request-dialog-scroll,
.request-modal.trainer-response-flow .request-dialog-scroll{
  height:auto!important;
  max-height:inherit!important;
}
.request-modal.trainer-assignment-flow #waitingStage,
.request-modal.trainer-assignment-flow #responseStage,
.request-modal.trainer-assignment-flow #agendaStage{
  min-height:0!important;
}

.trainer-edit-action{
  border-color:rgba(111,166,194,.42)!important;
}

/* Causa real de la desaparición de IRIS: V0.55 sobrescribió fixed con relative. */
#iris-persistent-root.iris-root,
#iris-persistent-root{
  position:fixed!important;
  right:24px!important;
  bottom:24px!important;
  z-index:10000!important;
}
.embedded-action-page #iris-persistent-root{
  display:none!important;
}


/* ==========================================================================
   V0.57 · Formadores — asignar directamente o consultar disponibilidad
   ========================================================================== */
.trainer-selection-footer{
  gap:18px!important;
}
.trainer-selection-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.trainer-direct-button{
  border-color:rgba(79,142,174,.45)!important;
  color:#285d79!important;
  background:rgba(238,247,251,.88)!important;
}
.trainer-direct-button:hover{
  background:rgba(228,242,248,.98)!important;
}
@media(max-width:720px){
  .trainer-selection-footer{
    align-items:stretch!important;
  }
  .trainer-selection-actions{
    width:100%;
  }
  .trainer-selection-actions button{
    flex:1 1 100%;
  }
}


/* ==========================================================================
   V0.59 · Confirmación de formador = misma tarjeta que sugerencias
   ========================================================================== */
.confirm-trainer-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:10px!important;
}

.confirm-trainer-card{
  min-height:122px!important;
  padding:14px 15px!important;
  text-align:left!important;
}

/* No sustituimos ninguna pieza de información por "Seleccionar":
   nombre, ubicación, distancia y capacidades coinciden con las sugerencias. */
.confirm-trainer-card .trainer-compact-name{
  font-size:.76rem!important;
}
.confirm-trainer-card .trainer-compact-location{
  font-size:.67rem!important;
  white-space:normal!important;
  overflow:visible!important;
}
.confirm-trainer-card .trainer-compact-distance{
  font-size:.67rem!important;
  color:#466d83!important;
  font-weight:850!important;
}
.confirm-trainer-card .trainer-capabilities{
  align-self:end!important;
}

@media(max-width:850px){
  .confirm-trainer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:600px){
  .confirm-trainer-grid{
    grid-template-columns:1fr!important;
  }
}


/* ==========================================================================
   V0.60 · Inicio mantiene contexto + Clientes abre la acción directamente
   ========================================================================== */
.home-client-overlay{
  position:fixed;
  inset:0;
  z-index:9600;
}
.home-client-backdrop{
  position:absolute;
  inset:0;
  background:rgba(16,38,52,.30);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.home-client-dialog{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(860px,calc(100vw - 44px));
  padding:24px;
  border:1px solid rgba(255,255,255,.88);
  border-radius:24px;
  background:rgba(249,252,253,.95);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  box-shadow:0 28px 80px rgba(11,38,55,.20);
}
.home-client-close{
  top:18px!important;
  right:18px!important;
}
.home-client-action-row{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:15px;
  align-items:center;
  padding:18px 62px 18px 18px;
  border-left:5px solid #69ae8c;
  border-radius:18px;
  background:rgba(239,250,244,.80);
}
.home-client-action-row .home-action-mark{
  background:#e2f4ea!important;
  color:#2d7755!important;
}
.home-client-action-row .home-action-meta{
  display:block;
  color:#718b9a;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.10em;
}
.home-client-action-row .home-action-body strong{
  display:block;
  margin-top:4px;
  color:#123d57;
  font-size:1.12rem;
}
.home-client-action-row .home-action-body small{
  display:block;
  margin-top:4px;
  color:#658091;
  font-size:.82rem;
}
.home-client-contact-strip{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-top:16px;
  padding:16px 4px 2px;
}
.home-client-contact-strip>div:first-child{
  display:grid;
  gap:3px;
}
.home-client-contact-strip span{
  color:#7b919f;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.09em;
}
.home-client-contact-strip strong{
  color:#315b72;
  font-size:.88rem;
}
.home-client-contact-strip small{
  color:#78909e;
  font-size:.76rem;
}
.home-client-quick-actions{
  display:flex;
  gap:10px;
  align-items:center;
}
@media(max-width:650px){
  .home-client-dialog{
    width:calc(100vw - 18px);
    padding:16px;
  }
  .home-client-contact-strip{
    align-items:stretch;
    flex-direction:column;
  }
  .home-client-quick-actions button{
    flex:1;
  }
}


/* ==========================================================================
   V0.61 · Inicio abre directamente la acción de Clientes
   ========================================================================== */
.home-client-overlay{
  display:none!important;
}


/* ==========================================================================
   V0.62 · Mari Carmen y formadores son opciones intercambiables
   ========================================================================== */

.trainer-carmen-card{
  border-color:rgba(85,151,183,.42)!important;
  background:linear-gradient(145deg,rgba(238,248,252,.96),rgba(248,252,253,.84))!important;
}
.trainer-carmen-card.selected{
  border-color:rgba(43,122,159,.68)!important;
  box-shadow:inset 0 0 0 1px rgba(43,122,159,.16),0 9px 22px rgba(42,86,108,.08)!important;
}
.trainer-carmen-capability{
  display:inline-flex!important;
  align-items:center;
  width:max-content;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(216,239,248,.76);
  color:#346d89!important;
  font-size:.62rem!important;
  font-weight:850!important;
}

.confirm-carmen-grid{
  margin-bottom:14px!important;
}
.contacted-picker-label{
  display:block;
  margin-top:14px;
}

/* En la cuadrícula de búsqueda, Carmen ocupa una tarjeta más y el resto
   siguen siendo los 3 recomendados + hasta 3 extras manuales. */
.trainer-strip .trainer-carmen-card{
  order:-1;
}

/* IRIS — control manual de conversación */
.iris-header-actions{display:flex;align-items:center;gap:4px}
.iris-new-chat{border:0;background:transparent;color:#6f8493;padding:7px 8px;border-radius:9px;cursor:pointer;font:inherit;font-size:.69rem;font-weight:700;white-space:nowrap}
.iris-new-chat:hover{background:#f2f6f8;color:var(--navy)}
.iris-new-chat:disabled{opacity:.4;cursor:default}
@media(max-width:520px){.iris-new-chat{font-size:.64rem;padding:7px 5px}}

/* IRIS V0.63.3 — historial navegable */
.iris-panel{min-height:0}
.iris-messages{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.iris-header,.iris-form,.iris-note{flex-shrink:0}
.contacted-trainer-response-card{display:grid;gap:.55rem;padding:.65rem;border:1px solid #e4e7ec;border-radius:14px;background:#fff}
.contacted-trainer-response-card .trainer-compact-card{width:100%}
.trainer-response-state{font-size:.76rem;font-weight:700;color:#667085}
.trainer-response-state[data-state="acepta"]{color:#087443}
.trainer-response-state[data-state="rechaza"]{color:#b42318}
.trainer-response-actions{display:flex;flex-wrap:wrap;gap:.4rem}
.trainer-response-actions .secondary-button{padding:.45rem .65rem;font-size:.76rem}
.client-directory-card{display:grid;gap:1rem;padding:1.2rem;border:1px solid #e4e7ec;border-radius:16px;background:#fff}
.client-directory-head{display:flex;justify-content:space-between;gap:1rem;align-items:start}
.client-directory-head h3{margin:.25rem 0}.client-directory-head p{margin:0;color:#667085}
.client-directory-meta{display:flex;flex-wrap:wrap;gap:.75rem;color:#475467;font-size:.86rem}
.client-contact-directory{display:grid;gap:.55rem}.client-contact-row{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:12px;background:#f8fafc}
.client-contact-row.inactive{opacity:.6}.client-contact-row>div{display:grid;gap:.15rem;flex:1}.client-contact-row small{color:#667085}
.client-directory-empty{margin:0;color:#667085}.client-edit-dialog{max-width:760px}.client-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.client-edit-form label{display:grid;gap:.4rem}.client-edit-form label>span{font-size:.8rem;font-weight:700;color:#475467}
.client-edit-form input,.client-edit-form select,.client-edit-form textarea{width:100%;box-sizing:border-box;border:1px solid #d0d5dd;border-radius:10px;padding:.75rem;background:#fff;font:inherit}
.client-edit-wide,.client-edit-actions{grid-column:1/-1}.client-edit-check{display:flex!important;grid-column:auto;align-items:center;grid-template-columns:auto 1fr!important}.client-edit-check input{width:auto}
.client-edit-actions{display:flex;justify-content:flex-end;gap:.65rem}
@media(max-width:700px){.client-directory-head,.client-contact-row{align-items:stretch;flex-direction:column}.client-edit-form{grid-template-columns:1fr}.client-edit-wide,.client-edit-actions{grid-column:auto}}

/* V0.93 · selector canónico de localidades españolas */
.location-picker-field{position:relative}
.location-picker-field>input{width:100%}
.location-picker-dropdown{position:absolute;left:0;right:0;top:calc(100% - 2px);z-index:120;background:#fff;border:1px solid rgba(31,65,90,.16);border-radius:14px;box-shadow:0 18px 45px rgba(25,52,72,.16);padding:6px;max-height:260px;overflow:auto}
.location-picker-option{width:100%;border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;color:inherit;font:inherit}
.location-picker-option:hover,.location-picker-option:focus{background:#eef6fa;outline:none}
.location-picker-option strong{font-size:14px;color:#17354b}
.location-picker-option span{font-size:12px;color:#6d8292;white-space:nowrap}
.location-picker-option:disabled{opacity:.62;cursor:wait}
.location-picker-empty{padding:12px;color:#7a8c99;font-size:13px}
.location-picker-status{display:block;margin-top:6px;font-size:11px;line-height:1.35;color:#7a8c99;font-weight:600}
.location-picker-status.ok{color:#2e735f}
.location-picker-status.review,.location-picker-status.pending{color:#8a6b2e}
.location-picker-status.error{color:#a44646}
.location-picker-status.loading{color:#567083}
.canonical-location-readonly{background:#f5f8fa!important;color:#617786!important;cursor:default}
.trainer-location-status{display:inline-flex;margin-top:5px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.02em}
.trainer-location-status.ok{background:#eaf6f1;color:#2e735f}
.trainer-location-status.review{background:#fff4df;color:#8a6426}
.trainer-toolbar{gap:12px;align-items:center}
.trainer-location-review{white-space:nowrap}
@media(max-width:760px){.trainer-toolbar{align-items:stretch;flex-direction:column}.trainer-location-review{width:100%}.location-picker-option{align-items:flex-start;flex-direction:column;gap:2px}.location-picker-option span{white-space:normal}}

/* V0.94 · ubicación España: provincia cerrada -> localidad oficial */
.location-picker-field>input{width:100%}
.location-picker-field>input:disabled{background:#f4f7f9;color:#8fa0ad;cursor:not-allowed}
.top3-repair-actions{margin:0 20px 20px;padding:0 2px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.top3-repair-actions[hidden]{display:none!important}
.top3-repair-actions span{font-size:.78rem;color:var(--muted);line-height:1.4}
@media(max-width:760px){.top3-repair-actions{align-items:stretch;flex-direction:column}.top3-repair-actions .secondary-button{width:100%}}

/* V0.95 · provincia y localidad comparten el mismo autocompletado y alineación */
.location-picker-field{align-self:start;min-width:0}
.location-picker-status{min-height:15px}
.province-picker-field>input{width:100%}
.province-picker-field>input[data-province-resolved="true"]{border-color:rgba(46,115,95,.35)}
.manual-grid>.location-picker-field{
  grid-template-rows:auto minmax(44px,auto) minmax(15px,auto);
  align-content:start;
}
.client-edit-form>.location-picker-field{
  grid-template-rows:auto minmax(46px,auto) minmax(15px,auto);
  align-content:start;
}
.province-picker-dropdown .location-picker-option span{color:#7a8c99}
@media(max-width:760px){
  .manual-grid>.location-picker-field,.client-edit-form>.location-picker-field{grid-template-rows:auto minmax(44px,auto) minmax(15px,auto)}
}

/* ========================================================================== 
   V0.96 · Selección de responsable unificada + agenda siempre revisada
   ========================================================================== */
.unified-confirm-trainer-grid{
  align-items:start;
}
.trainer-carmen-compact.confirm-trainer-card{
  min-height:72px!important;
  padding:12px 13px!important;
  grid-template-columns:1fr auto!important;
  grid-template-areas:
    "name check"
    "location location"!important;
  align-content:center;
}
.trainer-carmen-compact .trainer-compact-name{
  font-size:.82rem!important;
}
.trainer-carmen-compact .trainer-compact-location{
  font-size:.72rem!important;
  color:#5f7889!important;
  white-space:normal!important;
}


/* ==========================================================================
   V0.97 · responsable directo + búsqueda progresiva de nuevas opciones
   ========================================================================== */
.contacted-trainer-select-card{width:100%}
.confirm-trainer-grid .contacted-trainer-select-card{min-height:102px!important}
.trainer-suggestion-card{display:grid;gap:7px;min-width:0}
.trainer-suggestion-card>.trainer-compact-card{width:100%}
.trainer-suggestion-replace{border:0;background:transparent;color:#55788d;font:inherit;font-size:.68rem;font-weight:800;cursor:pointer;padding:4px 6px;text-align:center;border-radius:8px}
.trainer-suggestion-replace:hover{background:#eef5f8;color:var(--navy)}
.trainer-suggestion-actions{display:flex;justify-content:center;margin:12px 0 2px}
.trainer-suggestion-actions [hidden]{display:none!important}
.trainer-suggestion-actions button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:600px){.trainer-suggestion-actions button{width:100%}}


/* V0.99 · cierre operativo de formaciones vencidas */
.closed-subfilters{display:flex;gap:7px;align-items:center;margin:-6px 0 14px}
.closed-subfilter{border:1px solid #dce6eb;background:#fff;color:#617c8d;border-radius:999px;padding:7px 11px;font:inherit;font-size:.64rem;font-weight:800;cursor:pointer}
.closed-subfilter.active{background:#173f59;color:#fff;border-color:#173f59}
.request-row-flags{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.request-list-state,.request-overdue-pill{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:5px 8px;font-size:.55rem;font-weight:850}
.request-list-state.realizada{background:#e7f4ec;color:#39745a}
.request-list-state.cancelada{background:#faeeee;color:#974646}
.request-list-state.perdida{background:#f2f0ee;color:#806e61}
.request-overdue-pill{background:#fff2d9;color:#89631e}
.request-overdue{padding-top:4px}
.overdue-summary{display:flex;gap:0;margin:17px 0;border-top:1px solid #e8eef1;border-bottom:1px solid #e8eef1}
.overdue-summary span{min-width:180px;padding:12px 18px;border-right:1px solid #e8eef1}
.overdue-summary span:first-child{padding-left:0}
.overdue-summary span:last-child{border-right:0}
.overdue-summary small,.overdue-summary strong{display:block}
.overdue-summary small{font-size:.52rem;color:#93a2ab;text-transform:uppercase;font-weight:850;letter-spacing:.05em}
.overdue-summary strong{font-size:.7rem;color:#35566a;margin-top:4px}
.overdue-actions{display:flex;gap:9px;flex-wrap:wrap}
@media(max-width:760px){
  .closed-subfilters{overflow:auto;padding-bottom:3px}
  .overdue-summary{display:grid;grid-template-columns:1fr}
  .overdue-summary span{min-width:0;border-right:0;border-bottom:1px solid #e8eef1;padding:10px 0}
  .overdue-summary span:last-child{border-bottom:0}
  .overdue-actions{display:grid}
}


/* ==========================================================================
   V1.00 · Solicitudes como superficie operativa única
   ========================================================================== */
.requests-unified-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:4px 0 14px}
.requests-unified-toolbar .requests-filters{margin:0}
.requests-search{min-width:330px}
.requests-unified-list-panel{padding:8px!important}
.requests-unified-list-panel .requests-list{display:grid;gap:7px}
.request-formation-row{grid-template-columns:125px minmax(250px,1.45fr) minmax(135px,.75fr) 72px 150px 118px 28px!important;border:1px solid rgba(221,232,237,.8)!important;border-radius:14px!important;padding:15px 16px!important;background:rgba(255,255,255,.62)!important;transition:.16s ease!important}
.request-formation-row:hover{transform:translateY(-1px);background:rgba(255,255,255,.86)!important;box-shadow:0 10px 24px rgba(21,55,75,.07)}
.request-unified-cell small,.request-unified-cell strong{display:block}.request-unified-cell small{font-size:.52rem;letter-spacing:.08em;color:#91a0a8;font-weight:850}.request-unified-cell strong{font-size:.65rem;color:#526f80;margin-top:4px}
.request-unified-status{justify-self:start;white-space:nowrap}.request-unified-status.pendiente_gestion,.request-unified-status.nueva,.request-unified-status.revisando{background:#e4f1f8;color:#326b89}.request-unified-status.esperando_respuesta,.request-unified-status.propuesta_enviada{background:#fff2d9;color:#89631e}.request-unified-status.confirmada,.request-unified-status.agendada{background:#e6f4ec;color:#39745a}.request-unified-status.cancelada{background:#faeeee;color:#974646}.request-unified-status.realizada{background:#e6f4ec;color:#39745a}.request-unified-status.perdida{background:#f2f0ee;color:#806e61}
.request-list-main .request-row-flags{margin-top:6px}.request-list-date strong{line-height:1.25}
.request-formation-head{align-items:start;margin-bottom:13px!important}.request-formation-hero{margin:0!important}.request-formation-head .formation-status{margin-top:3px;justify-self:end}
.request-unified-info-block{margin:11px 0 16px}.request-info-label{display:block;margin:0 0 7px 2px}.request-unified-facts{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:0!important}.request-agenda-facts{grid-template-columns:repeat(5,minmax(0,1fr))}.request-unified-facts>div{min-width:0}.request-unified-facts strong{overflow-wrap:anywhere}.request-fact-dates .summary-date-options{margin-top:4px}.request-fact-dates .summary-date-chip{font-size:.56rem;padding:4px 6px}.request-more-unified{margin:0 0 11px auto!important;display:block}
.request-formation-hub{margin:14px 0 20px;padding-top:2px}.request-formation-hub .formation-operations{margin-top:4px}.request-formation-hub .formation-students{max-height:none}.request-formation-hub .compact-students-viewport{height:180px!important;min-height:180px!important}.request-formation-hub .formation-student-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e4f1f7;color:#3d718d;font-size:.6rem;font-weight:900}.request-formation-hub .formation-student-main strong,.request-formation-hub .formation-student-main small,.request-formation-hub .formation-student-doc small,.request-formation-hub .formation-student-doc strong{display:block}.request-formation-hub .formation-student-main strong{font-size:.69rem;color:#476678}.request-formation-hub .formation-student-main small{font-size:.58rem;color:#8999a2;margin-top:2px}.request-formation-hub .formation-student-doc small{font-size:.49rem;color:#9aa7ae;font-weight:850}.request-formation-hub .formation-student-doc strong{font-size:.61rem;color:#587485;margin-top:2px}
.request-formation-hub + .request-stage{margin-top:5px}.request-agenda #agendaSummaryView>.agenda-summary-actions{margin-top:8px}.request-agenda #agendaSummaryView>.agenda-readonly-card[hidden],.request-agenda #agendaSummaryHeading[hidden]{display:none!important}
.calendar-role-icon.overdue{background:#fff0cf!important;color:#946a1f!important}.ms-day-event.overdue{background:#fff2d9!important;color:#805e20!important}.calendar-training-card.is-overdue{border-color:#efd7a4!important;background:linear-gradient(90deg,rgba(255,248,232,.8),rgba(255,255,255,.72))!important}.calendar-overdue-pill{display:inline-flex;width:max-content;margin-top:6px;padding:4px 7px;border-radius:999px;background:#fff0cf;color:#8c661e;font-size:.52rem;font-weight:850}.request-state[data-state="overdue"]{background:#fff0cf!important;color:#8c661e!important}
@media(max-width:1120px){.request-formation-row{grid-template-columns:110px minmax(220px,1fr) 110px 65px 125px 100px 26px!important}.request-unified-facts{grid-template-columns:repeat(3,1fr)}.request-agenda-facts{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.requests-unified-toolbar{align-items:stretch;flex-direction:column}.requests-search{min-width:0}.request-formation-row{grid-template-columns:95px minmax(0,1fr) 28px!important}.request-formation-row .request-unified-cell,.request-formation-row .request-unified-status{display:none}.request-unified-facts,.request-agenda-facts{grid-template-columns:1fr 1fr}.request-formation-head{display:block;padding-right:48px}.request-formation-head .formation-status{display:inline-flex;margin-top:10px}.request-formation-hub .formation-operations{grid-template-columns:1fr}}

/* ==========================================================================
   V1.01 · Clientes compactos + contadores y búsqueda de Solicitudes
   ========================================================================== */

/* La búsqueda es una única superficie: evita que la regla global de inputs
   pinte un rectángulo blanco dentro del control neumórfico. */
.formation-search{
  overflow:hidden;
}
.formation-search>span{
  flex:0 0 26px;
  display:grid;
  place-items:center;
  background:transparent!important;
  box-shadow:none!important;
  color:#315a73;
  font-weight:900;
}
.formation-search>input:not([type="checkbox"]):not([type="radio"]){
  flex:1;
  min-width:0;
  padding:0 2px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  background-color:transparent!important;
  box-shadow:none!important;
  -webkit-box-shadow:none!important;
  appearance:none;
  -webkit-appearance:none;
}
.formation-search>input:not([type="checkbox"]):not([type="radio"]):focus{
  background:transparent!important;
  box-shadow:none!important;
  -webkit-box-shadow:none!important;
}

/* Solicitudes: pestañas y búsqueda comparten de nuevo la misma barra. */
.requests-unified-toolbar{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:4px 0 14px!important;
}
.requests-filters{
  display:flex;
  flex-wrap:wrap;
}
.requests-filters .filter{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.requests-filters .filter span{
  min-width:22px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(255,255,255,.58);
  color:inherit;
  text-align:center;
  font-size:.62rem;
  line-height:1.25;
  font-weight:850;
}
.requests-filters .filter.active span{
  background:rgba(255,255,255,.14);
  color:#fff;
}

/* Clientes: filas compactas con la misma jerarquía visual que Solicitudes. */
.client-opportunity-list{
  gap:7px!important;
}
.client-opportunity-row{
  position:relative;
  overflow:hidden;
  grid-template-columns:155px minmax(250px,1.45fr) 120px 135px 135px 118px 28px!important;
  padding:15px 16px 15px 22px!important;
  border:1px solid rgba(221,232,237,.82)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.66)!important;
  transition:.16s ease!important;
}
.client-opportunity-row::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  border-radius:14px 0 0 14px;
  background:#b8cad5;
}
.client-opportunity-row.type-expiry{
  border-color:rgba(217,169,84,.34)!important;
  background:linear-gradient(90deg,rgba(255,245,224,.34),rgba(255,255,255,.72) 25%)!important;
}
.client-opportunity-row.type-expiry::before{background:#d7a646}
.client-opportunity-row.type-habitual{
  border-color:rgba(91,158,193,.34)!important;
  background:linear-gradient(90deg,rgba(226,242,250,.38),rgba(255,255,255,.72) 25%)!important;
}
.client-opportunity-row.type-habitual::before{background:#5b9fc2}
.client-opportunity-row.type-other{
  border-color:rgba(124,132,192,.30)!important;
  background:linear-gradient(90deg,rgba(236,238,251,.42),rgba(255,255,255,.72) 25%)!important;
}
.client-opportunity-row.type-other::before{background:#7e85bd}
.client-opportunity-row:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(21,55,75,.07);
  filter:saturate(1.03);
}
.client-opportunity-row.managed{
  opacity:.96;
}
.client-opportunity-row.managed::before{background:#9caab2!important}
.client-opportunity-row-type,
.client-opportunity-row-cell{
  min-width:0;
}
.client-opportunity-row-type>small,
.client-opportunity-row-cell small,
.client-opportunity-row-cell strong{
  display:block;
}
.client-opportunity-row-type>small,
.client-opportunity-row-cell small{
  margin-bottom:5px;
  color:#91a0a8;
  font-size:.52rem!important;
  letter-spacing:.08em;
  font-weight:850;
  text-transform:uppercase;
}
.client-opportunity-row-type .client-opportunity-type{
  max-width:100%;
  padding:6px 9px!important;
  font-size:.61rem!important;
  line-height:1.15;
  text-align:left;
}
.client-opportunity-row-main strong{
  font-size:.78rem!important;
  color:#315b74!important;
}
.client-opportunity-row-main small{
  margin-top:4px!important;
  color:#82939e!important;
  font-size:.63rem!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.client-opportunity-row-cell strong{
  color:#526f80;
  font-size:.65rem;
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
}
.client-opportunity-row-state{
  justify-self:start;
}
.client-row-state,
.client-opportunity-row-state .client-managed-state{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:6px 9px!important;
  border-radius:999px;
  white-space:nowrap;
  font-size:.61rem!important;
  font-weight:850;
}
.client-row-state.pending{
  background:#e7f2f8;
  color:#326b89;
}

/* Al clicar la fila se conserva toda la ficha anterior, ahora en un detalle. */
.client-opportunity-detail-dialog{
  width:min(900px,calc(100vw - 36px))!important;
  max-height:calc(100vh - 36px);
  overflow:auto;
  padding:28px!important;
}
.client-opportunity-detail-dialog .client-opportunity-card{
  margin:0;
  box-shadow:none;
}
.client-opportunity-detail-card .client-due-date small{
  white-space:normal;
}

/* Descartar no debe parecer deshabilitado: misma presencia visual que la acción contigua. */
.client-opportunity-actions .client-skip,
.client-opportunity-actions .client-contact{
  min-height:39px;
  padding:9px 13px!important;
  border:1px solid rgba(18,58,84,.90)!important;
  border-radius:10px;
  background:linear-gradient(145deg,#173f59,#0d3048)!important;
  color:#fff!important;
  opacity:1!important;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(15,47,70,.16),inset 0 1px 0 rgba(255,255,255,.16)!important;
}
.client-opportunity-actions .client-skip:hover,
.client-opportunity-actions .client-contact:hover:not(:disabled){
  background:linear-gradient(145deg,#1c4864,#10354e)!important;
  transform:translateY(-1px);
}
.client-opportunity-actions .client-contact:disabled{
  opacity:.42!important;
  cursor:not-allowed;
  transform:none;
}

@media(max-width:1120px){
  .client-opportunity-row{
    grid-template-columns:135px minmax(220px,1fr) 105px 120px 115px 105px 26px!important;
  }
}
@media(max-width:780px){
  .requests-search-row{justify-content:stretch}
  .requests-search-row .requests-search{width:100%;min-width:0}
  .client-opportunity-row{
    grid-template-columns:105px minmax(0,1fr) 28px!important;
  }
  .client-opportunity-row .client-opportunity-row-cell,
  .client-opportunity-row .client-opportunity-row-state{
    display:none;
  }
  .client-opportunity-detail-dialog{padding:23px 18px!important}
}


/* ==========================================================================
   V1.02 · Ajustes visuales puntuales
   ========================================================================== */

/* El color de categoría pertenece a la fila de Clientes, no a la ficha abierta. */
.client-opportunity-detail-dialog .client-opportunity-card,
.client-opportunity-detail-dialog .client-opportunity-card:has(.client-opportunity-type.expiry),
.client-opportunity-detail-dialog .client-opportunity-card:has(.client-opportunity-type.habitual),
.client-opportunity-detail-dialog .client-opportunity-card:has(.client-opportunity-type.other){
  border-color:rgba(218,230,236,.82)!important;
  background:rgba(255,255,255,.66)!important;
}
.client-opportunity-detail-dialog .client-opportunity-card::before{
  display:none!important;
}
.client-opportunity-detail-dialog .client-opportunity-type.expiry,
.client-opportunity-detail-dialog .client-opportunity-type.habitual,
.client-opportunity-detail-dialog .client-opportunity-type.other{
  background:#eef3f6!important;
  color:#536f80!important;
}

/* En escritorio, la lupa vuelve a estar a la altura de las pestañas. */
.requests-unified-toolbar .requests-search{
  margin-left:auto;
}
@media(max-width:780px){
  .requests-unified-toolbar{
    align-items:stretch;
    flex-direction:column;
  }
  .requests-unified-toolbar .requests-search{
    width:100%;
    min-width:0;
    margin-left:0;
  }
}


/* ==========================================================================
   V1.04 · Correcciones de continuidad UI
   ========================================================================== */

/* El directorio dentro de “Ya sé quién va a impartir” usa <button>.
   Neutralizamos el aspecto nativo del navegador para que no aparezca gris. */
.confirm-trainer-search-panel .confirm-directory-row{
  appearance:none!important;
  -webkit-appearance:none!important;
  background:#fff!important;
  color:inherit!important;
  border:0!important;
  box-shadow:none!important;
  font:inherit!important;
  opacity:1!important;
}
.confirm-trainer-search-panel .confirm-directory-row:hover,
.confirm-trainer-search-panel .confirm-directory-row:focus-visible{
  background:#f6fafc!important;
  outline:none!important;
}
.confirm-trainer-search-panel .trainer-search-results{
  background:#fff;
  border:1px solid rgba(218,230,236,.88);
  border-radius:12px;
  overflow:auto;
}


/* V1.06 · Campos confirmados de agenda */
.self-field select{
  width:100%;
  height:44px;
  padding:0 34px 0 11px;
  border:1px solid #dce5ea;
  border-radius:10px;
  background:#fff;
  color:#2d4759;
  font:inherit;
  font-size:.76rem;
  outline:none;
}
.self-field select:focus{
  border-color:#9fc5d8;
  box-shadow:0 0 0 3px rgba(103,164,195,.08);
}


/* V1.07 · Alineación del editor de agenda */
.agenda-editor-grid{
  align-items:start;
}
.agenda-editor-grid > .self-field{
  align-self:start;
  align-content:start;
}


/* V1.08 · Actualización de alumnado en la vista principal */
.compact-students-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}
.compact-students-head .text-action{
  flex:0 0 auto;
  margin-bottom:2px;
}


/* V1.09 · Navegación modal hacia delante */
.operational-mail-modal{
  z-index:1800;
}


/* ==========================================================================
   V1.10 · Tarifas y cobros
   ========================================================================== */
.web-course-config-row{grid-template-columns:minmax(220px,1.4fr) minmax(280px,1fr) minmax(170px,.65fr) auto;align-items:center}
.web-course-rate-field{display:grid;gap:5px;color:#718796;font-size:.58rem;font-weight:850;text-transform:uppercase}
.web-course-rate-input{display:flex;align-items:center;gap:6px}
.web-course-rate-input input{width:92px;height:38px;border:1px solid #dce6eb;border-radius:9px;padding:0 9px;font:inherit;color:#284b61;background:#fff}
.web-course-rate-input b{color:#587586;font-size:.62rem;text-transform:none}

.agenda-finance-editor,.payment-edit-card{margin-top:14px;padding:15px;border:1px solid #e0e8ec;border-radius:14px;background:rgba(255,255,255,.7)}
.agenda-finance-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.agenda-finance-title h4{margin:2px 0 0;color:#1f4359;font-size:.9rem}
.agenda-finance-title small{color:#81939f;font-size:.58rem;text-align:right}
.agenda-finance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.agenda-finance-calculated{display:flex;flex-direction:column;justify-content:center;padding:10px 12px;border-radius:11px;background:#f2f7f9;border:1px solid #e1eaee}
.agenda-finance-calculated span,.agenda-payment-shortcuts>span,.payment-edit-reference span{font-size:.57rem;font-weight:850;text-transform:uppercase;color:#8396a2}
.agenda-finance-calculated strong,.payment-edit-reference strong{color:#20465e;font-size:1rem;margin-top:3px}
.agenda-finance-calculated .text-action{width:max-content;padding:5px 0}
.money-input{display:flex;align-items:center;border:1px solid #dce5ea;border-radius:10px;background:#fff;overflow:hidden}
.money-input input{flex:1;min-width:0;height:42px;border:0!important;box-shadow:none!important;background:transparent!important;padding:0 10px!important}
.money-input b{padding:0 10px;color:#6d8391}
.agenda-payment-shortcuts{display:grid;gap:7px;align-content:end}
.agenda-payment-shortcuts>div{display:flex;gap:7px;flex-wrap:wrap}
.agenda-paid-date{grid-column:1/-1}
.agenda-paid-date small{font-size:.56rem;color:#8798a3;margin-top:4px}
.payment-edit-reference{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e6ecef}

.request-payment-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.payment-state-pill{display:inline-flex;width:max-content;padding:6px 10px;border-radius:999px;font-size:.57rem;font-weight:850;background:#eef3f6;color:#5d7584}
.payment-state-pill[data-payment-state="pagada"],.request-payment-info[data-payment-state="pagada"] .payment-state-pill{background:#e7f4ec;color:#3d775c}
.payment-state-pill[data-payment-state="pendiente_cobro"],.request-payment-info[data-payment-state="pendiente_cobro"] .payment-state-pill{background:#f6eed7;color:#8b6b27}
.request-payment-info[data-payment-state="pendiente_cobro"]{border-color:#ead9aa;background:linear-gradient(90deg,rgba(251,246,232,.75),rgba(255,255,255,.5))}
.request-payment-edit{margin-top:10px}

.formation-row-status.cobrada,.formation-status[data-state="cobrada"]{background:#e6f4ec!important;color:#39745a!important}
.formation-row-status.pendiente-cobro,.formation-status[data-state="pendiente-cobro"]{background:#f5ecd3!important;color:#886823!important}
.calendar-role-icon.payment{background:#f5ecd3!important;color:#886823!important}
.ms-day-event.payment{background:#f7f0df!important;color:#7c632a!important}
.calendar-payment-pill{display:inline-flex;width:max-content;margin-top:6px;padding:4px 7px;border-radius:999px;background:#f5ecd3;color:#886823;font-size:.52rem;font-weight:850}

@media(max-width:900px){
  .web-course-config-row{grid-template-columns:1fr}
  .agenda-finance-grid{grid-template-columns:1fr}
  .agenda-paid-date{grid-column:auto}
}


/* ======================================================================
   V1.11 · Precio único y cobros de más
   ====================================================================== */
.agenda-price-field{position:relative}
.price-field-heading{display:flex!important;align-items:baseline;justify-content:space-between;gap:10px}
.price-field-heading b{font:inherit;color:inherit}
.price-field-heading small{font-size:.55rem;font-weight:700;text-transform:none;color:#8396a2;text-align:right}
.price-use-calculated{width:max-content;margin-top:2px;padding:3px 0!important}
.request-payment-facts small{display:block;margin-top:3px;font-size:.52rem;color:#8a9aa4}

.payment-state-pill[data-payment-state="cobrado_de_mas"],
.request-payment-info[data-payment-state="cobrado_de_mas"] .payment-state-pill{
  background:#fae5e3;color:#a3433d;
}
.request-payment-info[data-payment-state="cobrado_de_mas"]{
  border-color:#edbbb6;background:linear-gradient(90deg,rgba(253,238,236,.82),rgba(255,255,255,.5));
}
.formation-row-status.cobrado-de-mas,.formation-status[data-state="cobrado-de-mas"]{
  background:#fae4e1!important;color:#a33f39!important;
}
.request-overpaid-pill,.calendar-overpaid-pill{
  display:inline-flex;width:max-content;padding:4px 7px;border-radius:999px;background:#fae4e1;color:#a33f39;font-size:.52rem;font-weight:850;
}
.calendar-role-icon.overpaid{background:#fae4e1!important;color:#a33f39!important}
.ms-day-event.overpaid{background:#fae7e4!important;color:#983b36!important}
.calendar-training-card:has(.calendar-role-icon.overpaid){border-color:#edbbb6!important}


/* ==========================================================================
   V1.13 · ciclo unificado
   ========================================================================== */
.formation-student-row{
  grid-template-columns:auto minmax(0,1fr) minmax(110px,.35fr) auto;
}
.formation-student-edit{
  align-self:center;
  padding:7px 12px;
  white-space:nowrap;
}
.student-edit-card{
  margin-top:14px;
  padding:16px;
  border:1px solid #e0e8ec;
  border-radius:14px;
  background:rgba(255,255,255,.72);
}
.student-edit-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.student-edit-grid .self-field:last-child{
  grid-column:1/-1;
}
button:disabled{
  cursor:not-allowed;
}
#agendaRealizedBtn:disabled,
#calendarRealizedBtn:disabled{
  opacity:.45;
  filter:saturate(.45);
}
@media(max-width:780px){
  .formation-student-row{
    grid-template-columns:auto minmax(0,1fr) auto;
  }
  .formation-student-doc{
    grid-column:2;
  }
  .formation-student-edit{
    grid-column:3;
    grid-row:1/3;
  }
  .student-edit-grid{
    grid-template-columns:1fr;
  }
  .student-edit-grid .self-field:last-child{
    grid-column:auto;
  }
}

/* V1.13 — canonical request state selector */
.request-state-control{position:relative;display:inline-flex;align-items:flex-start;z-index:6}
.request-state-button{border:0;cursor:pointer;font:inherit}
.request-state-button::after{content:'⌄';margin-left:.45rem;font-size:.82em;opacity:.65}
.request-state-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;padding:8px;background:#fff;border:1px solid rgba(54,86,105,.14);border-radius:14px;box-shadow:0 18px 40px rgba(31,57,73,.16);z-index:50}
.request-state-menu button{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;background:transparent;border-radius:10px;padding:10px 12px;text-align:left;font:inherit;color:#345366;cursor:pointer}
.request-state-menu button:hover,.request-state-menu button[aria-current="true"]{background:#eef5f8}
.request-state-menu button[aria-current="true"]{font-weight:700}
.request-state[data-state="nueva"],.request-state[data-state="pendiente"],.request-unified-status.nueva,.request-unified-status.pendiente{background:#e4f1f8;color:#326b89}
.request-state[data-state="esperando_cliente"],.request-state[data-state="esperando_formadores"],.request-unified-status.esperando_cliente,.request-unified-status.esperando_formadores{background:#fff2d9;color:#89631e}
.request-state[data-state="agendada"],.request-state[data-state="realizada"],.request-unified-status.agendada,.request-unified-status.realizada{background:#e6f4ec;color:#39745a}
.request-state[data-state="cancelada"],.request-unified-status.cancelada{background:#faeeee;color:#974646}
.request-state[data-state="descartada"],.request-unified-status.descartada{background:#f2f0ee;color:#806e61}
.request-row-state-select{appearance:none;-webkit-appearance:none;border:0;border-radius:999px;padding:.42rem 1.65rem .42rem .72rem;font:inherit;font-weight:700;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 12px) 52%,calc(100% - 8px) 52%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}
.request-formation-row[role="button"]{cursor:pointer}

/* ========================================================================== 
   V1.14 · Selección de responsable como paso confirmado + filas sin flecha
   ========================================================================== */
.trainer-confirm-selection-footer{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(218,230,236,.9);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.trainer-confirm-selection-footer>span{
  color:#607b8d;
  font-size:.72rem;
  font-weight:750;
}
.trainer-confirm-selection-footer .primary-button:disabled{
  opacity:.48;
  cursor:not-allowed;
  transform:none!important;
}
.confirm-directory-row.selected{
  background:#f2f9fc!important;
  box-shadow:inset 0 0 0 1px rgba(109,169,201,.55)!important;
}
.request-formation-row{
  grid-template-columns:125px minmax(250px,1.45fr) minmax(135px,.75fr) 72px 150px 118px!important;
}
@media(max-width:1120px){
  .request-formation-row{grid-template-columns:110px minmax(220px,1fr) 110px 65px 125px 100px!important}
}
@media(max-width:780px){
  .request-formation-row{grid-template-columns:95px minmax(0,1fr)!important}
}
@media(max-width:600px){
  .trainer-confirm-selection-footer{align-items:stretch;flex-direction:column}
  .trainer-confirm-selection-footer .primary-button{width:100%}
}

/* ========================================================================== 
   V1.15 · Fila de Solicitudes compacta, una sola línea de columnas
   ========================================================================== */
.request-formation-row{
  grid-template-columns:
    minmax(92px,.70fr)
    minmax(300px,2.10fr)
    minmax(150px,1.10fr)
    minmax(62px,.50fr)
    minmax(145px,1.05fr)
    minmax(180px,1.25fr)!important;
  column-gap:12px!important;
  row-gap:0!important;
  align-items:start!important;
  min-height:0;
}
.request-formation-row>*{min-width:0}
.request-formation-row .request-list-date,
.request-formation-row .request-list-main,
.request-formation-row .request-unified-cell{
  align-self:start;
}
.request-formation-row .request-list-main strong,
.request-formation-row .request-list-main small,
.request-formation-row .request-unified-cell strong,
.request-formation-row .request-unified-cell small,
.request-formation-row .request-list-date strong{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
  word-break:normal;
}
.request-formation-row .request-list-main strong,
.request-formation-row .request-unified-cell strong{
  line-height:1.28;
}
.request-formation-row .request-list-main small{
  line-height:1.32;
}
.request-formation-row>.request-row-state-select{
  justify-self:stretch;
  align-self:start;
  width:100%;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
@media(max-width:1180px){
  .request-formation-row{
    grid-template-columns:
      minmax(86px,.65fr)
      minmax(250px,2fr)
      minmax(130px,1fr)
      minmax(58px,.48fr)
      minmax(128px,.95fr)
      minmax(168px,1.2fr)!important;
    column-gap:10px!important;
  }
}
@media(max-width:900px){
  .request-formation-row{
    grid-template-columns:90px minmax(0,1fr) minmax(164px,.72fr)!important;
    column-gap:10px!important;
  }
  .request-formation-row .request-unified-cell{display:none}
  .request-formation-row>.request-row-state-select{display:block}
}
@media(max-width:620px){
  .request-formation-row{
    grid-template-columns:82px minmax(0,1fr)!important;
  }
  .request-formation-row>.request-row-state-select{display:none}
}

