/* MOA Map — identidad visual MOA Education (manual FACTO 2024)
   Teal protagonista, morado para texto, acentos amarillo, naranja y rosa. Tipografía Poppins. */
@font-face{font-family:Poppins;src:url('./assets/fonts/Poppins-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('./assets/fonts/Poppins-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('./assets/fonts/Poppins-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('./assets/fonts/Poppins-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('./assets/fonts/Poppins-ExtraBold.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('./assets/fonts/Poppins-LightItalic.woff2') format('woff2');font-weight:300;font-style:italic;font-display:swap}

:root{
  --teal:#178391;--teal-dark:#036870;--teal-deep:#024f55;--teal-soft:#e3f1f2;--teal-line:#bfdfe2;
  --purple:#4F1A48;--purple-soft:#82647F;--purple-tint:#f1e9f0;
  --gray:#EDEDED;--bg:#f5f6f6;--line:#e3e6e6;
  --yellow:#F9D05D;--yellow-soft:#fff5d6;--orange:#F9B03B;--orange-ink:#8a5a00;
  --pink:#E62962;--carmine:#C40847;--pink-soft:#fde6ee;
  --muted:#7b6878;
  --radius:18px;--shadow:0 1px 2px #4f1a480d,0 8px 24px #4f1a480f;--shadow-hover:0 4px 10px #03687014,0 18px 40px #0368701f;
  font-family:Poppins,'Segoe UI',Helvetica,Arial,sans-serif;color:var(--purple);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased
}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}button:disabled{cursor:not-allowed;opacity:.55}
a{color:var(--teal)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
h1,h2,h3,p{margin-top:0}p{line-height:1.6}
h1{font-size:34px;line-height:1.15;letter-spacing:-.5px;margin-bottom:8px;color:var(--teal);font-weight:800}
h2{font-size:17px;font-weight:700;margin-bottom:16px;color:var(--purple)}
h3{font-size:15px;font-weight:700;color:var(--purple)}
small,.muted{color:var(--muted)}small{font-size:12px}
svg{width:20px;height:20px;vertical-align:middle;flex-shrink:0}
.skip{position:fixed;top:-60px;z-index:99;background:#fff;padding:14px}.skip:focus{top:4px}
.hidden{display:none!important}

/* Firma de títulos: primera parte ligera en cursiva + resto en negrita */
.sig em{font-style:italic;font-weight:300}.sig b{font-weight:800}

/* ——— Botones ——— */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 20px;border-radius:999px;background:var(--teal);color:#fff;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap;box-shadow:0 4px 14px #17839140;transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{background:var(--teal-dark);transform:translateY(-1px);box-shadow:0 8px 20px #17839155}
.btn:active{transform:translateY(0)}
.btn svg{width:17px;height:17px}
.btn.accent{background:var(--pink);box-shadow:0 4px 14px #e6296240}.btn.accent:hover{background:var(--carmine);box-shadow:0 8px 20px #e6296255}
.btn.secondary{background:#fff;color:var(--teal);box-shadow:inset 0 0 0 2px var(--teal-line)}.btn.secondary:hover{background:var(--teal-soft);box-shadow:inset 0 0 0 2px var(--teal)}
.btn.soft{background:var(--teal-soft);color:var(--teal-dark);box-shadow:none}.btn.soft:hover{background:#cfe8ea;box-shadow:none}
.btn.ghost{background:transparent;color:var(--purple);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.ghost:hover{background:var(--purple-tint);box-shadow:inset 0 0 0 1.5px #d9c6d6}
.btn.small{min-height:34px;padding:7px 14px;font-size:12px}.btn.small svg{width:15px;height:15px}
.text-btn{display:inline-flex;align-items:center;gap:6px;color:var(--teal);font-size:12px;font-weight:600;padding:4px 0;border-radius:6px}.text-btn:hover{color:var(--teal-dark);text-decoration:underline;text-underline-offset:3px}.text-btn svg{width:16px;height:16px}

/* ——— Estructura ——— */
.layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column;padding:28px 18px 22px;color:#fff;background:linear-gradient(180deg,var(--teal-dark),var(--teal-deep))}
.brand{padding:0 10px 26px}.brand img{display:block;width:128px;height:auto}
.map-tag{display:inline-block;margin-top:12px;padding:3px 10px;border-radius:999px;background:#ffffff1f;color:var(--yellow);font-size:10px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase}
.kam-button{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 20px;padding:14px 16px;border-radius:16px;background:var(--yellow);color:var(--purple);text-align:left;box-shadow:0 6px 18px #00000026;transition:transform .15s,box-shadow .15s}
.kam-button svg{width:24px;height:24px;flex-shrink:0}.kam-button b{display:block;font-size:15px;font-weight:700}.kam-button small{color:#6b4a2a;font-size:11px}
.kam-button:hover{transform:translateY(-2px);box-shadow:0 10px 24px #00000033}.kam-button.active{box-shadow:0 0 0 3px #fff,0 10px 24px #00000033}
.nav{display:grid;gap:4px}
.nav button{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;color:#d3ecee;font-size:13px;font-weight:500;text-align:left;transition:background .15s,color .15s}
.nav button:hover{background:#ffffff14;color:#fff}.nav button.active{background:#fff;color:var(--teal-dark);font-weight:600}
.nav svg{width:19px;height:19px}
.side-label{margin:26px 12px 10px;font-size:10px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:#9fd0d4}
.account-list{display:grid;gap:2px}
.account-list button{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:10px;color:#e2f2f3;font-size:12.5px;text-align:left}
.account-list button:hover{background:#ffffff14}.account-list .chosen{background:#ffffff26;color:#fff;font-weight:600}
.account-letter{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:10px;background:#ffffff26;color:#fff;font-size:11px;font-weight:700}
.side-bottom{margin-top:auto;padding:28px 10px 0}.side-bottom img{width:110px;opacity:.9;display:block;margin-bottom:10px}.side-bottom p{margin:0;font-size:13px;color:#d3ecee}.side-bottom em{font-weight:300}.side-bottom b{font-weight:700;color:#fff}

.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px;padding:0 36px;background:#ffffffe6;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.breadcrumb button{color:var(--teal);font-weight:600;padding:2px 0}.breadcrumb button:hover{text-decoration:underline}
.breadcrumb strong{color:var(--purple);font-weight:700}
.top-actions{display:flex;align-items:center;gap:14px}
.view-chip{display:grid;line-height:1.25;text-align:right}.view-chip span{font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--teal)}.view-chip strong{font-size:13px;color:var(--purple)}
.bell{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--teal-soft);color:var(--teal-dark);transition:background .15s}.bell:hover{background:#cfe8ea}
.bell span{position:absolute;top:-3px;right:-3px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--pink);color:#fff;border:2px solid #fff;font-size:10px;font-weight:700;display:grid;place-items:center}
.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--purple);color:#fff;font-size:13px;font-weight:700}
.mobile-brand{display:none}
.storage-warning{padding:10px 36px;background:var(--pink-soft);color:var(--carmine);font-size:12px;font-weight:500}
.content{max-width:1600px;margin:auto;padding:34px 36px 60px}

/* ——— Encabezados de página ——— */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}
.page-head p{margin:0;font-size:14px;color:var(--muted)}
.eyebrow{margin-bottom:8px;font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:var(--pink)}
.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;padding:7px 14px 7px 10px;border-radius:999px;background:var(--teal-soft);color:var(--teal-dark);font-size:12px;font-weight:600;transition:background .15s}
.back-link:hover{background:#cfe8ea}.back-link svg{width:16px;height:16px}

/* ——— Paneles y formularios ——— */
.panel{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-head h2{margin:0}.panel-head small{display:block;margin-top:4px}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:22px}
.toolbar label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-weight:500}
.toolbar input,.toolbar select,.form-field select{padding:10px 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;font-size:13px;max-width:100%}
.toolbar input{min-width:250px}.toolbar input:focus,.toolbar select:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 4px var(--teal-soft)}
.form-field{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;color:var(--muted)}.form-field select{min-width:220px;font-weight:600;color:var(--purple)}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}
.field-grid label{display:grid;gap:7px;font-size:12px;font-weight:500;color:var(--muted)}
.field-grid input,.field-grid select,.field-grid textarea{width:100%;min-width:0;padding:11px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fbfbfb;color:var(--purple);font-size:13px;transition:border-color .15s,box-shadow .15s}
.field-grid input:focus,.field-grid select:focus,.field-grid textarea:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px var(--teal-soft)}
.field-grid textarea{min-height:80px;resize:vertical}
.wide{grid-column:1/-1}
.form-sections{display:grid;gap:16px}
.form-section h3{margin:0 0 18px;font-size:13px;letter-spacing:.3px;color:var(--teal)}
.save-bar{position:sticky;bottom:14px;display:flex;justify-content:flex-end;margin-top:6px;padding:12px;border-radius:999px;background:#ffffffd9;backdrop-filter:blur(8px);box-shadow:var(--shadow)}
.footnote{margin-top:14px;font-size:11.5px;line-height:1.6;color:var(--muted)}
.empty{padding:30px 20px;border:2px dashed var(--line);border-radius:16px;text-align:center;color:var(--muted);font-size:13px;font-weight:500}.empty p{margin:6px 0 0;font-size:12px;font-weight:400}
.error{margin-top:12px;color:var(--carmine);font-size:12px;font-weight:500}

/* Pastillas de estado */
.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;background:var(--teal-soft);color:var(--teal-dark);font-size:11px;font-weight:600;white-space:nowrap}
.pill.warn{background:var(--yellow-soft);color:var(--orange-ink)}.pill.danger{background:var(--pink-soft);color:var(--carmine)}.pill.neutral{background:#f0eef0;color:var(--muted)}

/* Pestañas tipo píldora */
.tabs{display:flex;gap:6px;margin-bottom:24px;padding:6px;overflow:auto;border-radius:999px;background:#fff;box-shadow:var(--shadow);width:fit-content;max-width:100%}
.tabs button{padding:9px 18px;border-radius:999px;color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap;transition:background .15s,color .15s}
.tabs button:hover{background:var(--teal-soft);color:var(--teal-dark)}.tabs .active,.tabs .active:hover{background:var(--teal);color:#fff;font-weight:600}

/* ——— Dashboard ——— */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.stat{position:relative;overflow:hidden;padding:20px 22px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.stat::after{content:"";position:absolute;right:-26px;bottom:-26px;width:84px;height:84px;border-radius:50%;background:var(--teal-soft);opacity:.7}
.stat:has(.purple)::after{background:var(--purple-tint)}.stat:has(.yellow)::after{background:var(--yellow-soft)}.stat:has(.pink)::after{background:var(--pink-soft)}
.stat-top{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:500;color:var(--muted)}
.stat strong{position:relative;display:block;margin:12px 0 4px;font-size:34px;font-weight:800;line-height:1.1;color:var(--purple)}
.stat small{position:relative;font-size:11.5px}
.icon-box{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--teal-soft);color:var(--teal-dark)}
.icon-box.purple{background:var(--purple-tint);color:var(--purple)}.icon-box.yellow{background:var(--yellow-soft);color:var(--orange-ink)}.icon-box.pink{background:var(--pink-soft);color:var(--carmine)}
.grid-main{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.attention-list{display:grid;gap:6px}
.attention-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;text-align:left;transition:background .15s}
.attention-row:hover{background:var(--teal-soft)}.attention-row .account-letter{background:var(--pink-soft);color:var(--carmine)}
.attention-row .grow{flex:1;min-width:0}.attention-row strong{display:block;font-size:13px}.attention-row small{font-size:11.5px}.attention-row>svg{color:var(--teal)}
.ring-panel{text-align:center}
.ring{display:grid;place-items:center;width:156px;height:156px;margin:8px auto 18px;border-radius:50%;background:conic-gradient(var(--teal) var(--value),var(--gray) 0)}
.ring-inner{display:grid;align-content:center;width:124px;height:124px;border-radius:50%;background:#fff}.ring strong{font-size:34px;font-weight:800;color:var(--purple)}.ring small{font-size:11px}
.legend{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 12px;font-size:11px;color:var(--muted)}
.dot{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;background:var(--teal)}.dot.warn{background:var(--orange)}.dot.danger{background:var(--pink)}
.chart-row{display:grid;grid-template-columns:130px 1fr 42px;align-items:center;gap:14px;margin:14px 0;font-size:13px;font-weight:600}
.chart-row small{display:block;font-weight:400;font-size:11px}
.bar-track{height:12px;border-radius:999px;background:var(--gray);overflow:hidden}.bar-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal),#2bb0bd)}
.timeline-item{display:flex;align-items:center;gap:13px;width:100%;padding:11px 8px;border-radius:12px;text-align:left}.timeline-item:hover{background:var(--teal-soft)}
.timeline-item strong{display:block;margin-bottom:2px;font-size:13px}.timeline-item small{font-size:11.5px}
.alert-item{margin:12px 0;padding:14px 16px;border-radius:14px;background:var(--pink-soft)}.alert-item strong{display:block;font-size:13px}.alert-item p{margin:2px 0 10px;font-size:12px;color:var(--muted)}

/* ——— Hub de la cuenta ——— */
.hub-hero{position:relative;overflow:hidden;display:flex;align-items:center;min-height:190px;margin-bottom:26px;padding:30px 34px;border-radius:26px;background:var(--teal);color:#fff}
.hero-text{position:relative;z-index:1;max-width:70%}
.hero-tag{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--yellow);color:var(--purple);font-size:11px;font-weight:700;letter-spacing:.5px}
.hub-hero h2{margin:12px 0 6px;font-size:34px;font-weight:800;line-height:1.1;color:#fff}
.hub-hero p{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:13px;color:#dff2f3}.hub-hero p svg{width:17px;height:17px}
.hero-pills{display:flex;gap:8px;flex-wrap:wrap}.hub-hero .pill{background:#fff;color:var(--teal-dark)}.hub-hero .pill.warn{color:var(--orange-ink)}.hub-hero .pill.danger{color:var(--carmine)}
.hero-bubble{position:absolute;right:70px;top:-30px;width:210px;opacity:.95}
.hero-star{position:absolute;right:-20px;bottom:-40px;width:170px;opacity:.35;filter:brightness(2.4)}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.module{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:250px;padding:24px 20px 20px;border-radius:22px;background:#fff;text-align:left;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.module::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:var(--accent)}
.module:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.module{--accent:var(--teal);--tint:var(--teal-soft);--ink:var(--teal-dark)}
.module.pink{--accent:var(--pink);--tint:var(--pink-soft);--ink:var(--carmine)}
.module.yellow{--accent:var(--orange);--tint:var(--yellow-soft);--ink:var(--orange-ink)}
.module.purple{--accent:var(--purple);--tint:var(--purple-tint);--ink:var(--purple)}
.module .module-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:18px;border-radius:16px;background:var(--tint);color:var(--ink)}.module-icon svg{width:27px;height:27px}
.module strong{font-size:15px;font-weight:700;line-height:1.3}
.module p{margin:8px 0 14px;font-size:12px;line-height:1.55;color:var(--muted)}
.module-info{align-self:flex-start;margin-bottom:16px;padding:4px 10px;border-radius:999px;background:var(--tint);color:var(--ink);font-size:11px;font-weight:600}
.module .enter{display:inline-flex;align-items:center;gap:6px;margin-top:auto;font-size:12px;font-weight:600;color:var(--ink)}.module .enter svg{width:16px;height:16px;transition:transform .2s}.module:hover .enter svg{transform:translateX(4px)}
.module .number{position:absolute;top:20px;right:18px;font-size:11px;font-weight:700;color:#c9bcc7}

/* ——— Tablas y hoja Gestión KAM ——— */
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}
th{padding:13px 12px;background:var(--teal);color:#fff;font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap}
th:first-child{border-top-left-radius:12px}th:last-child{border-top-right-radius:12px}
td{padding:13px 12px;border-bottom:1px solid var(--gray);vertical-align:middle}tr:last-child td{border-bottom:0}
td small{display:block;margin-top:3px}
.table-link{padding:0;color:var(--purple);font-weight:600;text-align:left}.table-link:hover{color:var(--teal);text-decoration:underline}
.table-footer{margin-top:10px;padding-top:14px;border-top:1px solid var(--gray);font-size:12px;color:var(--muted)}
.sheet{max-height:70vh;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}
.sheet th{position:sticky;top:0;z-index:2;border-radius:0}
.sheet td{padding:10px 12px;white-space:nowrap;border-right:1px solid #f1f1f1}
.sheet tr:nth-child(even) td{background:#fafafa}.sheet tr:hover td{background:var(--teal-soft)}
.sheet .num{width:40px;text-align:right;color:#b5a8b3}
.sheet .sticky-col{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--line)}
.sheet th:nth-child(2){left:0;z-index:3}

/* ——— Módulos de la cuenta ——— */
.activity-list{display:grid;gap:14px}
.activity-card{border-left:6px solid var(--teal)}.activity-card.supervision{border-left-color:var(--pink)}
.activity-card h3{margin:12px 0 6px;font-size:16px}.activity-card p{font-size:13px;color:var(--muted)}.activity-card .panel-head{margin:0}
.task-row{display:flex;align-items:center;gap:14px;padding:15px 6px;border-bottom:1px solid var(--gray)}
.task-row input{width:20px;height:20px;accent-color:var(--teal)}.task-row label{flex:1;font-size:14px;font-weight:500}.task-row small{display:block;margin-top:3px;font-weight:400}
.task-row.done label{color:var(--muted);text-decoration:line-through}
.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.resource{display:flex;flex-direction:column;gap:12px;transition:transform .2s,box-shadow .2s}.resource:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.resource h3{margin:0;line-height:1.4}.resource p{margin:0;font-size:12px;color:var(--muted)}.resource .actions{margin-top:auto}
.client-welcome{position:relative;overflow:hidden;margin-bottom:26px;padding:36px;border-radius:26px;background:var(--teal);color:#fff}
.client-welcome .eyebrow{color:var(--yellow)}.client-welcome h1{position:relative;margin-bottom:10px;color:#fff}.client-welcome p{position:relative;margin:0;color:#dff2f3}
.cw-onda{position:absolute;right:170px;top:24px;width:150px}.cw-sello{position:absolute;right:-30px;bottom:-50px;width:190px}
.audit-row{padding:12px 0;border-bottom:1px solid var(--gray);font-size:13px}.audit-row small{display:block;margin-top:3px}

/* ——— Diálogos y avisos ——— */
dialog{width:calc(100% - 32px);max-width:760px;max-height:90vh;padding:28px;border:0;border-radius:24px;color:var(--purple);box-shadow:0 30px 90px #024f5540}
dialog::backdrop{background:#024f5580;backdrop-filter:blur(4px)}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.dialog-head h2{margin:0;font-size:22px;color:var(--teal)}
.close{width:36px;height:36px;border-radius:50%;background:var(--gray);font-size:20px;line-height:1}.close:hover{background:var(--pink-soft);color:var(--carmine)}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:22px}
.rubric{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.rubric label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:12px;background:#f7f7f7;font-size:12px}
.rubric select{padding:6px 8px;border:1.5px solid var(--line);border-radius:10px;background:#fff}
.detail-text{white-space:pre-wrap;line-height:1.7;font-size:14px}
#toast{position:fixed;left:50%;bottom:26px;z-index:100;transform:translate(-50%,10px);padding:12px 24px;border-radius:999px;background:var(--purple);color:#fff;font-size:13px;font-weight:600;box-shadow:0 10px 30px #4f1a4840;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* ——— Pantalla de entrada ——— */
.entry{position:relative;overflow:hidden;min-height:100vh;display:grid;place-items:center;padding:48px 16px;background:radial-gradient(ellipse at 48% 35%,#218d97 0%,#117582 56%,#085864 100%)}
.entry-deco{position:absolute;inset:0;pointer-events:none}
.entry-deco .entry-map{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.entry-card{position:relative;z-index:1;width:min(1100px,100%);padding:44px;border-radius:32px;background:#fff;box-shadow:0 40px 100px #024f5566}
.entry-brand{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:28px}.entry-brand img{display:block;width:164px;height:auto}
.entry-brand .map-tag{margin:0;background:var(--teal-soft);color:var(--teal-dark)}
.entry-card h1{font-size:38px}.entry-card>p{max-width:660px;font-size:15px;color:var(--muted)}
.entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px}
.entry-option{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:24px 22px 22px;border-radius:22px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);transition:transform .2s,box-shadow .2s}
.entry-option::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:var(--accent)}
.entry-option:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1.5px var(--line),var(--shadow-hover)}
.entry-option{--accent:var(--teal);--tint:var(--teal-soft);--ink:var(--teal-dark)}
.entry-option:nth-child(2){--accent:var(--orange);--tint:var(--yellow-soft);--ink:var(--orange-ink)}
.entry-option:nth-child(3){--accent:var(--pink);--tint:var(--pink-soft);--ink:var(--carmine)}
.entry-option:nth-child(4){--accent:var(--purple);--tint:var(--purple-tint);--ink:var(--purple)}
.entry-option .module-icon{align-self:flex-start;display:grid;place-items:center;width:52px;height:52px;margin-bottom:16px;border-radius:16px;background:var(--tint);color:var(--ink)}.entry-option .module-icon svg{width:26px;height:26px}
.entry-option strong{margin-bottom:6px;font-size:17px;font-weight:700}
.entry-option p{flex:1;font-size:12.5px;color:var(--muted)}
.entry-option label{display:grid;gap:6px;margin-bottom:16px;font-size:12px;font-weight:600;color:var(--muted)}
.entry-option select{width:100%;min-width:0;padding:10px 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--purple);font-size:13px}
.entry-option select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px var(--teal-soft)}
.entry-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.entry-actions .btn{width:100%}
.entry-note{margin:24px 0 0;font-size:12px;color:var(--muted)}

/* ——— Responsivo ——— */
@media(min-width:1500px){.content{padding:40px 48px}.module{min-height:270px}}
@media(max-width:1250px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.layout{grid-template-columns:228px minmax(0,1fr)}.content{padding:26px}.topbar{padding:0 26px}.grid-main,.two-col{grid-template-columns:minmax(0,1fr)}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-bubble{right:10px;width:150px}}
@media(max-width:750px){
  .layout{display:block}
  .sidebar{position:relative;height:auto;display:block;padding:14px 16px 12px;border-radius:0 0 24px 24px}
  .brand,.side-label,.account-list,.side-bottom{display:none}
  .kam-button{margin:0 0 10px;padding:12px 14px}
  .nav{display:flex;overflow:auto;gap:6px}.nav button{white-space:nowrap;padding:9px 14px;font-size:12px}
  .topbar{position:static;min-height:64px;padding:12px 16px;gap:10px}
  .breadcrumb,.view-chip,.avatar{display:none}
  .mobile-brand{display:block;width:82px;height:auto}
  .top-actions{gap:8px}
  .content{padding:22px 16px 48px}
  .page-head{display:block}.page-head>.actions{margin-top:16px}
  h1,.entry-card h1{font-size:28px}
  .stats{gap:10px}.stat{padding:16px}.stat strong{font-size:28px}
  .panel{padding:18px;border-radius:16px}
  .module-grid{grid-template-columns:1fr 1fr;gap:10px}.module{min-height:0;padding:20px 16px 16px}.module p{display:none}.module-info{margin-top:10px}
  .hub-hero{padding:24px 22px;border-radius:22px}.hero-text{max-width:100%}.hub-hero h2{font-size:26px}.hero-bubble{width:110px;right:-20px;top:-20px;opacity:.5}
  .resource-grid{grid-template-columns:1fr}.field-grid,.rubric{grid-template-columns:1fr}
  .toolbar input{min-width:0;width:100%}.form-field{flex-wrap:wrap}.form-field select{min-width:0;width:100%}
  .entry-card{padding:26px 20px;border-radius:24px}.entry-grid{grid-template-columns:1fr}
  .chart-row{grid-template-columns:96px 1fr 38px}
  .client-welcome{padding:26px 22px}.cw-onda{display:none}
  .save-bar{border-radius:18px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* ——— Manual del KAM: componentes nuevos ——— */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pill.purple{background:var(--purple-tint);color:var(--purple)}.pill.alert{background:#ffe7d6;color:#9a3d00}
.tabs .count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--pink-soft);color:var(--carmine);font-size:11px;font-weight:700}
.tabs .active .count{background:#ffffff33;color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 18px}
.chip{padding:7px 14px;border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:600;box-shadow:inset 0 0 0 1.5px var(--line);transition:all .15s}
.chip:hover{color:var(--teal-dark);box-shadow:inset 0 0 0 1.5px var(--teal-line)}.chip.active{background:var(--purple);color:#fff;box-shadow:none}
.notice{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px;padding:14px 18px;border-radius:16px;background:var(--yellow-soft);color:#6b4a00;font-size:13px}.notice svg{flex-shrink:0;color:var(--orange-ink)}
.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;color:var(--teal-dark);transition:background .15s}.icon-btn:hover{background:var(--teal-soft)}.icon-btn svg{width:17px;height:17px}
.row-actions{white-space:nowrap;text-align:right;width:1%}
.bar-track.big{height:10px}.bar-track.danger span{background:var(--pink)}.bar-track.warn span{background:var(--orange)}.bar-track.purple span{background:var(--purple)}.bar-track.neutral span{background:#b8aab6}
.progress-line{display:flex;align-items:center;gap:12px;margin:4px 0 8px}.progress-line .bar-track{flex:1}.progress-line small{white-space:nowrap}

/* KPIs */
.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.kpi{display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:16px;background:#fafafa;box-shadow:inset 0 0 0 1.5px var(--line)}
.kpi.met{background:var(--teal-soft);box-shadow:inset 0 0 0 1.5px var(--teal-line)}.kpi.miss{background:var(--pink-soft);box-shadow:inset 0 0 0 1.5px #f7c3d4}
.kpi-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;font-size:12.5px;font-weight:600;line-height:1.35}
.kpi strong{font-size:32px;font-weight:800;line-height:1;color:var(--purple)}.kpi strong small{font-size:14px;font-weight:600}
.kpi-bar{position:relative;height:8px;border-radius:999px;background:#ffffffb3}.kpi-bar span{display:block;height:100%;border-radius:999px;background:var(--teal)}.kpi.miss .kpi-bar span{background:var(--pink)}
.kpi-bar i{position:absolute;top:-4px;width:2px;height:16px;background:var(--purple);border-radius:2px}
.kpi small{font-size:11px}.kpi p{margin:0;font-size:12px;color:var(--muted)}
.kpi-grid.compact .kpi{padding:14px}.kpi-grid.compact .kpi strong{font-size:26px}
.kpi-table{margin-top:20px}.kpi-table td,.kpi-table th{text-align:center}.kpi-table td:first-child,.kpi-table th:first-child{text-align:left}

/* Tarjetas de actividad */
.activity-card.kind-visita{border-left-color:var(--teal)}.activity-card.kind-supervision{border-left-color:var(--pink)}.activity-card.kind-acompanamiento{border-left-color:var(--orange)}.activity-card.kind-reunion{border-left-color:var(--purple)}.activity-card.kind-evento{border-left-color:var(--yellow)}.activity-card.kind-suplencia,.activity-card.kind-entregable{border-left-color:#b8aab6}
.card-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.card-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted)}.warn-text{color:var(--carmine);font-weight:600}
.next-step{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:10px 14px;border-radius:12px;background:var(--teal-soft);color:var(--teal-dark)!important;font-weight:500}.next-step svg{width:16px;height:16px}
.card-foot{margin-top:14px!important}
.approval-row,.closing-row,.case-row{display:flex;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--gray)}
.approval-row>div:first-child,.closing-row>div:first-child,.case-row>div:first-child{flex:1;min-width:0}
.approval-row strong,.closing-row strong{display:block;font-size:13px}.approval-row small,.closing-row small,.case-row small{display:block;font-size:11.5px}
.case-row p{margin:0 0 4px;font-size:13px;font-weight:500}
.timeline-item.static{cursor:default}.timeline-item.static:hover{background:none}.timeline-item .grow{flex:1;min-width:0}

/* Formularios del diálogo */
dialog.wide-dialog{max-width:980px}
.form-note{margin:0;padding:12px 16px;border-radius:12px;background:var(--yellow-soft);color:#6b4a00;font-size:13px}
fieldset.checks{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:14px;border:1.5px solid var(--line);border-radius:12px}
fieldset.checks legend{padding:0 6px;font-size:12px;font-weight:500;color:var(--muted)}
fieldset.checks label{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#f5f5f5;font-size:12px;color:var(--purple);cursor:pointer}
fieldset.checks input{accent-color:var(--teal)}
.rubric-block h3{margin:8px 0 2px;color:var(--teal)}
.agreements-editor{margin-top:20px;padding:18px;border-radius:16px;background:#f8f8f8}.agreements-editor h3{margin:0;color:var(--teal)}
.agr-row{display:grid;grid-template-columns:2.2fr .9fr 1.2fr 1fr;gap:8px;margin-top:8px}
.agr-row input,.agr-row select{min-width:0;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;font-size:13px}
.agr-existing{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:13px}.agr-existing span:nth-child(2){flex:1}
.snapshot{margin-top:18px;padding:18px;border-radius:16px;background:#f8f8f8}.snapshot h3{margin:0 0 12px;color:var(--teal)}
.snap-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.snap-grid div{padding:12px;border-radius:12px;background:#fff}.snap-grid b{display:block;font-size:22px;font-weight:800}.snap-grid small{font-size:11px}
.snapshot .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Checklist */
.checklist-summary{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 24px;margin-bottom:22px}
.checklist-summary>div:first-child{grid-row:span 2;display:grid}.checklist-summary strong{font-size:38px;font-weight:800;line-height:1;color:var(--teal)}.checklist-summary span{font-size:12px;color:var(--muted)}
.check-group{margin-bottom:16px}.check-group h2{margin:0}
.task-row .pill{flex-shrink:0}
.visit-picker{margin:4px 0 12px}.visit-picker select{min-width:0;max-width:100%}

/* Imagen bilingüe */
.bilingual-grid{display:grid;gap:10px;margin-bottom:18px}
.bilingual-row{display:grid;grid-template-columns:180px 170px 1fr 1fr;align-items:end;gap:12px;padding:12px;border-radius:14px;background:#fafafa}
.bilingual-row strong{align-self:center;font-size:13px}
.bilingual-row label{display:grid;gap:6px;font-size:11px;color:var(--muted)}
.bilingual-row input,.bilingual-row select{width:100%;min-width:0;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;font-size:13px}

@media(max-width:1250px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.bilingual-row{grid-template-columns:1fr 1fr}.bilingual-row strong{grid-column:1/-1}.snap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){.kpi-grid,.snapshot .kpi-grid{grid-template-columns:1fr 1fr}.agr-row{grid-template-columns:1fr 1fr}.agr-row input[name="agr-description"]{grid-column:1/-1}.approval-row,.closing-row{flex-wrap:wrap}.checklist-summary{grid-template-columns:1fr}.checklist-summary>div:first-child{grid-row:auto}.bilingual-row{grid-template-columns:1fr}}
.kpi-top{flex-direction:column;align-items:flex-start}
.rubric label select{width:74px;flex-shrink:0}
.stats + .panel{margin-bottom:20px}
.kpi-table td .pill{min-width:52px;justify-content:center}

/* ——— Ronda SRS (App KAM): componentes nuevos ——— */
.section-gap{margin-top:24px}
.push-left{margin-right:auto}
.readonly-banner{display:flex;align-items:center;gap:10px;margin-bottom:22px;padding:12px 18px;border-radius:14px;background:var(--purple-tint);color:var(--purple);font-size:13px;font-weight:500}
.readonly-banner svg{color:var(--purple)}
.entry-grid.five{grid-template-columns:repeat(3,minmax(0,1fr))}
.entry-option:nth-child(5){--accent:var(--yellow);--tint:var(--yellow-soft);--ink:var(--orange-ink)}
.entry-option:nth-child(6){--accent:var(--teal-dark);--tint:var(--teal-soft);--ink:var(--teal-deep)}
.kpi-n{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:4px;border-radius:50%;background:var(--teal-soft);color:var(--teal-dark);font-size:11px;font-weight:800}
.group-title{margin:30px 0 14px;font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.module-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.module-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.tab-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-bottom:18px}
.subhead{margin:10px 0 0;padding-top:14px;border-top:1px solid var(--gray);font-size:14px;color:var(--teal-dark)}
.manager-note{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;padding:10px 14px;border-radius:12px;background:var(--purple-tint);font-size:13px}
.manager-note svg{width:17px;height:17px;margin-top:2px}

/* Tarjetas de cuenta (Mis cuentas) */
.account-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.account-card{display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);text-align:left;border-top:5px solid var(--teal);transition:transform .2s,box-shadow .2s}
.account-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.ac-top{display:flex;align-items:flex-start;gap:12px}
.ac-top .account-letter{width:40px;height:40px;border-radius:12px;background:var(--teal-soft);color:var(--teal-dark);font-size:13px}
.ac-top strong{display:block;font-size:15px;line-height:1.3}.ac-top small{display:block;margin-top:2px}
.ac-meta{display:flex;flex-wrap:wrap;gap:6px;min-height:24px}
.ac-progress{display:grid;gap:6px}.ac-progress .bar-track{height:8px}

/* Scorecard permanente */
.score-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.score-tile{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:14px;background:var(--teal-soft)}
.score-tile small{font-weight:600;color:var(--teal-deep);line-height:1.35}
.score-tile strong{font-size:28px;font-weight:800;line-height:1.15;color:var(--purple)}
.score-tile span{font-size:11.5px;color:var(--muted)}
.score-tile.danger{background:var(--pink-soft)}.score-tile.danger small,.score-tile.danger strong{color:var(--carmine)}
.score-tile.warn{background:var(--yellow-soft)}.score-tile.warn small{color:var(--orange-ink)}

/* Onboarding de nuevas cuentas */
.onboarding-panel{border-left:6px solid var(--orange)}
.onboarding-panel h2{display:flex;align-items:center;gap:8px}
.onb-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.onb-step{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--line);font-size:13px;font-weight:500;text-align:left;transition:background .15s}
.onb-step:hover{background:var(--yellow-soft)}
.onb-step svg{color:var(--orange-ink)}
.onb-step.ok{background:var(--teal-soft);box-shadow:none;color:var(--teal-deep)}.onb-step.ok svg{color:var(--teal)}

/* Estado de la renovación */
.renewal-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;border-left:6px solid var(--teal)}
.renewal-status small{display:block;margin-bottom:4px;font-weight:600}.renewal-status strong{font-size:20px;font-weight:800}
.renewal-status p{grid-column:1/-1;margin:0;color:var(--muted)}
.renewal-status.warn{border-left-color:var(--orange)}.renewal-status.danger{border-left-color:var(--pink)}.renewal-status.danger strong{color:var(--carmine)}

/* Salud de la cuenta */
.health-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.health-option{position:relative;display:flex;align-items:center;justify-content:center;min-height:52px;padding:10px;border-radius:14px;background:var(--teal-soft);color:var(--teal-deep);font-size:13px;font-weight:600;text-align:center;cursor:pointer;box-shadow:inset 0 0 0 2px transparent;transition:box-shadow .15s}
.health-option input{position:absolute;opacity:0;pointer-events:none}
.health-option.warn{background:var(--yellow-soft);color:var(--orange-ink)}
.health-option.danger{background:var(--pink-soft);color:var(--carmine)}
.health-option.purple{background:var(--purple-tint);color:var(--purple)}
.health-option:has(input:checked){box-shadow:inset 0 0 0 2.5px currentColor}
.health-option:has(input:checked)::before{content:"✓";margin-right:6px;font-weight:800}
.health-option:has(input:focus-visible){outline:3px solid var(--orange);outline-offset:2px}
.health-option:has(input:disabled){cursor:default}

/* Checklist automático */
.auto-dot{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--gray);color:var(--muted)}
.auto-dot svg{width:14px;height:14px}
.auto-dot.done{background:var(--teal);color:#fff}.auto-dot.overdue{background:var(--pink);color:#fff}.auto-dot.pending{background:var(--yellow-soft);color:var(--orange-ink)}
.task-row.overdue label{color:var(--carmine)}
.go-link{flex-shrink:0}

/* Historial de un registro */
details.history{margin-top:18px;padding:12px 16px;border-radius:12px;background:var(--bg);font-size:12.5px}
details.history summary{cursor:pointer;font-weight:600;color:var(--teal-dark)}
details.history p{margin:8px 0 0}
details.history ul{margin:8px 0 0;padding-left:18px;color:var(--muted)}

@media(max-width:1250px){.score-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.module-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.onb-steps,.health-options,.renewal-status{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-grid.five{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){.score-grid,.module-grid.two,.module-grid.four,.entry-grid.five{grid-template-columns:1fr}}

/* ——— Inicio de sesión con Google ——— */
.login-card{max-width:560px}
.login-card h1{margin-top:8px}
.google-btn{gap:12px;min-height:52px;padding:12px 26px;margin:10px 0 22px;background:#fff;color:var(--purple);font-size:15px;box-shadow:inset 0 0 0 1.5px var(--line),0 6px 18px #4f1a4814}
.google-btn:hover{background:#fff;box-shadow:inset 0 0 0 1.5px var(--teal),0 10px 24px #17839126}
.g-logo{width:22px;height:22px}
.login-points{display:grid;gap:10px;margin:0;padding:0;list-style:none;font-size:13px;color:var(--muted)}
.login-points li{display:flex;gap:10px;align-items:flex-start}.login-points svg{width:18px;height:18px;color:var(--teal)}
.login-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.sync-error{display:flex;align-items:center;gap:10px;justify-content:center}
.pending-panel{border-left:6px solid var(--orange)}
.pending-panel h2{display:flex;align-items:center;gap:8px}

/* ——— Archivos adjuntos ——— */
.files-field{display:grid;gap:10px;padding:14px 16px;border-radius:14px;background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--line)}
.files-field.busy{box-shadow:inset 0 0 0 1.5px var(--teal)}
.files-label{font-size:12px;font-weight:600;color:var(--muted)}
.upload-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.upload-btn{position:relative;overflow:hidden;cursor:pointer}
.upload-btn input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.upload-btn:focus-within{outline:3px solid var(--orange);outline-offset:3px}
.upload-status{font-size:12px;color:var(--muted)}
.files-field.busy .upload-status{color:var(--teal-dark);font-weight:600}
.file-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.files-field .file-chips{margin:0}
.file-chip{display:inline-flex;align-items:center;max-width:100%;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line)}
.file-open{display:inline-flex;align-items:center;gap:10px;min-width:0;padding:6px 12px 6px 6px;text-align:left;font-size:12.5px;font-weight:600;color:var(--purple)}
.file-open:hover{color:var(--teal-dark)}
.file-open span{display:grid;min-width:0}.file-open span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:220px}
.file-open small{font-weight:400}
.file-open img,.file-open>svg{flex-shrink:0;width:38px;height:38px;border-radius:9px;object-fit:cover;background:var(--teal-soft)}
.file-open>svg{padding:9px;color:var(--teal-dark)}
.file-chip.video .file-open>svg{background:var(--pink-soft);color:var(--carmine)}
.file-remove{width:30px;height:30px;margin-right:4px;border-radius:50%;color:var(--muted);font-size:18px;line-height:1}
.file-remove:hover{background:var(--pink-soft);color:var(--carmine)}
.resource .file-chips{margin-bottom:12px}
.files-field .upload-btn{display:inline-flex;grid-template-columns:none;margin:0}

/* ——— Sin barras de desplazamiento horizontales ——— */
/* Pestañas: pasan a una segunda línea en vez de desplazarse. */
.tabs{flex-wrap:wrap;overflow:visible;border-radius:24px}
.tabs button{flex:0 0 auto}
@media(max-width:750px){.nav{flex-wrap:wrap;overflow:visible}}
/* Las barras que sí hacen falta (página, menú lateral, tablas muy anchas) llevan los colores de la marca. */
html{scrollbar-color:#17839199 transparent}
*{scrollbar-width:thin}
.sidebar{scrollbar-color:#ffffff40 transparent}
.table-wrap{scrollbar-color:var(--teal) var(--teal-soft)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:#17839199 padding-box}
::-webkit-scrollbar-thumb:hover{background:var(--teal) padding-box}
.sidebar::-webkit-scrollbar-thumb{background:#ffffff40 padding-box}

/* Gestión Global: una fila por cuenta, sin desplazamiento lateral */
.gg-list{display:grid;gap:10px}
.gg-row{display:grid;grid-template-columns:minmax(210px,2fr) minmax(110px,1fr) minmax(120px,1.1fr) minmax(150px,1.6fr) minmax(120px,1.1fr) minmax(130px,1.1fr) minmax(110px,1fr);gap:14px;align-items:start;padding:16px 18px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);transition:box-shadow .15s}
.gg-row:hover{box-shadow:inset 0 0 0 1.5px var(--teal-line),var(--shadow)}
.gg-main{display:grid;gap:3px}.gg-main .table-link{font-size:14.5px}.gg-main small{line-height:1.4}
.gg-cell{display:grid;gap:5px;font-size:12.5px;line-height:1.5}
.gg-cell>small{font-size:10.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.gg-cell .pill{justify-self:start}
.gg-open>span{display:flex;flex-wrap:wrap;gap:5px}
.gg-check{display:grid;gap:5px}.gg-check .bar-track{height:7px}.gg-check .pill{justify-self:start}
@media(max-width:1250px){.gg-row{grid-template-columns:repeat(3,minmax(0,1fr))}.gg-main{grid-column:1/-1}}
@media(max-width:750px){.gg-row{grid-template-columns:1fr 1fr}}

/* Tablas: el texto se acomoda en varias líneas; en pantallas angostas cada fila pasa a ser una tarjeta */
.table-wrap th{white-space:normal;line-height:1.35}
.kpi-table th{min-width:0}
@media(max-width:800px){
  .table-wrap{overflow:visible;box-shadow:none}
  .table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block;width:100%}
  .table-wrap thead{display:none}
  .table-wrap tr{margin-bottom:12px;padding:10px 16px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line)}
  .table-wrap td,.kpi-table td,.kpi-table td:first-child{display:grid;grid-template-columns:minmax(110px,38%) 1fr;gap:12px;align-items:center;padding:7px 0;border:0;text-align:left;white-space:normal;background:none!important}
  .table-wrap td::before{content:attr(data-label);font-size:10.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
  .table-wrap td[data-label=""]{grid-template-columns:1fr}.table-wrap td[data-label=""]::before{content:none}
  .table-wrap td .pill,.table-wrap td .btn,.table-wrap td .table-link{justify-self:start}
}

@media(max-width:1250px){.table-wrap th,.table-wrap td{padding-left:8px;padding-right:8px}.table-wrap th{letter-spacing:.2px}}
@media(max-width:1100px){.kpi-table th{font-size:9.5px;letter-spacing:0}.kpi-table td{font-size:12px}.kpi-table td .pill{min-width:0;padding:3px 7px}}
@media(max-width:1100px){.table-wrap th,.table-wrap td{padding:10px 6px}.table-wrap th{font-size:9.5px;letter-spacing:0}.table-wrap td{font-size:12px}.table-wrap td .pill{padding:3px 8px}}

/* Revisión MOA MAP: ficha única, formularios accesibles y recursos internos. */
.product-logo{font-size:30px;font-weight:500;letter-spacing:-1px;color:var(--teal);white-space:nowrap}.product-logo b{font-weight:800}.sidebar .product-logo{color:white;font-size:27px}.mobile-brand.product-logo{font-size:18px}
.login-welcome{text-align:center;background:#17839112;border-radius:14px;padding:20px;margin:18px 0 24px}.login-welcome h1{font-size:30px;margin:0 0 10px}.login-welcome p{margin:10px 0 0}.platform-name{font-size:14px;font-weight:600;color:var(--teal)}
.dialog-head{position:sticky;top:-28px;background:white;z-index:3;padding:14px 0;box-shadow:0 8px 12px #fff;margin-top:-14px}.dialog-head .close{flex-shrink:0;min-width:44px;min-height:44px}
.stat{position:relative}.stat-link{position:absolute;inset:0;border:0;border-radius:inherit;background:transparent;cursor:pointer;z-index:1}.stat:has(.stat-link):hover{box-shadow:0 0 0 2px var(--teal)}.stat-link:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.class-blocks fieldset,.quiz-question{border:1px solid var(--line);border-radius:14px;padding:16px;margin:12px 0}.class-blocks legend,.quiz-question legend{font-weight:600}.schedule-note{padding:14px 0;border-top:1px solid var(--line)}.detail-text{white-space:pre-wrap;overflow-wrap:anywhere}.sampling-guide{padding:16px;background:#1783910d;border-radius:14px;font-size:13px}.sampling-guide h3{margin-top:0}.sampling-guide ul{padding-left:22px}
.rubric{grid-template-columns:1fr}.rating-row{border:0;background:#f7f7f7;border-radius:12px;padding:12px;margin:0;min-width:0}.rating-row legend{float:left;width:100%;font-size:13px;margin-bottom:8px}.rating-options{display:flex;gap:8px;clear:both}.rubric .rating-options label{padding:0;display:block;flex:1;position:relative}.rating-options input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.rating-options span{display:grid;place-items:center;min-height:44px;border:1px solid var(--line);border-radius:10px;background:white}.rating-options input:checked+span{background:var(--teal);color:white;border-color:var(--teal)}.rating-options input:focus-visible+span{outline:3px solid var(--purple);outline-offset:2px}
.native-content{padding:18px;background:#1783910a;border-radius:14px;margin:18px 0;line-height:1.8}.quiz-question label{display:flex;gap:10px;align-items:center;padding:12px;min-height:44px}.quiz-question input{width:auto}.quiz-feedback{font-weight:600;color:var(--teal)}
@media(max-width:600px){.login-welcome{padding:16px 12px}.login-welcome h1{font-size:25px}.rating-options{gap:5px}.dialog-head h2{font-size:18px}.class-blocks fieldset{padding:12px}.product-logo{font-size:26px}}

.calendar-panel iframe{display:block;width:100%;height:640px;border:0;border-radius:12px;background:#fff}.calendar-panel .actions{flex-wrap:wrap}@media(max-width:600px){.calendar-panel iframe{height:600px}.calendar-panel .panel-head{align-items:flex-start;flex-direction:column}}

.map-marker{display:none}
@media(max-width:600px){
  .map-marker{display:block;position:absolute;width:32px;height:32px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 0 0 12px #f8d66912}
  .map-marker::after{content:"";position:absolute;inset:9px;border:4px solid #e3f0df;border-radius:50%;background:#0a6976}
  .marker-north{top:6%;left:14%;background:#f8d669}
  .marker-south{bottom:6%;right:14%;background:#ff769d;box-shadow:0 0 0 12px #ff769d12}
}

.material-reader { margin-top:24px; border-top:1px solid var(--line); padding-top:16px; }
.material-reader [data-material-preview] { margin-top:16px; min-height:160px; background:#edf2f4; border-radius:12px; padding:12px; }
.reader-toolbar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.reader-toolbar label { margin-left:auto; display:flex; gap:8px; align-items:center; }
.reader-pages { overflow:auto; max-height:70vh; text-align:center; }
.reader-pages canvas { display:block; margin:auto; background:white; }
.document-reading { background:white; padding:28px; max-height:70vh; overflow:auto; color:#20252b; white-space:normal; }
pre.document-reading { white-space:pre-wrap; overflow-wrap:anywhere; }
.document-reading table { border-collapse:collapse; width:100%; }
.document-reading td,.document-reading th { border:1px solid #ccd6dc; padding:8px; }
.document-media { display:block; max-width:100%; max-height:70vh; margin:auto; }
@media print { .material-reader { display:none !important; } }

/* ——— Visor de documentos (todos los formatos) ——— */
.file-reader{position:relative;min-height:160px;color:#20252b}
.file-reader .reader-loading{padding:40px 12px;text-align:center;color:var(--muted)}
.file-reader .reader-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px;color:var(--purple);font-size:13px}
.file-reader .reader-toolbar .grow{flex:1}
.file-reader .reader-zoom{min-width:44px;text-align:center;font-weight:600}
.file-reader .pdf-pages{max-height:none;overflow:visible;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.file-reader .pdf-page{max-width:100%;background:white;box-shadow:0 2px 10px #00000026;border-radius:2px;overflow:hidden}
.file-reader .pdf-page canvas{display:block;width:100%!important;height:auto!important}
.file-reader .office-frame{background:#e8ecee;border-radius:10px;padding:4px;overflow:hidden}
.file-reader .office-frame .docx-wrapper{background:transparent!important;padding:16px 0!important;display:flex;flex-direction:column;align-items:center}
.file-reader .office-frame .docx-wrapper>section.moa-docx{box-shadow:0 2px 10px #00000026;margin-bottom:16px!important}
.file-reader .slides-frame .pptx-host{margin:0 auto}
.file-reader .slides-frame .pptx-preview-wrapper,.file-reader .slides-frame .pptx-host>div{background:transparent!important;height:auto!important;overflow:visible!important}
.file-reader .slides-frame .pptx-preview-slide-wrapper{margin:12px auto!important;box-shadow:0 2px 10px #00000026}
.file-reader .document-reading{background:white;padding:28px clamp(16px,4vw,48px);max-height:none;overflow:visible;border-radius:10px;line-height:1.6;color:#20252b;font-family:Calibri,Carlito,'Segoe UI',Arial,sans-serif;font-size:15px}
.file-reader .document-reading h2,.file-reader .document-reading h3,.file-reader .document-reading h4{color:#1f3a5f;margin:1.1em 0 .4em}
.file-reader .document-reading img{max-width:100%;height:auto}
.file-reader .document-reading p{margin:0 0 .7em}
.file-reader pre.document-reading{font-family:ui-monospace,Consolas,monospace;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}
.file-reader .table-scroll{overflow-x:auto;margin:10px 0}
.file-reader .document-reading table{border-collapse:collapse;width:auto;min-width:50%}
.file-reader .document-reading td,.file-reader .document-reading th{border:1px solid #c7d0d6;padding:6px 10px;vertical-align:top}
.file-reader .sheet-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.file-reader .sheet-view{background:white;border:1px solid #d5dde1;border-radius:8px;overflow:auto;max-height:72vh}
.file-reader .sheet-table table{border-collapse:collapse;font:13px/1.35 Calibri,Carlito,'Segoe UI',Arial,sans-serif;color:#1d2327;width:max-content;min-width:100%}
.file-reader .sheet-table td{border:1px solid #dfe5e8;padding:4px 8px;white-space:pre-wrap;max-width:420px;min-width:40px;vertical-align:top;background:white}
.file-reader .sheet-table tr:first-child td{position:sticky;top:0;background:#f3f6f7;font-weight:600;z-index:1}
.file-reader .sheet-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.file-reader .sheet-view>.footnote{padding:8px 12px}
.file-reader .legacy-slides{display:flex;flex-direction:column;gap:14px}
.file-reader .legacy-slide{background:white;border-radius:10px;box-shadow:0 2px 10px #0000001f;padding:24px 28px;aspect-ratio:16/9;overflow:auto;display:flex;flex-direction:column;gap:8px;font-family:Calibri,Carlito,'Segoe UI',Arial,sans-serif}
.file-reader .legacy-slide small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.file-reader .legacy-slide h3{margin:0;color:#1f3a5f;font-size:22px}
.file-reader .legacy-slide p{margin:0;white-space:pre-line}
.file-reader .legacy-slide img{max-width:60%;height:auto}
.file-reader .reader-notice{margin:0 0 10px;font-size:13px}
.file-reader .document-media{display:block;max-width:100%;max-height:75vh;margin:auto;border-radius:8px;background:#fff}
.file-reader audio.document-media{width:100%;max-width:560px;background:transparent}
.file-reader .zip-list{background:white;border-radius:10px;padding:14px 14px 14px 34px;max-height:60vh;overflow:auto;font-size:13px}
.file-reader .unknown-file{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:36px 16px;background:white;border-radius:12px}
.file-reader .unknown-file small{color:var(--muted)}
.file-reader .unknown-file p{max-width:460px;margin:6px 0 10px}
/* Visor a pantalla completa */
dialog.viewer{width:min(1200px,calc(100% - 24px));max-width:none;height:calc(100vh - 32px);max-height:none;padding:0;display:flex;flex-direction:column;overflow:hidden}
dialog.viewer:not([open]){display:none}
.viewer-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:white}
.viewer-head h2{margin:0;font-size:16px;color:var(--teal);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.viewer-head small{color:var(--muted);white-space:nowrap}
.viewer-body{flex:1;overflow:auto;padding:14px;background:#edf2f4}
.material-reader [data-material-preview]{max-height:72vh;overflow:auto}
.reader-files{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.reader-files .btn.active{background:var(--teal);color:white;border-color:var(--teal)}
@media(max-width:750px){dialog.viewer{width:100%;height:100%;border-radius:0}.viewer-body{padding:8px}.file-reader .document-reading{padding:18px 14px}}
@media print{dialog.viewer{display:none!important}}
.file-reader .slides-frame,.file-reader .office-frame{font-family:Calibri,Carlito,'Segoe UI',Arial,sans-serif}

/* ——— Notas y resultados ——— */
.grade-filters{display:flex;gap:12px 18px;flex-wrap:wrap;align-items:center;margin:0 0 14px}
.grade-filters .chips{margin:0}
.grade-group{display:flex;gap:8px;align-items:center;font-size:13px}
.grade-group select{min-width:180px}
.inline-notice{align-items:center}.inline-notice .text-btn{font-weight:700}
.insights{margin:0;padding-left:20px;display:grid;gap:6px;line-height:1.5}
.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.chart-card{margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:white;box-shadow:var(--shadow);min-width:0}
.chart-card figcaption{font-weight:700;color:var(--teal);margin-bottom:6px}
.chart-scroll{overflow-x:auto}
.chart{width:100%;min-width:360px;height:auto}
.chart-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;margin-bottom:4px}
.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}
.chart-note{font-size:12px;color:var(--muted);margin:6px 0 0}
.hbar{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.hbar-row{display:grid;grid-template-columns:minmax(100px,160px) 1fr 52px;gap:10px;align-items:center;font-size:13px}
.hbar-label small{display:block;color:var(--muted);font-size:11px}
.hbar-track{height:12px;background:#edf2f4;border-radius:6px;overflow:hidden}
.hbar-track span{display:block;height:100%;border-radius:6px}
.hbar-row b{text-align:right}
.grades-table th small{display:block;font-weight:400;opacity:.8;font-size:11px}
.grades-table td{white-space:nowrap}
.score-low{color:var(--carmine);font-weight:700}
.trend-up{color:var(--teal);font-weight:600}.trend-down{color:var(--carmine);font-weight:600}
.grade-batch{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line)}
.grade-batch:last-child{border-bottom:0}
.grade-batch .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.grade-batch small{color:var(--muted)}
.grade-batch .file-chips{margin-top:4px}
.grades-empty .empty{padding:36px}
.grade-import{display:flex;flex-direction:column;gap:14px}
.grade-import .field-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.type-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.type-card{text-align:left;border:2px solid var(--line);border-radius:16px;padding:14px 16px;background:white;cursor:pointer;display:flex;flex-direction:column;gap:4px;color:var(--purple);font:inherit}
.type-card small{color:var(--muted);font-size:12px}
.type-card.active{border-color:var(--teal);background:var(--teal-soft)}
.type-card.active strong{color:var(--teal-dark)}
.method-tabs{margin:0}
.method-tabs button svg{width:16px;height:16px;vertical-align:-3px;margin-right:4px}
.drop-zone{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:26px 18px;border:2px dashed var(--teal-line);border-radius:18px;background:#f7fbfb;cursor:pointer}
.drop-zone:hover,.drop-zone:focus-within{border-color:var(--teal);background:var(--teal-soft)}
.drop-zone svg{width:28px;height:28px;color:var(--teal)}
.drop-zone small{color:var(--muted);max-width:620px}
.drop-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}
.drop-zone.busy{opacity:.7}
.column-map{border:1px solid var(--line);border-radius:14px;padding:10px 14px;background:white;font-size:13px}
.column-map summary{cursor:pointer;font-weight:600;color:var(--teal-dark)}
.column-table{margin-top:10px}
.column-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-top:6px}
.column-grid label{display:flex;flex-direction:column;gap:3px;font-size:12px}
.column-grid label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.check-line{display:flex;gap:8px;align-items:center;font-size:13px}
.import-summary{display:flex;flex-direction:column;gap:3px;padding:12px 16px;border-radius:14px;background:var(--teal-soft);color:var(--teal-deep);font-size:13px}
.import-summary.none{background:var(--yellow-soft);color:#6b4a00}
.import-summary strong{font-size:15px}
.warn-text{color:var(--carmine)}
.import-preview{max-height:320px;overflow:auto}
.import-preview tr.row-bad td{background:#fff6f8}
.manual-grid{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow:auto;padding-right:4px}
.manual-row{display:grid;grid-template-columns:28px minmax(0,1fr) 140px 110px 32px;gap:8px;align-items:center}
.manual-row.head{font-size:12px;font-weight:700;color:var(--muted);position:sticky;top:0;background:white;z-index:1;padding-bottom:4px}
.manual-row .text-btn{font-size:20px;line-height:1}
.manual-actions{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.manual-actions details{flex:1;min-width:240px;font-size:13px}
.manual-actions summary{cursor:pointer;color:var(--teal-dark);font-weight:600;padding:6px 0}
.manual-actions textarea{width:100%;margin:6px 0}
@media(max-width:900px){.chart-grid{grid-template-columns:1fr}.grade-import .field-grid.four{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.type-cards{grid-template-columns:1fr}.grade-import .field-grid.four{grid-template-columns:1fr}.manual-row{grid-template-columns:22px minmax(0,1fr) 92px 70px 26px;gap:5px}.grade-batch{flex-wrap:wrap}}
.manual-row input,.manual-row select,.manual-actions textarea,.grade-group select{padding:8px 12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font-size:14px;min-width:0;width:100%;color:var(--purple)}
.grade-group select{width:auto;border-radius:999px;font-size:13px;font-weight:600}
.manual-row input:focus,.manual-row select:focus,.grade-group select:focus,.manual-actions textarea:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
.grades-table th small,table th small{color:inherit!important;opacity:.85}
.chart-legend i.dash{width:16px;height:0;border-top:2px dashed var(--carmine);border-radius:0}
@media(max-width:600px){
  .manual-row{grid-template-columns:22px minmax(0,1fr) 84px 26px;grid-template-areas:"n s s s" ". m r x";row-gap:6px;padding-bottom:8px;border-bottom:1px solid var(--line)}
  .manual-row>:nth-child(1){grid-area:n}.manual-row>:nth-child(2){grid-area:s}.manual-row>:nth-child(3){grid-area:m}.manual-row>:nth-child(4){grid-area:r}.manual-row>:nth-child(5){grid-area:x}
  .manual-row.head{display:none}
}
