:root{--bg: #f7f7f5;--surface: #ffffff;--text: #1c1c1a;--muted: #6b6b66;--border: #e2e2dd;--accent: #2f5bd3;--badge-bg: #fdf0c8;--badge-text: #6a4b00;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}@media (prefers-color-scheme: dark){:root{--bg: #161615;--surface: #1f1f1d;--text: #ecece8;--muted: #a0a09a;--border: #33332f;--accent: #8ba8ff;--badge-bg: #4a3a0c;--badge-text: #fbe3a0}}body{margin:0;background:var(--bg)}.page{max-width:48rem;margin:0 auto;padding:2rem 1rem 4rem}h1{margin:0 0 .25rem;font-size:1.75rem}.lede,.count{color:var(--muted)}.search{display:flex;gap:.5rem;margin:1.5rem 0}.search input{flex:1;min-width:0;padding:.6rem .75rem;font:inherit;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.search{margin-bottom:.75rem}.tutorial-only{display:inline-flex;align-items:center;gap:.4rem;margin:0 0 1rem;cursor:pointer}.empty .hint{margin-top:-.5rem}.refreshed{margin-top:2rem;font-size:.85rem;color:var(--muted)}.result{padding:1rem;margin-bottom:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.result h2{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1.1rem}.badge{padding:.1rem .45rem;font-size:.75rem;font-weight:600;border-radius:999px;background:var(--badge-bg);color:var(--badge-text)}.stars{margin-left:auto;font-size:.85rem;font-weight:500;color:var(--muted);white-space:nowrap}.links{display:flex;flex-wrap:wrap;gap:.25rem .75rem;margin:.25rem 0;overflow-wrap:anywhere}.links-title{min-width:3.5rem;color:var(--muted)}.links a{color:var(--accent)}.techs{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0 0;padding:0;list-style:none}.techs li{padding:.1rem .5rem;font-size:.85rem;border:1px solid var(--border);border-radius:4px}.techs mark{background:none;color:var(--accent);font-weight:600}.techs li:has(mark){border-color:var(--accent)}.similar{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.shared-tags,.feature-tags-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin:.25rem 0}.shared-tags ul,.feature-tags ul,.tag-list,.vocabulary{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}button.tag,.shared-tags li,.tag{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .55rem;font:inherit;font-size:.8rem;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text)}button.tag{cursor:pointer}button.tag:hover,button.tag:focus-visible{border-color:var(--accent);color:var(--accent)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.tech-match{margin:.5rem 0 0;font-size:.85rem;color:var(--muted)}.tech-picker{display:flex;flex-wrap:wrap;gap:.35rem;max-height:9rem;overflow-y:auto;margin:0 0 1.5rem;padding:.5rem .75rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.tech-picker legend{padding:0 .25rem;color:var(--muted)}.tech-option{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.85rem;border:1px solid var(--border);border-radius:999px;cursor:pointer}.tech-option:has(input:checked){border-color:var(--accent);color:var(--accent)}.tech-count{color:var(--muted);font-size:.75rem}.admin{max-width:72rem}.admin-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.admin button{padding:.55rem 1rem;font:inherit;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:var(--surface);cursor:pointer}.admin button.secondary{background:transparent;color:var(--accent)}.admin button:disabled{opacity:.6;cursor:default}.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0}.tagging-run{margin-top:2.5rem}.tagging-run-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.tagging-run-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.tagging-run-form input{width:7rem;padding:.55rem .75rem;font:inherit;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.out-of-vocabulary{padding-left:1.25rem;font-size:.9rem}.login{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1.5rem 0}.login input{flex:1;min-width:12rem;padding:.55rem .75rem;font:inherit;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.table-scroll{overflow-x:auto}.jobs,.target-apps{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--surface)}.tags-admin{margin-top:2.5rem}.target-apps tbody th{color:var(--text)}.target-apps td:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.admin .tag-remove{padding:0 .2rem;border:0;background:none;color:var(--muted);line-height:1}.admin .tag-remove:hover{color:#c0392b}.admin select,.add-vocabulary-tag input{padding:.3rem .5rem;font:inherit;font-size:.85rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.add-vocabulary-tag{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0 1rem}.vocabulary li{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .4rem;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.vocabulary button{padding:.1rem .45rem;font-size:.8rem}.vocabulary-tag-count{color:var(--muted);font-size:.75rem}.jobs th,.jobs td,.target-apps th,.target-apps td{padding:.5rem .6rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.jobs th,.target-apps thead th{color:var(--muted);font-weight:600;white-space:nowrap}.status{font-weight:600}.status-running,.status-queued{color:var(--accent)}.status-failed,.job-error{color:#c0392b}.tag-transfer{margin-top:2.5rem}.tag-transfer .actions{align-items:center}.admin a.button{display:inline-block;padding:.55rem 1rem;border:1px solid var(--accent);border-radius:6px;color:var(--accent);text-decoration:none}.file-input{display:inline-flex;align-items:center;gap:.5rem}.dry-run h4{margin:1rem 0 .25rem}.changes .tag-chip{margin-right:.35rem}.changes .added{color:var(--accent)}.changes .removed{color:#c0392b}.target-app{display:inline-flex;align-items:center;gap:.4rem}.app-logo{display:inline-grid;flex:none;place-items:center;width:1.6rem;height:1.6rem;border:1px solid var(--border);border-radius:.4rem;background:#fff}.app-logo img{width:70%;height:70%}.app-logo-placeholder{border-color:transparent;background:hsl(var(--logo-hue) 55% 90%);color:hsl(var(--logo-hue) 45% 28%);font-size:.8rem;font-weight:700}.app-logo-placeholder:after{content:attr(data-initial)}@media (prefers-color-scheme: dark){.app-logo-placeholder{background:hsl(var(--logo-hue) 30% 26%);color:hsl(var(--logo-hue) 60% 86%)}}.show-more{display:flex;justify-content:center;margin:1rem 0}
