.document-upload{padding:var(--spacing-lg);border:2px dashed var(--primary-lighter);border-radius:12px;text-align:center;background:linear-gradient(135deg,#1976d205,#00acc105);transition:all var(--transition-normal);cursor:pointer;position:relative;overflow:hidden}.document-upload:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(25,118,210,.05) 0%,transparent 70%);pointer-events:none}.document-upload:hover:not(.drag-over){border-color:var(--accent-light);background:linear-gradient(135deg,#00acc10d,#00acc105)}.document-upload.drag-over{background:linear-gradient(135deg,#1976d214,#00acc114);border-color:var(--accent);box-shadow:var(--shadow-md);transform:scale(1.01)}.upload-button{background:linear-gradient(135deg,var(--primary-lighter) 0%,var(--primary-light) 100%);color:#fff;border:none;padding:12px 20px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;transition:all var(--transition-normal);width:100%;box-shadow:var(--shadow-sm);position:relative;z-index:1}.upload-button:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-light) 0%,var(--primary) 100%);box-shadow:var(--shadow-md);transform:translateY(-2px)}.upload-button:active:not(:disabled){transform:translateY(0)}.upload-button:disabled{opacity:.6;cursor:not-allowed}.upload-hint{font-size:12px;color:var(--text-light);margin-top:var(--spacing-md);margin-bottom:0;position:relative;z-index:1;font-weight:400}:root{--primary: #0d47a1;--primary-light: #1565c0;--primary-lighter: #1976d2;--accent: #00897b;--accent-light: #00acc1;--bg-primary: #fafbfc;--bg-secondary: #ffffff;--border-color: #e0e4e8;--text-primary: #24292e;--text-secondary: #6a737d;--text-light: #8b949e;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--spacing-md: 16px;--spacing-lg: 24px;--transition-normal: .3s ease-in-out}.chat-box{padding:var(--spacing-lg);border-top:1px solid var(--border-color);background:linear-gradient(180deg,white 0%,var(--bg-primary) 100%);flex-shrink:0}.input-container{display:flex;gap:var(--spacing-md);align-items:flex-end;max-width:100%}.input-container textarea{flex:1;padding:var(--spacing-md);border:2px solid var(--border-color);border-radius:10px;font-family:inherit;font-size:14px;resize:none;max-height:140px;min-height:48px;transition:all var(--transition-normal);background:#fff;color:var(--text-primary);line-height:1.5}.input-container textarea::placeholder{color:var(--text-light);font-size:13px}.input-container textarea:focus{outline:none;border-color:var(--primary-lighter);box-shadow:0 0 0 3px #1976d21a;background:#fff}.input-container textarea:hover:not(:focus):not(:disabled){border-color:var(--accent-light)}.input-container textarea:disabled{background:var(--bg-primary);color:var(--text-light);cursor:not-allowed;opacity:.7}.send-button{padding:12px 24px;background:linear-gradient(135deg,var(--primary-lighter) 0%,var(--primary-light) 100%);color:#fff;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:500;transition:all var(--transition-normal);white-space:nowrap;box-shadow:var(--shadow-sm);flex-shrink:0;min-width:52px;display:flex;align-items:center;justify-content:center;height:48px;letter-spacing:.2px}.send-button:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-light) 0%,var(--primary) 100%);box-shadow:var(--shadow-md);transform:translateY(-2px)}.send-button:active:not(:disabled){transform:translateY(0)}.send-button:disabled{opacity:.5;cursor:not-allowed}:root{--primary: #0d47a1;--primary-light: #1565c0;--primary-lighter: #1976d2;--accent: #00897b;--accent-light: #00acc1;--bg-primary: #fafbfc;--bg-secondary: #ffffff;--border-color: #e0e4e8;--text-primary: #24292e;--text-secondary: #6a737d;--text-light: #8b949e;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--transition-normal: .3s ease-in-out}.message-list{flex:1;overflow-y:auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);background:linear-gradient(180deg,var(--bg-secondary) 0%,#fafbfc 100%)}.message-list::-webkit-scrollbar{width:8px}.message-list::-webkit-scrollbar-track{background:transparent}.message-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.message-list::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:var(--spacing-md)}.empty-state h2{font-size:28px;margin:0;color:var(--text-primary);font-weight:600}.empty-state p{font-size:14px;max-width:320px;color:var(--text-secondary);line-height:1.6;margin:0}.message{display:flex;animation:slideIn var(--transition-normal);align-items:flex-end}@keyframes slideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.message-user{justify-content:flex-end}.message-assistant,.message-loading{justify-content:flex-start}.message-content{display:flex;gap:var(--spacing-md);align-items:flex-start;max-width:75%;padding:var(--spacing-md) var(--spacing-lg);border-radius:12px;line-height:1.6;word-wrap:break-word;box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.message-user .message-content{background:linear-gradient(135deg,var(--primary-lighter) 0%,var(--primary-light) 100%);color:#fff;border-radius:18px 18px 2px;justify-content:flex-end}.message-user .message-content:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.message-assistant .message-content{background:linear-gradient(135deg,var(--bg-primary) 0%,#f0f2f5 100%);color:var(--text-primary);border-radius:18px 18px 18px 2px;border:1px solid var(--border-color)}.message-assistant .message-content:hover{border-color:var(--accent-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.message-loading .message-content{background:linear-gradient(135deg,#fef8e7,#fff9c4);color:#f57f17;border-radius:18px 18px 18px 2px;border:1px solid #ffe082;font-style:italic}.message-loading .message-content:after{content:"";display:inline-block;width:4px;height:4px;background:currentColor;border-radius:50%;margin-left:4px;animation:pulse 1.4s infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.message-content p{margin:0;font-size:14px;font-weight:400}.icon{font-size:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;line-height:1}@media(max-width:1024px){.message-content{max-width:80%}}@media(max-width:768px){.message-list{padding:var(--spacing-lg) var(--spacing-md);gap:var(--spacing-md)}.empty-state h2{font-size:22px}.empty-state p{font-size:13px;max-width:280px}.message-content{max-width:85%;padding:var(--spacing-md) var(--spacing-lg)}.icon{font-size:16px}.message-content p{font-size:13px}}.streaming-response{display:flex;flex-direction:column;gap:16px;padding:20px;background:#f8f9fa;border-radius:8px;border-left:4px solid #007bff}.response-status{display:flex;align-items:center;gap:8px;font-weight:500;color:#495057}.status-icon{font-size:20px}.spinner-mini{width:12px;height:12px;border:2px solid #ddd;border-top-color:#007bff;border-radius:50%;animation:spin .8s linear infinite}.progress-bar{width:100%;height:4px;background:#e9ecef;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#007bff,#0056b3);transition:width .3s ease}.response-content{padding:16px;background:#fff;border-radius:4px;border:1px solid #dee2e6;min-height:100px;max-height:600px;overflow-y:auto;line-height:1.6;color:#212529;font-size:14px}.placeholder{color:#6c757d;font-style:italic;margin:0}.cursor-blink{animation:blink 1s infinite;color:#007bff;font-weight:700}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.response-metadata{padding:12px;background:#e7f3ff;border-radius:4px;border-left:3px solid #0056b3}.metadata-item{display:flex;justify-content:space-between;margin-bottom:8px;font-size:13px}.metadata-item .label{font-weight:600;color:#0056b3}.metadata-item .value{color:#495057}.validation-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.val-item{display:flex;justify-content:space-between;font-size:12px}.checkpoints-info{padding:12px;background:#f0f7ff;border-radius:4px;border-left:3px solid #17a2b8}.checkpoints-title{margin:0 0 8px;font-size:13px;font-weight:600;color:#17a2b8}.checkpoints-list{list-style:none;padding:0;margin:0}.checkpoint-item{font-size:12px;color:#495057;padding:4px 0;word-break:break-all;font-family:monospace}.response-error{padding:12px;background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;border-left:3px solid #dc3545}.error-title{margin:0 0 4px;font-weight:600;color:#721c24;font-size:13px}.error-message{margin:0;color:#721c24;font-size:13px}.response-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.btn-copy,.btn-download,.btn-print{background:#007bff;color:#fff}.btn-copy:hover,.btn-download:hover,.btn-print:hover{background:#0056b3;transform:translateY(-2px);box-shadow:0 2px 8px #0056b34d}.credit-info{padding:12px;border-radius:4px;border-left:3px solid #28a745;background:#d4edda;display:flex;gap:12px;align-items:flex-start}.credit-info.warning{border-left-color:#ffc107;background:#fff3cd}.credit-icon{font-size:18px;flex-shrink:0}.credit-details{flex:1}.credit-details p{margin:4px 0;font-size:13px;color:#155724}.credit-info.warning .credit-details p{color:#856404}.credit-before{font-weight:600;color:#28a745}.credit-after{font-weight:600;color:#dc3545}.credit-debit{font-size:12px;color:#dc3545;margin-top:4px!important}.credit-warning{margin:8px 0 0!important;font-size:12px;font-weight:600;color:#ff6b6b;padding:8px;background:#ff6b6b1a;border-radius:2px}:root{--primary: #0d47a1;--primary-light: #1565c0;--primary-lighter: #1976d2;--accent: #00897b;--accent-light: #00acc1;--bg-primary: #fafbfc;--bg-secondary: #ffffff;--border-color: #e0e4e8;--text-primary: #24292e;--text-secondary: #6a737d;--text-light: #8b949e;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--transition-fast: .15s ease-in-out;--transition-normal: .3s ease-in-out}*{box-sizing:border-box}.defense-terminal{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}.terminal-header{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;padding:var(--spacing-lg);box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1440px;margin:0 auto;width:100%;gap:var(--spacing-lg)}.header-content h1{font-size:32px;font-weight:700;margin:0;letter-spacing:-.5px;flex:0 0 auto}.terminal-version{font-size:11px;font-weight:500;color:#ffffffb3;margin:4px 0 0;letter-spacing:.3px}.header-info{display:flex;gap:var(--spacing-xl);align-items:center;flex:1;justify-content:flex-end}.user-name,.credits{font-size:13px;font-weight:500;opacity:.92;letter-spacing:.3px;display:flex;align-items:center;gap:var(--spacing-xs)}.credits{background:#ffffff26;padding:var(--spacing-xs) var(--spacing-md);border-radius:20px;backdrop-filter:blur(10px)}.terminal-container{display:flex;flex:1;overflow:hidden;max-width:1440px;margin:0 auto;width:100%;gap:1px;background:var(--border-color)}.terminal-sidebar{width:320px;background:var(--bg-secondary);padding:var(--spacing-xl);overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column;gap:var(--spacing-lg)}.terminal-sidebar::-webkit-scrollbar{width:6px}.terminal-sidebar::-webkit-scrollbar-track{background:transparent}.terminal-sidebar::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.terminal-sidebar::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.documents-list{display:flex;flex-direction:column;gap:var(--spacing-md);flex:1}.documents-list h3{font-size:11px;color:var(--text-light);margin:0;text-transform:uppercase;letter-spacing:1px;font-weight:600;padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.documents-list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.documents-list li{padding:var(--spacing-sm) var(--spacing-md);font-size:13px;color:var(--text-primary);background:var(--bg-primary);border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:all var(--transition-fast);border:1px solid transparent}.documents-list li:hover{background:linear-gradient(135deg,#00877b0d,#00acc10d);border-color:var(--accent-light);color:var(--accent-dark, #00695c)}.terminal-main{flex:1;display:flex;flex-direction:column;background:var(--bg-secondary);overflow:hidden}@media(max-width:1024px){.terminal-container{flex-direction:column;gap:0}.terminal-sidebar{width:100%;flex-direction:row;padding:var(--spacing-lg);max-height:120px;border-bottom:1px solid var(--border-color)}.documents-list{flex-direction:row;flex:1;overflow-x:auto}.documents-list h3{padding-top:0;border-top:none;padding-right:var(--spacing-md);border-right:1px solid var(--border-color);flex-shrink:0}.documents-list ul{flex-direction:row;gap:var(--spacing-md);overflow-x:auto}.documents-list li{flex-shrink:0;white-space:nowrap}}@media(max-width:768px){.header-content{flex-direction:column;gap:var(--spacing-md)}.header-content h1{font-size:24px}.header-info{width:100%;justify-content:center;gap:var(--spacing-md)}.terminal-sidebar{width:100%;padding:var(--spacing-lg);flex-direction:column;gap:var(--spacing-md);max-height:auto}.documents-list{flex-direction:column;gap:var(--spacing-xs)}.documents-list h3{padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.documents-list ul{flex-direction:column;gap:var(--spacing-xs)}}:root{--primary: #2563eb;--primary-light: #3b82f6;--secondary: #8b5cf6;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--neutral-50: #f9fafb;--neutral-100: #f3f4f6;--neutral-200: #e5e7eb;--neutral-300: #d1d5db;--neutral-600: #4b5563;--neutral-800: #1f2937;--neutral-900: #111827;--surface: #ffffff}.dicom-page{min-height:100vh;padding:32px 28px 48px;background:linear-gradient(135deg,#f0f4f8,#e2e8f0);color:var(--neutral-800);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.dicom-hero{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;margin-bottom:32px}.dicom-hero-copy{padding:24px 28px;background:var(--surface);border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 2px 8px #0000000a;transition:all .3s ease}.dicom-hero-copy:hover{box-shadow:0 8px 20px #00000014}.dicom-hero-copy h1{margin:0 0 12px;font-size:clamp(28px,5vw,42px);line-height:1.1;letter-spacing:-.02em;color:var(--neutral-900);font-weight:700}.dicom-hero-meta{display:grid;gap:6px;margin:0}.dicom-hero-meta strong{font-size:15px;color:var(--primary);font-weight:600}.dicom-hero-meta span{color:var(--neutral-600);font-size:13px;text-transform:uppercase;letter-spacing:.08em}.dicom-hero-card{padding:16px;background:var(--surface);border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 2px 8px #0000000a;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(120px,1fr))}.dicom-action-btn{padding:12px 16px;border:1px solid #e5e7eb;border-radius:10px;background:var(--surface);color:var(--neutral-800);font:inherit;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.dicom-action-btn:hover:not(:disabled){border-color:var(--primary);background:linear-gradient(135deg,#eff6ff,#f0f9ff);color:var(--primary);box-shadow:0 4px 12px #2563eb26;transform:translateY(-2px)}.dicom-action-btn:active:not(:disabled){transform:translateY(0)}.dicom-action-btn:disabled{opacity:.5;cursor:not-allowed}.dicom-action-btn-cd{border-color:#f59e0b;color:#92400e}.dicom-action-btn-cd:hover:not(:disabled){border-color:var(--warning);background:linear-gradient(135deg,#fffbeb,#fef3c7);color:#92400e;box-shadow:0 4px 12px #f59e0b26}.dicom-hidden-input{display:none}.dicom-alert{margin-bottom:20px;padding:14px 16px;border-radius:10px;border-left:4px solid var(--error);background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#991b1b;font-size:14px;line-height:1.5;animation:slideIn .3s ease}.dicom-alert-error{border-left-color:var(--error);background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#991b1b}.dicom-alert strong{font-weight:600}.dicom-progress-bar{margin-bottom:20px;padding:20px;border-radius:12px;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #86efac;box-shadow:0 4px 12px #10b9811a;animation:slideIn .3s ease}.progress-content{display:flex;flex-direction:column;gap:12px}.progress-steps{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffffb3;border-radius:8px;backdrop-filter:blur(4px)}.progress-step{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#166534;transition:all .3s ease}.progress-step.completed{color:#15803d;font-weight:600}.step-number{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:6px;font-weight:700;font-size:14px}.progress-step.completed .step-number{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px #10b9814d}.step-label{display:flex;align-items:center;gap:4px}.progress-divider{width:2px;height:32px;background:linear-gradient(180deg,transparent 0%,#10b981 50%,transparent 100%)}.progress-status{font-size:13px;color:#166534;font-weight:500;padding:0 4px;display:flex;align-items:center;gap:6px}.progress-status:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#10b981;animation:pulse 1.5s ease-in-out infinite}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dicom-dropzone{margin-bottom:24px;padding:32px 24px;border:2px dashed var(--primary);border-radius:14px;background:linear-gradient(135deg,#eff6ff,#f0f9ff);display:grid;gap:8px;text-align:center;transition:all .3s ease;cursor:pointer}.dicom-dropzone strong{font-size:15px;font-weight:600;color:var(--primary);letter-spacing:.05em;text-transform:uppercase}.dicom-dropzone span{font-size:13px;color:var(--neutral-600)}.dicom-dropzone-active{border-color:var(--secondary);background:linear-gradient(135deg,#f5f3ff,#ede9fe);box-shadow:0 8px 24px #8b5cf626;transform:scale(1.01)}.dicom-progress-panel{margin-bottom:20px;padding:16px;background:var(--surface);border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #0000000a}.dicom-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:14px;font-weight:600;color:var(--neutral-800)}.dicom-progress-head span{color:var(--neutral-600);font-size:12px;font-weight:500}.dicom-progress-bar{height:8px;border-radius:10px;background:var(--neutral-200);overflow:hidden}.dicom-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary) 0%,var(--secondary) 100%);position:relative;overflow:hidden;transition:width .3s ease}.dicom-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.dicom-workspace{display:grid;grid-template-columns:300px 1fr 340px;gap:20px;align-items:start}.dicom-sidebar,.dicom-upload-panel{position:sticky;top:24px;z-index:10}.dicom-mainstage{display:grid;gap:24px}.dicom-series-panel{background:var(--surface);border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 2px 8px #0000000a;padding:16px}.dicom-series-panel-sidebar{min-height:600px;display:grid;grid-template-rows:auto auto 1fr}.dicom-series-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:2px solid #f3f4f6}.dicom-series-head h2{margin:0;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--neutral-900)}.dicom-series-head span{font-size:12px;color:var(--neutral-600)}.dicom-series-recommendation{margin-bottom:12px;padding:12px 14px;background:linear-gradient(135deg,#f0fdf4,#dbeafe);border:1px solid var(--success);border-radius:10px;border-left:4px solid var(--success)}.dicom-series-recommendation strong{display:block;font-size:13px;color:#166534;margin-bottom:4px}.dicom-series-recommendation span{display:block;font-size:12px;color:#4d7c0f;line-height:1.4}.dicom-series-list{display:grid;gap:2px;max-height:500px;overflow-y:auto;padding:4px 0;margin:0 -4px}.dicom-series-list::-webkit-scrollbar{width:7px}.dicom-series-list::-webkit-scrollbar-track{background:transparent}.dicom-series-list::-webkit-scrollbar-thumb{background:#0003;border-radius:3.5px}.dicom-series-list::-webkit-scrollbar-thumb:hover{background:#00000059}.dicom-series-item{display:flex;align-items:flex-start;gap:10px;padding:8px;margin:0 4px;border:none;border-radius:6px;background:transparent;cursor:pointer;transition:background-color .15s ease}.dicom-series-item:hover{background:#0000000d}.dicom-series-item input{margin-top:3px;accent-color:var(--primary);cursor:pointer}.dicom-series-item strong{display:block;font-size:13px;font-weight:500;color:var(--neutral-900);line-height:1.3}.dicom-series-item span{display:block;margin-top:2px;font-size:11px;color:var(--neutral-600);line-height:1.4}.dicom-series-item-copy{min-width:0;flex:1}.dicom-series-item-title{margin-bottom:3px}.dicom-series-item-subtitle{margin-top:0;margin-bottom:4px;font-size:12px;font-weight:600;color:#1f3f5b;line-height:1.35}.dicom-series-item-meta{color:#6b7280}.dicom-series-item-description{color:#94a3b8;font-style:italic}.dicom-series-item-active{border:none;background:#e3f2fd;border-radius:6px}.dicom-series-item-active strong{color:var(--primary);font-weight:600}.dicom-series-item-active span{color:var(--neutral-800)}.dicom-series-item-active .dicom-series-item-subtitle{color:#0f4c81}.dicom-series-item-active .dicom-series-item-description{color:#64748b}.dicom-layout{display:block}.dicom-viewer-grid{display:grid;gap:20px}.dicom-viewport-card{background:var(--surface);border:1px solid #e5e7eb;border-radius:14px;padding:16px;box-shadow:0 2px 8px #0000000a;display:grid;gap:12px}.dicom-viewport-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:2px solid #f3f4f6}.dicom-viewport-card h3{margin:0;font-size:18px;font-weight:700;color:var(--neutral-900)}.dicom-slice-indicator{font-size:14px;font-weight:700;color:var(--primary);background:linear-gradient(135deg,#eff6ff,#f0f9ff);padding:6px 12px;border-radius:8px;border:1px solid #dbeafe}.dicom-viewport-shell{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1.35 / 1;border:1px solid #e5e7eb;background:#1a1a1a;box-shadow:inset 0 2px 8px #0003}.dicom-viewport{width:100%;height:100%}.dicom-viewport-placeholder{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;color:#666;font-size:14px;text-transform:uppercase;letter-spacing:.04em;font-weight:500}.dicom-slider{width:100%;height:6px;border-radius:10px;background:var(--neutral-200);outline:none;accent-color:var(--primary);cursor:pointer}.dicom-slider:disabled{opacity:.5;cursor:not-allowed}.dicom-report-panel{background:var(--surface);border:1px solid #e5e7eb;border-radius:14px;padding:16px;box-shadow:0 2px 8px #0000000a}.dicom-report-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:2px solid #f3f4f6}.dicom-report-head h2{margin:0;font-size:16px;font-weight:700;color:var(--neutral-900)}.dicom-report-head span{font-size:12px;color:var(--neutral-600)}.dicom-report-model-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:linear-gradient(135deg,#f5f3ff,#ede9fe);border:1px solid var(--secondary);border-radius:6px;font-size:12px;font-weight:600;color:var(--secondary)}.dicom-report-disclaimer{margin-bottom:12px;padding:12px 14px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid var(--warning);border-radius:10px;border-left:4px solid var(--warning);font-size:12px;color:#92400e;line-height:1.4}.dicom-report-loading{padding:24px;text-align:center;color:var(--neutral-600)}.dicom-report-spinner{display:inline-block;width:20px;height:20px;border:3px solid #e5e7eb;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.dicom-report-text{margin:0;padding:14px;border:1px solid #e5e7eb;border-radius:10px;background:var(--neutral-50);color:var(--neutral-900);white-space:pre-wrap;font:13px/1.6 Fira Code,Menlo,Consolas,monospace;overflow-x:auto}.dicom-report-summary{margin-bottom:12px;padding:12px 14px;background:linear-gradient(135deg,#f0fdf4,#dbeafe);border:1px solid var(--success);border-radius:10px;border-left:4px solid var(--success);color:#166534;font-size:13px;line-height:1.5;font-weight:500}.dicom-report-section{margin-bottom:12px}.dicom-report-section h4{margin:0 0 6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--primary)}.dicom-report-findings{padding:12px 14px;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fecaca;border-radius:8px;margin-bottom:10px;font-size:13px;color:#991b1b;line-height:1.5}.dicom-upload-section{background:var(--surface);border:1px solid #e5e7eb;border-radius:14px;padding:16px;box-shadow:0 2px 8px #0000000a;display:grid;gap:14px}.dicom-upload-section h3{margin:0;font-size:14px;font-weight:700;color:var(--neutral-900);border-bottom:2px solid #f3f4f6;padding-bottom:10px}.dicom-upload-dropzone{border:2px dashed var(--primary);border-radius:12px;padding:20px;background:linear-gradient(135deg,#eff6ff,#f0f9ff);cursor:pointer;transition:all .3s ease;text-align:center}.dicom-upload-dropzone:hover{border-color:var(--secondary);background:linear-gradient(135deg,#f5f3ff,#ede9fe)}.dicom-upload-dropzone-active{border-color:var(--secondary);background:linear-gradient(135deg,#f5f3ff,#ede9fe);box-shadow:0 8px 24px #8b5cf626;transform:scale(1.02)}.dicom-upload-dropzone-content{display:grid;gap:6px}.dicom-upload-icon{font-size:28px;line-height:1}.dicom-upload-dropzone strong{font-size:13px;font-weight:600;color:var(--primary)}.dicom-upload-hint{font-size:11px;color:var(--neutral-600)}.dicom-upload-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dicom-upload-btn{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:var(--surface);color:var(--neutral-800);font:inherit;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:4px}.dicom-upload-btn:hover:not(:disabled){border-color:var(--primary);background:linear-gradient(135deg,#eff6ff,#f0f9ff);color:var(--primary)}.dicom-upload-btn:disabled{opacity:.5;cursor:not-allowed}.dicom-upload-btn-cd{border-color:var(--warning);color:#92400e}.dicom-upload-btn-cd:hover:not(:disabled){border-color:var(--warning);background:linear-gradient(135deg,#fffbeb,#fef3c7);color:#92400e}.dicom-upload-progress{position:relative;padding:20px;background:linear-gradient(135deg,#eef4fc,#f0f7ff);border:1px solid #c7ddf5;border-radius:14px;box-shadow:0 2px 8px #2563eb0f,0 4px 16px #2563eb0a;animation:progressSlideIn .4s cubic-bezier(.22,1,.36,1)}.dicom-upload-progress:before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 #2563eb26;animation:containerPulse 2.5s ease-in-out infinite;pointer-events:none}@keyframes containerPulse{0%,to{box-shadow:0 0 #2563eb1f}50%{box-shadow:0 0 0 4px #2563eb0a}}@keyframes progressSlideIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dicom-upload-progress-label{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;color:var(--primary);margin-bottom:14px;letter-spacing:.02em}.dicom-upload-progress-label:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--primary);margin-right:8px;flex-shrink:0;animation:dotPulse 1.4s ease-in-out infinite}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.dicom-upload-progress-count{color:var(--neutral-600);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.dicom-upload-progress-bar{height:10px;border-radius:6px;background:#2563eb1a;overflow:hidden;border:1px solid rgba(37,99,235,.15)}.dicom-upload-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary) 0%,var(--secondary) 100%);transition:width .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;border-radius:5px;box-shadow:0 1px 4px #2563eb40}.dicom-upload-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.35) 45%,rgba(255,255,255,.45) 50%,rgba(255,255,255,.35) 55%,transparent 100%);animation:progressShimmer 1.4s ease-in-out infinite}@keyframes progressShimmer{0%{transform:translate(-120%)}to{transform:translate(120%)}}.dicom-upload-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;background:linear-gradient(135deg,#eff6ff,#f0f9ff);border-radius:8px;border:1px solid #dbeafe}.dicom-upload-stat{text-align:center}.dicom-upload-stat-label{display:block;font-size:11px;color:var(--neutral-600);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.dicom-upload-stat strong{display:block;font-size:16px;color:var(--primary);font-weight:700}.dicom-upload-actions{display:grid;gap:8px}.dicom-upload-action-btn{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:var(--surface);color:var(--neutral-800);font:inherit;font-weight:500;font-size:12px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:4px}.dicom-upload-action-btn:hover:not(:disabled){border-color:var(--primary);background:linear-gradient(135deg,#eff6ff,#f0f9ff);color:var(--primary)}.dicom-upload-action-btn:disabled{opacity:.5;cursor:not-allowed}.dicom-upload-action-btn-danger:hover:not(:disabled){border-color:var(--error);background:linear-gradient(135deg,#fef2f2,#fee2e2);color:var(--error)}.dicom-sequences-panel{background:var(--surface);border:1px solid #e5e7eb;border-radius:14px;padding:16px;box-shadow:0 2px 8px #0000000a}.dicom-sequences-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:2px solid #f3f4f6}.dicom-sequences-head h2{margin:0;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--neutral-900)}.dicom-sequences-head strong{font-size:12px;color:var(--neutral-600)}.dicom-sequences-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.dicom-sequence-item{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:linear-gradient(135deg,#f9fafb,#f3f4f6);font-size:12px;color:var(--neutral-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .2s ease}.dicom-sequence-item:hover{border-color:var(--primary);background:linear-gradient(135deg,#eff6ff,#f0f9ff);color:var(--primary)}.dicom-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.dicom-badge-success{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;border:1px solid #6ee7b7}.dicom-badge-warning{background:linear-gradient(135deg,#fef3c7,#fed7aa);color:#92400e;border:1px solid #fcd34d}.dicom-badge-info{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border:1px solid #93c5fd}.dicom-badge-processing{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);color:#6b21a8;border:1px solid #d8b4fe;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}@media(max-width:1400px){.dicom-workspace{grid-template-columns:280px 1fr 320px;gap:18px}}@media(max-width:1180px){.dicom-workspace{grid-template-columns:1fr}.dicom-sidebar,.dicom-upload-panel{position:static}.dicom-series-panel-sidebar{min-height:auto;max-height:400px}}@media(max-width:820px){.dicom-page{padding:20px 16px 32px}.dicom-hero{grid-template-columns:1fr;gap:16px}.dicom-hero-card{grid-template-columns:1fr}.dicom-workspace{gap:16px}.dicom-series-panel-sidebar{min-height:auto;max-height:400px}.dicom-report-head{flex-direction:column;align-items:flex-start}.dicom-viewport-card{padding:12px}.dicom-viewport-shell{aspect-ratio:auto;min-height:300px}.dicom-sequences-list{grid-template-columns:1fr}}@media(max-width:480px){.dicom-page{padding:16px 12px 24px}.dicom-hero-copy h1{font-size:24px}.dicom-hero-card{gap:8px;padding:12px}.dicom-action-btn{padding:10px 12px;font-size:13px}.dicom-report-text{font-size:12px}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}:root{--primary: #0d47a1;--primary-light: #1565c0;--primary-lighter: #1976d2;--accent: #00897b;--accent-light: #00acc1;--bg-primary: #fafbfc;--bg-secondary: #ffffff;--text-primary: #24292e;--text-secondary: #6a737d;--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--spacing-lg: 24px;--transition-normal: .3s ease-in-out}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);gap:var(--spacing-lg)}.spinner{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--primary-lighter) 0%,var(--accent-light) 100%);position:relative;animation:float 2s ease-in-out infinite;box-shadow:0 0 #1976d266}.spinner:before{content:"";position:absolute;width:40px;height:40px;background:#fff;border-radius:50%;top:4px;left:4px}.spinner:after{content:"";position:absolute;width:36px;height:36px;border:3px solid var(--primary-lighter);border-right-color:transparent;border-radius:50%;top:6px;left:6px;animation:spin 1.2s linear infinite;z-index:1}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0);box-shadow:0 0 #1976d266}50%{transform:translateY(-12px);box-shadow:0 8px 20px #1976d233}}.loading-spinner-container p{color:var(--text-secondary);font-size:16px;font-weight:500;margin:0;letter-spacing:.2px}:root{--primary: #0d47a1;--primary-light: #1565c0;--primary-lighter: #1976d2;--accent: #00897b;--accent-light: #00acc1;--error: #d32f2f;--error-light: #ef5350;--bg-primary: #fafbfc;--bg-secondary: #ffffff;--border-color: #e0e4e8;--text-primary: #24292e;--text-secondary: #6a737d;--text-light: #8b949e;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--transition-fast: .15s ease-in-out;--transition-normal: .3s ease-in-out;--transition-slow: .5s ease-in-out}html[data-theme=dark]{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #1c2330;--border-color: #30363d;--border-color-light: #21262d;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-light: #6e7681;--primary: #1565c0;--primary-light: #1976d2;--primary-lighter: #42a5f5;--accent: #00897b;--accent-light: #26c6da;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5)}html,body{margin:0;padding:0;height:100%}.app{display:flex;flex-direction:column;min-height:100vh;width:100%;background:var(--bg-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;color:var(--text-primary)}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-xl);background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);text-align:center;gap:var(--spacing-lg)}.error-container h1{color:var(--error);margin:0;font-size:32px;font-weight:700}.error-container p{color:var(--text-secondary);font-size:16px;max-width:400px;margin:0;line-height:1.6}:root{--primary: #0d47a1;--primary-light: #1565c0;--primary-lighter: #1976d2;--accent: #00897b;--accent-light: #00acc1;--error: #d32f2f;--error-light: #ef5350;--success: #388e3c;--success-light: #4caf50;--warning: #f57f17;--warning-light: #fbc02d;--bg-primary: #fafbfc;--bg-secondary: #ffffff;--bg-tertiary: #f6f8fa;--border-color: #e0e4e8;--border-color-light: #eaecef;--text-primary: #24292e;--text-secondary: #6a737d;--text-light: #8b949e;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--shadow-xl: 0 12px 40px rgba(0, 0, 0, .12);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-round: 50%;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 28px;--font-size-4xl: 32px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{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:var(--bg-primary);color:var(--text-primary);line-height:1.6;font-size:var(--font-size-base)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:1.3;margin:0}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-lg)}h5,h6{font-size:var(--font-size-md)}p{margin:0;line-height:1.6}code{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:12px;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);color:var(--text-primary)}pre{background:var(--bg-tertiary);padding:var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}:focus-visible{outline:2px solid var(--primary-lighter);outline-offset:2px}::selection{background:var(--primary-lighter);color:#fff}
