:root{--bg:#f7f7f5;--surface:#ffffff;--ink:#1a1a1a;--ink-soft:#6b6b6b;--line:#e4e4e0;--accent:#0f6b4f;--error:#b3261e;--error-bg:#fdeceb;--warning:#8a5a00;--warning-bg:#fdf3e0;--info:#205493;--info-bg:#e8f0fa;--ok:#0f6b4f;--ok-bg:#e7f4ef}@media (prefers-color-scheme:dark){:root{--bg:#141414;--surface:#1e1e1e;--ink:#ececec;--ink-soft:#9a9a9a;--line:#2e2e2e;--accent:#4cc39a;--error:#ff8a80;--error-bg:#3a1f1d;--warning:#ffcf7d;--warning-bg:#3a2f1a;--info:#9cc2f0;--info-bg:#1c2a3d;--ok:#7ed9b7;--ok-bg:#1a2f27}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}main{max-width:780px;margin:0 auto;padding:48px 20px 80px}h1{font-size:1.6rem;margin:0 0 4px}.subtitle{color:var(--ink-soft);margin:0 0 32px;font-size:.95rem}.dropzone{border:2px dashed var(--line);border-radius:12px;background:var(--surface);padding:44px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone.dragover,.dropzone:hover{border-color:var(--accent)}.dropzone p{margin:6px 0;color:var(--ink-soft)}.dropzone .primary{color:var(--ink);font-weight:600;font-size:1.05rem}.summary-row{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 8px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-size:.85rem;color:var(--ink-soft)}.stat b{color:var(--ink);font-size:1rem;margin-right:6px}.finding{background:var(--surface);border:1px solid var(--line);border-left-width:4px;border-radius:8px;padding:14px 16px;margin:10px 0}.finding.error{border-left-color:var(--error)}.finding.warning{border-left-color:var(--warning)}.finding.info{border-left-color:var(--info)}.badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 10px;margin-right:8px}.badge.error{color:var(--error);background:var(--error-bg)}.badge.warning{color:var(--warning);background:var(--warning-bg)}.badge.info{color:var(--info);background:var(--info-bg)}.rule-id{font-size:.78rem}.finding .where,.rule-id{font-family:ui-monospace,SF Mono,Menlo,monospace;color:var(--ink-soft)}.finding .where{font-size:.82rem;margin:6px 0 4px;overflow-wrap:anywhere}.finding .message{margin:4px 0 0;font-size:.95rem}.clean{background:var(--ok-bg);color:var(--ok);border:1px solid transparent;padding:16px 18px;font-weight:600}.clean,.error-box{border-radius:8px;margin-top:24px}.error-box{background:var(--error-bg);color:var(--error);padding:14px 16px}.mode-note{font-size:.8rem;margin-top:40px;border-top:1px solid var(--line);padding-top:16px}.mode-note,.spinner{color:var(--ink-soft)}.spinner{margin-top:24px}button,input[type=email]{font:inherit}.login-form{display:flex;gap:10px;margin-top:16px}.login-form input{flex:1 1;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.login-form button,.reset-btn{padding:10px 18px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.reset-btn{margin-top:20px;background:transparent;color:var(--accent);border:1px solid var(--accent)}.site-header{border-bottom:1px solid var(--line);background:var(--surface)}.site-header-inner{max-width:780px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.site-nav{display:flex;align-items:center;gap:16px;font-size:.88rem}.site-nav a{color:var(--accent);text-decoration:none}.site-nav a:hover{text-decoration:underline}.site-nav .who{color:var(--ink-soft);font-size:.82rem}.linkish{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font-size:.88rem}.linkish:hover{text-decoration:underline}.history-list{list-style:none;padding:0;margin:24px 0 0}.history-row{background:var(--surface);border:1px solid var(--line);border-left-width:4px;border-radius:8px;margin:10px 0}.history-row.error{border-left-color:var(--error)}.history-row.warning{border-left-color:var(--warning)}.history-row.clean{border-left-color:var(--ok)}.history-link{display:flex;flex-direction:column;gap:4px;padding:14px 16px;text-decoration:none;color:inherit}.history-link:hover .history-file{text-decoration:underline}.history-file{font-weight:600;color:var(--ink)}.history-meta{font-size:.8rem;color:var(--ink-soft);font-family:ui-monospace,SF Mono,Menlo,monospace}.history-link .badge{align-self:flex-start;margin-top:4px;margin-right:0}