@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fuentes/manrope-variable.woff2)format("woff2-variations")}@font-face{font-family:Sora;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fuentes/sora-variable.woff2)format("woff2-variations")}:root{--primary-900:#04342c;--primary-800:#085041;--primary-700:#0b5f4c;--primary-600:#0f6e56;--primary-500:#168765;--primary-400:#1d9e75;--primary-300:#3eaf8a;--primary-200:#5dcaa5;--primary-100:#9fe1cb;--primary-50:#e1f5ee;--accent-900:#4a1b0c;--accent-800:#712b13;--accent-700:#85331a;--accent-600:#993c1d;--accent-500:#b64b25;--accent-400:#d85a30;--accent-300:#e77755;--accent-200:#f0997b;--accent-100:#f5c4b3;--accent-50:#faece7;--neutral-950:#1f1f1d;--neutral-900:#2c2c2a;--neutral-800:#3f3e3a;--neutral-700:#4f4e49;--neutral-600:#5f5e5a;--neutral-500:#74736d;--neutral-400:#888780;--neutral-300:#9e9d95;--neutral-200:#b4b2a9;--neutral-150:#c4c2b9;--neutral-100:#d3d1c7;--neutral-50:#f7f7f5;--success-900:#275008;--success-800:#326b0d;--success-700:#3b6d11;--success-600:#4d8a18;--success-500:#65a329;--success-400:#97c459;--success-300:#b5d58a;--success-200:#cde5ad;--success-100:#e0efcb;--success-50:#eaf3de;--warning-900:#633806;--warning-800:#75430a;--warning-700:#854f0b;--warning-600:#a5660f;--warning-500:#c47f16;--warning-400:#ef9f27;--warning-300:#f3b64d;--warning-200:#f6ce7a;--warning-100:#f8dfac;--warning-50:#faeeda;--error-900:#641414;--error-800:#801f1f;--error-700:#a32d2d;--error-600:#ba3b3b;--error-500:#d45a5a;--error-400:#f09595;--error-300:#f3adad;--error-200:#f6c4c4;--error-100:#f9dada;--error-50:#fcebeb;--info-900:#0d355d;--info-800:#124675;--info-700:#185fa5;--info-600:#2874bc;--info-500:#4a91d0;--info-400:#85b7eb;--info-300:#a7c9ed;--info-200:#c6dcf4;--info-100:#d8e8f8;--info-50:#e6f1fb;--purple-900:#28235f;--purple-800:#373080;--purple-700:#4439a3;--purple-600:#534ab7;--purple-500:#6a61c7;--purple-400:#8b84d6;--purple-300:#aaa5e2;--purple-200:#c7c4ed;--purple-100:#deddf5;--purple-50:#eeedf9;--brand-primary:var(--primary-600);--brand-primary-hover:var(--primary-800);--brand-primary-active:var(--primary-900);--brand-primary-light:var(--primary-50);--on-brand:#fff;--brand-accent:var(--accent-400);--brand-accent-hover:var(--accent-500);--brand-accent-active:var(--accent-600);--brand-accent-light:var(--accent-50);--background-primary:#f7f7f5;--background-secondary:#f1efe8;--background-tertiary:#e9e7df;--surface-primary:#fff;--surface-secondary:#f7f7f5;--surface-tertiary:#f1efe8;--surface-elevated:#fff;--text-primary:#2c2c2a;--text-secondary:#5f5e5a;--text-tertiary:#888780;--text-disabled:#b4b2a9;--text-inverse:#fff;--text-brand:#0f6e56;--text-accent:#993c1d;--border-primary:#d3d1c7;--border-secondary:#e3e1d9;--border-subtle:#eceae4;--border-focus:#1d9e75;--interactive-primary:var(--primary-600);--interactive-primary-hover:var(--primary-800);--interactive-primary-active:var(--primary-900);--interactive-primary-disabled:var(--neutral-200);--interactive-accent:var(--accent-400);--interactive-accent-hover:var(--accent-500);--interactive-accent-active:#85331a;--status-success-text:#3b6d11;--status-success-bg:#eaf3de;--status-success-border:#97c459;--status-warning-text:#854f0b;--status-warning-bg:#faeeda;--status-warning-border:#ef9f27;--status-error-text:#a32d2d;--status-error-bg:#fcebeb;--status-error-border:#f09595;--status-info-text:#185fa5;--status-info-bg:#e6f1fb;--status-info-border:#85b7eb;--status-muted-text:#5f5e5a;--status-muted-bg:#f1efe8;--status-muted-border:#d3d1c7;--gradient-primary:linear-gradient(135deg, #0f6e56 0%, #1d9e75 100%);--gradient-accent:linear-gradient(135deg, #993c1d 0%, #d85a30 100%);--gradient-brand:linear-gradient(135deg, #0f6e56 0%, #d85a30 100%);--gradient-primary-soft:linear-gradient(135deg, #e1f5ee 0%, #fff 100%);--gradient-accent-soft:linear-gradient(135deg, #faece7 0%, #fff 100%);--progress-primary:#0f6e56;--progress-secondary:#1d9e75;--progress-complete:#3b6d11;--progress-highlight:#d85a30;--progress-background:#e1f5ee;--chart-1:#0f6e56;--chart-2:#d85a30;--chart-3:#185fa5;--chart-4:#854f0b;--chart-5:#534ab7;--chart-6:#c2417a;--font-sans:"Manrope", "Segoe UI", system-ui, sans-serif;--font-display:"Sora", "Segoe UI", system-ui, sans-serif;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.4rem;--radius-full:999px;--shadow-sm:0 1px 2px #1f1f1d0d;--shadow-md:0 4px 16px #1f1f1d14;--shadow-lg:0 16px 48px #1f1f1d24;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.32s ease;--focus-ring:0 0 0 3px #1d9e752e;--focus-ring-accent:0 0 0 3px #d85a3029;--overlay-backdrop:#1f1f1d80;--z-overlay:40;--z-modal:50;--z-toast:60}[data-theme=dark]{--background-primary:#151715;--background-secondary:#1c1f1c;--background-tertiary:#242824;--surface-primary:#1c1f1c;--surface-secondary:#242824;--surface-tertiary:#2c302c;--surface-elevated:#242824;--text-primary:#f5f7f5;--text-secondary:#c5cbc6;--text-tertiary:#8f9891;--text-disabled:#626a64;--text-inverse:#2c2c2a;--text-brand:#3eaf8a;--text-accent:#e77755;--border-primary:#363b36;--border-secondary:#2c302c;--border-subtle:#242824;--border-focus:#5dcaa5;--brand-primary:#3eaf8a;--brand-primary-hover:#5dcaa5;--brand-primary-active:#1d9e75;--brand-primary-light:#085041;--on-brand:#fff;--brand-accent:#e77755;--brand-accent-hover:#f0997b;--brand-accent-active:#d85a30;--brand-accent-light:#4a1b0c;--interactive-primary:#3eaf8a;--interactive-primary-hover:#5dcaa5;--interactive-primary-active:#1d9e75;--interactive-primary-disabled:#626a64;--interactive-accent:#e77755;--interactive-accent-hover:#f0997b;--interactive-accent-active:#d85a30;--status-success-text:#97c459;--status-success-bg:#275008;--status-success-border:#326b0d;--status-warning-text:#f3b64d;--status-warning-bg:#4a3208;--status-warning-border:#854f0b;--status-error-text:#f09595;--status-error-bg:#401717;--status-error-border:#801f1f;--status-info-text:#85b7eb;--status-info-bg:#0d2a47;--status-info-border:#124675;--status-muted-text:#c5cbc6;--status-muted-bg:#242824;--status-muted-border:#363b36;--gradient-primary-soft:linear-gradient(135deg, #0c3d30 0%, #1c1f1c 100%);--gradient-accent-soft:linear-gradient(135deg, #3d2214 0%, #1c1f1c 100%);--focus-ring:0 0 0 3px #3eaf8a47;--focus-ring-accent:0 0 0 3px #e777553d;--overlay-backdrop:#0009;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 16px #00000059;--shadow-lg:0 16px 48px #00000080}:root{font-family:var(--font-sans);color:var(--text-primary);background:var(--background-primary);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}body,button,input,select,textarea{font:inherit}button{appearance:none}img{max-width:100%;display:block}#root{min-height:100dvh}.auth-screen{background:var(--background-secondary);place-items:center;min-height:100vh;padding:2rem;display:grid}.auth-layout{grid-template-columns:minmax(0,1.1fr) minmax(360px,440px);align-items:stretch;gap:1.4rem;width:min(1160px,100%);display:grid}.auth-hero,.auth-card{border-radius:var(--radius-xl);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md)}.auth-hero{background:var(--gradient-primary);color:#fff;border:0;padding:2.2rem}.auth-hero h1{max-width:11ch;margin:0;font-size:clamp(3rem,5vw,5.1rem);line-height:.94}.auth-hero p{color:#ffffffc7}.auth-copy,.auth-note{color:var(--text-secondary)}.auth-points{flex-wrap:wrap;gap:.8rem;margin-top:1.4rem;display:flex}.auth-points span{border-radius:var(--radius-full);color:#fff;background:#ffffff1f;padding:.7rem .9rem}.auth-card{background:var(--surface-primary);color:var(--text-primary);flex-direction:column;gap:1.1rem;padding:2rem;display:flex}.auth-card-center{width:min(520px,100%)}.field{flex-direction:column;gap:.45rem;display:flex}.field span{color:var(--text-secondary);font-weight:var(--font-medium)}.field input{border-radius:var(--radius-lg);border:1px solid var(--border-primary);background:var(--surface-primary);width:100%;color:var(--text-primary);transition:border-color var(--transition-base), box-shadow var(--transition-base);outline:none;padding:.95rem 1rem}.field input:focus{border-color:var(--border-focus);box-shadow:var(--focus-ring)}.auth-submit{border-radius:var(--radius-full);background:var(--interactive-primary);color:var(--on-brand);font-weight:var(--font-bold);cursor:pointer;transition:background var(--transition-base);border:0;padding:.95rem 1rem}.auth-submit:hover{background:var(--interactive-primary-hover)}.auth-submit:disabled{opacity:.68;cursor:wait}.auth-error{color:var(--status-error-text);margin:0}.auth-success{color:var(--text-brand);margin:0}.auth-secondary{border:1px solid var(--border-primary);border-radius:var(--radius-full);color:var(--text-secondary);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-base);background:0 0;padding:.85rem 1rem}.auth-secondary:hover{border-color:var(--interactive-primary);color:var(--text-brand)}.auth-linkback{color:var(--text-tertiary);cursor:pointer;text-align:center;background:0 0;border:0;padding:0;font-size:.85rem}.auth-linkback:hover{color:var(--text-brand)}.auth-choice{flex-direction:column;gap:.8rem;display:flex}.auth-choice-card{border:1px solid var(--border-primary);border-radius:var(--radius-lg);background:var(--surface-secondary);color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);align-items:center;gap:.9rem;padding:1rem 1.1rem;display:flex}.auth-choice-card:hover{border-color:var(--interactive-primary);box-shadow:var(--focus-ring);transform:translateY(-1px)}.auth-choice-icon{flex:none;font-size:1.6rem}.auth-choice-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.auth-choice-text strong{font-size:.95rem}.auth-choice-text small{color:var(--text-tertiary);line-height:1.35}.auth-choice-arrow{color:var(--text-tertiary);margin-left:auto;font-size:1.1rem}.auth-invite-banner{border-radius:var(--radius-lg);border:1px solid var(--status-success-border);background:var(--status-success-bg);align-items:flex-start;gap:.7rem;padding:.9rem 1rem;display:flex}.auth-invite-banner strong{color:var(--status-success-text);font-size:.92rem;display:block}.auth-invite-banner small{color:var(--status-success-text);opacity:.85;line-height:1.35}.auth-invite-banner-error{border-color:var(--status-error-border);background:var(--status-error-bg)}.auth-invite-banner-error strong,.auth-invite-banner-error small{color:var(--status-error-text)}.auth-invite-icon{font-size:1.3rem;line-height:1.2}.student-join-banner{align-items:flex-start;gap:.9rem;display:flex}.student-join-icon{font-size:2rem;line-height:1}.student-join-copy strong{margin-bottom:.2rem;display:block}.student-join-copy p{color:var(--text-secondary);margin:0;line-height:1.4}.student-join-form{gap:.6rem;margin-top:1rem;display:flex}.student-join-form input{border-radius:var(--radius-lg);border:1px solid var(--border-primary);background:var(--surface-primary);color:var(--text-primary);transition:border-color var(--transition-base), box-shadow var(--transition-base);outline:none;flex:1;padding:.8rem 1rem}.student-join-form input:focus{border-color:var(--border-focus);box-shadow:var(--focus-ring)}.student-join-form button{white-space:nowrap;flex:none}.student-join-error{color:var(--status-error-text);margin:.6rem 0 0;font-size:.88rem}.student-join-alt{color:var(--text-tertiary);margin:.9rem 0 0;font-size:.85rem}.student-join-alt a{color:var(--text-brand);font-weight:var(--font-medium)}.app-shell{grid-template-columns:320px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{background:var(--surface-primary);color:var(--text-primary);border-right:1px solid var(--border-subtle);flex-direction:column;gap:1.5rem;padding:2rem;display:flex}.sidebar-overlay{display:none}.brand-block h1,.topbar h2,.panel h3{font-family:var(--font-display);font-weight:var(--font-bold);color:inherit;margin:0;line-height:.95}.brand-block p{color:var(--text-secondary);margin-top:1rem}.brand-block-comercio{align-items:center;gap:.9rem;display:flex}.brand-logo{border-radius:var(--radius-md);background:var(--brand-primary-light);border:1px solid var(--border-secondary);flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.brand-logo img{object-fit:cover;width:100%;height:100%}.brand-logo-placeholder{font-family:var(--font-display,inherit);font-weight:var(--font-bold);color:var(--text-brand);text-transform:uppercase;font-size:1.25rem}.brand-info{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.brand-kicker{margin-bottom:.15rem}.brand-email{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.brand-kicker,.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.18em;align-items:center;gap:.4rem;font-size:.72rem;display:inline-flex}.brand-kicker{color:var(--text-brand)}.brand-info .brand-kicker{margin-bottom:.15rem}.brand-name{font-family:var(--font-display,inherit);font-weight:var(--font-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:1.05rem;line-height:1.2;overflow:hidden}.sidebar-section{flex-direction:column;gap:.8rem;display:flex}.role-switcher,.business-switcher,.sidebar-nav{flex-direction:column;gap:.65rem;display:flex}.chip,.business-card,.nav-link,.ghost-button{cursor:pointer;transition:transform var(--transition-base), background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base);border:0}.chip{border-radius:var(--radius-full);text-align:left;background:var(--surface-secondary);color:var(--text-secondary);padding:.85rem 1rem}.chip-active{background:var(--interactive-primary);color:var(--on-brand)}.business-card{border-radius:var(--radius-lg);background:var(--surface-secondary);color:var(--text-primary);text-align:left;flex-direction:column;gap:.2rem;padding:1rem;display:flex}.business-card small{color:var(--text-tertiary)}.business-card-active{background:var(--brand-primary-light);box-shadow:inset 0 0 0 1px var(--primary-200)}.nav-link{border-radius:var(--radius-lg);text-align:left;color:var(--text-secondary);font-weight:var(--font-medium);background:0 0;align-items:center;gap:.65rem;padding:.95rem 1rem;text-decoration:none;display:flex}.nav-link svg{flex-shrink:0}.nav-link-active,.nav-link:hover,.business-card:hover,.chip:hover,.ghost-button:hover{transform:translate(2px)}.nav-link-active{background:var(--brand-primary-light);color:var(--text-brand);font-weight:var(--font-semibold)}.page-shell{background:var(--background-primary);flex-direction:column;gap:1.5rem;padding:2rem;display:flex}.topbar{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.topbar-left{align-items:center;gap:.75rem;display:flex}.hamburger{cursor:pointer;background:0 0;border:0;flex-direction:column;gap:4px;padding:8px;display:none}.hamburger span{background:var(--neutral-800);border-radius:2px;width:22px;height:2px;display:block}.topbar h2{color:var(--text-primary);font-size:clamp(2rem,3vw,3rem)}.eyebrow,.section-label{color:var(--text-tertiary)}.topbar-meta{gap:.75rem;display:flex}.icon-button{background:var(--surface-secondary);width:40px;height:40px;color:var(--text-primary);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-base,.15s), transform var(--transition-base,.15s);border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover{background:var(--background-tertiary)}.icon-button:active{transform:scale(.92)}.meta-card,.panel,.metric-card,.shortcut-card,.agenda-card,.session-row,.timeline-item{border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.meta-card{border-radius:var(--radius-lg);background:var(--surface-primary);min-width:150px;padding:.95rem 1rem}.meta-card span,.metric-card span,.toolbar-pill,.capacity-pill,.status-badge,.info-row span{font-size:.88rem}.meta-card span{color:var(--text-secondary);display:block}.meta-card strong{color:var(--text-primary)}.page-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:1.25rem;display:grid}.page-grid--stack,.wide-grid{grid-template-columns:minmax(0,1fr)}.panel{border-radius:var(--radius-xl);background:var(--surface-primary);padding:1.4rem}.panel-hero{background:var(--gradient-primary-soft)}.panel-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.panel h3{color:var(--text-primary);font-size:1.75rem}.panel-copy{max-width:55ch;color:var(--text-secondary);margin:0 0 1.2rem}.metrics-grid,.shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.metric-card,.shortcut-card{border-radius:var(--radius-lg);background:var(--surface-primary);padding:1rem;text-decoration:none}.panel-hero .metric-card{background:var(--surface-elevated)}.metric-card strong{color:var(--text-primary);margin-top:.45rem;font-size:2rem;display:block}.eye-toggle{width:30px;height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.eye-toggle:hover{background:var(--surface-elevated);color:var(--text-primary)}.blur-valor{filter:blur(7px);opacity:.55;-webkit-user-select:none;user-select:none;pointer-events:none}.feature-locked{border-radius:var(--radius-lg,16px);position:relative;overflow:hidden}.feature-locked-content{filter:blur(6px);opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none}.feature-locked-overlay{cursor:pointer;z-index:2;text-align:center;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex;position:absolute;inset:0}.feature-locked-icon{filter:drop-shadow(0 1px 3px var(--overlay-backdrop,#00000080));font-size:1.4rem}.feature-locked-msg{color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--border-secondary);border-radius:var(--radius-md,10px);opacity:0;pointer-events:none;max-width:320px;padding:.45rem .8rem;font-size:.85rem;transition:opacity .15s,transform .15s;transform:translateY(4px)}.feature-locked-overlay:hover .feature-locked-msg,.feature-locked-overlay:focus-visible .feature-locked-msg{opacity:1;transform:translateY(0)}.nav-link-locked{opacity:.55}.banner-comercio-inactivo{z-index:1000;background:var(--error-800,#801f1f);color:#fff;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.9rem;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px #00000040}.banner-comercio-inactivo-icon{flex-shrink:0;display:inline-flex}.banner-comercio-inactivo-mail{color:#fff;text-underline-offset:3px;font-weight:600;text-decoration:underline}.banner-comercio-inactivo-mail:hover{opacity:.85}.banner-comercio-inactivo-msg{min-width:0}.deactivada-screen{padding-top:4.5rem}.deactivada-card{margin-top:0}.nav-lock{flex-shrink:0;margin-left:auto;font-size:.72rem}.password-field{align-items:center;display:flex;position:relative}.password-field input{width:100%;padding-right:2.6rem}.password-field .eye-toggle{position:absolute;right:.45rem}.shortcut-card strong,.agenda-card strong,.timeline-item strong,.session-row strong{color:var(--text-primary)}.agenda-list,.stack-list,.timeline{flex-direction:column;gap:.8rem;display:flex}.agenda-card,.session-row,.timeline-item{border-radius:var(--radius-lg);background:var(--surface-primary);justify-content:space-between;gap:1rem;padding:1rem;text-decoration:none;display:flex}.compact-card{flex-direction:column}.day-strip{scrollbar-width:none;gap:.5rem;padding:.25rem 0 .5rem;display:flex;overflow-x:auto}.day-strip::-webkit-scrollbar{display:none}.day-chip{border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--surface-primary);color:var(--text-secondary);font-family:inherit;font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;flex:1 0 3.4rem;align-items:center;gap:.15rem;padding:.5rem .3rem .65rem;display:flex;position:relative}.day-chip:hover{border-color:var(--primary-300)}.day-chip-dia{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em}.day-chip-num{font-size:var(--text-md);font-weight:var(--font-bold);color:var(--text-primary)}.day-chip-hoy .day-chip-dia{color:var(--text-brand);font-weight:var(--font-semibold)}.day-chip-dot{background:var(--brand-accent);border-radius:50%;width:.32rem;height:.32rem;position:absolute;bottom:.28rem}.day-chip-selected{background:var(--brand-primary);border-color:var(--brand-primary)}.day-chip-selected .day-chip-dia,.day-chip-selected .day-chip-num{color:var(--on-brand)}.day-chip-selected .day-chip-dot{background:var(--on-brand)}.day-strip-fecha{font-size:var(--text-sm);color:var(--text-tertiary);margin:0 0 .6rem}.agenda-card-pasada{opacity:.55}.attendance-student{flex-wrap:wrap}.attendance-student .attendance-info{flex-wrap:wrap;align-items:center;gap:.6rem;min-width:0;display:flex}.attendance-student .attendance-badges{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.attendance-student .attendance-actions{gap:.3rem;margin-left:auto;display:flex}.attendance-panel-header{z-index:5;background:var(--surface-primary);border-bottom:1px solid var(--border-subtle);margin-bottom:.6rem;padding-top:.25rem;padding-bottom:.6rem;position:sticky;top:0}.attendance-progress{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-secondary);border-radius:var(--radius-md);background:var(--surface-secondary);border:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:.9rem;margin-bottom:.8rem;padding:.5rem .75rem;display:flex}.attendance-progress-ok{color:var(--status-success-text)}.attendance-progress-ko{color:var(--status-error-text)}.attendance-progress-warn{color:var(--status-warning-text)}.attendance-chips-block{padding-top:.4rem}.attendance-chips-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem}.attendance-chips{flex-wrap:wrap;gap:.45rem;display:flex}.attendance-chip{border-radius:var(--radius-full);border:1px solid var(--status-muted-border);background:var(--status-muted-bg);color:var(--status-muted-text);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;min-height:36px;transition:filter var(--transition-fast), transform var(--transition-fast);align-items:center;gap:.35rem;padding:.45rem .75rem;display:inline-flex}.attendance-chip:hover{filter:brightness(.96);transform:translateY(-1px)}.attendance-chip--presente{background:var(--status-success-bg);border-color:var(--status-success-border);color:var(--status-success-text)}.attendance-chip--ausente{background:var(--status-error-bg);border-color:var(--status-error-border);color:var(--status-error-text)}.attendance-chip--justificado{background:var(--status-warning-bg);border-color:var(--status-warning-border);color:var(--status-warning-text)}.attendance-chip:after{content:"✕";opacity:.55;font-size:.7rem}.agenda-card p,.timeline-item p,.session-row p,.shortcut-card p{color:var(--text-secondary);margin:.35rem 0 0}.agenda-meta,.session-tags{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.toolbar{flex-wrap:wrap;gap:.65rem;margin-bottom:1rem;display:flex}.toolbar-pill,.capacity-pill,.status-badge{border-radius:var(--radius-full);justify-content:center;align-items:center;padding:.45rem .7rem;display:inline-flex}.toolbar-pill{background:var(--brand-accent-light);color:var(--text-accent);font-weight:var(--font-medium)}.capacity-pill{background:var(--brand-primary-light);color:var(--text-brand);font-weight:var(--font-medium)}.status-badge{font-weight:var(--font-semibold);border:1px solid #0000}.tone-success{background:var(--status-success-bg);color:var(--status-success-text);border-color:var(--status-success-border)}.tone-warning{background:var(--status-warning-bg);color:var(--status-warning-text);border-color:var(--status-warning-border)}.tone-danger{background:var(--status-error-bg);color:var(--status-error-text);border-color:var(--status-error-border)}.tone-info{background:var(--status-info-bg);color:var(--status-info-text);border-color:var(--status-info-border)}.tone-muted{background:var(--status-muted-bg);color:var(--status-muted-text);border-color:var(--status-muted-border)}.table{flex-direction:column;display:flex}.table-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:1.4fr .9fr 1fr .9fr 1fr;align-items:center;gap:1rem;padding:.95rem 0;display:grid}.table-head{text-transform:uppercase;letter-spacing:.12em;color:var(--text-tertiary);padding-top:0;font-size:.8rem}.info-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;gap:1rem;padding:.85rem 0;display:flex}.info-row strong{color:var(--text-primary)}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(100deg, color-mix(in srgb, var(--text-primary) 7%, transparent) 30%, color-mix(in srgb, var(--text-primary) 14%, transparent) 50%, color-mix(in srgb, var(--text-primary) 7%, transparent) 70%);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-shimmer;display:inline-block}@keyframes skeleton-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@media (prefers-reduced-motion:reduce){.skeleton{background:color-mix(in srgb, var(--text-primary) 9%, transparent);animation:none}}.hint-banner{border-radius:var(--radius-md);border:1px solid var(--primary-100);background:var(--brand-primary-light);color:var(--text-secondary);align-items:flex-start;gap:.6rem;margin-bottom:1rem;padding:.75rem .9rem;font-size:.88rem;line-height:1.45;display:flex}.hint-banner svg{color:var(--text-brand);flex-shrink:0;margin-top:.1rem}.hint-banner strong{color:var(--text-primary)}.ghost-button{border-radius:var(--radius-full);background:var(--interactive-primary);color:var(--on-brand);font-weight:var(--font-medium);padding:.8rem 1rem}.ghost-button:hover{background:var(--interactive-primary-hover)}@media (width<=1100px){.auth-layout,.app-shell,.page-grid{grid-template-columns:1fr}.sidebar{z-index:900;width:min(300px,88vw);max-width:88vw;height:100dvh;padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));visibility:hidden;transition:transform var(--transition-slow), visibility 0s linear var(--transition-slow);border-right:1px solid var(--border-subtle);overscroll-behavior:contain;touch-action:pan-y;position:fixed;inset:0 auto 0 0;overflow:hidden auto;transform:translate(-100%)}.sidebar-open{visibility:visible;transition:transform var(--transition-slow);transform:translate(0);box-shadow:0 0 24px #0000002e}.sidebar .brand-block{flex-direction:row-reverse;justify-content:flex-end;padding-right:0}.sidebar-close{border-radius:var(--radius-full);background:var(--surface-secondary);width:38px;height:38px;color:var(--text-primary);cursor:pointer;touch-action:manipulation;border:0;flex-shrink:0;justify-content:center;align-items:center;margin-right:.75rem;padding:0;display:inline-flex}.sidebar-close:active{transform:scale(.92)}.topbar .brand-logo{display:block}body:has(.sidebar-open){overflow:hidden}.sidebar-overlay{background:var(--overlay-backdrop);z-index:899;display:none;position:fixed;inset:0}.sidebar-overlay-visible{display:block}.hamburger{cursor:pointer;background:0 0;border:0;flex-direction:column;gap:4px;padding:8px;display:flex}.hamburger span{background:var(--neutral-800);border-radius:2px;width:22px;height:2px;display:block}.brand-block h1{font-size:1.9rem}}@media (width>=1101px){.sidebar-overlay,.hamburger{display:none}.sidebar{visibility:visible;touch-action:auto;width:auto;max-width:none;height:auto;padding:2rem;transition:none;position:static;overflow:visible;transform:none}.sidebar .brand-block{flex-direction:row;justify-content:flex-start}.sidebar-close,.topbar .brand-logo{display:none}}@media (width<=720px){.page-shell,.auth-screen,.auth-card,.auth-hero{padding:1rem}.sidebar{padding-top:1rem;padding-bottom:1rem;padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right))}.day-strip{flex-wrap:nowrap}.day-chip{flex:1 1 0;min-width:0;padding:.45rem .1rem .6rem}.topbar{z-index:100;background:var(--background-primary);border-bottom:1px solid var(--border-subtle);margin:-1rem -1rem 0;padding:.75rem 1rem;position:sticky;top:0}.auth-layout{grid-template-columns:1fr}.auth-hero{display:none}.topbar{flex-direction:column;align-items:flex-start;gap:.5rem}.topbar-left{align-items:center;gap:.5rem;display:flex}.topbar-meta{justify-content:flex-end;align-items:center;width:100%}.topbar .brand-logo{flex:0 0 34px;order:3;width:34px;height:34px;margin-left:auto;display:flex}.meta-card-hide-mobile{display:none}.metrics-grid,.shortcut-grid{grid-template-columns:1fr}.table-row{gap:.3rem;padding:.7rem 0;grid-template-columns:1fr!important}.table-row-row-pending{padding:.7rem .6rem}.table-head{display:none}.table-row span{font-size:.88rem}.panel-header{flex-direction:column;align-items:flex-start;gap:.5rem}.form-grid{grid-template-columns:1fr}.modal-card{border-radius:var(--radius-lg);width:100%;max-height:min(90dvh,100dvh - 1rem)}.modal-overlay{overscroll-behavior:contain;align-items:flex-end;padding:.5rem}.modal-wide{width:100%}.meta-card{min-width:auto}.panel{border-radius:var(--radius-lg);padding:1rem}.brand-block h1{font-size:1.6rem}}@media (width<=480px){.page-shell{padding:.75rem}.topbar{margin:-.75rem -.75rem 0;padding:.75rem}.btn{padding:.5rem .75rem;font-size:.82rem}.panel h3{font-size:1.3rem}.topbar h2{font-size:1.5rem}}.modal-overlay{background:var(--overlay-backdrop);z-index:1000;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{background:var(--surface-primary);border-radius:var(--radius-xl);border:1px solid var(--border-subtle);box-shadow:var(--shadow-lg);flex-direction:column;width:min(520px,100%);max-height:min(92vh,92dvh);display:flex}.modal-wide{width:min(720px,100%)}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:1.2rem 1.4rem;display:flex}.modal-header h3{font-family:var(--font-display);color:var(--text-primary);margin:0}.modal-close{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:.2rem .5rem;font-size:1.5rem}.modal-close:hover{background:var(--surface-tertiary)}.modal-body{overscroll-behavior:contain;min-height:0;padding:1.4rem;overflow-y:auto}.dialog-overlay{background:var(--overlay-backdrop);z-index:1100;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog-card{background:var(--surface-primary);border-radius:var(--radius-xl);border:1px solid var(--border-subtle);box-shadow:var(--shadow-lg);width:min(420px,100%);padding:1.4rem;animation:.2s toast-in}.dialog-title{font-family:var(--font-display);color:var(--text-primary);margin:0;font-size:1.15rem}.dialog-header{align-items:center;gap:.7rem;margin-bottom:.7rem;display:flex}.dialog-icon{border-radius:var(--radius-md);border:1px solid var(--status-info-border);background:var(--status-info-bg);width:34px;height:34px;color:var(--status-info-text);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.dialog-icon-danger{border-color:var(--status-error-border);background:var(--status-error-bg);color:var(--status-error-text)}.dialog-message{color:var(--text-secondary);white-space:pre-line;margin:0;line-height:1.5}.dialog-input{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-secondary);width:100%;color:var(--text-primary);font:inherit;margin-top:.9rem;padding:.55rem .75rem}.dialog-input:focus{border-color:var(--border-focus);outline:none}.dialog-actions{justify-content:flex-end;gap:.6rem;margin-top:1.3rem;display:flex}@media (width<=480px){.dialog-card{width:100%}.dialog-actions{flex-direction:column-reverse}.dialog-actions .btn{width:100%}}.form-grid{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.form-grid-full{grid-column:1/-1}.form-field{flex-direction:column;gap:.35rem;display:flex}.form-field span{color:var(--text-secondary);font-size:.85rem;font-weight:var(--font-medium)}.form-field input,.form-field select,.form-field textarea{border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--surface-primary);width:100%;color:var(--text-primary);transition:border-color var(--transition-base), box-shadow var(--transition-base);outline:none;padding:.65rem .8rem;font-size:.95rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--border-focus);box-shadow:var(--focus-ring)}.styled-input{border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--surface-primary);width:100%;color:var(--text-primary);transition:border-color var(--transition-base), box-shadow var(--transition-base);outline:none;padding:.65rem .8rem;font-size:.95rem}.styled-input::placeholder{color:var(--text-tertiary)}.styled-input:focus{border-color:var(--border-focus);box-shadow:var(--focus-ring)}.btn{border-radius:var(--radius-full);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base);border:0;align-items:center;gap:.4rem;padding:.6rem 1rem;font-size:.88rem;display:inline-flex}.btn-primary{background:var(--interactive-primary);color:var(--on-brand)}.btn-primary:hover{background:var(--interactive-primary-hover)}.btn-accent{background:var(--interactive-accent);color:#fff}.btn-accent:hover{background:var(--interactive-accent-hover)}.btn-secondary{background:var(--surface-secondary);color:var(--text-secondary);border:1px solid var(--border-primary)}.btn-secondary:hover{background:var(--background-tertiary);color:var(--text-primary)}.btn-danger{background:var(--status-error-bg);color:var(--status-error-text);border:1px solid var(--status-error-border)}.btn-danger:hover{background:var(--error-100)}.btn-warning{background:var(--status-warning-bg);color:var(--status-warning-text);border:1px solid var(--status-warning-border)}.btn-warning:hover{filter:brightness(.96)}.table-row-row-pending{background:var(--status-warning-bg);border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--status-warning-border)}.table-row-row-pending span strong{color:var(--status-warning-text)}.btn-sm{padding:.35rem .7rem;font-size:.8rem}.toast{border-radius:var(--radius-md);font-size:.9rem;font-weight:var(--font-medium);box-shadow:var(--shadow-md);border:1px solid #0000;padding:.75rem 1.1rem;animation:.2s toast-in}.toast-success{background:var(--status-success-bg);color:var(--status-success-text);border-color:var(--status-success-border)}.toast-error{background:var(--status-error-bg);color:var(--status-error-text);border-color:var(--status-error-border)}.toast-info{background:var(--status-info-bg);color:var(--status-info-text);border-color:var(--status-info-border)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.notif-badge{border-radius:var(--radius-full);background:var(--error-600);color:#fff;min-width:18px;height:18px;font-size:.7rem;font-weight:var(--font-bold);justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.chip-group{flex-wrap:wrap;gap:.4rem;display:flex}.chip-toggle{border-radius:var(--radius-full);border:1px solid var(--border-primary);background:var(--surface-primary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base);padding:.5rem .8rem;font-size:.85rem}.chip-toggle:hover{border-color:var(--interactive-primary);color:var(--text-brand)}.chip-toggle-active{background:var(--interactive-primary);color:#fff;border-color:var(--interactive-primary)}.empty-state{text-align:center;color:var(--text-tertiary);padding:2rem 1rem}.empty-state strong{color:var(--text-secondary);margin-bottom:.3rem;font-size:1.1rem;display:block}.theme-switch{flex-wrap:wrap;gap:.6rem;display:flex}.theme-option{border-radius:var(--radius-full);border:1px solid var(--border-primary);background:var(--surface-primary);color:var(--text-secondary);font-size:.88rem;font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-base);align-items:center;gap:.5rem;padding:.55rem .9rem;display:inline-flex}.theme-option:hover{border-color:var(--interactive-primary);color:var(--text-brand)}.theme-option-active{border-color:var(--interactive-primary);background:var(--brand-primary-light);color:var(--text-brand);font-weight:var(--font-semibold)}.theme-swatch{border:1px solid var(--border-primary);border-radius:50%;width:14px;height:14px}.theme-swatch-light{background:linear-gradient(#fff 0%,#f7f7f5 100%)}.theme-swatch-dark{background:linear-gradient(#242824 0%,#151715 100%)}.custom-select{width:100%;position:relative}.custom-select-trigger{border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--surface-primary);width:100%;color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);text-align:left;justify-content:space-between;align-items:center;padding:.65rem .8rem;font-family:inherit;font-size:.95rem;line-height:1.4;display:flex}.custom-select-trigger:hover{border-color:var(--neutral-300)}.custom-select-open .custom-select-trigger{border-color:var(--border-focus);box-shadow:var(--focus-ring)}.custom-select-placeholder{color:var(--text-tertiary)}.custom-select-sm .custom-select-trigger{padding:.35rem .6rem;font-size:.85rem}.custom-select-sm .custom-select-menu{font-size:.85rem}.custom-select-chevron{transition:transform var(--transition-base);color:var(--text-tertiary);flex-shrink:0;margin-left:.5rem}.custom-select-open .custom-select-chevron{transform:rotate(180deg)}.custom-select-menu{z-index:100;background:var(--surface-primary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);overscroll-behavior:contain;max-height:240px;padding:4px;animation:.15s select-fade-in;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.custom-select-drop-up .custom-select-menu{animation:.15s select-fade-up-in;top:auto;bottom:calc(100% + 4px)}@keyframes select-fade-up-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.custom-select-option{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;transition:background var(--transition-fast);background:0 0;border:0;padding:.55rem .75rem;font-family:inherit;font-size:.9rem;display:block}.custom-select-option:hover{background:var(--brand-primary-light)}.custom-select-active{background:var(--brand-primary-light);color:var(--text-brand);font-weight:var(--font-semibold)}@keyframes select-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
