:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #273449;--border: #334155;--text: #e2e8f0;--muted: #94a3b8;--primary: #3b82f6;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--purple: #a855f7;--overlay: #f97316;--log-bg: #0b1220;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}@media (prefers-color-scheme: light){:root{--bg: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--border: #cbd5e1;--text: #0f172a;--muted: #64748b;--log-bg: #0f172a;color-scheme:light}}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.45}code{font-family:ui-monospace,Consolas,monospace;font-size:.9em;word-break:break-all}a{color:var(--primary)}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--surface);box-shadow:0 2px 12px #00000040}.topbar-side.end{justify-self:end}.brand{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.brand h1{display:inline-flex;align-items:center;gap:10px;margin:0;font-size:1.5rem;white-space:nowrap}.brand h1 img{width:1.4em;height:1.4em;flex-shrink:0}.brand p{margin:0;color:var(--muted);font-size:.9rem}.pill{padding:6px 14px;border-radius:999px;font-weight:600;font-size:.85rem;border:1px solid currentColor;white-space:nowrap}.pill:before{content:"●  "}.pill.off{color:var(--danger)}.pill.auth{color:var(--warning)}.pill.on{color:var(--success)}.banner{margin:16px 24px 0;padding:12px 16px;border-radius:var(--radius)}.banner.danger{background:color-mix(in srgb,var(--danger) 18%,transparent);border:1px solid var(--danger)}.grid{display:grid;grid-template-columns:1fr;gap:16px;padding:16px 24px;max-width:1400px;margin:0 auto}@media (min-width: 700px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.span-md{grid-column:1 / -1}}@media (min-width: 1000px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.span-md{grid-column:auto}}.span-all{grid-column:1 / -1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-width:0}.card h2{margin:0;font-size:1.05rem}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.row{display:flex;gap:8px;flex-wrap:wrap}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}.kv dt{color:var(--muted);font-weight:600}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.hint,.muted{color:var(--muted);font-size:.88rem;margin:0}.small{font-size:.8rem}.hint summary{cursor:pointer}.hint ol{padding-left:20px;margin:8px 0 0}.stat{margin:0}.stat strong{font-size:1.6rem;margin-right:4px}.btn{font:inherit;font-weight:600;font-size:.9rem;padding:8px 14px;border-radius:8px;border:1px solid transparent;cursor:pointer;color:#fff;background:var(--surface-2);transition:filter .15s,opacity .15s}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--primary)}.btn.danger{background:var(--danger)}.btn.warning{background:var(--warning);color:#1f1300}.btn.purple{background:var(--purple)}.btn.ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn.small-btn{padding:2px 8px;font-size:.8rem;vertical-align:middle}.badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.75rem;font-weight:700;letter-spacing:.02em;margin-right:4px;border:1px solid currentColor}.badge.normal,.badge.success{color:var(--success)}.badge.suspicious,.badge.warning{color:var(--warning)}.badge.blacklist{color:#fff;background:var(--danger);border-color:var(--danger)}.badge.protected{color:var(--primary)}.badge.overlay{color:var(--overlay)}.badge.muted{color:var(--muted)}.cat{font-weight:600;margin-right:6px}.cat-third-party{color:var(--text)}.cat-auto-installed{color:var(--warning)}.cat-system,.cat-system-updated{color:var(--primary)}.cat-removed{color:var(--muted);text-decoration:line-through}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips:empty{display:none}.chip{padding:4px 10px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);font-weight:600;font-size:.85rem}.chip.blacklist{color:var(--danger)}.chip.suspicious{color:var(--warning)}.chip.overlay{color:var(--overlay)}.chip.protected{color:var(--primary)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.toolbar input[type=search],.toolbar select{font:inherit;padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.toolbar input[type=search]{flex:1 1 220px;min-width:0}.check{display:inline-flex;gap:6px;align-items:center;font-size:.9rem;cursor:pointer}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;max-height:560px;overflow-y:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{position:sticky;top:0;background:var(--surface-2);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);z-index:1}.th-sort{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.th-sort:hover,th.sorted .th-sort{color:var(--text)}.th-sort:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.th-sort:after{content:"⇅";opacity:.35;font-size:.9em}th[aria-sort=ascending] .th-sort:after{content:"▲";opacity:1;color:var(--primary)}th[aria-sort=descending] .th-sort:after{content:"▼";opacity:1;color:var(--primary)}tbody tr:hover{background:var(--surface-2)}.row-blacklist{background:color-mix(in srgb,var(--danger) 10%,transparent)}.row-protected{color:var(--muted)}.col-check{width:36px}.app-name{font-weight:600}.nowrap{white-space:nowrap}.warn-text{color:var(--warning)}.empty{text-align:center;color:var(--muted);padding:24px;margin:0}.progress{display:flex;align-items:center;gap:10px}.progress-track{flex:1;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress-bar{height:100%;width:0;background:var(--primary);transition:width .2s}.progress-text{font-variant-numeric:tabular-nums;font-size:.85rem;width:3.5em;text-align:right}.log{background:var(--log-bg);color:#e2e8f0;font-family:ui-monospace,Consolas,monospace;font-size:.82rem;border-radius:8px;padding:10px 12px;height:240px;overflow-y:auto}.log-line{white-space:pre-wrap;overflow-wrap:anywhere}.log-time{color:#64748b}.log-line.success{color:#86efac}.log-line.warning{color:#fcd34d}.log-line.error{color:#fca5a5}.modal{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:20px}.modal.wide{width:min(960px,calc(100vw - 32px))}.modal::backdrop{background:#0009}.modal.tone-success{border-top-color:var(--success)}.modal.tone-warning{border-top-color:var(--warning)}.modal.tone-danger{border-top-color:var(--danger)}.modal-title{margin:0 0 12px;font-size:1.15rem}.modal-body{display:flex;flex-direction:column;gap:10px}.modal-list{margin:0;padding:10px 10px 10px 28px;background:var(--surface-2);border-radius:8px;max-height:260px;overflow-y:auto}.modal-list li+li{margin-top:4px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:18px}.ack{display:flex;gap:8px;align-items:center;margin-top:14px;padding:12px;border:1px dashed var(--border);border-radius:8px;font-weight:700;cursor:pointer}.editor{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:.85rem;background:var(--log-bg);color:#e2e8f0;border:1px solid var(--border);border-radius:8px;padding:10px;resize:vertical}.footer{text-align:center;color:var(--muted);font-size:.82rem;padding:8px 16px 24px}@media (max-width: 900px){.topbar{grid-template-columns:1fr;justify-items:center;gap:8px}.topbar-side:not(.end){display:none}.topbar-side.end{justify-self:center}}@media (max-width: 600px){.brand h1{font-size:1.25rem}.brand p{display:none}.topbar,.grid{padding-left:16px;padding-right:16px}.banner{margin-left:16px;margin-right:16px}}
