.sh-page{max-width:1180px;margin:0 auto;padding:30px 20px 90px}.sh-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}.sh-title{font-family:var(--font-display),sans-serif;font-size:clamp(22px,3vw,30px);font-weight:600;letter-spacing:-.02em;margin:6px 0 8px}.sh-sub{color:var(--muted);font-size:13.5px;line-height:1.65;max-width:56ch}.sh-head-actions{display:flex;gap:10px}.sh-progress{margin:0 0 16px;padding:13px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.sh-progress-bar{height:5px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}.sh-progress-bar>span{display:block;height:100%;border-radius:999px;background:var(--accent-grad);transition:width .35s ease}.sh-progress-text{margin-top:9px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.sh-empty{padding:30px 22px;text-align:center}.sh-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:16px;gap:16px;margin:18px 0 30px}.sh-card{display:flex;flex-direction:column;gap:14px;padding:20px 18px}.sh-card.active{border-color:var(--accent-ring)}.sh-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sh-card-id h2{font-family:var(--font-display),sans-serif;font-size:16px;font-weight:600;letter-spacing:-.01em;overflow-wrap:anywhere}.sh-card-host{display:block;margin-top:3px;font-size:11.5px;color:var(--faint);overflow-wrap:anywhere}.sh-score{flex-shrink:0;min-width:66px;padding:8px 10px;border:1px solid var(--border);border-radius:13px;background:var(--surface-strong);text-align:center}.sh-score-value{display:block;font-family:var(--font-display),sans-serif;font-size:25px;font-weight:700;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sh-score-label{display:block;margin-top:1px;font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--faint)}.sh-score.good{border-color:rgba(74,222,128,.28)}.sh-score.good .sh-score-value{color:var(--ok)}.sh-score.ok{border-color:rgba(251,191,36,.28)}.sh-score.ok .sh-score-value{color:var(--warn)}.sh-score.bad{border-color:rgba(248,113,113,.28)}.sh-score.bad .sh-score-value{color:var(--err)}.sh-spark{display:flex;align-items:center;gap:12px;color:var(--accent-2)}.sh-spark svg{flex-shrink:0;display:block;max-width:100%;height:auto}.sh-spark-delta{font-size:11px;color:var(--faint);line-height:1.4}.sh-spark-delta.up{color:var(--ok)}.sh-spark-delta.down{color:var(--err)}.sh-spark-empty{font-size:11px;color:var(--faint);padding:10px 0}.sh-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px 14px;gap:10px 14px}.sh-stats dt{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}.sh-stats dd{margin-top:2px;font-size:14px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.sh-stats dd.bad{color:var(--err)}.sh-stats dd.warn{color:var(--warn)}.sh-honesty{padding:10px 12px;border:1px solid rgba(96,165,250,.22);border-radius:11px;background:rgba(96,165,250,.06);font-size:11.5px;line-height:1.6;color:var(--muted)}.sh-honesty strong{color:var(--info)}.sh-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}.sh-card-actions button{font-size:12px;padding:8px 13px}.sh-issues{padding:22px 20px}.sh-issues-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.sh-section-title{font-family:var(--font-display),sans-serif;font-size:17px;font-weight:600;letter-spacing:-.01em}.sh-none{padding:18px 0}.sh-safety{display:flex;gap:12px;align-items:flex-start;padding:13px 15px;margin-bottom:22px;border:1px solid rgba(248,113,113,.3);border-radius:12px;background:rgba(248,113,113,.07);font-size:12.5px;line-height:1.65;color:var(--muted)}.sh-safety strong{color:var(--err)}.sh-safety-mark{flex-shrink:0;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:rgba(248,113,113,.16);color:var(--err);font-weight:800;font-size:12px;line-height:1}.sh-group{margin-bottom:30px}.sh-group-head{margin-bottom:8px}.sh-group-head h3{display:flex;align-items:center;gap:9px;font-family:var(--font-display),sans-serif;font-size:14px;font-weight:600}.sh-group-count{padding:1px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface-strong);font-size:11px;font-weight:700;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sh-group-head .sub{font-size:12px;line-height:1.6}.sh-issues .table-scroll table{min-width:820px}.sh-url{color:var(--muted);font-size:11.5px;text-decoration:none;overflow-wrap:anywhere}a.sh-url:hover{color:var(--accent-2);text-decoration:underline}.sh-anchor{display:block;margin-top:3px;font-size:11px;color:var(--faint);font-style:italic;overflow-wrap:anywhere}.sh-code{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid rgba(248,113,113,.24);background:rgba(248,113,113,.08);color:var(--err);font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sh-dim{color:var(--faint);font-size:11.5px}.sh-issues select{padding:7px 26px 7px 10px;font-size:12px}.sh-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.sh-row-actions button{font-size:12px;padding:7px 12px}.sh-preview-btn{white-space:nowrap}.sh-apply-btn,.sh-danger-btn{white-space:nowrap;border:1px solid rgba(248,113,113,.45);background:rgba(248,113,113,.1);color:var(--err);box-shadow:none}.sh-apply-btn:hover:not(:disabled),.sh-danger-btn:hover:not(:disabled){background:rgba(248,113,113,.18);border-color:rgba(248,113,113,.65)}.sh-apply-btn{background:rgba(248,113,113,.2);border-color:var(--err);font-weight:700}.sh-confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:7px;padding:5px 7px;border:1px dashed rgba(248,113,113,.5);border-radius:11px;background:rgba(248,113,113,.05)}.sh-plan{margin-top:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface);overflow:hidden}.sh-plan-banner{padding:8px 14px;font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.sh-plan.dry{border-color:rgba(96,165,250,.3)}.sh-plan.dry .sh-plan-banner{background:rgba(96,165,250,.13);color:var(--info)}.sh-plan.applied{border-color:rgba(74,222,128,.32)}.sh-plan.applied .sh-plan-banner{background:rgba(74,222,128,.13);color:var(--ok)}.sh-plan.manual{border-color:rgba(251,191,36,.3)}.sh-plan.manual .sh-plan-banner{background:rgba(251,191,36,.12);color:var(--warn)}.sh-plan-reason{padding:13px 14px 4px;font-size:12.5px;line-height:1.65;color:var(--muted)}.sh-plan-target{display:block;margin-bottom:5px;font-size:11px;color:var(--faint);overflow-wrap:anywhere}.sh-plan-caveat{margin:8px 14px 0;padding:9px 11px;border-left:2px solid var(--warn);border-radius:0 8px 8px 0;background:rgba(251,191,36,.06);font-size:11.5px;line-height:1.6;color:var(--muted)}.sh-plan-meta{padding:12px 14px 6px;font-size:11.5px;color:var(--faint);overflow-wrap:anywhere}.sh-plan-meta strong{color:var(--text)}.sh-diff{margin:0 14px 14px;border:1px solid var(--border-soft);border-radius:10px;overflow:hidden}.sh-diff-pair+.sh-diff-pair{border-top:1px solid var(--border-soft)}.sh-diff-line{margin:0;padding:9px 11px;font-family:ui-monospace,Cascadia Code,monospace;font-size:11.5px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.sh-diff-line.before{background:rgba(248,113,113,.07);color:#f2b9b9}.sh-diff-line.after{background:rgba(74,222,128,.07);color:#b6ecc6}.sh-diff-line span{font-weight:800;opacity:.7}.sh-candidates{margin:0 14px 14px;font-size:12px}.sh-candidates summary{cursor:pointer;color:var(--muted);padding:6px 0}.sh-candidates ul{list-style:none;margin-top:6px}.sh-candidates li{display:flex;flex-wrap:wrap;align-items:baseline;gap:9px;padding:5px 0;border-top:1px solid var(--border-soft);font-size:11.5px;color:var(--muted);overflow-wrap:anywhere}.sh-cand-score{color:var(--accent-2);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sh-footnote{margin-top:34px;max-width:76ch}@media (max-width:560px){.sh-page{padding:22px 14px 70px}.sh-cards{grid-template-columns:1fr}.sh-head-actions,.sh-head-actions button{width:100%}.sh-stats{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.sh-progress-bar>span{transition:none}}.pay-status.SUCCESS{color:var(--ok);background:rgba(74,222,128,.08);border-color:rgba(74,222,128,.25)}.pay-status.FAILED{color:var(--err);background:rgba(248,113,113,.08);border-color:rgba(248,113,113,.25)}.pay-status.PENDING{color:var(--muted);background:rgba(255,255,255,.04);border-color:var(--border)}.pay-status.RETRYING{color:var(--info);background:rgba(96,165,250,.08);border-color:rgba(96,165,250,.25)}.pay-status.DEAD{color:#fca5a5;background:rgba(248,113,113,.16);border-color:rgba(248,113,113,.45);letter-spacing:.04em}.pay-status.RETRYING:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;animation:wh-pulse 1.2s ease-in-out infinite}@keyframes wh-pulse{0%,to{opacity:1}50%{opacity:.25}}.wh-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:14px}.wh-filter{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 150px}.wh-filter label{margin:0;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}.wh-filter input,.wh-filter select{margin:0;width:100%;padding:9px 11px;font-size:13px}.wh-filter-actions{display:flex;gap:8px;flex:0 0 auto}.wh-filter-actions button{margin:0;padding:9px 16px;font-size:12.5px}.wh-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));grid-gap:10px;gap:10px;margin-top:16px}.wh-stat{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:12px 14px}.wh-stat-value{font-family:var(--font-display),inherit;font-size:22px;line-height:1.1;color:var(--text)}.wh-stat-label{margin-top:4px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}.wh-stat.alert .wh-stat-value{color:var(--err)}.wh-table-scroll table{min-width:900px}.wh-row-main{cursor:pointer}.wh-row-main:hover td{background:rgba(255,255,255,.018)}.wh-row-main.open td{background:rgba(59,130,246,.05)}.wh-dir{display:inline-block;padding:2px 7px;border-radius:6px;font-size:10.5px;font-weight:700;letter-spacing:.06em;border:1px solid var(--border);color:var(--muted)}.wh-dir.OUTBOUND{color:var(--accent-2);border-color:rgba(6,182,212,.3)}.wh-dir.INBOUND{color:var(--info);border-color:rgba(96,165,250,.3)}.wh-event{color:var(--text);font-size:13px;word-break:break-word}.wh-endpoint{font-family:ui-monospace,Cascadia Code,monospace;font-size:11.5px;color:var(--faint);word-break:break-all;max-width:320px}.wh-caret{display:inline-block;width:12px;color:var(--faint);transition:transform .16s ease}.wh-row-main.open .wh-caret{transform:rotate(90deg);color:var(--accent-2)}.wh-actions{display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}.wh-detail-cell{padding:0!important;background:rgba(0,0,0,.22)}.wh-detail{padding:16px 14px 18px;border-bottom:1px solid var(--border-soft)}.wh-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:14px;gap:14px}.wh-block{min-width:0;background:var(--surface-strong,var(--surface));border:1px solid var(--border-soft);border-radius:12px;padding:12px 13px}.wh-block h4{margin:0 0 8px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:700}.wh-pre{margin:0;max-height:320px;overflow:auto;font-family:ui-monospace,Cascadia Code,monospace;font-size:11.5px;line-height:1.6;color:var(--muted);white-space:pre-wrap;word-break:break-word}.wh-redaction{margin-top:12px;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.6;color:var(--accent-2);background:rgba(59,130,246,.07);border:1px solid rgba(56,189,248,.24)}.wh-redaction strong{color:var(--text)}.wh-redaction-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.wh-redaction-tag{font-family:ui-monospace,Cascadia Code,monospace;font-size:10.5px;padding:2px 7px;border-radius:6px;color:var(--accent-2);background:rgba(59,130,246,.12);border:1px solid rgba(56,189,248,.28);word-break:break-all}.wh-blocked{margin-top:12px;padding:10px 12px;border-radius:10px;line-height:1.6;background:rgba(255,255,255,.03);border:1px solid var(--border-soft)}.wh-blocked,.wh-meta{font-size:12px;color:var(--muted)}.wh-meta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:12px}.wh-meta span strong{color:var(--text);font-weight:600}.wh-rule{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:start;padding:14px 0;border-bottom:1px solid var(--border-soft)}.wh-rule:last-child{border-bottom:none}.wh-rule-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.wh-rule-title{font-size:13.5px;font-weight:600;color:var(--text)}.wh-channel{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.05em;border:1px solid var(--border);color:var(--muted)}.wh-channel.SLACK{color:#a5b4fc;border-color:rgba(165,180,252,.32)}.wh-channel.DISCORD{color:#93c5fd;border-color:rgba(147,197,253,.32)}.wh-channel.EMAIL{color:var(--accent-2);border-color:rgba(6,182,212,.32)}.wh-rule-meta{margin-top:5px;font-size:12px;color:var(--muted);line-height:1.65;word-break:break-word}.wh-rule-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.wh-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:12px;gap:12px;margin-top:6px}.wh-form-grid label{margin-top:0}.wh-form-grid input,.wh-form-grid select{margin-bottom:0}.wh-inactive{opacity:.55}.wh-empty{padding:26px 0;text-align:center;color:var(--faint);font-size:13px}.wh-poll{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--faint)}.wh-poll:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);animation:wh-pulse 2.4s ease-in-out infinite}.wh-poll.paused:before{background:var(--faint);animation:none}@media (max-width:640px){.wh-filter,.wh-filter-actions{flex:1 1 100%}.wh-filter-actions button{flex:1 1}.wh-rule{grid-template-columns:minmax(0,1fr)}.wh-rule-actions{justify-content:flex-start}.wh-endpoint{max-width:none}}@media (prefers-reduced-motion:reduce){.pay-status.RETRYING:before,.wh-poll:before{animation:none}.wh-caret{transition:none}}