/* Ghost Washer - estilos solo de la app (el sistema base esta en /assets/app.css) */
html,body{background:#000;overscroll-behavior-y:none}
.topbar{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.topbar .logo{height:30px;width:auto}
.topbar .title{font-size:.9rem}
.main{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.tabbar a{min-height:var(--nav-h)}
.tabbar a:active{background:var(--surface)}

/* Avisos emergentes (gc-core usa .gc-toast) */
.gc-toast{pointer-events:auto;padding:12px 16px;border-radius:var(--r-sm);background:#111511;border:1px solid var(--line-2);font-size:.88rem;box-shadow:0 8px 24px rgba(0,0,0,.5);animation:toast-in .18s ease-out;transition:opacity .4s}
.gc-toast.ok{border-color:rgba(76,242,15,.5)}
.gc-toast.bad,.gc-toast.error{border-color:rgba(255,107,94,.6)}
.gc-toast.out{opacity:0}
body.no-tabs #gc-toasts{bottom:calc(20px + var(--safe-b))}

/* Acceso */
.auth{justify-content:flex-start;padding-top:calc(36px + var(--safe-t))}
.auth-card{margin:auto 0}
.auth .eyebrow{text-align:center}
.auth-mark{width:104px}
.auth form{margin-top:4px}
.pw-wrap{position:relative}
.pw-wrap .input{padding-right:64px}
.pw-toggle{position:absolute;right:4px;top:4px;height:38px;padding:0 12px;border:0;background:transparent;color:var(--muted);font:600 .75rem var(--font);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.agree{display:flex;gap:12px;align-items:flex-start;font-size:.82rem;color:var(--muted);margin:4px 0 16px;cursor:pointer}
.agree input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--accent)}
.lang-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.lang-row .label{margin:0}
.auth-foot .lang-switch{margin-bottom:14px}
.steps{list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{counter-increment:s;display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.steps li:last-child{border-bottom:0}
.steps li::before{content:counter(s);flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font:700 .75rem var(--font);color:var(--accent)}
.status-head{text-align:center;margin-bottom:22px}
.status-head .badge{margin-bottom:14px}

/* Trabajos */
.jobs-stats{margin-bottom:6px}
.job-row{align-items:flex-start;padding:16px}
.job-row .code{font:600 .7rem/1 var(--font);letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-bottom:6px}
.job-row .t{white-space:normal;overflow:visible}
.job-row .s{white-space:normal;margin-top:2px}
.job-row .meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px;font-size:.78rem;color:var(--muted)}
.job-row .end{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.job-row.attn{border-left:3px solid var(--warn)}
.bar{height:4px;border-radius:2px;background:var(--line-2);overflow:hidden;margin-top:10px}
.bar > i{display:block;height:100%;background:var(--accent)}
.sec-title{display:flex;align-items:baseline;justify-content:space-between;margin:26px 0 10px}
.sec-title h2{font-size:.95rem}
.sec-title span{font-size:.78rem;color:var(--muted)}

/* Detalle */
.job-head{margin:6px 0 18px}
.job-head .code{font:600 .72rem/1 var(--font);letter-spacing:.16em;color:var(--muted);text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.job-head h1{font-size:1.35rem;margin-bottom:8px;overflow-wrap:anywhere}
.card h2.card-title{font-size:.8rem;letter-spacing:.14em;color:var(--muted);margin-bottom:12px}
.pre-wrap{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.ck-group{margin-top:0}
.ck-group + .ck-group{margin-top:18px}
.ck-group .list .check span{flex:1;min-width:0;padding-top:1px}
.check.done span{color:var(--muted)}
.check input{margin-top:0}
.check.busy{opacity:.6}
.req{display:grid;gap:8px;margin:0 0 14px;padding:0;list-style:none;font-size:.85rem}
.req li{display:flex;align-items:center;gap:10px;color:var(--muted)}
.req li::before{content:"";flex:none;width:14px;height:14px;border-radius:50%;border:1.5px solid var(--line-2)}
.req li.ok{color:var(--text)}
.req li.ok::before{background:var(--accent);border-color:var(--accent)}
.photo{padding:0;cursor:pointer}
.photo button.pv{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}
.photo .rm{position:absolute;right:4px;top:4px;width:30px;height:30px;border-radius:50%;border:0;background:rgba(0,0,0,.75);color:#fff;cursor:pointer;font:700 16px/1 var(--font)}
.photo.up{display:grid;place-items:center}
.photo .sk{position:absolute;inset:0}
.photo-add input{position:absolute;opacity:0;width:0;height:0}
.photo-add{position:relative}
.photo-lib{margin-top:10px}
.lightbox img{max-height:70dvh;width:100%;object-fit:contain;border-radius:var(--r-sm);background:#000}
.sheet p{color:var(--muted)}
.sheet .btn-row .btn{flex:1}

/* Red / ganancias */
.lvl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;margin-top:10px}
.lvl{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r);padding:12px}
.lvl .k{font:600 .64rem/1.2 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.lvl .v{font:800 1.2rem/1.1 var(--display);font-stretch:112%;margin-top:6px;font-variant-numeric:tabular-nums}
.tree-wrap{border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2);padding:6px 14px}
.tree > li{border-bottom:1px solid var(--line)}
.tree > li:last-child{border-bottom:0}
.tree .tree > li{border-bottom:0}
.node .nm{flex:1;min-width:0}
.node .nm b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.node .nm small{color:var(--muted);font-size:.78rem}
.node .toggle{width:36px;height:36px;font-size:1rem;line-height:1}
.tree-more{padding:6px 0 10px}
.amt{font:700 .95rem var(--font);font-variant-numeric:tabular-nums}
.amt.neg{color:var(--danger)}

/* Perfil / ayuda */
.share-box{display:grid;gap:10px}
.code-big{font:800 1.6rem/1 var(--display);font-stretch:112%;letter-spacing:.14em;color:var(--accent);margin:2px 0 12px;word-break:break-all}
details.faq{border-bottom:1px solid var(--line)}
details.faq:last-child{border-bottom:0}
details.faq summary{list-style:none;cursor:pointer;padding:16px;font-weight:600;display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:52px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";color:var(--accent);font-size:1.3rem;line-height:1;flex:none}
details.faq[open] summary::after{content:"\2212"}
details.faq .ans{padding:0 16px 16px;color:#cfd6cf;font-size:.9rem}
details.faq .ans p:last-child{margin-bottom:0}
.linkrow{display:flex;justify-content:space-between;align-items:center;min-height:52px}
.err-box{text-align:center;padding:30px 10px}
.sticky-cta{position:sticky;bottom:calc(var(--nav-h) + var(--safe-b) + 10px);z-index:20}
.jobs-stats{grid-template-columns:repeat(3,1fr);gap:8px}
.jobs-stats .stat{padding:12px}
.jobs-stats .stat .k{font-size:.62rem;letter-spacing:.1em}

/* Registro DFW / lista de espera */
.opt{font-style:normal;font-weight:500;color:var(--muted);font-size:.74rem;margin-left:4px}
.area-note a{white-space:nowrap}
.area-note strong{color:var(--text)}
.outside{margin:-4px 0 16px;border-color:rgba(242,201,76,.4)}
.outside .card-title{color:var(--warn)}
.grid-2.keep2{grid-template-columns:1fr 1fr}
.notice a{font-weight:600}

/* Cuenta */
.top-avatar{display:inline-flex;border-radius:50%;line-height:0}
.top-avatar:hover .gc-avatar{border-color:var(--accent)}
.topbar .actions{gap:10px}
.ac-head .badge{margin-bottom:0}
.list.ac-nav .row .s{white-space:normal}
.sheet .btn-row{margin-top:6px}

/* =====================================================================
   Estructura responsive: barra inferior en celular, menu lateral en escritorio
   ===================================================================== */
.col{min-width:0;display:flex;flex-direction:column;min-height:100dvh}
.col .main{flex:1;width:100%}
@media (max-width:899px){
  .wk.shell{display:block}
  .wk .wk-side{display:none}
  .wk.shell .main{max-width:760px;padding:20px max(16px,env(safe-area-inset-left,0px)) calc(var(--nav-h) + 28px + var(--safe-b)) max(16px,env(safe-area-inset-left,0px))}
}
.job-col-b,.acct-i,.acct-a{margin-top:14px}
.job-col-b:empty{display:none}
.acct-grid > *{min-width:0}
.acct-i:empty{display:none}
.acct-a .sec-title:first-child{margin-top:12px}
.who-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line-2);border-radius:var(--r);background:#050605;margin:0 0 18px;text-align:left}
.who-txt{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.who-email{font-weight:600;overflow-wrap:anywhere;line-height:1.3}
.center-text{text-align:center;color:var(--muted);margin:0 0 22px}
.btn-stack{display:grid;gap:10px}
.auth .sub strong{color:var(--text);overflow-wrap:anywhere}

@media (min-width:900px){
  body{background:#000}
  .tabbar{display:none}
  body:not(.no-tabs) #gc-toasts{bottom:24px}
  .wk.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100dvh}
  .wk .wk-side{display:flex;position:sticky;top:0;height:100dvh;transform:none;width:auto;inset:auto;z-index:30;padding:22px 14px 16px}
  .wk .side .logo{height:56px;margin:2px 8px 22px}
  .wk .side .group{padding:6px 10px 10px}
  .wk .side a{padding:11px 12px;font-size:.92rem}
  .wk .side a svg{width:20px;height:20px}
  .wk .side a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--accent)}
  .wk-user{display:flex;align-items:center;gap:11px;padding:14px 10px 12px;border-top:1px solid var(--line);margin-top:10px;min-width:0}
  .wk-av{display:inline-flex;flex:none}
  .wk-who{display:flex;flex-direction:column;min-width:0;line-height:1.3}
  .wk-name{font-weight:600;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .wk-st{font-size:.74rem;color:var(--muted);display:flex;align-items:center;gap:6px}
  .wk-st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
  .wk-st.ok{color:var(--accent)}
  .wk-st.warn{color:var(--warn)}
  .wk-out{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);background:none;border:0;color:#cfd6cf;font-size:.9rem;font-weight:500;cursor:pointer;text-align:left;width:100%}
  .wk-out:hover{background:var(--surface);color:var(--danger)}
  .wk-out svg{width:20px;height:20px;flex:none}

  .wk .topbar{background:rgba(0,0,0,.92);backdrop-filter:blur(8px)}
  .wk .topbar-in{max-width:1100px;height:64px;padding:0 clamp(24px,3vw,40px)}
  .wk .topbar .logo,.wk .topbar .top-avatar{display:none}
  .wk .topbar .title{font-size:1.05rem}
  .wk.shell .main{max-width:1100px;padding:28px clamp(24px,3vw,40px) 56px}
  .wk .page-head h1{display:none}
  .wk .page-head:not(:has(> :not(h1))){display:none}
  .wk .page-head{margin-bottom:20px;justify-content:flex-end}

  /* Trabajos */
  .jobs-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .jobs-stats .stat{padding:18px 20px}
  .jobs-stats .stat .k{font-size:.68rem;letter-spacing:.14em}
  .jobs-stats .stat .v{font-size:1.9rem}
  .sec-title{margin:34px 0 14px}
  .list.jobs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;border:0;background:none;border-radius:0;overflow:visible}
  .jobs-list .job-row{flex-direction:column;align-items:stretch;border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2);padding:18px;position:relative;transition:border-color .15s,transform .15s}
  .jobs-list .job-row:last-child{border-bottom:1px solid var(--line-2)}
  .jobs-list .job-row:hover{border-color:var(--accent);transform:translateY(-1px)}
  .jobs-list .job-row.attn{border-left:3px solid var(--warn)}
  .jobs-list .job-row .end{position:absolute;top:16px;right:16px;flex-direction:row;align-items:center}
  .jobs-list .job-row .chev{display:none}
  .jobs-list .job-row .main-col{padding-right:0}
  .jobs-list .job-row .code{margin-bottom:12px}
  .jobs-list .job-row .t{font-size:1.02rem;padding-right:0}
  .jobs-list .job-row .meta{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}

  /* Detalle del trabajo */
  .job-cols{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:start}
  .job-col-b,.acct-i,.acct-a{margin-top:0}
  .job-col-a > .card + .card{margin-top:16px}
  .job-col-b .sticky-cta{position:static}
  .job-col-b .photos{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
  .job-head{margin:10px 0 22px}
  .job-head h1{font-size:1.7rem}
  .dl{font-size:.94rem}

  /* Ganancias */
  .stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
  .stat{padding:18px 20px}
  .stat .v{font-size:1.8rem}

  /* Cuenta */
  .acct-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"n i" "a i";gap:0 22px;align-items:start}
  .acct-n{grid-area:n}.acct-i{grid-area:i}.acct-a{grid-area:a}
  .acct-grid:has(> .acct-i:empty){grid-template-columns:minmax(0,640px);grid-template-areas:"n" "a"}
  .acct-sec.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
  .acct-sec:not(.two){max-width:640px}
  .acct-sec > div > .ac-card:first-child{margin-top:0}
  .ac-head{padding:22px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2);margin-bottom:22px}
  .ac-head h1{font-size:1.5rem}
  #so.btn-danger{width:auto;min-width:220px}
  .faq-wrap,.main > .list:has(details.faq){max-width:820px}

  /* Pantallas de acceso */
  body{background:radial-gradient(900px 520px at 50% -10%,rgba(76,242,15,.07),transparent 70%),#000}
  .auth{padding:48px 24px;justify-content:center}
  .auth-card{max-width:460px;margin:auto;padding:38px 38px 30px;border:1px solid var(--line-2);border-radius:14px;background:#000;box-shadow:0 30px 80px rgba(0,0,0,.55)}
  .auth-mark{width:116px;margin-bottom:20px}
  .auth h1{font-size:1.7rem}
  .auth .status-head h1{font-size:1.45rem;line-height:1.15}
  .auth-foot{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
  .who-card{padding:16px 18px}
}
@media (min-width:1280px){
  .list.jobs-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:900px) and (max-width:1279px){
  .list.jobs-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* El icono del carro tiene fondo negro: se funde con cualquier tarjeta oscura */
.auth-mark,.topbar .logo,.side .logo{mix-blend-mode:screen}

/* =====================================================================
   Red (panel de referidos) y desglose de ganancias
   ===================================================================== */
.net-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.net-stats .stat:first-child{grid-column:1/-1}
.net-stats .stat .v .slash{color:var(--muted);font-weight:400;margin:0 2px}
.nt-code{font:500 .74rem/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em;color:var(--muted)}
.nt-code.big{font-size:.95rem;color:var(--accent)}
.lvl-b{height:20px;padding:0 7px;font-size:.68rem;letter-spacing:.06em;color:var(--accent);border-color:rgba(76,242,15,.3)}
.nt-tree,.lvl-table{border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2);overflow:hidden}
.nt-ul{list-style:none;margin:0;padding:0}
.nt-li{border-bottom:1px solid var(--line)}
.nt-li:last-child{border-bottom:0}
.nt-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;align-items:center;padding:14px 14px}
.nt-who{grid-column:1/-1;display:flex;align-items:center;gap:10px;min-width:0}
.nt-st{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
@media (min-width:900px){.nt-st{flex-wrap:nowrap}}
.nt-id{min-width:0;flex:1}
.nt-name{all:unset;display:block;max-width:100%;font-weight:600;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nt-name:hover{color:var(--accent)}
.nt-name:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.nt-sub{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:.78rem;color:var(--muted)}
.nt-inv{color:var(--muted)}
.nt-tg,.nt-tg-sp{flex:none;width:30px;height:30px}
.nt-tg{border-radius:6px;border:1px solid var(--line-2);background:transparent;color:var(--accent);cursor:pointer;font-size:1rem;line-height:1}
.nt-c{font-size:.88rem;min-width:0}
.nt-c::before{content:attr(data-l);display:block;font:600 .62rem/1.2 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.nt-c.num{text-align:left;font-variant-numeric:tabular-nums}
.nt-head,.lv-head,.nt-hwrap{display:none}
.nt-subtree{margin:0 0 10px 12px;border-left:1px solid var(--line-2);background:rgba(255,255,255,.012)}
.nt-subtree .nt-li{border-bottom:1px solid var(--line)}
.nt-subtree .nt-li:last-child{border-bottom:0}
.tree-more{padding:8px 14px 10px}
.nt-tree > .tree-more{border-top:1px solid var(--line)}
.nt-tree > .tree-more:empty{display:none}
.lv-row{border-bottom:1px solid var(--line)}
.lv-row:last-child{border-bottom:0}
.lv-n{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-weight:600}
.ns-res{margin-top:10px}
.ns-res .row{width:100%;border-bottom:1px solid var(--line)}
.ns-res .row:last-child{border-bottom:0}
.ns-item{cursor:pointer;color:var(--text);font:inherit}
.ns-item .s{white-space:normal}
.net-sheet .back{margin-bottom:8px}
.ps-dl{margin-bottom:14px;grid-template-columns:auto minmax(0,1fr)}
.ps-note{border:1px solid var(--line-2);border-radius:var(--r-sm);padding:12px 14px;background:#050605;font-size:.84rem;color:#cfd6cf}
.ps-note p{margin:0 0 6px;color:#cfd6cf}.ps-note p:last-child{margin:0}
.ps-note strong{color:var(--text)}
#ps-kids .list{max-height:38dvh;overflow:auto}
.bk-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.bk-grid .card + .card{margin-top:0}
.bk-line{padding:10px 0;border-bottom:1px solid var(--line)}
.bk-top{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}
.bk-line .bar{margin-top:8px}
.bk-total{display:flex;justify-content:space-between;padding-top:12px;font-weight:700}
.top-list{list-style:none;margin:0;padding:0}
.top-list li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.top-list li:last-child{border-bottom:0}
.top-list .rk{flex:none;width:20px;font:700 .8rem var(--font);color:var(--muted);text-align:center}
.top-list .main-col{flex:1;min-width:0}
.top-list .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-list .s{font-size:.78rem;color:var(--muted)}
.sec-title .seg button{padding:7px 12px}

@media (min-width:600px) and (max-width:899px){
  .net-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .net-stats .stat:first-child{grid-column:auto}
  .nt-row{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lv-row{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (min-width:900px){
  .net-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
  .net-stats .stat:first-child{grid-column:auto}
  .net-stats .stat{padding:16px}
  .net-stats .stat .v{font-size:1.5rem}
  .nt-row{grid-template-columns:minmax(190px,1fr) 214px 96px 66px 56px 88px 88px;gap:12px;padding:10px 14px}
  .nt-who,.nt-st{grid-column:auto}
  .nt-c::before{display:none}
  .nt-c.num{text-align:right}
  .nt-head,.lv-head{display:grid;padding:11px 14px;background:#050605;border-bottom:1px solid var(--line-2);font:600 .66rem/1.2 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .nt-hwrap{display:block}
  .nt-head .nt-c,.lv-head .nt-c{font:inherit}
  .lv-head,.lv-row{grid-template-columns:minmax(160px,1.4fr) repeat(5,minmax(0,1fr))}
  .lv-n{grid-column:auto}
  .lv-head .lv-n{font:inherit}
  .nt-subtree{margin-left:30px}
  .nt-row:hover:not(.nt-head):not(.lv-head):not(.lv-row){background:var(--surface)}
  .bk-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}
}
.sec-title{flex-wrap:wrap;gap:8px 12px}.sec-title .seg{flex:none}

/* =====================================================================
   Progreso, invitaciones, actividad del equipo, GPS
   ===================================================================== */
.pg-top-grid{display:grid;gap:14px}
.pg-top-grid > .card + .card{margin-top:0}
.pg-stats{margin-top:14px}
.pg-status.on{border-color:rgba(76,242,15,.35)}
.pg-status.off{border-color:rgba(242,201,76,.35)}
.pg-st-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.pg-st-txt{font:700 1.05rem/1.35 var(--font);margin:0 0 8px}
.pg-rank-name{font:800 2rem/1.05 var(--display);font-stretch:112%;text-transform:uppercase;letter-spacing:-.005em;margin:2px 0 4px}
.pg-rank-name.pg-none{color:var(--muted)}
.pg-sub{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.pg-need{font-weight:600;margin:0 0 12px;color:var(--text)}
.pg-goal{padding:8px 0}
.pg-top{display:flex;justify-content:space-between;gap:12px;font-size:.88rem}
.pg-top span{color:#cfd6cf}
.pg-top b{font-variant-numeric:tabular-nums}
.pg-bar{height:8px;border-radius:4px;background:var(--line-2);overflow:hidden;margin-top:7px}
.pg-bar > i{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .3s}
.pg-goal.met .pg-top b{color:var(--accent)}
.pg-ladder{padding:0;margin-top:14px}
.pg-ladder summary{list-style:none;cursor:pointer;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;font:800 .95rem var(--display);font-stretch:112%;text-transform:uppercase;min-height:52px}
.pg-ladder summary::-webkit-details-marker{display:none}
.pg-ladder summary .fine{margin-left:auto;font:400 .78rem var(--font);text-transform:none}
.pg-ladder summary::after{content:"+";color:var(--accent);font-size:1.3rem;line-height:1;flex:none}
.pg-ladder[open] summary::after{content:"\2212"}
.lad-head{display:none}
.lad-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;padding:14px 18px;border-top:1px solid var(--line)}
.lad-row.cur{background:rgba(76,242,15,.05);box-shadow:inset 3px 0 0 var(--accent)}
.lad-n{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start}
.lad-n b{font-family:var(--display);font-stretch:112%;text-transform:uppercase}
.lad-dot{flex:none;width:10px;height:10px;border-radius:50%;margin-top:6px}
.lad-d{display:block;font-size:.8rem;color:var(--muted)}
.lad-c{font-size:.92rem;font-variant-numeric:tabular-nums}
.lad-c::before{content:attr(data-l);display:block;font:600 .62rem/1.2 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.pg-cols{display:grid;gap:12px}
.pg-cols .card + .card{margin-top:0}
.pg-ch.ended{opacity:.8}
.pg-ch-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.pg-ch-top h3{font-size:1rem;overflow-wrap:anywhere}
.pg-ch-top .badge{flex:none}
.pg-ch-foot{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:.88rem;flex-wrap:wrap}
.pg-ch-foot b{color:var(--accent);font-variant-numeric:tabular-nums}
.bd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bd{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;opacity:.75}
.bd.earned{opacity:1;border-color:rgba(76,242,15,.45);background:linear-gradient(180deg,rgba(76,242,15,.07),transparent 70%),var(--bg-2)}
.bd-mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--muted)}
.bd.earned .bd-mark{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.bd-mark svg{width:18px;height:18px}
.bd-t{font:800 .92rem/1.2 var(--display);font-stretch:112%;text-transform:uppercase}
.bd-d{font-size:.8rem;color:var(--muted);line-height:1.4;flex:1}
.bd-p{width:100%}
.bd-p .pg-bar{height:5px;margin:0 0 4px}
.lb-card .seg{width:100%}
.lb-card .seg button{flex:1}
.lb-me{margin:14px 0 8px;font-size:.9rem}
.lb-me b{color:var(--accent)}
.lb-list{list-style:none;margin:0;padding:0;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden}
.lb-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);font-size:.92rem}
.lb-row:last-child{border-bottom:0}
.lb-row.me{background:rgba(76,242,15,.09);box-shadow:inset 3px 0 0 var(--accent)}
.lb-pos{flex:none;width:26px;font:700 .85rem var(--font);color:var(--muted);text-align:center}
.lb-row.me .lb-pos{color:var(--accent)}
.lb-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-val{font-variant-numeric:tabular-nums}
.lb-gap{text-align:center;color:var(--muted);padding:2px;border-bottom:1px solid var(--line)}

/* Invitar: enlace, QR y resultados */
.inv-grid{display:grid;gap:14px;margin-top:14px}
.inv-grid > .card + .card{margin-top:0}
.inv-card #wa svg{flex:none}
.qr-box{display:flex;gap:16px;align-items:center;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.qr-box canvas{flex:none;width:168px;height:168px;border-radius:8px;background:#fff;image-rendering:pixelated}
.qr-side{min-width:0}
@media (max-width:420px){.qr-box{flex-direction:column;align-items:flex-start}.qr-box canvas{width:100%;max-width:220px;height:auto;aspect-ratio:1}}
.fn-days{font:400 .75rem var(--font);letter-spacing:0;text-transform:none;margin-left:6px}
.fn-row{padding:9px 0}
.fn-top{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}
.fn-top b{font-variant-numeric:tabular-nums}
.fn-bar{height:12px;border-radius:3px;background:var(--surface-2);margin-top:6px;overflow:hidden}
.fn-bar > i{display:block;height:100%;background:var(--accent);border-radius:3px}
.fn-row:nth-child(n+3) .fn-bar > i{opacity:.82}
.fn-row:nth-child(n+4) .fn-bar > i{opacity:.65}

/* Actividad del equipo */
.tm-chips{width:100%}
.tm-chips button{flex:1;padding:10px 8px}
.tm-n{display:inline-block;min-width:1.4em;margin-left:3px;padding:0 5px;border-radius:999px;background:var(--surface-2);font-size:.72rem;color:var(--text);text-align:center}
.seg button[aria-pressed="true"] .tm-n{background:rgba(76,242,15,.16);color:var(--accent)}
.tm-hint{margin:10px 2px}
.tm-list{list-style:none;margin:0;padding:0}
.tm-row{flex-wrap:wrap;align-items:flex-start}
.tm-row .t{white-space:normal}
.tm-s{display:flex;flex-wrap:wrap;gap:2px 10px;white-space:normal!important}
.tm-end{flex:1 1 100%;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tm-act{display:flex;gap:8px}
.tm-act .btn{gap:6px}
@media (min-width:900px){
  .tm-row{flex-wrap:nowrap;align-items:center}
  .tm-end{flex:none;justify-content:flex-end;flex-wrap:nowrap;gap:16px}
}

.geo-note{margin:-6px 0 14px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg-2)}

@media (min-width:900px){
  .pg-top-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start}
  .pg-stats{margin-top:14px}
  .pg-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bd-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
  .inv-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}
  .lad-head{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(0,1fr));gap:12px;padding:10px 18px;background:#050605;border-top:1px solid var(--line-2);font:600 .66rem/1.2 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .lad-row{grid-template-columns:minmax(220px,2fr) repeat(4,minmax(0,1fr));align-items:start}
  .lad-n{grid-column:auto}
  .lad-c::before{display:none}
  .lb-card{max-width:640px}
}
.pg-left > .pg-status + .pg-stats{margin-top:14px}
.pg-left .pg-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.lb-card .seg button{padding:9px 6px;font-size:.74rem;white-space:normal;line-height:1.2}
