:root{
  --bg:#0a0609; --bg2:#0f0a0e; --panel:#140d13; --panel2:#1a1119;
  --line:rgba(255,255,255,.07); --line2:rgba(255,255,255,.12);
  --magenta:#fa457c; --hot:#ff7aa2; --deep:#e02f66; --magglow:rgba(250,69,124,.5);
  --text:#f4ecef; --muted:#a99ba3; --dim:#6b5c64;
  --str:#6fe0bd; --num:#ffc46b; --key:#ff9dc0;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg); color:var(--text); font-family:'Chivo',system-ui,sans-serif; line-height:1.55;
  -webkit-font-smoothing:antialiased; min-height:100vh}
a{color:inherit; text-decoration:none}
code,.mono{font-family:'JetBrains Mono',monospace}

.aurora{position:fixed; z-index:-1; pointer-events:none; width:900px; height:900px; left:60%; top:-520px;
  background:radial-gradient(circle,var(--magglow),transparent 62%); filter:blur(26px); opacity:.3}

/* nav */
nav{position:sticky; top:0; z-index:50; height:60px; display:flex; align-items:center; justify-content:space-between;
  padding:0 26px; border-bottom:1px solid var(--line); background:rgba(10,6,9,.86); backdrop-filter:blur(14px)}
.brand{display:flex; align-items:center; gap:9px; font-family:'Bricolage Grotesque'; font-weight:800; font-size:1.12rem; letter-spacing:-.02em}
.brand .dot{width:8px; height:8px; border-radius:50%; background:var(--magenta); box-shadow:0 0 12px 2px var(--magglow)}
.brand-mark{width:23px; height:23px; filter:drop-shadow(0 0 8px var(--magglow)); flex:none}
.brand span{color:var(--muted); font-weight:500}
.nav-r{display:flex; gap:20px; align-items:center; font-size:.9rem; color:var(--muted)}
.nav-r a:hover{color:var(--text)}
.pill{font-family:'JetBrains Mono'; font-size:.68rem; color:var(--muted); border:1px solid var(--line2); padding:4px 10px; border-radius:100px}

/* buttons + forms */
.btn{font-family:'Chivo'; font-weight:600; font-size:.88rem; border:none; cursor:pointer; padding:9px 16px; border-radius:9px;
  display:inline-flex; align-items:center; gap:8px; transition:.2s}
.btn-primary{background:var(--magenta); color:#fff; box-shadow:0 6px 22px -8px var(--magglow),inset 0 1px 0 rgba(255,255,255,.22)}
.btn-primary:hover{background:var(--hot); transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.04); color:var(--text); border:1px solid var(--line2)}
.btn-ghost:hover{border-color:var(--magenta)}
.btn-sm{padding:6px 12px; font-size:.8rem}
.btn-danger{background:rgba(250,69,124,.1); color:var(--hot); border:1px solid rgba(250,69,124,.3)}
.btn-danger:hover{background:rgba(250,69,124,.18)}
label{display:block; font-size:.82rem; color:var(--muted); margin-bottom:6px}
input[type=text],input[type=email],input[type=password],input[type=url]{
  width:100%; background:#0c0709; border:1px solid var(--line2); color:var(--text); font-family:'Chivo';
  font-size:.94rem; padding:11px 13px; border-radius:9px; transition:.18s}
input:focus{outline:none; border-color:var(--magenta); box-shadow:0 0 0 3px rgba(250,69,124,.12)}
.field{margin-bottom:16px}
.row{display:flex; gap:12px; flex-wrap:wrap}
.row .field{flex:1; min-width:180px}

/* auth card */
.auth-wrap{min-height:calc(100vh - 60px); display:grid; place-items:center; padding:40px 20px}
.card{background:linear-gradient(180deg,var(--panel2),var(--panel)); border:1px solid var(--line2); border-radius:16px;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9),0 0 60px -30px var(--magglow)}
.auth-card{width:100%; max-width:400px; padding:34px}
.auth-card h1{font-family:'Bricolage Grotesque'; font-weight:800; font-size:1.6rem; letter-spacing:-.02em; margin-bottom:6px}
.auth-card .sub{color:var(--muted); font-size:.92rem; margin-bottom:24px}
.auth-card .btn-primary{width:100%; justify-content:center; padding:12px; margin-top:4px}
.auth-alt{text-align:center; color:var(--muted); font-size:.88rem; margin-top:18px}
.auth-alt a{color:var(--hot)}

/* "Continue with MFL" — sole sign-in action (primary, full-width) */
.btn-sso{width:100%; justify-content:center; padding:14px; font-size:.98rem; margin-top:8px}
.btn-sso .mfl-ic{width:20px; height:20px}

/* dashboard shell + left sidebar */
.app-shell{display:grid; grid-template-columns:236px 1fr; align-items:start}
.app-main{min-width:0}
.sidebar{position:sticky; top:60px; height:calc(100vh - 60px); overflow-y:auto;
  padding:26px 14px 60px; border-right:1px solid var(--line)}
