:root{--primary-color:#ff073a;--primary-dark:#c50030;--primary-light:#ff3358;--dark-bg:#121212;--darker-bg:#0a0a0a;--card-bg:#1e1e1e;--border-radius:12px;--box-shadow:0 10px 20px rgba(0,0,0,.3);--glow-effect:0 0 15px rgba(255,7,58,.5);--transition-speed:0.3s}*{box-sizing:border-box;padding:0}*,body{margin:0}body{background:linear-gradient(135deg,#1a1a1a,#0d0d0d);color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:25px;transition:all .3s ease;opacity:0;animation:fadeIn .5s forwards;overflow-x:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.header{font-family:Orbitron,sans-serif;font-size:clamp(2rem,8vw,3.5rem);font-weight:900;text-transform:uppercase;margin-bottom:10px;text-shadow:0 0 20px rgba(255,7,58,.7);letter-spacing:3px;color:#fff;text-align:center;line-height:1.2;background:linear-gradient(to right,#fff,var(--primary-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:glowText 3s infinite alternate}@keyframes glowText{0%{text-shadow:0 0 5px rgba(255,7,58,.7)}to{text-shadow:0 0 20px rgba(255,7,58,.9),0 0 30px rgba(255,7,58,.5)}}.container{max-width:1200px;padding:20px;transition:all .3s ease}.container,.content-wrapper{display:flex;flex-direction:column;align-items:center;width:100%}.content-wrapper{margin-top:70px}.logo{font-family:Orbitron,sans-serif;font-weight:800;margin-bottom:30px;font-size:1.2rem;color:hsla(0,0%,100%,.8);letter-spacing:2px;text-align:center;text-transform:uppercase;position:relative;display:inline-block}.logo:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:60%;height:2px;background:linear-gradient(90deg,transparent,var(--primary-color),transparent)}.card{background:var(--card-bg);color:#fff;border:none;margin-top:20px;width:100%;border-radius:var(--border-radius);box-shadow:var(--box-shadow);overflow:hidden;transition:transform .3s,box-shadow .3s;animation:cardFadeIn .5s forwards;border:1px solid hsla(0,0%,100%,.05)}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.card:hover{transform:translateY(-5px);box-shadow:0 15px 30px rgba(0,0,0,.4)}.card-title{font-size:1.5rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:15px;color:var(--primary-color);display:flex;align-items:center;justify-content:center}.card-body{padding:20px}.alert{margin-top:20px;border-radius:var(--border-radius);padding:15px;box-shadow:var(--box-shadow)}.alert-error{background:rgba(255,7,58,.1);border:1px solid var(--primary-color);display:flex;align-items:center;gap:10px}.file-input-container{position:relative;width:100%;margin-bottom:15px}.file-input-container label{display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(51,51,51,.7);color:#fff;border-radius:var(--border-radius);cursor:pointer;transition:all .3s;border:2px dashed rgba(255,7,58,.3);margin:0;box-shadow:var(--box-shadow)}.file-input-container label:hover{background:rgba(70,70,70,.7);border-color:var(--primary-color);transform:translateY(-2px)}.file-input-container label span{margin-left:10px}.file-input-container input[type=file]{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-input-container input[type=file]:disabled{cursor:not-allowed}.file-input-container label:has(+input:disabled){opacity:.7;cursor:not-allowed}.file-name{margin-top:10px;color:hsla(0,0%,100%,.7);font-size:.9rem;text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-container{width:100%;margin-bottom:15px;display:flex;justify-content:center}.new-analysis-button{display:flex;align-items:center;justify-content:center;padding:16px 24px;background:rgba(255,7,58,.1);color:var(--primary-color);border-radius:var(--border-radius);cursor:pointer;transition:all .3s;border:2px solid var(--primary-color);margin:0;box-shadow:var(--box-shadow);font-weight:600;gap:10px;min-width:250px}.new-analysis-button:hover{background:rgba(255,7,58,.2);transform:translateY(-2px)}.new-analysis-button:active{transform:translateY(0)}.new-analysis-button i{font-size:1.2rem}.new-analysis-button:disabled{opacity:.6;cursor:not-allowed}.model-progress-container{width:100%;margin-top:16px}.model-progress-bar{width:100%;height:8px;background:hsla(0,0%,100%,.05);border-radius:10px;overflow:hidden;position:relative;box-shadow:inset 0 2px 4px rgba(0,0,0,.3);border:1px solid rgba(255,7,58,.2)}.model-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--primary-light));border-radius:10px;transition:width .3s ease;position:relative;box-shadow:0 0 10px rgba(255,7,58,.5);animation:progressPulse 2s ease-in-out infinite}@keyframes progressPulse{0%,to{box-shadow:0 0 10px rgba(255,7,58,.5)}50%{box-shadow:0 0 20px rgba(255,7,58,.8),0 0 30px rgba(255,7,58,.4)}}.model-progress-glow{position:absolute;top:0;right:0;width:100px;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.3));animation:progressShine 1.5s ease-in-out infinite}@keyframes progressShine{0%{transform:translateX(-100px)}to{transform:translateX(100px)}}.model-progress-info{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:.85rem;font-weight:600}.model-progress-percentage{color:var(--primary-color);font-family:Orbitron,monospace;font-size:1rem;text-shadow:0 0 10px rgba(255,7,58,.5);letter-spacing:1px}.model-progress-size{color:hsla(0,0%,100%,.6);font-size:.8rem;font-family:monospace}.processing-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;background:var(--card-bg);border-radius:var(--border-radius);box-shadow:var(--box-shadow);margin:20px 0;width:100%;max-width:500px;border:1px solid hsla(0,0%,100%,.05)}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;width:100%;padding:20px 0}.image-item{position:relative;border-radius:var(--border-radius);overflow:hidden;aspect-ratio:1;background:rgba(0,0,0,.2)}.image-wrapper{position:relative;width:100%;height:100%}.image-wrapper img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:filter .3s ease}.image-wrapper img.blur{filter:blur(20px)}.image-overlay{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.7);padding:10px;transform:translateY(100%);transition:transform .3s ease}.image-wrapper:hover .image-overlay{transform:translateY(0)}.image-info{font-size:.9rem}.image-filename{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px}.image-status{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.8rem;font-weight:600}.image-status.safe{background:rgba(39,174,96,.2);color:#27ae60}.image-status.nsfw{background:rgba(255,7,58,.2);color:var(--primary-color)}.toggle-nsfw-button{background:rgba(255,7,58,.1);border:1px solid var(--primary-color);color:var(--primary-color);padding:8px 16px;border-radius:var(--border-radius);font-size:.9rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px}.toggle-nsfw-button:hover{background:rgba(255,7,58,.2)}.toggle-nsfw-button i{font-size:1rem}.loading-spinner{width:40px;height:40px;border-radius:50%;border:4px solid rgba(255,7,58,.1);border-top:4px solid var(--primary-color);animation:spin 1s linear infinite;margin-bottom:15px}.loading-text{color:hsla(0,0%,100%,.8);font-size:.9rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.hidden-input{position:absolute;left:-9999px;opacity:0;visibility:hidden}.footer{margin-top:30px;color:hsla(0,0%,100%,.5);font-size:.8rem;text-align:center;padding-bottom:60px}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:2000;overflow-y:auto}.modal.show{display:flex;animation:modalFadeIn .3s forwards}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--card-bg);border-radius:var(--border-radius);margin:auto;width:90%;height:90%;overflow:scroll;max-width:600px;padding:30px;position:relative;border:1px solid hsla(0,0%,100%,.1);animation:modalSlideIn .3s forwards}@keyframes modalSlideIn{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid hsla(0,0%,100%,.1)}.modal-title{font-size:1.5rem;font-weight:700;color:#fff;font-family:Orbitron,sans-serif}.modal-close{background:none;border:none;color:#aaa;font-size:1.5rem;cursor:pointer;transition:color .3s}.modal-close:hover{color:#fff}.modal-body{line-height:1.6}.modal-body h3{color:var(--primary-color);margin:20px 0 10px;font-size:1.2rem}.modal-body p{margin-bottom:15px}.snackbar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:rgba(30,30,30,.95);color:#fff;border-radius:var(--border-radius);box-shadow:var(--box-shadow);z-index:1000;transition:opacity .3s ease,transform .3s ease;min-width:280px;max-width:500px;width:90%;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.1);opacity:0;visibility:hidden;transform:translateX(-50%) translateY(20px)}.snackbar.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.snackbar-content{display:flex;align-items:center;padding:16px}.snackbar-content i{margin-right:15px;font-size:1.2rem;color:var(--primary-color)}.snackbar-content span{flex:1}.snackbar-actions{display:flex;gap:10px}.snackbar-actions button{background:none;border:none;color:var(--primary-color);font-weight:600;cursor:pointer;padding:8px;transition:background .2s;border-radius:4px}.snackbar-actions button:hover{background:hsla(0,0%,100%,.1)}.image-zoom-hint{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.6);color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.image-wrapper:hover .image-zoom-hint{opacity:1}.zoom-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fadeIn .3s ease}.zoom-modal-content{background:var(--card-bg);border-radius:var(--border-radius);width:90%;max-width:900px;max-height:90vh;overflow:hidden;box-shadow:var(--box-shadow);border:1px solid hsla(0,0%,100%,.1);animation:zoomIn .3s ease}@keyframes zoomIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.zoom-modal-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid hsla(0,0%,100%,.1)}.zoom-modal-title{font-family:Orbitron,sans-serif;color:var(--primary-color);font-weight:700;margin:0;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zoom-modal-close{background:transparent;border:none;color:hsla(0,0%,100%,.7);font-size:1.2rem;cursor:pointer;padding:5px;transition:color .3s ease}.zoom-modal-close:hover{color:#fff}.zoom-modal-body{padding:20px}.zoom-image-container{width:100%;display:flex;justify-content:center;margin-bottom:15px}.zoom-image-container img{max-width:100%;max-height:70vh;-o-object-fit:contain;object-fit:contain;border-radius:var(--border-radius)}.zoom-image-details{padding:10px 0}.zoom-image-info{display:flex;justify-content:center;align-items:center}.zoom-image-status{display:inline-block;padding:5px 15px;border-radius:20px;font-size:.9rem;font-weight:600}.zoom-image-status.nsfw{background:rgba(255,7,58,.2);color:var(--primary-color)}.analysis-report{width:100%;background:var(--card-bg);border-radius:var(--border-radius);padding:20px;margin-bottom:30px;box-shadow:var(--box-shadow);border:1px solid hsla(0,0%,100%,.05)}.analysis-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid hsla(0,0%,100%,.1)}.analysis-title{font-family:Orbitron,sans-serif;font-size:1.5rem;color:var(--primary-color);font-weight:700}.analysis-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}.analysis-stat-item{background:rgba(51,51,51,.7);padding:15px;border-radius:var(--border-radius);text-align:center}.analysis-stat-item strong{display:block;color:var(--primary-color);margin-bottom:5px}.analysis-progress{display:flex;width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden}.analysis-progress-bar{height:100%;background:var(--primary-color);transition:width .3s ease}.analysis-progress-bar.safe-progress{background-color:#4caf50}.analysis-progress-bar.nsfw-progress{background-color:#f44336}.images-section{width:100%;background:var(--card-bg);border-radius:var(--border-radius);padding:20px;box-shadow:var(--box-shadow);border:1px solid hsla(0,0%,100%,.05)}.images-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid hsla(0,0%,100%,.1)}.images-title{font-family:Orbitron,sans-serif;font-size:1.5rem;color:var(--primary-color);font-weight:700}.offline-indicator{position:fixed;top:60px;left:0;right:0;background-color:rgba(255,204,0,.9);color:#333;text-align:center;padding:8px 16px;font-weight:500;z-index:1000;animation:slideDown .3s forwards;display:flex;align-items:center;justify-content:center;gap:8px}.offline-indicator i{font-size:1rem}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@media (max-width:768px){.header{font-size:clamp(1.8rem,7vw,2.5rem);margin-bottom:10px}.analysis-stats{grid-template-columns:1fr}.analysis-stat-item{padding:10px}.analysis-header,.images-header{flex-direction:column;gap:10px;align-items:flex-start}.toggle-nsfw-button{width:100%;justify-content:center}.image-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (max-width:480px){.header{font-size:clamp(1.6rem,6vw,2.2rem)}.analysis-title,.images-title{font-size:1.2rem}.image-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}}