.wrap{max-width:980px;margin:0 auto;padding:28px 0}.back{color:var(--ui-muted,var(--muted));text-decoration:none;font-size:14px}
    h1{margin:20px 0 8px;font-size:30px}.sub{color:var(--ui-muted,var(--muted));margin-bottom:18px;line-height:1.8}
    .card{background:var(--ui-card,var(--card));border:1px solid var(--ui-border,var(--line));border-radius:18px;padding:22px;box-shadow:0 8px 24px rgba(15,23,42,.08);margin-bottom:18px}
    label{display:block;margin:0 0 8px;font-weight:600}.muted{color:var(--ui-muted,var(--muted));font-size:14px;line-height:1.8}
    input,select,textarea{width:100%;border:1px solid var(--ui-border,var(--line));border-radius:12px;padding:11px 12px;font:inherit;background:var(--ui-card,var(--card));color:var(--ui-text,var(--text));outline:none}
    textarea{min-height:150px;line-height:1.65;resize:vertical;font-family:var(--ui-font-sans, "Noto Sans SC", "Source Han Sans SC", "Noto Sans CJK SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif);font-size:15px}
    input:focus,select:focus,textarea:focus{border-color:var(--ui-primary,var(--blue));box-shadow:0 0 0 3px rgba(59,91,255,.12)}
    .row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}.row.three{grid-template-columns:1.2fr 1fr 1fr}.row.single{grid-template-columns:1fr}
    .actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.btn{border:0;border-radius:12px;padding:11px 15px;background:var(--ui-primary,var(--blue));color:#fff;font:inherit;cursor:pointer}.btn.secondary,.btn.ghost{background:var(--ui-ghost,var(--ghost));color:var(--ui-text,var(--text));border:1px solid var(--ui-border,var(--line))}.btn.danger{background:#ef4444;color:#fff}
    .btn:hover{filter:brightness(.98)}.msg{margin-top:10px;color:var(--ui-muted,var(--muted));font-size:14px;line-height:1.7}.msg.ok{color:var(--ok)}.msg.err{color:var(--danger)}
    .drop{border:1px dashed var(--ui-surface-soft-border, var(--ui-border,var(--line)));border-radius:16px;background:var(--ui-surface-soft, var(--ui-card,var(--card)));padding:18px;min-height:118px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ui-muted,var(--muted));cursor:pointer;transition:border-color .15s, background .15s, transform .15s, box-shadow .15s}.drop strong{display:block;color:var(--ui-text,var(--text));font-size:17px;margin-bottom:4px}.drop.drag{border-color:var(--ui-primary,var(--blue));background:rgba(180,70,52,.10);box-shadow:0 6px 18px rgba(78,45,24,.08);transform:translateY(-1px)}.drop.has-file{border-style:solid;background:rgba(180,70,52,.08);box-shadow:0 6px 16px rgba(78,45,24,.06)}.file-input{margin-top:10px}.algos{display:flex;flex-wrap:wrap;gap:10px}.check{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--ui-surface-soft-border, var(--ui-border,var(--line)));background:var(--ui-surface-soft, var(--ui-card,var(--card)));border-radius:999px;padding:8px 12px;font-weight:600;color:var(--ui-text,var(--text));transition:border-color .15s, background .15s, transform .15s, box-shadow .15s}.check:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(78,45,24,.06)}.check:has(input:checked){border-color:rgba(180,70,52,.34);background:rgba(180,70,52,.10);box-shadow:0 4px 12px rgba(78,45,24,.05)}.check input{width:auto;margin:0}.hash-table-wrap{overflow:auto;border:1px solid var(--ui-border,var(--line));border-radius:14px;background:var(--ui-card,var(--card));margin-top:12px}.hash-table{width:100%;border-collapse:collapse;min-width:680px}.hash-table th,.hash-table td{border-bottom:1px solid var(--ui-border,var(--line));padding:10px 12px;text-align:left;vertical-align:top}.hash-table tr:last-child td{border-bottom:0}.hash-table th{background:var(--ui-surface-soft, var(--ui-ghost,var(--ghost)));font-size:14px}.hash-value{font-family:var(--ui-font-mono, ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Noto Sans Mono CJK SC", "Noto Sans Mono", monospace);font-size:13px;line-height:1.6;word-break:break-all}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-weight:700;font-size:13px}.badge.ok{background:rgba(22,163,74,.12);color:var(--ok)}.badge.err{background:rgba(220,38,38,.12);color:var(--danger)}.badge.hint{background:var(--ui-surface-soft, var(--ui-ghost,var(--ghost)));color:var(--ui-muted,var(--muted));border:1px solid var(--ui-surface-soft-border, var(--ui-border,var(--line)))}.hidden-copy{position:absolute;left:-9999px;top:auto;width:1px;height:1px;opacity:0}.note{border:1px solid var(--ui-surface-soft-border, var(--ui-border,var(--line)));border-radius:14px;padding:14px;background:var(--ui-surface-soft, var(--ui-ghost,var(--ghost)));color:var(--ui-muted,var(--muted));line-height:1.8}
    html[data-theme="dark"] body.page-hash .drop{background:rgba(226,196,148,.08);border-color:rgba(226,196,148,.22)}
    html[data-theme="dark"] body.page-hash .drop.has-file{background:rgba(180,70,52,.15);border-color:rgba(226,196,148,.34)}
    html[data-theme="dark"] body.page-hash .drop.drag{background:rgba(180,70,52,.18);border-color:rgba(226,196,148,.42)}
    html[data-theme="dark"] body.page-hash .check{background:rgba(255,248,234,.03);border-color:rgba(226,196,148,.22)}
    html[data-theme="dark"] body.page-hash .check:has(input:checked){background:rgba(180,70,52,.18);border-color:rgba(226,196,148,.36)}
    footer{margin-top:30px;text-align:center;color:var(--ui-muted,var(--muted));font-size:14px;line-height:1.8}footer a{color:inherit;text-decoration:none}
    @media(max-width:760px){body{padding:16px}.row,.row.three,.row.single{grid-template-columns:1fr}h1{font-size:26px}.card{padding:18px}.hash-table{min-width:560px}}