.sidebar h4{font-family:'JetBrains Mono'; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--dim); margin:0 0 10px 11px}
.sidebar a{display:flex; align-items:center; gap:11px; padding:9px 11px; border-radius:9px;
  font-size:.92rem; color:var(--muted); transition:.15s; margin-bottom:3px; border:1px solid transparent}
.sidebar a i{width:17px; text-align:center; color:var(--dim); transition:.15s}
.sidebar a:hover{color:var(--text); background:rgba(255,255,255,.03)}
.sidebar a:hover i{color:var(--hot)}
.sidebar a.active{color:var(--text); background:rgba(250,69,124,.1); border-color:rgba(250,69,124,.22)}
.sidebar a.active i{color:var(--hot)}
@media(max-width:880px){ .app-shell{grid-template-columns:1fr} .sidebar{display:none} }

/* dashboard layout */
.wrap{max-width:1060px; margin:0 auto; padding:34px 26px 100px}
.page-head{margin-bottom:26px}
.page-head h1{font-family:'Bricolage Grotesque'; font-weight:800; font-size:1.9rem; letter-spacing:-.03em}
.page-head p{color:var(--muted); font-size:.95rem; margin-top:2px}

.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:30px}
.stat{background:linear-gradient(180deg,rgba(255,255,255,.02),transparent); border:1px solid var(--line); border-radius:13px; padding:18px}
.stat .lbl{font-family:'JetBrains Mono'; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim); margin-bottom:8px}
.stat .val{font-family:'Bricolage Grotesque'; font-weight:700; font-size:1.7rem; letter-spacing:-.02em}
.stat .val.mag{color:var(--hot)}

.panelbox{border:1px solid var(--line); border-radius:14px; margin-bottom:22px; overflow:hidden; background:var(--panel)}
.panelbox > header{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; border-bottom:1px solid var(--line)}
.panelbox > header h2{font-family:'Bricolage Grotesque'; font-weight:700; font-size:1.12rem; letter-spacing:-.01em; display:flex; align-items:center; gap:9px}
.panelbox > header .ic{color:var(--hot)}
.panelbox .body{padding:18px 20px}
.muted{color:var(--muted); font-size:.9rem}
.empty{color:var(--dim); font-size:.9rem; padding:6px 0}

/* creator roster (read-only, from ads.mflgrowth.com / MFL Ads) */
.creator-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(232px,1fr)); gap:12px}
.creator-card{display:flex; align-items:center; gap:12px; padding:11px 14px; border:1px solid var(--line);
  border-radius:12px; background:linear-gradient(180deg,rgba(255,255,255,.02),transparent); transition:.15s}
.creator-card:hover{border-color:var(--line2)}
.creator-av{position:relative; width:42px; height:42px; flex:none; border-radius:50%; overflow:hidden;
  background:var(--panel2); display:grid; place-items:center}
.creator-av img{width:100%; height:100%; object-fit:cover}
.creator-av span{font-family:'Bricolage Grotesque'; font-weight:700; color:var(--hot)}
.creator-av .dot-online{position:absolute; right:0; bottom:0; width:11px; height:11px; border-radius:50%;
  background:var(--str); border:2px solid var(--panel)}
.creator-meta{min-width:0; flex:1}
.creator-name{font-weight:600; font-size:.94rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.creator-sub{font-size:.76rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}

/* tables */
table{width:100%; border-collapse:collapse; font-size:.9rem}
th,td{text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:middle}
th{font-family:'JetBrains Mono'; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); font-weight:500}
tr:last-child td{border-bottom:none}
td.mono{font-family:'JetBrains Mono'; font-size:.82rem; color:var(--muted)}
.tag{font-family:'JetBrains Mono'; font-size:.68rem; padding:3px 9px; border-radius:100px; display:inline-block}
.tag.active{background:rgba(111,224,189,.12); color:var(--str)}
.tag.expired{background:rgba(255,196,107,.14); color:var(--num)}
.tag.error{background:rgba(250,69,124,.14); color:var(--hot)}
.tag.revoked{background:rgba(255,255,255,.06); color:var(--dim)}

/* forms inside panels */
.inline-form{margin-top:16px; padding-top:16px; border-top:1px dashed var(--line)}
.inline-form h3{font-size:.84rem; color:var(--muted); font-weight:500; margin-bottom:12px; text-transform:uppercase; letter-spacing:.08em; font-family:'JetBrains Mono'; font-size:.68rem}

