:root{--bg: #0f1115;--bg-elevated: #171a21;--border: #2a2e38;--text: #e6e8ec;--text-dim: #9aa0ac;--accent: #4f8ef7;--danger: #e0645a;--success: #38b28a;--radius: 8px;color-scheme:dark}:root[data-theme=light]{--bg: #f4f5f7;--bg-elevated: #ffffff;--border: #dde1e8;--text: #1b1e24;--text-dim: #5d6472;--accent: #3568d4;--danger: #c94a41;--success: #1f8f6a;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:8px 16px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button:hover:not(:disabled){filter:brightness(1.1)}.link-button{background:none;color:var(--text-dim);padding:4px}.link-button:hover{color:var(--text);text-decoration:underline}input,select{font:inherit;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.error{color:var(--danger)}.empty-state{color:var(--text-dim)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:32px;width:320px;display:flex;flex-direction:column;gap:12px}.login-card h1{margin:0}.subtitle{color:var(--text-dim);margin:0 0 8px;font-size:13px}.layout{min-height:100vh}.topbar{display:flex;align-items:center;gap:24px;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.brand{font-weight:700;letter-spacing:-.02em}.topbar nav{display:flex;gap:16px;flex:1}.topbar nav a{color:var(--text-dim);padding:4px 0}.topbar nav a.active{color:var(--text);border-bottom:2px solid var(--accent)}.profile-menu{position:relative}.profile-menu-trigger{background:none;padding:0;border-radius:50%}.profile-avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:13px}.profile-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:260px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000040;padding:6px;z-index:20;display:flex;flex-direction:column}.profile-dropdown-email{padding:8px 10px;color:var(--text-dim);font-size:12px;border-bottom:1px solid var(--border);margin-bottom:4px;word-break:break-all}.profile-dropdown-item{display:block;width:100%;text-align:left;background:none;color:var(--text);padding:8px 10px;border-radius:calc(var(--radius) - 3px);font-size:13px}.profile-dropdown-item:hover{background:var(--border);filter:none}.profile-dropdown-logout{color:var(--danger);margin-top:4px;border-top:1px solid var(--border);padding-top:10px}.profile-password-form{display:flex;flex-direction:column;gap:6px;padding:8px 10px}.profile-password-form input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:calc(var(--radius) - 3px);padding:6px 8px;font-size:13px}.profile-password-actions{display:flex;gap:8px;align-items:center}.profile-password-actions button[type=submit]{padding:6px 12px;font-size:13px}.profile-password-error{color:var(--danger);font-size:12px;margin:0}.profile-password-success{color:var(--success);font-size:13px;padding:8px 10px;margin:0}.content{padding:24px;max-width:1200px;margin:0 auto}.page h1{margin:0 0 4px}.page-subtitle{color:var(--text-dim);margin:0 0 20px;max-width:640px}.page-hint{color:var(--text-dim);font-size:13px;margin:-12px 0 20px;max-width:640px;padding:8px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.th-hint{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--border);color:var(--text-dim);font-size:10px;font-weight:700;cursor:help;text-transform:none;letter-spacing:0}.platform-toggle{display:flex;gap:8px;margin-bottom:16px}.platform-toggle button{background:var(--bg-elevated);color:var(--text-dim);border:1px solid var(--border)}.platform-toggle button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.search-row{display:flex;gap:8px;margin-bottom:16px}.search-row input{flex:1}.category-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.chip{background:var(--bg-elevated);color:var(--text-dim);border:1px solid var(--border);padding:6px 12px;border-radius:999px;font-size:13px}.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.app-card{display:flex;align-items:center;gap:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.app-icon{width:44px;height:44px;border-radius:10px;flex-shrink:0}.app-icon-sm{width:22px;height:22px;border-radius:5px;vertical-align:middle;margin-right:6px}.app-icon-lg{width:72px;height:72px;border-radius:16px}.app-card-body{flex:1;min-width:0}.app-card-title{display:flex;align-items:center;gap:8px}.app-card-meta,.app-card-dev{color:var(--text-dim);font-size:12px}.platform-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--border);color:var(--text-dim)}.platform-badge.ios{background:#2b3a55;color:#a9c2f5}.platform-badge.android{background:#1f3d2e;color:#8fdcb0}.proxy-note{cursor:help;color:var(--text-dim)}.score-pill-wrap{display:inline-flex;align-items:center;gap:2px}.info-popover{position:relative;display:inline-flex}.info-popover-trigger{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--border);color:var(--text-dim);font-size:10px;font-style:italic;font-family:Georgia,Times New Roman,serif;font-weight:700;padding:0;cursor:pointer}.info-popover-trigger:hover{filter:none;background:var(--accent);color:#fff}.info-popover-bubble{position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:300px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0000004d;padding:14px;font-size:12px;color:var(--text);cursor:default}.info-popover-bubble h4{margin:0 0 6px;font-size:13px}.info-popover-bubble p{margin:0 0 8px;color:var(--text-dim);line-height:1.5}.info-popover-bubble p:last-child{margin-bottom:0}.info-popover-bubble ul{margin:0 0 8px;padding-left:16px;color:var(--text-dim);line-height:1.5}.info-popover-formula{font-family:ui-monospace,monospace;font-size:11px;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:4px 8px}.proxy-note-full{color:var(--text-dim);font-size:12px;margin:4px 0 20px}.app-card-actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.track-button{flex-shrink:0}.competitors-button{font-size:12px;white-space:nowrap}.discover-filters{align-items:flex-end}.discover-filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-dim)}.discover-filters input{width:140px}.filter-row{display:flex;align-items:center;gap:8px;margin-bottom:16px}.owned-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-dim);margin-left:8px}.owned-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--accent);color:var(--bg)}.radar-table{width:100%;border-collapse:collapse}.radar-table th,.radar-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px}.radar-table th{color:var(--text-dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.cell-sub{color:var(--text-dim);font-size:11px;margin-top:2px}.cell-complaint{color:var(--text-dim)}.score-pill{display:inline-block;min-width:32px;text-align:center;padding:3px 8px;border-radius:999px;font-weight:700;font-size:12px}.score-pill.score-high{background:#4a1f22;color:#f28c85}.score-pill.score-mid{background:#4a3f1f;color:#f2c885}.score-pill.score-low{background:#1f3d2e;color:#8fdcb0}.score-pill.score-unknown{background:var(--border);color:var(--text-dim)}.score-pill-lg{font-size:28px;font-weight:800;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:12px 20px}.detail-header{display:flex;align-items:center;gap:16px;margin-bottom:8px}.detail-header h1{display:flex;align-items:center;gap:10px}.detail-meta{color:var(--text-dim);font-size:13px}.opportunity-banner{display:flex;align-items:center;gap:16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin:16px 0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.trend-chart{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.trend-chart h3{margin:0 0 8px;font-size:13px;color:var(--text-dim)}.chart-empty{color:var(--text-dim);font-size:13px}.complaint-chart,.praise-chart{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.theme-quotes{margin-top:12px;padding-left:18px;color:var(--text-dim);font-size:13px}.detail-actions{display:flex;gap:8px;flex-shrink:0}.button-link{display:inline-flex;align-items:center;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:8px 16px;font-size:14px}.button-link:hover{border-color:var(--accent);text-decoration:none}.button-link.button-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.button-link.button-primary:hover{opacity:.9}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-head h2{margin:0}.window-toggle{display:flex;gap:4px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:3px}.window-toggle button{background:transparent;border:none;color:var(--text-dim);padding:5px 10px;border-radius:calc(var(--radius) - 3px);font-size:12px;cursor:pointer}.window-toggle button.active{background:var(--accent);color:#fff;font-weight:600}.app-owned-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:14px;font-weight:600;background:#1f3d2e;color:#8fdcb0;border:1px solid #2d5940;white-space:nowrap}.feature-bullets{columns:2}.review-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.review-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:8px}.review-head{display:flex;gap:8px;font-size:12px;color:var(--text-dim);margin-bottom:4px}.review-title{font-weight:600;margin-bottom:2px}.review-text{margin:0;font-size:13px;line-height:1.4}.app-picker{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.app-picker-item{display:flex;align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;cursor:pointer;font-size:13px}.app-picker-item.selected{border-color:var(--accent)}.app-picker-item input{margin-right:6px}.compare-table-wrap{margin-top:20px;overflow-x:auto}.compare-table{border-collapse:collapse;width:100%}.compare-table th,.compare-table td{border:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:top;font-size:13px}.compare-table th{background:var(--bg-elevated)}.compare-complaint-list,.compare-feature-list{margin:0;padding-left:16px;font-size:12px;color:var(--text-dim)}.competitor-cache-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:8px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.competitor-cache-note{color:var(--text-dim);font-size:12px}.source-app-banner{max-width:420px;margin-bottom:20px}.competitor-card-wrap{display:flex;flex-direction:column;gap:6px}.competitor-card-links{display:flex;flex-direction:column;gap:2px;padding:0 4px;font-size:12px}.competitor-card-links a{color:var(--text-dim)}.competitor-card-links a:hover{color:var(--accent)}.gap-picker-row{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}.app-select{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-dim);min-width:260px}.loading-note{color:var(--text-dim);font-size:13px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.gap-brief{background:var(--bg-elevated);border:1px solid var(--accent);border-radius:var(--radius);padding:16px;margin-bottom:20px;line-height:1.5}.gap-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.gap-column h2{display:flex;align-items:center;gap:10px;font-size:17px}.gap-column-sub{color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.03em;margin:0 0 8px}.gap-column h3{font-size:13px;margin:16px 0 8px}.issue-board{margin-top:32px}.issue-board-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.issue-board-actions{display:flex;gap:8px}.issue-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.issue-card{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;background:var(--bg-elevated)}.issue-card.issue-stale{opacity:.6}.issue-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.theme-badge{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-dim)}.severity-pill{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase}.severity-pill.severity-low{background:#38b28a26;color:var(--success)}.severity-pill.severity-medium{background:#4f8ef726;color:var(--accent)}.severity-pill.severity-high{background:#e0645a26;color:var(--danger)}.stale-badge{font-size:11px;color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:2px 8px}.issue-review-count{margin-left:auto;color:var(--text-dim);font-size:12px}.issue-title{margin:8px 0 4px;font-size:15px}.issue-summary{color:var(--text-dim);font-size:13px;margin:0 0 8px}.issue-versions{font-size:12px;color:var(--text-dim);margin-bottom:8px}.issue-status-row{margin-bottom:8px}.issue-status-row label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-dim)}.issue-notes{width:100%;min-height:50px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:8px;font-family:inherit;font-size:13px;resize:vertical;margin-bottom:8px}.issue-quotes{margin:0 0 8px;padding-left:18px;color:var(--text-dim);font-size:13px;font-style:italic}.issue-member-reviews{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.tag-editor{display:flex;flex-wrap:wrap;align-items:center;gap:4px;max-width:220px}.tag-chip{display:inline-flex;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11px;color:var(--text-dim)}.tag-remove{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:0;font-size:13px;line-height:1}.tag-remove:hover{color:var(--danger)}.tag-add-form input{width:70px;font-size:11px;padding:2px 6px;background:var(--bg);border:1px dashed var(--border);border-radius:999px;color:var(--text)}.cell-tags{min-width:140px}.keyword-tracker{margin-top:32px}.keyword-add-form{display:flex;gap:8px;margin:8px 0 16px}.keyword-add-form input{flex:1;max-width:320px}.keyword-table{width:100%;border-collapse:collapse}.keyword-table th,.keyword-table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px}.keyword-table th{color:var(--text-dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.not-ranked-badge{color:var(--text-dim);font-size:12px}.release-timeline{margin-top:32px}.notification-bell{position:relative}.bell-button{position:relative;font-size:16px;padding:6px 10px}.bell-badge{position:absolute;top:-4px;right:2px;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:1px 5px;line-height:1.3}.notification-dropdown{position:absolute;right:0;top:100%;margin-top:8px;width:320px;max-height:400px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:12px;z-index:20;box-shadow:0 8px 24px #0006}.notification-dropdown-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:13px}.notification-item{padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.notification-item:last-child{border-bottom:none}.notification-item.unread{font-weight:600}.notification-date{color:var(--text-dim);font-size:11px;margin-top:2px;font-weight:400}
