.sha2-tool{margin-bottom:2rem;}
.sha2-card{background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:20px;box-shadow:0 4px 24px rgba(0,0,0,0.06);overflow:hidden;}
.sha2-algo-row{display:flex;flex-wrap:wrap;gap:0.5rem;padding:1rem 1.25rem;background:var(--surface-muted,#f8fafc);border-bottom:1px solid var(--border,#e5e7eb);}
.sha2-algo-pill{appearance:none;padding:0.5rem 1rem;font-size:0.875rem;font-weight:600;color:var(--text-muted,#6b7280);background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:999px;cursor:pointer;transition:color 0.2s,background 0.2s,border-color 0.2s;}
.sha2-algo-pill:hover{color:var(--text-main,#111827);border-color:var(--primary,#2563eb);}
.sha2-algo-pill.is-active{color:#fff;background:var(--primary,#2563eb);border-color:var(--primary,#2563eb);}
.sha2-input-row{padding:1.25rem 1.25rem 0;}
.sha2-label{display:block;font-size:0.8125rem;font-weight:600;color:var(--text-muted,#6b7280);letter-spacing:0.02em;margin-bottom:0.5rem;}
.sha2-textarea{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:14px;resize:vertical;transition:border-color 0.2s,box-shadow 0.2s;}
.sha2-textarea::placeholder{color:var(--text-muted,#9ca3af);}
.sha2-textarea:focus{outline:none;border-color:var(--primary,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,0.12);}
.sha2-input-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;margin-top:0.5rem;padding-bottom:1rem;}
.sha2-char-count{font-size:0.75rem;color:var(--text-muted,#9ca3af);}
.sha2-file-trigger{padding:0;font-size:0.8125rem;font-weight:600;color:var(--primary,#2563eb);background:none;border:none;cursor:pointer;}
.sha2-file-trigger:hover{text-decoration:underline;}
.sha2-file-input{position:absolute;width:0.1px;height:0.1px;opacity:0;overflow:hidden;z-index:-1;}
.sha2-output-row{padding:1rem 1.25rem 1.25rem;background:var(--surface-muted,#f8fafc);border-top:1px solid var(--border,#e5e7eb);}
.sha2-output-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.5rem;margin-bottom:0.5rem;}
.sha2-output-label{font-size:0.8125rem;font-weight:600;color:var(--text-muted,#6b7280);}
.sha2-copy{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;}
.sha2-copy:hover:not(:disabled){background:var(--primary-dark,#1d4ed8);}
.sha2-copy:disabled{opacity:0.5;cursor:not-allowed;}
.sha2-copy.copied{background:#059669;}
.sha2-copy-icon{display:inline-flex;}
.sha2-output{display:block;min-height:2.5rem;padding:0.75rem 1rem;font-family:ui-monospace,monospace;font-size:0.875rem;line-height:1.5;color:var(--text-main,#111827);word-break:break-all;}
.sha2-output .sha2-placeholder{color:var(--text-muted,#9ca3af);}
.sha2-output.has-hash .sha2-placeholder{display:none;}
.sha2-output.has-hash{color:var(--primary-dark,#1d4ed8);font-weight:500;}
@media (min-width:640px){.sha2-algo-row{padding:1.25rem 1.5rem;}.sha2-input-row{padding:1.5rem 1.5rem 0;}.sha2-textarea{min-height:140px;padding:1.25rem 1.5rem;font-size:1.0625rem;}.sha2-input-meta{padding-bottom:1.25rem;}.sha2-output-row{padding:1.25rem 1.5rem 1.5rem;}.sha2-output{font-size:0.9375rem;}}
