*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#0b0d14;color:#e9ebf2;line-height:1.45}
a{color:#9cc0ff}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #b4a8ff;outline-offset:2px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.skip{position:absolute;left:-999px;top:8px;background:#6d5cff;color:#fff;padding:8px 12px;border-radius:8px;z-index:200}.skip:focus{left:8px}
button{font:inherit}
.hero{padding:18px 5vw 28px;background:radial-gradient(1200px 500px at 10% -10%,#3a2a8a,transparent 60%),radial-gradient(800px 400px at 100% 0,#123a5a,transparent 60%)}
nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:28px}.brand{color:#fff;font-weight:800;text-decoration:none;font-size:1.05rem;white-space:nowrap}
.navlinks{display:flex;align-items:center;gap:14px;font-size:.92rem}.navlinks a{text-decoration:none;color:#cfd6ea}.navsub{background:#6d5cff;color:#fff;border:0;border-radius:999px;padding:8px 14px;font-weight:700;cursor:pointer}
.herogrid{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:start}
h1{font-size:clamp(1.9rem,4.6vw,3.3rem);line-height:1.08;margin:0 0 12px;letter-spacing:-.02em}.grad{background:linear-gradient(90deg,#a99cff,#7ee0c8);-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:#c3c8d8;max-width:560px;margin:0 0 18px;font-size:1.05rem}
.searchwrap{display:flex;align-items:center;gap:10px;background:#141827;border:1px solid #343a55;border-radius:16px;padding:4px 16px;max-width:620px;box-shadow:0 10px 40px #0006}
.searchwrap input{flex:1;border:0;background:transparent;color:#fff;font-size:1.1rem;padding:14px 0;min-width:0}.searchwrap input:focus{outline:none}.searchwrap:focus-within{border-color:#8b7dff}
.popular{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px;font-size:.88rem;color:#aeb4c7}#pop{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:7px 12px;border-radius:999px;border:1px solid #343a55;background:#151a2b;color:#dde1ee;cursor:pointer;font-size:.86rem;white-space:nowrap}.chip:hover{border-color:#8b7dff}.chip.on{background:#6d5cff;border-color:#6d5cff;color:#fff}
.glance{background:#121626e6;border:1px solid #2a3050;border-radius:18px;padding:16px}.ghead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.92rem}.ghead a{font-weight:600}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.stat{background:#0d1020;border-radius:12px;padding:8px;text-align:center}.stat b{display:block;font-size:1.35rem}.stat span{font-size:.72rem;color:#b5bbcc}
.minichart{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;min-height:60px}.mrow{display:grid;grid-template-columns:118px 1fr 26px;gap:8px;align-items:center;font-size:.75rem;color:#c3c8d8;background:none;border:0;padding:0;text-align:left;cursor:pointer}.mrow i{height:8px;border-radius:4px;background:linear-gradient(90deg,#6d5cff,#7ee0c8);display:block}.mrow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.toppicks{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tp{display:flex;align-items:center;gap:6px;background:#0d1020;border:1px solid #23283f;border-radius:10px;padding:6px;font-size:.72rem;color:#dfe3ef;text-decoration:none;min-width:0}.tp img{width:18px;height:18px;border-radius:4px;flex:none}.tp span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp small{display:block;color:#a3a9bd}
.newsec{padding:8px 5vw 6px}.sechead{display:flex;justify-content:space-between;align-items:baseline}.hint{color:#a3a9bd;font-size:.8rem}
h2{margin:18px 0 12px;font-size:1.3rem}
.carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,280px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;min-height:170px}.carousel>.card{scroll-snap-align:start}
.catnav{position:sticky;top:0;z-index:50;background:#0b0d14ee;backdrop-filter:blur(8px);border-bottom:1px solid #1e2338;padding:10px 5vw}.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
main{padding:6px 5vw 30px;min-height:60vh}section.cat{margin-top:8px}.cat h2{display:flex;align-items:center;gap:10px}.cat h2 .ic{font-size:1.4rem}.cat h2 small{font-weight:400;color:#a3a9bd;font-size:.8rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.card{background:#141827;border:1px solid #252b44;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:6px;position:relative;transition:transform .15s,border-color .15s}.card:hover{transform:translateY(-2px);border-color:#3d4570}
.card.top{border-color:#7e6fff;background:linear-gradient(180deg,#1d1a3d,#141827)}.toplabel{position:absolute;top:-9px;left:14px;background:#6d5cff;color:#fff;font-size:.7rem;font-weight:800;padding:2px 8px;border-radius:999px}
.ch{display:flex;align-items:center;gap:10px}.ch img{width:32px;height:32px;border-radius:8px;background:#fff1;flex:none}.ch h3{margin:0;font-size:1rem;line-height:1.2}.rank{margin-left:auto;color:#b9b0ff;font-weight:800;font-size:.85rem}
.badges{display:flex;gap:5px;flex-wrap:wrap}.b{font-size:.68rem;font-weight:700;border-radius:6px;padding:2px 7px;color:#0b0d14}.b-free,.b-freemium{background:#9cc0ff}.b-paid{background:#f3b37a}.b-open-source{background:#7ee0a8}.b-source-available{background:#c7d0ff}.b-new{background:#ffd166}
.verdict{color:#e3e6f2;font-size:.92rem;margin:2px 0}.meta{font-size:.8rem;color:#b5bbcc}.meta a{color:#b5bbcc}
.visit{margin-top:auto;align-self:flex-start;background:#20264a;color:#fff;text-decoration:none;font-weight:700;font-size:.85rem;padding:7px 12px;border-radius:10px;border:1px solid #3a4280}.visit:hover{background:#6d5cff}
.more{margin-top:10px;background:none;border:1px dashed #3a4170;color:#c9ceff;border-radius:10px;padding:8px 14px;cursor:pointer}
.date{color:#7ee0a8;font-size:.78rem;font-weight:700}
.inlinecta{margin:22px 0 6px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:18px;border-radius:16px;background:linear-gradient(135deg,#2a1f5c,#123a5a);border:1px solid #3a4280}.inlinecta p{margin:0;color:#dfe3ef}
.btn{background:#6d5cff;color:#fff;border:0;border-radius:12px;padding:11px 18px;font-weight:800;cursor:pointer}
footer{padding:24px 5vw 90px;color:#b0b6c8;font-size:.85rem;border-top:1px solid #1d2132;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.linkbtn{background:none;border:0;color:#9cc0ff;text-decoration:underline;cursor:pointer;padding:0}
.mbar{position:fixed;left:10px;right:10px;bottom:10px;z-index:90;display:flex;gap:6px;background:#1b1f38;border:1px solid #3a4280;border-radius:14px;padding:6px;box-shadow:0 10px 30px #000a}.mbar[hidden]{display:none}.mbar-cta{flex:1;background:#6d5cff;color:#fff;border:0;border-radius:10px;padding:11px;font-weight:800;cursor:pointer}.mbar-x{background:none;border:0;color:#dfe3ef;font-size:22px;width:40px;cursor:pointer}
.modal{position:fixed;inset:0;z-index:100;background:rgba(5,6,12,.75);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px}.modal[hidden]{display:none}.modal-box{position:relative;width:100%;max-width:520px;max-height:90vh;overflow:auto;background:#141827;border:1px solid #2c3145;border-radius:16px;padding:36px 14px 14px}.bh-embed{min-height:200px}.bh-embed iframe{max-width:100%;border:0}.modal-x{position:absolute;top:6px;right:10px;background:none;border:0;color:#dfe3ef;font-size:28px;line-height:1;cursor:pointer;padding:4px 8px}
@media(max-width:900px){.herogrid{grid-template-columns:1fr}.glance{order:2}}
@media(max-width:520px){nav{margin-bottom:18px}.navlinks{gap:10px;font-size:.85rem}.navlinks a[href="#new"]{display:none}.stats{grid-template-columns:repeat(2,1fr)}.toppicks{grid-template-columns:repeat(2,1fr)}.mrow{grid-template-columns:96px 1fr 22px}.sub{font-size:.98rem}.minichart{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}}
.stats{min-height:62px}.toppicks{min-height:96px}#pop{min-height:34px}.carousel{min-height:290px}#upd{display:inline-block;min-width:6em}
@media(max-width:520px){.toppicks{min-height:146px}#pop{min-height:118px}.stats{min-height:128px}}
.mrow{min-height:26px;padding:2px 0}
.herocta{margin-top:12px;background:none;border:1px solid #6d5cff;color:#d9d3ff;border-radius:999px;padding:8px 14px;font-weight:700;cursor:pointer}.herocta:hover{background:#6d5cff;color:#fff}
@media(max-width:480px){.modal{padding:8px}.modal-box{padding:40px 0 0;overflow:hidden auto}}
.affrow{margin-top:auto;display:flex;align-items:center;gap:8px}.affrow .visit{margin-top:0}.affnote{font-size:.72rem;color:#c3c8d8;border:1px dashed #4a5180;border-radius:6px;padding:2px 6px;cursor:help}.disclosure{flex-basis:100%;margin:0;font-size:.8rem;color:#b0b6c8}

/* Quick view */
.actions{margin-top:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.actions>.visit,.actions>.affrow{margin-top:0}
.qvbtn{background:none;color:#c9c3ff;border:1px solid #4a5180;border-radius:10px;padding:6px 11px;font-weight:700;font-size:.85rem;cursor:pointer}
.qvbtn:hover,.qvbtn:focus-visible{background:#20264a;color:#fff}
.qv-box{max-width:460px;padding:18px 18px 16px;overflow:hidden}
.qv-h{display:flex;gap:12px;align-items:center;padding-right:30px}
.qv-h img{border-radius:10px;background:#fff;padding:3px;flex:none}
.qv-h h2{margin:0;font-size:1.15rem;line-height:1.25}
.qv-cat{font-size:.78rem;color:#a6abbd}
.qv-rows{list-style:none;margin:14px 0 10px;padding:0;display:grid;gap:7px}
.qv-rows li{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;line-height:1.35;background:#0f1220;border:1px solid #232842;border-radius:10px;padding:7px 10px}
.qv-rows b{color:#fff}
.qi{flex:none;width:20px;text-align:center}
.qv-alts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.78rem;color:#a6abbd;margin-bottom:12px}
.qv-alt{display:inline-flex;align-items:center;gap:5px;background:#1b2036;color:#e9ebf2;border:1px solid #333a5c;border-radius:999px;padding:4px 10px;font-size:.8rem;cursor:pointer}
.qv-alt:hover,.qv-alt:focus-visible{border-color:#6d5cff}
.qv-alt img{border-radius:3px}
.qv-cta{display:grid;gap:7px}
.qv-try{display:block;text-align:center;text-decoration:none;font-size:1rem;padding:12px 18px}
.qv-try:hover{filter:brightness(1.1)}
.qv-sub{display:flex;justify-content:center;gap:12px;align-items:center;font-size:.78rem}
.qv-sub a{color:#a6abbd}
@media(max-width:480px){.qv-box{padding:16px 14px 14px;overflow:hidden auto}.qv-rows li{font-size:.86rem;padding:6px 9px}}
.qvl{font-size:.75rem;color:#a99dff;margin-left:4px;white-space:nowrap}
