@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css');

.spotify-cover-size-tool,
.spotify-cover-size-tool * {
  box-sizing: border-box;
}

.spotify-cover-size-tool {
  width: 100%;
  max-width: none;
  border-radius: 0 !important;
  overflow-x: hidden;
  position: relative;
  color: #f7fff9;
  background:
    radial-gradient(circle at 15% 12%, rgba(30, 215, 96, 0.42), transparent 30%),
    radial-gradient(circle at 86% 20%, rgba(45, 255, 158, 0.22), transparent 32%),
    linear-gradient(135deg, #07110b 0%, #102016 46%, #050806 100%);
  font-family: inherit;
}

.spotify-cover-size-tool .sct-container {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  box-sizing: border-box;
}

.spotify-cover-size-tool .sct-header {
  text-align: center;
  margin: 0 0 24px;
}

.spotify-cover-size-tool h1 {
  margin: 0;
  font-size: clamp(1.5rem, 5vw, 2.8rem);
  line-height: 1.08;
  letter-spacing: 0;
  color: #ffffff;
  font-weight: 800;
}

.spotify-cover-size-tool .sct-subtitle {
  max-width: 720px;
  margin: 12px auto 0;
  color: rgba(238, 255, 244, 0.86);
  line-height: 1.55;
}

.spotify-cover-size-tool .sct-grid {
  display: grid;
  width: 100%;
  gap: 24px;
  align-items: stretch;
}

.spotify-cover-size-tool .sct-panel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.06));
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(18px);
  border-radius: 16px;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.spotify-cover-size-tool .sct-panel:hover {
  transform: translateY(-2px);
  border-color: rgba(30, 215, 96, 0.36);
  box-shadow: 0 30px 86px rgba(0, 0, 0, 0.4), 0 0 36px rgba(30, 215, 96, 0.12);
}

