.filter-tool{gap:var(--space-4);flex-direction:column;display:flex}.filter-input{gap:var(--space-4)}.filter-input>.btn{align-self:flex-start}.filter-input textarea{width:100%;min-height:14rem;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text);font:inherit;resize:vertical;transition:border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out)}.filter-input textarea:hover{border-color:var(--color-accent-soft)}.filter-input textarea:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-highlight);outline:none}.file-card{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-soft);display:flex}.file-card-icon{width:1.75rem;height:1.75rem;color:var(--color-accent);flex:none}.file-card-text{flex-direction:column;flex:1;min-width:0;display:flex}.file-card-text strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-card-text span,.filter-note{color:var(--color-text-muted);font-size:var(--font-size-sm)}.filter-note{margin:0}.filter-reading{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-5);border:2px dashed var(--color-accent-soft);border-radius:var(--radius-lg);color:var(--color-text-muted);margin:0;display:flex}.filter-reading .spinner{color:var(--color-accent)}.filter-input textarea[readonly]{background:var(--color-surface);color:var(--color-text-muted)}.strict-toggle{align-items:flex-start;gap:var(--space-3);cursor:pointer;display:flex;position:relative}.strict-toggle input{opacity:0;width:1px;height:1px;position:absolute}.strict-switch{border-radius:var(--radius-pill);background:var(--color-highlight-off);width:2.5rem;height:1.5rem;box-shadow:inset 0 0 0 1px var(--color-border);transition:background-color var(--duration-base) var(--ease-out);flex:none;margin-top:.1rem;position:relative}.strict-switch:after{content:"";background:var(--color-surface-raised);width:1.1rem;height:1.1rem;transition:transform var(--duration-base) var(--ease-spring);border-radius:50%;position:absolute;top:.2rem;left:.2rem;box-shadow:0 1px 3px #3a2e2840}.strict-toggle input:checked+.strict-switch{background:var(--color-accent)}.strict-toggle input:checked+.strict-switch:after{transform:translate(1rem)}.strict-toggle input:focus-visible+.strict-switch{outline:3px solid var(--color-accent);outline-offset:3px}.strict-text{gap:var(--space-1);flex-direction:column;display:flex}.strict-text small{color:var(--color-text-muted);font-size:var(--font-size-sm)}.filter-error{color:var(--color-accent);animation:rise-in var(--duration-base) var(--ease-out) both;margin:0;font-weight:600}.filter-layout{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));align-items:stretch;display:grid}.filter-panel{gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-soft);flex-direction:column;display:flex}.filter-panel-title{min-height:2.25rem;font-size:var(--font-size-lg);align-items:center;margin:0;font-weight:700;display:flex}.filter-panel-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;min-height:2.25rem;display:flex}.filter-help,.filter-count{color:var(--color-text-muted);margin:0}.filter-count{align-items:center;gap:var(--space-2);display:flex}.filter-count .spinner{color:var(--color-accent)}.filter-review,.filter-output{max-height:28rem;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);font:inherit;white-space:pre-wrap;word-break:break-word;margin:0;line-height:1.8;overflow:auto}.filter-result{aspect-ratio:668/933;flex-direction:column;flex:1 0 auto;width:100%;max-width:32rem;margin-inline:auto;display:flex;position:relative}.filter-result>.scan-stage{z-index:1;aspect-ratio:auto;width:100%;max-width:none;height:100%;position:absolute;inset:0}.filter-result-body{gap:var(--space-3);min-height:0;animation:fade-in var(--duration-slow) var(--ease-out) both;flex-direction:column;flex:auto;display:flex}.filter-result-body .filter-output{flex:auto;min-height:8rem;max-height:none}.pii{padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--color-highlight);color:var(--color-text);cursor:pointer;transition:background-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);animation:pii-in var(--duration-slow) var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 45ms)}.pii:hover{box-shadow:0 0 0 2px var(--color-accent-soft)}.pii:after{content:attr(data-label);margin-left:var(--space-1);color:var(--color-accent);text-transform:uppercase;font-size:.7em;font-weight:700}.pii-off{background:var(--color-highlight-off);text-decoration:line-through}@keyframes pii-in{0%{box-shadow:0 0 0 0 var(--color-accent-soft);background-color:#0000}60%{box-shadow:0 0 0 3px var(--color-accent-soft)}}.filter-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.icon-pop{animation:pop var(--duration-slow) var(--ease-spring) both}@keyframes pop{0%{opacity:0;transform:scale(.4)rotate(-20deg)}}.seal{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);border-radius:var(--radius-pill);background:var(--color-highlight);color:var(--color-text);font-size:var(--font-size-sm);animation:seal-in var(--duration-slow) var(--ease-spring) both;font-weight:600;display:inline-flex}.seal img{object-fit:cover;width:1.75rem;height:1.75rem;box-shadow:0 0 0 2px var(--color-surface-raised);border-radius:50%}@keyframes seal-in{0%{opacity:0;transform:scale(.6)}}.scan-stage{aspect-ratio:668/933;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);flex:1 0 auto;width:100%;max-width:32rem;margin-inline:auto;position:relative;overflow:hidden}.scan-img{object-fit:fill;width:100%;height:100%;position:absolute;inset:0}.scan-caption{left:50%;bottom:var(--space-4);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-surface-raised) 88%, transparent);box-shadow:var(--shadow-soft);color:var(--color-text-muted);font-size:var(--font-size-sm);white-space:nowrap;margin:0;position:absolute;transform:translate(-50%)}.scan-protected{clip-path:inset(0 0 100%);animation:scan-reveal var(--scan-duration) var(--ease-in-out) forwards}.scan-sweep{background:repeating-linear-gradient(to bottom, transparent 0 3px, #ffffff0f 3px 4px), linear-gradient(to bottom, transparent 75%, color-mix(in srgb, var(--color-scan) 30%, transparent));height:100%;animation:scan-sweep var(--scan-duration) var(--ease-in-out) forwards;transition:opacity var(--duration-base) var(--ease-out);position:absolute;top:-100%;left:0;right:0}.scan-sweep:after{content:"";background:var(--color-scan);height:4px;box-shadow:0 0 12px 2px var(--color-scan), 0 0 36px 6px color-mix(in srgb, var(--color-scan) 45%, transparent);border-radius:2px;position:absolute;bottom:-2px;left:0;right:0}.scan.is-load .scan-protected,.scan.is-load .scan-sweep{animation-play-state:paused}.scan.is-hold .scan-sweep,.scan.is-leave .scan-sweep{opacity:0}.scan.is-leave{animation:scan-leave var(--leave-duration) var(--ease-in-out) forwards}@keyframes scan-reveal{to{clip-path:inset(0)}}@keyframes scan-sweep{to{transform:translateY(100%)}}@keyframes scan-leave{to{opacity:0}}
