.sha1-section{margin-bottom:2rem;}
.sha1-wrap{background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:16px;box-shadow:0 4px 24px rgba(0,0,0,0.06);overflow:hidden;}
.sha1-source-block{padding:1.25rem 1.25rem 0;}
.sha1-label{display:block;font-size:0.8125rem;font-weight:600;color:var(--text-muted,#6b7280);letter-spacing:0.02em;margin-bottom:0.5rem;}
.sha1-input{width:100%;min-height:120px;padding:1rem 1.25rem;font-size:1rem;line-height:1.5;color:var(--text-main,#111827);background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:12px;resize:vertical;transition:border-color 0.2s,box-shadow 0.2s;}
.sha1-input::placeholder{color:var(--text-muted,#9ca3af);}
.sha1-input:focus{outline:none;border-color:var(--primary,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,0.12);}
.sha1-source-meta{margin-top:0.5rem;padding-bottom:1rem;}
.sha1-char-count{font-size:0.75rem;color:var(--text-muted,#9ca3af);}
.sha1-divider{display:flex;align-items:center;gap:1rem;padding:0 1.25rem;}
.sha1-divider::before,.sha1-divider::after{content:"";flex:1;height:1px;background:var(--border,#e5e7eb);}
.sha1-divider span{font-size:0.75rem;font-weight:600;color:var(--text-muted,#9ca3af);text-transform:uppercase;letter-spacing:0.05em;}
.sha1-dropzone{margin:1rem 1.25rem;padding:1.5rem;border:2px dashed var(--border,#e5e7eb);border-radius:12px;background:var(--surface-muted,#f9fafb);cursor:pointer;transition:border-color 0.2s,background 0.2s;}
.sha1-dropzone:hover,.sha1-dropzone:focus{border-color:var(--primary,#2563eb);background:rgba(37,99,235,0.04);}
.sha1-dropzone.sha1-dragover{border-color:var(--primary,#2563eb);background:rgba(37,99,235,0.08);}
.sha1-dropzone-inner{display:flex;flex-direction:column;align-items:center;gap:0.5rem;}
.sha1-dropzone-icon{color:var(--text-muted,#9ca3af);}
.sha1-dropzone:hover .sha1-dropzone-icon,.sha1-dropzone:focus .sha1-dropzone-icon{color:var(--primary,#2563eb);}
.sha1-dropzone-text{font-size:0.9375rem;font-weight:500;color:var(--text-muted,#6b7280);}
.sha1-file-input{position:absolute;width:0.1px;height:0.1px;opacity:0;overflow:hidden;z-index:-1;}
.sha1-result-bar{padding:1rem 1.25rem;background:var(--surface-muted,#f8fafc);border-top:1px solid var(--border,#e5e7eb);}
.sha1-result-inner{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;}
.sha1-output{flex:1;min-width:0;font-family:ui-monospace,monospace;font-size:0.875rem;line-height:1.5;color:var(--text-main,#111827);word-break:break-all;}
.sha1-output .sha1-placeholder{color:var(--text-muted,#9ca3af);}
.sha1-output.has-hash .sha1-placeholder{display:none;}
.sha1-output.has-hash{color:var(--primary-dark,#1d4ed8);font-weight:500;}
.sha1-copy-btn{display:inline-flex;align-items:center;gap:0.375rem;padding:0.5rem 1rem;font-size:0.875rem;font-weight:600;color:#fff;background:var(--primary,#2563eb);border:none;border-radius:10px;cursor:pointer;transition:background 0.2s,opacity 0.2s;}
.sha1-copy-btn:hover:not(:disabled){background:var(--primary-dark,#1d4ed8);}
.sha1-copy-btn:disabled{opacity:0.5;cursor:not-allowed;}
.sha1-copy-btn.copied{background:#059669;}
.sha1-copy-icon{display:inline-flex;}
@media (min-width:640px){.sha1-source-block{padding:1.5rem 1.5rem 0;}.sha1-input{min-height:140px;padding:1.25rem 1.5rem;font-size:1.0625rem;}.sha1-source-meta{padding-bottom:1.25rem;}.sha1-divider{padding:0 1.5rem;}.sha1-dropzone{margin:1.25rem 1.5rem;padding:2rem;}.sha1-result-bar{padding:1.25rem 1.5rem;}.sha1-output{font-size:0.9375rem;}}
