.skeleton{background:linear-gradient(90deg,#f0f0f0,#e0e0e0 20%,#f0f0f0 40% 100%);background-size:200% 100%}.skeleton--shimmer{animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton--pulse{animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton--none{animation:none;background:#f0f0f0}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.authenticated-image-loading{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;width:100%;height:100%}.authenticated-image-error{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#fafafa;color:#888;font-size:.75rem;gap:.5rem;padding:.5rem;text-align:center}.authenticated-image-error__icon{font-size:1.25rem;opacity:.6}.authenticated-image-error__message{color:#888}.authenticated-image-error__retry{padding:.25rem .5rem;font-size:.7rem;background:#f0f0f0;border:1px solid #ddd;border-radius:3px;cursor:pointer;transition:background .2s ease}.authenticated-image-error__retry:hover{background:#e8e8e8}.skeleton-lesion-list{padding:1rem}.skeleton-lesion-list__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0}.skeleton-lesion-list__item{padding:1rem;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:.5rem}.skeleton-lesion-list__item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.skeleton-lesion-list__item-footer{display:flex;justify-content:space-between;margin-top:.5rem}.skeleton-timeline{padding:1rem;background:#fff;border-radius:8px}.skeleton-timeline__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0}.skeleton-timeline__group{margin-bottom:1.5rem;padding-left:2rem;position:relative}.skeleton-timeline__group:before{content:"";position:absolute;left:.5rem;top:0;bottom:0;width:2px;background:#e0e0e0}.skeleton-timeline__date{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;margin-left:-2rem}.skeleton-timeline__images{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.75rem}.skeleton-timeline__image{aspect-ratio:1;border-radius:8px;overflow:hidden}.skeleton-image-viewer{display:flex;min-height:400px;background:#fff;border-radius:8px;overflow:hidden}.skeleton-image-viewer__thumbnails{width:200px;padding:1rem;border-right:1px solid #e0e0e0;background:#fafafa}.skeleton-image-viewer__thumbnail-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.skeleton-image-viewer__thumbnail{aspect-ratio:1}.skeleton-image-viewer__main{flex:1;padding:1rem;display:flex;flex-direction:column;gap:1rem}.skeleton-image-viewer__info{display:flex;gap:1rem}.skeleton-image-card{position:relative;border-radius:8px;overflow:hidden}.skeleton-image-card__image{aspect-ratio:1}.skeleton-image-card__overlay{position:absolute;bottom:0;left:0;right:0;padding:.5rem;background:linear-gradient(transparent,#0006)}.skeleton--sized{width:var(--skeleton-w, 100%);height:var(--skeleton-h, 1rem);border-radius:var(--skeleton-radius, 0)}.authenticated-image--hidden{display:none}.ui-dialog__overlay{position:fixed;inset:0;background:#0f172aa6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop, 400)}.ui-dialog__overlay[data-state=open]{animation:ui-dialog-fade-in .12s ease-out}.ui-dialog__overlay[data-state=closed]{animation:ui-dialog-fade-out .12s ease-in}.ui-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(512px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto;background:var(--color-surface-elevated, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--border-radius-lg, 12px);box-shadow:var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1));padding:1.5rem;z-index:var(--z-modal, 500)}.ui-dialog[data-state=open]{animation:ui-dialog-zoom-in .12s ease-out}.ui-dialog[data-state=closed]{animation:ui-dialog-zoom-out .12s ease-in}@keyframes ui-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-dialog-fade-out{0%{opacity:1}to{opacity:0}}@keyframes ui-dialog-zoom-in{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes ui-dialog-zoom-out{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-48%) scale(.96)}}.ui-dialog__main{display:flex;align-items:flex-start;gap:1rem}.ui-dialog__icon{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:var(--border-radius-full, 9999px);background:var(--color-error-bg, #fee2e2);color:var(--color-error-hover, #dc2626)}.ui-dialog__body{flex:1 1 auto;min-width:0}.ui-dialog__title{margin:0;font-size:1.125rem;font-weight:600;color:var(--color-text-primary, #1f2937)}.ui-dialog__description{margin:.5rem 0 0;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.ui-dialog__field{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.ui-dialog__label{font-size:.875rem;font-weight:500;color:var(--color-text-strong, #374151)}.ui-dialog__input,.ui-dialog__textarea{width:100%;padding:.5rem .75rem;font-size:.95rem;color:var(--color-text-primary, #1f2937);background:var(--color-surface-elevated, #ffffff);border:1px solid var(--color-border-strong, #d1d5db);border-radius:var(--border-radius-md, 8px)}.ui-dialog__textarea{resize:vertical}.ui-dialog__input:focus,.ui-dialog__textarea:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 2px var(--color-primary-light, #eff6ff)}.ui-dialog__counter{margin:.25rem 0 0;font-size:.75rem;color:var(--color-text-tertiary, #9ca3af)}.ui-dialog__actions{display:flex;flex-direction:column-reverse;gap:.5rem;margin-top:1.5rem}@media(min-width:640px){.ui-dialog__actions{flex-direction:row;justify-content:flex-end}}.ui-dialog__btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:var(--border-radius-md, 8px);border:1px solid transparent;cursor:pointer;transition:background-color var(--transition-fast, .15s ease)}.ui-dialog__btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-surface-elevated, #fff),0 0 0 4px var(--color-primary, #3b82f6)}.ui-dialog__btn:disabled{pointer-events:none;opacity:.5}.ui-dialog__btn--secondary{background:var(--color-surface-elevated, #ffffff);border-color:var(--color-border-strong, #d1d5db);color:var(--color-text-strong, #374151)}.ui-dialog__btn--secondary:hover{background:var(--color-surface-hover, #f9fafb)}.ui-dialog__btn--primary{background:var(--color-primary, #3b82f6);color:var(--color-text-inverse, #ffffff)}.ui-dialog__btn--primary:hover:not(:disabled){background:var(--color-primary-hover, #2563eb)}.ui-dialog__btn--danger{background:var(--color-error, #ef4444);color:var(--color-text-inverse, #ffffff)}.ui-dialog__btn--danger:hover:not(:disabled){background:var(--color-error-hover, #dc2626)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--color-text-secondary, #6b7280)}.empty-state--block{padding:3rem 2rem;gap:.25rem}.empty-state--inline{padding:1.5rem 1rem;gap:.25rem}.empty-state__icon{width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center;font-size:2rem;background:var(--color-surface, #f3f4f6);border-radius:50%;margin-bottom:1.5rem;color:var(--color-text-tertiary, #9ca3af);box-shadow:inset 0 1px 3px #0000000a}.empty-state--inline .empty-state__icon{width:3rem;height:3rem;font-size:1.25rem;margin-bottom:.75rem}.empty-state__title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--color-text-primary, #1f2937)}.empty-state--inline .empty-state__title{font-size:1rem}.empty-state__description{margin:0 0 1.5rem;max-width:28rem;font-size:.875rem;line-height:1.5;color:var(--color-text-secondary, #6b7280)}.empty-state__action{margin-top:.5rem}:root[data-theme=dark] .empty-state__icon,.dark .empty-state__icon{background:var(--color-surface, #1f2937)}.searchable-select{position:relative;display:inline-block;min-width:180px}.searchable-select--disabled{opacity:.55;pointer-events:none}.searchable-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:.25rem;padding:.375rem .5rem;border:1px solid var(--border-color, #cbd5e0);border-radius:6px;background:var(--input-bg, #fff);cursor:pointer;font-size:.8125rem;line-height:1.4;min-height:2rem;transition:border-color .15s}.searchable-select--open .searchable-select__trigger{border-color:var(--primary-color, #3182ce);box-shadow:0 0 0 1px var(--primary-color, #3182ce)}.searchable-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-color, #2d3748)}.searchable-select__value--placeholder{color:var(--text-muted, #a0aec0)}.searchable-select__input{flex:1;border:none;outline:none;background:transparent;font-size:inherit;color:var(--text-color, #2d3748);padding:0;min-width:0}.searchable-select__input::placeholder{color:var(--text-muted, #a0aec0)}.searchable-select__icons{display:flex;align-items:center;gap:.125rem;flex-shrink:0}.searchable-select__clear{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;border:none;background:transparent;color:var(--text-muted, #a0aec0);cursor:pointer;font-size:.625rem;border-radius:50%;padding:0;line-height:1}.searchable-select__clear:hover{background:var(--bg-hover, #edf2f7);color:var(--text-color, #2d3748)}.searchable-select__chevron{font-size:.5rem;color:var(--text-muted, #a0aec0);line-height:1}.searchable-select__list{position:absolute;top:calc(100% + 2px);left:0;right:0;margin:0;padding:.25rem 0;list-style:none;background:var(--input-bg, #fff);border:1px solid var(--border-color, #cbd5e0);border-radius:6px;box-shadow:0 4px 12px #00000014;max-height:220px;overflow-y:auto;z-index:50}.searchable-select__option{display:flex;flex-direction:column;padding:.375rem .625rem;cursor:pointer;font-size:.8125rem;line-height:1.4;transition:background .1s}.searchable-select__option--highlighted{background:var(--bg-hover, #edf2f7)}.searchable-select__option--selected{font-weight:600;color:var(--primary-color, #3182ce)}.searchable-select__option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select__option-desc{font-size:.6875rem;color:var(--text-muted, #a0aec0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select__empty{padding:.5rem .625rem;color:var(--text-muted, #a0aec0);font-size:.8125rem;font-style:italic;text-align:center}.dropdown-menu-container{position:relative;display:inline-block}.dropdown-menu-trigger{display:inline-flex;align-items:center;gap:.25rem}.dropdown-menu-caret{font-size:.5rem;line-height:1}.dropdown-menu-list{position:absolute;top:calc(100% + 2px);right:0;margin:0;padding:.25rem 0;list-style:none;background:var(--input-bg, #fff);border:1px solid var(--border-color, #cbd5e0);border-radius:6px;box-shadow:0 4px 12px #0000001a;min-width:160px;z-index:50}.dropdown-menu-item{display:flex;align-items:center;gap:.5rem;padding:.4375rem .75rem;cursor:pointer;font-size:.8125rem;line-height:1.4;color:var(--text-color, #2d3748);white-space:nowrap;transition:background .1s}.dropdown-menu-item--highlighted{background:var(--bg-hover, #edf2f7)}.dropdown-menu-item--disabled{opacity:.45;pointer-events:none}.dropdown-menu-item-icon{flex-shrink:0;font-size:.875rem}.info-tooltip-container{position:relative;display:inline-flex}.info-tooltip-trigger{display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;border-radius:50%;cursor:pointer;color:#9ca3af;transition:color .15s,background-color .15s}.info-tooltip-trigger:hover{color:#6366f1;background:#6366f11a}.info-tooltip-icon{width:1.125rem;height:1.125rem}.info-tooltip-panel{position:absolute;z-index:50;width:280px;background:#fff;border-radius:.75rem;box-shadow:0 10px 25px -5px #00000026,0 8px 10px -6px #0000001a;border:1px solid #e5e7eb;overflow:hidden}.dark .info-tooltip-panel{background:#1f2937;border-color:#374151}.info-tooltip-panel--top{bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)}.info-tooltip-panel--bottom{top:calc(100% + .5rem);left:50%;transform:translate(-50%)}.info-tooltip-panel--left{right:calc(100% + .5rem);top:50%;transform:translateY(-50%)}.info-tooltip-panel--right{left:calc(100% + .5rem);top:50%;transform:translateY(-50%)}.info-tooltip-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;background:linear-gradient(to right,rgba(99,102,241,.05),transparent)}.dark .info-tooltip-header{border-bottom-color:#374151;background:linear-gradient(to right,rgba(99,102,241,.1),transparent)}.info-tooltip-title{font-size:.875rem;font-weight:600;color:#111827}.dark .info-tooltip-title{color:#f9fafb}.info-tooltip-close{display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;border-radius:.375rem;cursor:pointer;color:#9ca3af;transition:color .15s,background-color .15s}.info-tooltip-close:hover{color:#374151;background:#f3f4f6}.dark .info-tooltip-close:hover{color:#d1d5db;background:#374151}.info-tooltip-steps{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;margin:0;list-style:none}.info-tooltip-step{display:flex;align-items:flex-start;gap:.75rem}.info-tooltip-step-number{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;flex-shrink:0;font-size:.75rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:50%}.info-tooltip-step-content{display:flex;flex-direction:column;gap:.125rem;padding-top:.125rem}.info-tooltip-step-title{font-size:.8125rem;font-weight:500;color:#374151}.dark .info-tooltip-step-title{color:#d1d5db}.info-tooltip-step-desc{font-size:.75rem;color:#6b7280}.dark .info-tooltip-step-desc{color:#9ca3af}.info-tooltip-content{padding:.75rem 1rem;font-size:.8125rem;color:#4b5563;line-height:1.5}.dark .info-tooltip-content{color:#9ca3af}.error-fallback{margin:1rem 0;padding:1.25rem 1.5rem;border:1px solid var(--color-error-bg, #fee2e2);background:var(--color-error-light, #fef2f2);border-radius:var(--border-radius-lg, 12px);color:var(--color-error-text, #991b1b)}.error-fallback__title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600}.error-fallback__message{margin:0 0 1rem;font-size:.875rem;opacity:.9}.error-fallback__retry{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--color-text-inverse, #ffffff);background:var(--color-error-hover, #dc2626);border:1px solid transparent;border-radius:var(--border-radius-md, 8px);cursor:pointer;transition:background-color var(--transition-fast, .15s ease)}.error-fallback__retry:hover{background:var(--color-error-text, #991b1b)}.error-fallback__retry:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-error-light, #fef2f2),0 0 0 4px var(--color-error, #ef4444)}.error-fallback__details{margin-top:1rem}.error-fallback__summary{cursor:pointer;font-size:.875rem;font-weight:500;color:var(--color-error-text, #991b1b)}.error-fallback__pre{margin-top:.5rem;padding:.5rem;background:var(--color-error-bg, #fee2e2);border-radius:var(--border-radius-sm, 4px);font-size:.75rem;overflow:auto;max-height:10rem;white-space:pre-wrap;word-break:break-word}.update-banner{position:sticky;top:0;z-index:1100;background:var(--color-info-50, #eff6ff);border-bottom:1px solid var(--color-info-200, #bfdbfe);color:var(--color-info-900, #1e3a8a)}.update-banner__inner{display:flex;align-items:center;gap:.75rem;max-width:80rem;margin:0 auto;padding:.5rem 1rem}.update-banner__icon{flex:0 0 auto;width:1.125rem;height:1.125rem}.update-banner__message{flex:1 1 auto;font-size:.875rem;line-height:1.4}.update-banner__actions{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.update-banner__btn{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border:1px solid transparent;padding:.375rem .75rem;font-size:.8125rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.update-banner__btn--primary{background:var(--color-info-600, #2563eb);color:#fff}.update-banner__btn--primary:hover{background:var(--color-info-700, #1d4ed8)}.update-banner__btn--primary:focus-visible{outline:2px solid var(--color-info-300, #93c5fd);outline-offset:2px}.update-banner__btn--secondary{background:transparent;color:var(--color-info-900, #1e3a8a);padding:.25rem;border-color:transparent}.update-banner__btn--secondary:hover{background:var(--color-info-100, #dbeafe)}.update-banner__btn--secondary:focus-visible{outline:2px solid var(--color-info-300, #93c5fd);outline-offset:2px}[data-theme=dark] .update-banner{background:var(--color-info-950, #172554);border-bottom-color:var(--color-info-800, #1e40af);color:var(--color-info-100, #dbeafe)}[data-theme=dark] .update-banner__btn--secondary{color:var(--color-info-100, #dbeafe)}
