/* ── Global Assets — compressor.dannny0117.com ── */
/* Font */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
  --accent:        #00d4ff;
  --accent2:       #7c3aed;
  --accent-glow:   rgba(0, 212, 255, 0.25);
  --accent2-glow:  rgba(124, 58, 237, 0.25);
  --bg:            #0a0a14;
  --bg2:           #0d0d2b;
  --glass:         rgba(255,255,255,0.06);
  --glass-hover:   rgba(255,255,255,0.10);
  --glass-border:  rgba(255,255,255,0.12);
  --glass-blur:    20px;
  --text:          #ffffff;
  --text2:         rgba(255,255,255,0.65);
  --text3:         rgba(255,255,255,0.35);
  --success:       #22c55e;
  --success-bg:    rgba(34,197,94,0.12);
  --error:         #ef4444;
  --error-bg:      rgba(239,68,68,0.12);
  --warn:          #f59e0b;
  --warn-bg:       rgba(245,158,11,0.12);
  --r-btn:         12px;
  --r-card:        20px;
  --r-pill:        100px;
  --shadow:        0 20px 60px rgba(0,0,0,0.5);
  --shadow-sm:     0 8px 24px rgba(0,0,0,0.3);
  --font:          'Inter', system-ui, -apple-system, sans-serif;
  --trans:         0.2s ease;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-tap-highlight-color:transparent;}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:rgba(255,255,255,0.04);}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.18);border-radius:3px;}

/* Selection */
::selection{background:var(--accent);color:#000;}

/* ── Glass card ── */
.glass{
  background:var(--glass);
  backdrop-filter:blur(var(--glass-blur));
  -webkit-backdrop-filter:blur(var(--glass-blur));
  border:1px solid var(--glass-border);
  border-radius:var(--r-card);
}
.glass-sm{
  background:rgba(255,255,255,0.05);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:12px;
}

/* ── Buttons ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 24px;font-family:var(--font);font-size:0.875rem;font-weight:600;
  border:none;border-radius:var(--r-btn);cursor:pointer;
  text-decoration:none;transition:all var(--trans);white-space:nowrap;
  -webkit-user-select:none;user-select:none;
}
.btn:disabled{opacity:0.45;pointer-events:none;}
.btn-primary{
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  color:#000;box-shadow:0 0 20px var(--accent-glow);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 32px var(--accent-glow),0 8px 24px rgba(0,0,0,0.3);}
.btn-primary:active{transform:translateY(0);}
.btn-ghost{
  background:var(--glass);color:var(--text);
  border:1px solid var(--glass-border);
}
.btn-ghost:hover{background:var(--glass-hover);}
.btn-danger{background:rgba(239,68,68,0.15);color:var(--error);border:1px solid rgba(239,68,68,0.3);}
.btn-danger:hover{background:rgba(239,68,68,0.25);}
.btn-success{background:rgba(34,197,94,0.15);color:var(--success);border:1px solid rgba(34,197,94,0.3);}
.btn-success:hover{background:rgba(34,197,94,0.25);}
.btn-sm{padding:8px 16px;font-size:0.8rem;}
.btn-lg{padding:16px 36px;font-size:1rem;}
.btn-icon{padding:10px;border-radius:10px;width:40px;height:40px;}

/* ── Loading spinner ── */
.spinner{
  width:20px;height:20px;border:2px solid rgba(255,255,255,0.15);
  border-top-color:var(--accent);border-radius:50%;
  animation:spin 0.7s linear infinite;flex-shrink:0;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* ── Progress bar ── */
.progress-bar{height:4px;background:rgba(255,255,255,0.08);border-radius:2px;overflow:hidden;}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:2px;transition:width 0.4s ease;}

/* ── Badge / pill ── */
.badge{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 10px;font-size:0.72rem;font-weight:600;
  border-radius:var(--r-pill);letter-spacing:0.02em;
}
.badge-accent{background:rgba(0,212,255,0.12);color:var(--accent);border:1px solid rgba(0,212,255,0.25);}
.badge-success{background:var(--success-bg);color:var(--success);}
.badge-error{background:var(--error-bg);color:var(--error);}
.badge-warn{background:var(--warn-bg);color:var(--warn);}
.badge-live{background:rgba(239,68,68,0.12);color:var(--error);}
.badge-live::before{content:'';width:6px;height:6px;background:var(--error);border-radius:50%;animation:pulse-dot 1.4s ease infinite;}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.5;transform:scale(0.75);}}

/* ── Inputs ── */
.input,.select,.textarea{
  background:rgba(255,255,255,0.06);color:var(--text);
  border:1px solid var(--glass-border);border-radius:10px;
  padding:12px 14px;font-family:var(--font);font-size:0.875rem;
  width:100%;transition:border-color var(--trans);outline:none;
}
.input::placeholder,.textarea::placeholder{color:var(--text3);}
.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;}
.input-group{display:flex;flex-direction:column;gap:6px;}
.input-label{font-size:0.8rem;font-weight:600;color:var(--text2);}

