/* Metas FISP & FIRE SHOW · Fiera Milano Brasil */
:root{
  --bg:#eef1f7; --surface:#ffffff; --surface-2:#f4f6fb; --line:#dfe4ee; --fg:#111a2e; --muted:#5d6883;
  --ink:#0d1a33; --ink-2:#16284d; --on-ink:#f2f5fb; --on-ink-muted:#a9b5cf;
  --accent:#3d6fe0; --gold:#e8a400; --gold-soft:#fff2cc; --gold-ink:#7a5600;
  --red:#d62f3a; --red-bg:#fde6e8; --yellow:#b88a00; --yellow-bg:#fff3cc; --blue:#2e75b6; --blue-bg:#e2edf9; --green:#0e9f55; --green-bg:#dcf5e7; --orange:#d2691e; --orange-bg:#fdeadb;
  --track:#e6eaf2; --shadow:0 1px 2px rgba(16,26,46,.06),0 8px 24px rgba(16,26,46,.06);
  --f-display:"Sora","Segoe UI",Arial,sans-serif; --f-body:"Figtree","Segoe UI",Arial,sans-serif; --f-mono:"JetBrains Mono",Consolas,monospace;
  --r:16px; --r-s:10px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0a1120; --surface:#121b2e; --surface-2:#18233a; --line:#26324b; --fg:#e8edf7; --muted:#97a3bd;
  --ink:#0f1d3a; --ink-2:#1a2c55; --on-ink:#f2f5fb; --on-ink-muted:#a9b5cf;
  --accent:#7ea3ff; --gold:#ffc23d; --gold-soft:#3a2f12; --gold-ink:#ffd77a;
  --red:#ff6b74; --red-bg:#3a1b22; --yellow:#f4c84a; --yellow-bg:#372e14; --blue:#73aaf0; --blue-bg:#182b47; --green:#3fd38a; --green-bg:#123527; --orange:#f5a05e; --orange-bg:#3a2516;
  --track:#232f48; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0a1120; --surface:#121b2e; --surface-2:#18233a; --line:#26324b; --fg:#e8edf7; --muted:#97a3bd;
  --ink:#0f1d3a; --ink-2:#1a2c55; --on-ink:#f2f5fb; --on-ink-muted:#a9b5cf;
  --accent:#7ea3ff; --gold:#ffc23d; --gold-soft:#3a2f12; --gold-ink:#ffd77a;
  --red:#ff6b74; --red-bg:#3a1b22; --yellow:#f4c84a; --yellow-bg:#372e14; --blue:#73aaf0; --blue-bg:#182b47; --green:#3fd38a; --green-bg:#123527; --orange:#f5a05e; --orange-bg:#3a2516;
  --track:#232f48; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25); color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
.wrap{max-width:1240px;margin:0 auto;padding-inline:16px;padding-block:0 56px}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top-in{max-width:1240px;margin:0 auto;padding:10px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.logo{width:34px;height:34px;border-radius:10px;background:var(--ink);display:grid;place-items:center;color:var(--gold);font-family:var(--f-display);font-weight:800;font-size:13px;letter-spacing:-.02em;flex:none}
.brand b{font-family:var(--f-display);font-weight:700;font-size:16px;display:block;letter-spacing:-.01em}
.brand span{font-size:12px;color:var(--muted)}
nav.tabs{display:flex;gap:2px;margin-left:auto;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px;overflow-x:auto}
nav.tabs a{color:var(--muted);text-decoration:none;font-weight:600;font-size:13px;padding:7px 14px;border-radius:999px;white-space:nowrap}
nav.tabs a[aria-current="page"]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow)}
nav.tabs a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
h2{font-family:var(--f-display);font-weight:700;font-size:17px;margin:0;text-wrap:balance;letter-spacing:-.01em}
.eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.stack{display:flex;flex-direction:column;gap:20px;margin-top:20px}
.banner{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:9px 14px;border-radius:999px;font-weight:600;font-size:12.5px;width:fit-content;max-width:100%}
.banner .dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.banner.ok{background:var(--green-bg);color:var(--green)} .banner.warn{background:var(--orange-bg);color:var(--orange)} .banner.bad{background:var(--red-bg);color:var(--red)}
.banner small{font-weight:500;color:var(--muted)}

