/* ── Reset + Base ── */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Josefin Sans',system-ui,sans-serif;background:var(--bg);color:var(--t1);min-height:100vh;line-height:1.5;transition:background .2s,color .2s}

/* ── UPLOAD ── */
#upload-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:var(--up-bg);transition:background .2s;position:relative}
.app-logo{display:flex;align-items:center;gap:14px;margin-bottom:2.5rem}
.logo-icon{width:52px;height:52px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 0 24px rgba(59,130,246,.35);flex-shrink:0}
.app-logo h1{font-size:2rem;font-weight:800;background:linear-gradient(135deg,#60a5fa,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
[data-theme=light] .app-logo h1{background:linear-gradient(135deg,#1d4ed8,#2563eb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.subtitle{font-size:.72rem;color:var(--t3);letter-spacing:2px;text-transform:uppercase;margin-top:-4px}
.upload-tr{position:absolute;top:1.5rem;right:1.5rem}
.upload-card{background:var(--card);border:2px dashed var(--bdr);border-radius:20px;padding:3rem 3.5rem;text-align:center;max-width:560px;width:100%;transition:all .3s;box-shadow:var(--sh)}
.upload-card:hover,.upload-card.drag-over{border-color:var(--blue);background:rgba(59,130,246,.04);box-shadow:0 0 48px rgba(59,130,246,.12)}
.up-icon{font-size:3.5rem;margin-bottom:1rem;display:block}
.upload-card h2{font-size:1.4rem;font-weight:600;margin-bottom:.5rem}
.upload-card p{color:var(--t2);font-size:.9rem;margin-bottom:1.75rem}
.btn-primary{background:linear-gradient(135deg,var(--blue),var(--blue3));color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 15px rgba(59,130,246,.3)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(59,130,246,.4)}
#file-input{display:none}
.upload-formats{margin-top:1.5rem;font-size:.78rem;color:var(--t3)}
.upload-formats span{background:rgba(59,130,246,.1);color:var(--blue);padding:2px 8px;border-radius:4px;margin:0 3px}

/* ── LOADING ── */
#loading-overlay{display:none;position:fixed;inset:0;background:rgba(8,12,24,.92);z-index:9999;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem}
[data-theme=light] #loading-overlay{background:rgba(240,244,248,.92)}
#loading-overlay.active{display:flex}
.spinner{width:52px;height:52px;border:3px solid var(--bdr);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.load-txt{color:var(--t2);font-size:.95rem}

/* ── THEME TOGGLE ── */
.theme-btn{background:transparent;border:1px solid var(--bdr);color:var(--t2);width:34px;height:34px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s;flex-shrink:0}
.theme-btn:hover{border-color:var(--blue);color:var(--blue)}
