/* Aula docente IETAB — estilos independientes del tema (prefijo ietab-portal-). */
.ietab-portal-body { margin: 0; background: #eef3f9; }
.ietab-portal-root, .ietab-portal, .ietab-portal-login {
	--b: #0b3d6e; --b2: #1565a8; --ink: #1d2733; --mut: #4a5868; --line: #cfdbe8; --bg: #f4f8fc;
	--ok: #17653e; --warn: #8a5300; --err: #a4231b;
	box-sizing: border-box; color: var(--ink); font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.ietab-portal *, .ietab-portal-login * { box-sizing: border-box; }
.ietab-portal a { color: var(--b2); }
.ietab-portal-muted { color: var(--mut); font-size: .92rem; }
.ietab-portal-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Acceso */
.ietab-portal-login { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem; background: linear-gradient(135deg, #0b3d6e, #1565a8); }
.ietab-portal-card { background: #fff; border-radius: 16px; padding: 1.5rem; width: 100%; max-width: 420px; box-shadow: 0 10px 40px rgba(0,0,0,.25); }
.ietab-portal-card h1 { margin: 0 0 .25rem; color: var(--b); font-size: 1.6rem; }
.ietab-portal-eyebrow { text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; font-weight: 700; color: var(--b2); margin: 0 0 .25rem; }
.ietab-portal-login label, .ietab-portal-form label { display: block; font-weight: 700; margin-bottom: .25rem; }
.ietab-portal input[type="text"], .ietab-portal input[type="email"], .ietab-portal input[type="password"], .ietab-portal input[type="number"],
.ietab-portal input[type="datetime-local"], .ietab-portal select, .ietab-portal textarea, .ietab-portal-login input[type="text"], .ietab-portal-login input[type="password"] {
	width: 100%; min-height: 44px; padding: .5rem .7rem; border: 2px solid #7d8fa3; border-radius: 8px; font: inherit; background: #fff; color: var(--ink);
}
.ietab-portal-check label, .ietab-portal-okpick, .ietab-portal-filterform label { font-weight: 600; display: inline-flex; align-items: center; gap: .4rem; }
.ietab-portal-check input, .ietab-portal-okpick input { width: 1.15rem; height: 1.15rem; min-height: 0; }
.ietab-portal-btn { display: inline-block; min-height: 44px; padding: .55rem 1.2rem; border: 2px solid var(--b); border-radius: 999px; background: var(--b); color: #fff !important; font: inherit; font-weight: 700; cursor: pointer; text-decoration: none; line-height: 1.2; }
.ietab-portal-btn:hover { background: var(--b2); border-color: var(--b2); }
.ietab-portal-btn-sec { background: #fff; color: var(--b) !important; }
.ietab-portal-btn-ok { background: var(--ok); border-color: var(--ok); }
.ietab-portal a:focus-visible, .ietab-portal button:focus-visible, .ietab-portal input:focus-visible, .ietab-portal select:focus-visible, .ietab-portal textarea:focus-visible,
.ietab-portal-login a:focus-visible, .ietab-portal-login button:focus-visible, .ietab-portal-login input:focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; box-shadow: 0 0 0 5px rgba(11,61,110,.5); }
.ietab-portal-error { background: #fbdcd8; border-left: 5px solid var(--err); color: #5c130e; padding: .7rem 1rem; border-radius: 6px; }
.ietab-portal-ok { background: #d9f2e4; border-left: 5px solid var(--ok); color: #0d3d25; padding: .7rem 1rem; border-radius: 6px; }
.ietab-portal-warn { background: #fdecc8; border-left: 5px solid #e2a100; color: #4d3000; padding: .7rem 1rem; border-radius: 6px; }
.ietab-portal-warn-text { color: var(--warn); }

/* Estructura del aula */
.ietab-portal-top { display: flex; align-items: center; gap: 1rem; background: var(--b); color: #fff; padding: .6rem 1rem; position: sticky; top: 0; z-index: 20; }
.ietab-portal-brand { display: flex; flex-direction: column; flex: 1; line-height: 1.2; }
.ietab-portal-brand span { font-size: .8rem; opacity: .85; }
.ietab-portal-user { text-align: right; line-height: 1.2; }
.ietab-portal-user small { display: block; opacity: .85; }
.ietab-portal-burger { display: none; background: transparent; color: #fff; border: 2px solid #fff; border-radius: 8px; padding: .4rem .7rem; font: inherit; cursor: pointer; }
.ietab-portal-shell { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: calc(100vh - 56px); }
.ietab-portal-nav { background: #fff; border-right: 1px solid var(--line); padding: 1rem .5rem; }
.ietab-portal-nav ul { list-style: none; margin: 0; padding: 0; }
.ietab-portal-nav a { display: flex; justify-content: space-between; padding: .6rem .8rem; border-radius: 8px; color: var(--ink); text-decoration: none; font-weight: 600; }
.ietab-portal-nav a:hover { background: var(--bg); }
.ietab-portal-nav a.is-active { background: var(--b); color: #fff; }
.ietab-portal-count { background: #d5483f; color: #fff; border-radius: 99px; padding: 0 .5rem; font-size: .8rem; }
.ietab-portal-main { padding: 1.25rem; background: var(--bg); min-width: 0; }
.ietab-portal-main h1 { margin: 0 0 1rem; color: var(--b); font-size: 1.6rem; }
.ietab-portal-main h2 { color: var(--b); font-size: 1.2rem; margin: 1.4rem 0 .6rem; }
@media (max-width: 860px) {
	.ietab-portal-burger { display: inline-block; }
	.ietab-portal-user { display: none; }
	.ietab-portal-shell { grid-template-columns: 1fr; }
	.ietab-portal-nav { display: none; border-right: 0; border-bottom: 1px solid var(--line); }
	.ietab-portal-nav.is-open { display: block; }
}

/* Componentes */
.ietab-portal-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .8rem; }
.ietab-portal-card { display: block; background: #fff; border: 1px solid var(--line); border-left: 5px solid var(--b); border-radius: 10px; padding: .9rem 1rem; color: var(--mut) !important; text-decoration: none; font-weight: 600; }
.ietab-portal-card span { display: block; font-size: 1.9rem; font-weight: 800; color: var(--b); line-height: 1.2; }
.ietab-portal-form { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 1rem; }
.ietab-portal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .5rem 1rem; }
.ietab-portal-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0; }
.ietab-portal-filterform { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .6rem 0; }
.ietab-portal-filterform select, .ietab-portal-filterform input[type="text"] { width: auto; min-width: 140px; }
.ietab-portal-filters a { display: inline-block; padding: .25rem .8rem; border: 1px solid var(--line); border-radius: 99px; background: #fff; text-decoration: none; margin: 0 .2rem .3rem 0; }
.ietab-portal-filters a.is-active { background: var(--b); color: #fff; border-color: var(--b); }
.ietab-portal-tablewrap { overflow-x: auto; background: #fff; border: 1px solid var(--line); border-radius: 10px; margin: .6rem 0; }
.ietab-portal-table { border-collapse: collapse; width: 100%; min-width: 640px; }
.ietab-portal-table th, .ietab-portal-table td { padding: .5rem .7rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.ietab-portal-table th { background: #dfe9f4; font-size: .9rem; }
.ietab-portal-table input[type="number"] { width: 4.5rem; min-height: 36px; }
.ietab-portal-actions-cell { white-space: nowrap; }
.ietab-portal-actions-cell a, .ietab-portal-actions-cell button { margin-right: .4rem; }
.ietab-portal-inline { display: inline; }
.ietab-portal-inline button { background: none; border: 0; padding: 0; color: var(--b2); text-decoration: underline; cursor: pointer; font: inherit; }
.ietab-portal-inline .ietab-portal-danger, .ietab-portal-danger { color: var(--err); }
.ietab-portal-badge { display: inline-block; padding: .1rem .6rem; border-radius: 99px; font-size: .8rem; font-weight: 700; background: #e1eaf3; color: var(--b); }
.ietab-portal-badge-approved, .ietab-portal-badge-published { background: #d9f2e4; color: var(--ok); }
.ietab-portal-badge-pending { background: #fdecc8; color: #7a4800; }
.ietab-portal-badge-changes, .ietab-portal-badge-rejected { background: #fbdcd8; color: var(--err); }
.ietab-portal-pager { display: flex; gap: 1rem; align-items: center; margin: .8rem 0; }
.ietab-portal-optrow { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .4rem 0; }
.ietab-portal-optrow input[type="text"] { flex: 1 1 280px; width: auto; }
.ietab-portal-opts-edit { border: 0; padding: 0; margin: 0; }
.ietab-portal-palette { background: var(--bg); border: 1px solid var(--line); border-radius: 10px; padding: .6rem .8rem; margin: .8rem 0; }
.ietab-portal-symbols { display: flex; flex-wrap: wrap; gap: .25rem; margin-bottom: .5rem; }
.ietab-portal-sym, .ietab-portal-tools button { min-width: 36px; min-height: 36px; padding: .2rem .6rem; border: 1px solid #7d8fa3; border-radius: 6px; background: #fff; cursor: pointer; font: inherit; }
.ietab-portal-sym:hover, .ietab-portal-tools button:hover { background: #e8f1fb; }
.ietab-portal-tools { display: flex; flex-wrap: wrap; gap: .4rem .6rem; align-items: center; margin: .4rem 0; }
.ietab-portal-tools input { width: 4.2rem; min-height: 34px; padding: .2rem .4rem; }
.ietab-portal-inline-wrap, .ietab-portal-tools .ietab-portal-inline { display: inline-flex; gap: .3rem; align-items: center; }
.ietab-portal-preview, .ietab-portal-review { background: #fff; border: 2px dashed var(--b2); border-radius: 10px; padding: .8rem 1rem; margin: 1rem 0; }
.ietab-portal-review { border-style: solid; border-color: var(--line); }
.ietab-portal-stim { background: var(--bg); border: 1px solid var(--line); border-radius: 8px; padding: .6rem .9rem; margin-bottom: .8rem; }
.ietab-portal-correct { font-weight: 700; color: var(--ok); }
.ietab-portal-expl { background: #eef7f1; border-left: 4px solid var(--ok); padding: .5rem .8rem; margin-top: .6rem; }
.ietab-portal-main img, .ietab-portal-preview img { max-width: 100%; height: auto; }
.ietab-portal-main table.ietab-table, .ietab-portal-preview table, .ietab-portal-stim table { border-collapse: collapse; }
.ietab-portal-main table.ietab-table th, .ietab-portal-main table.ietab-table td, .ietab-portal-preview th, .ietab-portal-preview td, .ietab-portal-stim th, .ietab-portal-stim td { border: 1px solid #7d8fa3; padding: .3rem .6rem; }
.ietab-frac { display: inline-flex; flex-direction: column; vertical-align: middle; text-align: center; margin: 0 .15em; }
.ietab-frac > span:first-child { border-bottom: 1px solid currentColor; padding: 0 .25em; }
.ietab-frac > span:last-child { padding: 0 .25em; }
.ietab-radicand { border-top: 1px solid currentColor; padding: 0 .15em; }
.ietab-portal-bandrow { display: grid; grid-template-columns: 90px 1fr 40px; gap: .5rem; align-items: center; margin: .25rem 0; }
.ietab-portal-band { background: #dfe9f4; border-radius: 6px; height: 16px; overflow: hidden; }
.ietab-portal-band i { display: block; height: 100%; background: var(--b2); }
.ietab-portal-notes { list-style: none; padding: 0; }
.ietab-portal-notes li { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: .6rem .8rem; margin: .4rem 0; }
.ietab-portal-notes li.is-unread { border-left: 5px solid #d5483f; font-weight: 600; }
.ietab-portal-printarea { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 1rem; margin: 1rem 0; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

.ietab-logo-login { display: block; max-height: 96px; max-width: 80%; width: auto; height: auto; margin: 0 auto .75rem; }
.ietab-portal-logochip { display: inline-flex; align-items: center; background: #fff; border-radius: 10px; padding: 3px 8px; }
.ietab-portal-logochip .ietab-logo { max-height: 38px; width: auto; height: auto; }
