/* MultAPP core v1 — folha única compartilhada por todos os apps.
   Cores vêm do config.json de cada app, injetadas em :root pelo app.js. */

:root{
  --primary:#ec4899; --secondary:#f97316; --accent:#fbbf24;
  --dark:#0f172a; --darker:#020617; --light:#f8fafc; --muted:#64748b;
  --locked:#64748b; --success:#10b981;
  --grad:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 55%,var(--accent) 100%);
  --radius:16px; --maxw:600px;
}
[data-theme="light"]{ --dark:#ffffff; --darker:#f1f5f9; --light:#0f172a; --muted:#64748b; }

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--darker); color:var(--light);
  min-height:100vh; overflow-x:hidden; padding-bottom:88px; line-height:1.5;
}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-thumb{background:var(--primary);border-radius:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* splash */
#splash{position:fixed;inset:0;z-index:999;display:flex;flex-direction:column;
  align-items:center;justify-content:center;background:var(--darker);
  transition:opacity .4s,visibility .4s}
#splash.off{opacity:0;visibility:hidden;pointer-events:none}
#splash .mark{width:104px;height:104px;border-radius:28px;background:var(--grad);
  display:flex;align-items:center;justify-content:center;font-size:52px}
#splash h1{margin-top:22px;font-size:26px;font-weight:800}
#splash p{margin-top:6px;font-size:13px;color:var(--muted)}
@media (prefers-reduced-motion:no-preference){
  #splash .mark{animation:float 3s ease-in-out infinite}
  @keyframes float{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--darker) 92%,transparent);
  backdrop-filter:blur(16px);border-bottom:1px solid rgba(128,128,128,.18);padding:12px 16px}
