/* file-hash-calculator.css */
/* Tool-specific layout only. Uses tools.css tokens. */

.hash-wrap{
  display: grid;
  gap: 16px;
}

/* Upload area */
.upload-area{
  border: 2px dashed var(--border-color);
  border-radius: 14px;
  padding: 26px 16px;
  text-align: center;
  background: rgba(0, 212, 255, 0.04);
  transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
  outline: none;
}

.upload-area:hover,
.upload-area.drag-over{
  border-color: var(--primary-cyan);
  background: rgba(0, 212, 255, 0.08);
  transform: translateY(-1px);
}

.upload-area:focus-visible{
  box-shadow: 0 0 0 3px var(--focus-ring);
}

.upload-icon{
  font-size: 2.4rem;
  margin-bottom: 6px;
}

.file-input{ display:none; }

/* Controls bar */
.controls{
  display:flex;
  gap: 12px;
  align-items:center;
  flex-wrap:wrap;
  border: 1px solid var(--border-color);
  border-radius: 14px;
  padding: 12px 12px;
  background: rgba(5, 8, 16, 0.55);
  margin-top: 14px;
}

.control-group{
  display:flex;
  gap: 10px;
  align-items:center;
  flex-wrap:wrap;
  flex: 1;
}

/* checkbox chip */
.chip{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 212, 255, 0.18);
  background: rgba(0, 212, 255, 0.06);
  color: var(--text-secondary);
  font-size: 0.95rem;
  cursor: pointer;
  user-select:none;
}

.chip input{ width: 16px; height: 16px; accent-color: var(--primary-cyan); }

.chip:hover{
  border-color: var(--primary-cyan);
}

/* Status banners */
.file-info,
.notice{
  display:none;
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid transparent;
  font-size: 0.95rem;
}

.file-info{
  background: rgba(16, 185, 129, 0.10);
  border-color: rgba(16, 185, 129, 0.35);
  color: #a7f3d0;
}

.notice{
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.35);
  color: #fde68a;
}

/* Loading */
.loading{
  display:none;
  text-align:center;
  padding: 18px 8px;
}

.spinner{
  border: 4px solid rgba(0, 212, 255, 0.18);
  border-top: 4px solid var(--primary-cyan);
  border-radius: 50%;
  width: 42px;
  height: 42px;
  animation: spin 1s linear infinite;
  margin: 0 auto 10px;
}

@keyframes spin{ to { transform: rotate(360deg); } }

.hash-results{ display:none; margin-top: 16px; }
.hash-results h3{ margin: 0 0 10px; }

/* Hash list */
.hash-item{
  display:flex;
  gap: 12px;
  align-items:center;
  padding: 12px;
  border: 1px solid rgba(0, 212, 255, 0.16);
  border-radius: 14px;
  margin-bottom: 10px;
  background: rgba(5, 8, 16, 0.55);
}

.hash-type{
  min-width: 92px;
  font-weight: 800;
  color: var(--text-primary);
}

.hash-value{
  flex:1;
  word-break: break-all;
  font-family: var(--mono);
  color: var(--text-secondary);
  font-size: 0.95rem;
}

.copy-btn{
  border: 1px solid rgba(0, 212, 255, 0.18);
  background: rgba(0, 212, 255, 0.10);
  color: var(--primary-cyan);
  padding: 9px 12px;
  border-radius: 12px;
  cursor: pointer;
  font-weight: 800;
}

.copy-btn:hover{
  transform: translateY(-1px);
}

/* About section card */
.info-section{
  margin-top: 18px;
  padding: 16px 16px;
  border-radius: 14px;
  border: 1px solid rgba(0, 212, 255, 0.16);
  background: rgba(0, 212, 255, 0.04);
}

.info-section h3{
  margin: 0 0 8px;
}

.info-section p{
  margin-top: 10px;
  color: var(--text-secondary);
  font-style: italic;
}

/* Responsive */
@media (max-width: 820px){
  .hash-item{
    flex-direction: column;
    align-items: stretch;
  }
  .hash-type{ min-width: 0; }
}