/* HERO */
.hero{background:radial-gradient(120% 140% at 100% 0%,var(--ink-2) 0%,var(--ink) 60%);color:var(--on-ink);border-radius:22px;padding:24px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;box-shadow:var(--shadow)}
.hero .eyebrow{color:var(--on-ink-muted)}
.bonus-total{display:flex;flex-direction:column;gap:10px;min-width:0}
.bonus-total .big{font-family:var(--f-display);font-weight:800;font-size:clamp(40px,7vw,64px);line-height:1;letter-spacing:-.03em;color:var(--gold);font-variant-numeric:tabular-nums}
.bonus-total .big small{font-size:.42em;font-weight:700;margin-right:6px;color:var(--gold);opacity:.85}
.bonus-total p{margin:0;color:var(--on-ink-muted);font-size:14px;max-width:52ch}
.bonus-total p b{color:var(--on-ink)}
.chips-row{display:flex;flex-wrap:wrap;gap:8px}
.hchip{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;color:var(--on-ink)}
.hchip b{color:var(--gold)}
.hero-right{display:flex;gap:20px;align-items:center;min-width:0;flex-wrap:wrap}
.ring{flex:none}
.ring text{font-family:var(--f-display)}
.hstats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;flex:1;min-width:200px}
.hstat .v{font-family:var(--f-display);font-weight:700;font-size:22px;font-variant-numeric:tabular-nums;color:var(--on-ink);letter-spacing:-.01em}
.hstat .l{font-size:11.5px;color:var(--on-ink-muted)}