.hdr .in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand .mark{width:42px;height:42px;border-radius:12px;background:var(--grad);
  display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.brand h1{font-size:18px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand p{font-size:11px;color:var(--muted)}
.hdr-acts{display:flex;align-items:center;gap:8px;flex-shrink:0}
.icon-btn{width:38px;height:38px;border-radius:11px;background:rgba(128,128,128,.14);
  display:flex;align-items:center;justify-content:center;font-size:17px}
.plan-chip{display:flex;align-items:center;gap:7px;padding:7px 13px;border-radius:22px;
  background:color-mix(in srgb,var(--primary) 20%,transparent);font-size:12px;font-weight:600}

main{max-width:var(--maxw);margin:0 auto;padding:16px}

/* hero */
.hero{border-radius:22px;background:var(--grad);padding:22px;position:relative;overflow:hidden;color:#fff}
.hero .tag{display:inline-block;background:rgba(255,255,255,.22);padding:5px 12px;border-radius:20px;
  font-size:11px;font-weight:600;margin-bottom:9px}
.hero h2{font-size:21px;font-weight:800;line-height:1.2;max-width:75%}
.hero p{font-size:13px;opacity:.92;margin-top:5px;max-width:75%}
.hero .deco{position:absolute;right:-14px;bottom:-22px;font-size:96px;opacity:.22;transform:rotate(-12deg)}

/* módulos (gadgets) */
.sec{margin-top:26px}
.sec-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:10px}
.sec-hd h3{font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px}
.sec-hd button{font-size:12px;color:var(--primary);font-weight:600}
.mods{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.mod{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:13px 6px;border-radius:15px;border:2px solid var(--c);text-align:center;
  background:color-mix(in srgb,var(--c) 12%,transparent)}
.mod.lock{border-color:rgba(128,128,128,.3);background:rgba(128,128,128,.07)}
.mod .em{font-size:22px}
.mod .n{font-size:17px;font-weight:800;color:var(--c)}
.mod.lock .n{color:var(--locked)}
.mod .lb{font-size:9px;letter-spacing:.3px;color:var(--muted);text-transform:uppercase}
.mod .st{position:absolute;top:5px;right:5px;font-size:9px;padding:2px 5px;border-radius:6px;
  background:var(--success);color:#fff;font-weight:700}
.mod.lock .st{background:var(--locked)}

/* news */
.news{margin-top:20px;border-radius:15px;overflow:hidden;
  border:1px solid color-mix(in srgb,var(--primary) 26%,transparent);
  background:color-mix(in srgb,var(--primary) 8%,transparent)}
.news .bar{padding:11px 15px;display:flex;align-items:center;min-height:42px;
  border-bottom:1px solid color-mix(in srgb,var(--primary) 18%,transparent);font-size:13px;font-weight:600;gap:8px}
.news .bar .k{background:var(--secondary);color:#fff;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;flex-shrink:0}
.ticker{padding:9px 0;overflow:hidden;position:relative}
.ticker-tr{display:flex;width:max-content}
@media (prefers-reduced-motion:no-preference){
  .ticker-tr{animation:roll 34s linear infinite}
  @keyframes roll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
}
.ticker-it{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;
  color:var(--muted);padding:0 26px 0 15px}
.ticker-it b{color:var(--primary);font-weight:600}

/* vídeos */
.vwrap{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/9;background:#1e293b}
.vslide{position:absolute;inset:0;opacity:0;transition:opacity .7s;display:flex;flex-direction:column;justify-content:flex-end;padding:18px}
.vslide.on{opacity:1}
.vslide::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),transparent 60%)}
.vslide .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;
  border-radius:50%;background:rgba(255,255,255,.95);color:var(--primary);font-size:22px;
  display:flex;align-items:center;justify-content:center}
.vslide h4,.vslide span{position:relative;color:#fff}
.vslide h4{font-size:15px;font-weight:700}
.vslide span{font-size:12px;opacity:.75}
.vdots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:2}
.vdots button{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.35)}
.vdots button.on{background:var(--primary);width:20px;border-radius:4px}

/* receitas */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.card{position:relative;border-radius:15px;overflow:hidden;aspect-ratio:1;
  display:flex;flex-direction:column;justify-content:flex-end;padding:13px;text-align:left;
  background:var(--cardbg,linear-gradient(135deg,var(--primary),var(--secondary)))}
.card::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),transparent 58%)}
.card h4,.card span,.card .st{position:relative;color:#fff}
.card h4{font-size:14px;font-weight:700;line-height:1.25}
.card span{font-size:11px;opacity:.75;margin-top:3px}
.card .st{position:absolute;top:9px;right:9px;font-size:9px;font-weight:700;
  padding:4px 9px;border-radius:18px;background:var(--success)}
.card .st.lock{background:var(--locked)}

.pods{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pod{position:relative;aspect-ratio:1;border-radius:13px;overflow:hidden;padding:9px;
  display:flex;flex-direction:column;justify-content:flex-end;text-align:left;
  background:linear-gradient(135deg,var(--primary),var(--secondary))}
.pod::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),transparent 52%)}
.pod .em{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:26px}
.pod h4,.pod span{position:relative;color:#fff}
.pod h4{font-size:10px;font-weight:600;line-height:1.25}
.pod span{font-size:9px;opacity:.7}

.list{display:flex;flex-direction:column;gap:10px}
.item{display:flex;gap:13px;padding:13px;border-radius:13px;text-align:left;width:100%;
  background:rgba(128,128,128,.08);border:1px solid rgba(128,128,128,.14)}
.item .th{width:74px;height:62px;border-radius:9px;flex-shrink:0;font-size:26px;
  display:flex;align-items:center;justify-content:center;background:var(--grad)}
.item h4{font-size:14px;font-weight:600;line-height:1.3}
.item p{font-size:12px;color:var(--muted);margin-top:3px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .meta{display:flex;gap:11px;margin-top:5px;font-size:11px;color:var(--muted)}

/* upsell */
.upsell{margin-top:26px;padding:19px;border-radius:19px;
  border:1px solid color-mix(in srgb,var(--primary) 26%,transparent);
  background:color-mix(in srgb,var(--primary) 8%,transparent)}
.ups-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:13px}
.ups{padding:15px;border-radius:13px;text-align:left;background:rgba(128,128,128,.1);
  border:1px solid rgba(128,128,128,.14)}
.ups .em{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;
  justify-content:center;font-size:24px;margin-bottom:10px;background:var(--c)}
.ups h4{font-size:13px;font-weight:700}
.ups p{font-size:11px;color:var(--muted);line-height:1.4;margin:3px 0 8px}
.ups .price{font-size:12px;font-weight:700;color:var(--accent)}

/* bottom nav */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:50;
  background:color-mix(in srgb,var(--darker) 94%,transparent);backdrop-filter:blur(16px);
  border-top:1px solid rgba(128,128,128,.18);padding-bottom:env(safe-area-inset-bottom)}
