/* Estilos complementarios. Tailwind se carga por CDN, sin compilación. */
/* Especificidad explícita frente al reset que la CDN puede inyectar después. */
body h1{font-size:30px;line-height:1.25;font-weight:750;letter-spacing:-.025em}
body h2{font-size:19px;font-weight:700;line-height:1.4;margin:0 0 12px}
body p{margin:0 0 14px}
:root{--ink:#17304c;--blue:#175da8;--line:#e2e8f0;--muted:#64748b}
*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:#26364b;font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button:disabled{opacity:.6;cursor:wait}input:focus,textarea:focus,select:focus{outline:3px solid #bfd9f7;outline-offset:1px;border-color:#367abb}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #80afe3;outline-offset:3px}.shell{max-width:1280px;margin:auto;padding-left:28px;padding-right:28px}.topbar{background:white;border-bottom:1px solid var(--line)}.nav{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:18px;font-weight:750;line-height:1.3}.brand:hover{text-decoration:none}.brand small{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:.02em;margin-top:3px}.brand-icon{background:var(--ink);color:#fff;display:grid;place-items:center;border-radius:12px;width:44px;height:44px;font-size:15px}.nav-links{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.nav-links a,.btn-quiet{color:#475569;font-size:14px}.btn-quiet{background:none;border:0;cursor:pointer;padding:8px}.nav-links form{margin:0}.main{padding-top:36px;padding-bottom:40px;min-height:calc(100vh - 165px)}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:750;color:var(--muted);margin:0 0 7px}h1{font-size:30px;line-height:1.25;margin:0;font-weight:750;color:var(--ink);letter-spacing:-.025em}h2{font-size:19px;font-weight:700;color:var(--ink);margin:0 0 12px;line-height:1.4}p{margin:0 0 14px}.user-name{font-size:13px;color:var(--muted);max-width:300px;text-align:right}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;margin-bottom:24px;box-shadow:0 2px 4px #15355003}.muted,small{color:var(--muted);font-size:13px}small{display:block;margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;border-radius:8px;min-height:42px;padding:10px 18px;font-size:14px;font-weight:650;cursor:pointer;text-decoration:none;border:1px solid transparent;white-space:normal;text-align:center}.btn:hover{text-decoration:none}.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn-primary:hover{background:#134b89}.btn-secondary{background:#fff;color:var(--ink);border-color:#cbd5e1}.btn-secondary:hover{background:#f1f5f9}.btn-large{min-height:49px;padding:13px 24px}.form-stack{display:grid;gap:19px;margin-top:20px}.form-stack .btn{justify-self:start}.form-stack label{display:block}label{font-size:13px;font-weight:650;color:#334155}input:not([type=checkbox]),select,textarea{display:block;width:100%;background:#fff;border:1px solid #cbd5e1;border-radius:7px;padding:10px 12px;margin-top:7px;color:#1e293b;min-height:43px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue)}label small{font-weight:400}.checkbox{display:flex!important;align-items:center;gap:10px}.alert{padding:15px 18px;border:1px solid;border-radius:9px;margin:0 0 23px;font-size:14px;overflow-wrap:anywhere}.alert.success{background:#ecfdf5;border-color:#a7f3d0;color:#166534}.alert.error{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.error-text{color:#b91c1c}.badge{display:inline-block;padding:5px 10px;border-radius:30px;font-size:11px;line-height:1.4;white-space:nowrap;font-weight:750;text-transform:uppercase;letter-spacing:.035em}.state-pendiente{color:#475569;background:#edf1f6}.state-en_proceso{color:#935d06;background:#fff4d7}.state-completo{color:#166b4e;background:#e1f5ec}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.course-card{display:flex;flex-direction:column;margin:0;padding:24px}.course-card h2{min-height:54px;margin:18px 0 12px}.course-card .btn{margin-top:auto}.card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.card-top .eyebrow{margin:0}.empty{padding:32px;text-align:center;color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:28px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.stat span{color:var(--muted);font-size:12px}.stat strong{display:block;color:var(--ink);font-size:32px;font-weight:700;margin-top:8px}.section-heading,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.section-heading p{margin-bottom:0}.section-heading h2{margin-bottom:4px}.toolbar{font-size:13px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.course-summary{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px}.course-summary strong{display:block;font-size:15px}.lesson-field{display:block;max-width:380px}.count-pill{font-size:12px;background:#f1f5f9;color:#475569;border-radius:7px;padding:7px 11px;white-space:nowrap}.table-wrap{overflow-x:auto;max-width:100%;margin-top:16px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{background:#f7f9fc;color:#64748b;font-size:11px;font-weight:750;letter-spacing:.035em;text-transform:uppercase;padding:13px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:15px 14px;border-bottom:1px solid #edf1f5;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbfd}.id-cell{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap}.academic-table{min-width:740px}.academic-table td{padding:12px 14px}.academic-table input{min-width:90px;max-width:150px;margin:0;padding:9px}.academic-table .student-name{min-width:230px;font-weight:550}.table-actions{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;min-width:160px}.topics-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}.topic-label{display:flex;align-items:center;gap:12px}.topic-label span{width:20px;text-align:right;color:var(--muted);font-size:13px}.topic-label input{margin:0}.save-bar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#f5f7fbf2;backdrop-filter:blur(8px);padding:18px 0;border-top:1px solid var(--line);gap:20px}.save-bar p{margin:0}.fields-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.align-end{display:flex;align-items:flex-end}.management-grid{display:grid;grid-template-columns:minmax(270px,360px) minmax(0,1fr);gap:24px}.narrow{max-width:720px}.auth-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;max-width:950px;margin:40px auto}.auth-intro{padding:30px 0}.auth-intro h2{font-size:40px;line-height:1.2;letter-spacing:-.025em;max-width:400px;margin:20px 0}.auth-intro p{max-width:400px;color:#64748b}.intro-rule{height:3px;width:50px;background:#3a80b6;margin:30px 0}.auth-card{padding:32px}.auth-card .btn{width:100%}.auth-card h2{font-size:23px}.selected-course{background:#eaf2fa;border:1px solid #d5e4f1;border-left:4px solid #175da8;border-radius:8px;padding:18px 22px;margin-bottom:24px}.selected-course strong,.selected-course span{display:block}.selected-course span{font-size:13px;color:#536c83;margin-top:5px}textarea{resize:vertical;min-height:200px;font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.8}.csv-option{margin-top:23px;padding:16px;background:#f8fafc;border:1px solid var(--line);border-radius:8px}.csv-option summary{cursor:pointer;font-size:13px;font-weight:650}.csv-option label{display:block;margin-top:15px}.row-error{background:#fff1f2!important}.note{padding:18px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;margin-top:28px;font-size:13px}.note p{margin:6px 0 0;color:var(--muted)}.footer{font-size:12px;color:#7b8da2;padding-top:20px;padding-bottom:24px;border-top:1px solid var(--line)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:20px}.mt-6{margin-top:24px}.mb-6{margin-bottom:24px}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(3,1fr)}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-links{gap:16px}.fields-grid{grid-template-columns:1fr 1fr}.management-grid{grid-template-columns:320px minmax(0,1fr)}}
@media(max-width:760px){.shell{padding-left:18px;padding-right:18px}.nav{align-items:flex-start;flex-direction:column;padding-top:18px;padding-bottom:15px;gap:15px}.nav-links{gap:17px;max-width:100%;font-size:12px}.nav-links a{font-size:12px}.main{padding-top:25px}.page-heading{align-items:flex-start;flex-direction:column;gap:10px}.user-name{text-align:left}.course-grid,.management-grid,.auth-grid{grid-template-columns:1fr}.auth-grid{gap:12px;margin:0 auto}.auth-intro{padding:8px 0}.auth-intro h2{font-size:30px}.auth-intro .intro-rule,.auth-intro .muted{display:none}.panel{padding:20px;border-radius:11px}.stats-grid{gap:10px}.stat{padding:14px}.stat strong{font-size:27px}.stat span{font-size:11px}.course-summary{grid-template-columns:1fr 1fr;gap:20px}.topics-grid,.fields-grid{grid-template-columns:1fr}.section-heading,.toolbar{align-items:flex-start;flex-direction:column;gap:12px}.save-bar{align-items:stretch;flex-direction:column;gap:10px;padding:12px 0}.save-bar p{font-size:11px}.save-bar .btn{width:100%}h1{font-size:26px}.course-card h2{min-height:0}.auth-card{padding:25px}}