/* RÉGUA DE FAIXAS */
.tiers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tier{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}
.tier::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--tc)}
.tier .tp{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.02em}
.tier .tv{font-family:var(--f-display);font-weight:800;font-size:24px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.tier .tn{font-size:12px;color:var(--muted)}
.tier.money .tv{color:var(--gold-ink)}

/* CARTÕES DE BÔNUS */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow);min-width:0}
.card.near{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-bg),var(--shadow)}
.card-h{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.card-h .nm{font-family:var(--f-display);font-weight:700;font-size:14px;letter-spacing:-.01em}
.card-h .rk{font-size:11px;color:var(--muted);font-weight:600}
.bonus-now{display:flex;flex-direction:column;gap:2px}
.bonus-now .v{font-family:var(--f-display);font-weight:800;font-size:30px;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.bonus-now .v.zero{color:var(--muted);font-size:22px}
.bonus-now .v.has{color:var(--gold-ink)}
.bonus-now .l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.prog{position:relative;height:10px;background:var(--track);border-radius:999px;margin:18px 0 22px}
.prog .fill{position:absolute;inset:0 auto 0 0;border-radius:999px}
.prog .ms{position:absolute;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:50%;background:var(--surface);border:2px solid var(--line)}
.prog .ms.hit{background:var(--gold);border-color:var(--gold)}
.prog .ms span{position:absolute;top:-19px;left:50%;transform:translateX(-50%);font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.prog .ms em{position:absolute;top:15px;left:50%;transform:translateX(-50%);font-style:normal;font-size:10px;color:var(--muted);white-space:nowrap}
.prog .ms.hit span{color:var(--gold-ink)}
.card-f{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.card-f b{color:var(--fg);font-variant-numeric:tabular-nums}
.next{font-size:12.5px;font-weight:600;padding:8px 10px;border-radius:var(--r-s);background:var(--surface-2)}
.next b{color:var(--gold-ink)}
.next.max{background:var(--green-bg);color:var(--green)}
.next.hot{background:var(--orange-bg);color:var(--orange)}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0;box-shadow:var(--shadow)}
.panel-head{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;justify-content:space-between}
.panel-head p{margin:0;color:var(--muted);font-size:12px}
.sec-head{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;justify-content:space-between;margin-top:4px}
.sec-head p{margin:0;color:var(--muted);font-size:12.5px}
.grid2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}
th{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr:hover td{background:var(--surface-2)}
td.n,th.n{text-align:right;white-space:nowrap}
td.money{font-weight:800;color:var(--gold-ink);font-family:var(--f-display)}
td.money.zero{color:var(--muted);font-weight:500;font-family:var(--f-body)}
tr.total td{font-weight:700;background:var(--surface-2)}
tr.near td:first-child{box-shadow:inset 3px 0 0 var(--orange)}
.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.05em;white-space:nowrap}
.s-VERMELHO{background:#d62f3a;color:#fff} .s-AMARELO{background:#ffc000;color:#1c1c1c} .s-AZUL{background:#2e75b6;color:#fff} .s-VERDE{background:#00b050;color:#fff}
.chip{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}
.c-ok{background:var(--green-bg);color:var(--green)} .c-warn{background:var(--yellow-bg);color:var(--yellow)} .c-bad{background:var(--red-bg);color:var(--red)} .c-info{background:var(--blue-bg);color:var(--blue)} .c-mute{background:var(--surface-2);color:var(--muted)} .c-orange{background:var(--orange-bg);color:var(--orange)}
.alert{color:var(--orange);font-weight:700;font-size:12px;white-space:nowrap}
.bars{display:flex;flex-direction:column;gap:11px}
.bar-row{display:grid;grid-template-columns:150px minmax(0,1fr) 96px;gap:10px;align-items:center}
.bar-row .nm{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-row .vv{font-size:12px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.track{position:relative;height:14px;background:var(--track);border-radius:999px}
.track .fill{position:absolute;inset:0 auto 0 0;border-radius:999px}
.track .tick{position:absolute;top:-3px;bottom:-3px;width:0;border-left:2px dotted var(--muted);opacity:.6}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);align-items:center}
.legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
svg text{fill:var(--muted);font-family:var(--f-body);font-size:11px}
.empty{padding:18px;border:1px dashed var(--line);border-radius:var(--r-s);color:var(--muted);text-align:center;font-size:13px}
form.entry{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field.w2{grid-column:span 2} .field.w4{grid-column:1/-1}
label{font-size:12px;font-weight:600;color:var(--muted)}
input,select,textarea{font:inherit;font-size:14px;color:var(--fg);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-s);padding:10px 11px;min-width:0;width:100%}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
button{font:inherit;font-weight:600;font-size:13px;border-radius:999px;padding:9px 16px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--fg)}
button.primary{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
button.link{border:none;background:none;padding:4px 6px;color:var(--accent);border-radius:6px}
button:disabled{opacity:.5;cursor:not-allowed}
.msg{font-size:13px;font-weight:600}
.msg.ok{color:var(--green)} .msg.bad{color:var(--red)}
.hint{font-size:12px;color:var(--muted);margin:0}
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.check{border:1px solid var(--line);border-radius:var(--r-s);padding:12px 14px;display:flex;flex-direction:column;gap:4px;background:var(--surface-2)}
.check .t{font-size:12px;color:var(--muted);font-weight:600}
.check .v{font-family:var(--f-display);font-weight:700;font-size:17px;font-variant-numeric:tabular-nums}
ol.findings{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px}
ol.findings li{max-width:85ch}
.mono{font-family:var(--f-mono);font-size:12px}
.muted{color:var(--muted)}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.toolbar select{width:auto}
@media (max-width:1000px){.hero{grid-template-columns:minmax(0,1fr)}.grid2{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.tiers{grid-template-columns:repeat(2,minmax(0,1fr))}form.entry{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.field.w2{grid-column:1/-1}.bar-row{grid-template-columns:92px minmax(0,1fr) 74px}.hero{padding:18px;border-radius:18px}.brand span{display:none}.tier .tv{font-size:20px}}
@media (prefers-reduced-motion:no-preference){.prog .fill,.track .fill{transition:width .6s cubic-bezier(.2,.7,.2,1)}}

/* ---------- complementos da versão com login ---------- */
html,body{margin:0;padding:0}
body{min-height:100vh}
a{color:var(--accent)}
a.brand{color:inherit;text-decoration:none}
.user{display:flex;align-items:center;gap:6px 12px;font-size:13px;flex-wrap:wrap}
.user-nm{font-weight:700}
.user a{color:var(--muted);text-decoration:none;font-weight:600}
.user a:hover{color:var(--fg)}
.user form{margin:0}
nav.tabs + .user{margin-left:0}
.top-in > .user:nth-child(2){margin-left:auto}
.flash{margin-top:16px;padding:12px 16px;border-radius:var(--r-s);font-weight:600;font-size:13.5px;border:1px solid transparent}
.flash.ok{background:var(--green-bg);color:var(--green)}
.flash.bad{background:var(--red-bg);color:var(--red)}
.flash.warn{background:var(--yellow-bg);color:var(--yellow)}
.flash.info{background:var(--blue-bg);color:var(--blue)}
.flash .senha{font-family:var(--f-mono);font-size:15px;background:var(--surface);color:var(--fg);padding:2px 8px;border-radius:6px;user-select:all}
.me-row td{background:rgba(232,164,0,.10)}
.me-row td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
.mini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mini .tier .tv{font-size:22px}
.days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rank-bar{height:6px;border-radius:999px;background:var(--track);position:relative;min-width:80px}
.rank-bar i{position:absolute;inset:0 auto 0 0;border-radius:999px}
.note{font-size:12px;color:var(--muted);margin:0}
.panel p{margin:0}
.panel h2 + p{color:var(--muted)}
tr[hidden]{display:none}
td.acoes{white-space:nowrap;text-align:right}
td.acoes form{display:inline}
.inline{display:inline}
button.danger{color:var(--red)}
button.small{padding:6px 12px;font-size:12px}
.field .err{color:var(--red);font-size:12px;font-weight:600}
.badge-off{opacity:.55}

/* login */
.auth{min-height:calc(100vh - 140px);display:grid;place-items:center;padding:32px 0}
.auth .panel{width:100%;max-width:400px;gap:16px}
.auth form{display:flex;flex-direction:column;gap:14px}
.auth h1{font-family:var(--f-display);font-size:22px;margin:0;letter-spacing:-.01em}
.auth .sub{color:var(--muted);font-size:13px;margin:0}
.auth button.primary{width:100%;padding:12px}

@media (max-width:720px){.hide-m{display:none}.mini{grid-template-columns:repeat(2,minmax(0,1fr))}.days{grid-template-columns:1fr}.user-nm{display:none}}
@media print{header.top,.toolbar,form,.actions{display:none!important}body{background:#fff}}
a.btn{display:inline-block;font-weight:600;font-size:13px;border-radius:999px;padding:9px 16px;border:1px solid var(--line);background:var(--surface);color:var(--fg);text-decoration:none}
a.btn:hover{background:var(--surface-2)}
td.acoes.first{text-align:left}
td.emp{min-width:220px}
.user button.link{color:var(--muted);font-weight:600;padding:0}
.user button.link:hover{color:var(--fg)}
@media (max-width:640px){.banner{border-radius:14px}}

/* ---------- celular (iPhone e Android) ---------- */
/* fallback para iOS antigo (sem color-mix) */
header.top{background:var(--bg)}
@supports (background:color-mix(in srgb,red 50%,blue)){header.top{background:color-mix(in srgb,var(--bg) 82%,transparent)}}
/* áreas seguras (notch) quando aberto pela tela inicial ou na horizontal */
.top-in{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(56px,calc(env(safe-area-inset-bottom) + 24px))}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
a,button,select,input{-webkit-tap-highlight-color:rgba(61,111,224,.15)}
.scroll{-webkit-overflow-scrolling:touch}
@media (max-width:720px){
  /* iPhone dá zoom automático em campos com fonte menor que 16px */
  input,select,textarea{font-size:16px}
  /* cabeçalho não fica fixo no celular (economiza tela) e as abas ocupam a linha toda */
  header.top{position:static;backdrop-filter:none;-webkit-backdrop-filter:none}
  .top-in{gap:10px 12px}
  nav.tabs{order:3;width:100%;margin-left:0;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
  nav.tabs::-webkit-scrollbar{display:none}
  nav.tabs a{padding:9px 14px}
  .top-in > .user{margin-left:auto}
  /* alvos de toque com pelo menos ~40px */
  .user a,.user button.link{display:inline-block;padding:10px 6px}
  td.acoes a,td.acoes button.link{display:inline-block;padding:10px 8px}
  button,a.btn{min-height:42px}
  .toolbar select{min-height:42px}
}
@media (max-width:720px){
  .top-in{flex-wrap:wrap;align-items:center}
  .brand{flex:1 1 auto;min-width:0}
  .brand b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .logo{width:30px;height:30px;font-size:12px;border-radius:9px}
  .user{gap:0 2px;font-size:13px;flex-wrap:nowrap}
}
