:root{--surface-page:#fff;--surface-card:#fff;--surface-muted:#f5f5f5;--surface-hover:#ebebeb;--surface-sidebar:#fff;--text-primary:#111;--text-secondary:#3f3f3f;--text-muted:#71717a;--text-danger:#8d1d01;--border-default:#eee;--border-strong:#d4d4d4;--brand-maroon:#8d1d01;--brand-red:#ec402f;--color-sin-calificar:#b45309;--action-primary-bg:#8d1d01;--action-primary-bg-hover:#741800;--action-primary-text:#fff;--danger-bg:#fef2f2;--danger-text:#8d1d01;--success-bg:#f0fdf4;--success-text:#166534;--warning-bg:#fffbeb;--warning-text:#92400e;--font-size-body:1rem;--font-size-small:.875rem;--font-size-xs:.75rem;--font-size-h1:1.6rem;--font-size-h2:1.3rem;--font-size-h3:1.1rem}body{background:var(--surface-page);color:var(--text-primary);font-family:var(--font-geist-sans),system-ui,sans-serif;font-size:var(--font-size-body);line-height:1.6}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600;line-height:1.3}h1{font-size:var(--font-size-h1)}h2{font-size:var(--font-size-h2)}h3{font-size:var(--font-size-h3)}label{font-size:var(--font-size-small);color:var(--text-secondary);font-weight:500;display:block}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{font-size:var(--font-size-small);color:var(--text-primary);border:1px solid var(--border-default);background:#fff;border-radius:.5rem;outline:none;padding:.5rem .75rem;transition:border-color .15s}input:not([type=checkbox]):not([type=radio]):not([type=file])::placeholder,select::placeholder,textarea::placeholder{color:var(--text-muted)}input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,select:focus,textarea:focus{border-color:var(--brand-maroon)}input:not([type=checkbox]):not([type=radio]):not([type=file])[readonly],input:not([type=checkbox]):not([type=radio]):not([type=file]):disabled,select[readonly],select:disabled,textarea[readonly],textarea:disabled{color:var(--text-muted);background:var(--surface-muted);cursor:not-allowed}.form-field input:not([type=checkbox]):not([type=radio]):not([type=file]):not(.dni-number-input),.form-field select:not(.dni-type-select),.form-field textarea,.dialog-body input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=search]):not(.filter-select):not(.input-inline):not(.dni-number-input),.dialog-body select:not(.filter-select),.dialog-body textarea,.form-input{width:100%;display:block}input[type=checkbox],input[type=radio]{cursor:pointer;accent-color:var(--brand-maroon);margin-right:.375rem}input[type=file]{cursor:pointer;font-size:var(--font-size-small);padding:.5rem}select{cursor:pointer;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-color:#fff!important}.btn{font-size:var(--font-size-small);cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;padding:.625rem 1.25rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}button{font-size:var(--font-size-small);cursor:pointer;border:none;border-radius:.5rem;padding:.625rem 1.25rem;font-weight:600;transition:background .15s}button:disabled{opacity:.5;cursor:not-allowed}.main-content{color:var(--text-primary);background:var(--surface-page);flex:1;padding:1rem;overflow-y:auto}@media (min-width:768px){.main-content{padding:1.5rem}}.main-content-inner{max-width:100rem;margin:0 auto}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--font-size-small);color:var(--text-primary)}th{text-align:left;color:var(--text-secondary);border-bottom:2px solid var(--border-strong);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:var(--surface-page);padding:.75rem;position:sticky;top:0}th.th-action{text-align:right;width:3rem}th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.th-sortable:hover{color:var(--text-primary)}td{color:var(--text-primary);border-bottom:1px solid var(--border-default);vertical-align:middle;padding:.75rem}td.td-action{text-align:right;width:3rem}td.td-muted{color:var(--text-muted)}.page-section{margin-top:2rem}.page-section-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.table-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border-default);border-radius:.5rem;margin-top:.75rem;padding:2.5rem 1rem;font-size:.875rem}tbody tr:hover{background:var(--surface-muted)}table.dense{color:var(--text-primary)}table.dense th{color:var(--text-secondary);border-bottom-width:1px;padding:.375rem .5rem;font-size:.65rem}table.dense td{font-size:var(--font-size-xs);color:var(--text-primary);padding:.375rem .5rem}.table-loading{text-align:center;color:var(--text-muted);font-size:var(--font-size-small);padding:2rem}.table-loading:after{content:"Cargando..."}.sidebar{background:var(--surface-sidebar);border-right:1px solid var(--border-default)}.sidebar-inner{flex-direction:column;height:100%;padding:1rem;display:flex;overflow:hidden}.sidebar-close-row{z-index:1;position:absolute;top:.5rem;right:.5rem}.sidebar-nav{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:.125rem;display:flex;overflow-y:auto}.sidebar-footer{border-top:1px solid var(--border-default);flex-shrink:0;padding-top:.5rem}.sidebar-user{margin-bottom:1rem}.sidebar-user-name{font-size:var(--font-size-xs);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:.75rem;overflow:hidden}.sidebar-user-role{font-size:var(--font-size-xs);color:var(--text-muted)}.sidebar-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:.75rem .75rem .25rem;font-size:.6rem;font-weight:600}.sidebar-separator{border:none;border-top:1px solid var(--border-default);margin:.5rem 0}.sidebar-link{font-size:var(--font-size-small);color:var(--text-primary);border-radius:.375rem;padding:.5rem .75rem;text-decoration:none;transition:background .15s;display:block}.sidebar-link:hover{background:var(--border-default)}.sidebar-link.active{background:var(--brand-maroon);color:#fff}.sidebar-link-with-badge{justify-content:space-between;align-items:center;display:flex}.sidebar-badge{text-align:center;border-radius:9999px;min-width:1.1rem;padding:.1rem .4rem;font-size:.6rem;font-weight:700}.sidebar-badge.badge-muted{background:var(--surface-muted);color:var(--text-muted)}.sidebar-badge.badge-normal{background:var(--brand-maroon);color:#fff;animation:1.8s ease-in-out infinite badge-attention}.sidebar-badge.badge-urgent{background:var(--danger-text);color:#fff;animation:1.1s ease-in-out infinite badge-attention}@keyframes badge-attention{0%,to{transform:scale(1);box-shadow:0 0 #8d1d0180}50%{transform:scale(1.12);box-shadow:0 0 0 5px #8d1d0100}}.practica-self-glow{animation:1.6s ease-in-out infinite practica-self-glow}@keyframes practica-self-glow{0%,to{box-shadow:0 0 #8d1d0173}50%{box-shadow:0 0 0 6px #8d1d0100}}@media (prefers-reduced-motion:reduce){.practica-self-glow,.sidebar-badge.badge-normal,.sidebar-badge.badge-urgent,.friction-flash-3x,.rx-card-flash,.teeth-section-flash{animation:none}}.sidebar-full-btn{text-align:left;width:100%}.sidebar-switcher{margin-bottom:1rem;position:relative}.sidebar-switcher-row{align-items:center;gap:.5rem;display:flex}.sidebar-switcher-row .sidebar-full-btn{flex:1;min-width:0}.sidebar-mars-icon{flex-shrink:0;width:32px;height:32px}.sidebar-switch-back{color:var(--brand-maroon);font-weight:500}.sidebar-switch-name{font-weight:500;display:block}.sidebar-switch-role{font-size:var(--font-size-xs);color:var(--text-muted);margin-top:.125rem;display:block}.sidebar-error{font-size:var(--font-size-xs);color:var(--danger-text);margin-bottom:.5rem}.sidebar-switcher-dropdown{z-index:10;border:1px solid var(--border-default);background:#fff;border-radius:.5rem;width:100%;max-height:16rem;margin-top:.25rem;position:absolute;overflow:auto;box-shadow:0 4px 12px #00000014}.sidebar-version{text-align:center;margin-top:.5rem}.sidebar-version-tag{font-size:var(--font-size-xs);background:var(--border-default);color:var(--text-secondary);border-radius:.25rem;padding:.25rem .625rem;font-weight:500;display:inline-block}.sidebar-desktop{flex-direction:column;flex-shrink:0;width:14rem;height:100%;display:none;overflow:hidden auto}@media (min-width:1024px){.sidebar-desktop{display:flex}}.sidebar-mobile-header{border-bottom:1px solid var(--border-default);background:var(--surface-page);align-items:center;gap:.75rem;padding:.5rem 1rem;display:flex}@media (min-width:1024px){.sidebar-mobile-header{display:none}}.sidebar-mobile-overlay{z-index:40;background:#0000004d;position:fixed;inset:0}@media (min-width:1024px){.sidebar-mobile-overlay{display:none}}.sidebar-mobile-aside{z-index:50;background:var(--surface-sidebar);width:16rem;transition:transform .2s ease-in-out;position:fixed;top:0;bottom:0;left:0;overflow:hidden;transform:translate(-100%);box-shadow:0 4px 24px #00000026}.sidebar-mobile-aside.open{transform:translate(0)}@media (min-width:1024px){.sidebar-mobile-aside{display:none}}.sidebar-preview-grid{flex-wrap:wrap;align-items:flex-start;gap:1rem;display:flex}.sidebar-preview-col{flex-direction:column;gap:.5rem;display:flex}.sidebar-preview-col-label{font-size:var(--font-size-small);color:var(--text-secondary);font-weight:600}.sidebar-preview-frame{border:1px solid var(--border-default);border-radius:.5rem;width:14rem;height:34rem;overflow:hidden}.auth-page{background:var(--surface-muted);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-page-card{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:28rem;display:flex}.error-page-header{flex-direction:column;align-items:center;gap:.75rem;width:100%;display:flex}.error-page-app-badge{color:var(--brand-maroon);letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(#8d1d0114,#ec402f24);border:1px solid #8d1d0133;border-radius:999px;justify-content:center;align-items:center;padding:.35rem .8rem;font-size:.75rem;font-weight:700;display:inline-flex}.error-page-title{color:var(--danger-text);margin:0}.error-page-subtitle{max-width:30rem;color:var(--text-secondary);margin:0}.error-page-help{text-align:left;background:linear-gradient(#fff7f5,#fffdfd);border:1px solid #f3c1b9;border-radius:.9rem;width:100%;padding:1rem 1.1rem;box-shadow:0 10px 30px #8d1d010f}.error-page-help-title{color:var(--danger-text);margin:0 0 .35rem;font-size:.875rem;font-weight:700}.auth-page-version{border:1px solid var(--border-default);letter-spacing:.01em;color:var(--text-primary);background:#ffffffe6;border-radius:999px;justify-content:center;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #0000000d}.segmented-control{border:1px solid var(--border-default);border-radius:.5rem;margin:.75rem 0;display:inline-flex;overflow:hidden}.segmented-control-item{color:var(--text-muted);background:var(--surface-card);border-right:1px solid var(--border-default);padding:.375rem .875rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.segmented-control-item:last-child{border-right:none}.segmented-control-item:hover{background:var(--surface-muted)}.segmented-control-item.active{background:var(--brand-maroon);color:#fff}.layout-screen{flex-direction:column;height:100vh;display:flex;overflow:hidden}.layout-row{align-items:center;gap:.5rem;display:flex}.layout-row-between{justify-content:space-between;align-items:center;display:flex}.pagination{justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;margin-bottom:5rem;display:flex}.pagination-info{color:var(--text-muted);font-size:.8125rem}.pagination-btn{font-size:.8125rem}.dialog{--dialog-width:min(calc(100vw - 2rem), 42rem);width:var(--dialog-width);border:1px solid var(--border-default);background:var(--surface-card);max-height:calc(100vh - 2rem);color:var(--text-primary);border-radius:.9rem;margin:auto;padding:0;box-shadow:0 1.5rem 4rem #11111138}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1111118c}.dialog.dialog-sm{--dialog-width:min(calc(100vw - 2rem), 32rem)}.dialog.dialog-md{--dialog-width:min(calc(100vw - 2rem), 42rem)}.dialog.dialog-lg{--dialog-width:min(calc(100vw - 2rem), 56rem)}.dialog.dialog-xl{--dialog-width:min(calc(100vw - 2rem), 72rem)}.dialog.dialog-fallback{display:none}.dialog.dialog-fallback[open]{z-index:1000;width:100%;max-width:none;max-height:none;box-shadow:none;background:#1111118c;border:none;border-radius:0;justify-content:center;align-items:center;margin:0;padding:1rem;display:flex;position:fixed;inset:0}.dialog.dialog-fallback[open]>.dialog-shell{width:var(--dialog-width);border:1px solid var(--border-default);background:var(--surface-card);border-radius:.9rem;max-height:calc(100vh - 2rem);box-shadow:0 1.5rem 4rem #11111138}.dialog-shell{flex-direction:column;max-height:calc(100vh - 2rem);display:flex}.dialog-header{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1.25rem .75rem;display:flex}.dialog-header-copy{min-width:0}.dialog-title{margin:0;font-size:1.1rem;font-weight:700}.dialog-description{color:var(--text-muted);font-size:var(--font-size-small);margin:.3rem 0 0}.dialog-close{flex:none;min-width:2.25rem;padding:.5rem .7rem}.dialog-body{padding:1rem 1.25rem;overflow:auto}.dialog-footer{border-top:1px solid var(--border-default);padding:.9rem 1.25rem 1.25rem}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.dialog-info{background:var(--warning-bg);color:var(--warning-text);font-size:var(--font-size-small);border:1px solid #f3d7ae;border-radius:.7rem;margin-top:.9rem;padding:.8rem .9rem}.dialog-error{background:var(--danger-bg);color:var(--danger-text);font-size:var(--font-size-small);border:1px solid #f3c1b9;border-radius:.7rem;margin:1rem 1.25rem 0;padding:.8rem .9rem;font-weight:500}.admin-card-grid{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;margin-top:1.5rem;display:grid}.admin-card{border:1px solid var(--border-default);background:var(--surface-card);border-radius:.75rem;padding:1.25rem;text-decoration:none;transition:border-color .15s;display:block}.admin-card:hover{border-color:var(--brand-maroon)}.admin-card .admin-card-title{color:var(--text-primary);margin-bottom:.25rem;font-weight:600}.admin-card .admin-card-desc{color:var(--text-muted);font-size:.8125rem}.toast-container{z-index:100;flex-direction:column;gap:.5rem;max-width:24rem;display:flex;position:fixed;bottom:1rem;right:1rem}.toast{cursor:pointer;border-radius:.5rem;padding:.75rem 1rem;font-size:.8125rem;font-weight:500;text-decoration:none;animation:.2s ease-out toast-in;display:block;box-shadow:0 4px 12px #00000026}.toast.toast-success{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-text)}.toast.toast-error{background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-text)}.toast.toast-info{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-default)}.toast.toast-warning{background:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning-text)}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.workspace{flex-direction:column;gap:.75rem;display:flex}.table-meta{color:var(--text-muted);margin-bottom:.25rem;font-size:.75rem}.skeleton{background:linear-gradient(90deg, var(--surface-muted) 25%, var(--surface-card) 50%, var(--surface-muted) 75%);background-size:200% 100%;border-radius:.25rem;animation:1.5s infinite skeleton-pulse}.skeleton-row{height:2.5rem;margin-bottom:.25rem}.skeleton-card{border-radius:.5rem;height:4rem}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;border:1px dashed var(--border-default);border-radius:.75rem;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.empty-state-icon{opacity:.5;font-size:2rem}.empty-state-message{color:var(--text-muted);font-size:.875rem}.empty-state-action{font-size:.8125rem}.filter-summary{color:var(--text-secondary);margin-bottom:.5rem;font-size:.8125rem}.filter-chip-dismiss{background:var(--surface-muted);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:1rem;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.filter-chip-dismiss:hover{background:var(--danger-bg);border-color:var(--danger-text);color:var(--danger-text)}.input-inline{background:0 0;border:none;width:100%;padding:.25rem}.select-inline{background:0 0;border:none}.btn-add{color:var(--brand-maroon);border:1px solid var(--brand-maroon);background:0 0;padding:.25rem .75rem}.btn-add:hover{background:var(--surface-muted)}.btn-activate{color:var(--text-muted);background:0 0;padding:.125rem .5rem;font-size:.75rem}.inline-form-grow{flex:1}.admin-tab-toolbar{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.admin-autocomplete-field{flex:1;min-width:10rem;position:relative}.login-page{justify-content:center;align-items:center;height:100dvh;padding:1rem;display:flex;position:relative;overflow:hidden}.unauth-page{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2rem 1rem 5rem;display:flex;position:relative;overflow-y:auto}.unauth-card{border:1px solid var(--border-default);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffffff7;border-radius:.75rem;flex-direction:column;gap:1.5rem;width:100%;max-width:44rem;padding:1.5rem 0;display:flex;position:relative;box-shadow:0 1px 3px #0000001a}.login-bg{opacity:.3;background:url(/login-01.webp) 50%/cover;position:absolute;inset:0}.login-card{border:1px solid var(--border-default);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffffff2;border-radius:.75rem;flex-direction:column;gap:1.5rem;width:100%;max-width:28rem;padding:1.5rem 0;display:flex;position:relative;box-shadow:0 1px 3px #0000001a}.login-card-header{text-align:center;gap:.5rem;padding:0 1.5rem;display:grid}.login-card-content{padding:0 1.5rem}.login-logo-wrap{margin:0 auto .75rem}.login-title{color:var(--text-muted);font-size:1.125rem;font-weight:500}.login-subtitle{color:var(--brand-maroon);font-size:1rem;font-weight:500}.login-version{border:1px solid var(--border-default);color:var(--text-primary);background:#ffffffe6;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;position:absolute;bottom:.75rem;right:.75rem;box-shadow:0 1px 2px #0000000d}.login-brand-badge{background:linear-gradient(#e8d9d373,#fff6);border:1px solid #8d1d0133;border-radius:1rem;align-items:center;gap:.75rem;padding:.625rem .875rem;display:inline-flex;position:absolute;bottom:3.5rem;left:.75rem}.login-brand-icon{background:#e8d9d3;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;display:inline-flex}.login-brand-text{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.login-brand-name{letter-spacing:-.05em;color:var(--text-primary);font-size:1.72rem;font-weight:700;line-height:.95}.login-brand-sub{text-transform:uppercase;letter-spacing:.12em;color:var(--brand-maroon);margin-top:.25rem;font-size:.6rem;font-weight:700}.login-google-btn{background:var(--surface-card);width:100%;height:2.25rem;color:var(--text-primary);border:1px solid var(--border-default);cursor:pointer;border-radius:.375rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex;box-shadow:0 1px 2px #0000000d}.login-google-btn:hover{background:var(--surface-muted)}.login-google-icon{flex-shrink:0;width:1rem;height:1rem}.site-signature{color:#666;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.site-signature-link{color:inherit;text-decoration:underline}.auth-page-card-wide{max-width:32rem}.btn-xs{padding:.125rem .5rem;font-size:.6875rem}.error-debug-box{background:linear-gradient(#fffefe,#f8f5f4);border:1px solid #ead7d2;border-radius:.9rem;flex-direction:column;align-items:flex-end;gap:.5rem;width:100%;padding:.9rem;display:flex;box-shadow:0 14px 34px #1111110d}.error-debug-pre{width:100%;color:var(--text-secondary);white-space:pre-wrap;word-break:break-all;text-align:left;margin:0;font-family:monospace;font-size:.6875rem;line-height:1.5}.text-secondary{color:var(--text-secondary)}.text-danger{color:var(--danger-text)}.text-warning{color:var(--warning-text)}.text-primary{color:var(--text-primary)}.font-medium{font-weight:500}.auth-page-actions{flex-direction:column;align-items:center;gap:.75rem;display:flex}.error-banner-centered{text-align:center;border-radius:.75rem;padding:1rem 1.5rem}.back-link{margin-bottom:.5rem;display:inline-block}.subtitle{margin-top:.25rem}.mi-cursada-assignments{flex-direction:column;gap:.25rem;display:flex}.mi-cursada-assignment{flex-wrap:wrap;align-items:baseline;gap:.125rem .5rem;display:flex}.mi-cursada-assignment-comision{color:var(--text-secondary);font-weight:600}.code-muted{color:var(--text-muted);word-break:break-all;font-size:.875rem}.switch-banner{background:var(--warning-bg);color:var(--warning-text);justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.75rem;display:grid}.import-summary{gap:1rem;margin-bottom:1rem;font-size:.875rem;display:flex}.import-stat-success{color:var(--success-text)}.import-stat-warning{color:var(--warning-text)}.import-stat-muted{color:var(--text-muted)}.import-stat-danger{color:var(--danger-text)}.autocomplete-dropdown{z-index:10;background:var(--surface-card);border:1px solid var(--border-default);border-radius:.5rem;width:100%;max-height:12rem;margin-top:.25rem;position:absolute;overflow:auto;box-shadow:0 4px 12px #00000026}.autocomplete-option{text-align:left;cursor:pointer;background:0 0;border-radius:0;width:100%;padding:.5rem .75rem;font-size:.875rem;display:block}.autocomplete-option:hover{background:var(--surface-muted)}.notification-list{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.notification-item{border:1px solid var(--border-default);background:var(--surface-card);text-align:left;-webkit-user-select:text;user-select:text;border-radius:.5rem;align-items:flex-start;gap:.75rem;width:100%;min-height:3.5rem;padding:.875rem 1rem;transition:background .15s;display:flex}.notification-item[data-unread]{background:var(--surface-muted)}.notification-dot{background:var(--brand-maroon);border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem;margin-top:.4rem}.notification-content{flex:1}.notification-title{color:var(--text-primary);font-size:.8125rem}.notification-title[data-unread]{font-weight:600}.notification-title-link{cursor:pointer;text-align:left;background:0 0;border:0;margin:0;padding:0;font-family:inherit;display:inline}.notification-title-link:hover{text-decoration:underline}.notification-title-disabled{color:var(--text-muted);cursor:default;display:inline}.notification-deleted-tag{color:var(--text-muted);font-size:.6875rem;font-style:italic}.notification-body,.notification-time{color:var(--text-muted);margin-top:.25rem;font-size:.75rem}.report-bar-section{border:1px solid var(--border-default);background:var(--surface-card);border-radius:.75rem;padding:1rem}.report-bar-title{margin-bottom:.75rem;font-size:.8125rem;font-weight:600}.report-bar-header,.report-bar-row{grid-template-columns:9rem 1fr 3rem 3rem;align-items:center;gap:.5rem;font-size:.75rem;display:grid}.report-bar-header{color:var(--text-muted);border-bottom:1px solid var(--border-default);text-align:right;padding-bottom:.375rem}.report-bar-header span:first-child{text-align:left}.report-bar-row{padding:.25rem 0}.report-bar-label{white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.report-bar-track{background:var(--surface-muted);border-radius:.25rem;height:1.25rem;overflow:hidden}.report-bar-fill{border-radius:.25rem;min-width:2px;height:100%;transition:width .3s}.report-bar-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.report-bar-pct{text-align:right;color:var(--text-muted);font-variant-numeric:tabular-nums}.report-bars-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (min-width:1024px){.report-bars-grid{grid-template-columns:1fr 1fr}}.report-hero-card{border:1px solid var(--border-default);background:var(--surface-card);border-radius:.75rem;padding:1.25rem}.report-hero-header{justify-content:space-between;align-items:flex-start;display:flex}.report-hero-label{text-transform:uppercase;letter-spacing:.12em;color:var(--brand-maroon);font-size:.6875rem;font-weight:600}.report-hero-subtitle{color:var(--text-muted);margin-top:.25rem;font-size:.8125rem}.report-hero-rate{color:var(--brand-maroon);font-size:2rem;font-weight:700}.report-hero-rate-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-size:.6875rem}.report-state-cards{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:1rem;display:grid}.report-state-card{border-radius:.75rem;padding:.75rem 1rem}.report-state-card.state-aprobado{background:#22c55e0d;border:1px solid #22c55e33}.report-state-card.state-desaprobado{background:#ef44440d;border:1px solid #ef444433}.report-state-card.state-noRevisado{background:#f59e0b0d;border:1px solid #f59e0b33}.report-state-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-size:.6875rem}.report-state-row{justify-content:space-between;align-items:flex-end;gap:.5rem;margin-top:.25rem;display:flex}.report-state-value{font-size:1.75rem;font-weight:700}.state-aprobado .report-state-value{color:#16a34a}.state-desaprobado .report-state-value{color:#dc2626}.state-noRevisado .report-state-value{color:#d97706}.report-state-pct{color:var(--text-muted);font-size:.8125rem}.report-buckets{flex-direction:column;gap:.75rem;display:flex}.report-buckets-row{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.report-buckets-row.is-split{grid-template-columns:repeat(2,1fr)}@media (max-width:640px){.report-buckets-row,.report-buckets-row.is-split{grid-template-columns:1fr}}.report-bucket-card{border:1px solid var(--border-default);background:var(--surface-card);border-radius:.75rem;flex-direction:column;gap:.25rem;padding:1rem;display:flex}.report-bucket-card.is-total{background:#5b21320a;border-color:#5b213240}.report-bucket-card.is-sinCalificar{background:#f59e0b0d;border-color:#f59e0b40}.report-bucket-card.is-calificadas{background:#6366f10d;border-color:#6366f140}.report-bucket-card.is-aprobadas{background:#22c55e0d;border-color:#22c55e40}.report-bucket-card.is-desaprobadas{background:#ef44440d;border-color:#ef444440}.report-bucket-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-size:.6875rem;font-weight:600}.report-bucket-value-row{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.report-bucket-value{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:2rem;font-weight:700}.is-total .report-bucket-value{color:var(--brand-maroon)}.is-sinCalificar .report-bucket-value{color:var(--color-sin-calificar)}.is-calificadas .report-bucket-value{color:#4f46e5}.is-aprobadas .report-bucket-value{color:#16a34a}.is-desaprobadas .report-bucket-value{color:#dc2626}.report-bucket-pct{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.875rem}.col-sin-calificar{color:var(--color-sin-calificar)}th.col-sin-calificar{font-weight:700}td.col-sin-calificar{font-weight:600}.report-bucket-hint{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.report-kpi-tile{border:1px solid var(--border-default);background:var(--surface-card);border-radius:.75rem;flex-direction:column;gap:.125rem;padding:.875rem 1rem;display:flex}.report-kpi-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-size:.6875rem;font-weight:600}.report-kpi-value{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:1.5rem;font-weight:700}.report-kpi-hint{color:var(--text-muted);font-size:.75rem}.report-scope{color:var(--text-muted);margin-bottom:1rem;font-size:.8125rem}.detail-grid{gap:.5rem 1.5rem}.form-field-readonly{gap:.5rem;font-size:.875rem;line-height:1.4;display:flex}.form-field-readonly dt{color:var(--text-muted);white-space:nowrap;flex-shrink:0}.form-field-readonly dt:after{content:":"}.form-field-readonly dd{color:var(--text-primary);overflow-wrap:break-word;min-width:0;margin:0}.practica-summary-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;display:grid}.practica-summary-card{border:1px solid var(--border-default);background:var(--surface-card);border-radius:.75rem;padding:.875rem 1rem}@media (min-width:768px){.practica-summary-card-wide{grid-column:span 2}}.practica-summary-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0;font-weight:600}.practica-summary-value{color:var(--text-primary);margin:.25rem 0 0;font-size:1rem;font-weight:600}.practica-summary-value-with-action{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.practica-tooth-list{flex-wrap:wrap;gap:.375rem;margin-top:.5rem;display:flex}.practica-tooth-chip{background:var(--surface-muted);min-width:2.25rem;color:var(--text-primary);font-size:var(--font-size-small);border-radius:9999px;justify-content:center;align-items:center;padding:.25rem .5rem;font-weight:600;display:inline-flex}.rx-list{flex-wrap:wrap;gap:.75rem;display:flex}.rx-list-item{border:1px solid var(--border-default);background:var(--surface-card);cursor:pointer;border-radius:.5rem;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;transition:border-color .15s;display:flex}.rx-list-item:hover{border-color:var(--brand-maroon)}.rx-list-thumb{object-fit:cover;border-radius:.25rem;width:4rem;height:4rem}.rx-list-label{color:var(--text-muted);font-size:.6875rem}.rx-viewer-overlay{z-index:100;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rx-viewer-content{background:var(--surface-card);border-radius:.75rem;flex-direction:column;width:90vw;max-width:60rem;height:90vh;display:flex;overflow:hidden}.rx-viewer-toolbar{border-bottom:1px solid var(--border-default);background:var(--surface-muted);justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.rx-viewer-title{font-size:.875rem;font-weight:600}.rx-viewer-zoom-controls{z-index:10;background:#ffffffe6;border-radius:.375rem;gap:.25rem;padding:.25rem;display:flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0003}.rx-viewer-wrapper{cursor:grab;flex:1;min-height:0;position:relative}.rx-viewer-wrapper:active{cursor:grabbing}.rx-viewer-img{max-width:100%;max-height:100%;transition:transform .2s}.image-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}@media (min-width:768px){.image-grid{grid-template-columns:repeat(3,1fr)}}.image-card{border:1px solid var(--border-default);border-radius:.5rem;overflow:hidden}.image-card img{width:100%;height:auto;display:block}@media (max-width:640px){.layout-row-between{flex-wrap:wrap;gap:.5rem}.layout-row{flex-wrap:wrap}.page-header-row{flex-direction:column;align-items:flex-start;gap:.75rem}.inline-form{flex-direction:column;align-items:stretch}.segmented-control{width:100%}.segmented-control-item{text-align:center;flex:1}.filter-row{flex-direction:column}}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.space-y-6>*+*{margin-top:1.5rem}.profile-name{color:var(--text-primary);font-weight:600}.profile-email{color:var(--text-muted);font-size:.8125rem}.profile-roles{gap:.25rem;margin-top:.375rem;display:flex}.file-upload-area{border:2px dashed var(--border-default);cursor:pointer;text-align:center;border-radius:.75rem;flex-direction:column;align-items:center;gap:.375rem;padding:1.5rem;transition:border-color .15s,background .15s;display:flex}.file-upload-area:hover{border-color:var(--brand-maroon);background:var(--surface-muted)}.file-upload-icon{font-size:1.5rem}.file-upload-text{color:var(--text-primary);font-size:.875rem;font-weight:500}.file-upload-hint{color:var(--text-muted);font-size:.75rem}.file-upload-input{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.link-maroon{color:var(--brand-maroon);text-decoration:none}.link-maroon:hover{text-decoration:underline}.row-link{color:inherit;width:100%;text-decoration:none;display:block}.row-link-table tbody tr:hover td{background:var(--surface-hover,#00000008);cursor:pointer}.filter-select{border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-primary);border-radius:.375rem;width:auto;padding:.375rem .75rem;font-size:.8125rem;display:inline-block}.programa-switcher{align-items:center;gap:.5rem;display:inline-flex}.programa-switcher-label{color:var(--text-secondary);white-space:nowrap;font-size:.8125rem;font-weight:600}.practicas-filters{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin:.5rem 0 1rem;display:flex}.filter-field{flex-direction:column;gap:.25rem;display:inline-flex}.filter-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em;font-size:.75rem;font-weight:600}.checkbox-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.25rem 0;display:flex}.filter-row{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.filter-row-tight{gap:.5rem;margin-top:.5rem;display:flex}.log-meta{color:var(--text-muted);margin:.75rem 0;font-size:.75rem}.log-cell{font-size:.75rem}.log-cell-date{white-space:nowrap;font-size:.75rem}.log-cell-message{text-overflow:ellipsis;white-space:nowrap;max-width:20rem;font-size:.75rem;overflow:hidden}.log-level{font-size:.75rem;font-weight:600}.log-level.level-error{color:var(--danger-text)}.log-level.level-warn{color:#b45309}.log-level.level-info{color:var(--text-muted)}.btn-delete-inline{padding:.125rem .375rem;font-size:.75rem}.form-inline{display:inline}.alert-success{background:var(--success-bg);color:var(--success-text);border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.alert-error{background:var(--danger-bg);color:var(--danger-text);border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.alert-warning{background:var(--warning-bg);color:var(--warning-text);border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.alert-info{background:var(--surface-muted);color:var(--text-muted);border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.rectificar-banner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.review-actions{gap:.75rem;margin-top:1rem;display:flex}.review-graded-at{color:var(--text-primary);padding-top:.5rem;font-size:.875rem}.audit-list{flex-direction:column;gap:.5rem;display:flex}.audit-entry{border:1px solid var(--border-default);background:var(--surface-card);border-radius:.5rem;padding:.75rem;font-size:.8125rem}.audit-entry-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.audit-actor{font-weight:500}.audit-action{color:var(--text-muted);margin-left:.5rem}.audit-action-state{font-weight:500}.audit-calificacion{font-weight:600}.audit-entry--relevant{border-color:var(--border-strong,#d4d4d8);border-left:3px solid var(--text-primary);background:var(--surface-raised,#fafafa)}.audit-entry--relevant .audit-actor{font-weight:700}.audit-entry--relevant .audit-action{color:var(--text-primary);font-weight:600}.audit-entry--rectificar{border-left-color:var(--warning-text)}.audit-entry--rectificar .audit-action{color:var(--warning-text)}.practica-calificacion{color:var(--text-primary);font-weight:600}.audit-time{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.audit-comment{color:var(--text-secondary);margin-top:.25rem}.changelog-fields{flex-direction:column;gap:.125rem;margin-top:.375rem;font-size:.8125rem;display:flex}.changelog-field-label{color:var(--text-muted)}.changelog-field-old{color:var(--text-muted);text-decoration:line-through}.changelog-arrow{color:var(--text-muted)}.changelog-field-new{font-weight:500}.filter-chip-sm{font-size:.75rem}.team-grid{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1rem;margin-top:1rem;display:grid}.team-card{border:1px solid var(--border-default);background:var(--surface-card);border-radius:.75rem;overflow:hidden}.team-card-header{border-bottom:1px solid var(--border-default);background:var(--surface-muted);justify-content:space-between;align-items:center;padding:.875rem 1rem;display:flex}.team-card-title{color:var(--brand-maroon);font-weight:600;text-decoration:none}.team-card-title:hover{text-decoration:underline}.team-card-count{color:var(--text-muted);font-size:.75rem}.team-card-members{padding:.5rem}.team-member{border-radius:.375rem;align-items:center;gap:.5rem;padding:.375rem .5rem;display:flex}.team-member:hover{background:var(--surface-muted)}.team-member-role{text-transform:uppercase;letter-spacing:.03em;min-width:5rem;color:var(--text-muted);font-size:.6875rem;font-weight:600;display:inline-block}.team-member-role.role-titular{color:var(--brand-maroon)}.team-member-role.role-adjunto{color:#7c3aed}.team-member-role.role-jtp{color:#0369a1}.team-member-role.role-ayudante{color:var(--text-muted)}.team-member-name{color:var(--text-primary);font-size:.8125rem}a.th-sortable{color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;text-decoration:none}a.th-sortable:hover{color:var(--text-primary)}a.th-sortable:hover .sort-indicator{opacity:.7}.sort-indicator{opacity:.4;margin-left:.375rem;font-size:.85em;transition:opacity .15s;display:inline-block}.sort-indicator.active{opacity:1;color:var(--brand-maroon)}.detail-row{gap:.5rem;padding:.25rem 0;display:flex}.detail-row .detail-label{color:var(--text-muted);min-width:12rem}.inline-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.kpi-row{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.kpi-card{border:1px solid var(--border-default);background:var(--surface-card);border-radius:.5rem;min-width:7rem;padding:.75rem 1rem}.kpi-value{font-size:var(--font-size-h2);color:var(--text-primary);font-weight:700;line-height:1}.kpi-label{font-size:var(--font-size-xs);color:var(--text-muted);margin-top:.25rem}@media (max-width:640px){.kpi-row{gap:.5rem}.kpi-card{flex:calc(50% - .25rem);min-width:0;padding:.5rem .625rem}.kpi-card:first-child:nth-last-child(5),.kpi-card:first-child:nth-last-child(5)~.kpi-card{flex:calc(33.333% - .334rem)}.kpi-value{font-size:var(--font-size-h3)}}.filter-bar{flex-wrap:wrap;gap:.375rem;margin-bottom:.75rem;display:flex}.filter-chip{font-size:var(--font-size-xs);background:var(--surface-muted);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:9999px;align-items:center;gap:.375rem;padding:.25rem .5rem;text-decoration:none;display:inline-flex}.filter-chip:hover{background:var(--border-default)}.filter-chip-x{opacity:.6;font-size:.6rem}.search-input{max-width:20rem}.chip{font-size:var(--font-size-small);background:var(--surface-muted);color:var(--text-secondary);border:1px solid var(--border-default);cursor:pointer;border-radius:9999px;align-items:center;gap:.375rem;padding:.375rem .75rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.chip:hover{background:var(--surface-hover);color:var(--text-primary)}.chip.chip-active{background:var(--brand-maroon);color:#fff;border-color:var(--brand-maroon)}.chip-count{font-size:var(--font-size-xs);opacity:.8}.chip-divider{background:var(--border-default);align-self:stretch;width:1px}.chip-bar{flex-wrap:wrap;align-items:center;gap:.375rem;margin-top:.5rem;display:flex}.filter-chip-label{font-size:var(--font-size-xs)}.compact-list{font-size:var(--font-size-small);flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.link-button{color:var(--brand-maroon);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.link-button:hover{text-decoration-style:solid}.usuarios-summary-grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.75rem;margin-top:1.5rem;display:grid}.layout-body{flex:1;min-height:0;display:flex}.tooth-grid{border:1px solid var(--border-default);background:var(--surface-muted);border-radius:.5rem;flex-direction:column;gap:0;padding:.5rem;display:flex}.tooth-jaw{align-items:stretch;display:flex}.tooth-quadrant{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.tooth-quadrant-label{color:var(--text-muted);text-align:center;font-size:.6rem;font-weight:500}.tooth-quadrant-cells{grid-template-columns:repeat(8,1fr);gap:3px;display:grid}.tooth-divider{background:var(--border-strong);align-self:stretch;width:1px;margin:0 .375rem}.tooth-midline{background:var(--border-strong);height:1px;margin:.375rem 0}.tooth-cell{aspect-ratio:1;min-width:0;font-size:var(--font-size-xs);background:var(--surface-card);border:1px solid var(--border-default);color:var(--text-primary);cursor:pointer;border-radius:.25rem;justify-content:center;align-items:center;min-height:2rem;padding:0;font-weight:500;transition:background .1s,border-color .1s;display:flex}.tooth-cell:hover{border-color:var(--brand-maroon)}.tooth-cell.selected{background:var(--brand-maroon);color:#fff;border-color:var(--brand-maroon)}@media (max-width:640px){.tooth-grid{background:0 0;border:none;border-radius:0;padding:0}.tooth-jaw{flex-direction:column;gap:.5rem}.tooth-divider{width:100%;height:1px;margin:0}.tooth-quadrant-label{font-size:var(--font-size-small);font-weight:600}.tooth-quadrant-cells{gap:4px}.tooth-cell{border-radius:.375rem;min-height:2.5rem;font-size:.75rem}}.badge{font-size:var(--font-size-xs);border-radius:9999px;padding:.125rem .5rem;font-weight:600;display:inline-block}.badge-pending{background:var(--warning-bg);color:var(--warning-text)}.badge-approved{background:var(--success-bg);color:var(--success-text)}.badge-rejected,.badge-warning{background:var(--danger-bg);color:var(--danger-text)}.form-actions{gap:.5rem;margin-top:1rem;display:flex}.form-hint{color:var(--text-muted);margin:0;font-size:.875rem}.form-optional-block{margin-top:1rem}.form-optional-block>summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-muted);padding:.25rem 0;font-size:.875rem}.comision-row{align-items:flex-start;gap:.5rem;display:flex}.comision-row>.comision-row-select{flex:1}.select-group-header{color:var(--text-muted);padding:.25rem .75rem;font-size:.75rem;font-weight:600}.rx-grid{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.5rem;margin-top:.75rem;display:grid}.rx-card{border:1px solid var(--border-default);border-radius:.375rem;position:relative;overflow:hidden}.rx-card-untagged{border-color:var(--danger-text);box-shadow:0 0 0 1px var(--danger-text)}.rx-untagged-badge{z-index:1;font-size:var(--font-size-xs);background:var(--danger-bg);color:var(--danger-text);border-radius:.25rem;padding:.125rem .375rem;font-weight:600;position:absolute;top:.25rem;left:.25rem}.rx-card-flash{animation:.5s ease-in-out 2 rx-card-flash-pulse}@keyframes rx-card-flash-pulse{0%,to{box-shadow:0 0 0 1px var(--danger-text)}50%{box-shadow:0 0 0 4px var(--danger-text)}}.teeth-section-flash{border-radius:.5rem;animation:.5s ease-in-out 2 rx-card-flash-pulse}@keyframes friction-flash{0%,to{box-shadow:0 0 #dc262600}50%{box-shadow:0 0 0 4px #dc2626e6}}.friction-flash-3x{border-radius:.5rem;animation:.5s ease-in-out 3 friction-flash;display:block}.friction-empty{border-radius:.5rem;box-shadow:0 0 0 1px #dc262680}.rx-tile{border:1px solid var(--border-default);border-radius:.375rem;flex-direction:column;gap:.5rem;padding:.5rem;display:flex}.rx-tile-deleted{opacity:.4}.rx-tile-body{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.rx-thumb-btn{border-radius:.25rem;flex-shrink:0;width:3rem;height:3rem;padding:0;overflow:hidden}.rx-thumb{object-fit:contain;background:#111;width:100%;height:10rem;display:block}.rx-tooth-select{border:none;border-top:1px solid var(--border-default);background:var(--surface-muted,#f4f4f5);text-align:center;cursor:pointer;border-radius:0;width:100%;padding:.35rem .375rem;font-size:.8rem;transition:background .12s}.rx-tooth-select:hover,.rx-tooth-select:focus-visible,.rx-tooth-select[data-popup-open]{box-shadow:inset 0 0 0 1px var(--border-default);background:#fff}.rx-tooth-select option{font-size:.8rem}.rx-notes-row{border-top:1px solid var(--border-default);display:flex}.rx-notes{border:none;border-radius:0;flex:1;min-width:0;padding:.25rem .375rem;font-size:.65rem}.rx-notes-expand{border:none;border-left:1px solid var(--border-default);background:var(--surface-card);cursor:pointer;color:var(--text-secondary);flex-shrink:0;padding:.125rem .35rem;font-size:.65rem}.rx-notes-expand:hover{background:var(--surface-hover);color:var(--text-primary)}.rx-remove{color:#fff;cursor:pointer;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;padding:0;font-size:.6rem;display:flex;position:absolute;top:.25rem;right:.25rem}.rx-remove:hover{background:#000000b3}.dialog-textarea{resize:vertical;min-height:9rem}.dni-row{gap:.5rem;display:flex}.dni-type-select{flex-shrink:0;width:6rem}.student-picker{position:relative}.dni-number-input{flex:1;min-width:0}.combobox-dropdown{z-index:10;border:1px solid var(--border-default);background:#fff;border-radius:.5rem;width:100%;max-height:12rem;margin-top:.25rem;position:absolute;overflow:auto;box-shadow:0 4px 12px #00000014}.combobox-option{text-align:left;width:100%;font-size:var(--font-size-small);color:var(--text-primary);background:0 0;border:none;border-radius:0;padding:.5rem .75rem;font-weight:400;display:block}.combobox-option:hover{background:var(--surface-muted)}.field-required{color:var(--danger-text)}.text-hint{color:var(--text-muted);font-size:var(--font-size-small);white-space:nowrap}.text-hint.subtitle{white-space:normal}.stats-funnel{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.stats-funnel-step{border:1px solid var(--border-default);background:var(--surface-muted);border-radius:.5rem;flex-direction:column;align-items:flex-start;gap:.125rem;padding:.625rem .75rem .625rem 1.25rem;display:flex;position:relative}.stats-funnel-step:not(:last-child):after{content:"";border-left:2px solid var(--border-default);height:.5rem;position:absolute;bottom:-.5rem;left:.625rem}.stats-funnel-step:before{content:"";background:var(--border-strong,var(--text-secondary));border-radius:50%;width:.375rem;height:.375rem;position:absolute;top:.875rem;left:.5rem}.stats-funnel-step.is-universe{border-color:var(--border-strong,var(--text-secondary));background:var(--surface-card)}.stats-funnel-step.is-universe:before{background:var(--text-primary)}.stats-funnel-value{font-size:var(--font-size-h3);font-weight:700;line-height:1.2}.stats-funnel-unit{color:var(--text-secondary);font-weight:500}.stats-funnel-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.stats-refresh-note{background:var(--surface-muted);color:var(--text-secondary);font-size:var(--font-size-small);border-radius:.5rem;margin:.25rem 0 1rem;padding:.5rem .75rem}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;display:grid}.kpi-card{border:1px solid var(--border-default);background:var(--surface-muted);border-radius:.5rem;flex-direction:column;gap:.15rem;padding:.75rem .9rem;display:flex}.kpi-card-value{color:var(--brand-maroon);font-size:1.5rem;font-weight:700;line-height:1.1}.kpi-card-label{font-size:var(--font-size-small);color:var(--text-primary)}.kpi-card-hint{font-size:var(--font-size-small);color:var(--text-secondary)}.bar-list{flex-direction:column;gap:.5rem;display:flex}.bar-row{grid-template-columns:minmax(8rem,14rem) 1fr auto;align-items:center;gap:.75rem;display:grid}.bar-row.muted{opacity:.7}.bar-row-label{font-size:var(--font-size-small)}.bar-track{background:var(--surface-hover);border-radius:.3rem;height:.6rem;position:relative;overflow:hidden}.bar-fill{background:var(--brand-maroon);border-radius:.3rem;position:absolute;inset:0 auto 0 0}.bar-row-value{font-size:var(--font-size-small);white-space:nowrap;text-align:right}.outlier-flag{margin-left:.4rem}.profile-block{margin-top:1rem}.profile-block:first-of-type{margin-top:.75rem}.profile-block-title{font-size:var(--font-size-small);color:var(--text-primary);margin:0 0 .4rem;font-weight:600}.user-avatar{width:var(--avatar-size,2rem);height:var(--avatar-size,2rem);object-fit:cover;border-radius:50%;flex-shrink:0}.user-avatar-initials{width:var(--avatar-size,2rem);height:var(--avatar-size,2rem);background:var(--brand-maroon);color:#fff;font-size:calc(var(--avatar-size,2rem)*.4);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.profile-photo-nag-blocking-panel{border:1px solid var(--brand-maroon);background:#fff;border-radius:.5rem;max-width:26rem;margin:2rem auto;padding:1.5rem}.profile-photo-nag-banner{border:1px solid var(--brand-maroon);background:#fff;border-left-width:4px;border-radius:.375rem;margin-bottom:1rem;padding:1rem}.profile-photo-nag-dialog{border:none;border-radius:.5rem;width:calc(100% - 2rem);max-width:26rem;padding:1.5rem}.profile-photo-nag-dialog::backdrop{background:#00000080}.profile-photo-nag-title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600}.profile-photo-nag-message{margin:0 0 .75rem}.profile-photo-nag-blocking-hint{color:var(--brand-maroon);margin:0 0 .75rem;font-weight:600}.profile-photo-nag-form{gap:.75rem;display:grid}.profile-photo-nag-actions{flex-wrap:wrap;gap:.5rem;display:flex}.practica-header-with-photo{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.practica-header-with-photo>:first-child{flex:1;min-width:0}.practica-student-photo{flex-direction:column;flex-shrink:0;align-items:center;gap:.4rem;display:flex}.request-profile-photo-button{font-size:var(--font-size-xs);white-space:normal;text-align:center}.field-error{color:var(--danger-text);font-size:var(--font-size-xs);margin-top:.25rem}.checkbox-label{color:var(--text-primary);align-items:center;font-weight:400;display:flex}.checkbox-group-box{border:1px solid var(--border-default);border-radius:.375rem;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:.25rem;padding:.75rem;display:grid}.checkbox-group-box>*{min-width:0}@media (max-width:640px){.checkbox-group-box{grid-template-columns:1fr}}.radio-group-inline{flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:.375rem;display:flex}.radio-group-inline.radio-group-boxed{border:1px solid var(--border-strong);border-radius:.375rem;width:fit-content;max-width:100%;padding:.5rem .75rem}.checkbox-group-options{border:1px solid var(--border-strong);border-radius:.375rem;grid-template-columns:repeat(2,1fr);gap:.375rem .75rem;max-width:28rem;margin-top:.25rem;padding:.5rem .75rem;display:grid}@media (max-width:640px){.checkbox-group-options{grid-template-columns:1fr}}.checkbox-option{align-items:center;gap:.5rem;display:flex}.system-banner{background:var(--warning-bg);color:var(--warning-text);font-size:var(--font-size-small);text-align:center;width:100%;padding:.5rem 1rem;font-weight:500}.upload-progress-banner{font-size:var(--font-size-small);background:var(--warning-bg);color:var(--warning-text);border-radius:.5rem;margin-bottom:1rem;padding:.5rem 1rem}.error-banner{font-size:var(--font-size-small);background:var(--danger-bg);color:var(--danger-text);border-radius:.5rem;margin-bottom:1rem;padding:.5rem 1rem}.error-banner .error-event-id{opacity:.85;align-items:center;gap:.25rem;display:inline-flex}.error-banner .error-event-id code{word-break:break-all;font-family:monospace;font-size:.75em}.btn-copy-inline{height:1.4em;color:inherit;cursor:pointer;opacity:.75;background:0 0;border:1px solid;border-radius:.25rem;align-items:center;padding:0 .4rem;font-size:.75em;display:inline-flex}.btn-copy-inline:hover{opacity:1}.success-banner{text-align:center;font-size:var(--font-size-small);background:var(--success-bg);color:var(--success-text);border-radius:.75rem;padding:1rem 1.5rem;font-weight:500}.btn-primary-small{background:var(--action-primary-bg);color:var(--action-primary-text)}.btn-primary-small:hover{background:var(--action-primary-bg-hover)}.btn-secondary{background:var(--surface-muted);color:var(--text-secondary);border:1px solid var(--border-default)}.btn-secondary:hover{background:var(--surface-hover)}.btn-ghost{color:var(--text-primary);background:0 0;border:none;border-radius:0;padding:.5rem .75rem;font-weight:400}.btn-ghost:hover{background:var(--surface-muted)}.btn-danger-ghost{color:var(--danger-text);background:0 0;border:none;padding:.125rem .375rem;font-weight:400}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.practica-info-bar{background:var(--surface-muted);border:1px solid var(--border-default);border-radius:.5rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;margin-top:1rem;padding:.75rem 1rem;display:grid}.practica-info-value{font-size:var(--font-size-small);color:var(--text-primary)}.date-dmy-field .date-dmy-inputs{align-items:center;gap:.25rem;display:flex}.date-dmy-field .date-dmy-input{text-align:center;appearance:textfield;width:auto}.date-dmy-field .date-dmy-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.date-dmy-field .date-dmy-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.date-dmy-field .date-dmy-day,.date-dmy-field .date-dmy-month{width:3.5rem}.date-dmy-field .date-dmy-year{width:4.25rem;padding-inline:.375rem}.date-dmy-field .date-dmy-separator{color:var(--text-muted);font-weight:600}.date-dmy-field .date-dmy-hint{margin-top:.25rem;display:block}.panel-row{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;display:grid}.panel-row>.form-section{margin-top:0}@media (max-width:640px){.panel-row{grid-template-columns:1fr}}.form-section{border:1px solid var(--border-strong);background:var(--surface-card);border-radius:.5rem;margin-top:1rem;padding:1.25rem}.pieza-remove-bar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.pieza-removed{opacity:.4}.form-section-title{font-size:var(--font-size-body);color:var(--text-primary);border-bottom:1px solid var(--border-default);margin-bottom:1rem;padding-bottom:.5rem;font-weight:600}.historial-section{border-color:var(--border-strong);background:var(--surface-muted);max-width:80%;margin-top:2.5rem;margin-left:auto;margin-right:auto}@media (max-width:640px){.historial-section{max-width:none;margin-top:1.5rem}}.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;display:grid}@media (max-width:640px){.form-grid{grid-template-columns:minmax(0,1fr)}}.form-field{flex-direction:column;gap:.25rem;display:flex;position:relative}.form-field-spaced,.form-block-spaced{margin-top:1rem}.form-field-full{grid-column:1/-1}.form-grid-tight{flex-wrap:wrap;align-items:flex-start;gap:1rem;display:flex}.form-grid-tight>.form-field{flex:0 auto;min-width:8rem}.form-grid-tight>.form-field-full{flex:100%}.form-field-compact{max-width:13rem}.data-table-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.data-table-search{border:1px solid var(--border-default);background:var(--surface-card);width:24rem;max-width:100%;height:2rem;color:var(--text-primary);border-radius:.375rem;flex:none;padding:0 .625rem;font-size:.8125rem}.data-table-toolbar-actions{gap:.5rem;margin-left:auto;display:flex}.data-table-toolbar-batch{align-items:center;gap:.5rem;margin-left:auto;display:flex}.dirty-state-bar{border:1px solid var(--border-default);background:var(--surface-warning,#fef9c3);border-radius:.5rem;align-items:center;gap:.5rem;padding:.25rem .5rem;display:inline-flex}.dirty-state-bar-count{color:var(--text-secondary);font-size:.8125rem}.data-table-footer{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.5rem;margin-bottom:5rem;font-size:.8125rem;display:flex}.page-section .data-table-footer{margin-bottom:.5rem}.data-table-pagesize{align-items:center;gap:.5rem;display:inline-flex}.data-table-count{margin-right:auto}.data-table-pager{align-items:center;gap:.5rem;display:inline-flex}.data-table-pager-btn{border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-primary);cursor:pointer;border-radius:.375rem;padding:.25rem .625rem;font-size:.8125rem}.data-table-pager-btn:disabled{opacity:.5;cursor:not-allowed}.data-table-pager-info{white-space:nowrap}.support-fab{z-index:40;align-items:center;gap:.4rem;display:inline-flex;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 4px 14px -2px #00000040}.pwa-install-banner{z-index:90;background:var(--surface-card);border:1px solid var(--border-strong);border-left:4px solid var(--brand-maroon);border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.875rem 1rem;display:flex;position:fixed;bottom:.75rem;left:.75rem;right:.75rem;box-shadow:0 6px 20px -4px #0000004d}.pwa-install-banner-text{font-size:var(--font-size-small);color:var(--text-primary);margin:0}.pwa-install-banner-actions{justify-content:flex-end;gap:.5rem;display:flex}.exam-matrix{border-collapse:collapse;white-space:nowrap;font-size:.8125rem}.exam-matrix th,.exam-matrix td{border:1px solid var(--border-default);padding:.25rem .5rem}.exam-matrix thead th{background:var(--surface-muted);color:var(--text-primary);font-weight:600}.exam-matrix .exam-matrix-name{z-index:1;background:var(--surface-card);text-align:left;color:var(--text-primary);white-space:normal;min-width:12rem;font-weight:500;position:sticky;left:0}.exam-matrix thead .exam-matrix-name{background:var(--surface-muted);z-index:2}.exam-cell{min-width:2rem;color:var(--text-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.375rem;padding:.125rem .375rem;font-size:.8125rem;display:inline-block}.exam-cell:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-default)}.exam-cell:disabled{cursor:default;color:var(--text-muted)}.estadisticas-clinico .clinico-filters{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.estadisticas-clinico .clinico-filter{flex-direction:column;gap:.25rem;min-width:12rem;display:flex}.estadisticas-clinico .clinico-scope-note{align-self:center;margin-left:auto}.estadisticas-clinico .clinico-summary{flex-wrap:wrap;gap:1.5rem;display:flex}.estadisticas-clinico .clinico-stat{flex-direction:column;min-width:7rem;display:flex}.estadisticas-clinico .clinico-stat-value{color:var(--text-primary);font-size:1.5rem;font-weight:600;line-height:1.2}.estadisticas-clinico .clinico-denominator{margin-top:1rem}.estadisticas-clinico .clinico-dist{margin-top:1.25rem}.estadisticas-clinico .clinico-dist:first-child{margin-top:.5rem}.estadisticas-clinico .clinico-dist-title{font-size:var(--font-size-small);color:var(--text-secondary);margin-bottom:.25rem;font-weight:600}.estadisticas-clinico .clinico-dist-denom{margin-top:.25rem}.estadisticas-clinico table td.num,.estadisticas-clinico table th.num{text-align:right;font-variant-numeric:tabular-nums}@media (max-width:640px){.estadisticas-clinico .clinico-scope-note{margin-left:0}.estadisticas-clinico .clinico-filter{min-width:100%}}.error-page-help>summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--space-2) 0;align-items:center;min-height:44px;display:flex}.image-unavailable{border:1px dashed var(--border-default);background:var(--surface-muted);min-width:4rem;min-height:4rem;color:var(--text-muted);text-align:center;border-radius:.25rem;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:.5rem;font-size:.6875rem;line-height:1.2;display:inline-flex}.image-unavailable-text{max-width:12rem}.teacher-usage-page{overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr);gap:1rem;width:100%;min-width:0;display:grid;container-type:inline-size}.teacher-usage-page>*{min-width:0}.teacher-usage-page .text-hint{white-space:normal}.teacher-usage-page h2{margin:0 0 .75rem;font-size:1rem}.teacher-usage-controls{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));align-items:end;gap:.75rem;display:grid}.teacher-usage-controls>label,.teacher-usage-limits>label,.teacher-usage-email-controls>label{gap:.3rem;min-width:0;font-size:.8125rem;display:grid}.teacher-usage-controls [data-slot=select-trigger]{white-space:normal;width:100%;min-width:0;height:auto;min-height:2.5rem}.teacher-usage-controls [data-slot=select-value]{min-width:0}.teacher-usage-limits{flex-wrap:wrap;grid-column:1/-1;align-items:end;gap:.75rem;display:flex}.teacher-usage-role-filter{border:0;flex-wrap:wrap;flex:18rem;align-items:center;gap:.5rem .75rem;min-width:0;margin:0;padding:0;display:flex}.teacher-usage-role-filter legend{margin-bottom:.25rem;font-weight:600}.teacher-usage-role-filter label{white-space:nowrap;align-items:center;gap:.35rem;min-height:2.5rem;display:inline-flex}.teacher-usage-limits>label{width:6.5rem;min-width:5.5rem}.teacher-usage-actions,.teacher-usage-email-controls{flex-wrap:wrap;align-items:end;gap:.5rem;display:flex}.teacher-usage-page button{white-space:normal;max-width:100%;height:auto;min-height:2.5rem}.teacher-usage-page input{min-width:0;max-width:100%}.teacher-usage-email-controls>label{width:min(100%,24rem)}.teacher-usage-notice{border-left:3px solid var(--warning-text);background:var(--warning-bg);padding:.6rem .75rem}.teacher-usage-summary{border-block:1px solid var(--border-default);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.teacher-usage-summary>div{gap:.1rem;padding:.6rem .75rem;display:grid}.teacher-usage-summary>div+div{border-left:1px solid var(--border-default)}.teacher-usage-summary strong{font-variant-numeric:tabular-nums;font-size:1.4rem}.teacher-usage-summary span{color:var(--text-muted);font-size:.75rem}.teacher-usage-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.teacher-usage-chart{border-top:1px solid var(--border-default);min-width:0;padding-top:.75rem}.teacher-usage-bar-row{grid-template-columns:minmax(6rem,10rem) minmax(0,1fr) 2.5rem;align-items:center;gap:.5rem;margin:.3rem 0;font-size:.75rem;display:grid}.teacher-usage-bar-name{overflow-wrap:anywhere;min-width:0}.teacher-usage-bar-track{background:var(--surface-muted);height:1rem}.teacher-usage-bar-fill{background:#287c88;height:100%}.teacher-usage-bar-row strong{text-align:right;font-variant-numeric:tabular-nums}.teacher-usage-share{grid-template-columns:minmax(7rem,11rem) minmax(0,1fr);align-items:center;gap:1rem;display:grid}.teacher-usage-share svg{width:100%;height:auto}.teacher-usage-share ul{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.teacher-usage-share li{grid-template-columns:.65rem minmax(0,1fr) auto;align-items:center;gap:.4rem;font-size:.75rem;display:grid}.teacher-usage-share li span:nth-child(2){overflow-wrap:anywhere}.teacher-usage-swatch{width:.65rem;height:.65rem}.teacher-usage-email{border-top:1px solid var(--border-default);padding-top:1rem}.teacher-usage-confirm{border:1px solid var(--border-default);overflow-wrap:anywhere;margin-top:.75rem;padding:.75rem}.teacher-usage-confirm button{margin-right:.5rem}.teacher-usage-table table{table-layout:fixed}.teacher-usage-table th,.teacher-usage-table td{white-space:normal;overflow-wrap:anywhere}.teacher-usage-table th:first-child{width:30%}.teacher-usage-table th{position:static}.teacher-usage-table th[tabindex]:focus-visible{outline:2px solid var(--text-primary);outline-offset:-2px}@container (max-width:40rem){.teacher-usage-charts{grid-template-columns:minmax(0,1fr)}.teacher-usage-table thead,.teacher-usage-table thead tr{flex-wrap:wrap;gap:.5rem;display:flex}.teacher-usage-table thead th{width:auto;padding:.5rem;font-size:.7rem}.teacher-usage-table table,.teacher-usage-table tbody,.teacher-usage-table tr{width:100%;display:block}.teacher-usage-table tr{border-bottom:1px solid var(--border-default);padding-block:.5rem}.teacher-usage-table td{border:0;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:.75rem;padding:.4rem 0;display:grid}.teacher-usage-table td:before{content:attr(data-label);color:var(--text-secondary);font-weight:600}.teacher-usage-table td[colspan]{display:block}.teacher-usage-table td[colspan]:before{content:none}}@container (max-width:24rem){.teacher-usage-chart .teacher-usage-share{grid-template-columns:minmax(0,1fr)}.teacher-usage-share svg{justify-self:center;max-width:9rem}.teacher-usage-summary{grid-template-columns:minmax(0,1fr)}.teacher-usage-summary>div+div{border-left:0;border-top:1px solid var(--border-default)}}@media (max-width:800px){.teacher-usage-charts{grid-template-columns:minmax(0,1fr)}.teacher-usage-summary strong{font-size:1.1rem}.teacher-usage-share{grid-template-columns:minmax(6rem,9rem) minmax(0,1fr)}}@media print{.teacher-usage-controls,.teacher-usage-actions,.teacher-usage-email,.app-sidebar,.mobile-header{display:none!important}.teacher-usage-page{color:#111}.teacher-usage-bar-fill,.teacher-usage-swatch{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
