:root{--font-sans:"Roboto", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:"Roboto", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--spacing-unit:8px;--radius-technical:16px;--radius-card:16px;--radius-btn:16px;--radius-input:16px;--radius-modal:16px;--radius-badge:12px;--radius-chip:12px;--radius-pill:9999px;--transition-fast:all .15s cubic-bezier(.4, 0, .2, 1);--transition-panel:all .25s cubic-bezier(.4, 0, .2, 1);--color-success:#10b981;--color-success-bg:#10b9811f;--color-success-border:#10b9814d;--color-danger:#ef4444;--color-danger-bg:#ef44441f;--color-danger-border:#ef44444d;--color-warning:#f59e0b;--color-warning-bg:#f59e0b1f;--color-warning-border:#f59e0b4d;--color-info:#3b82f6;--color-info-bg:#3b82f61f;--color-info-border:#3b82f64d;--bg-app:#fafafa;--bg-surface:#ededed;--bg-surface-elevated:#f5f5f5;--bg-card:#ededed;--bg-subtle:#e2e2e2;--bg-hover:#e8e8e8;--bg-input:#fafafa;--bg-dropdown:#ededed;--color-primary:#1e4bd8;--color-primary-hover:#153bb5;--color-primary-light:#1e4bd814;--color-primary-glow:#1e4bd826;--border-outline:#dadada;--border-light:#dadada;--border-medium:#c5c5c5;--border-dark:#a5a5a5;--border-hover:#1e4bd8;--text-main:#111;--text-muted:#555;--text-label:#7a7a7a;--text-inverse:#fff;--background:#fafafa;--foreground:#111;--surface:#ededed;--surface-hover:#e2e2e2;--border:#dadada;--border-focus:#1e4bd866;--border-color:#dadada;--bg-base:#fafafa;--text-primary:#111;--text-secondary:#555;--primary:#1e4bd8;--secondary:#1e4bd8;--accent-color:#1e4bd8;--error:#ef4444;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000d;--shadow-card:0 2px 6px #0000000d;--shadow-hover:0 4px 12px #00000014;--shadow-modal:0 10px 25px #0000001f}[data-theme=dark],.dark{--bg-app:#121212;--bg-surface:#1e1e1e;--bg-surface-elevated:#242424;--bg-card:#1e1e1e;--bg-subtle:#282828;--bg-hover:#303030;--bg-input:#171717;--bg-dropdown:#1e1e1e;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#3b82f61f;--color-primary-glow:#3b82f640;--border-outline:#ffffff14;--border-light:#ffffff14;--border-medium:#ffffff29;--border-dark:#ffffff47;--border-hover:#fff3;--text-main:#fff;--text-muted:#b3b3b3;--text-label:#8a8a8a;--text-inverse:#111;--background:#121212;--foreground:#fff;--surface:#1e1e1e;--surface-hover:#2c2c2c;--border:#ffffff14;--border-focus:#3b82f680;--border-color:#ffffff14;--bg-base:#121212;--text-primary:#fff;--text-secondary:#b3b3b3;--primary:#3b82f6;--secondary:#3b82f6;--accent-color:#3b82f6;--error:#ff5252;--shadow-xs:none;--shadow-sm:0 1px 3px #0003;--shadow-card:none;--shadow-hover:0 4px 14px #0006;--shadow-modal:0 20px 35px #0009}[data-theme=amoled]{--bg-app:#000;--bg-surface:#0a0a0a;--bg-surface-elevated:#121212;--bg-card:#0e0e0e;--bg-subtle:#161616;--bg-hover:#1e1e1e;--bg-input:#000;--bg-dropdown:#0a0a0a;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#3b82f626;--color-primary-glow:#3b82f64d;--border-outline:#ffffff1a;--border-light:#ffffff1a;--border-medium:#fff3;--border-dark:#ffffff59;--border-hover:#ffffff40;--text-main:#fff;--text-muted:#b3b3b3;--text-label:#8a8a8a;--text-inverse:#000;--background:#000;--foreground:#fff;--surface:#0a0a0a;--surface-hover:#1e1e1e;--border:#ffffff1a;--border-focus:#3b82f680;--border-color:#ffffff1a;--bg-base:#000;--text-primary:#fff;--text-secondary:#b3b3b3;--primary:#3b82f6;--secondary:#3b82f6;--accent-color:#3b82f6;--error:#ff5252;--shadow-xs:none;--shadow-sm:none;--shadow-card:none;--shadow-hover:none;--shadow-modal:0 0 0 1px #ffffff26}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-fast), color var(--transition-fast);line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:#1e4bd826}.dark ::-webkit-scrollbar-thumb{background:#3b82f626}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#3b82f626}[data-theme=amoled] ::-webkit-scrollbar-thumb{background:#3b82f626}::-webkit-scrollbar-thumb:hover{background:#1e4bd859}.dark ::-webkit-scrollbar-thumb:hover{background:#3b82f659}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#3b82f659}[data-theme=amoled] ::-webkit-scrollbar-thumb:hover{background:#3b82f659}.font-heading{font-family:var(--font-heading)}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.8125rem;line-height:1.25rem}.text-base{font-size:.875rem;line-height:1.35rem}.text-lg{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.125rem;line-height:1.6rem}.text-2xl{font-size:1.375rem;line-height:1.8rem}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.col-span-2{grid-column:span 2/span 2}.w-full{width:100%}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cursor-pointer{cursor:pointer}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.space-y-1>*+*{margin-top:.25rem}.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}.space-y-5>*+*{margin-top:1.25rem}.space-y-6>*+*{margin-top:1.5rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-3\.5{padding-top:.875rem}.pt-4{padding-top:1rem}.border-t{border-top:1px solid var(--border-outline)}.chip-btn{border-radius:var(--radius-badge);border:1px solid var(--border-outline);background-color:var(--bg-subtle);color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:.35rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.chip-btn:hover{background-color:var(--bg-hover);color:var(--text-main);border-color:var(--border-medium)}.chip-btn.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 1px 3px var(--color-primary-light)}.chip-btn-sm{padding:.2rem .55rem;font-size:.6875rem}.chip-btn-sm.active{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.btn{font-family:var(--font-heading);letter-spacing:.02em;border-radius:var(--radius-technical);transition:var(--transition-fast);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.btn-sm{height:34px;padding:.35rem .85rem;font-size:.8125rem}.btn-md{height:40px;padding:.5rem 1.15rem;font-size:.875rem}.btn-lg{height:48px;padding:.75rem 1.5rem;font-size:1rem}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:none;border-color:#0000}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:0 2px 8px var(--color-primary-glow)}.btn-secondary{background-color:var(--bg-surface);border-color:var(--border-outline);color:var(--text-main)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-medium)}.btn-outline{border-color:var(--border-outline);color:var(--text-main);background-color:#0000}.btn-outline:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-medium)}.btn-ghost{color:var(--text-muted);background-color:#0000;border-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-main)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626;box-shadow:0 2px 8px #ef444440}.btn-success{background-color:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background-color:#059669;box-shadow:0 2px 8px #10b98140}.btn:disabled{opacity:.45;cursor:not-allowed}.badge{font-family:var(--font-heading);letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-badge);border:1px solid #0000;align-items:center;gap:.35rem;font-weight:700;line-height:1;display:inline-flex}.badge-sm{padding:.2rem .5rem;font-size:.6875rem}.badge-md{padding:.3rem .65rem;font-size:.75rem}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary-light)}.badge-success{background-color:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.badge-danger{background-color:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.badge-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.badge-info{background-color:var(--color-info-bg);color:var(--color-info);border-color:var(--color-info-border)}.badge-neutral{background-color:var(--bg-hover);color:var(--text-muted);border-color:var(--border-outline)}.badge-purple{color:#9333ea;background-color:#a855f71f;border-color:#a855f74d}.badge-cyan{color:#0891b2;background-color:#06b6d41f;border-color:#06b6d44d}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{color:var(--text-main);letter-spacing:.01em;font-size:.8125rem;font-weight:600}.form-input,.form-select,.form-textarea{width:100%;color:var(--text-main);background-color:var(--bg-input);border:1px solid var(--border-outline);border-radius:var(--radius-technical);transition:var(--transition-fast);outline:none;padding:.6rem .85rem;font-family:inherit;font-size:.875rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-label)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.18s cubic-bezier(.4,0,.2,1) forwards fadeIn}.animate-slide-up{animation:.22s cubic-bezier(.4,0,.2,1) forwards slideUp}.schedule-print-doc-header{display:none}@media print{@page{size:landscape;margin:6mm}*,:before,:after{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}:root,[data-theme],[data-theme=dark],[data-theme=amoled],html.dark,html.amoled{--bg-app:#fff!important;--bg-surface:#fff!important;--bg-subtle:#f3f4f6!important;--bg-card:#fff!important;--bg-hover:#f9fafb!important;--text-main:#111827!important;--text-muted:#374151!important;--text-label:#4b5563!important;--border-outline:#d1d5db!important;--border-medium:#9ca3af!important;--color-primary:#1e4bd8!important;--color-primary-light:#eaf0fa!important}html,body{color:#111827!important;background:#fff!important;width:100%!important;min-width:0!important;overflow:visible!important}.app-header,.app-toolbar,.app-footer,.toast-container,.modal-backdrop,.modal-container,.card-actions,.plan-toggle-btn,.card-action-btn,.btn,button,.clear-search-btn,.add-comm-btn,.empty-slot-plus,.add-docente-form,.docente-delete-btn,.day-filters,.search-box,.compare-view-container>div:first-child{display:none!important}.app-root-layout{background:#fff!important;min-height:0!important;margin:0!important;padding:0!important;display:block!important}.app-main-content{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.schedule-print-doc-header{border-bottom:1.5px solid #111827!important;margin-bottom:6px!important;padding:0 0 6px!important;display:block!important}.print-doc-top{color:#4b5563!important;text-transform:uppercase!important;letter-spacing:.05em!important;font-size:8pt!important;font-weight:600!important}.print-doc-main{justify-content:space-between!important;align-items:baseline!important;gap:12px!important;margin-top:2px!important;display:flex!important}.print-doc-title{color:#111827!important;margin:0!important;font-size:13pt!important;font-weight:800!important}.print-doc-comm{color:#1e4bd8!important;font-size:9.5pt!important;font-weight:700!important}.schedule-grid-container{page-break-inside:avoid;box-shadow:none!important;border:1px solid #d1d5db!important;border-radius:4px!important;width:100%!important;max-width:100%!important;overflow:visible!important}.grid-main-scroll{width:100%!important;max-width:100%!important;overflow:visible!important}.grid-table-layout,.grid-days-row{--grid-cols-custom:50px repeat(var(--days-count,6), minmax(0, 1fr))!important;grid-template-columns:50px repeat(var(--days-count,6), minmax(0, 1fr))!important;width:100%!important;min-width:0!important;max-width:100%!important}.commission-banner{color:#111827!important;background:#f3f4f6!important;border-bottom:1px solid #d1d5db!important;padding:4px 8px!important}.comm-banner-code{padding:1px 5px!important;font-size:8pt!important}.comm-banner-desc{font-size:8.5pt!important}.grid-day-header{color:#111827!important;background:#f3f4f6!important;border-color:#d1d5db!important;padding:4px 2px!important;font-size:7.5pt!important;font-weight:700!important}.time-slot-label{color:#374151!important;font-size:7pt!important;font-weight:700!important}.schedule-event-card{page-break-inside:avoid;box-shadow:none!important;border-style:solid!important;border-width:1px 1px 1px 4px!important;border-color:var(--print-card-border)!important;border-left-color:var(--print-card-border)!important;background-color:var(--print-card-bg)!important;color:var(--print-card-text)!important;padding:3px 5px!important;overflow:hidden!important}.schedule-event-card .card-subject-title{color:var(--print-card-text)!important;font-size:7.5pt!important;font-weight:700!important;line-height:1.15!important}.schedule-event-card .card-code{color:var(--print-card-text)!important;opacity:.85!important}.schedule-event-card .card-badges-row{gap:2px!important;margin-top:1px!important}.schedule-event-card .card-type-badge{background-color:var(--print-badge-bg)!important;color:var(--print-badge-text)!important;border-color:var(--print-card-border)!important;border-width:.5px!important;padding:.5px 3px!important;font-size:6pt!important}.schedule-event-card .card-comm-note{color:var(--print-card-text)!important;opacity:.9!important;font-size:6pt!important}.schedule-event-card .card-meta-row{color:var(--print-card-text)!important;gap:1px!important;font-size:6.5pt!important}.schedule-event-card .meta-icon{opacity:.85!important;width:10px!important;height:10px!important;color:var(--print-card-text)!important}.schedule-event-card .card-time-footer{color:var(--print-card-text)!important;opacity:.8!important;font-size:6pt!important}.docentes-footer-container{background:#fff!important;border-top:1px solid #d1d5db!important;padding:6px 8px!important}.docentes-title{color:#111827!important}.docentes-table-card{background:#fafafa!important;padding:4px 6px!important}.docente-subject-tag{color:#111827!important}.docente-names{color:#4b5563!important}.docente-item-row{gap:4px!important;font-size:7pt!important}.exam-view-container{gap:8px!important}table{font-size:7pt!important}th,td{color:#111827!important;border-color:#d1d5db!important;padding:3px 4px!important}}.app-root-layout{background-color:var(--bg-app);min-height:100vh;color:var(--text-main);transition:background-color var(--transition-fast);flex-direction:column;display:flex}.app-main-content{flex:1;width:100%;max-width:1560px;margin:0 auto;padding:1.25rem 1.5rem 2.5rem}.app-header{background-color:var(--bg-surface);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-outline);z-index:30;transition:background-color var(--transition-fast), border-color var(--transition-fast);position:sticky;top:0}.header-container{justify-content:space-between;align-items:center;gap:1rem;max-width:1560px;margin:0 auto;padding:.625rem 1.5rem;display:flex}.header-left{align-items:center;gap:.75rem;min-width:0;display:flex}.app-logo-badge{border-radius:var(--radius-badge);background:var(--color-primary-light);border:1px solid var(--border-outline);width:34px;height:34px;color:var(--color-primary);transition:var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.app-logo-badge:hover{background:var(--color-primary-glow);border-color:var(--color-primary)}.header-title-group{flex-direction:column;justify-content:center;min-width:0;display:flex}.header-main-title{align-items:center;line-height:1.25;display:flex}.schedule-switcher-btn{cursor:pointer;border-radius:var(--radius-badge);transition:var(--transition-fast);color:var(--text-main);text-align:left;background:0 0;border:none;align-items:center;gap:.35rem;margin-left:-.4rem;padding:.15rem .4rem;display:inline-flex}.schedule-switcher-btn:hover{background-color:var(--bg-hover)}.schedule-heading{color:var(--text-main);letter-spacing:-.01em;font-size:1.0625rem;font-weight:700;font-family:var(--font-heading);white-space:nowrap;text-overflow:ellipsis;max-width:380px;overflow:hidden}.switcher-arrow{color:var(--text-muted);opacity:.7;font-size:.8rem}.header-meta-line{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.45rem;margin-top:.1rem;font-size:.75rem;display:flex;overflow:hidden}.institution-tag{color:var(--text-muted);opacity:.9;font-weight:500}.breadcrumb-separator{opacity:.35;font-size:.65rem}.period-badge-btn{background-color:var(--bg-subtle);color:var(--text-muted);border-radius:var(--radius-badge);letter-spacing:.02em;cursor:pointer;transition:var(--transition-fast);border:1px solid #0000;align-items:center;gap:.2rem;padding:.1rem .45rem;font-size:.6875rem;font-weight:600;display:inline-flex}.period-badge-btn:hover{background-color:var(--bg-hover);border-color:var(--border-outline);color:var(--text-main)}.period-arrow{opacity:.6;font-size:.65rem}.schedule-subtitle{color:var(--text-muted);opacity:.8;font-size:.75rem}.header-actions{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.header-utility-cluster{align-items:center;gap:.2rem;display:flex}.icon-action-btn{border-radius:var(--radius-badge);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.icon-action-btn:hover{background-color:var(--bg-hover);border-color:var(--border-outline);color:var(--text-main)}.header-file-btn{height:32px;color:var(--text-muted);border-radius:var(--radius-badge);cursor:pointer;transition:var(--transition-fast);background:0 0;border:1px solid #0000;align-items:center;gap:.35rem;padding:0 .6rem;font-size:.8125rem;font-weight:500;display:inline-flex}.header-file-btn:hover{background-color:var(--bg-hover);border-color:var(--border-outline);color:var(--text-main)}.header-share-btn{border-radius:var(--radius-badge);align-items:center;gap:.35rem;height:32px;padding:0 .75rem;font-size:.8125rem;display:inline-flex}.header-divider{background-color:var(--border-outline);opacity:.75;width:1px;height:18px;margin:0 .2rem}.header-add-class-btn{border-radius:var(--radius-badge)!important;gap:.35rem!important;height:32px!important;padding:0 .85rem!important;font-size:.8125rem!important}.app-toolbar{background-color:var(--bg-surface);border-bottom:1px solid var(--border-outline);transition:background-color var(--transition-fast), border-color var(--transition-fast);padding:.5rem 1.5rem}.toolbar-top-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;max-width:1560px;margin:0 auto;display:flex}.view-mode-tabs{background-color:var(--bg-subtle);border-radius:var(--radius-badge);border:1px solid var(--border-outline);gap:2px;padding:2px;display:inline-flex}.view-tab{color:var(--text-muted);border-radius:calc(var(--radius-badge) - 2px);cursor:pointer;transition:var(--transition-fast);-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.8125rem;font-weight:500;display:inline-flex}.view-tab:hover{color:var(--text-main);background-color:#ffffff0a}.view-tab-active{box-shadow:var(--shadow-sm);font-weight:600;background-color:var(--bg-surface)!important;color:var(--color-primary)!important}.plan-badge-count{border-radius:var(--radius-pill);background-color:var(--color-primary-light);color:var(--color-primary);padding:.05rem .4rem;font-size:.6875rem;font-weight:700}.toolbar-controls{align-items:center;gap:.5rem;display:flex}.search-box{align-items:center;display:flex;position:relative}.search-icon{color:var(--text-label);pointer-events:none;position:absolute;left:.75rem}.search-input{border:1px solid var(--border-outline);border-radius:var(--radius-technical);background-color:var(--bg-input);color:var(--text-main);width:260px;transition:var(--transition-fast);outline:none;padding:.4rem 1.75rem .4rem 2.2rem;font-size:.8125rem}.search-input:focus{background-color:var(--bg-surface-elevated);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);width:320px}.clear-search-btn{color:var(--text-label);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:.75rem;display:flex;position:absolute;right:.6rem}.clear-search-btn:hover{color:var(--text-main)}.conflict-badge{background-color:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border);border-radius:var(--radius-pill);align-items:center;padding:.3rem .75rem;font-size:.75rem;font-weight:700;display:flex}.toolbar-bottom-row{border-top:1px solid var(--border-outline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1560px;margin:.5rem auto 0;padding-top:.5rem;display:flex}.commission-tabs-wrapper{align-items:center;gap:.75rem;display:flex}.commission-label{color:var(--text-label);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.commission-tabs{align-items:center;gap:.35rem;display:flex}.commission-tab{border-radius:var(--radius-badge);border:1px solid var(--border-outline);background-color:var(--bg-card);color:var(--text-main);cursor:pointer;transition:var(--transition-fast);align-items:center;gap:.4rem;padding:.3rem .75rem;font-size:.8125rem;font-weight:600;display:flex}.commission-tab:hover{border-color:var(--border-medium);background-color:var(--bg-hover)}.commission-tab-active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:none}.commission-tab-active .comm-count{color:#fff;background-color:#ffffff40}.comm-count{border-radius:var(--radius-pill);background-color:var(--bg-subtle);color:var(--text-muted);padding:.1rem .4rem;font-size:.7rem}.add-comm-btn{color:var(--text-muted);border:1px dashed var(--border-medium);border-radius:var(--radius-badge);cursor:pointer;transition:var(--transition-fast);background:0 0;align-items:center;padding:.3rem .6rem;font-size:.75rem;font-weight:600;display:flex}.add-comm-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-light)}.day-filters{gap:.3rem;display:flex}.day-filter-chip{border:1px solid var(--border-outline);background:var(--bg-card);color:var(--text-muted);border-radius:var(--radius-badge);cursor:pointer;transition:var(--transition-fast);padding:.25rem .65rem;font-size:.75rem;font-weight:600}.day-filter-chip:hover{background-color:var(--bg-hover);color:var(--text-main)}.day-filter-active{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);font-weight:700}.schedule-grid-container{background-color:var(--bg-surface);border:1px solid var(--border-outline);border-radius:var(--radius-technical);box-shadow:var(--shadow-card);transition:background-color var(--transition-fast), border-color var(--transition-fast);overflow:hidden}.schedule-grid-borderless{box-shadow:none!important;border:none!important;border-radius:0!important}.grid-header-wrapper{background-color:var(--bg-surface);border-bottom:2px solid var(--border-medium)}.commission-banner{background:var(--bg-subtle);border-bottom:1px solid var(--border-outline);align-items:center;gap:.85rem;padding:.65rem 1.25rem;display:flex}.comm-banner-code{color:var(--color-primary);background:var(--color-primary-light);border:1px solid var(--color-primary-light);border-radius:var(--radius-badge);font-size:.95rem;font-weight:700;font-family:var(--font-heading);padding:.2rem .6rem}.comm-banner-desc{color:var(--text-main);letter-spacing:-.01em;font-size:.95rem;font-weight:700}.grid-days-row{background-color:var(--bg-app);border-bottom:1px solid var(--border-outline);width:max-content;min-width:100%;display:grid}.grid-day-header{text-align:center;color:var(--text-main);border-right:1px solid var(--border-outline);text-transform:uppercase;letter-spacing:.05em;font-size:.8125rem;font-weight:700;font-family:var(--font-heading);padding:.65rem .5rem}.grid-day-header:last-child{border-right:none}.time-col-header{background-color:var(--bg-subtle);color:var(--text-muted);font-weight:700}.grid-main-scroll{background-color:var(--bg-surface);overflow-x:auto}.grid-table-layout{width:max-content;min-width:100%;display:grid}.time-ruler-column{border-right:1px solid var(--border-outline);background-color:var(--bg-app)}.time-slot-label{border-bottom:1px solid var(--border-outline);color:var(--text-muted);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:.8125rem;font-weight:600;display:flex}.grid-day-column{border-right:1px solid var(--border-outline);position:relative}.grid-day-column:last-child{border-right:none}.empty-grid-slot{border-bottom:1px solid var(--border-outline);transition:background-color var(--transition-fast);cursor:pointer;justify-content:center;align-items:center;display:flex}.empty-grid-slot:hover{background-color:var(--bg-hover)}.empty-grid-slot:hover .empty-slot-plus{opacity:.8;transform:scale(1)}.empty-slot-plus{opacity:0;transition:var(--transition-fast);color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border-outline);border-radius:var(--radius-pill);padding:4px;display:flex;transform:scale(.8)}.schedule-event-card{border-radius:var(--radius-technical);box-shadow:var(--shadow-card);cursor:pointer;transition:var(--transition-fast);z-index:10;border-style:solid;border-width:1px;flex-direction:column;padding:.4rem .6rem;display:flex;position:absolute;left:4px;right:4px;overflow:hidden}.schedule-event-card:hover{box-shadow:var(--shadow-hover);z-index:20;transform:translateY(-1px)}.card-inner-content{flex-direction:column;gap:.2rem;height:100%;display:flex}.card-header-line{justify-content:space-between;align-items:flex-start;gap:.35rem;display:flex}.card-subject-title{font-size:.8125rem;font-weight:700;line-height:1.2;font-family:var(--font-heading)}.card-code{opacity:.85;font-weight:600}.card-actions{opacity:0;transition:opacity var(--transition-fast);align-items:center;gap:3px;display:flex}.schedule-event-card:hover .card-actions{opacity:1}.card-actions:has(.plan-active){opacity:1}.schedule-event-card:not(:hover) .card-actions .card-action-btn:not(.plan-active){display:none}.card-action-btn{background:var(--bg-surface);border:1px solid var(--border-outline);border-radius:var(--radius-badge);cursor:pointer;color:var(--text-main);transition:var(--transition-fast);justify-content:center;align-items:center;padding:3px;display:flex}.card-action-btn:hover{background:var(--bg-hover);border-color:var(--border-medium)}.card-action-btn.plan-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.card-action-btn.plan-active:hover{background:var(--color-primary-hover);color:#fff}.card-delete-btn:hover{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-bg)}.card-badges-row{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.card-type-badge{border-radius:var(--radius-badge);text-transform:uppercase;letter-spacing:.04em;border:1px solid #00000014;padding:.15rem .45rem;font-size:.6875rem;font-weight:700}.card-comm-note{opacity:.85;font-size:.6875rem;font-weight:600}.card-meta-row{flex-direction:column;gap:.15rem;margin-top:auto;display:flex}.card-meta-item{align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;line-height:1.2;display:flex}.meta-icon{opacity:.75;flex-shrink:0}.card-time-footer{opacity:.8;font-size:.6875rem;font-weight:500}.plan-toggle-btn{background:var(--bg-surface);border:1px solid var(--border-outline);border-radius:var(--radius-badge);color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);padding:3px;display:flex}.plan-toggle-btn:hover{background:var(--bg-hover);color:var(--text-main)}.plan-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.schedule-event-card--overlap{opacity:.9}.schedule-event-card--overlap-conflict{opacity:.78;border-left-color:#f97316!important}.card-source-badge{opacity:.75;border-radius:var(--radius-badge);white-space:nowrap;text-overflow:ellipsis;background:#0000000f;align-items:center;gap:.2rem;max-width:100%;margin-top:.15rem;padding:.1rem .35rem;font-size:.625rem;font-weight:600;display:inline-flex;overflow:hidden}[data-theme=dark] .card-source-badge,.dark .card-source-badge,.amoled .card-source-badge{background:#ffffff1a}.docentes-footer-container{border-top:2px solid var(--border-medium);background-color:var(--bg-surface);padding:1rem 1.25rem}.docentes-header{justify-content:space-between;align-items:center;margin-bottom:.65rem;display:flex}.docentes-title{color:var(--text-main);font-size:.875rem;font-weight:700;font-family:var(--font-heading)}.docentes-table-card{background-color:var(--bg-app);border:1px solid var(--border-outline);border-radius:var(--radius-technical);padding:.75rem 1rem}.docentes-list{flex-direction:column;gap:.4rem;display:flex}.docente-item-row{align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.docente-subject-tag{color:var(--text-main);font-weight:700}.docente-names{color:var(--text-muted)}.docente-delete-btn{color:var(--color-danger);cursor:pointer;border-radius:var(--radius-badge);background:0 0;border:none;padding:2px}.add-docente-form{border-top:1px dashed var(--border-outline);gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.docente-input{border:1px solid var(--border-outline);border-radius:var(--radius-technical);background-color:var(--bg-input);color:var(--text-main);padding:.4rem .65rem;font-size:.8125rem}.modal-backdrop,.modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1000;background-color:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-container{background-color:var(--bg-surface);border-radius:var(--radius-technical);box-shadow:var(--shadow-modal);border:1px solid var(--border-outline);flex-direction:column;width:100%;max-height:90vh;animation:.2s ease-out fadeIn;display:flex;overflow:hidden}.modal-sm{max-width:380px}.modal-md{max-width:520px}.modal-lg{max-width:680px}.modal-xl{max-width:840px}.modal-2xl{max-width:1040px}.modal-header{border-bottom:1px solid var(--border-outline);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{color:var(--text-main);font-size:1.125rem;font-weight:700;font-family:var(--font-heading)}.modal-subtitle{color:var(--text-muted);margin-top:.15rem;font-size:.8125rem}.modal-close-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-technical);transition:var(--transition-fast);background:0 0;border:none;padding:6px;display:flex}.modal-close-btn:hover{background-color:var(--bg-hover);color:var(--text-main)}.modal-body{padding:1.5rem;overflow-y:auto}.modal-footer{background-color:var(--bg-app);border-top:1px solid var(--border-outline);align-items:center;padding:1rem 1.5rem;display:flex}.class-form-grid{grid-template-columns:repeat(2,1fr);gap:.85rem;display:grid}.file-drop-zone{border:2px dashed var(--border-medium);border-radius:var(--radius-technical);text-align:center;cursor:pointer;transition:var(--transition-fast);background-color:var(--bg-app);padding:2.5rem 1.5rem}.file-drop-zone:hover{border-color:var(--color-primary);background-color:var(--color-primary-light)}.drop-zone-icon{color:var(--color-primary);justify-content:center;margin-bottom:.75rem;display:flex}.drop-zone-main-text{color:var(--text-main);font-size:.95rem;font-weight:700}.drop-zone-sub-text{color:var(--text-muted);max-width:440px;margin-top:.25rem;margin-left:auto;margin-right:auto;font-size:.75rem}.format-option-card{border:1px solid var(--border-outline);border-radius:var(--radius-technical);background-color:var(--bg-card);cursor:pointer;transition:var(--transition-fast);padding:1rem}.format-option-card:hover{border-color:var(--border-medium);background-color:var(--bg-hover)}.format-option-selected{border-color:var(--color-primary);background-color:var(--color-primary-light);box-shadow:0 0 0 1px var(--color-primary)}.format-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.format-card-icon{border-radius:var(--radius-badge);background-color:var(--color-primary-light);width:38px;height:38px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.format-card-title{color:var(--text-main);font-size:.875rem;font-weight:700}.format-card-desc{color:var(--text-muted);margin-top:.15rem;font-size:.75rem}.confidence-badge{border-radius:var(--radius-pill);padding:.15rem .45rem;font-size:.6875rem;font-weight:700}.confidence-high{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.confidence-medium{background-color:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.selection-radio{border:2px solid var(--border-medium);width:20px;height:20px;transition:var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.selection-radio-checked{border-color:var(--color-primary);background-color:var(--color-primary);color:#fff}.format-card-details{border-top:1px solid var(--border-outline);flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.format-detail-pill{background-color:var(--bg-surface);border:1px solid var(--border-outline);border-radius:var(--radius-badge);color:var(--text-muted);padding:.15rem .5rem;font-size:.7rem}.export-option-card{border:1px solid var(--border-outline);border-radius:var(--radius-technical);cursor:pointer;transition:var(--transition-fast);background-color:var(--bg-card);align-items:flex-start;gap:.85rem;padding:1rem;display:flex}.export-option-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card);transform:translateY(-1px)}.export-card-icon{border-radius:var(--radius-badge);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.export-card-title{color:var(--text-main);font-size:.875rem;font-weight:700}.export-card-desc{color:var(--text-muted);margin-top:.2rem;font-size:.75rem;line-height:1.35}.dropdown-wrapper{display:inline-block;position:relative}.dropdown-trigger-box{cursor:pointer}.dropdown-menu{background:var(--bg-dropdown);border:1px solid var(--border-outline);border-radius:var(--radius-technical);box-shadow:var(--shadow-modal);z-index:40;min-width:220px;margin-top:6px;padding:6px;animation:.15s ease-out fadeIn;position:absolute;top:100%}.dropdown-align-left{left:0}.dropdown-align-right{right:0}.dropdown-item{border-radius:var(--radius-badge);width:100%;color:var(--text-main);cursor:pointer;text-align:left;transition:var(--transition-fast);background:0 0;border:none;align-items:center;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;display:flex}.dropdown-item:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-main)}.dropdown-item-danger{color:var(--color-danger)}.dropdown-item-danger:hover{background-color:var(--color-danger-bg)!important;color:var(--color-danger)!important}.dropdown-item-icon{color:var(--text-muted);margin-right:.6rem;display:flex}.dropdown-item:hover .dropdown-item-icon{color:var(--text-main)}.dropdown-divider{background-color:var(--border-outline);height:1px;margin:4px 0}.toast-container{z-index:60;flex-direction:column;gap:.5rem;max-width:360px;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.toast{border-radius:var(--radius-technical);background:var(--bg-surface);border:1px solid var(--border-outline);box-shadow:var(--shadow-modal);align-items:flex-start;gap:.65rem;padding:.75rem 1rem;animation:.2s ease-out slideUp;display:flex}.toast-success{border-left:4px solid var(--color-success)}.toast-error{border-left:4px solid var(--color-danger)}.toast-warning{border-left:4px solid var(--color-warning)}.toast-info{border-left:4px solid var(--color-primary)}.toast-icon{flex-shrink:0;align-items:center;margin-top:1px;display:flex}.toast-success .toast-icon{color:var(--color-success)}.toast-error .toast-icon{color:var(--color-danger)}.toast-warning .toast-icon{color:var(--color-warning)}.toast-info .toast-icon{color:var(--color-primary)}.toast-title{color:var(--text-main);font-size:.8125rem;font-weight:700}.toast-message{color:var(--text-muted);margin-top:.1rem;font-size:.75rem}.toast-close{color:var(--text-label);cursor:pointer;border-radius:var(--radius-badge);background:0 0;border:none;margin-left:auto;padding:2px}.toast-close:hover{color:var(--text-main)}.app-footer{background-color:var(--bg-surface);border-top:1px solid var(--border-outline);color:var(--text-muted);transition:background-color var(--transition-fast), border-color var(--transition-fast);padding:.75rem 1.5rem;font-size:.75rem}.footer-container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;max-width:1560px;margin:0 auto;display:flex}.footer-stats{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.stat-item{align-items:center;gap:.35rem;display:flex}.stat-separator{opacity:.4}.grid-empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:3.5rem 1.5rem;display:flex}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.tab-btn{cursor:pointer;color:var(--text-muted);transition:var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:.8125rem;font-weight:600;display:inline-flex}.tab-btn:hover{color:var(--text-main)}.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.form-error-banner{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-badge);color:var(--color-danger);align-items:center;gap:8px;padding:10px 14px;font-size:.8125rem;display:flex}.form-info-banner{background:var(--color-primary-light);border:1px solid var(--color-primary-glow);border-radius:var(--radius-badge);color:var(--color-primary);align-items:center;gap:8px;padding:10px 14px;font-size:.8125rem;display:flex}.auth-page-container{background-color:var(--bg-app);min-height:100vh;color:var(--text-main);transition:background-color var(--transition-fast), color var(--transition-fast);flex-direction:column;display:flex;position:relative;overflow:hidden}.auth-page-header{z-index:10;background-color:var(--bg-surface);border-bottom:1px solid var(--border-outline);transition:var(--transition-fast);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:relative}.auth-brand{align-items:center;gap:.75rem;display:flex}.auth-logo-badge{border-radius:var(--radius-badge);background-color:var(--color-primary);color:#fff;border:1px solid var(--border-outline);width:36px;height:36px;transition:var(--transition-fast);justify-content:center;align-items:center;display:flex}.auth-brand-name{letter-spacing:-.01em;color:var(--text-main);font-size:1.1875rem;font-weight:700;font-family:var(--font-heading)}.auth-card-wrapper{z-index:10;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2.5rem 1.5rem;display:flex;position:relative}.auth-card{background-color:var(--bg-surface);border:1px solid var(--border-outline);border-radius:var(--radius-technical);width:100%;max-width:440px;box-shadow:var(--shadow-card);transition:background-color var(--transition-fast), border-color var(--transition-fast);padding:2rem;overflow:hidden}.auth-prompt-banner{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius-badge);color:var(--text-main);align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:.875rem 1rem;font-size:.8125rem;line-height:1.4;display:flex}.auth-card-header{text-align:center;margin-bottom:1.5rem}.auth-card-title{letter-spacing:-.02em;color:var(--text-main);font-size:1.5rem;font-weight:700;font-family:var(--font-heading);margin-bottom:.35rem}.auth-card-subtitle{color:var(--text-muted);font-size:.8125rem;line-height:1.5}.auth-nav-tabs{background-color:var(--bg-subtle);border:1px solid var(--border-outline);border-radius:var(--radius-badge);gap:3px;margin-bottom:1.5rem;padding:3px;display:flex}.auth-nav-tab{border-radius:calc(var(--radius-badge) - 3px);color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);text-align:center;background:0 0;border:1px solid #0000;flex:1;padding:7px 10px;font-size:.8125rem;font-weight:600}.auth-nav-tab:hover{color:var(--text-main)}.auth-nav-tab.active{background-color:var(--bg-surface);color:var(--text-main);border-color:var(--border-outline)}.auth-form{flex-direction:column;gap:1.15rem;display:flex}.btn-auth-submit{border-radius:var(--radius-technical);justify-content:center;width:100%;height:48px;margin-top:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:700}.auth-link-btn{color:var(--color-primary);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;padding:0;font-size:.75rem;font-weight:600}.auth-link-btn:hover{opacity:.85;text-decoration:underline}.auth-link-highlight{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.auth-link-highlight:hover{text-decoration:underline}.auth-back-link{color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.auth-back-link:hover{color:var(--text-main)}.auth-footer-help{text-align:center;color:var(--text-muted);margin-top:.5rem;font-size:.8125rem}.auth-success-state{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0;display:flex}.auth-success-icon{background:var(--color-success-bg);border:1px solid var(--color-success-border);width:56px;height:56px;color:var(--color-success);border-radius:50%;justify-content:center;align-items:center;display:flex}.auth-features-preview{flex-wrap:wrap;justify-content:center;gap:.6rem;max-width:600px;margin-top:2rem;display:flex}.auth-feature-pill{background-color:var(--bg-surface);border:1px solid var(--border-outline);border-radius:var(--radius-badge);color:var(--text-muted);align-items:center;gap:6px;padding:6px 14px;font-size:.75rem;font-weight:500;display:flex}.public-schedule-banner{background-color:var(--bg-surface);color:var(--text-main);text-align:center;border-bottom:1px solid var(--border-outline);flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;display:flex}.public-banner-link{color:var(--color-primary);text-underline-offset:3px;transition:var(--transition-fast);font-weight:700;text-decoration:underline}.public-banner-link:hover{opacity:.85}[data-theme=dark] .public-schedule-banner,.dark .public-schedule-banner,[data-theme=amoled] .public-schedule-banner{background-color:var(--bg-surface);color:var(--text-main);border-bottom:1px solid var(--border-outline)}[data-theme=dark] .public-banner-link,.dark .public-banner-link,[data-theme=amoled] .public-banner-link{color:var(--color-primary)}@media (width<=900px){.header-container{gap:.5rem;padding:.5rem 1rem}.schedule-heading{max-width:240px;font-size:1rem}.header-file-text{display:none}.header-file-btn{padding:0 .4rem}}@media (width<=640px){.header-container{padding:.5rem .75rem}.app-logo-badge{width:30px;height:30px}.schedule-heading{max-width:150px;font-size:.9375rem}.institution-tag,.header-meta-line .breadcrumb-separator:first-of-type,.share-btn-text{display:none}.header-share-btn{padding:0 .5rem}.header-add-class-btn span{display:none}.header-add-class-btn{padding:0 .6rem!important}.view-tab{padding:.25rem .5rem;font-size:.75rem}.search-input{width:180px}.search-input:focus{width:220px}}