/* ── Toggle switch ── */
.toggle{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;position:absolute;}
.toggle-slider{position:absolute;inset:0;background:rgba(255,255,255,0.12);border-radius:12px;cursor:pointer;transition:var(--trans);}
.toggle-slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:var(--trans);}
.toggle input:checked+.toggle-slider{background:var(--accent);}
.toggle input:checked+.toggle-slider::before{transform:translateX(20px);}

/* ── Tabs ── */
.tabs{display:flex;gap:4px;background:rgba(255,255,255,0.05);padding:4px;border-radius:12px;width:fit-content;}
.tab-btn{padding:8px 20px;font-size:0.83rem;font-weight:600;border:none;border-radius:9px;cursor:pointer;background:none;color:var(--text2);transition:all var(--trans);}
.tab-btn.active{background:var(--glass-hover);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,0.2);}
.tab-btn:hover:not(.active){color:var(--text);}

/* ── Modal ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity 0.2s;}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal{width:100%;max-width:560px;padding:28px;position:relative;max-height:90vh;overflow-y:auto;}
.modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text2);font-size:1.3rem;cursor:pointer;line-height:1;padding:4px;transition:color var(--trans);}
.modal-close:hover{color:var(--text);}

/* ── Toast ── */
#toast-container{position:fixed;bottom:24px;right:24px;z-index:9000;display:flex;flex-direction:column;gap:10px;pointer-events:none;}
.toast{
  display:flex;align-items:center;gap:10px;
  padding:12px 18px;border-radius:12px;font-size:0.85rem;font-weight:500;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  pointer-events:all;animation:toast-in 0.3s ease;
  max-width:340px;box-shadow:0 8px 32px rgba(0,0,0,0.3);
}
.toast.success{background:rgba(22,30,22,0.9);border:1px solid rgba(34,197,94,0.35);color:var(--success);}
.toast.error{background:rgba(30,22,22,0.9);border:1px solid rgba(239,68,68,0.35);color:var(--error);}
.toast.info{background:rgba(12,18,30,0.9);border:1px solid rgba(0,212,255,0.25);color:var(--accent);}
@keyframes toast-in{from{transform:translateX(100%);opacity:0;}to{transform:translateX(0);opacity:1;}}
@keyframes toast-out{from{opacity:1;}to{opacity:0;transform:translateX(100%);}}

/* ── Lang dropdown ── */
.lang-dropdown{position:relative;}
.nav-lang-btn{
  background:var(--glass);border:1px solid var(--glass-border);color:var(--text2);
  padding:7px 12px;border-radius:8px;font-size:0.78rem;font-weight:700;
  cursor:pointer;letter-spacing:0.05em;transition:all var(--trans);font-family:var(--font);
}
.nav-lang-btn:hover{color:var(--text);border-color:var(--accent);}
.lang-dropdown-menu{
  position:absolute;top:calc(100% + 6px);right:0;min-width:160px;
  background:rgba(12,12,20,0.97);border:1px solid var(--glass-border);
  border-radius:12px;padding:6px;display:none;flex-direction:column;gap:2px;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:0 16px 40px rgba(0,0,0,0.5);z-index:1000;
}
.lang-dropdown.open .lang-dropdown-menu{display:flex;}
.lang-dropdown-item{
  background:none;border:none;color:var(--text2);font-size:0.83rem;font-weight:500;
  text-align:left;padding:8px 12px;border-radius:8px;cursor:pointer;transition:all var(--trans);
  font-family:var(--font);
}
.lang-dropdown-item:hover{background:rgba(255,255,255,0.08);color:var(--text);}
.lang-dropdown-item.active{color:var(--accent);font-weight:700;}

/* ── Utility ── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.text-accent{color:var(--accent);}
.text-accent2{color:var(--accent2);}
.text-muted{color:var(--text2);}
.text-dim{color:var(--text3);}
.font-mono{font-family:'Courier New',monospace;}
.flex{display:flex;}
.flex-center{display:flex;align-items:center;justify-content:center;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.gap-4{gap:16px;}
.gap-3{gap:12px;}
.mt-1{margin-top:4px;}
.mt-2{margin-top:8px;}
.mt-3{margin-top:12px;}
.mt-4{margin-top:16px;}
.mb-4{margin-bottom:16px;}

/* ── File format badges (upload zone) ── */
.fmt-badge{
  padding:4px 10px;border-radius:6px;font-size:0.72rem;font-weight:700;letter-spacing:0.04em;
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);color:var(--text2);
}

/* ── Separator ── */
.sep{height:1px;background:linear-gradient(90deg,transparent,var(--glass-border),transparent);margin:40px 0;}

/* ── Responsive ── */
@media(max-width:768px){
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .glass,.glass-sm{border-radius:16px;}
  .modal{padding:20px;}
}
@media(max-width:480px){
  .grid-2,.grid-3{grid-template-columns:1fr;}
  .btn-lg{padding:14px 28px;}
}

/* ── Reduced motion ── */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:0.01ms!important;transition-duration:0.01ms!important;}
}
