/* Befounder component styles. Requires tokens.css. */
.bf-body{font-family:var(--bf-font);background:var(--bf-ground);color:var(--bf-ink);-webkit-font-smoothing:antialiased;margin:0;min-height:100vh}
.bf-body *{box-sizing:border-box}
.bf-body{display:block}
main.bf-main{width:100%;min-width:0}
.bf-body a{color:inherit;text-decoration:none}
.bf-body :focus-visible{outline:none;box-shadow:var(--bf-focus);border-radius:8px}
svg.bf-i{width:22px;height:22px;display:block;flex:none}
.bf-dt{fill:currentColor;opacity:.35}.bf-ln{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bf-logo{font-weight:800;font-size:18px;letter-spacing:-.03em;display:flex;align-items:center;gap:8px}
.bf-logo i{width:30px;height:30px;border-radius:10px;background:var(--g-bonus);display:block}
.bf-logo-img{height:34px;width:auto;display:block}
.bf-logo-mark{width:34px;height:34px;border-radius:10px;display:block}
.bf-side .bf-logo,.bf-auth-art .bf-logo{font-size:19px}
.bf-logo b{font-weight:800}.bf-logo b span{color:var(--bf-brand)}
.bf-side .bf-logo b span,.bf-auth-art .bf-logo b span{color:#7db4ff}
.bf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* cards */
.bf-card{background:var(--bf-card);border-radius:var(--bf-r-lg);padding:20px;border:1px solid transparent}
.bf-card>h3,.bf-card-title{font-size:15px;font-weight:800;margin:0 0 2px}
.bf-card .bf-sub,.bf-sub{color:var(--bf-mut);font-size:12.5px}
.bf-grid{display:grid;gap:14px}.bf-grid-2{grid-template-columns:repeat(2,1fr)}.bf-grid-3{grid-template-columns:repeat(3,1fr)}.bf-grid-4{grid-template-columns:repeat(4,1fr)}

/* page header */
.bf-pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.bf-pagehead h1,.bf-pagehead h2{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0}
.bf-pagehead p{color:var(--bf-mut);font-size:14px;margin:2px 0 0}

/* buttons */
.bf-btn{display:inline-flex;align-items:center;gap:8px;background:var(--bf-ink);color:#fff;border:0;border-radius:var(--bf-r-sm);padding:11px 18px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;transition:transform var(--bf-ease),box-shadow var(--bf-ease)}
.bf-btn:hover{transform:translateY(-2px);box-shadow:var(--bf-shadow);color:#fff}
.bf-btn-ghost{background:#fff;color:var(--bf-ink);border:1px solid var(--bf-line)}.bf-btn-ghost:hover{color:var(--bf-ink)}
.bf-btn-grad{background:var(--g-reg)}

/* wallet tile */
.bf-wallets{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.bf-w{border-radius:var(--bf-r-lg);padding:18px;color:#fff;min-height:132px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;transition:transform .25s}
.bf-w:hover{transform:translateY(-4px)}
.bf-w .bf-w-ic{width:40px;height:40px;border-radius:13px;background:rgba(255,255,255,.22);display:grid;place-items:center}
.bf-w small{font-weight:600;font-size:13px;color:rgba(255,255,255,.92)}
.bf-w b{font-size:28px;font-weight:800;letter-spacing:-.02em;display:block;margin-top:2px;overflow-wrap:anywhere}
.bf-w .bf-w-tag{position:absolute;right:16px;top:18px;background:rgba(255,255,255,.2);border-radius:99px;font-size:11px;font-weight:700;padding:3px 9px}
.bf-w::after{content:"";position:absolute;right:-30px;bottom:-40px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.12)}
.bf-g-bonus{background:var(--g-bonus)}.bf-g-reg{background:var(--g-reg)}.bf-g-mall{background:var(--g-mall)}.bf-g-comp{background:var(--g-comp)}

/* stat tile */
.bf-k{background:#fff;border-radius:18px;padding:16px;display:flex;gap:12px;align-items:center;min-width:0}
.bf-k .bf-k-ic{width:44px;height:44px;border-radius:14px;color:#fff;display:grid;place-items:center;flex:none}
.bf-k small{color:var(--bf-mut);font-size:12px;font-weight:600}
.bf-k b{display:block;font-size:22px;font-weight:800;letter-spacing:-.02em;overflow-wrap:anywhere}
.bf-k em{font-style:normal;font-size:11px;font-weight:700;color:var(--bf-ok)}
.bf-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}

/* badges */
.bf-badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11.5px;font-weight:700;background:var(--bf-info-bg);color:var(--bf-info)}
.bf-badge-ok{background:var(--bf-ok-bg);color:var(--bf-ok)}.bf-badge-warn{background:var(--bf-warn-bg);color:var(--bf-warn)}
.bf-badge-bad{background:var(--bf-bad-bg);color:var(--bf-bad)}.bf-badge-info{background:var(--bf-info-bg);color:var(--bf-info)}.bf-badge-mut{background:var(--bf-bg);color:var(--bf-mut)}

/* tables */
.bf-table{width:100%;border-collapse:collapse;font-size:13px}
.bf-table th{text-align:left;color:var(--bf-mut);font-weight:700;font-size:11.5px;padding:8px 10px}
.bf-table td{padding:11px 10px;border-top:1px solid var(--bf-line);overflow-wrap:anywhere}
.bf-table tr:hover td{background:var(--bf-bg)}
.bf-table-wrap{overflow-x:auto}

/* empty state */
.bf-empty{text-align:center;padding:36px 16px;color:var(--bf-mut)}
.bf-empty .bf-empty-ic{width:56px;height:56px;border-radius:18px;background:var(--bf-bg);display:grid;place-items:center;margin:0 auto 12px;color:var(--bf-navy-2)}
.bf-empty b{display:block;color:var(--bf-ink);font-size:15px;margin-bottom:4px}

/* avatars */
.bf-av{width:36px;height:36px;border-radius:50%;background:var(--g-mall);color:#fff;font-weight:800;display:grid;place-items:center;font-size:13px;flex:none}

/* nav: top bar (member/media) */
.bf-top{display:flex;align-items:center;gap:18px;padding:14px 22px;background:#fff;border-bottom:1px solid var(--bf-line);position:sticky;top:0;z-index:40}
.bf-nav{display:flex;gap:4px;margin-left:12px}
.bf-nav a{padding:8px 14px;border-radius:var(--bf-r-sm);font-size:14px;font-weight:600;color:var(--bf-mut);display:flex;gap:8px;align-items:center;transition:background var(--bf-ease),color var(--bf-ease);white-space:nowrap}
.bf-nav a:hover{background:var(--bf-bg);color:var(--bf-ink)}.bf-nav a.on{background:var(--bf-ink);color:#fff}
.bf-nav a svg.bf-i{width:20px;height:20px}
.bf-search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--bf-bg);padding:9px 14px;border-radius:var(--bf-r-sm);color:var(--bf-mut);font-size:13px;min-width:230px;border:0;cursor:pointer;font-family:inherit}
.bf-search kbd{margin-left:auto;background:#fff;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700;font-family:inherit;color:var(--bf-ink)}
.bf-main{padding:24px 22px 40px;max-width:1500px;margin:0 auto}
.bf-dock{display:none}

/* admin shell */
.bf-adm{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
.bf-side{background:var(--bf-ink);color:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}
.bf-side .bf-logo{padding:2px 8px 16px}.bf-side .bf-logo i{background:var(--g-reg)}
.bf-side a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--bf-r-sm);font-size:14px;font-weight:600;color:#b9c2e4;transition:background var(--bf-ease),color var(--bf-ease)}
.bf-side a:hover{background:rgba(255,255,255,.08);color:#fff}.bf-side a.on{background:var(--g-reg);color:#fff}
.bf-side a svg.bf-i{width:20px;height:20px}
.bf-side small{margin:14px 12px 4px;color:#8c98c4;font-size:11px;font-weight:700;letter-spacing:.06em}
.bf-atop{display:flex;align-items:center;gap:14px;padding:16px 22px;background:var(--bf-ground);position:sticky;top:0;z-index:30}
.bf-atop .bf-search{margin-left:0;flex:1;max-width:420px;background:#fff}
.bf-burger{display:none}

/* hub partner rail */
.bf-rail{position:fixed;left:14px;top:50%;transform:translateY(-50%);background:#fff;border-radius:26px;padding:10px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--bf-shadow-lg);z-index:50}
.bf-rail a{position:relative;width:46px;height:46px;border-radius:16px;display:grid;place-items:center;color:var(--bf-mut);transition:background var(--bf-ease),color var(--bf-ease)}
.bf-rail a:hover,.bf-rail a:focus-visible{background:var(--bf-bg);color:var(--bf-ink)}.bf-rail a.on{background:var(--g-reg);color:#fff}
.bf-rail a span{position:absolute;left:58px;top:50%;transform:translateY(-50%) translateX(-4px);background:var(--bf-ink);color:#fff;font-size:12.5px;font-weight:700;padding:6px 12px;border-radius:10px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--bf-ease),transform var(--bf-ease)}
.bf-rail a:hover span,.bf-rail a:focus-visible span{opacity:1;transform:translateY(-50%)}
.bf-main.bf-with-rail{padding-left:92px}

/* account menu */
.bf-menu{position:relative}
.bf-menu summary{list-style:none;cursor:pointer}.bf-menu summary::-webkit-details-marker{display:none}
.bf-menu-pop{position:absolute;right:0;top:46px;background:#fff;border-radius:var(--bf-r-md);box-shadow:var(--bf-shadow-lg);padding:8px;min-width:220px;z-index:70}
.bf-menu-pop a{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;font-size:13.5px;font-weight:600}
.bf-menu-pop a:hover{background:var(--bf-bg)}
.bf-menu-who{padding:8px 12px 10px;border-bottom:1px solid var(--bf-line);margin-bottom:6px}
.bf-menu-who b{display:block;font-size:14px}.bf-menu-who small{color:var(--bf-mut);font-size:12px;overflow-wrap:anywhere}

/* command palette */
.bf-cmd-bg{position:fixed;inset:0;background:rgba(13,27,61,.45);display:none;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:1000}
.bf-cmd-bg.open{display:flex}
.bf-cmd{background:#fff;width:min(560px,92vw);border-radius:var(--bf-r-lg);box-shadow:var(--bf-shadow-lg);overflow:hidden}
.bf-cmd input{width:100%;border:0;border-bottom:1px solid var(--bf-line);padding:16px 18px;font:inherit;font-size:15px;outline:none;color:var(--bf-ink)}
.bf-cmd ul{list-style:none;margin:0;padding:8px;max-height:50vh;overflow-y:auto}
.bf-cmd li a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--bf-r-sm);font-size:14px;font-weight:600}
.bf-cmd li a small{margin-left:auto;color:var(--bf-mut);font-weight:600}
.bf-cmd li.sel a,.bf-cmd li a:hover{background:var(--bf-bg)}

/* auth */
.bf-auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.bf-auth-art{background:var(--g-comp);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.bf-auth-art::after{content:"";position:absolute;right:-80px;bottom:-80px;width:320px;height:320px;border-radius:50%;background:rgba(255,255,255,.08)}
.bf-body .bf-auth-art h2{color:#fff;font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin:0 0 10px}
.bf-auth-art p{color:rgba(255,255,255,.85);max-width:380px}
.bf-auth-form{display:grid;place-items:center;padding:32px 20px}
.bf-auth-box{width:min(400px,100%)}
.bf-auth-box h1{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0 0 4px}
.bf-field{margin-bottom:14px}
.bf-field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}
.bf-input{width:100%;border:1px solid var(--bf-line);background:#fff;border-radius:var(--bf-r-sm);padding:12px 14px;font:inherit;font-size:14px;color:var(--bf-ink)}
.bf-input:focus{outline:none;box-shadow:var(--bf-focus);border-color:var(--bf-blue)}
.bf-alert{border-radius:var(--bf-r-sm);padding:10px 14px;font-size:13px;font-weight:600;margin-bottom:14px;background:var(--bf-bad-bg);color:var(--bf-bad)}

/* error pages */
.bf-err{min-height:100vh;display:grid;place-items:center;padding:24px;text-align:center}
.bf-err .bf-code{font-size:96px;font-weight:800;letter-spacing:-.05em;background:var(--g-bonus);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}

/* impersonation banner */
.bf-imp{background:var(--bf-ink);color:#fff;padding:8px 16px;font-size:13px;font-weight:600;display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}
.bf-imp a,.bf-imp button{background:#fff;color:var(--bf-ink);border:0;border-radius:8px;padding:4px 10px;font:inherit;font-weight:700;cursor:pointer}

@media(max-width:1000px){
  .bf-wallets,.bf-kpis,.bf-grid-4{grid-template-columns:1fr 1fr}.bf-grid-3,.bf-grid-2{grid-template-columns:1fr}
  .bf-auth{grid-template-columns:1fr}.bf-auth-art{display:none}
  .bf-adm{grid-template-columns:minmax(0,1fr)}
  .bf-nav{display:none}
  .bf-dock{display:flex;position:fixed;left:10px;right:10px;bottom:10px;background:#fff;border-radius:22px;padding:6px;justify-content:space-around;box-shadow:var(--bf-shadow-lg);z-index:50}
  .bf-dock a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;font-weight:700;color:var(--bf-mut);padding:6px 10px;border-radius:14px;min-width:52px}
  .bf-dock a.on{background:var(--bf-ink);color:#fff}
  .bf-main{padding-bottom:96px}
  .bf-side{position:fixed;left:0;top:0;width:260px;transform:translateX(-100%);transition:transform .25s;z-index:60}
  .bf-side.open{transform:none}.bf-burger{display:grid;place-items:center;width:40px;height:40px;border:0;background:#fff;border-radius:12px;color:var(--bf-ink);cursor:pointer}
}
@media(max-width:760px){
  .bf-nav{display:none}.bf-search{min-width:0;flex:1}.bf-search .bf-search-txt{display:none}
  .bf-top{padding:12px 14px;gap:10px}.bf-main{padding:16px 14px 96px}
  .bf-dock{display:flex;position:fixed;left:10px;right:10px;bottom:10px;background:#fff;border-radius:22px;padding:6px;justify-content:space-around;box-shadow:var(--bf-shadow-lg);z-index:50}
  .bf-dock a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;font-weight:700;color:var(--bf-mut);padding:6px 10px;border-radius:14px;min-width:52px}
  .bf-dock a.on{background:var(--bf-ink);color:#fff}
  .bf-wallets,.bf-kpis{grid-template-columns:1fr 1fr;gap:10px}
  .bf-rail{top:auto;bottom:10px;left:10px;right:10px;transform:none;flex-direction:row;justify-content:space-around;border-radius:22px}
  .bf-rail a span{display:none}.bf-main.bf-with-rail{padding-left:14px}
  .bf-pagehead h1,.bf-pagehead h2{font-size:22px}
}
@media(prefers-reduced-motion:reduce){.bf-body *{transition:none!important;animation:none!important}}
@media print{.bf-top,.bf-side,.bf-atop,.bf-rail,.bf-dock,.bf-imp{display:none!important}.bf-adm{display:block}.bf-main{padding:0}}