.nav .in{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-around;padding:7px 0}
.nav button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 8px;position:relative}
.nav button .em{font-size:19px;filter:grayscale(1);opacity:.6}
.nav button span{font-size:9px;color:var(--muted)}
.nav button.on .em{filter:none;opacity:1}
.nav button.on span{color:var(--primary);font-weight:600}
.nav button.on::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:20px;height:3px;border-radius:0 0 3px 3px;background:var(--primary)}

/* modal */
.ovl{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.8);backdrop-filter:blur(6px);
  display:none;align-items:flex-end;justify-content:center}
.ovl.on{display:flex}
.sheet{background:var(--dark);width:100%;max-width:520px;max-height:86vh;overflow-y:auto;
  border-radius:26px 26px 0 0}
@media (prefers-reduced-motion:no-preference){
  .ovl.on .sheet{animation:up .28s ease}
  @keyframes up{from{transform:translateY(100%)}to{transform:translateY(0)}}
}
.sheet-hd{position:sticky;top:0;background:var(--dark);z-index:2;padding:20px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid rgba(128,128,128,.18)}
.sheet-hd h3{font-size:19px;font-weight:800}
.sheet-bd{padding:18px;display:flex;flex-direction:column;gap:12px}
.mcard{display:flex;align-items:center;gap:14px;padding:16px;border-radius:17px;
  background:rgba(128,128,128,.08);border:2px solid rgba(128,128,128,.14)}
.mcard.open{border-color:color-mix(in srgb,var(--success) 45%,transparent);
  background:color-mix(in srgb,var(--success) 8%,transparent)}
.mcard .em{width:54px;height:54px;border-radius:15px;flex-shrink:0;font-size:27px;
  display:flex;align-items:center;justify-content:center;background:var(--c)}
.mcard .info{flex:1;min-width:0}
.mcard h4{font-size:14px;font-weight:700;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.mcard .badge{font-size:10px;padding:3px 9px;border-radius:11px;font-weight:700;
  background:rgba(128,128,128,.2);color:var(--muted)}
.mcard.open .badge{background:color-mix(in srgb,var(--success) 22%,transparent);color:var(--success)}
.mcard p{font-size:12px;color:var(--muted);line-height:1.45;margin-top:4px}
.btn{padding:11px 18px;border-radius:11px;font-size:13px;font-weight:700;
  background:var(--grad);color:#fff;white-space:nowrap;text-decoration:none;display:inline-block}
.btn.ghost{background:var(--success)}

/* leitor de artigo */
.reader{padding:4px 0}
.reader .pg{background:var(--dark);border:1px solid rgba(128,128,128,.18);
  border-radius:15px;padding:22px;min-height:340px;font-size:15px;line-height:1.7}
.reader .pg h2{font-size:19px;margin-bottom:12px}
.reader .pg p{margin-bottom:12px}
.reader .ctrl{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.reader .ctrl span{font-size:12px;color:var(--muted)}
.reader .ctrl button{padding:10px 18px;border-radius:11px;background:rgba(128,128,128,.16);font-size:13px;font-weight:600}
.reader .ctrl button:disabled{opacity:.35}

.empty{padding:34px 18px;text-align:center;color:var(--muted);font-size:14px}
.back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--primary);
  font-weight:600;margin-bottom:14px}

@media (max-width:359px){
  .mods,.pods{grid-template-columns:repeat(2,1fr)}
  .cards,.ups-grid{grid-template-columns:1fr}
}
