:root{--ssh-sev-medium:#fb923c;--ssh-color-lime:#a3e635;--ssh-color-stone:#a8a29e}[data-theme=light]{--ssh-sev-medium:#c2410c;--ssh-color-lime:#65a30d;--ssh-color-stone:#78716c}.tool-main{flex-direction:column;flex:1;width:100%;max-width:100%;padding:0;display:flex;overflow:hidden}.tool-header{border-bottom:1px solid var(--color-border);background-color:var(--color-surface-raised);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.5rem 2rem;display:flex}.tool-header__title{flex-direction:column;gap:.25rem;display:flex}.tool-title{color:var(--color-text-title);margin:0;font-size:1.3rem;font-weight:700}.tool-subtitle{color:var(--color-text-muted);margin:0;font-size:.85rem}.ssh-workspace{flex-direction:column;flex:1;width:100%;max-width:1000px;margin:0 auto;padding:1.5rem 2rem 2.5rem;display:flex;overflow-y:auto}.ssh-input-section{flex-direction:column;gap:.625rem;display:flex}.ssh-textarea-wrap{position:relative}.ssh-drop-overlay{background:var(--color-accent-bg);border:2px dashed var(--color-accent);color:var(--color-accent);opacity:0;pointer-events:none;z-index:2;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;transition:opacity .15s;display:flex;position:absolute;inset:0}.ssh-drop-overlay--active{opacity:1}.ssh-textarea{border:1px solid var(--color-border);background:var(--color-bg);width:100%;min-height:140px;max-height:260px;color:var(--color-text-primary);resize:vertical;border-radius:8px;outline:none;padding:.75rem 1rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.8rem;line-height:1.55;transition:border-color .15s;display:block}.ssh-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-bg)}.ssh-textarea::placeholder{color:var(--color-text-muted);font-family:system-ui,-apple-system,sans-serif}.ssh-input-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ssh-sample-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.75rem;font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.ssh-sample-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.ssh-input-hint{color:var(--color-text-muted);font-size:.72rem}.ssh-placeholder{text-align:center;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.ssh-placeholder__icon{opacity:.3;color:var(--color-text-muted)}.ssh-placeholder__text{max-width:360px;font-size:.85rem;line-height:1.5}.ssh-error{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);border-radius:8px;align-items:flex-start;gap:.75rem;margin-top:1rem;padding:1rem 1.25rem;font-size:.82rem;line-height:1.5;display:flex}.ssh-grade-banner{border-radius:8px;align-items:center;gap:1rem;margin-top:1.5rem;margin-bottom:1rem;padding:1rem 1.25rem;display:flex}.ssh-grade-badge{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;font-weight:800;display:flex}.ssh-grade-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.ssh-grade-title{color:var(--color-text-title);font-size:.9rem;font-weight:700}.ssh-grade-desc{color:var(--color-text-muted);font-size:.78rem}.ssh-grade-counts{flex-shrink:0;gap:.5rem;margin-left:auto;display:flex}.ssh-grade-banner--a{background:var(--color-success-bg);border:1px solid var(--color-success-border)}.ssh-grade-banner--b{background:color-mix(in srgb, var(--ssh-color-lime) 6%, transparent);border:1px solid color-mix(in srgb, var(--ssh-color-lime) 20%, transparent)}.ssh-grade-banner--c{background:var(--color-warning-bg);border:1px solid var(--color-warning-border)}.ssh-grade-banner--d{background:color-mix(in srgb, var(--ssh-sev-medium) 6%, transparent);border:1px solid color-mix(in srgb, var(--ssh-sev-medium) 20%, transparent)}.ssh-grade-banner--f{background:var(--color-danger-bg);border:1px solid var(--color-danger-border)}.ssh-sev-pill{white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.7rem;font-weight:600;display:inline-flex}.ssh-sev-pill--high{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.ssh-sev-pill--medium{background:color-mix(in srgb, var(--ssh-sev-medium) 12%, transparent);color:var(--ssh-sev-medium);border:1px solid color-mix(in srgb, var(--ssh-sev-medium) 25%, transparent)}.ssh-sev-pill--low{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.ssh-sev-pill--info{background:var(--color-accent-bg);color:var(--color-accent);border:1px solid var(--color-accent-border)}.ssh-keys-list{flex-direction:column;gap:1rem;display:flex}.ssh-key-card{border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.ssh-key-card__header{background:var(--color-surface-raised);border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.ssh-key-card__title{color:var(--color-text-title);font-size:.85rem;font-weight:700}.ssh-key-card__badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .55rem;font-size:.68rem;font-weight:600;display:inline-flex}.ssh-key-card__badge--type{background:var(--color-accent-bg);color:var(--color-accent);border:1px solid var(--color-accent-border)}.ssh-key-card__badge--bits{background:color-mix(in srgb, var(--ssh-color-lime) 10%, transparent);color:var(--ssh-color-lime);border:1px solid color-mix(in srgb, var(--ssh-color-lime) 20%, transparent)}.ssh-key-card__badge--source{background:color-mix(in srgb, var(--ssh-color-stone) 10%, transparent);color:var(--ssh-color-stone);border:1px solid color-mix(in srgb, var(--ssh-color-stone) 20%, transparent)}.ssh-key-card__grade{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin-left:auto;font-size:.9rem;font-weight:800;display:flex}.ssh-key-card__grade--a{background:var(--color-success-bg);color:var(--color-success)}.ssh-key-card__grade--b{background:color-mix(in srgb, var(--ssh-color-lime) 15%, transparent);color:var(--ssh-color-lime)}.ssh-key-card__grade--c{background:var(--color-warning-bg);color:var(--color-warning)}.ssh-key-card__grade--d{background:color-mix(in srgb, var(--ssh-sev-medium) 15%, transparent);color:var(--ssh-sev-medium)}.ssh-key-card__grade--f{background:var(--color-danger-bg);color:var(--color-danger)}.ssh-key-card__body{padding:1rem}.ssh-key-dl{grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0;padding:0;font-size:.82rem;display:grid}.ssh-key-dl dt{color:var(--color-text-muted);white-space:nowrap;font-weight:500}.ssh-key-dl dd{color:var(--color-text-primary);word-break:break-all;margin:0;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.78rem}.ssh-key-dl dd.ssh-text-normal{font-family:system-ui,-apple-system,sans-serif;font-size:.82rem}.ssh-fp-row{align-items:center;gap:.4rem;display:flex}.ssh-copy-fp{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:.15rem;transition:color .15s;display:inline-flex}.ssh-copy-fp:hover{color:var(--color-accent)}.ssh-copy-fp--ok{color:var(--color-success)}.ssh-findings-section{border-top:1px solid var(--color-border);margin-top:.75rem;padding-top:.75rem}.ssh-findings-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem;font-size:.78rem;font-weight:600}.ssh-findings-list{flex-direction:column;gap:.4rem;display:flex}.ssh-finding{border-radius:6px;align-items:flex-start;gap:.5rem;padding:.5rem .65rem;font-size:.8rem;line-height:1.45;display:flex}.ssh-finding--high{background:var(--color-danger-bg)}.ssh-finding--medium{background:color-mix(in srgb, var(--ssh-sev-medium) 6%, transparent)}.ssh-finding--low{background:var(--color-warning-bg)}.ssh-finding--info{background:var(--color-accent-bg)}.ssh-finding__icon{flex-shrink:0;margin-top:.1rem}.ssh-finding--high .ssh-finding__icon{color:var(--color-danger)}.ssh-finding--medium .ssh-finding__icon{color:var(--ssh-sev-medium)}.ssh-finding--low .ssh-finding__icon{color:var(--color-warning)}.ssh-finding--info .ssh-finding__icon{color:var(--color-accent)}.ssh-finding__body{flex-direction:column;gap:.15rem;min-width:0;display:flex}.ssh-finding__title{color:var(--color-text-title);flex-wrap:wrap;align-items:center;gap:.4rem;font-weight:600;display:flex}.ssh-finding__desc{color:var(--color-text-muted);font-size:.78rem;line-height:1.45}.ssh-finding__value{background:color-mix(in srgb, var(--color-border) 30%, transparent);color:var(--color-text-primary);word-break:break-all;border-radius:4px;margin-top:.2rem;padding:.25rem .5rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.72rem}.ssh-empty-findings{text-align:center;color:var(--color-success);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.ssh-empty-findings p{color:var(--color-text-muted);margin:0;font-size:.8rem}.ssh-host-info{color:var(--color-text-muted);align-items:center;gap:.35rem;margin-bottom:.5rem;font-size:.78rem;display:flex}.ssh-host-badge{background:var(--color-accent-bg);color:var(--color-accent);border:1px solid var(--color-accent-border);border-radius:4px;align-items:center;gap:.25rem;padding:.1rem .45rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.7rem;font-weight:500;display:inline-flex}.ssh-options-section{margin-bottom:.5rem}.ssh-options-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem;font-size:.72rem;font-weight:600}.ssh-options-value{background:color-mix(in srgb, var(--color-border) 30%, transparent);color:var(--color-text-primary);word-break:break-all;border-radius:4px;padding:.35rem .6rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.75rem;line-height:1.5}.ssh-sev-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;align-items:center;gap:.2rem;padding:.1rem .4rem;font-size:.65rem;font-weight:700;display:inline-flex}.ssh-sev-badge--high{background:var(--color-danger-bg);color:var(--color-danger)}.ssh-sev-badge--medium{background:color-mix(in srgb, var(--ssh-sev-medium) 15%, transparent);color:var(--ssh-sev-medium)}.ssh-sev-badge--low{background:var(--color-warning-bg);color:var(--color-warning)}.ssh-sev-badge--info{background:var(--color-accent-bg);color:var(--color-accent)}[id^=ssh-fp-]{display:contents}@media (width<=700px){.ssh-workspace{padding:1rem 1rem 2rem}.ssh-grade-banner{flex-wrap:wrap}.ssh-grade-counts{width:100%;margin-left:0}.ssh-key-dl{grid-template-columns:1fr;gap:.15rem}.ssh-key-dl dt{margin-top:.35rem}.ssh-key-dl dd{margin-left:0}}
