:root{--color-background: #122E56;--color-accent: #F10063;--color-background-light: #1a4275;--color-background-dark: #0d1f3a;--color-accent-hover: #c7004f;--color-accent-light: #ff1a77;--color-text-primary: #ffffff;--color-text-secondary: #b8c5d6;--color-text-muted: #7a8ca3;--color-border: #2a4a78;--color-border-active: var(--color-accent);--color-overlay: rgba(18, 46, 86, .95);--color-success: #00e676;--color-warning: #ffd600;--color-error: #ff1744;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--touch-target-min: 44px;--touch-target-comfortable: 56px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--z-base: 1;--z-overlay: 10;--z-toolbar: 100;--z-modal: 1000;--z-tooltip: 2000}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text-primary)}#root{width:100%;height:100%}button{background:none;border:none;cursor:pointer;font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}html{overscroll-behavior:none}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.selectable-text{-webkit-user-select:text;user-select:text}.touch-target{min-width:var(--touch-target-min);min-height:var(--touch-target-min);display:inline-flex;align-items:center;justify-content:center}.touch-target-comfortable{min-width:var(--touch-target-comfortable);min-height:var(--touch-target-comfortable)}*{-webkit-tap-highlight-color:transparent}.tap-highlight{position:relative}.tap-highlight:after{content:"";position:absolute;inset:0;background-color:var(--color-accent);opacity:0;border-radius:inherit;transition:opacity var(--transition-fast);pointer-events:none}.tap-highlight:active:after{opacity:.1}@supports (padding: env(safe-area-inset-bottom)){.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-left{padding-left:env(safe-area-inset-left)}.safe-area-right{padding-right:env(safe-area-inset-right)}}input,select,textarea{font-size:16px}.smooth-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}.spinner{animation:spin 1s linear infinite;will-change:transform}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(orientation:landscape){.landscape-hide{display:none}}@media(orientation:portrait){.portrait-hide{display:none}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.dicom-viewer{position:relative;width:100%;height:100%;min-height:400px;background-color:var(--color-background-dark);overflow:hidden}.viewport-element{position:absolute;top:0;left:0;width:100%;height:100%;min-height:400px;touch-action:none;-webkit-user-select:none;user-select:none;transform:translateZ(0);will-change:transform}.viewport-element canvas{width:100%!important;height:100%!important;display:block}.viewer-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-overlay);color:var(--color-text-primary);z-index:var(--z-overlay);padding:var(--spacing-lg);text-align:center}.viewer-overlay p{margin:var(--spacing-sm) 0;font-size:16px}.viewer-overlay .text-secondary{color:var(--color-text-secondary);font-size:14px}.viewer-overlay.error{background-color:#ff17441a;border:2px solid var(--color-error)}.viewer-overlay.error p{color:var(--color-error)}.spinner{width:48px;height:48px;border:4px solid var(--color-border);border-top-color:var(--color-accent);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}.viewer-overlay-scroll{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#00000080;pointer-events:none;z-index:10}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.viewer-overlay p{font-size:14px}.spinner{width:40px;height:40px;border-width:3px}}.top-toolbar{position:fixed;top:0;left:0;right:0;height:48px;background-color:#122e56;display:flex;align-items:center;justify-content:space-between;gap:0;padding:4px 8px;z-index:1000;box-shadow:none}.toolbar-logo{display:flex;align-items:center;justify-content:center;width:41px;height:40px;flex-shrink:0}.toolbar-logo img{width:100%;height:100%;object-fit:contain}.toolbar-center-group{display:flex;align-items:center;gap:13.3px;position:absolute;left:50%;transform:translate(-50%)}.toolbar-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:transparent;border:none;border-radius:6px;cursor:pointer;transition:background-color .15s ease;padding:6px;flex-shrink:0}.toolbar-button svg{width:100%;height:100%}.toolbar-button img{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1)}.toolbar-button:hover:not(:disabled){background-color:#ffffff0d}.toolbar-button.active{background-color:#f10063;border-radius:6px}.toolbar-button.active img,.toolbar-button.active svg{filter:brightness(0) invert(1)}.toolbar-button:disabled{opacity:.3;cursor:not-allowed}.toolbar-button:active:not(:disabled){transform:scale(.96)}.toolbar-button.series-active{background-color:#ffffff14;border:2px solid #f10063;transform:scale(.94);box-shadow:inset 0 2px 4px #0000004d}.toolbar-button.series-active:hover{background-color:#ffffff1f;border:2px solid #f10063}.toolbar-button.series-active img{filter:brightness(0) invert(1)}.toolbar-button-pan{padding:2px}.toolbar-button-pan img{width:80%!important;height:80%!important}.toolbar-spacer{flex:1}.toolbar-close{flex-shrink:0;z-index:1}.toolbar-close img{filter:brightness(0) saturate(100%) invert(48%) sepia(79%) saturate(2476%) hue-rotate(314deg) brightness(99%) contrast(97%)}@media(max-width:768px){.top-toolbar{height:48px;padding:4px 8px;gap:10px}.toolbar-logo{width:40px;height:38px}.toolbar-button{width:38px;height:38px}.toolbar-button img,.toolbar-button svg{width:26px;height:26px}}@media(max-width:480px){.top-toolbar{height:48px;padding:4px 6px;gap:8px}.toolbar-logo{width:38px;height:36px}.toolbar-button{width:36px;height:36px}.toolbar-button img,.toolbar-button svg{width:24px;height:24px}}.window-level-overlay{position:absolute;inset:0;pointer-events:none;z-index:var(--z-overlay);padding:var(--spacing-md)}.overlay-section{position:absolute;display:flex;flex-direction:column;gap:var(--spacing-xs);background-color:#122e56cc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.1)}.overlay-section.top-left{top:var(--spacing-md);left:var(--spacing-md)}.overlay-section.top-right{top:var(--spacing-md);right:var(--spacing-md)}.overlay-section.bottom-left{bottom:calc(var(--spacing-md) + 80px);left:var(--spacing-md);background-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border:none;padding:0}.overlay-item{display:flex;align-items:baseline;gap:var(--spacing-sm);font-size:14px;line-height:1.4}.overlay-item .label{color:var(--color-text-secondary);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.overlay-item .value{color:var(--color-text-primary);font-weight:600;font-family:Courier New,monospace;font-size:14px}.hint-text{color:var(--color-text-muted);font-size:12px;font-style:italic;opacity:.7}.overlay-section{animation:fadeIn var(--transition-normal)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@supports (padding: env(safe-area-inset-top)){.overlay-section.top-left,.overlay-section.top-right{top:calc(var(--spacing-md) + env(safe-area-inset-top))}.overlay-section.bottom-left{bottom:calc(var(--spacing-md) + 80px + env(safe-area-inset-bottom))}}@media(max-width:768px){.window-level-overlay{padding:var(--spacing-sm)}.overlay-section{padding:var(--spacing-xs) var(--spacing-sm)}.overlay-item{font-size:12px}.overlay-item .label{font-size:11px}.overlay-item .value{font-size:13px}.hint-text{font-size:11px}}@media(orientation:landscape)and (max-height:500px){.overlay-section{padding:4px var(--spacing-sm);gap:2px}.overlay-item{font-size:11px}.hint-text{font-size:10px}.overlay-section.bottom-left{bottom:calc(var(--spacing-sm) + 60px)}}.series-selector{position:fixed;inset:48px 0 0;z-index:999;background-color:#0f1823;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.study-info-header{position:sticky;top:0;z-index:1;background-color:#122e56;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:4px}.study-patient-name{font-size:16px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.study-meta{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.study-date{font-size:12px;font-weight:600;color:#fff;white-space:nowrap}.study-description{font-size:11px;font-weight:400;color:#8fb8e8;text-transform:uppercase;letter-spacing:.5px}.thumbnail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:12px}.thumbnail-item{width:100%;background-color:#1a2332;border:2px solid transparent;border-radius:6px;padding:6px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease;text-align:left;font-family:inherit}.thumbnail-item:hover{border-color:#ffffff4d}.thumbnail-item.active{border-color:#ec4899;background-color:#1a2332}.thumbnail-placeholder{width:100%;aspect-ratio:1;background-color:#000;border-radius:4px;overflow:hidden;margin-bottom:6px}.thumbnail-info{display:flex;flex-direction:column;gap:3px;padding:2px 4px}.thumbnail-label{font-size:11px;font-weight:700;color:#fff;background-color:#ec4899;padding:2px 6px;border-radius:2px;text-align:center;text-transform:uppercase;align-self:flex-start}.thumbnail-count{font-size:10px;color:#8fb8e8;text-align:left;font-weight:500}@media(max-width:768px){.study-info-header{padding:10px 14px}.study-patient-name{font-size:15px}.thumbnail-grid{gap:10px;padding:10px}}@media(max-width:480px){.study-info-header{padding:8px 12px}.study-patient-name{font-size:14px}.study-date{font-size:11px}.study-description{font-size:10px}.thumbnail-grid{gap:8px;padding:8px}}.app{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--color-background);position:relative;overflow:hidden}.viewer-container{flex:1;position:relative;overflow:hidden;margin-top:108px;margin-bottom:0;background-color:#000}.app-loading{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-background);color:var(--color-text-primary);gap:var(--spacing-lg)}.app-loading p{font-size:16px;color:var(--color-text-secondary);margin:0;text-align:center;max-width:80%}.app-loading-slow-hint{font-size:13px!important;color:var(--color-text-secondary);opacity:.7;margin-top:var(--spacing-sm)!important}.app-loading-bar{width:min(280px,70%);height:6px;background-color:#ffffff1a;border-radius:3px;overflow:hidden}.app-loading-bar-fill{height:100%;background-color:var(--color-text-primary);transition:width .3s ease-out;border-radius:3px}.app-error{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--color-background);padding:var(--spacing-xl)}.error-content{max-width:400px;text-align:center;background-color:var(--color-background-light);border:2px solid var(--color-error);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.error-content h1{font-size:24px;color:var(--color-error);margin-bottom:var(--spacing-md)}.error-content p{font-size:14px;color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);line-height:1.6}.error-content button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);min-height:var(--touch-target-min)}.error-content button:hover{background-color:var(--color-accent-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.error-content button:active{transform:translateY(0)}@media(max-width:768px){.viewer-container{margin-top:50px}.error-content{max-width:90%;padding:var(--spacing-lg)}.error-content h1{font-size:20px}.error-content p{font-size:13px}}@media(orientation:landscape)and (max-height:500px){.viewer-container{margin-top:45px}.app-loading p{font-size:14px}}@media(prefers-contrast:high){.app{border:2px solid var(--color-text-primary)}.error-content{border-width:3px}}
