:root{--surface-1: #ffffff;--surface-2: #f6f6f4;--surface-3: #ececec;--border: #e4e4e0;--border-strong: #cfcfca;--text: #1d1d1b;--text-muted: #6b6b66;--accent: #1d1d1b;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@media (prefers-color-scheme: dark){:root{--surface-1: #1a1a18;--surface-2: #232320;--surface-3: #2e2e2a;--border: #34342f;--border-strong: #45453f;--text: #ececea;--text-muted: #9a9a93;--accent: #ececea}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--surface-2);color:var(--text);font-family:var(--font-sans)}body{zoom:1.5}.app{max-width:820px;margin:0 auto;padding:24px 20px 64px}.app-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.brand{display:flex;align-items:baseline;gap:10px}.brand h1{font-size:22px;font-weight:600;margin:0}.brand-sub{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border:1px solid var(--border-strong);border-radius:99px;padding:2px 8px}.model-select{display:flex;align-items:center;gap:8px}.model-select label{font-size:12px;color:var(--text-muted)}.model-select select{font-size:13px;padding:6px 10px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text);cursor:pointer}.tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border)}.tab{background:none;border:none;padding:10px 16px;font-size:14px;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .12s;font-family:inherit}.tab:hover{color:var(--text)}.tab.active{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:14px;padding:24px}.tool-desc{font-size:14px;color:var(--text-muted);margin:0 0 20px;line-height:1.6}.row{display:flex;gap:8px;margin-bottom:20px;align-items:stretch}.row input[type=text]{flex:1;font-size:14px;padding:10px 12px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text)}.row input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #78787826}.info-box{flex:1;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-size:13px;color:var(--text-muted);line-height:1.5}button{font-family:inherit;padding:10px 20px;font-size:14px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text);cursor:pointer;white-space:nowrap;transition:all .12s}button:hover:not(:disabled){background:var(--surface-2)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.5;cursor:default}.loading{display:flex;align-items:center;gap:10px;padding:16px;background:var(--surface-2);border-radius:8px;margin-bottom:20px}.spinner{width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.error{padding:12px 16px;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;color:#b91c1c;font-size:14px;margin-bottom:16px}.banner-row{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.banner{flex:1 1 280px;padding:12px 20px;border-radius:12px;border:1px solid;display:flex;align-items:center;font-size:14px}.scorebox{background:var(--surface-2);border-radius:12px;padding:20px;margin-bottom:20px}.scorebox-lbl{font-size:11px;font-weight:600;color:var(--text-muted);margin:0 0 14px;text-transform:uppercase;letter-spacing:.05em}.niche-banner{padding:16px 20px;margin-bottom:20px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.niche-lbl{font-size:11px;color:var(--text-muted);margin:0 0 2px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.niche-val{font-size:16px;font-weight:600;margin:0;color:var(--text)}.report{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:24px}.actions{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}.actions button{padding:7px 14px;font-size:13px}