/* flash + secret reveal */
.flash{border-radius:11px; padding:13px 16px; margin-bottom:18px; font-size:.92rem; display:flex; gap:10px; align-items:flex-start}
.flash.ok{background:rgba(111,224,189,.08); border:1px solid rgba(111,224,189,.28); color:#bff3e2}
.flash.err{background:rgba(250,69,124,.08); border:1px solid rgba(250,69,124,.3); color:#ffc2d5}
.flash i{margin-top:2px}
.secret{background:#0c0709; border:1px solid rgba(250,69,124,.35); border-radius:11px; padding:14px 16px; margin-bottom:18px}
.secret .k{font-family:'JetBrains Mono'; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--hot); margin-bottom:8px}
.secret code{display:block; font-size:.88rem; color:var(--text); word-break:break-all; background:rgba(255,255,255,.03); padding:10px 12px; border-radius:8px; border:1px solid var(--line)}
.secret .warn{color:var(--dim); font-size:.78rem; margin-top:8px}

.errbox{background:rgba(250,69,124,.08); border:1px solid rgba(250,69,124,.3); border-radius:10px; padding:10px 14px; margin-bottom:16px; font-size:.85rem; color:#ffc2d5}
.errbox ul{margin:0; padding-left:18px}

@media(max-width:720px){ .stats{grid-template-columns:1fr 1fr} .wrap{padding:24px 16px 70px} }

/* ─────────────────────────  MFL ADMIN — directory  ───────────────────────── */
.wrap.wide{max-width:1240px}
.stats.stats-7{grid-template-columns:repeat(7,1fr)}
@media(max-width:1000px){ .stats.stats-7{grid-template-columns:repeat(4,1fr)} }
@media(max-width:620px){ .stats.stats-7{grid-template-columns:repeat(2,1fr)} }
.stat .val{font-size:1.5rem}

/* filter bar */
.filterbar{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:18px}
.filterbar .search{position:relative; flex:1; min-width:220px}
.filterbar .search i{position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--dim); font-size:.85rem}
.filterbar .search input{padding-left:34px}
.filterbar select{background:#0c0709; border:1px solid var(--line2); color:var(--text); font-family:'Chivo';
  font-size:.88rem; padding:10px 12px; border-radius:9px; cursor:pointer}
.chips{display:flex; gap:6px; flex-wrap:wrap}
.chip{padding:7px 13px; border-radius:100px; border:1px solid var(--line2); color:var(--muted); font-size:.84rem; transition:.15s}
.chip:hover{color:var(--text); border-color:var(--magenta)}
.chip.on{background:var(--magenta); color:#fff; border-color:var(--magenta)}

/* body with no padding (table flush) */
.panelbox .body.nopad{padding:0}
table.rows{font-size:.9rem}
table.rows th{padding:12px 18px}
table.rows td{padding:12px 18px}
table.rows th.num, table.rows td.num{text-align:right}
table.rows td.ar{text-align:right; white-space:nowrap}

/* person cell */
.person{display:flex; align-items:center; gap:12px}
.person.big{gap:16px; margin-top:10px}
.pav{width:38px; height:38px; flex:none; border-radius:50%; overflow:hidden; background:var(--panel2); display:grid; place-items:center}
.pav.lg{width:64px; height:64px}
.pav img{width:100%; height:100%; object-fit:cover}
.pav span{font-family:'Bricolage Grotesque'; font-weight:700; color:var(--hot)}
.pmeta{min-width:0}
.pname{font-weight:600; display:flex; align-items:center; gap:7px}
.pname .su{color:var(--hot); font-size:.78rem}
.psub{font-size:.78rem; color:var(--muted)}

/* app badges */
.badges{display:flex; gap:5px; flex-wrap:wrap}
.appbadge{font-family:'JetBrains Mono'; font-size:.66rem; padding:3px 8px; border-radius:6px; display:inline-block; border:1px solid transparent}
.appbadge.idp{background:rgba(139,124,255,.14); color:#b3a8ff; border-color:rgba(139,124,255,.3)}
.appbadge.build{background:rgba(108,140,255,.14); color:#9db4ff; border-color:rgba(108,140,255,.3)}
.appbadge.mym{background:rgba(255,122,162,.14); color:var(--hot); border-color:rgba(255,122,162,.3)}
.appbadge.agency{background:rgba(45,212,191,.14); color:#5eead4; border-color:rgba(45,212,191,.3)}
.appbadge.ofp{background:rgba(255,196,107,.14); color:var(--num); border-color:rgba(255,196,107,.3)}

/* key/value grid (detail) */
.kv{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px}
.kv > div{display:flex; flex-direction:column; gap:3px}
.kv span{font-family:'JetBrains Mono'; font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim)}

/* pager */
.pager{display:flex; align-items:center; justify-content:center; gap:16px; margin-top:22px}
.pg{padding:8px 14px; border:1px solid var(--line2); border-radius:9px; color:var(--text); font-size:.85rem}
.pg:hover{border-color:var(--magenta)}
.pg.disabled{color:var(--dim); border-color:var(--line); cursor:default}
.pg-info{color:var(--muted); font-size:.85rem; font-family:'JetBrains Mono'}
