:root{--bg:#0a0c12;--surface:#12151f;--surface-2:#191d2b;--border:#242a3b;--border-strong:#343c53;--text:#e9ecf5;--muted:#8d96ad;--accent:#7c8cff;--accent-2:#e05cc0;--on-accent:#fff;--danger:#f87171;--shadow:0 10px 30px #00000059;--radius:14px;--c:var(--accent);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f5f6fb;--surface:#fff;--surface-2:#f0f2f8;--border:#e2e5ef;--border-strong:#cdd2e0;--text:#141826;--muted:#5d667c;--accent:#4f5fe8;--accent-2:#c0399f;--danger:#dc2626;--shadow:0 10px 30px #1418261a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3,p{margin:0}h1{letter-spacing:-.02em;font-size:clamp(26px,4vw,34px);line-height:1.15}h2{letter-spacing:-.01em;font-size:19px}h3{font-size:15px}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:13px}.err{color:var(--danger);font-size:14px}.pre{white-space:pre-wrap}em{font-style:normal}.wrap{max-width:1200px;margin:0 auto;padding:0 20px}.boot{text-align:center;place-content:center;gap:14px;min-height:100vh;display:grid}.top-gap{margin-top:24px}.btn{border:1px solid var(--border-strong);background:var(--surface);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:7px;height:40px;padding:0 16px;font-size:14px;font-weight:600;transition:transform .12s,background .15s,border-color .15s;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--on-accent);border-color:#0000}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.danger:hover{color:var(--danger)}.btn.sm{height:34px;padding:0 12px;font-size:13px}.btn.icon{width:36px;height:36px;padding:0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.chip em{opacity:.6;font-size:12px}.chip.fit b{color:var(--c);font-weight:600}.chip.fit:hover{border-color:var(--c)}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge.plain{background:var(--surface-2);color:var(--muted);font-weight:500}.lic-open_source{color:#10b981;background:#10b98126}.lic-open_core{color:#06b6d4;background:#06b6d426}.lic-source_available{color:#f59e0b;background:#f59e0b29}.lic-proprietary{color:#a78bfa;background:#8b5cf629}[data-theme=light] .lic-open_source{color:#047857}[data-theme=light] .lic-open_core{color:#0e7490}[data-theme=light] .lic-source_available{color:#b45309}[data-theme=light] .lic-proprietary{color:#6d28d9}.status-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.s-using{background:#10b981}.s-learning{background:#3b82f6}.s-want_to_try{background:#a78bfa}.s-evaluated{background:#94a3b8}.s-rejected{background:#f87171}.kbd{border:1px solid var(--border-strong);color:var(--muted);border-radius:6px;padding:2px 6px;font:12px ui-monospace,monospace}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar-in{align-items:center;gap:18px;height:62px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-weight:700;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:9px;grid-template-columns:1fr 1fr;gap:3px;width:30px;height:30px;padding:6px;display:grid}.brand-mark i{background:#fff;border-radius:2px}.brand-mark i:nth-child(2),.brand-mark i:nth-child(3){opacity:.7}.brand-mark i:nth-child(4){opacity:.45}.nav{gap:4px;display:flex}.nav a{color:var(--muted);border-radius:8px;padding:7px 12px;font-size:14px;font-weight:500}.nav a:hover{color:var(--text)}.nav a.active{color:var(--text);background:var(--surface-2)}.search-btn{border:1px solid var(--border);background:var(--surface);max-width:380px;height:38px;color:var(--muted);border-radius:10px;flex:1;align-items:center;gap:9px;margin-left:auto;padding:0 12px;font-size:14px;display:flex}.search-btn:hover{border-color:var(--border-strong)}.search-btn span:nth-child(2){text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.topbar-actions{align-items:center;gap:6px;display:flex}.footer{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:56px;padding-top:28px;padding-bottom:36px;font-size:13px;display:flex}.footer a{align-items:center;gap:6px;display:inline-flex}.footer a:hover{color:var(--text)}.hero{text-align:center;background:radial-gradient(600px 300px at 25% 0%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%), radial-gradient(600px 300px at 78% 10%, color-mix(in srgb, var(--accent-2) 16%, transparent), transparent 70%);padding:72px 0 44px}.hero h1{letter-spacing:-.035em;font-size:clamp(34px,6vw,56px)}.grad{background:linear-gradient(100deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-sub{max-width:620px;color:var(--muted);margin:16px auto 0;font-size:17px}.hero-search{border:1px solid var(--border-strong);background:var(--surface);width:min(620px,100%);height:58px;color:var(--muted);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:12px;margin:30px auto 0;padding:0 18px;font-size:17px;transition:border-color .15s,transform .15s;display:flex}.hero-search:hover{border-color:var(--accent);transform:translateY(-1px)}.hero-search span:nth-child(2){text-align:left;flex:1}.needs{flex-wrap:wrap;justify-content:center;gap:8px;max-width:720px;margin:20px auto 0;display:flex}.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:8px;display:grid}.stat{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);align-items:baseline;gap:8px;padding:16px 18px;display:flex}a.stat:hover{border-color:var(--border-strong)}.stat b{letter-spacing:-.02em;font-size:26px}.stat span{color:var(--muted);font-size:14px}.section-head{justify-content:space-between;align-items:flex-end;gap:16px;margin:36px 0 14px;display:flex}.section-head p{margin-top:2px;font-size:14px}.section-head>a{color:var(--accent);font-size:14px;font-weight:600}.row-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.section-head .row-actions{flex-wrap:nowrap;flex:none}.grid{gap:14px;display:grid}.grid.domains{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}.grid.tools{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.empty{border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);text-align:center;padding:22px}.empty.big{color:var(--text);justify-items:center;gap:12px;margin-top:32px;padding:56px 20px;display:grid}.domain-card{border-radius:var(--radius);text-align:left;border:1px solid var(--border);background:linear-gradient(160deg, color-mix(in srgb, var(--c) 13%, var(--surface)), var(--surface) 55%);flex-direction:column;gap:8px;padding:20px;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.domain-card:hover{border-color:var(--c);box-shadow:0 12px 28px color-mix(in srgb, var(--c) 18%, transparent);transform:translateY(-3px)}.domain-card p{color:var(--muted);font-size:14px}.domain-card h3{margin-top:4px;font-size:18px}.dc-top{justify-content:space-between;align-items:center;display:flex}.dc-count{color:var(--muted);font-size:13px}.dicon{color:#fff;background:var(--c);width:42px;height:42px;box-shadow:0 6px 16px color-mix(in srgb, var(--c) 40%, transparent);border-radius:12px;flex:none;place-items:center;display:grid}.dicon.lg{border-radius:16px;width:60px;height:60px}.dc-cats{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:8px;display:flex}.dc-cats span{background:color-mix(in srgb, var(--c) 12%, transparent);color:color-mix(in srgb, var(--c) 70%, var(--text));border-radius:999px;padding:2px 8px;font-size:12px}.domain-card.add{border-style:dashed;border-color:var(--border-strong);min-height:170px;color:var(--muted);background:0 0;justify-content:center;align-items:center;font-weight:600}.domain-card.add:hover{color:var(--text);box-shadow:none}.tool-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:10px;padding:16px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.tool-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.tc-top{align-items:center;gap:12px;min-width:0;display:flex}.avatar{color:#fff;border-radius:11px;flex:none;place-items:center;font-weight:700;display:grid}.tc-title{min-width:0}.tc-name{align-items:center;gap:7px;font-weight:650;display:flex}.tc-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.tc-tag{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:43px;font-size:14px;display:-webkit-box;overflow:hidden}.tc-badges{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.page-head.plain{padding:36px 0 20px}.page-head.tinted{border-bottom:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--c) 14%, transparent), transparent);padding:26px 0}.crumbs{color:var(--muted);margin-bottom:16px;font-size:13px}.crumbs a:hover,.crumbs span{color:var(--text)}.dh{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.dh-text{flex:1;min-width:240px}.dh-text p{color:var(--muted);max-width:640px;margin-top:4px}.chips.jump{margin-top:20px}.cat-section{scroll-margin-top:80px}.add-cat{border:1px dashed var(--border-strong);width:100%;margin-top:28px}.filters{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);gap:12px;padding:16px;display:grid}.search-field{border:1px solid var(--border-strong);background:var(--bg);height:46px;color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:0 12px;display:flex}.search-field:focus-within{border-color:var(--accent)}.search-field input{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:0;flex:1;font-size:16px}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-label{width:74px;color:var(--muted);font-size:13px;font-weight:600}.tool-head{flex-wrap:wrap;align-items:flex-start;gap:18px;margin-top:8px;display:flex}.th-text{flex:1;gap:8px;min-width:260px;display:grid}.th-text p{color:var(--muted);font-size:17px}.tool-body{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;margin-top:26px;display:grid}.tool-main{gap:16px;display:grid}.panel{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);gap:10px;padding:18px 20px;display:grid}.panel h3{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:12px}.panel.accent{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--surface)), var(--surface))}.panel.accent p{font-size:16px}.facts dl{gap:10px;margin:0;display:grid}.facts dt{color:var(--muted);font-size:12px}.facts dd{margin:2px 0 0;font-weight:600}.facts dd small{font-size:13px;font-weight:400;display:block}.fact-link{background:var(--surface-2);border-radius:9px;justify-content:space-between;align-items:center;padding:9px 12px;font-size:14px;font-weight:600;display:flex}.fact-link:hover{color:var(--accent)}.notes{margin-top:4px}.cases{gap:9px;margin:0;padding:0;list-style:none;display:grid}.cases li{align-items:flex-start;gap:10px;display:flex}.cases svg{color:#10b981;flex:none;margin-top:4px}.input{border:1px solid var(--border-strong);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:10px;padding:10px 12px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:0}textarea.input{resize:vertical;min-height:44px}.field{gap:6px;display:grid}.field>span{font-size:13px;font-weight:600}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.span2{grid-column:1/-1}.overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#05070c9e;place-items:center;padding:20px;animation:.15s fade;display:grid;position:fixed;inset:0}.overlay.top{place-items:start center;padding-top:12vh}.modal{border:1px solid var(--border-strong);background:var(--surface);width:min(480px,100%);max-height:calc(100vh - 40px);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;animation:.18s pop;display:flex}.modal.wide{width:min(760px,100%)}.modal form{flex-direction:column;min-height:0;display:flex}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-body{gap:16px;padding:20px;display:grid;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-foot .err{margin-right:auto}.cat-picker{border:1px solid var(--border-strong);background:var(--bg);border-radius:10px;gap:12px;max-height:240px;padding:12px;display:grid;overflow-y:auto}.cat-group-name{text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:12px;font-weight:700}.more summary{cursor:pointer;color:var(--muted);margin-bottom:12px;font-size:14px;font-weight:600}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:30px;height:30px}.swatch.on{border-color:var(--text);box-shadow:0 0 0 2px var(--surface) inset}.palette{border:1px solid var(--border-strong);background:var(--surface);width:min(640px,100%);box-shadow:var(--shadow);border-radius:16px;animation:.16s pop;overflow:hidden}.pal-input{border-bottom:1px solid var(--border);height:58px;color:var(--muted);align-items:center;gap:12px;padding:0 16px;display:flex}.pal-input input{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:0;flex:1;font-size:17px}.pal-list{max-height:min(56vh,460px);padding:8px;overflow-y:auto}.pal-group{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:10px 10px 4px;font-size:11px;font-weight:700}.pal-item{text-align:left;width:100%;color:var(--muted);background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:9px 10px;display:flex}.pal-item.active{background:var(--surface-2);color:var(--text)}.pal-text{flex:1;min-width:0;display:grid}.pal-label{color:var(--text);font-weight:600}.pal-sub{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.pal-dot{border-radius:50%;flex:none;width:10px;height:10px;margin:0 9px}.pal-icon{background:var(--surface-2);border-radius:8px;flex:none;place-items:center;width:28px;height:28px;display:grid}.pal-empty{text-align:center;color:var(--muted);padding:28px}.login{place-items:center;padding-top:64px;display:grid}.login .panel{gap:16px;width:min(400px,100%);padding:28px}.login h1{font-size:24px}.login .link-btn{justify-self:center}.link-btn{color:var(--accent);background:0 0;border:0;padding:0;font-size:14px;font-weight:600}.link-btn:hover{text-decoration:underline}.link-btn:disabled{opacity:.6;cursor:default}.ok{color:#10b981;font-size:14px}.code-input{letter-spacing:.35em;text-align:center;font:600 24px/1.2 ui-monospace,Menlo,Consolas,monospace}.admin{padding-bottom:40px}.tiles{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.tile{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);gap:2px;padding:16px 18px;display:grid}.tile-label{color:var(--muted);font-size:13px;font-weight:600}.tile b{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:32px;line-height:1.15}.admin-cols{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.rows{margin:0;padding:0;list-style:none;display:grid}.rows li{border-top:1px solid var(--border);align-items:flex-start;gap:10px;padding:9px 0;display:flex}.rows li:first-child{border-top:0;padding-top:2px}.rows .small{overflow-wrap:anywhere}.ev-dot{background:var(--border-strong);border-radius:50%;flex:none;width:8px;height:8px;margin-top:8px}.ev-dot.bad{background:var(--danger)}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border-strong);padding:6px 0;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);padding:7px 0}.table .n{text-align:right}.table tr.dim td{color:var(--muted)}.chart{gap:8px;display:grid}.chart-readout{min-height:22px;font-size:14px}.chart-plot{gap:8px;height:180px;display:flex}.chart-y{color:var(--muted);font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;align-items:flex-end;min-width:22px;margin:-8px 0;font-size:12px;display:flex}.chart-bars{border-bottom:1px solid var(--border-strong);background:linear-gradient(var(--border), var(--border)) 0 0 / 100% 1px no-repeat, linear-gradient(var(--border), var(--border)) 0 50% / 100% 1px no-repeat;flex:1;align-items:stretch;min-width:0;display:flex}.chart-col{cursor:default;background:0 0;border:0;border-radius:4px 4px 0 0;flex:1;align-items:flex-end;min-width:0;padding:0 1px;display:flex}.chart-col i{background:var(--accent);border-radius:4px 4px 0 0;width:100%;min-height:0;display:block}.chart-col.on{background:color-mix(in srgb, var(--accent) 12%, transparent)}.chart-col:focus-visible{outline-offset:-2px}.chart-x{color:var(--muted);justify-content:space-between;padding-left:30px;font-size:12px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}@media (width<=860px){.tool-body{grid-template-columns:1fr}.stats,.tiles{grid-template-columns:repeat(2,1fr)}.admin-cols{grid-template-columns:1fr}.brand-name{display:none}}@media (width<=700px){.topbar-in{flex-wrap:wrap;gap:8px;height:auto;padding-top:10px;padding-bottom:10px}.topbar-actions{order:2;margin-left:auto}.nav{order:3}.search-btn{order:4;min-width:0;max-width:none;margin-left:0}.search-btn .kbd{display:none}html{scroll-padding-top:120px}.cat-section{scroll-margin-top:120px}}@media (width<=560px){.wrap{padding:0 16px}.hide-sm{display:none}.form-grid{grid-template-columns:1fr}.hero{padding:44px 0 30px}.filter-label{width:100%}}
