/* ===== CUBIE FX — PUBLIC TOOLS PAGE ===== */
:root{
  --bg:#05070E;
  --bg2:#080B14;
  --card:#0C1020;
  --card2:#10152A;
  --line:rgba(255,255,255,.07);
  --line2:rgba(255,255,255,.13);
  --ink:#EDF0F8;
  --muted:#98A0B6;
  --muted2:#666E85;
  --pu:#7C5CFF;
  --bl:#4A8CFF;
  --grad:linear-gradient(100deg,#5B5BF5,#7C5CFF);
  --green:#22C55E;
  --orange:#F59E0B;
  --red:#EF4444;
  --cyan:#22D3EE;
  --wrap:1440px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Inter",system-ui,sans-serif;font-size:14px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,b,strong{font-family:"Manrope",system-ui,sans-serif;letter-spacing:-.02em;margin:0}
a{color:inherit;text-decoration:none}
p{margin:0}
:focus-visible{outline:2px solid var(--pu);outline-offset:2px;border-radius:8px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.gt{background:linear-gradient(100deg,#6C8CFF,#A78BFA);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ===== NAV ===== */
.nav{position:sticky;top:0;z-index:60;background:rgba(5,7,14,.88);backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;height:74px;gap:20px}
.logo{display:flex;align-items:center;gap:11px}
.logo img{width:34px;height:34px;object-fit:contain}
.logo span{font-family:"Manrope",sans-serif;font-weight:800;font-size:20px}
.logo b{color:var(--bl);font-weight:800}
.nlinks{display:flex;align-items:center;gap:34px;margin:0 auto;font-size:14.5px;font-weight:500;color:var(--muted)}
.nlinks a{position:relative;padding:6px 0}
.nlinks a:hover{color:var(--ink)}
.nlinks a.on{color:var(--ink);font-weight:600}
.nlinks a.on::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--grad)}
.nright{display:flex;align-items:center;gap:12px}
.iconbtn{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--muted);
  background:none;border:0;cursor:pointer}
.iconbtn:hover{color:var(--ink);background:rgba(255,255,255,.05)}
.iconbtn svg{width:18px;height:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:11px;
  padding:11px 22px;font-family:"Manrope",sans-serif;font-weight:700;font-size:14px;
  border:0;cursor:pointer;transition:transform .16s,opacity .18s,border-color .18s,background .18s}
.btn svg{width:15px;height:15px}
.btn.grad{background:var(--grad);color:#fff;box-shadow:0 8px 26px rgba(91,91,245,.32)}
.btn.grad:hover{transform:translateY(-2px)}
.btn.outline{background:transparent;border:1px solid var(--line2);color:var(--ink)}
.btn.outline:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.04)}
.burger{display:none;background:none;border:0;color:var(--ink);padding:6px;cursor:pointer}
.burger svg{width:23px;height:23px}

/* ===== HERO ===== */
.hero{text-align:center;padding:44px 0 30px}
.hero h1{font-size:clamp(32px,4.4vw,46px);font-weight:800;margin-bottom:10px}
.hero p{color:var(--muted2);font-size:14.5px}
.hsearch{max-width:680px;margin:26px auto 0;display:flex;align-items:center;gap:12px;
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 18px}
.hsearch input{flex:1;background:none;border:0;color:var(--ink);font-family:"Inter",sans-serif;
  font-size:14px;outline:none;min-width:0}
.hsearch input::placeholder{color:var(--muted2)}
.hsearch svg{width:18px;height:18px;color:var(--muted2);flex:none}

/* ===== LAYOUT ===== */
.cols{display:grid;grid-template-columns:212px minmax(0,1fr) 274px;gap:24px;padding-bottom:60px;align-items:start}

/* left rail */
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px}
.panel h3{font-size:15px;font-weight:800;margin-bottom:14px}
.cat{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;
  color:var(--muted);font-size:12.5px;font-weight:500;transition:background .16s,color .16s}
