.fhc-wrap{display:flex;flex-direction:column;gap:.65rem;min-width:0;min-height:0}.fhc-control{display:inline-flex;align-items:center;gap:.35rem;min-width:0}.fhc-workspace{display:flex;flex-direction:column;gap:.6rem;flex:1 1 0;min-height:300px;min-width:0}.fhc-tools-slot{min-height:40px;flex:none}.fhc-tools-slot:has(.fhc-tools[hidden]){display:none}.fhc-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fhc-drop{display:flex;align-items:center;justify-content:center;gap:.85rem;padding:1.6rem 1.25rem;border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);cursor:pointer;text-align:left;transition:border-color var(--transition-fast),background var(--transition-fast);outline:none}.fhc-drop:hover,.fhc-drop:focus-visible,.fhc-drop.drag-over{border-color:var(--color-primary);background:var(--color-surface)}.fhc-drop:focus-visible{box-shadow:0 0 0 3px color-mix(in oklch,var(--color-primary) 25%,transparent)}.fhc-drop-icon{color:var(--color-text-muted);flex-shrink:0}.fhc-drop-text{display:flex;flex-direction:column;gap:.2rem;min-width:0}.fhc-drop-title{font-size:.95rem;font-weight:650;color:var(--color-text)}.fhc-drop-sub{font-size:.8rem;color:var(--color-text-muted)}.fhc-drop.is-compact{flex:none;flex-direction:row;padding:.55rem 1rem;justify-content:flex-start;min-height:44px}.fhc-drop.is-compact .fhc-drop-icon{width:20px;height:20px}.fhc-drop.is-compact .fhc-drop-sub{display:none}.fhc-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.fhc-algos{display:flex;flex-wrap:wrap;gap:.4rem;border:0;padding:0;margin:0;min-width:0;flex:1}.fhc-algo{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border-radius:var(--radius-pill);background:var(--color-bg-secondary);box-shadow:inset 0 0 0 1px var(--color-border-soft);font-size:.84rem;font-weight:650;color:var(--color-text);cursor:pointer}.fhc-algo:has(input:checked){box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--color-primary) 55%,transparent);background:var(--color-surface)}.fhc-algo input{accent-color:var(--color-primary);width:15px;height:15px;margin:0}.fhc-tag{font-style:normal;font-weight:500;font-size:.72rem;color:var(--color-text-muted);margin-left:.3rem}.fhc-pick-dir{white-space:nowrap}.fhc-status{height:2.9em;min-height:2.9em;flex:none;margin:0;overflow:auto;overflow-wrap:anywhere}.fhc-list{flex:1 1 0;min-height:0;min-width:0;overflow:auto;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.fhc-list[hidden]{display:none}.fhc-list>li{flex:none}.fhc-file{padding:.65rem .8rem;border-radius:var(--radius-md);background:var(--color-bg-secondary);box-shadow:inset 0 0 0 1px var(--color-border-soft);display:flex;flex-direction:column;gap:.45rem;min-width:0}.fhc-file.is-ok{box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--color-success) 55%,transparent)}.fhc-file.is-fail{box-shadow:inset 0 0 0 2px color-mix(in oklch,var(--color-danger) 70%,transparent)}.fhc-file-head{display:flex;align-items:center;gap:.6rem;min-width:0}.fhc-file-name{font-family:var(--font-mono);font-size:.86rem;color:var(--color-text);overflow-wrap:anywhere;min-width:0;flex:1}.fhc-file-size{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap}.fhc-badge{font-size:.74rem;font-weight:750;white-space:nowrap}.fhc-badge:empty{display:none}.fhc-badge.is-ok{color:var(--color-success)}.fhc-badge.is-fail{color:var(--color-danger)}.fhc-badge.is-pending,.fhc-badge.is-nolist,.fhc-badge.is-nomatch{color:var(--color-text-muted)}.fhc-remove{min-width:28px;min-height:28px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:1.1rem;line-height:1;cursor:pointer}.fhc-remove:hover{color:var(--color-primary);background:var(--color-surface)}.fhc-progress{display:flex;align-items:center;gap:.6rem}.fhc-progress[hidden]{display:none}.fhc-progress-bar{flex:1;height:6px;border-radius:var(--radius-pill);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border-soft);overflow:hidden}.fhc-progress-fill{display:block;height:100%;width:0;background:var(--color-primary);transition:width .15s linear}.fhc-progress-text{font-size:.76rem;color:var(--color-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.fhc-rows{display:flex;flex-direction:column;gap:.3rem}.fhc-row{display:grid;grid-template-columns:4.8rem minmax(0,1fr) auto;align-items:center;gap:.6rem;min-height:32px}.fhc-row-label{font-size:.74rem;font-weight:750;color:var(--color-primary);letter-spacing:.03em;white-space:nowrap}.fhc-row-value{font-family:var(--font-mono);font-size:.82rem;color:var(--color-text);overflow-wrap:anywhere;word-break:break-all;min-width:0;background:none;padding:0}.fhc-row-wait{font-size:.8rem;color:var(--color-text-muted);grid-column:2 / 4}.fhc-row-error{font-size:.82rem;color:var(--color-danger);grid-column:2 / 4}.fhc-retry{align-self:flex-start}.fhc-notes:empty{display:none}.fhc-note{margin:0;font-size:.84rem;color:var(--color-text-secondary)}.fhc-note.is-ok{color:var(--color-success);font-weight:650}.fhc-note.is-fail{color:var(--color-danger);font-weight:650}.fhc-compare{display:flex;flex-direction:column;gap:.2rem;margin-top:.25rem}.fhc-compare-row{display:grid;grid-template-columns:4.8rem minmax(0,1fr);gap:.6rem;align-items:baseline}.fhc-compare-label{font-size:.74rem;color:var(--color-text-muted)}.fhc-compare-value{font-family:var(--font-mono);font-size:.8rem;overflow-wrap:anywhere;word-break:break-all;background:none;padding:0}.fhc-diff{background:color-mix(in oklch,var(--color-danger) 18%,transparent);color:inherit;border-radius:2px}.fhc-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;font-size:.85rem}.fhc-tools[hidden],.fhc-tools [hidden]{display:none}.fhc-upper{display:inline-flex;align-items:center;gap:.35rem;color:var(--color-text-secondary);cursor:pointer}.fhc-upper input{accent-color:var(--color-primary);margin:0}.fhc-out{margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}.fhc-out-label{color:var(--color-text-secondary)}.fhc-out-algo{width:auto;min-width:9rem;padding-top:.3rem;padding-bottom:.3rem;font-size:.84rem}.fhc-tools-end{display:inline-flex;gap:.4rem}.fhc-verify{flex:none}.fhc-verify summary{cursor:pointer;font-size:.85rem;font-weight:650;min-height:28px}.fhc-verify-body{display:flex;flex-direction:column;gap:.35rem;padding-top:.5rem}.fhc-verify-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.fhc-verify-label{margin:0}.fhc-expected{font-family:var(--font-mono);font-size:.84rem;height:3.4rem;min-height:3.4rem;resize:none}.fhc-expected.drag-over{box-shadow:inset 0 0 0 2px var(--color-primary)}.fhc-verify-out{flex:none;max-height:4.5em;overflow:auto;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:.3rem}.fhc-verify-out:empty{display:none}.fhc-problem{margin:0;font-size:.84rem;color:var(--color-danger)}.fhc-summary{margin:0;font-size:.9rem;font-weight:750}.fhc-summary.is-ok{color:var(--color-success)}.fhc-summary.is-fail{color:var(--color-danger)}.fhc-privacy{margin:0;font-size:.78rem;color:var(--color-text-muted)}@media(max-width:860px){.fhc-workspace{flex:none;height:28rem}.fhc-tools-slot{min-height:100px}.fhc-tools{gap:.35rem}}@media(max-width:640px){.fhc-drop{padding:1.1rem .9rem}.fhc-status{height:4.35em;min-height:4.35em}.fhc-verify summary{min-height:44px;display:list-item;align-content:center}.fhc-verify-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.fhc-tools-slot{min-height:100px}.fhc-out{flex-basis:100%;margin-left:0;gap:.25rem;flex-wrap:nowrap}.fhc-out-label{display:none}.fhc-out-algo{min-width:0;width:8.4rem;flex:none;padding-inline:.35rem;min-height:44px}#fhc-out-copy,#fhc-out-dl{flex:none;min-height:44px}.fhc-privacy{line-height:1.4}.fhc-algos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex-basis:calc(100% - 5rem)}.fhc-algo{min-height:44px;justify-content:flex-start;padding:.3rem .5rem}.fhc-tag,.fhc-pick-dir{display:none}.fhc-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label copy" "value value";gap:.2rem .5rem}.fhc-row-label{grid-area:label}.fhc-row-value{grid-area:value}.fhc-row .fhc-copy{grid-area:copy}.fhc-row-wait,.fhc-row-error{grid-column:1 / -1}.fhc-compare-row{grid-template-columns:minmax(0,1fr);gap:0}.fhc-remove{min-width:32px;min-height:32px}.fhc-tools-end{margin-left:0}}
