:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a25;--text-primary: #ffffff;--text-secondary: #a0a0b0;--accent: #1976d2;--accent-hover: #42a5f5;--accent-light: #64b5f6;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--border: #2a2a3a;--shadow: rgba(0, 0, 0, .5)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6}.app{max-width:1400px;margin:0 auto;padding:2rem}header{text-align:center;margin-bottom:3rem}header h1{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.subtitle{color:var(--text-secondary);font-size:1.1rem}.status-bar{display:flex;justify-content:center;gap:1.5rem;margin-top:1rem;flex-wrap:wrap}.status-item{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .8rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;font-size:.8rem;color:var(--text-secondary)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-secondary)}.status-dot.active{background:var(--success);box-shadow:0 0 6px var(--success)}.status-dot.inactive{background:var(--warning)}.status-item.gpu-active{border-color:var(--success);color:var(--success)}.status-item.gpu-inactive{border-color:var(--warning)}.status-item .info-icon{width:14px;height:14px;font-size:9px;margin-left:2px}.upload-section{margin-bottom:2rem}.upload-zone{border:2px dashed var(--border);border-radius:16px;padding:4rem 2rem;text-align:center;cursor:pointer;transition:all .3s ease;background:var(--bg-secondary)}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);background:var(--bg-tertiary)}.upload-icon{width:64px;height:64px;color:var(--accent);margin-bottom:1rem}.upload-content p{font-size:1.2rem;margin-bottom:.5rem}.supported-formats{color:var(--text-secondary);font-size:.9rem}.error-message{display:flex;align-items:center;gap:.75rem;margin-top:1rem;padding:1rem 1.25rem;background:#ef44441a;border:1px solid var(--danger);border-radius:12px;color:var(--danger)}.error-message[hidden]{display:none}.error-icon{width:24px;height:24px;border-radius:50%;background:var(--danger);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}#errorText{flex:1}.error-dismiss{background:none;border:none;color:var(--danger);font-size:1.5rem;cursor:pointer;padding:0;line-height:1;opacity:.7}.error-dismiss:hover{opacity:1}.preview-section{margin-bottom:2rem}.image-container{position:relative;display:flex;justify-content:center;background:var(--bg-secondary);border-radius:16px;padding:1rem;overflow:hidden}.image-container img{max-width:100%;max-height:500px;object-fit:contain;border-radius:8px}.image-container video{max-width:100%;max-height:500px;object-fit:contain;border-radius:8px}.image-container pre{max-width:100%;max-height:500px;overflow:auto;text-align:left;padding:1rem;background:var(--bg-tertiary);border-radius:8px;font-size:.9rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;color:var(--text-primary);width:100%}.results-section{animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.verdict-card{background:var(--bg-secondary);border-radius:16px;padding:2rem;text-align:center;margin-bottom:2rem;border:1px solid var(--border)}.verdict-card.authentic{border-color:var(--success);box-shadow:0 0 30px #22c55e33}.verdict-card.ai-generated{border-color:var(--danger);box-shadow:0 0 30px #ef444433}.verdict-card.modified{border-color:var(--warning);box-shadow:0 0 30px #f59e0b33}.verdict-card.uncertain{border-color:var(--text-secondary);box-shadow:0 0 30px #9ca3af33}.verdict-icon{width:80px;height:80px;margin:0 auto 1rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem}.verdict-card.authentic .verdict-icon{background:#22c55e33}.verdict-card.ai-generated .verdict-icon{background:#ef444433}.verdict-card.modified .verdict-icon{background:#f59e0b33}.verdict-card.uncertain .verdict-icon{background:#9ca3af33}#verdictTitle{font-size:1.8rem;margin-bottom:.5rem}#verdictDescription{color:var(--text-secondary);margin-bottom:1.5rem}.confidence-bar{width:100%;max-width:400px;height:8px;background:var(--bg-tertiary);border-radius:4px;margin:0 auto .5rem;overflow:hidden}.confidence-fill{height:100%;border-radius:4px;transition:width 1s ease}.confidence-label{color:var(--text-secondary);font-size:.9rem}.detector-results{display:flex;flex-direction:column;gap:1.25rem;max-width:500px;margin:0 auto;text-align:left}.detector-row{display:flex;flex-direction:column;gap:.5rem}.detector-label{font-weight:600;font-size:.95rem;color:var(--text-primary)}.detector-bar-container{display:flex;flex-direction:column;gap:.25rem}.detector-bar{height:12px;background:var(--bg-tertiary);border-radius:6px;overflow:hidden}.detector-fill{height:100%;border-radius:6px;transition:width .8s ease}.detector-fill.ai{background:linear-gradient(90deg,var(--danger),#ff6b6b)}.detector-fill.real{background:linear-gradient(90deg,var(--success),#4ade80)}.detector-values{display:flex;justify-content:space-between;font-size:.85rem;font-weight:600}.analysis-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;overflow-x:auto;padding-bottom:.5rem}.tab-btn{padding:.75rem 1.5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .3s ease;white-space:nowrap;font-size:.95rem}.tab-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.tab-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.tab-content{background:var(--bg-secondary);border-radius:16px;padding:1.5rem;border:1px solid var(--border);min-height:400px}.tab-pane{display:none}.tab-pane.active{display:block;animation:fadeIn .3s ease}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.analysis-card{background:var(--bg-tertiary);border-radius:12px;padding:1.25rem;border:1px solid var(--border)}.analysis-card h4{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.analysis-card .value{font-size:1.5rem;font-weight:600}.analysis-card .indicator{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500}.indicator.good{background:#22c55e33;color:var(--success)}.indicator.warning{background:#f59e0b33;color:var(--warning)}.indicator.bad{background:#ef444433;color:var(--danger)}.metadata-table{width:100%;border-collapse:collapse}.metadata-table th,.metadata-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.metadata-table th{color:var(--text-secondary);font-weight:500;width:200px}.metadata-table tr:hover{background:var(--bg-tertiary)}.metadata-section{margin-bottom:2rem}.metadata-section h3{font-size:1.1rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.canvas-container{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.canvas-wrapper{text-align:center}.canvas-wrapper h4{margin-bottom:.5rem;color:var(--text-secondary)}.canvas-wrapper canvas{max-width:100%;border-radius:8px;border:1px solid var(--border)}.score-ring{width:120px;height:120px;position:relative}.score-ring svg{transform:rotate(-90deg)}.score-ring circle{fill:none;stroke-width:8}.score-ring .bg{stroke:var(--bg-tertiary)}.score-ring .progress{stroke-dasharray:339.292;stroke-linecap:round;transition:stroke-dashoffset 1s ease}.score-ring .value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem;font-weight:700}.loading-section{text-align:center;padding:4rem 2rem}.loader{width:60px;height:60px;border:4px solid var(--bg-tertiary);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1.5rem}@keyframes spin{to{transform:rotate(360deg)}}#loadingStatus{color:var(--text-secondary);font-size:1.1rem}.histogram-container{height:200px;display:flex;align-items:flex-end;gap:1px;padding:1rem;background:var(--bg-tertiary);border-radius:8px}.histogram-bar{flex:1;min-width:1px;transition:height .3s ease}footer{text-align:center;padding:2rem 1rem;color:var(--text-secondary);border-top:1px solid var(--border);margin-top:3rem;font-size:.85rem;line-height:1.6}footer p{max-width:900px;margin:0 auto}footer strong{color:var(--text-primary)}footer .attribution{margin-top:.75rem;font-size:.8rem;opacity:.8}footer .attribution a{color:var(--primary);text-decoration:none}footer .attribution a:hover{text-decoration:underline}.info-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);font-size:10px;font-weight:700;font-style:normal;cursor:help;margin-left:6px;position:relative;vertical-align:middle}.info-icon:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.info-icon .tooltip{visibility:hidden;opacity:0;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-tertiary);color:var(--text-primary);padding:10px 14px;border-radius:8px;font-size:12px;font-weight:400;line-height:1.5;width:max-content;max-width:280px;text-align:left;box-shadow:0 4px 20px var(--shadow);border:1px solid var(--border);z-index:1000;transition:opacity .2s,visibility .2s}.info-icon .tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--bg-tertiary)}.info-icon:hover .tooltip{visibility:visible;opacity:1}@media (max-width: 500px){.info-icon .tooltip{left:auto;right:-10px;transform:none}.info-icon .tooltip:after{left:auto;right:15px;transform:none}}@media (max-width: 768px){.app{padding:1rem}header h1{font-size:1.8rem}.upload-zone{padding:2rem 1rem}.analysis-tabs{flex-wrap:nowrap}.tab-btn{padding:.5rem 1rem;font-size:.85rem}}.detail-section{margin-bottom:2rem}.detail-section h3{font-size:1.2rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.detail-section h3:before{content:"";width:4px;height:20px;background:var(--accent);border-radius:2px}.findings-list{list-style:none}.findings-list li{padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:8px;margin-bottom:.5rem;display:flex;align-items:center;gap:.75rem}.findings-list .icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem}.findings-list .icon.pass{background:#22c55e33;color:var(--success)}.findings-list .icon.fail{background:#ef444433;color:var(--danger)}.findings-list .icon.warn{background:#f59e0b33;color:var(--warning)}.comparison-view{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 768px){.comparison-view{grid-template-columns:1fr}}.spectrum-display{display:flex;flex-direction:column;gap:1rem}.spectrum-row{display:flex;align-items:center;gap:1rem}.spectrum-label{width:120px;font-size:.9rem;color:var(--text-secondary)}.spectrum-bar{flex:1;height:24px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.spectrum-fill{height:100%;transition:width .5s ease}.init-loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .3s ease}.init-loading-overlay.hidden{opacity:0;pointer-events:none}.init-loading-content{text-align:center;padding:2rem}.init-loading-content h2{font-size:2rem;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1.5rem}.init-loading-content p{color:var(--text-secondary);margin-bottom:1rem}.init-progress-container{width:300px;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;margin:0 auto}.init-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent-light));border-radius:4px;transition:width .2s ease}.init-progress-text{font-size:.9rem;color:var(--text-secondary);margin-top:.5rem}