.cat svg{width:16px;height:16px;flex:none}
.cat .n{margin-left:auto;font-size:11px;color:var(--muted2)}
.cat:hover{background:rgba(255,255,255,.045);color:var(--ink)}
.cat.on{background:var(--grad);color:#fff;font-weight:600}
.cat.on .n{color:rgba(255,255,255,.75)}

.unlock{background:linear-gradient(170deg,rgba(124,92,255,.16),rgba(12,16,32,.5));
  border:1px solid rgba(124,92,255,.3);border-radius:16px;padding:20px 16px;margin-top:16px;text-align:center}
.unlock .uc{color:#FBBF24;margin-bottom:10px;display:grid;place-items:center}
.unlock .uc svg{width:24px;height:24px}
.unlock b{display:block;font-size:14px;font-weight:800;margin-bottom:14px}
.unlock ul{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:9px;text-align:left}
.unlock li{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--muted)}
.unlock li::before{content:"✓";color:#4ADE80;font-weight:800;font-size:11px}
.unlock a{display:block;background:var(--grad);color:#fff;border-radius:10px;padding:11px;
  font-family:"Manrope",sans-serif;font-weight:700;font-size:12.5px}
.unlock a:hover{opacity:.92}

/* login banner */
.loginbar{display:flex;align-items:center;gap:14px;background:linear-gradient(100deg,rgba(91,91,245,.14),rgba(12,16,32,.6));
  border:1px solid rgba(124,92,255,.26);border-radius:14px;padding:15px 18px;margin-bottom:24px}
.loginbar .lk{width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center;
  background:rgba(124,92,255,.16);color:#A78BFA}
.loginbar .lk svg{width:18px;height:18px}
.loginbar p{font-size:13.5px;color:var(--muted)}
.loginbar .acts{margin-left:auto;display:flex;gap:10px;flex:none}
.loginbar .btn{padding:9px 18px;font-size:13px}

/* section head */
.shead{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.shead h2{font-size:16px;font-weight:800}
.shead .all{margin-left:auto;font-size:12.5px;color:var(--bl);font-weight:600}
.shead .all:hover{text-decoration:underline}
.shead .ctrl{margin-left:auto;display:flex;gap:9px}
.sel{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:8px 13px;font-size:12.5px;color:var(--muted);cursor:pointer}
.sel svg{width:13px;height:13px}

/* popular cards */
.pop-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:30px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:20px 16px;
  text-align:center;transition:transform .18s,border-color .18s,box-shadow .2s}
.pcard:hover{transform:translateY(-4px)}
.pcard .pi{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;margin:0 auto 14px;
  background:rgba(255,255,255,.05);border:1px solid var(--line)}
.pcard .pi svg{width:28px;height:28px}
.pcard b{display:block;font-size:14px;font-weight:800;margin-bottom:8px}
.pcard p{font-size:11.5px;color:var(--muted2);line-height:1.55;margin-bottom:16px;min-height:34px}
.pcard .open{display:flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;padding:9px;
  font-size:12px;font-weight:700;font-family:"Manrope",sans-serif;background:rgba(255,255,255,.045);
  border:1px solid var(--line2)}
.pcard .open svg{width:12px;height:12px}
.k-pu{background:linear-gradient(170deg,rgba(139,92,246,.14),rgba(12,16,32,.3))}
.k-pu .pi,.k-pu .open{color:#A78BFA;border-color:rgba(139,92,246,.36)}
.k-pu:hover{border-color:rgba(139,92,246,.5)}
.k-gr{background:linear-gradient(170deg,rgba(34,197,94,.12),rgba(12,16,32,.3))}
.k-gr .pi,.k-gr .open{color:#4ADE80;border-color:rgba(34,197,94,.32)}
.k-gr:hover{border-color:rgba(34,197,94,.46)}
.k-bl{background:linear-gradient(170deg,rgba(74,140,255,.13),rgba(12,16,32,.3))}
.k-bl .pi,.k-bl .open{color:#60A5FA;border-color:rgba(74,140,255,.34)}
.k-bl:hover{border-color:rgba(74,140,255,.48)}
.k-cy{background:linear-gradient(170deg,rgba(34,211,238,.12),rgba(12,16,32,.3))}
.k-cy .pi,.k-cy .open{color:#22D3EE;border-color:rgba(34,211,238,.32)}
.k-cy:hover{border-color:rgba(34,211,238,.46)}
.k-or{background:linear-gradient(170deg,rgba(245,158,11,.12),rgba(12,16,32,.3))}
.k-or .pi,.k-or .open{color:#FBBF24;border-color:rgba(245,158,11,.32)}
.k-or:hover{border-color:rgba(245,158,11,.46)}
.k-rd{background:linear-gradient(170deg,rgba(239,68,68,.12),rgba(12,16,32,.3))}
.k-rd .pi,.k-rd .open{color:#F87171;border-color:rgba(239,68,68,.32)}
.k-rd:hover{border-color:rgba(239,68,68,.46)}

/* all calculators grid */
.all-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}
.acard{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:15px;transition:transform .16s,border-color .16s}
.acard:hover{transform:translateY(-3px);border-color:var(--line2)}
.acard .ai{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;
  background:rgba(255,255,255,.05);border:1px solid var(--line)}
.acard .ai svg{width:21px;height:21px}
.acard b{display:block;font-size:12.5px;font-weight:800;line-height:1.3;margin-bottom:5px}
.acard p{font-size:11px;color:var(--muted2);line-height:1.5;margin-bottom:10px}
.acard .open{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;
  font-family:"Manrope",sans-serif;color:var(--muted)}
.acard .open svg{width:11px;height:11px}
.acard:hover .open{color:var(--ink)}
.loadmore{display:block;margin:0 auto;background:var(--card);border:1px solid var(--line2);
  color:var(--ink);border-radius:11px;padding:12px 28px;font-family:"Manrope",sans-serif;
  font-weight:700;font-size:13.5px;cursor:pointer}
.loadmore:hover{background:rgba(255,255,255,.05)}
.loadmore svg{width:14px;height:14px;vertical-align:-2px;margin-left:6px}

/* right rail */
.trow{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.05)}
.trow:first-of-type{border-top:0}
.trow .num{width:21px;height:21px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-size:10.5px;font-weight:800;font-family:"Manrope",sans-serif;color:#fff}
.n1{background:#5B5BF5}.n2{background:#F59E0B}.n3{background:#F97316}.n4{background:#3B82F6}.n5{background:#8B5CF6}
.trow b{font-size:11.5px;font-weight:600}
.trow .spark{margin-left:auto;width:56px;height:20px;flex:none}
.trow .cnt{font-size:11px;color:var(--muted);width:34px;text-align:right;font-weight:600}

.ready{position:relative;overflow:hidden;background:linear-gradient(170deg,rgba(91,91,245,.2),rgba(12,16,32,.7));
  border:1px solid rgba(124,92,255,.3);border-radius:16px;padding:20px;margin-top:16px}
.ready h3{font-size:17px;font-weight:800;line-height:1.3;margin-bottom:10px;position:relative;z-index:2}
.ready p{font-size:12px;color:var(--muted);margin-bottom:16px;position:relative;z-index:2}
.ready a{display:block;text-align:center;background:var(--grad);color:#fff;border-radius:11px;padding:11px;
  font-family:"Manrope",sans-serif;font-weight:700;font-size:13px;position:relative;z-index:2}
.ready a:hover{opacity:.93}
.ready .bgc{position:absolute;left:0;right:0;bottom:0;height:110px;opacity:.5;z-index:1}
.ready .bgc svg{width:100%;height:100%;display:block}

/* ===== FOOTER ===== */
.footer{border-top:1px solid var(--line);background:var(--bg2);padding:44px 0 26px}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.4fr;gap:28px}
.fbrand .logo{margin-bottom:14px}
.fbrand p{font-size:12.5px;color:var(--muted2);line-height:1.7;max-width:240px}
.fcol h4{font-size:13.5px;font-weight:800;margin-bottom:14px}
.fcol a{display:block;font-size:12.5px;color:var(--muted2);padding:4px 0}
.fcol a:hover{color:var(--ink)}
.sub-form{display:flex;gap:0;background:var(--card);border:1px solid var(--line2);border-radius:11px;
  overflow:hidden;margin:12px 0 16px}
.sub-form input{flex:1;background:none;border:0;color:var(--ink);padding:11px 14px;
  font-family:"Inter",sans-serif;font-size:12.5px;outline:none;min-width:0}
.sub-form input::placeholder{color:var(--muted2)}
.sub-form button{background:var(--grad);border:0;color:#fff;padding:0 16px;cursor:pointer;display:grid;place-items:center}
.sub-form button svg{width:15px;height:15px}
.socials{display:flex;gap:10px}
.socials a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.05);
  display:grid;place-items:center;color:var(--muted);padding:0}
.socials a:hover{background:var(--grad);color:#fff}
.socials svg{width:15px;height:15px}
.fbase{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);
  font-size:12px;color:var(--muted2);text-align:right}

@media (max-width:1240px){
  .cols{grid-template-columns:200px minmax(0,1fr)}
  .rail-r{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .ready{margin-top:0}
  .pop-grid,.all-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .nlinks{display:none;position:absolute;top:74px;left:0;right:0;flex-direction:column;align-items:flex-start;
    gap:16px;background:rgba(8,11,20,.98);padding:20px 24px;border-bottom:1px solid var(--line)}
  .nlinks.open{display:flex}
  .burger{display:grid}
  .nright .outline{display:none}
  .cols{grid-template-columns:1fr}
  .rail-l{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  .unlock{margin-top:0}
  .pop-grid,.all-grid{grid-template-columns:repeat(2,1fr)}
  .loginbar{flex-wrap:wrap}
  .loginbar .acts{width:100%;margin-left:0}
  .loginbar .acts .btn{flex:1}
  .fgrid{grid-template-columns:1fr 1fr}
  .fbase{text-align:left}
}
@media (max-width:560px){
  .rail-l,.rail-r{grid-template-columns:1fr}
  .pop-grid,.all-grid{grid-template-columns:1fr}
  .hero{padding:30px 0 20px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}

/* ============================================
   Colour on the full grid

   The k- tints already existed but only reached .pi, which the small
   cards do not use — they use .ai. So a card in the full grid picked up
   the gradient background and then rendered a grey icon and a grey link
   on top of it. Extending the same rules to .ai finishes the job.
   ============================================ */
.k-pu .ai{color:#A78BFA;border-color:rgba(139,92,246,.36)}
.k-gr .ai{color:#4ADE80;border-color:rgba(34,197,94,.32)}
.k-bl .ai{color:#60A5FA;border-color:rgba(74,140,255,.34)}
.k-cy .ai{color:#22D3EE;border-color:rgba(34,211,238,.32)}
.k-or .ai{color:#FBBF24;border-color:rgba(245,158,11,.32)}
.k-rd .ai{color:#F87171;border-color:rgba(239,68,68,.32)}

.k-pu .acard-open,.k-pu.acard .open{color:#A78BFA}
.k-gr.acard .open{color:#4ADE80}
.k-bl.acard .open{color:#60A5FA}
.k-cy.acard .open{color:#22D3EE}
.k-or.acard .open{color:#FBBF24}
.k-rd.acard .open{color:#F87171}
.acard:hover .open{filter:brightness(1.2)}
