.connectivity-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-radius:14px;border:1px solid transparent;box-shadow:0 10px 30px #0f172a14}.connectivity-banner--offline{background:linear-gradient(135deg,var(--warning-light) 0%,var(--warning-light) 100%);border-color:var(--warning-light);color:var(--warning)}.connectivity-banner--degraded{background:linear-gradient(135deg,var(--error-light) 0%,var(--error-light) 100%);border-color:var(--error-light);color:var(--error)}.connectivity-banner--pending,.connectivity-banner--syncing{background:linear-gradient(135deg,var(--info-light) 0%,var(--info-light) 100%);border-color:var(--primary-light);color:var(--primary-hover)}.connectivity-banner__copy{display:flex;flex-direction:column;gap:.2rem}.connectivity-banner__title{font-size:.96rem;font-weight:700}.connectivity-banner__description{font-size:.86rem;opacity:.88}.connectivity-banner__meta{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:700;white-space:nowrap}.connectivity-banner__dot{width:.55rem;height:.55rem;border-radius:999px;background:currentColor}@media (max-width: 768px){.connectivity-banner{align-items:flex-start;flex-direction:column}.connectivity-banner__meta{white-space:normal}}.confirm-overlay{position:fixed;inset:0;background:rgba(31,43,61,.38);display:flex;justify-content:center;align-items:center;z-index:20000;padding:20px;animation:fadeIn .2s ease-out;backdrop-filter:blur(3px)}.confirm-dialog{background:#ffffff;border:1px solid #d7e0ec;border-radius:16px;padding:32px;max-width:450px;width:100%;box-shadow:0 24px 70px #0f234133;animation:bounceIn .4s cubic-bezier(.68,-.55,.265,1.55);text-align:center}.confirm-icon-wrapper{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;animation:iconPulse .6s ease-out}.confirm-icon-wrapper.danger{background:#c84646;box-shadow:0 4px 20px #f4433666}.confirm-icon-wrapper.warning{background:#c68a24;box-shadow:0 4px 20px #ff980066}.confirm-icon-wrapper.info{background:#547aa3;box-shadow:0 4px 20px #2196f366}.confirm-icon{color:#fff;font-size:42px!important}.confirm-title{margin:0 0 12px;font-size:1.5rem;font-weight:700;color:#17345d}.confirm-message{margin:0 0 28px;font-size:1rem;color:#526a89;line-height:1.6}.confirm-actions{display:flex;gap:12px;justify-content:center}.confirm-actions .btn{flex:1;padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s}.confirm-actions .btn-secondary{background:#ffffff;border:1px solid #cbd8e8;color:#17345d}.confirm-actions .btn-secondary:hover:not(:disabled){background:#eef4fa;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.confirm-actions .btn-danger{background:#c84646;color:#fff}.confirm-actions .btn-danger:hover:not(:disabled){background:#af3535;transform:translateY(-2px);box-shadow:0 4px 12px #f4433666}.confirm-actions .btn-warning{background:#c68a24;color:#fff}.confirm-actions .btn-warning:hover:not(:disabled){background:#aa741b;transform:translateY(-2px);box-shadow:0 4px 12px #ff980066}.confirm-actions .btn-info{background:#547aa3;color:#fff}.confirm-actions .btn-info:hover:not(:disabled){background:#42698f;transform:translateY(-2px);box-shadow:0 4px 12px #2196f366}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn:active:not(:disabled){transform:translateY(0)}.spinner-small{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media (max-width: 768px){.confirm-dialog{padding:24px;max-width:100%}.confirm-icon-wrapper{width:64px;height:64px}.confirm-icon{font-size:32px!important}.confirm-title{font-size:1.25rem}.confirm-actions{flex-direction:column-reverse}.confirm-actions .btn{width:100%}}.dl-tray{position:fixed;top:56px;right:12px;z-index:12000;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none;font-family:var(--font-ui, "Segoe UI", system-ui, sans-serif)}.dl-tray--toast-only{top:64px}.dl-tray__panel,.dl-tray__toast,.dl-tray__btn,.dl-tray__icon-btn{pointer-events:auto}.dl-tray-trigger.top-icon-btn{position:relative}.dl-tray-trigger--busy{color:#1d4ed8}.dl-tray-trigger--busy .material-icons{animation:dl-tray-pulse 1.2s ease-in-out infinite}.dl-tray-trigger--ready{color:#047857}.dl-tray-trigger .badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#2563eb;color:var(--text-light);font-size:11px;font-weight:700;display:grid;place-items:center;line-height:1}.dl-tray-trigger--ready .badge{background:#059669}.dl-tray__panel{width:min(360px,calc(100vw - 24px));max-height:min(70vh,480px);overflow:auto;background:#fff;border:1px solid rgba(15,23,42,.1);border-radius:12px;box-shadow:0 12px 40px #0f172a38;color:#0f172a}.dl-tray__panel--dragging{user-select:none;box-shadow:0 16px 48px #0f172a4d}.dl-tray__panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid #e2e8f0;position:sticky;top:0;background:#fff;z-index:1}.dl-tray__panel-titles{display:flex;flex-direction:column;gap:2px;min-width:0}.dl-tray__panel-head strong{font-size:14px}.dl-tray__panel-sub{font-size:11px;color:#64748b;line-height:1.3}.dl-tray__motivation{margin-top:3px;font-size:11px;color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;width:fit-content;max-width:100%;padding:2px 8px}.dl-tray__when{color:#94a3b8;font-size:12px}.dl-tray__footer{position:sticky;bottom:0;padding:8px 14px 12px;border-top:1px solid #e2e8f0;background:#fff;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.dl-tray__footer--history{justify-content:space-between}.dl-history-page{position:fixed;inset:0;z-index:14000;display:flex;flex-direction:column;background:radial-gradient(1200px 480px at 12% -10%,rgba(37,99,235,.12),transparent 55%),radial-gradient(900px 420px at 100% 0%,rgba(5,150,105,.08),transparent 50%),#f8fafc;color:#0f172a;pointer-events:auto}.dl-history-page__header{flex-shrink:0;padding:20px clamp(16px,4vw,40px) 16px;border-bottom:1px solid #e2e8f0;background:rgba(255,255,255,.92);backdrop-filter:blur(8px)}.dl-history-page__header-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.dl-history-page__brand{display:flex;align-items:flex-start;gap:14px;min-width:0}.dl-history-page__brand-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#dbeafe;color:#1d4ed8;font-size:28px;flex-shrink:0}.dl-history-page__title{margin:0;font-size:clamp(1.35rem,2.4vw,1.85rem);font-weight:800;letter-spacing:-.03em;line-height:1.2}.dl-history-page__sub{margin:6px 0 0;font-size:13px;color:#64748b;line-height:1.4;max-width:52ch}.dl-history-page__exit{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;border-radius:12px;border:1px solid #cbd5e1;background:#0f172a;color:var(--text-light);font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .15s ease,transform .1s ease}.dl-history-page__exit:hover{background:#1e293b}.dl-history-page__exit:active{transform:translateY(1px)}.dl-history-page__exit .material-icons{font-size:20px}.dl-history-page__toolbar{display:flex;flex-direction:column;gap:10px}.dl-history-page__search{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #cbd5e1;border-radius:14px;background:#fff;box-shadow:0 1px 2px #0f172a0a}.dl-history-page__search .material-icons{font-size:22px;color:#64748b}.dl-history-page__search input{flex:1;border:0;outline:none;background:transparent;font-size:15px;color:#0f172a;min-width:0}.dl-history-page__search-clear{border:0;background:#e2e8f0;width:28px;height:28px;border-radius:999px;display:grid;place-items:center;cursor:pointer;color:#475569;padding:0}.dl-history-page__search-clear .material-icons{font-size:16px}.dl-history-page__meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:#64748b}.dl-history-page__body{flex:1;min-height:0;overflow:auto;padding:20px clamp(16px,4vw,40px) 24px}.dl-history-page__section{margin-bottom:28px}.dl-history-page__section-title{margin:0 0 14px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.dl-history-page__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px}.dl-history-page__grid>.dl-tray__item{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:16px;box-shadow:0 1px 2px #0f172a0a;border-bottom:1px solid #e2e8f0}.dl-history-page__grid>.dl-tray__item:last-child{border-bottom:1px solid #e2e8f0}.dl-history-page__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:280px;padding:40px 20px;text-align:center;color:#64748b;background:#fff;border:1px dashed #cbd5e1;border-radius:16px}.dl-history-page__empty .material-icons{font-size:48px;color:#94a3b8}.dl-history-page__empty p{margin:0;max-width:36ch;line-height:1.45}.dl-history-page__pagination{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:20px;padding-top:4px}.dl-history-page__page-label{font-size:13px;font-weight:600;color:#475569;min-width:9rem;text-align:center}@media (max-width: 640px){.dl-history-page__header-main{flex-direction:column}.dl-history-page__exit{width:100%;justify-content:center}}.dl-tray--history{display:none}.dl-tray__empty{margin:0;padding:20px 14px;font-size:13px;color:#64748b;line-height:1.4}.dl-tray__list{list-style:none;margin:0;padding:0}.dl-tray__item{padding:12px 14px;border-bottom:1px solid #f1f5f9}.dl-tray__item:last-child{border-bottom:none}.dl-tray__item-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}.dl-tray__title{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-tray__status{flex-shrink:0;font-size:11px;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.dl-tray__item--ready .dl-tray__status{color:#047857}.dl-tray__status--unread{color:#1d4ed8!important;background:#dbeafe;padding:2px 7px;border-radius:999px;text-transform:none;letter-spacing:0}.dl-tray__status--read{color:#64748b!important;text-transform:none;letter-spacing:0;font-weight:500}.dl-tray__item--unread{border-color:#93c5fd;background:#f8fbff}.dl-tray__item--error .dl-tray__status{color:#b91c1c}.dl-tray__item--interrupted .dl-tray__status{color:#b45309}.dl-tray__item--interrupted .dl-tray__msg{color:#92400e}.dl-tray__bar{height:4px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-bottom:8px}.dl-tray__bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#3b82f6,#2563eb);transition:width .35s ease}.dl-tray__bar-fill--grace{background:linear-gradient(90deg,#94a3b8,#64748b);animation:dl-tray-grace 3s linear forwards}.dl-tray__msg{margin:0 0 8px;font-size:12px;color:#64748b;line-height:1.35}.dl-tray__eta{color:#475569;font-weight:600}.dl-tray__item--error .dl-tray__msg{color:#b91c1c}.dl-tray__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dl-tray__btn{appearance:none;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;cursor:pointer}.dl-tray__btn:hover{background:#f1f5f9}.dl-tray__btn--primary{background:#2563eb;border-color:#2563eb;color:var(--text-light)}.dl-tray__btn--primary:hover{background:#1d4ed8}.dl-tray__btn--ghost{background:transparent;border-color:transparent;color:#475569}.dl-tray__btn--ghost:hover{background:#f1f5f9}.dl-tray__icon-btn{appearance:none;border:none;background:transparent;color:#64748b;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;cursor:pointer;margin-left:auto}.dl-tray__icon-btn:hover{background:#f1f5f9;color:#0f172a}.dl-tray__icon-btn .material-icons{font-size:18px}.dl-tray__toast{display:flex;align-items:center;gap:10px;max-width:min(380px,calc(100vw - 24px));padding:10px 12px;background:#0f172a;color:#f8fafc;border-radius:10px;box-shadow:0 10px 30px #0f172a59;animation:dl-tray-in .2s ease;pointer-events:auto}.dl-tray__toast .material-icons{font-size:20px;color:#93c5fd}.dl-tray__toast-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.dl-tray__toast-body strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl-tray__toast-body span{font-size:12px;color:#cbd5e1}.dl-tray__toast .dl-tray__btn--ghost{color:#e2e8f0}.dl-tray__toast .dl-tray__btn--ghost:hover{background:rgba(255,255,255,.08)}@keyframes dl-tray-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes dl-tray-grace{0%{width:0%}to{width:100%}}@keyframes dl-tray-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 640px){.dl-tray{top:auto;bottom:72px;right:10px}}.layout{display:flex;flex-direction:column;min-height:100dvh;position:relative;background-color:var(--bg-primary)}.layout__main{flex:1;width:100%;padding:var(--spacing-md);min-width:0}.layout__status-slot{margin-bottom:var(--spacing-md)}.layout__main:has(.generic-dashboard),.layout__main:has(.docente-dashboard),.layout__main:has(.settings-premium-container),.layout__main:has(.landing){padding:0}.layout:has(.landing) .app-footer{display:none}body:has(.landing) .ia-chat-fab,body:has(.landing) .ia-chat-window{display:none}.layout__main:has(.generic-dashboard) .layout__status-slot,.layout__main:has(.docente-dashboard) .layout__status-slot{margin-bottom:0}.layout__loading-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:9998}.layout__loading-spinner{background-color:var(--bg-secondary);padding:var(--spacing-xl);border-radius:var(--border-radius-lg);text-align:center;box-shadow:var(--shadow-xl)}.layout__loading-spinner p{margin-top:var(--spacing-md);color:var(--text-secondary);font-size:var(--font-size-sm)}.spinner{width:40px;height:40px;border:4px solid var(--text-disabled);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}@media (max-width: 768px){.layout__main{padding:var(--spacing-sm)}.layout__main:has(.generic-dashboard),.layout__main:has(.docente-dashboard),.layout__main:has(.settings-premium-container),.layout__main:has(.landing),.layout__main:has(.login-page){padding:0}}.friendly-messages{font-size:var(--font-size-md, .875rem);color:var(--text-secondary, #64748b);font-weight:var(--font-weight-medium, 500);margin:0;animation:friendly-fade .4s ease-in-out}@keyframes friendly-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.friendly-messages--login{color:#1e3a8a;font-weight:var(--font-weight-semibold, 600);font-size:var(--font-size-lg, 1rem);margin-bottom:var(--spacing-md, .75rem);text-align:center;text-shadow:0 1px 2px rgba(255,255,255,.6)}.friendly-messages--not-found{color:var(--text-secondary, #64748b);font-size:var(--font-size-lg, 1rem);margin-bottom:var(--spacing-xl, 1.5rem);line-height:1.5}.friendly-messages--session-expired,.friendly-messages--wrong-password,.friendly-messages--file-too-large,.friendly-messages--success,.friendly-messages--maintenance{color:var(--text-secondary, #64748b);margin-top:var(--spacing-sm, .5rem);font-size:var(--font-size-md, .875rem)}.friendly-messages--success{color:var(--success, #22c55e);font-weight:var(--font-weight-semibold, 600)}.friendly-messages--maintenance{color:var(--warning, #f59e0b);font-weight:var(--font-weight-semibold, 600)}@media (prefers-reduced-motion: reduce){.friendly-messages{animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{width:100%;min-height:100vh;background-color:var(--bg-primary)}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary)}.rotating{animation:rotating-spin 1s linear infinite;display:inline-block}.error{background-color:var(--error);color:#fff;padding:var(--spacing-md);border-radius:var(--border-radius-md);margin:var(--spacing-md) 0}.success{background-color:var(--success);color:#fff;padding:var(--spacing-md);border-radius:var(--border-radius-md);margin:var(--spacing-md) 0}.pagination,.pagination-container,.pagination-premium{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:24px}.pagination-buttons,.page-numbers{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.pagination-info{font-size:13px;color:var(--text-secondary);font-weight:600;white-space:nowrap;padding:0 8px}.btn-pagination,.btn-page,.page-number,.pagination-btn{min-width:38px;height:38px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-card);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0f172a0d;white-space:nowrap;line-height:1}.page-btn{height:38px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-card);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0f172a0d;white-space:nowrap;line-height:1}.btn-pagination:hover:not(:disabled),.btn-page:hover:not(:disabled),.page-number:hover:not(:disabled),.pagination-btn:hover:not(:disabled),.page-btn:hover:not(:disabled){background:var(--primary-color-alpha);border-color:var(--primary-light);color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 2px 6px #2563eb26}.btn-pagination.active,.btn-page.active,.page-number.active,.pagination-btn.active,.page-btn.active{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));border-color:transparent;color:#fff;font-weight:700;box-shadow:0 4px 14px #2563eb59;transform:translateY(-1px) scale(1.04)}.btn-pagination:disabled,.btn-page:disabled,.page-number:disabled,.pagination-btn:disabled,.page-btn:disabled{opacity:.45;cursor:not-allowed;background:var(--bg-hover);box-shadow:none}.btn-pagination .material-icons,.btn-page .material-icons,.page-number .material-icons,.pagination-btn .material-icons,.page-btn .material-icons{font-size:18px}.legal-page-container{max-width:900px;margin:0 auto;padding:48px 24px 80px}.legal-header{text-align:center;margin-bottom:48px;padding-bottom:24px;border-bottom:2px solid var(--border-color)}.legal-header h1{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:12px;letter-spacing:-.02em}.legal-version{color:var(--text-secondary);font-size:1.1rem;font-weight:500}.legal-page-container section{margin-bottom:48px}.legal-page-container h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.legal-page-container h3{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin:28px 0 16px}.legal-page-container p{margin-bottom:16px;color:var(--text-primary);line-height:1.7}.legal-page-container ul,.legal-page-container ol{margin:16px 0 16px 24px;color:var(--text-primary);line-height:1.7}.legal-page-container li{margin-bottom:10px}.legal-page-container strong{color:var(--text-primary)}.legal-page-container a{color:var(--primary-color);text-decoration:none;transition:color .2s ease}.legal-page-container a:hover{color:var(--primary-hover);text-decoration:underline}.legal-page-container code{background:var(--bg-hover);padding:2px 8px;border-radius:6px;font-family:var(--font-mono);font-size:.9em;color:var(--primary-color)}.contact-box{background:var(--bg-hover);border-radius:12px;padding:24px;margin:24px 0}.contact-box h3{margin-top:0;margin-bottom:16px}.contact-item{display:flex;gap:16px;margin-bottom:12px;flex-wrap:wrap}.contact-label{font-weight:600;min-width:180px;color:var(--text-secondary)}.contact-value{color:var(--text-primary);flex:1;min-width:200px}.highlight{background:var(--primary-color-alpha);padding:2px 8px;border-radius:4px;font-weight:600}.retention-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.95rem;table-layout:fixed}.retention-table th,.retention-table td{padding:14px;border:1px solid var(--border-color);text-align:left;word-break:break-word;overflow-wrap:anywhere;vertical-align:top}.retention-table th{background:var(--bg-hover);font-weight:600;color:var(--text-primary)}.retention-table td{color:var(--text-primary)}.cookie-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.9rem;table-layout:fixed}.cookie-table th,.cookie-table td{padding:12px;border:1px solid var(--border-color);text-align:left;word-break:break-word;overflow-wrap:anywhere;vertical-align:top}.cookie-table th{background:var(--bg-hover);font-weight:600}.cookie-table code{font-size:.85em;word-break:break-all}.legal-footer-note{text-align:center;margin-top:56px;padding-top:28px;border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.9rem;line-height:1.6}.legal-footer-note a{color:var(--primary-color);text-decoration:none}.legal-footer-note a:hover{text-decoration:underline}.legal-page-container .page-footer{margin-top:56px;padding-top:28px;border-top:1px solid var(--border-color);text-align:center}.legal-page-container .footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin-bottom:20px}.legal-page-container .footer-links a{color:var(--primary-color);text-decoration:none;font-size:.875rem;font-weight:500;padding:8px 12px;border-radius:6px;transition:all .2s ease}.legal-page-container .footer-links a:hover{color:var(--primary-hover);background:var(--primary-color-alpha);text-decoration:none}.legal-page-container .footer-links span{color:var(--text-disabled)}.legal-page-container .footer-copyright{color:var(--text-secondary);font-size:.8rem;line-height:1.7}.legal-page-container .footer-copyright a{color:var(--primary-color);text-decoration:none}.legal-page-container .footer-copyright a:hover{text-decoration:underline}.legal-page-container .footer-copyright strong{color:var(--text-primary)}@media (max-width: 640px){.legal-page-container{padding:32px 16px 64px}.legal-header h1{font-size:1.8rem}.contact-box{padding:16px}.contact-item{flex-direction:column;gap:4px}.contact-label{min-width:0}.contact-value{min-width:0;overflow-wrap:anywhere;word-break:break-word}.legal-page-container .footer-links{gap:12px}.legal-page-container .footer-links a{font-size:.8rem;padding:6px 10px}}.legal-redirect{padding:48px 24px;text-align:center;color:var(--text-secondary)}.legal-redirect a{color:var(--primary-color);font-weight:600}.loading-screen{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);color:var(--text-primary);min-height:min(65vh,450px);width:100%}.loading-screen--full{position:fixed;inset:0;z-index:9999;background:var(--bg-primary);min-height:100dvh;min-width:100vw;padding:0}.loading-screen--full .loading-screen__content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--spacing-md);min-height:200px}.loading-screen__spinner{width:64px;height:64px;display:flex;align-items:center;justify-content:center;margin:0 auto}.loading-screen__spinner-circle{animation:loading-spin 1.2s linear infinite}.loading-screen__spinner-path{stroke:var(--primary-color);stroke-dasharray:164;stroke-dashoffset:0;animation:loading-dash 1.6s ease-in-out infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dashoffset:164}50%{stroke-dashoffset:82;transform:rotate(0)}to{stroke-dashoffset:164;transform:rotate(720deg)}}.loading-screen__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;letter-spacing:-.01em}.loading-screen__subtitle{font-size:var(--font-size-md);color:var(--text-secondary);margin:0;font-weight:var(--font-weight-medium)}.loading-screen__progress-wrapper{width:min(320px,80%);margin-top:var(--spacing-sm)}.loading-screen__progress-track{width:100%;height:6px;background:var(--bg-hover);border-radius:var(--border-radius-full);overflow:hidden}.loading-screen__progress-bar{height:100%;background:var(--gradient-primary);border-radius:var(--border-radius-full);width:0%;transition:width .4s ease}.loading-screen__progress-text{display:block;text-align:right;font-size:var(--font-size-xs);color:var(--text-muted);margin-top:var(--spacing-xs);font-weight:var(--font-weight-semibold)}@media (prefers-reduced-motion: reduce){.loading-screen__spinner-circle,.loading-screen__spinner-path{animation-duration:.01ms!important;animation-iteration-count:1!important}.loading-screen__progress-bar{transition:none!important}}.mfa-container{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:2rem;background:var(--bg-primary, #f8fafc)}.mfa-card{background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:var(--border-radius-lg, 12px);padding:2.5rem;max-width:560px;width:100%;box-shadow:var(--shadow-lg, 0 8px 25px rgba(0, 0, 0, .1))}.mfa-header{display:flex;align-items:center;gap:12px;margin-bottom:1.5rem}.mfa-icon{font-size:2.5rem;width:64px;height:64px;border-radius:16px;background:var(--primary-color-alpha, rgba(37, 99, 235, .1));display:flex;align-items:center;justify-content:center}.mfa-title{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1e293b);margin:0}.mfa-description{font-size:1rem;color:var(--text-secondary, #64748b);margin-bottom:1.5rem;line-height:1.5}.mfa-qr-section{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.mfa-qr{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;background:var(--bg-hover, #f1f5f9);border-radius:12px;border:2px dashed var(--border-color, #e2e8f0)}.mfa-qr-img{width:160px;height:160px;border-radius:8px;background:white;padding:8px;box-shadow:0 4px 6px #0000001a}.mfa-qr-placeholder{width:160px;height:160px;border-radius:8px;background:var(--bg-hover, #f1f5f9);display:flex;align-items:center;justify-content:center;color:var(--text-muted, #94a3b8);font-size:.875rem}.mfa-qr-info{flex:1;min-width:200px}.mfa-secret-box{display:flex;align-items:center;gap:8px;margin:1rem 0;padding:.75rem;background:var(--info-light, #eff6ff);border-radius:8px;border:1px solid var(--info-light, #eff6ff)}.mfa-secret-label{font-size:.75rem;font-weight:600;color:var(--info, #3b82f6);text-transform:uppercase;letter-spacing:.05em}.mfa-secret-value{font-family:var(--font-family-mono, "JetBrains Mono", monospace);font-size:.875rem;color:var(--text-primary, #1e293b);flex:1;word-break:break-all}.mfa-btn-copy{background:none;border:none;cursor:pointer;font-size:1.25rem;padding:4px;border-radius:4px}.mfa-btn-copy:hover{background:rgba(59,130,246,.1)}.mfa-backup-codes{margin-top:1rem}.mfa-backup-codes h4{font-size:.875rem;font-weight:600;color:var(--text-secondary, #64748b);margin:0 0 .75rem}.mfa-codes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.mfa-backup-code{font-family:var(--font-family-mono, "JetBrains Mono", monospace);font-size:.875rem;font-weight:600;color:var(--text-primary, #1e293b);padding:.5rem;background:var(--bg-hover, #f1f5f9);border-radius:6px;text-align:center;border:1px solid var(--border-color, #e2e8f0)}.mfa-backup-note{font-size:.75rem;color:var(--text-muted, #94a3b8);margin-top:.5rem;line-height:1.4}.mfa-verify-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-light, #f1f5f9)}.mfa-verify-section h3{font-size:1rem;font-weight:600;color:var(--text-primary, #1e293b);margin:0 0 1rem}.mfa-code-input{width:100%;max-width:200px;padding:1rem;font-size:1.5rem;font-weight:600;text-align:center;letter-spacing:.25em;border:2px solid var(--border-color, #e2e8f0);border-radius:8px;font-family:var(--font-family-mono, "JetBrains Mono", monospace);color:var(--text-primary, #1e293b);margin-bottom:1rem}.mfa-code-input:focus{outline:none;border-color:var(--primary-color, #2563eb);box-shadow:0 0 0 3px #2563eb1a}.mfa-verify-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.mfa-btn{padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;font-size:.875rem}.mfa-btn-primary{background:var(--primary-color, #2563eb);color:#fff}.mfa-btn-primary:hover:not(:disabled){background:var(--primary-hover, #1d4ed8);box-shadow:0 4px 6px #2563eb26}.mfa-btn-primary:disabled{opacity:.6;cursor:not-allowed}.mfa-btn-secondary{background:transparent;color:var(--text-secondary, #64748b);border:1px solid var(--border-color, #e2e8f0)}.mfa-btn-secondary:hover:not(:disabled){background:var(--bg-hover, #f1f5f9);border-color:var(--primary-color, #2563eb);color:var(--primary-color, #2563eb)}.mfa-error{margin-top:.75rem;padding:.75rem;background:var(--error-light, #fee2e2);border:1px solid var(--error, #ef4444);border-radius:6px;color:var(--error, #ef4444);font-size:.875rem;font-weight:500}.mfa-success{text-align:center}.mfa-success .mfa-icon{font-size:3rem;margin-bottom:1rem}.mfa-success .mfa-title{font-size:1.75rem;margin-bottom:.75rem}.mfa-success .mfa-message{font-size:1rem;color:var(--text-secondary, #64748b);margin-bottom:1.5rem}.mfa-btn.mfa-btn-primary{width:100%;padding:1rem;font-size:1rem}@media (max-width: 640px){.mfa-card{padding:1.5rem}.mfa-qr-section{flex-direction:column}.mfa-qr{width:100%}.mfa-codes-grid{grid-template-columns:repeat(2,1fr)}.mfa-verify-actions{flex-direction:column}.mfa-btn{width:100%}}.mfa-guard-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--text-secondary, #64748b);font-size:1rem}.mfa-guard-blocked{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:2rem;background:var(--bg-primary, #f8fafc)}.mfa-guard-card{background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:var(--border-radius-lg, 12px);padding:2.5rem;max-width:560px;width:100%;box-shadow:var(--shadow-lg, 0 8px 25px rgba(0, 0, 0, .1))}.mfa-guard-icon{font-size:3rem;margin-bottom:1rem;display:block}.mfa-guard-title{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 1rem}.mfa-guard-message{font-size:1rem;color:var(--text-secondary, #64748b);margin-bottom:1.5rem;line-height:1.5}.mfa-guard-setup{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:2rem;background:var(--bg-primary, #f8fafc)}.mfa-btn-close{margin-top:1.5rem;padding:.75rem 2rem;background:var(--text-secondary, #64748b);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.mfa-btn-close:hover{background:var(--text-primary, #1e293b)}.mfa-guard-banner{position:fixed;bottom:0;left:0;right:0;background:var(--warning-light, #fef3c7);border-top:1px solid var(--warning, #f59e0b);padding:1rem 2rem;z-index:1000;animation:mfa-banner-slide .3s ease}@keyframes mfa-banner-slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mfa-guard-banner-content{display:flex;align-items:center;gap:1rem;max-width:1200px;margin:0 auto}.mfa-guard-banner-icon{font-size:1.5rem}.mfa-guard-banner-text{font-size:.875rem;color:var(--text-primary, #1e293b);flex:1}.mfa-guard-banner-text strong{color:var(--warning, #f59e0b)}.mfa-guard-banner-actions{display:flex;gap:.75rem}.mfa-btn-skip,.mfa-btn-later{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.mfa-btn-skip{background:var(--primary-color, #2563eb);color:#fff}.mfa-btn-skip:hover{background:var(--primary-hover, #1d4ed8)}.mfa-btn-later{background:transparent;color:var(--text-secondary, #64748b);border:1px solid var(--border-color, #e2e8f0)}.mfa-btn-later:hover{background:var(--bg-hover, #f1f5f9);border-color:var(--primary-color, #2563eb);color:var(--primary-color, #2563eb)}@media (max-width: 640px){.mfa-guard-card{padding:1.5rem}.mfa-guard-banner{padding:1rem}.mfa-guard-banner-content{flex-direction:column;align-items:flex-start;gap:.75rem}.mfa-guard-banner-actions{width:100%;justify-content:space-between}.mfa-btn-skip,.mfa-btn-later{flex:1}}.mfa-page-container{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:2rem;background:var(--bg-primary, #f8fafc)}.mfa-page-card{background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:var(--border-radius-lg, 12px);padding:2.5rem;max-width:560px;width:100%;box-shadow:var(--shadow-lg, 0 8px 25px rgba(0, 0, 0, .1))}.mfa-page-header{display:flex;align-items:center;gap:12px;margin-bottom:1.5rem}.mfa-page-icon{font-size:2.5rem;width:64px;height:64px;border-radius:16px;background:var(--primary-color-alpha, rgba(37, 99, 235, .1));display:flex;align-items:center;justify-content:center}.mfa-page-title{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1e293b);margin:0}.mfa-page-subtitle{font-size:1rem;color:var(--text-secondary, #64748b);margin:.5rem 0 0;line-height:1.5}.mfa-page-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--text-secondary, #64748b)}.mfa-spinner{width:32px;height:32px;border:3px solid var(--bg-hover, #f1f5f9);border-top-color:var(--primary-color, #2563eb);border-radius:50%;animation:mfa-spin .8s linear infinite;margin-right:12px}@keyframes mfa-spin{to{transform:rotate(360deg)}}.usb-export-panel{font-family:Inter,sans-serif;color:var(--text-primary, #212121);background:var(--bg-primary, #f5f7fa);min-height:100vh;padding:2rem}.usb-export-header{display:flex;align-items:center;gap:16px;margin-bottom:2rem}.usb-export-icon{font-size:48px;width:72px;height:72px;background:linear-gradient(135deg,#2e7d32 0%,#1b5e20 100%);border-radius:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #2e7d324d}.usb-export-title{font-size:1.75rem;font-weight:700;color:var(--text-primary, #212121);margin:0 0 4px}.usb-export-subtitle{font-size:1rem;color:var(--text-secondary, #757575);margin:0}.usb-export-card{background:#ffffff;border:1px solid var(--border-color, #e0e0e0);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #0000000d}.usb-export-card-title{font-size:1.1rem;font-weight:700;color:var(--text-primary, #212121);margin:0 0 1rem;display:flex;align-items:center;gap:8px}.usb-export-status-row{display:flex;align-items:center;gap:12px;margin-bottom:10px;font-size:.95rem}.usb-export-status-label{font-weight:600;color:var(--text-secondary, #757575);min-width:160px}.usb-export-status-value{color:var(--text-primary, #212121);font-weight:500}.usb-export-status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:600}.usb-export-status-active{background:rgba(46,125,50,.1);color:#2e7d32;border:1px solid rgba(46,125,50,.2)}.usb-export-status-inactive{background:rgba(239,68,68,.1);color:#f44336;border:1px solid rgba(239,68,68,.2)}.usb-export-actions{display:flex;gap:12px;margin-top:1rem}.usb-export-form{display:flex;flex-direction:column;gap:1rem}.usb-export-form-group{display:flex;flex-direction:column;gap:.5rem}.usb-export-form-label{font-size:.875rem;font-weight:600;color:var(--text-secondary, #757575)}.usb-export-form-input{padding:10px 14px;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;font-size:.95rem;color:var(--text-primary, #212121);background:#ffffff;transition:border-color .2s}.usb-export-form-input:focus{outline:none;border-color:#2e7d32}.usb-export-form-input:disabled{background:rgba(0,0,0,.03);color:var(--text-disabled, #bdbdbd);cursor:not-allowed}.usb-export-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.usb-export-card-badge{font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:12px;color:#2e7d32;background:rgba(46,125,50,.1)}.usb-export-actions-group{display:flex;gap:12px;flex-wrap:wrap}.usb-export-warning{display:flex;align-items:center;gap:10px;padding:1rem;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f44336;font-size:.9rem;margin-top:1rem}.usb-export-progress{margin-top:1.5rem}.usb-export-progress-header{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.9rem;font-weight:600;color:var(--text-secondary, #757575)}.usb-export-progress-track{width:100%;height:8px;background:rgba(0,0,0,.08);border-radius:4px;overflow:hidden}.usb-export-progress-bar{height:100%;background:linear-gradient(90deg,#2e7d32,#43a047);border-radius:4px;transition:width .3s ease}.usb-export-error{display:flex;align-items:center;gap:10px;padding:1rem;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f44336;font-size:.9rem;margin-top:1rem}.usb-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.usb-btn-primary{background:#2e7d32;color:#fff}.usb-btn-primary:hover:not(:disabled){background:#1b5e20;box-shadow:0 4px 12px #2e7d324d}.usb-btn-primary:disabled{opacity:.6;cursor:not-allowed}.usb-btn-secondary{background:rgba(0,0,0,.05);color:var(--text-primary, #212121);border:1px solid var(--border-color, #e0e0e0)}.usb-btn-secondary:hover:not(:disabled){background:rgba(0,0,0,.1)}.usb-btn-wide{width:100%}@media (max-width: 768px){.usb-export-panel{padding:1rem}.usb-export-actions-group{flex-direction:column}.usb-btn{width:100%;justify-content:center}}:root{--primary-color: #2563eb;--primary-hover: #1d4ed8;--primary-light: #93c5fd;--primary-rgb: 37, 99, 235;--primary-color-alpha: rgba(37, 99, 235, .1);--accent-color: #6366f1;--accent-hover: #4f46e5;--accent-light: #a5b4fc;--accent-rgb: 99, 102, 241;--secondary-color: #4f46e5;--success: #22c55e;--success-light: #dcfce7;--success-hover: #16a34a;--warning: #f59e0b;--warning-light: #fef3c7;--warning-hover: #d97706;--error: #ef4444;--error-hover: #dc2626;--error-light: #fee2e2;--info: #3b82f6;--info-light: #eff6ff;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--text-disabled: #cbd5e1;--text-light: #ffffff;--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-hover: #f1f5f9;--bg-active: #e2e8f0;--bg-card: #ffffff;--bg-main: #f8fafc;--bg-sidebar: #0f172a;--bg-sidebar-rgb: 15, 23, 42;--bg-sidebar-hover: #1e293b;--bg-sidebar-active: #334155;--sidebar-active-sub-bg: rgba(51, 65, 85, .5);--sidebar-text: #cbd5e1;--sidebar-hover-text: #ffffff;--sidebar-active-text: #ffffff;--sidebar-sub-text: #94a3b8;--sidebar-border: rgba(255,255,255,.08);--sidebar-active-border: var(--accent-color);--sidebar-active-shadow: 0 0 20px rgba(99, 102, 241, .3);--sidebar-blur: 12px;--bg-header: #ffffff;--bg-header-hover: #f1f5f9;--border-color: #e2e8f0;--border-light: #f1f5f9;--gradient-primary: linear-gradient(135deg, var(--primary-color), var(--primary-hover));--gradient-accent: linear-gradient(135deg, var(--primary-color), var(--accent-color));--gradient-success: linear-gradient(135deg, var(--success), var(--success-hover));--gradient-header: linear-gradient(135deg, var(--primary-color), var(--accent-color));--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 6px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 25px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .12);--shadow-card: 0 2px 8px rgba(0, 0, 0, .08);--border-radius-xs: 4px;--border-radius-sm: 6px;--border-radius-md: 8px;--border-radius-lg: 12px;--border-radius-xl: 16px;--border-radius-2xl: 24px;--border-radius-xxl: 28px;--border-radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--transition-spring: .3s cubic-bezier(.34, 1.56, .64, 1);--font-family-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", monospace;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-md: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--font-size-xxl: 1.5rem;--font-size-xxxl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem;--spacing-xxl: 1.75rem;--spacing-3xl: 3rem;--sidebar-width: 260px;--sidebar-collapsed: 72px;--header-height: 64px;--content-max-width: 1400px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes skeleton-pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@keyframes rotating-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes periodo-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-orange{0%,to{box-shadow:0 0 #fb923c99}50%{box-shadow:0 0 0 12px #fb923c00}}@keyframes pulse-purple{0%,to{box-shadow:0 0 #8b5cf699}50%{box-shadow:0 0 0 12px #8b5cf600}}@keyframes modalScale{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes sparkle{0%,to{opacity:0;transform:scale(0) rotate(0)}50%{opacity:1;transform:scale(1) rotate(180deg)}}@keyframes ping{0%{transform:scale(1);opacity:.8}to{transform:scale(1.5);opacity:0}}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes mg2-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes mg2-modal-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;overflow-x:clip}body{font-family:var(--font-family-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-normal);line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;min-height:100dvh}#root{min-height:100dvh;min-width:0}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:1.2;margin-bottom:var(--spacing-sm)}h1{font-size:var(--font-size-xxxl)}h2{font-size:var(--font-size-xxl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-md)}h6{font-size:var(--font-size-sm)}p{margin-bottom:var(--spacing-md)}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:var(--transition-normal)}button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}input,select,textarea{font-family:var(--font-family-primary);font-size:var(--font-size-md);color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-md);padding:10px 14px;transition:var(--transition-normal);outline:none;box-sizing:border-box}input:focus,select:focus,textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}input::placeholder,textarea::placeholder{color:#475569;opacity:1;font-weight:500}input:disabled,select:disabled,textarea:disabled{background:var(--bg-hover);color:var(--text-disabled);cursor:not-allowed}.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}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(156,163,175,.35);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:rgba(156,163,175,.65)}.form-actions,.modal-actions{display:flex!important;flex-direction:row!important;justify-content:flex-end!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;margin-top:16px!important}.form-actions .btn,.modal-actions .btn{flex:0 0 auto!important}.crud-container .form-actions,.crud-container .modal-actions,.modal-body .form-actions,.modal-body .modal-actions{display:flex!important;flex-direction:row!important;justify-content:flex-end!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;margin-top:16px!important}.crud-container .form-actions .btn,.crud-container .modal-actions .btn,.modal-body .form-actions .btn,.modal-body .modal-actions .btn{flex:0 0 auto!important}.login-page .form-actions{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:stretch!important;gap:15px!important;margin-top:10px!important}.login-page .form-actions .btn-primary,.login-page .form-actions .btn-secondary,.login-page .form-actions .btn-forgot{width:100%!important;flex:0 0 auto!important}:root{--fs-xxxl: clamp(1.5rem, 4vw, 2rem);--fs-xxl: clamp(1.25rem, 3.5vw, 1.5rem);--fs-xl: clamp(1.125rem, 3vw, 1.125rem);--fs-lg: clamp(1rem, 2.5vw, 1rem);--fs-md: .875rem;--fs-sm: .8125rem;--fs-xs: .75rem;--sp-3xl: clamp(1.5rem, 4vw, 3rem);--sp-2xl: clamp(1.25rem, 3vw, 2rem);--sp-xl: clamp(1rem, 2.5vw, 1.5rem);--sp-lg: 1rem;--sp-md: .75rem;--sp-sm: .5rem;--sp-xs: .25rem;--header-h: clamp(56px, 12vh, 64px);--sidebar-w: 280px;--sidebar-collapsed-w: 72px;--radius-xl: 16px;--radius-2xl: 24px}@media (min-width: 431px){:root{--fs-xxxl: clamp(1.75rem, 3.5vw, 2rem);--fs-xxl: clamp(1.375rem, 3vw, 1.5rem);--fs-xl: clamp(1.125rem, 2.5vw, 1.25rem);--sp-3xl: clamp(2rem, 3vw, 3rem);--sp-2xl: clamp(1.5rem, 2.5vw, 2rem);--sp-xl: clamp(1.25rem, 2vw, 1.5rem);--header-h: clamp(60px, 10vh, 64px);--radius-xl: 16px;--radius-2xl: 24px}}@media (min-width: 769px){:root{--fs-xxxl: 2rem;--fs-xxl: 1.5rem;--fs-xl: 1.25rem;--fs-lg: 1rem;--sp-3xl: 3rem;--sp-2xl: 2rem;--sp-xl: 1.5rem;--sp-lg: 1rem;--header-h: 64px;--radius-xl: 16px;--radius-2xl: 24px}}@media (min-width: 1101px){:root{--fs-xxxl: 2rem;--fs-xxl: 1.5rem;--fs-xl: 1.25rem;--sp-3xl: 3rem;--sp-2xl: 2rem;--sp-xl: 1.5rem}}@media (min-width: 1401px){:root{--fs-xxxl: 2.25rem;--fs-xxl: 1.75rem;--sp-3xl: 4rem;--sp-2xl: 2.5rem}}:root{--font-size-xxxl: var(--fs-xxxl);--font-size-xxl: var(--fs-xxl);--font-size-xl: var(--fs-xl);--font-size-lg: var(--fs-lg);--font-size-md: var(--fs-md);--font-size-sm: var(--fs-sm);--font-size-xs: var(--fs-xs);--spacing-3xl: var(--sp-3xl);--spacing-2xl: var(--sp-2xl);--spacing-xl: var(--sp-xl);--spacing-lg: var(--sp-lg);--spacing-md: var(--sp-md);--spacing-sm: var(--sp-sm);--spacing-xs: var(--sp-xs);--header-height: var(--header-h);--sidebar-width: var(--sidebar-w);--sidebar-collapsed: var(--sidebar-collapsed-w);--border-radius-xl: var(--radius-xl);--border-radius-2xl: var(--radius-2xl)}@media (max-width: 430px){.search-box,.search-box-premium{width:100%!important;max-width:100%!important;min-width:0!important;flex:none;box-sizing:border-box}input:not([type=checkbox]):not([type=radio]),select,textarea{min-width:0;font-size:16px}}@media (min-width: 431px) and (max-width: 768px){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}}@media (max-width: 768px){.hide-on-mobile{display:none!important}}@media (min-width: 769px){.hide-on-desktop{display:none!important}}@media (pointer: coarse){button,[role=button],.nav-item,.academic-nav-item,.top-icon-btn,.profile-btn,.quick-action-card{min-height:44px;min-width:44px}input,select,textarea{min-height:44px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}input::placeholder,textarea::placeholder,select::placeholder{color:#475569!important;opacity:1!important;font-weight:500!important}.form-input::placeholder,.search-box input::placeholder,.search-box-premium input::placeholder,.crud-container .search-box input::placeholder,.generic-crud-container .form-input::placeholder,.form-group input::placeholder{color:#475569!important;opacity:1!important;font-weight:500!important}input,select,textarea,.form-input{color:#1e293b!important;font-weight:500}input:disabled,select:disabled,textarea:disabled{color:var(--text-muted)!important;font-weight:400!important}@supports (height: 100dvh){.student-portal,.options-panel,.inscripcion-publica,.login-page{min-height:100dvh}}@media (max-width: 768px){.modal-overlay{padding-bottom:env(safe-area-inset-bottom,0px)}.ia-chat-fab{bottom:calc(18px + env(safe-area-inset-bottom,0px));right:calc(18px + env(safe-area-inset-right,0px))}.download-tray,.download-tray__panel{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}img,video,iframe,embed,object{max-width:100%}.crud-table td,.crud-table th,.docentes-table td,.docentes-table th,.page-header h1,.content-header h1,.user-info-text,.student-portal__card-text,.institution-name{overflow-wrap:anywhere;word-break:break-word}.docentes-header{flex-direction:column;align-items:stretch;gap:12px}.docentes-header>div,.docentes-header .btn{width:100%}}