.spotify-cover-size-tool .sct-input-panel {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.spotify-cover-size-tool .sct-result-panel {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
  gap: 16px;
}

.spotify-cover-size-tool .sct-dropzone {
  width: 100%;
  min-width: 0;
  border: 1px dashed rgba(167, 255, 198, 0.42);
  background: rgba(3, 10, 6, 0.34);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  cursor: pointer;
  transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease, transform 180ms ease;
}

.spotify-cover-size-tool .sct-dropzone:hover,
.spotify-cover-size-tool .sct-dropzone:focus-within,
.spotify-cover-size-tool .sct-dropzone.sct-drag-over {
  border-color: #1ed760;
  background: rgba(30, 215, 96, 0.1);
  box-shadow: 0 0 0 4px rgba(30, 215, 96, 0.14), 0 0 34px rgba(30, 215, 96, 0.2);
}

.spotify-cover-size-tool .sct-dropzone:focus {
  outline: 3px solid rgba(30, 215, 96, 0.48);
  outline-offset: 3px;
}

.spotify-cover-size-tool .sct-file-input {
  width: 1px;
  height: 1px;
  opacity: 0.01;
  position: absolute;
  pointer-events: none;
}

.spotify-cover-size-tool .sct-drop-icon,
.spotify-cover-size-tool .sct-result-icon {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #06150b;
  background: linear-gradient(135deg, #1ed760, #b7ffcf);
  box-shadow: 0 10px 32px rgba(30, 215, 96, 0.28);
}

.spotify-cover-size-tool .sct-drop-icon svg,
.spotify-cover-size-tool .sct-result-icon svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.spotify-cover-size-tool .sct-drop-title {
  color: #ffffff;
  font-weight: 800;
}

.spotify-cover-size-tool .sct-drop-note {
  color: rgba(238, 255, 244, 0.76);
}

.spotify-cover-size-tool .sct-file-meta {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.spotify-cover-size-tool .sct-file-name {
  width: 100%;
  overflow-wrap: anywhere;
  color: #ffffff;
  font-weight: 800;
  padding: 12px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.spotify-cover-size-tool .sct-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
}

.spotify-cover-size-tool .sct-stat {
  min-width: 0;
  padding: 12px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.spotify-cover-size-tool .sct-stat span {
  display: block;
  color: rgba(238, 255, 244, 0.68);
  font-size: 0.78rem;
  line-height: 1.2;
  margin-bottom: 6px;
}

.spotify-cover-size-tool .sct-stat strong {
  display: block;
  color: #ffffff;
  font-size: 0.94rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.spotify-cover-size-tool .sct-controls {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.spotify-cover-size-tool .sct-dimensions,
.spotify-cover-size-tool .sct-quality-row,
.spotify-cover-size-tool .sct-actions {
  display: grid;
  width: 100%;
  gap: 12px;
}

.spotify-cover-size-tool .sct-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  width: 100%;
  color: rgba(238, 255, 244, 0.86);
  font-weight: 700;
}

.spotify-cover-size-tool .sct-field span {
  line-height: 1.25;
}

.spotify-cover-size-tool .sct-field strong {
  color: #b7ffcf;
}

.spotify-cover-size-tool input[type="number"],
.spotify-cover-size-tool input[type="range"] {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.spotify-cover-size-tool input[type="number"] {
  appearance: textfield;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(4, 12, 7, 0.64);
  color: #ffffff;
  border-radius: 12px;
  outline: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.spotify-cover-size-tool input[type="number"]:focus {
  border-color: #1ed760;
  background: rgba(4, 12, 7, 0.82);
  box-shadow: 0 0 0 4px rgba(30, 215, 96, 0.16);
}

.spotify-cover-size-tool input[type="range"] {
  accent-color: #1ed760;
  min-height: 40px;
}

.spotify-cover-size-tool .sct-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  cursor: pointer;
  color: #ffffff;
  font-weight: 800;
}

.spotify-cover-size-tool .sct-toggle input {
  position: absolute;
  opacity: 0.01;
}

.spotify-cover-size-tool .sct-toggle-ui {
  width: 52px;
  height: 30px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.18);
  position: relative;
  flex: 0 0 auto;
  transition: background 160ms ease, box-shadow 160ms ease;
}

.spotify-cover-size-tool .sct-toggle-ui::after {
  content: "";
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #ffffff;
  position: absolute;
  top: 3px;
  left: 4px;
  transition: transform 160ms ease;
}

.spotify-cover-size-tool .sct-toggle input:checked + .sct-toggle-ui {
  background: #1ed760;
  box-shadow: 0 0 22px rgba(30, 215, 96, 0.28);
}

.spotify-cover-size-tool .sct-toggle input:checked + .sct-toggle-ui::after {
  transform: translateX(21px);
}

.spotify-cover-size-tool .sct-toggle input:focus + .sct-toggle-ui {
  outline: 3px solid rgba(30, 215, 96, 0.48);
  outline-offset: 3px;
}

.spotify-cover-size-tool button {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
  min-height: 46px;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease, opacity 160ms ease;
}

.spotify-cover-size-tool button:focus {
  outline: 3px solid rgba(183, 255, 207, 0.6);
  outline-offset: 3px;
}

.spotify-cover-size-tool button:hover:not(:disabled) {
  transform: translateY(-1px);
}

.spotify-cover-size-tool .sct-convert-btn,
.spotify-cover-size-tool .sct-download-btn {
  color: #06150b;
  background: linear-gradient(135deg, #1ed760, #b7ffcf);
  box-shadow: 0 14px 34px rgba(30, 215, 96, 0.24);
}

.spotify-cover-size-tool .sct-convert-btn:hover:not(:disabled),
.spotify-cover-size-tool .sct-download-btn:hover:not(:disabled) {
  box-shadow: 0 18px 42px rgba(30, 215, 96, 0.36);
}

.spotify-cover-size-tool .sct-clear-btn {
  color: #f7fff9;
  background: rgba(255, 255, 255, 0.13);
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.spotify-cover-size-tool .sct-download-btn {
  flex-shrink: 0;
  margin-top: 0;
}

.spotify-cover-size-tool button:disabled {
  opacity: 0.48;
  cursor: not-allowed;
}

.spotify-cover-size-tool .sct-status,
.spotify-cover-size-tool .sct-result-status {
  min-height: 22px;
  color: rgba(238, 255, 244, 0.86);
  line-height: 1.45;
}

.spotify-cover-size-tool .sct-status.sct-error,
.spotify-cover-size-tool .sct-result-status.sct-error {
  color: #ffd1d1;
}

.spotify-cover-size-tool .sct-status.sct-notice,
.spotify-cover-size-tool .sct-result-status.sct-notice {
  color: #d8ffe5;
}

.spotify-cover-size-tool .sct-preview-wrap {
  width: 100%;
  min-width: 0;
  border-radius: 14px;
  background:
    linear-gradient(45deg, rgba(255,255,255,0.055) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(255,255,255,0.055) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(255,255,255,0.055) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(255,255,255,0.055) 75%),
    rgba(3, 10, 6, 0.36);
  background-size: 24px 24px;
  background-position: 0 0, 0 12px, 12px -12px, -12px 0;
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.spotify-cover-size-tool .sct-empty-result {
  width: 100%;
  padding: 16px;
  text-align: center;
  color: rgba(238, 255, 244, 0.78);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.spotify-cover-size-tool .sct-result-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  height: auto;
  display: block;
  border-radius: 10px;
  animation: sctFadeIn 260ms ease both;
}

@keyframes sctFadeIn {
  from { opacity: 0; transform: scale(0.985); }
  to { opacity: 1; transform: scale(1); }
}

@media (min-width: 320px) and (max-width: 374px) {
  .spotify-cover-size-tool { padding: 24px 8px; border-radius: 0 !important; }
  .spotify-cover-size-tool .sct-container { width: 100%; }
  .spotify-cover-size-tool h1 { font-size: clamp(1.5rem, 5vw, 2.8rem); }
  .spotify-cover-size-tool .sct-subtitle { font-size: 0.92rem; }
  .spotify-cover-size-tool .sct-grid { grid-template-columns: 1fr; gap: 16px; }
  .spotify-cover-size-tool .sct-panel { padding: 16px; gap: 16px; }
  .spotify-cover-size-tool .sct-dropzone { min-height: 148px; padding: 16px; }
  .spotify-cover-size-tool input[type="number"] { min-height: 44px; padding: 10px 12px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-dimensions,
  .spotify-cover-size-tool .sct-quality-row,
  .spotify-cover-size-tool .sct-actions { grid-template-columns: 1fr; }
  .spotify-cover-size-tool button { min-height: 46px; padding: 11px 14px; font-size: 0.94rem; }
  .spotify-cover-size-tool .sct-preview-wrap { min-height: 170px; max-height: 220px; flex: 0 1 auto; }
  .spotify-cover-size-tool .sct-stats { grid-template-columns: 1fr; }
}

@media (min-width: 375px) and (max-width: 429px) {
  .spotify-cover-size-tool { padding: 24px 12px; border-radius: 0 !important; }
  .spotify-cover-size-tool .sct-container { width: 100%; }
  .spotify-cover-size-tool h1 { font-size: clamp(1.5rem, 5vw, 2.8rem); }
  .spotify-cover-size-tool .sct-subtitle { font-size: 0.96rem; }
  .spotify-cover-size-tool .sct-grid { grid-template-columns: 1fr; gap: 16px; }
  .spotify-cover-size-tool .sct-panel { padding: 16px; gap: 16px; }
  .spotify-cover-size-tool .sct-dropzone { min-height: 152px; padding: 16px; }
  .spotify-cover-size-tool input[type="number"] { min-height: 46px; padding: 11px 12px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-dimensions,
  .spotify-cover-size-tool .sct-quality-row,
  .spotify-cover-size-tool .sct-actions { grid-template-columns: 1fr; }
  .spotify-cover-size-tool button { min-height: 48px; padding: 12px 14px; font-size: 0.96rem; }
  .spotify-cover-size-tool .sct-preview-wrap { min-height: 180px; max-height: 230px; flex: 0 1 auto; }
  .spotify-cover-size-tool .sct-stats { grid-template-columns: 1fr; }
}

@media (min-width: 430px) and (max-width: 767px) {
  .spotify-cover-size-tool { padding: 32px 16px; border-radius: 0 !important; }
  .spotify-cover-size-tool .sct-container { width: 100%; }
  .spotify-cover-size-tool h1 { font-size: clamp(1.5rem, 5vw, 2.8rem); }
  .spotify-cover-size-tool .sct-subtitle { font-size: 1rem; }
  .spotify-cover-size-tool .sct-grid { grid-template-columns: 1fr; gap: 24px; }
  .spotify-cover-size-tool .sct-panel { padding: 20px; gap: 16px; }
  .spotify-cover-size-tool .sct-dropzone { min-height: 160px; padding: 16px; }
  .spotify-cover-size-tool input[type="number"] { min-height: 46px; padding: 11px 14px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-dimensions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spotify-cover-size-tool .sct-quality-row,
  .spotify-cover-size-tool .sct-actions { grid-template-columns: 1fr; }
  .spotify-cover-size-tool button { min-height: 48px; padding: 12px 16px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-preview-wrap { min-height: 190px; max-height: 240px; flex: 0 1 auto; }
  .spotify-cover-size-tool .sct-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .spotify-cover-size-tool { padding: 32px 24px; border-radius: 0 !important; }
  .spotify-cover-size-tool .sct-container { width: 100%; }
  .spotify-cover-size-tool h1 { font-size: clamp(1.5rem, 5vw, 2.8rem); }
  .spotify-cover-size-tool .sct-subtitle { font-size: 1.04rem; }
  .spotify-cover-size-tool .sct-grid { grid-template-columns: 1fr; gap: 24px; }
  .spotify-cover-size-tool .sct-panel { padding: 24px; gap: 16px; }
  .spotify-cover-size-tool .sct-dropzone { min-height: 168px; padding: 24px; }
  .spotify-cover-size-tool input[type="number"] { min-height: 48px; padding: 12px 14px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-dimensions,
  .spotify-cover-size-tool .sct-quality-row,
  .spotify-cover-size-tool .sct-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spotify-cover-size-tool button { min-height: 48px; padding: 12px 16px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-preview-wrap { min-height: 200px; max-height: 260px; flex: 0 1 auto; }
}

@media (min-width: 1024px) and (max-width: 1199px) {
  .spotify-cover-size-tool { padding: 32px 24px; border-radius: 0 !important; }
  .spotify-cover-size-tool .sct-container { width: 100%; }
  .spotify-cover-size-tool h1 { font-size: clamp(1.5rem, 5vw, 2.8rem); }
  .spotify-cover-size-tool .sct-subtitle { font-size: 1.05rem; }
  .spotify-cover-size-tool .sct-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
  .spotify-cover-size-tool .sct-panel { padding: 24px; gap: 16px; }
  .spotify-cover-size-tool .sct-dropzone { min-height: 168px; padding: 24px; }
  .spotify-cover-size-tool input[type="number"] { min-height: 48px; padding: 12px 14px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-dimensions,
  .spotify-cover-size-tool .sct-quality-row,
  .spotify-cover-size-tool .sct-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spotify-cover-size-tool button { min-height: 48px; padding: 12px 16px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-preview-wrap { min-height: 170px; flex: 1 1 170px; max-height: none; }
}

@media (min-width: 1200px) {
  .spotify-cover-size-tool { padding: 32px; border-radius: 0 !important; }
  .spotify-cover-size-tool .sct-container { width: 100%; }
  .spotify-cover-size-tool h1 { font-size: clamp(1.5rem, 5vw, 2.8rem); }
  .spotify-cover-size-tool .sct-subtitle { font-size: 1.06rem; }
  .spotify-cover-size-tool .sct-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
  .spotify-cover-size-tool .sct-panel { padding: 24px; gap: 16px; }
  .spotify-cover-size-tool .sct-dropzone { min-height: 172px; padding: 24px; }
  .spotify-cover-size-tool input[type="number"] { min-height: 48px; padding: 12px 14px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-dimensions,
  .spotify-cover-size-tool .sct-quality-row,
  .spotify-cover-size-tool .sct-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spotify-cover-size-tool button { min-height: 48px; padding: 12px 16px; font-size: 1rem; }
  .spotify-cover-size-tool .sct-preview-wrap { min-height: 170px; flex: 1 1 170px; max-height: none; }
}