:root{--rinu-orange:#ec7830;--rinu-graphite:#454753;--ink:#242630;--paper:#f6f7fa;--muted:#6b6e7a;--line:#e8e9ee;--link:#a65a28}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.container{max-width:1100px;margin:auto;padding:0 24px}
.head{height:88px;display:flex;align-items:center;justify-content:space-between}
.head nav{display:flex;gap:18px;align-items:center;font-size:13px;font-weight:700;color:var(--muted)}
.head nav form{margin:0}
button.link{background:none;border:0;font:inherit;color:inherit;cursor:pointer;padding:0}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:0 15px 45px #2729370a}
.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:center}
.overline{display:inline-flex;gap:8px;align-items:center;color:#bb6a36;font-size:11px;font-weight:850;letter-spacing:.17em;text-transform:uppercase}
.overline::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--rinu-orange)}
h1{font-size:42px;letter-spacing:-1.8px;line-height:1.12;margin:18px 0 14px}
h2{font-size:18px;letter-spacing:-.4px;margin:0 0 14px}
p{color:var(--muted);font-size:14px;line-height:1.7}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--rinu-orange);color:#fff;border:0;padding:14px 20px;border-radius:10px;font-family:inherit;font-size:14px;font-weight:850;cursor:pointer}
.btn.ghost{background:#fff;color:#424651;border:1px solid #e4e6ec}
.stage{background:#fff5ef;border-radius:18px;min-height:260px;display:flex;align-items:center;justify-content:center}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}
.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.stat small{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.stat strong{display:block;font-size:24px;margin-top:6px;letter-spacing:-.5px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.alert{padding:14px 18px;border-radius:12px;margin:0 0 18px;font-size:14px;overflow-wrap:break-word}
.alert.ok{background:#eaf7ef;color:#1d6b3b}.alert.err{background:#fdecec;color:#9b2222}
.tables{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0 30px}
.pill{display:inline-block;padding:3px 8px;border-radius:99px;background:#fff5ef;color:#bb6a36;font-size:11px;font-weight:700}
footer{text-align:center;color:var(--muted);font-size:11px;padding:30px 20px}
@media(max-width:850px){.hero,.tables{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}h1{font-size:32px}}
@media(max-width:500px){.container{padding:0 16px}}
.input{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1px solid #e4e6ec;border-radius:10px;font:inherit;font-size:14px;font-weight:500;color:var(--ink);background:#fff}
.input:focus{outline:2px solid var(--link);outline-offset:1px;border-color:var(--link)}
code{background:#fff5ef;color:#bb6a36;padding:2px 6px;border-radius:6px;font-size:13px}
.ws-badge{background:#fff5ef;color:#bb6a36;padding:5px 10px;border-radius:99px;font-size:12px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.login{max-width:420px;margin:30px auto}
.login h1{font-size:26px}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row small{color:var(--muted)}
.select{padding:10px 12px;border:1px solid #e4e6ec;border-radius:10px;font:inherit;background:#fff}
.copy{font-family:ui-monospace,Menlo,monospace;font-size:12px;background:#f6f7fa;border:1px solid var(--line);padding:10px 12px;border-radius:10px;word-break:break-all;user-select:all}
.btn.sm{padding:8px 12px;font-size:12px}
.btn.danger{background:#fdecec;color:#9b2222}
.section-note{margin:18px 0 -10px;font-size:12px}
.banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 0;padding:16px 20px;border-radius:14px;background:#fff5ef;border:1px solid #f3d9c8;color:var(--ink);font-size:14px}
.banner b{color:#bb6a36}.banner span{color:var(--muted)}
.tiny-hero{margin:6px 0 22px}.tiny-hero h1{font-size:34px;margin:12px 0 6px}.tiny-hero p{margin:0;font-size:15px}
.tiny-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:start}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.steps li{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.steps .num{flex:0 0 32px;height:32px;border-radius:50%;background:var(--rinu-orange);color:#fff;font-weight:850;display:flex;align-items:center;justify-content:center;font-size:14px}
.steps b{font-size:15px}.steps p{margin:4px 0 0;font-size:14px;line-height:1.6}
.copy-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.copy-row code{font-size:13px;padding:8px 10px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.chips span{background:#fff5ef;color:#bb6a36;border:1px solid #f3d9c8;padding:5px 10px;border-radius:99px;font-size:12px;font-weight:700}
.tiny-form{position:sticky;top:20px;padding:30px}.tiny-form h2{font-size:20px;margin-bottom:18px}
.field{font-size:12px;font-weight:700;color:var(--muted)}
.hint{font-size:12px;margin:14px 0 0;text-align:center}
@media(max-width:850px){.tiny-grid{grid-template-columns:1fr}.tiny-form{position:static}.tiny-hero h1{font-size:26px}}
.steps li>div,.tiny-grid>*{min-width:0}
.copy-row code{word-break:break-all}
@media(max-width:700px){
  .head{height:auto;padding:16px 0;flex-wrap:wrap;gap:10px}
  .head nav{flex-wrap:wrap;gap:10px 14px;width:100%}
  .ws-badge{max-width:100%}
}
.tables>.card{min-width:0;overflow-x:auto}
.grid>.stat{min-width:0}
@media(max-width:500px){.card{padding:20px}.stat strong{font-size:20px}}
/* ---------- painel ---------- */
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin:8px 0 28px}
.dash-head h1{font-size:32px;margin:8px 0 4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dash-head .meta{margin:0;font-size:13px}
.dash-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.seg{display:flex;background:#fff;border:1px solid var(--line);border-radius:11px;padding:3px;gap:2px;flex-wrap:wrap}
.seg a{padding:8px 12px;border-radius:8px;font-size:12px;font-weight:750;color:var(--muted);white-space:nowrap}
.seg a.on{background:var(--ink);color:#fff}
.section-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.section-title h2{margin:0;font-size:17px}.section-title small{color:var(--muted);font-size:12px}
.kpis{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;min-width:0}
.kpi small{display:block;color:var(--muted);font-size:12px;font-weight:700}
.kpi strong{display:block;font-size:26px;letter-spacing:-.6px;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi.main{background:var(--ink);border-color:var(--ink)}.kpi.main small{color:#b9bbc6}.kpi.main strong{color:#fff;font-size:30px}
.tiny-strip{display:flex;align-items:center;gap:8px 22px;flex-wrap:wrap;margin:14px 0 0;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:13px;color:#5d606c}
.tiny-strip .tag{background:#fff5ef;color:#bb6a36;font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:99px}
.tiny-strip a{margin-left:auto;color:#bb6a36;font-weight:750}
.dash-row{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin:16px 0}
.dash-row>*{min-width:0}
.card-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.card-head h2{margin:0}.card-head small{color:var(--muted);font-size:12px}
.bars{display:grid;grid-template-columns:repeat(30,1fr);gap:4px;align-items:end;height:200px;border-bottom:1px solid var(--line)}
.bar{height:100%;display:flex;align-items:flex-end;cursor:default}
.bar span{display:block;width:100%;background:var(--rinu-orange);border-radius:4px 4px 0 0;opacity:.85;transition:opacity .15s}
.bar:hover span{opacity:1;background:#d9631c}
.bars-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:6px}
.order{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
.order:last-child{border-bottom:0}
.order>div{min-width:0}.order b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.order small{display:block;color:var(--muted);font-size:11px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.order .right{flex:0 0 auto;display:flex;align-items:center;gap:10px}
.status{display:inline-block;padding:3px 8px;border-radius:99px;font-size:11px;font-weight:750;white-space:nowrap}
.status.ok{background:#eaf7ef;color:#1d6b3b}.status.bad{background:#fdecec;color:#9b2222}.status.warn{background:#fff5e0;color:#8a5a00}.status.neutral{background:#f0f1f5;color:#5d606c}
.table-wrap{overflow-x:auto}
table.items td{vertical-align:middle;padding:12px 8px}
table.items .r{text-align:right}.nw{white-space:nowrap}.muted{color:var(--muted)}
table small{font-size:11.5px}
.item{display:flex;gap:12px;align-items:center;min-width:260px}
.thumb{width:44px;height:44px;border-radius:10px;border:1px solid var(--line);flex:0 0 44px;background:#f6f7fa center/cover no-repeat}.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.item a{font-weight:650;color:var(--ink)}.item a:hover{color:var(--link)}
.item small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
@media(max-width:950px){.kpis{grid-template-columns:1fr 1fr}.dash-row{grid-template-columns:1fr}}
@media(max-width:500px){.kpi strong{font-size:21px}.kpi.main strong{font-size:23px}.dash-head h1{font-size:26px}.bars{height:140px;gap:2px}.tiny-strip a{margin-left:0}}
.chart-card{display:flex;flex-direction:column}
.chart-card .bars{flex:1;min-height:200px;height:auto}
@media(max-width:950px){.chart-card .bars{min-height:180px}}
/* ---------- configurações ---------- */
.page-head{margin:8px 0 22px}.page-head h1{font-size:32px;margin:8px 0 0}
.set{display:grid;grid-template-columns:280px 1fr;gap:28px;padding:28px 0;border-top:1px solid var(--line)}
.set:first-of-type{border-top:0}
.set-info h2{margin:0 0 6px;font-size:16px}.set-info p{margin:0;font-size:13px;line-height:1.6}
.set-info .overline{margin-bottom:8px}
.set-body{min-width:0;display:grid;gap:14px;align-content:start;justify-items:start}
.set-body>.list,.set-body>.inline,.set-body>.invite-form{width:100%}
.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline .input{margin:0;flex:1;min-width:180px}
.plain{margin:0}
.list{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.li{display:flex;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid var(--line);flex-wrap:wrap}
.li:first-child{border-top:0}
.li.empty{color:var(--muted);font-size:14px}
.li .grow{flex:1;min-width:180px}
.li b{display:flex;align-items:center;gap:8px;font-size:14px}
.li small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.li form{margin:0}
.avatar{flex:0 0 38px;height:38px;border-radius:50%;background:#f0f1f5;color:#5d606c;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}
.avatar.ml{background:#fff159;color:#2d3277;font-size:11px}
.avatar.tiny{background:#fff5ef;color:#bb6a36}
.avatar.dashed{background:#fff;border:1.5px dashed #c9cbd3;color:#a0a3ad}
.li.pending{background:#fffcf6}
.select.sm{padding:7px 10px;font-size:12px}
.invite-form{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;gap:10px}
.invite-form small{color:var(--muted);font-size:12px}
.link-box{background:#eaf7ef;border:1px solid #cfe9d8;border-radius:14px;padding:16px 18px;margin-bottom:18px;display:grid;gap:8px;color:#1d6b3b}
.link-box small{color:#3f7d56}
.link-box code{background:#fff;color:var(--ink);word-break:break-all}
.set.admin{margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}
@media(max-width:850px){.set{grid-template-columns:1fr;gap:14px}}
.select{font-size:14px;height:44px;padding:0 12px}.select.sm{height:34px;padding:0 10px}
.inline .input,.inline .btn{height:44px}.inline .btn.sm{padding:0 16px}
/* ---------- tiny conectado ---------- */
.dash-head h1 .status{font-size:12px;vertical-align:middle}
.kpi-sub{display:block;color:var(--muted);font-size:12px;margin-top:6px}
.meter{display:block;height:6px;border-radius:99px;background:#f0f1f5;margin-top:10px;overflow:hidden}
.meter span{display:block;height:100%;background:var(--rinu-orange);border-radius:99px}
.tiny-row{grid-template-columns:1.7fr 1fr}
.search{margin-bottom:12px}
.pname{font-weight:650;font-size:13px}.sku{color:#a0a3ad;font-size:11px}
.pager{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:16px;font-size:13px;color:var(--muted)}
.orders-card .item{min-width:0}.orders-card .item a{font-size:13px}
@media(max-width:950px){.tiny-row{grid-template-columns:1fr}}
.tiny-row{align-items:start}
.dash-head h1 .status{letter-spacing:0;font-size:12px;padding:4px 10px}
@media(max-width:950px){.kpi.main{grid-column:1/-1}}
table.items td:first-child{min-width:170px}
/* ---------- login, convite, nova senha ---------- */
.btn.block{width:100%;justify-content:center;padding:15px 20px;font-size:15px}
.auth-card{max-width:440px;margin:40px auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:40px;box-shadow:0 20px 50px #2729370d}
.auth-card h1{font-size:28px;margin:10px 0 6px}
.auth-card .sub{margin:0 0 22px;font-size:14px}
.auth-form{display:grid;gap:14px}
.auth-form .input{margin-top:6px}
.auth-form .hint{margin:2px 0 0}
.auth-card.notice{text-align:center}

.auth-split{display:grid;grid-template-columns:1fr 1.15fr;max-width:940px;margin:30px auto;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 20px 50px #2729370d}
.auth-side{background:var(--ink);color:#fff;padding:44px 40px;position:relative;overflow:hidden}
.auth-side::after{content:"";position:absolute;width:260px;height:260px;right:-90px;bottom:-90px;border:44px solid #ec78301f;border-radius:50%}
.auth-side h1{font-size:30px;line-height:1.2;margin:14px 0 18px;letter-spacing:-1px}
.auth-side h1 span{color:var(--rinu-orange)}
.overline.light{color:#f0a678}
.auth-side .by{display:flex;align-items:center;gap:10px;color:#c7c8d0;font-size:14px;margin:0 0 22px}
.auth-side .by b{color:#fff}
.auth-side .by .avatar{background:#ffffff1f;color:#fff;flex:0 0 32px;height:32px;font-size:12px}
.perks{list-style:none;margin:0;padding:0;display:grid;gap:12px;position:relative;z-index:1}
.perks li{display:flex;gap:10px;color:#e4e5ea;font-size:14px;line-height:1.5}
.perks li::before{content:"✓";flex:0 0 22px;height:22px;border-radius:50%;background:var(--rinu-orange);color:#fff;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;margin-top:1px}
.auth-side .exp{margin:28px 0 0;font-size:12px;color:#8d8f9b;position:relative;z-index:1}
.auth-main{padding:44px 40px}
.auth-main h2{font-size:22px;margin:0 0 20px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:800px){.auth-split{grid-template-columns:1fr;margin:10px 0}.auth-side,.auth-main{padding:30px 24px}.auth-card{padding:30px 24px;margin:20px 0}.two{grid-template-columns:1fr}}
.input::placeholder{color:#b3b5bf;font-weight:400}
/* ---------- nova senha ---------- */
.lock-icon{width:56px;height:56px;border-radius:16px;background:#fff5ef;color:var(--rinu-orange);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.who{display:flex;align-items:center;gap:10px;justify-content:center;background:#f6f7fa;border:1px solid var(--line);border-radius:99px;padding:6px 14px 6px 6px;margin:0 auto 22px;width:max-content;max-width:100%;font-size:14px;font-weight:650}
.who span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who .avatar{flex:0 0 28px;height:28px;font-size:12px;background:var(--ink);color:#fff}
.pw{position:relative;display:block}
.pw .input{padding-right:84px}
.pw-toggle{position:absolute;right:8px;top:calc(50% + 3px);transform:translateY(-50%);background:none;border:0;color:var(--muted);font:inherit;font-size:12px;font-weight:750;cursor:pointer;padding:6px 8px;border-radius:6px}
.pw-toggle:hover{background:#f0f1f5;color:var(--ink)}
.pw-meter{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;margin-top:-4px}
.pw-meter .bar{height:6px;border-radius:99px;background:#f0f1f5;overflow:hidden}
.pw-meter .bar span{display:block;height:100%;width:0;border-radius:99px;transition:width .2s,background .2s}
.pw-meter .label{font-size:12px}
.pw-meter ul{grid-column:1/-1;list-style:none;margin:0;padding:0;display:flex;gap:6px 14px;flex-wrap:wrap}
.pw-meter li{font-size:12px;color:var(--muted)}.pw-meter li::before{content:"○ "}
.pw-meter li.ok{color:#1d6b3b}.pw-meter li.ok::before{content:"✓ "}
.pw-meter.s0 .bar span,.pw-meter.s1 .bar span{background:#d64545}.pw-meter.s0 .label,.pw-meter.s1 .label{color:#9b2222}
.pw-meter.s2 .bar span{background:#e0a020}.pw-meter.s2 .label{color:#8a5a00}
.pw-meter.s3 .bar span,.pw-meter.s4 .bar span{background:#2e9d5b}.pw-meter.s3 .label,.pw-meter.s4 .label{color:#1d6b3b}
.match-msg{display:block;font-size:12px;font-weight:600;margin-top:6px}.match-msg.bad{color:#9b2222}.match-msg.ok{color:#1d6b3b}
.input.invalid{border-color:#e5a5a5}
.btn:disabled{opacity:.5;cursor:not-allowed}
.auth-card .hint{margin:16px 0 0;text-align:center}
.pw{margin-top:6px}.pw .input{margin-top:0}
.pw-toggle{top:50%}
[hidden]{display:none!important}
/* ---------- login ---------- */
.login-split{grid-template-columns:1.1fr 1fr;margin-top:10px}
.login-side{display:flex;flex-direction:column;padding:40px}
.login-side h1{font-size:30px;margin:0 0 24px;max-width:380px}
.preview{position:relative;z-index:1;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;padding:18px;display:grid;gap:12px;max-width:380px}
.pv-kpi{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 8px}
.pv-kpi small{grid-column:1/-1;color:#a7a9b4;font-size:11px;font-weight:700}
.pv-kpi b{font-size:24px;letter-spacing:-.5px}
.pv-kpi .up{font-style:normal;font-size:12px;font-weight:800;color:#7ee2a5;background:#7ee2a51a;padding:3px 8px;border-radius:99px}
.pv-bars{display:grid;grid-template-columns:repeat(14,1fr);gap:4px;align-items:end;height:70px}
.pv-bars span{background:var(--rinu-orange);border-radius:3px 3px 0 0;opacity:.9}
.pv-row{display:flex;justify-content:space-between;font-size:13px;color:#c7c8d0;border-top:1px solid #ffffff14;padding-top:10px}
.pv-row b{color:#fff}
.pv-note{position:relative;z-index:1;margin:10px 0 0;font-size:11px;color:#6f7180}
.login-main{display:flex;flex-direction:column;justify-content:center}
.login-main .sub{margin:-12px 0 22px;font-size:14px}
@media(max-width:800px){.login-side .preview,.login-side .pv-note{display:none}.login-side h1{font-size:24px;margin:18px 0 0}}
@media(max-width:800px){.login-split{grid-template-columns:1fr}.login-side{padding:26px 24px}.login-side h1{font-size:22px;margin:0}.login-main{padding:28px 24px}}
/* ---------- link inválido ---------- */
.auth-card.notice{max-width:480px}
.notice-icon{width:64px;height:64px;border-radius:18px;background:#fff5ef;color:var(--rinu-orange);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;position:relative}
.notice-icon::after{content:"";position:absolute;inset:-8px;border-radius:24px;border:1.5px dashed #f3d9c8}
.auth-card.notice h1{font-size:24px;line-height:1.25}
.auth-card.notice .sub{margin-bottom:14px}
.reasons{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px;text-align:left}
.reasons li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#5d606c;background:#f6f7fa;border-radius:10px;padding:10px 12px}
.reasons li::before{content:"";flex:0 0 6px;height:6px;border-radius:50%;background:#c9cbd3;margin-top:7px}
.notice .next{text-align:left;border:1px solid #f3d9c8;background:#fffaf6;border-radius:12px;padding:14px 16px;margin-bottom:20px}
.notice .next b{display:block;font-size:13px;color:#bb6a36;margin-bottom:4px}
.notice .next p{margin:0;font-size:13px;line-height:1.6;color:#5d606c}.notice .next p b{display:inline;color:var(--ink);font-size:13px}
.notice-actions{display:grid;gap:10px}
/* ---------- tiny desconectado ---------- */
.tiny-hero2{display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center;background:var(--ink);color:#fff;border-radius:22px;padding:36px 40px;margin:6px 0 26px;position:relative;overflow:hidden}
.tiny-hero2::after{content:"";position:absolute;width:300px;height:300px;right:-110px;top:-120px;border:50px solid #ec78301a;border-radius:50%}
.tiny-hero2 h1{font-size:32px;line-height:1.15;margin:12px 0 18px;letter-spacing:-1px}
.th-gains{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap}
.th-gains li{background:#ffffff12;border:1px solid #ffffff1f;border-radius:99px;padding:7px 12px;font-size:13px;color:#d6d7dd}
.th-gains b{color:#fff}
.th-link{display:flex;align-items:center;justify-content:center;gap:0;position:relative;z-index:1}
.th-node{background:#fff;border-radius:18px;height:84px;min-width:120px;padding:0 16px;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px #0004}
.th-node .rinu-logo{height:30px}
.tiny-node{flex-direction:column;gap:0}.tiny-node b{font-size:24px;letter-spacing:-.5px;color:var(--ink);line-height:1}.tiny-node small{font-size:10px;font-weight:800;letter-spacing:.2em;color:#7b7e89}
.th-wire{display:flex;align-items:center;width:90px}
.th-wire span{flex:1;height:2px;background:repeating-linear-gradient(90deg,#f0a678 0 6px,transparent 6px 11px)}
.th-wire i{font-style:normal;width:30px;height:30px;border-radius:50%;background:var(--rinu-orange);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px}
.steps-intro{margin:0 0 14px;font-size:15px;color:var(--ink);font-weight:650}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline li{display:flex;gap:16px;position:relative;padding:0 0 22px}
.timeline li::before{content:"";position:absolute;left:15px;top:34px;bottom:0;width:2px;background:#f3d9c8}
.timeline li:last-child::before{display:none}
.timeline li>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;flex:1;min-width:0}
.timeline .num,.form-step .num{flex:0 0 32px;height:32px;border-radius:50%;background:var(--rinu-orange);color:#fff;font-weight:850;display:flex;align-items:center;justify-content:center;font-size:14px;position:relative;z-index:1}
.timeline b{font-size:15px}.timeline p{margin:4px 0 0;font-size:14px;line-height:1.6}
.form-step{display:flex;align-items:center;gap:12px;margin-bottom:18px}.form-step h2{margin:0}
.secure{display:flex;align-items:center;justify-content:center;gap:6px;margin:14px 0 0;font-size:12px;color:var(--muted)}
.tiny-grid{margin-top:4px}
@media(max-width:850px){.tiny-hero2{grid-template-columns:1fr;padding:28px 24px}.tiny-hero2 h1{font-size:25px}.th-link{justify-content:flex-start}.th-node{height:64px;min-width:96px}.th-wire{width:60px}}
@media(max-width:420px){.th-link{display:none}}
/* ---------- status ---------- */
.status-page{padding-bottom:40px}
.st-summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;border-radius:20px;padding:24px 28px;margin:6px 0 16px;border:1px solid}
.st-summary.ok{background:#eaf7ef;border-color:#cfe9d8}.st-summary.bad{background:#fdecec;border-color:#f3c9c9}
.st-summary>div{flex:1;min-width:200px}
.st-summary h1{font-size:24px;margin:0;letter-spacing:-.5px}.st-summary p{margin:4px 0 0;font-size:13px}
.st-big{flex:0 0 52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;color:#fff}
.st-summary.ok .st-big{background:#2e9d5b}.st-summary.bad .st-big{background:#d64545}
.st-summary.ok h1{color:#1d6b3b}.st-summary.bad h1{color:#9b2222}
.st-problems{display:grid;gap:8px;margin-bottom:16px}
.st-problems div{background:#fff;border:1px solid #f3c9c9;border-left:4px solid #d64545;border-radius:12px;padding:12px 16px;font-size:14px}
.st-problems span{display:block;color:#7b7e89;font-size:12px;margin-top:3px;word-break:break-word}
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;align-items:start}
.st-group{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px}
.st-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.st-head h2{margin:0;font-size:15px}.st-head small{color:var(--muted);font-size:12px}
.st-row{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line)}
.st-row:first-of-type{border-top:0}
.st-row>div{min-width:0}
.st-row b{display:block;font-size:13px;font-weight:650}
.st-row small{display:block;color:var(--muted);font-size:12px;margin-top:2px;word-break:break-word}
.dot{flex:0 0 10px;height:10px;border-radius:50%;margin-top:4px}
.dot.ok{background:#2e9d5b;box-shadow:0 0 0 3px #2e9d5b22}.dot.bad{background:#d64545;box-shadow:0 0 0 3px #d6454522}.dot.warn{background:#e0a020;box-shadow:0 0 0 3px #e0a02022}
.st-log{margin-top:16px;background:var(--ink);border-radius:18px;padding:18px 20px}
.st-log h2{color:#fff}.st-log small{color:#8d8f9b}
.st-log pre{margin:6px 0 0;max-height:420px;overflow:auto;font-size:12px;line-height:1.65;color:#c7c8d0;white-space:pre-wrap;word-break:break-word}
.st-log pre span{display:block;padding:1px 6px;border-radius:4px}
.st-log pre .bad{color:#ff9b9b;background:#d6454518}.st-log pre .warn{color:#f5cf7a}.st-log pre .ok{color:#8fe0ae}
@media(max-width:500px){.st-grid{grid-template-columns:1fr}.st-summary{padding:20px}}
/* ---------- loja nova (onboarding) ---------- */
.onboard{grid-template-columns:1fr 1.25fr;max-width:1000px}
.journey{list-style:none;margin:6px 0 24px;padding:0;position:relative;z-index:1}
.journey li{display:flex;gap:14px;position:relative;padding-bottom:18px}
.journey li::before{content:"";position:absolute;left:15px;top:32px;bottom:0;width:2px;background:#ffffff1f}
.journey li:last-child::before{display:none}
.journey .num{flex:0 0 32px;height:32px;border-radius:50%;background:#ffffff14;border:1px solid #ffffff2a;color:#c7c8d0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.journey li.now .num{background:var(--rinu-orange);border-color:var(--rinu-orange);color:#fff;box-shadow:0 0 0 5px #ec783026}
.journey b{display:block;color:#fff;font-size:14px;margin-top:5px}.journey small{display:block;color:#9fa1ad;font-size:12px;margin-top:2px}
.journey li:not(.now) b{color:#c7c8d0}
.store-preview{position:relative;z-index:1;display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:12px 14px;max-width:320px;box-shadow:0 12px 30px #0004}
.sp-logo{flex:0 0 40px;height:40px;border-radius:11px;background:var(--rinu-orange);color:#fff;font-weight:900;font-size:18px;display:flex;align-items:center;justify-content:center}
.store-preview small{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.store-preview b{display:block;color:#b3b5bf;font-size:16px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.store-preview b.filled{color:var(--ink)}
.fs{border:0;margin:0;padding:0;display:grid;gap:12px;min-width:0}
.fs+.fs{border-top:1px solid var(--line);padding-top:18px}
.fs legend{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:800;color:var(--ink);padding:0;margin-bottom:12px}
@media(max-width:800px){.onboard{grid-template-columns:1fr}.store-preview{display:none}}
.fs+.fs{border-top:0;padding-top:4px}
.fs .hint{color:var(--muted);font-size:12px;margin:-4px 0 0}
/* ---------- configurações v2 ---------- */
.setup{background:#fff;border:1px solid #f3d9c8;border-radius:18px;padding:20px 22px;margin:0 0 22px;box-shadow:0 10px 30px #ec78300d}
.setup-head{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:12px}
.setup-head b{display:block;font-size:16px}.setup-head small{color:var(--muted);font-size:12px}
.setup-head .meter{flex:1;min-width:160px;margin:0}
.setup-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.setup-steps li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:13px;font-weight:650;min-width:0}
.setup-steps .tx{flex:1;min-width:110px}.setup-steps small{color:var(--muted);font-weight:500}
.setup-steps .ck{flex:0 0 24px;height:24px;border-radius:50%;background:#f0f1f5;color:#7b7e89;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}
.setup-steps li.done{background:#f6fbf8;border-color:#d6eedf;color:#5d606c}.setup-steps li.done .ck{background:#2e9d5b;color:#fff}
.setup-steps li.next{border-color:var(--rinu-orange);box-shadow:0 0 0 3px #ec78301f}.setup-steps li.next .ck{background:var(--rinu-orange);color:#fff}
.set-layout{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:start}
.set-nav{position:sticky;top:20px;display:grid;gap:2px}
.set-nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-radius:10px;font-size:13px;font-weight:700;color:#5d606c}
.set-nav a:hover{background:#fff;color:var(--ink)}
.set-nav .cnt{background:#f0f1f5;color:#7b7e89;font-size:11px;padding:1px 7px;border-radius:99px}
.dotmini{width:8px;height:8px;border-radius:50%;background:#c9cbd3}.dotmini.ok{background:#2e9d5b}
.set-main{display:grid;gap:16px;min-width:0}
.set-main .set{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 24px;scroll-margin-top:20px}
.set-main .set-info{margin-bottom:16px}.set-main .set-info p{max-width:620px}
.set-main .set.admin{margin-top:0}
.set-main .list{border-radius:14px}
.empty-box{display:grid;justify-items:center;text-align:center;gap:6px;padding:26px 18px}
.empty-box b{font-size:15px}.empty-box small{color:var(--muted);font-size:13px;max-width:360px;margin-bottom:8px}
.empty-box .avatar{width:44px;height:44px;flex:none}
@media(max-width:950px){.setup-steps{grid-template-columns:1fr 1fr}.set-layout{grid-template-columns:1fr}.set-nav{position:static;display:flex;overflow-x:auto;gap:6px}.set-nav a{white-space:nowrap;background:#fff;border:1px solid var(--line)}}
@media(max-width:500px){.setup-steps{grid-template-columns:1fr}.set-main .set{padding:18px}}
.pending-group{border-top:1px solid var(--line)}
.pending-group summary{list-style:none;cursor:pointer;border-top:0}
.pending-group summary::-webkit-details-marker{display:none}
.pending-group .chev{color:#a0a3ad;transition:transform .15s}.pending-group[open] .chev{transform:rotate(180deg)}
.li.sub{padding-left:66px;background:#fffdf9}
@media(max-width:500px){.li.sub{padding-left:16px}}
@media(max-width:500px){.setup-steps li{flex-wrap:nowrap}.setup-steps .tx{min-width:0}}
/* ---------- painel v3 ---------- */
.seg.sm a{padding:6px 10px;font-size:12px}
.section-title .period{margin-left:auto}
.kpi{position:relative}
.delta{display:inline-block;margin-top:8px;font-size:12px;font-weight:800;padding:3px 8px;border-radius:99px}
.delta.up{background:#eaf7ef;color:#1d6b3b}.delta.down{background:#fdecec;color:#9b2222}.delta.flat{background:#f0f1f5;color:#5d606c}
.kpi.main .delta.up{background:#2e9d5b33;color:#8fe0ae}.kpi.main .delta.down{background:#d6454533;color:#ffaaaa}.kpi.main .delta.flat{background:#ffffff1a;color:#c7c8d0}
.chart{position:relative;flex:1;display:flex;flex-direction:column;min-height:200px}
.chart .bars{flex:1;min-height:200px}
.avg-line{position:absolute;left:0;right:0;border-top:1.5px dashed #24263080;z-index:2;pointer-events:none}
.legend-avg{border-bottom:1.5px dashed #24263080}
.alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.alert-tile{display:grid;gap:2px;background:#fff;border:1px solid var(--line);border-left:4px solid #c9cbd3;border-radius:14px;padding:14px 16px;transition:transform .1s, box-shadow .1s}
.alert-tile:hover{transform:translateY(-1px);box-shadow:0 8px 20px #2729370f}
.alert-tile b{font-size:24px;letter-spacing:-.5px}
.alert-tile span{font-size:13px;font-weight:750}.alert-tile small{font-size:12px;color:var(--muted)}
.alert-tile.bad{border-left-color:#d64545}.alert-tile.bad b{color:#9b2222}
.alert-tile.warn{border-left-color:#e0a020}.alert-tile.warn b{color:#8a5a00}
.alert-tile.neutral{border-left-color:#7b7e89}
.alert-tile.zero{border-left-color:#2e9d5b}.alert-tile.zero b{color:#1d6b3b}
.alert-tile.on{outline:2px solid var(--ink);outline-offset:-1px}
#anuncios{scroll-margin-top:16px}
@media(max-width:950px){.alerts{grid-template-columns:1fr 1fr}.section-title .period{margin-left:0}}
/* ---------- tiny conectado v2 ---------- */
.chipnav{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.chipnav a{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:99px;border:1px solid var(--line);background:#fff;font-size:12px;font-weight:750;color:#5d606c}
.chipnav a span{background:#f0f1f5;color:#5d606c;border-radius:99px;padding:1px 7px;font-size:11px}
.chipnav a.on{background:var(--ink);border-color:var(--ink);color:#fff}.chipnav a.on span{background:#ffffff26;color:#fff}
.side-col{display:grid;gap:16px;align-content:start;min-width:0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0 0 16px;font-size:13px}
.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right;font-weight:650;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}
#catalogo{scroll-margin-top:16px}
.tiny-row2{grid-template-columns:1.6fr 1fr;align-items:start}
.tiny-row2 .orders-card .order{padding:8px 0}
@media(max-width:950px){.tiny-row2{grid-template-columns:1fr}}
/* ---------- convite de equipe v3 ---------- */
.team-invite .auth-side{display:flex;flex-direction:column;gap:18px}
.team-invite .auth-side .by{margin:0}
.store-card{position:relative;z-index:1;display:flex;align-items:center;gap:14px;background:#fff;border-radius:16px;padding:16px;box-shadow:0 12px 30px #0004}
.store-card .sp-logo{flex:0 0 48px;height:48px;font-size:22px;border-radius:13px}
.store-card b{display:block;color:var(--ink);font-size:18px;letter-spacing:-.3px}
.store-card small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.role-box{position:relative;z-index:1;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:14px;padding:16px}
.role-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.role-title small{color:#a7a9b4;font-size:12px;font-weight:700}
.role-badge{background:var(--rinu-orange);color:#fff;font-size:12px;font-weight:800;padding:4px 10px;border-radius:99px}
.perms{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.perms li{display:flex;gap:10px;font-size:13px;line-height:1.45}
.perms li::before{flex:0 0 20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;margin-top:0}
.perms li.yes{color:#e4e5ea}.perms li.yes::before{content:"✓";background:#2e9d5b;color:#fff}
.perms li.no{color:#8d8f9b}.perms li.no::before{content:"✕";background:#ffffff14;color:#8d8f9b}
.team-invite .auth-side .exp{margin:auto 0 0}
.switch{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:#5d606c;cursor:pointer;user-select:none;margin-bottom:2px}
.switch input{position:absolute;opacity:0;pointer-events:none}
.switch .track{width:38px;height:22px;border-radius:99px;background:#d9dbe1;position:relative;transition:background .15s;flex:0 0 38px}
.switch .track span{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px #0003}
.switch input:checked+.track{background:var(--rinu-orange)}.switch input:checked+.track span{transform:translateX(16px)}
.switch input:focus-visible+.track{outline:2px solid var(--rinu-orange);outline-offset:2px}
.two.single{grid-template-columns:1fr}
.locked{position:relative;display:block;margin-top:6px}.locked .input{margin-top:0;padding-right:110px;background:#f6f7fa;color:#5d606c}
.lock-chip{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:750;color:#7b7e89;background:#fff;border:1px solid var(--line);border-radius:99px;padding:3px 8px}
/* ---------- nova senha v3 ---------- */
.reset-split{max-width:940px}
.reset-split .auth-main .lock-icon{margin:0 auto 12px}
.reset-split .who{margin:10px auto 20px}
.tips{list-style:none;margin:0;padding:0;display:grid;gap:16px;position:relative;z-index:1}
.tips li{border-left:2px solid var(--rinu-orange);padding-left:14px}
.tips b{display:block;color:#fff;font-size:14px}.tips small{display:block;color:#a7a9b4;font-size:13px;line-height:1.5;margin-top:3px}
.field-head{display:flex;justify-content:space-between;align-items:center}
.linkbtn{background:none;border:0;padding:0;font:inherit;font-size:12px;font-weight:750;color:var(--link);cursor:pointer}
.linkbtn:hover{text-decoration:underline}
.gen-note{font-size:12px;color:#1d6b3b;background:#eaf7ef;border-radius:10px;padding:8px 12px}
.done-icon{width:64px;height:64px;border-radius:50%;background:#2e9d5b;color:#fff;font-size:30px;font-weight:900;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 0 0 8px #2e9d5b22}
.auth-card.done .sub{margin-bottom:20px}
/* ---------- status v2 ---------- */
.st-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:var(--muted)}
.st-meta .ver b{color:var(--ink);font-family:ui-monospace,Menlo,monospace}
.st-actions{display:flex;gap:8px;flex-wrap:wrap}
.st-sync{margin:0 0 16px}
.sync-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.sync-card{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;min-width:0}
.sync-card>div{min-width:0;flex:1}
.sync-card b{display:flex;align-items:center;gap:6px;font-size:14px}
.sync-card small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.sync-card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:10px 0 0;font-size:12px}
.sync-card dt{color:var(--muted)}.sync-card dd{margin:0;text-align:right;font-weight:650}
.sync-card.cron{grid-column:1/-1}
.sync-card.bad{border-color:#f3c9c9}.sync-card.warn{border-color:#f2dfae}
.tag-ml,.tag-tiny{font-size:10px;font-weight:850;padding:2px 6px;border-radius:5px}
.tag-ml{background:#fff159;color:#2d3277}.tag-tiny{background:#fff5ef;color:#bb6a36}
.txt-bad{color:#9b2222}
/* ---------- link inválido v2 ---------- */
.auth-card.notice .overline{justify-content:center;margin-bottom:6px}
.notice.state-used .notice-icon{background:#eaf7ef;color:#2e9d5b}.notice.state-used .notice-icon::after{border-color:#cfe9d8}
.notice.state-expired .notice-icon{background:#fff5e0;color:#b47800}.notice.state-expired .notice-icon::after{border-color:#f2dfae}
.notice.state-revoked .notice-icon{background:#fdecec;color:#d64545}.notice.state-revoked .notice-icon::after{border-color:#f3c9c9}
.notice .who{margin:0 auto 20px}
.ask{text-align:left;background:#fffaf6;border:1px solid #f3d9c8;border-radius:14px;padding:16px;margin-bottom:14px}
.ask b{display:block;font-size:14px;color:#bb6a36}.ask p{margin:2px 0 10px;font-size:13px}
.ask blockquote{margin:0 0 12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5;color:#3d4050}
.ask-actions{display:flex;gap:8px;flex-wrap:wrap}
/* ---------- login v3 ---------- */
.login-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.login-row .switch{margin:0}
.caps-warn{display:block;margin-top:6px;font-size:12px;font-weight:700;color:#8a5a00}
.forgot{margin-top:16px;text-align:left;background:#fffaf6;border:1px solid #f3d9c8;border-radius:14px;padding:16px}
.forgot>b{display:block;font-size:14px;color:#bb6a36}
.forgot p{margin:4px 0 10px;font-size:13px;line-height:1.55}
.forgot blockquote{margin:0 0 12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5;color:#3d4050}
.forgot code{font-size:11px}
/* ---------- minha conta ---------- */
.me-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;width:100%;background:#f6f7fa;border-radius:14px;padding:14px 16px}
.me-card>div{flex:1;min-width:180px}.me-card b{display:block;font-size:15px}.me-card small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.avatar.big{flex:0 0 48px;height:48px;font-size:16px;background:var(--ink);color:#fff}
.acct-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;width:100%;align-items:start}
.acct-box{display:grid;gap:10px;border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}
.acct-box b{font-size:14px}.acct-box>small{color:var(--muted);font-size:12px;margin-top:-8px}
.acct-box .input{margin:0}.acct-box .btn{justify-self:start}
.acct-danger{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;width:100%;border:1px solid #f3c9c9;background:#fffafa;border-radius:14px;padding:14px 16px}
.acct-danger b{display:block;font-size:14px;color:#9b2222}.acct-danger small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
#minha-conta{scroll-margin-top:20px}
@media(max-width:850px){.acct-grid{grid-template-columns:1fr}}
/* ---------- painel v4 ---------- */
.split-row{grid-template-columns:1fr 1.6fr}
.split-row.one{grid-template-columns:1fr}
.acc-row{display:grid;gap:5px;padding:10px 0;border-top:1px solid var(--line)}
.card-head+.acc-row{border-top:0;padding-top:0}
.acc-top{display:flex;justify-content:space-between;gap:10px;font-size:13px}.acc-top small{color:var(--muted);font-weight:700}
.acc-top>span{white-space:nowrap;flex:0 0 auto}.acc-top>b{min-width:0;overflow-wrap:anywhere}
.acc-row .meter{margin:0}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;height:170px}
.wk{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;min-width:0}
.wk .wv{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.wk .wb{flex:1;width:100%;display:flex;align-items:flex-end;background:#f6f7fa;border-radius:8px;overflow:hidden}
.wk .wb span{display:block;width:100%;background:#f0c3a5;border-radius:8px 8px 0 0}
.wk.best .wb span{background:var(--rinu-orange)}.wk.best .wv{color:var(--ink);font-weight:800}
.wk b{font-size:12px}
.head-actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.share{display:block;height:4px;background:#f0f1f5;border-radius:99px;margin:5px 0 2px auto;width:90px;overflow:hidden}
.share span{display:block;height:100%;background:var(--rinu-orange)}
@media(max-width:950px){.split-row{grid-template-columns:1fr}}
@media(max-width:500px){.wk .wv{display:none}.week{height:130px}}
/* ---------- tiny conectado v3 ---------- */
a.kpi.link{display:block;color:inherit;transition:transform .1s, box-shadow .1s}
a.kpi.link:hover{transform:translateY(-1px);box-shadow:0 8px 20px #2729370f}
a.kpi.link.warn{border-color:#f2dfae;background:#fffcf3}a.kpi.link.warn strong{color:#8a5a00}
.kpi-sub.light{color:#a7a9b4}
/* ---------- convite de equipe v4 ---------- */
.team-faces{position:relative;z-index:1;display:flex;align-items:center}
.team-faces span{width:30px;height:30px;border-radius:50%;background:#3a3d4a;border:2px solid var(--ink);color:#e4e5ea;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-left:-8px}
.team-faces span:first-child{margin-left:0}
.team-faces .more{background:var(--rinu-orange);color:#fff}
.team-faces small{margin-left:10px;color:#a7a9b4;font-size:12px}
details.role-box summary{list-style:none;cursor:default}
details.role-box summary::-webkit-details-marker{display:none}
.role-more{display:none;font-size:12px;color:#f0a678;font-weight:700}
.auth-side .exp.soon{color:#f5cf7a;font-weight:700}
@media(max-width:800px){
  .team-invite .auth-side{gap:12px;padding:24px 22px}
  .team-invite .store-card{padding:12px}
  .team-invite .store-card .sp-logo{flex-basis:40px;height:40px;font-size:18px}
  details.role-box{padding:12px 14px}
  details.role-box summary{cursor:pointer;flex-wrap:wrap;gap:6px;margin:0}
  details.role-box[open] summary{margin-bottom:12px}
  .role-more{display:block;width:100%}
  details.role-box[open] .role-more{display:none}
  .team-invite .auth-side .exp{margin:0}
}
.team-faces span{width:34px;height:34px;margin-left:-6px;font-size:10px;letter-spacing:-.3px}
/* ---------- nova senha v4 ---------- */
.tips-box{position:relative;z-index:1}
.tips-box summary{list-style:none;cursor:default;color:#a7a9b4;font-size:12px;font-weight:700;margin-bottom:14px}
.tips-box summary::-webkit-details-marker{display:none}
@media(max-width:800px){
  .reset-split .auth-side{padding:22px 22px 18px;gap:10px}
  .reset-split .auth-side h1{font-size:22px;margin:8px 0 10px}
  .reset-split .auth-main .lock-icon{display:none}
  .reset-split .auth-main{padding-top:24px}
  .tips-box summary{cursor:pointer;color:#f0a678;margin:0}
  .tips-box[open] summary{margin-bottom:12px}
  .tips-box summary .role-more{display:inline}
  .reset-split .auth-side .exp{margin-top:12px}
}
/* ---------- status v3 ---------- */
.cron-hist{display:flex;align-items:flex-end;gap:3px;height:46px;margin-top:12px;padding:4px;background:#f6f7fa;border-radius:10px}
.cron-hist span{flex:1;min-width:3px;border-radius:3px 3px 1px 1px}
.cron-hist span.ok{background:#8fd4aa}.cron-hist span.err{background:#d64545}
.cron-hist span:hover{filter:brightness(.85)}
.hist-legend{margin-top:6px!important}
details.st-group summary{list-style:none;cursor:pointer;margin-bottom:0}
details.st-group summary::-webkit-details-marker{display:none}
details.st-group[open] summary{margin-bottom:8px}
details.st-group .chev{color:#a0a3ad;font-size:12px;transition:transform .15s;margin-left:6px}
details.st-group[open] .chev{transform:rotate(180deg)}
details.st-group summary .status{margin-left:auto}
details.st-group.has-bad{border-color:#f3c9c9}
.sync-card .hist-legend b{display:inline;font-size:12px}
/* ---------- link inválido v3 ---------- */
.notice.state-member .notice-icon{background:#eaf7ef;color:#2e9d5b}.notice.state-member .notice-icon::after{border-color:#cfe9d8}
.ask .contact{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin:0 0 10px}
.ask .contact .avatar{flex:0 0 30px;height:30px;font-size:12px;background:var(--ink);color:#fff}
.ask .contact b{display:block;color:var(--ink);font-size:13px}.ask .contact small{display:block;color:var(--muted);font-size:12px}
@media(max-width:500px){.ask-actions{display:grid;grid-template-columns:1fr 1fr}.ask-actions .btn{justify-content:center;padding:10px 8px}}
/* ---------- login v4 ---------- */
.alert.info{background:#f0f4ff;color:#2d3a6b}
.known-user{display:flex;align-items:center;gap:12px;background:#f6f7fa;border:1px solid var(--line);border-radius:14px;padding:10px 14px}
.known-user .avatar{flex:0 0 36px;height:36px;background:var(--ink);color:#fff;font-size:14px}
.known-user>div{flex:1;min-width:0}.known-user small{display:block;color:var(--muted);font-size:11px;font-weight:700}
.known-user b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ---------- configurações v4 ---------- */
.more-menu{position:relative}
.more-menu summary{list-style:none;min-width:34px;justify-content:center;font-size:16px;line-height:1;padding:7px 10px}
.more-menu summary::-webkit-details-marker{display:none}
.more-menu .menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px #2729371f;padding:6px;min-width:230px;display:grid}
.more-menu .menu form{margin:0}
.more-menu .menu button{width:100%;text-align:left;background:none;border:0;padding:10px 12px;border-radius:8px;font:inherit;font-size:13px;font-weight:650;color:var(--ink);cursor:pointer}
.more-menu .menu button:hover{background:#f6f7fa}.more-menu .menu button.danger{color:#9b2222}
.timeline-log{list-style:none;margin:0;padding:0;width:100%;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.timeline-log li{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-top:1px solid var(--line);font-size:13px}
.timeline-log li:first-child{border-top:0}
.tl-ic{flex:0 0 30px;height:30px;border-radius:50%;background:#f6f7fa;display:flex;align-items:center;justify-content:center;font-size:14px}
.timeline-log b{font-weight:750}.timeline-log small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.tl-detail{background:#f6f7fa;border-radius:6px;padding:1px 6px;font-weight:650}
#atividade{scroll-margin-top:20px}
@media(max-width:600px){.li .grow{min-width:0;flex-basis:calc(100% - 54px)}.li form[data-autosubmit]{margin-left:50px}}
.timeline-log li.extra{display:none}.timeline-log.all li.extra{display:flex}
/* ---------- painel v5: resultado ---------- */
.result-card{margin-top:14px;padding:22px 26px}
.result-main{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center}
.result-main small{display:block;color:var(--muted);font-size:12px;font-weight:700}
.result-main strong{display:block;font-size:30px;letter-spacing:-.8px;margin:4px 0 8px;color:#1d6b3b;white-space:nowrap}
.result-main strong.neg{color:#9b2222}
.result-bar{display:flex;height:16px;border-radius:99px;overflow:hidden;background:#f0f1f5;margin:8px 0}
.result-bar span{display:block;height:100%}
.seg-fee{background:#f5b74a}.seg-cost{background:#7b7e89}.seg-profit{background:#2e9d5b}
.result-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#5d606c}
.result-legend span{display:inline-flex;align-items:center;gap:6px}
.result-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}
.result-note{margin:12px 0 0;font-size:12px;color:var(--muted)}
.result-note a{color:#bb6a36;font-weight:700}
.txt-ok{color:#1d6b3b}
@media(max-width:800px){.result-main{grid-template-columns:1fr;gap:12px}.result-main strong{font-size:26px}}
/* ---------- painel gerencial: abas, filtros ---------- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:4px 0 16px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a{padding:11px 16px;font-size:14px;font-weight:750;color:#7b7e89;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--ink);border-bottom-color:var(--rinu-orange)}
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:0 0 18px}
.filters label{display:flex;flex-direction:column;gap:4px;min-width:0}
.filters label>span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.filters .select.sm{min-width:150px;max-width:230px}
.filters .f-dates{display:flex;gap:10px}
.filters .f-dates[hidden]{display:none}
.input.sm{height:34px;padding:0 10px;font-size:12px;margin:0;border-radius:10px}
.filters .f-prod .input{width:170px}
.filters .btn.sm{height:34px}
.f-clear{font-size:12px;font-weight:750;color:var(--muted);display:inline-flex;align-items:center;height:34px;padding:0 6px;align-self:flex-end;text-decoration:underline}
.history-note{background:#fff8e6;border:1px solid #f5e2b3;color:#7a5b10;border-radius:12px;padding:10px 14px;font-size:12.5px;margin:-6px 0 16px}
@media(max-width:700px){.filters{padding:12px}.filters label{flex:1 1 calc(50% - 10px)}.filters .select.sm,.filters .f-prod .input{min-width:0;max-width:none;width:100%}.filters .f-dates{flex:1 1 100%}.filters .f-dates label{flex:1}.filters .btn.sm{flex:1 1 auto;justify-content:center}}
/* itens mais vendidos */
.top-card{display:flex;flex-direction:column}
.top-item{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
.top-item:last-of-type{border-bottom:0}
.top-item .rank{flex:0 0 24px;height:24px;border-radius:50%;background:#f3f4f7;color:#6b6f7c;font-size:11px;font-weight:850;display:flex;align-items:center;justify-content:center}
.top-item.top3 .rank{background:#fff1e8;color:#c4642a}
.top-item .grow{flex:1;min-width:0}
.top-item .grow b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;line-height:1.3;font-size:13px}
.top-item .grow small{display:block;color:var(--muted);font-size:11px;margin-top:1px}
.top-item .meter{height:4px;margin-top:6px}
.top-item .right{flex:0 0 auto;text-align:right}
.top-item .right b{display:block;font-size:13px}.top-item .right small{color:var(--muted);font-size:11px}
.more-link{margin-top:auto;padding-top:12px;font-size:12px;font-weight:750;color:#c4642a}
.tag-full{display:inline-block;background:#e9f6ee;color:#1d7a43;font-size:10px;font-weight:850;padding:1px 6px;border-radius:5px;letter-spacing:.03em}
.seg-ship{background:#6c8fd9}

/* ---------- vendas / financeiro ---------- */
.kpis-5{grid-template-columns:repeat(5,1fr)}
@media(max-width:1050px){.kpis-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.kpis-5{grid-template-columns:1fr 1fr}}
.hint.left{text-align:left}
.meter.thin{height:4px;margin-top:6px}
.meter.ok span{background:#2e9d5b}
table.compact td,table.compact th{padding:9px 8px}
.break-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}
.break-grid>*{min-width:0}
.break-card{padding:24px}
@media(max-width:950px){.break-grid{grid-template-columns:1fr}}
.goal-card{margin:16px 0;padding:26px}
.goal-hero{margin-bottom:6px}
.goal-nums{display:flex;gap:34px;flex-wrap:wrap;margin-bottom:16px}
.goal-nums small{display:block;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.06em}
.goal-nums b{display:block;font-size:24px;letter-spacing:-.6px;margin-top:4px}
.goal-track{position:relative;height:18px;border-radius:99px;background:#f0f1f5;margin:26px 0 10px}
.goal-track .gt-real{position:absolute;left:0;top:0;bottom:0;background:var(--rinu-orange);border-radius:99px}
.goal-track .gt-proj{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,#f6c3a2 0 6px,#fbe0cf 6px 12px);border-radius:0 99px 99px 0}
.goal-track .gt-meta{position:absolute;top:-8px;bottom:-8px;width:2px;background:var(--ink);font-style:normal}
.goal-track .gt-meta em{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:850;font-style:normal;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}
.goal-track .gt-today{position:absolute;top:2px;bottom:2px;width:2px;background:var(--ink);opacity:.55}
.goal-msg{margin:6px 0 4px;font-size:13.5px;color:#4b4e5a}
.dre{width:100%;font-size:13.5px}
.dre td{padding:10px 6px;border-bottom:1px solid var(--line)}
.dre td small{display:block;color:var(--muted);font-size:11px;font-weight:500}
.dre .r{text-align:right;white-space:nowrap}
.dre tr.neg td:nth-child(2){color:#9b2222}
.dre tr.sub td{font-weight:800;background:#fafafc}
.dre tr.total td{font-weight:850;font-size:15px;border-bottom:0;background:#f3faf6}
.fin-row{grid-template-columns:1.2fr 1fr}
.mk-row{display:grid;grid-template-columns:1fr;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}
.mk-row.soon{opacity:.6;border-bottom:0}
.mk-name{display:flex;gap:12px;align-items:center}
.mk-name b{display:block;font-size:14px}.mk-name small{color:var(--muted);font-size:12px}
.mk-bar{display:flex;height:10px;border-radius:99px;background:#f0f1f5;overflow:hidden}
.mk-bar span{display:block;height:100%}
.mk-dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}
.mk-dl dt{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.mk-dl dd{margin:0;grid-row:2;font-size:14px}.mk-dl dd small{display:block;color:var(--muted);font-size:11px}
.mini-h{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:16px 0 6px}
.mini-line{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:6px 0;border-bottom:1px dashed var(--line)}
.mini-line span{color:#5d606c;font-size:12px;text-align:right}
.empty-fin{border-style:dashed;box-shadow:none}
.empty-fin b{font-size:14px}.empty-fin p{margin:6px 0 0}
.legend{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#5d606c}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.lg-r,.dual-chart .r{background:#2e9d5b}.lg-p,.dual-chart .p{background:#d9634a}
.dual-chart{display:grid;grid-template-columns:repeat(9,1fr);gap:10px;align-items:end;margin-top:10px}
.dc-col{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.dc-bars{height:170px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid var(--line)}
.dc-bars span{display:block;width:40%;max-width:22px;border-radius:4px 4px 0 0;min-height:1px}
.dc-col b{font-size:11px;color:#5d606c}.dc-col small{font-size:10px;font-weight:750}
.dc-col.venc b{color:#9b2222}
@media(max-width:700px){.dual-chart{gap:4px}.dc-bars{height:120px}.dc-col small{letter-spacing:-.3px}.goal-nums{gap:18px}.goal-nums b{font-size:19px}}
.txt-ok{color:#1d6b3b}
.kpis-5 .kpi strong{font-size:21px;letter-spacing:-.6px;white-space:nowrap}
.pname small{display:block}
.break-card table.compact{font-size:12.5px}
.split-row.even{grid-template-columns:1fr 1fr}@media(max-width:950px){.split-row.even{grid-template-columns:1fr}}
/* ---------- estoque / devoluções / configurações ---------- */
.stock-row{grid-template-columns:1fr 1fr}
@media(max-width:950px){.stock-row{grid-template-columns:1fr}}
.fc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.fc{background:#fafafc;border:1px solid var(--line);border-radius:12px;padding:12px}
.fc:first-child{background:#fff5ef;border-color:#f7d9c5}
.fc small{display:block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.fc b{display:block;font-size:18px;letter-spacing:-.4px;margin:6px 0 2px;white-space:nowrap}
.fc span{font-size:11px;color:var(--muted)}
@media(max-width:600px){.fc-grid{grid-template-columns:1fr 1fr}}
.dep-row{display:block;padding:10px 10px;margin:0 -10px;border-radius:10px}
.dep-row:hover,.dep-row.on{background:#fafafc}
.dep-row.on{outline:1px solid #f3c7ad}
.dep-top{display:flex;align-items:center;gap:8px;font-size:13px}
.dep-top .grow{flex:1}
.dep-row small{color:var(--muted);font-size:11px}
.muted-pill{background:#f0f1f5;color:#5d606c}
.dep-alert{display:block;margin-top:12px;padding:10px 12px;border-radius:10px;background:#fff8e6;color:#7a5b10;font-size:12.5px}
.sortline{font-size:12px;color:var(--muted);margin:-4px 0 10px;display:flex;gap:12px;flex-wrap:wrap}
.sortline a{font-weight:750;color:var(--muted)}.sortline a.on{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.cnt-badge{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:99px;background:#f0f1f5;color:#5d606c;font-size:10px;text-align:center}
.cnt-badge.bad{background:#d64545;color:#fff}
.seg a.on .cnt-badge{background:#fff;color:var(--ink)}
.seg a.on .cnt-badge.bad{background:#d64545;color:#fff}
tr.row-bad td{background:#fff6f6}
.ret-meter{position:relative;height:6px;border-radius:99px;background:#f0f1f5;margin-bottom:6px}
.ret-meter span{display:block;height:100%;border-radius:99px;background:#2e9d5b}
.ret-meter.warn span{background:#e0a020}.ret-meter.bad span{background:#d64545}
.ret-meter i{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.5}
.limit-form{display:inline-flex;align-items:center;gap:4px;margin:0}
.limit-form .input{width:58px;text-align:right}
.limit-form i{font-style:normal;color:var(--muted);font-size:12px}
.limit-form .btn{padding:0 10px}
.legend-over{color:#9b2222}
.bar.over span{background:#d64545}
.gform{display:grid;gap:14px}
.gform .field{margin:0}
.gform .field b{display:block;font-size:13px}
.gform .field small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.gform-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:700px){.gform-3{grid-template-columns:1fr}}
.suffix{position:relative;display:block}
.suffix i{position:absolute;right:12px;top:50%;transform:translateY(-30%);font-style:normal;color:var(--muted);font-size:12px;pointer-events:none}
.gform button,.goals-form button{justify-self:start}
.goals-form{display:grid;gap:14px}
.goals-grid{display:grid;grid-template-columns:1.2fr 1.3fr .8fr;gap:6px 10px;align-items:center}
.goals-grid .gh{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.goals-grid .gm{font-size:13px;font-weight:650}
.goals-grid .gm.now{color:#c4642a}
.goals-grid .gm.now::after{content:" • atual";font-size:11px;font-weight:600}
.goals-grid .input.sm{width:100%}
.fc b,.goal-nums b{overflow:hidden}.pname small{font-weight:500;color:var(--muted)}
/* menu do topo com as abas do painel */
.head nav a{padding:6px 2px;border-bottom:2px solid transparent;white-space:nowrap}
.head nav a:hover{color:var(--ink)}
.head nav a.on{color:var(--ink);border-bottom-color:var(--rinu-orange)}
@media(max-width:1100px){.head{height:auto;padding:16px 0;flex-wrap:wrap;gap:10px}.head nav{width:100%;gap:16px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;padding-bottom:2px}.head nav::-webkit-scrollbar{display:none}}
@media(max-width:1100px){.head nav>*{flex-shrink:0}.head nav .ws-badge{max-width:150px}}
.tiny-kv{max-width:460px;margin:14px 0 14px 2px}
.tiny-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tiny-actions form{margin:0}
.link-under{text-decoration:underline;text-underline-offset:3px;color:var(--link)}
.unmatched-card{margin:16px 0;display:grid;grid-template-columns:1fr 1fr;column-gap:34px}
.unmatched-card>.card-head,.unmatched-card>p{grid-column:1/-1}
@media(max-width:800px){.unmatched-card{grid-template-columns:1fr}}
.gform-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:700px){.gform-2{grid-template-columns:1fr}}.seg-tax{background:#b58ad6}
.rep-flag{display:inline-flex;align-items:center;cursor:help;line-height:0}.dash-head h1 .rep-flag svg{width:30px;height:30px}.li .rep-flag{vertical-align:-5px;margin-left:2px}.li .rep-flag svg{width:18px;height:18px}
.export-group{display:inline-flex;align-items:center;border:1px solid #e4e6ec;border-radius:10px;background:#fff;overflow:hidden;font-size:12px;font-weight:750}
.export-group span{padding:0 10px 0 12px;color:var(--muted)}
.export-group a{padding:8px 11px;border-left:1px solid #e4e6ec;color:#424651}
.export-group a:hover{background:#fff5ef;color:#c4642a}

/* logotipo (SVG vetorial, rebrand 2026) */
.rinu-brand{display:inline-flex;align-items:center;line-height:0}
.rinu-logo{display:block;height:36px;width:auto}
@media(max-width:500px){.head .rinu-logo{height:30px}}
/* projeção de compras: "comprar agora" em destaque e os 3 horizontes embaixo, sem vazar do card */
.fc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.fc{min-width:0}
.fc b{overflow:hidden}
.fc:first-child{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:12px}
.fc:first-child small{flex-basis:100%}
.fc:first-child b{font-size:24px;margin:6px 0 0}
@media(max-width:600px){.fc-grid{grid-template-columns:1fr}.fc:not(:first-child){display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px}.fc:not(:first-child) small{flex-basis:100%}}
/* tabela de anúncios: cabe na tela sem rolar para o lado */
table.listings td:first-child{min-width:0}
table.listings .item{min-width:220px;max-width:340px}
.item-txt{min-width:0}
.item-txt a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
.item-txt small{display:block;margin-top:3px}
table.listings .share{display:block;margin-top:5px;margin-left:auto;max-width:110px}
.txt-warn{color:#a8650b;font-weight:700}
.thumb{overflow:hidden;background:#f6f7fa}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
/* itens mais vendidos: foto com a posição no canto */
.top-thumb{position:relative;width:40px;height:40px;flex:0 0 40px;border-radius:9px;overflow:visible}
.top-thumb img{border-radius:9px}
.top-thumb .rank{position:absolute;left:-6px;top:-6px;width:20px;height:20px;flex:none;font-style:normal;font-size:10px;border:2px solid #fff}
/* foto do anúncio nas listas de produtos */
.prod{display:flex;align-items:center;gap:12px;min-width:220px}
.prod .thumb{width:40px;height:40px;flex:0 0 40px;border-radius:9px}
.prod .pname,.prod>div:last-child{min-width:0}
.prod{min-width:190px}
table.compact .prod{min-width:150px}
.prod .pname b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:inherit}
table.compact td,table.compact th{padding:9px 6px}
table.compact td:first-child{min-width:110px}
.split-row.even>.card{padding:26px}
/* reputação oficial do ML (Devoluções) */
.rep-card{margin:0 0 16px;padding:24px 26px}
.rep-row{display:grid;grid-template-columns:1.3fr 1.4fr 1fr 1fr;gap:18px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.rep-name b{font-size:14px}.rep-name small{display:block;color:var(--muted);font-size:12px}
.rep-name .rep-flag{vertical-align:-5px}.rep-name .rep-flag svg{width:18px;height:18px}
.rep-metric small{display:block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.rep-metric b{display:block;font-size:20px;letter-spacing:-.4px;margin:2px 0}
.rep-metric span{font-size:11.5px;color:var(--muted)}
.rep-metric .ret-meter{display:block;margin-top:6px;max-width:160px}
@media(max-width:800px){.rep-row{grid-template-columns:1fr 1fr}.rep-name{grid-column:1/-1}}
/* menu ⋯ da equipe: a lista não pode cortar o menu aberto */
.list:has(.more-menu){overflow:visible}
.list:has(.more-menu)>.li:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}
.list:has(.more-menu)>.li:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}
.more-menu[open]{z-index:30}

/* ===================================================================
   Revisão de UX (nov/2026). Cada bloco abaixo pertence a uma área.
   Regras novas entram ANTES da linha "fim" do bloco da área.
   Estilos de uma página só usam o prefixo da página no <body>: .pg-dashboard, .pg-vendas, .pg-financeiro,
   .pg-estoque, .pg-devolucoes, .pg-tiny, .pg-settings, .pg-status, .pg-home (login), .pg-invite, .pg-reset
   =================================================================== */
/* ===== UX global: componentes compartilhados ===== */
/* glb-a T1: estados vazios e helpers compartilhados (plain-steps, empty-box, chart-empty, empty-row, table-more, table-note) */
.plain-steps{margin:0 0 16px;padding-left:20px;color:var(--muted);font-size:14px;line-height:1.7}
.card.empty-box{margin:16px 0}
.chart-empty{align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:12px}
.chart-empty p{margin:0;padding:0 16px;color:var(--muted);font-size:13px;text-align:center}
table.items td.empty-row{text-align:center;color:var(--muted);padding:28px 8px}
.table-more{margin:12px 0 0;font-size:12.5px;color:var(--muted)}
.table-note{margin:-6px 0 12px;font-size:12.5px;color:var(--muted)}
.bars-axis.one{justify-content:center}
.btn[aria-busy="true"]{cursor:progress}
/* "Sincronizando…" legível enquanto roda: o .btn:disabled (opacity .5) deixava o texto branco em 1,7:1; com .85 fica perto do botão normal e ainda parece apertado */
.btn[aria-busy="true"]:disabled{opacity:.85}
/* glb-b T3 (C1): tabela empilhada. <table class="items stack"> empilha até 700px; "stack wide" até 950px.
   1ª célula na linha toda, as outras com o nome da coluna em cima (data-label, copiado do cabeçalho pelo app.js).
   Ganchos: td.stack-hide (some só empilhada), td.stack-lead (logo depois do nome), td.stack-full (linha toda), tr.row-bad (fundo rosa contínuo). */
@media(max-width:950px){
table.stack.wide,table.stack.wide>tbody{display:block}
table.stack.wide tr:has(>th){display:none}
table.stack.wide tr{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
table.stack.wide tr:last-child{border-bottom:0}
table.stack.wide td{display:block;border:0;padding:0!important;min-width:0!important;text-align:left!important;white-space:normal}
table.stack.wide td:first-child,table.stack.wide td[colspan]{grid-column:1/-1}
table.stack.wide td:first-child{order:-2}
table.stack.wide td.stack-lead{order:-1}
table.stack.wide td.stack-full{grid-column:1/-1}
table.stack.wide tr.row-bad{background:#fff6f6;box-shadow:-10px 0 #fff6f6,10px 0 #fff6f6}
table.stack.wide tr.row-bad td{background:none}
table.stack.wide td[colspan]{text-align:center!important;padding:16px 0!important}
table.stack.wide td[data-label]::before{content:attr(data-label);display:block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;white-space:normal}
table.stack.wide .prod,table.stack.wide .item{min-width:0;max-width:none}
table.stack.wide td:first-child b{overflow-wrap:anywhere}
table.stack.wide .share{margin-left:0}
table.stack.wide .stack-hide{display:none}
table.stack.wide td .nw{white-space:normal}
.table-wrap:has(>table.stack.wide){overflow:visible}
}
@media(max-width:700px){
table.stack,table.stack>tbody{display:block}
table.stack tr:has(>th){display:none}
table.stack tr{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
table.stack tr:last-child{border-bottom:0}
table.stack td{display:block;border:0;padding:0!important;min-width:0!important;text-align:left!important;white-space:normal}
table.stack td:first-child,table.stack td[colspan]{grid-column:1/-1}
table.stack td:first-child{order:-2}
table.stack td.stack-lead{order:-1}
table.stack td.stack-full{grid-column:1/-1}
table.stack tr.row-bad{background:#fff6f6;box-shadow:-10px 0 #fff6f6,10px 0 #fff6f6}
table.stack tr.row-bad td{background:none}
table.stack td[colspan]{text-align:center!important;padding:16px 0!important}
table.stack td[data-label]::before{content:attr(data-label);display:block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;white-space:normal}
table.stack .prod,table.stack .item{min-width:0;max-width:none}
table.stack td:first-child b{overflow-wrap:anywhere}
table.stack .share{margin-left:0}
table.stack .stack-hide{display:none}
table.stack td .nw{white-space:normal}
.table-wrap:has(>table.stack){overflow:visible}
}
/* glb-b T4 (C3): grade de KPIs sem cartão sozinho. Acima de 950px o principal (escuro) fica na coluna larga também quando é o último
   (Vendas, Financeiro); até 950px o cartão que sobraria sozinho ocupa a linha; a grade de 5 (Vendas com desconto) fecha a 2ª linha até 1050px. */
@media(min-width:951px){.kpis:not(.kpis-5):has(>.kpi.main:last-child){grid-template-columns:1fr 1fr 1fr 1.3fr}}
@media(max-width:950px){.kpis>.kpi.main:first-child~.kpi:nth-child(4):last-child{grid-column:1/-1}.kpis:not(.kpis-5):has(>.kpi.main:nth-child(4):last-child)>.kpi:nth-child(3){grid-column:1/-1}}
@media(min-width:701px) and (max-width:1050px){.kpis-5>.kpi.main{grid-column:span 2}}
/* glb-b T2 (C16): linhas de cards em uma coluna até 950px (classe dupla: vence a ordem do arquivo, ex.: .fin-row) e 16px entre blocos */
@media(max-width:950px){.dash-row.fin-row,.dash-row.split-row,.dash-row.stock-row{grid-template-columns:1fr}}
.kpis+.card{margin-top:16px}
/* glb-b T8 (C4): um cinza de apoio (--muted #6b6e7a) e um laranja de texto (#a65a28, --link) */
.pill:not(.muted-pill),.tiny-strip .tag,.overline:not(.light),.banner b,.ask b,.forgot>b,.notice .next b,.ws-badge,code,.chips span,.avatar.tiny,.tag-tiny,.top-item.top3 .rank,.goals-grid .gm.now{color:#a65a28}
.kpi.main .kpi-sub{color:#a7a9b4}
.sku{color:var(--muted)}
.pv-note{color:#9a9cab}
.setup-steps .ck,.set-nav .cnt{color:#5d606c}
.st-problems span{color:var(--muted)}.st-summary p{color:#5d606c}.perms li.no{color:#9a9cab}
/* glb-b T10 (C6): alvos de toque de 40px no celular (controles soltos; links dentro de frases ficam isentos) e foco visível em var(--link) */
.seg a:focus-visible,.chipnav a:focus-visible,.sortline a:focus-visible{outline:2px solid var(--link);outline-offset:-2px}
@media(max-width:700px){
.btn.sm{min-height:40px}
.select.sm,.input.sm,.filters .btn.sm{height:40px}
.seg a,.seg.sm a{display:inline-flex;align-items:center;min-height:40px;padding:0 12px}
.chipnav a{min-height:40px}
.sortline{align-items:center;gap:0 14px}
.sortline a{display:inline-flex;align-items:center;min-height:40px}
.f-clear{height:40px}
.more-link,.tiny-strip a{display:inline-flex;align-items:center;min-height:40px}
table.items td:first-child>a.link-under{display:inline-block;padding:13px 0;margin:-7px 0}
.card-head .link-under{padding:8px 0}
}
@media(max-width:800px){.pw-toggle{min-height:40px;min-width:64px}.linkbtn{padding:10px 4px;margin:-10px -4px}.tips-box summary{padding:8px 0}}
/* menu do topo: "Sair" no mesmo padrão das abas; o selo da loja não fica espremido */
.head nav button.link{padding:6px 2px;border-bottom:2px solid transparent;white-space:nowrap}
.head nav button.link:hover{color:var(--ink)}
.head nav a.ws-badge{padding:5px 10px}
@media(max-width:1100px){.head nav a:not(.ws-badge),.head nav button.link{padding:11px 2px}}
/* glb-b T11 (C16): um recuo só nos cards, 26px (20px até 500px); cards de uma página só voltam ao padrão aqui */
.result-card,.break-card,.goal-card,.rep-card,.split-row.even>.card,.card.empty-box{padding:26px}
@media(max-width:500px){.result-card,.break-card,.goal-card,.rep-card,.split-row.even>.card,.card.empty-box{padding:20px}}
/* glb-b T9 (C5): links que parecem links (sublinhados, em var(--link)); nos avisos .alert o link fica na cor do texto do aviso */
.link-under,.hint a:not(.btn),.kpi-sub a,.dre small a,.result-note a,.history-note a,.table-more a,.table-note a,.plain a:not(.btn),.empty-box small a,.mini-line a{color:var(--link);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.kpi.main .kpi-sub a{color:#f0a678}
.alert a:not(.btn){color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.more-link,.tiny-strip a{color:var(--link)}
/* glb-b T13 (C23): dígitos tabulares nas colunas de valores e nos números dos cartões (colunas alinhadas dígito a dígito).
   A 1ª célula (nome do produto, SKU, marca, mês) e o nome da conta ficam proporcionais: com a Inter o tabular também alarga o hífen de "SKU-29". */
table td:not(:first-child),.kpi strong,.fc b,.goal-nums b,.alert-tile b,.acc-top>span,.top-item .right,.delta,.mk-dl dd,.dc-col small{font-variant-numeric:tabular-nums}
/* glb-a T6 (set-24): Salvar do bloco com alterações não salvas em destaque */
form.dirty button[type=submit]{box-shadow:0 0 0 3px #ec78304d}
/* glb-a T7 (C12): barra de filtros. Produto + Aplicar + Limpar num grupo (div.f-search); no celular só Período e "Mais filtros" */
.filters .f-search{display:contents}
@media(min-width:701px){.filters .f-search{display:flex;align-items:flex-end;gap:10px;flex:1 1 190px;max-width:420px;min-width:0}.filters .f-search .f-prod{flex:1 1 110px}.filters .f-search .f-prod .input{width:100%}}
/* com "Limpar" o grupo pede mais espaço: em vez de espremer o Produto ("SKU o"), desce inteiro para a 2ª linha (Estoque com Armazém, 951-1050px) */
@media(min-width:701px){.filters .f-search:has(.f-clear){flex-basis:260px}}
/* celular: o Armazém na linha toda mostra a opção inteira ("Avariados (fora do total)") */
@media(max-width:700px){.filters label:has(>select[name=armazem]){flex-basis:100%}}
.filters .f-toggle{display:none}
@media(max-width:700px){.filters .btn.sm.f-toggle{display:inline-flex;flex:1 1 calc(50% - 10px);justify-content:center}.filters:not(.open)>label:not(.f-period),.filters:not(.open)>.f-search{display:none}}
/* glb-a T12 (C21): "Pular para o conteúdo" aparece no 1º Tab; o <main> recebe o foco do salto sem contorno */
.skip{position:absolute;left:-999px;top:8px}.skip:focus{left:16px;z-index:60;background:#fff;color:var(--ink);padding:10px 14px;border-radius:10px;box-shadow:0 8px 24px #2729371f;font-weight:750}main:focus{outline:none}
/* C2 em telas muito estreitas (320px): KPIs com recuo lateral menor, para valores de 6 dígitos em meia largura caberem sem "…" */
@media(max-width:340px){.kpi{padding:16px 14px}}
/* ===== fim: UX global ===== */
/* ===== UX Visão geral ===== */
/* dash-27: Por dia da semana no celular mostra o valor curto (1,1 mil) em cima de cada barra, no lugar do valor em R$ */
.pg-dashboard .wk .wv-s{display:none}
@media(max-width:500px){.pg-dashboard .wk .wv-s{display:block;font-size:10px;color:var(--muted);white-space:nowrap}.pg-dashboard .wk.best .wv-s{color:var(--ink);font-weight:800}}
/* dash-new-1: barra do dia, semana ou mês incompleto (em andamento ou cortado pelo período) listrada */
.pg-dashboard .bar.partial span{background:repeating-linear-gradient(135deg,var(--rinu-orange) 0 4px,#f6c3a2 4px 8px);min-height:3px}
.pg-dashboard .legend-partial{white-space:nowrap}
.pg-dashboard .legend-partial::before{content:"";display:inline-block;width:10px;height:10px;margin-right:5px;vertical-align:-1px;border-radius:2px;background:repeating-linear-gradient(135deg,var(--rinu-orange) 0 3px,#f6c3a2 3px 6px)}
/* dash-21: Atenção logo depois dos números (antes do gráfico) */
.pg-dashboard .dash-attn{margin-top:18px}
/* apelido do ML longo (sem espaços) no título: quebra depois de cada "_" (<wbr> no dashboard.php) ou dentro da palavra, em vez de empurrar a página para o lado no celular */
.pg-dashboard .dash-head>div{min-width:0}
.pg-dashboard .dash-head h1{overflow-wrap:anywhere}
/* tabela de anúncios empilhada (até 950px): no Estoque, "ML" e "Tiny próprio: 57" em linhas próprias, sem o "·" sobrando no fim da linha */
@media(max-width:950px){.pg-dashboard table.listings .stk-tiny{display:block}.pg-dashboard table.listings .stk-sep{display:none}}
/* ===== fim: UX Visão geral ===== */
/* ===== UX Vendas e Financeiro ===== */
/* Produtos vendidos logo acima do empilhamento (701-800px): o nome do produto cede espaço para os valores não rolarem de lado */
@media(min-width:701px) and (max-width:800px){.pg-vendas #produtos .prod{min-width:0}.pg-vendas #produtos table.items td:first-child{min-width:120px}.pg-vendas #produtos table.items td,.pg-vendas #produtos table.items th{padding-left:6px;padding-right:6px}}
/* idem com a coluna "Bruto / desc." (período com desconto, 7 colunas): recuos menores de 701 a 850px */
@media(min-width:701px) and (max-width:850px){.pg-vendas #produtos table.has-disc .prod{min-width:0}.pg-vendas #produtos table.has-disc td:first-child{min-width:120px}.pg-vendas #produtos table.has-disc td,.pg-vendas #produtos table.has-disc th{padding-left:4px;padding-right:4px}}
/* Menores margens em meia largura (951-1100px): idem, para a coluna Faturamento caber */
@media(min-width:951px) and (max-width:1100px){.pg-financeiro .split-row .prod{min-width:0}}
/* Quebras de Vendas em meia largura: apelido longo do ML quebra; logo acima de 950px "tarifas e frete" desce para baixo do valor */
.pg-vendas .break-card td:first-child b{overflow-wrap:anywhere}
@media(min-width:951px) and (max-width:990px){.pg-vendas .break-card td.nw small{white-space:normal}}
/* Metas: legenda da barra (realizado, projeção, esperado até hoje) */
.pg-vendas .goal-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:#5d606c;margin:0 0 8px}
.pg-vendas .goal-legend span{display:inline-flex;align-items:center;gap:6px}
.pg-vendas .goal-legend i{display:inline-block;width:12px;height:8px;border-radius:3px}
.pg-vendas .goal-legend .gl-real{background:var(--rinu-orange)}
.pg-vendas .goal-legend .gl-proj{background:repeating-linear-gradient(45deg,#f6c3a2 0 3px,#fbe0cf 3px 6px)}
.pg-vendas .goal-legend .gl-today{width:2px;height:12px;border-radius:0;background:var(--ink);opacity:.55}
/* Quebras (Vendas) e Margem por marca / Menores margens (Financeiro): cartão sozinho na última linha ocupa a largura toda (abaixo de 950px já é 1 coluna) */
.pg-vendas .break-grid>.break-card:last-child:nth-child(odd){grid-column:1/-1}
.pg-financeiro .split-row.even>.card:only-child{grid-column:1/-1}
/* Próximas 8 semanas no celular: "Venc." no lugar de "Vencidos" e o saldo de cada semana visível */
.pg-financeiro .lg-short{display:none}
@media(max-width:600px){.pg-financeiro .dc-col .lg-long{display:none}.pg-financeiro .dc-col .lg-short{display:inline}}
@media(max-width:500px){.pg-financeiro .dc-col b{font-size:10px}}
@media(max-width:359px){.pg-financeiro .dual-chart{gap:2px}.pg-financeiro .dc-col b,.pg-financeiro .dc-col small{font-size:9px;letter-spacing:-.2px}}
/* Produtos vendidos: coluna da ordem atual marcada (o ▾ não entra no rótulo da tabela empilhada, que usa o textContent) */
.pg-vendas th.sorted{color:var(--ink)}
.pg-vendas th.sorted::after{content:"\a0▾";font-size:10px}
/* Financeiro, Por conta do Mercado Livre: apelido longo do ML quebra (depois de "_") em vez de passar da borda do card no celular */
.pg-financeiro .mini-line b{flex:none;max-width:60%;overflow-wrap:anywhere}
/* Financeiro no celular: "conecte o Tiny" e "informe a alíquota/o percentual" com área de toque de 40px sem mudar a linha (link inline) */
@media(max-width:700px){.pg-financeiro .kpi-sub a,.pg-financeiro .dre small a{padding:13px 0}}
/* Financeiro de 320 a 359px: Resultado do período com fonte e recuo menores, para os valores caberem sem rolar dentro do card */
@media(max-width:359px){.pg-financeiro .dre{font-size:12px}.pg-financeiro .dre td{padding:9px 4px}.pg-financeiro .dre tr.total td{font-size:13px}}
/* "Shopee, Amazon e outros · em breve": esmaecido pela cor do texto (legível), não pela opacidade da linha */
.pg-financeiro .mk-row.soon{opacity:1}
.pg-financeiro .mk-row.soon .mk-name b{color:#5d606c}
/* Margem por marca: nome de marca longo sem espaço quebra em vez de alargar a tabela */
.pg-financeiro .split-row td:first-child>b,.pg-financeiro .split-row td:first-child>a>b{overflow-wrap:anywhere}
/* Recebimentos × pagamentos: 4 cartões sem o escuro, então colunas iguais (a 1ª coluna larga é do cartão principal) */
@media(min-width:951px){.pg-financeiro #contas+.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* ===== fim: UX Vendas e Financeiro ===== */
/* ===== UX Estoque e Devoluções ===== */
/* Estoque: ajuda da visão escolhida, entre os chips e a linha de ordenação (ed-22) */
.pg-estoque .view-help{margin:-4px 0 10px}
/* depósito fora do total: o aviso no lugar da projeção fica do tamanho do texto, sem caixa tracejada vazia (ed-3) */
.pg-estoque .stock-row>.empty-fin{align-self:start}
/* "ver a lista" no celular: área de toque de 40px sem mudar a linha (ed-27) */
@media(max-width:700px){.pg-estoque .fc a.link-under{display:inline-block;padding:13px 0;margin:-13px 0}}
/* foco do teclado visível também no depósito selecionado (.dep-row.on tinha só o contorno pêssego de 1px) (ed-33) */
.pg-estoque .dep-row:focus-visible{outline:2px solid var(--link);outline-offset:1px}
/* nome de depósito longo e sem espaços (ex.: DEPOSITO_CENTRAL_SUL): quebra dentro do card e do título, sem rolagem lateral; selos e valor ficam inteiros */
.pg-estoque .dep-top b,.pg-estoque .section-title h2{min-width:0;overflow-wrap:anywhere}
.pg-estoque .dep-top>span:not(.grow){flex:none;white-space:nowrap}
/* Devoluções: rótulos das métricas da reputação na mesma altura (a coluna de Reclamações é mais alta por causa do medidor) (ed-11) */
.pg-devolucoes .rep-row{align-items:start}
.pg-devolucoes .rep-name{align-self:center}
/* celular: "Com devolução / Acima do limite" sempre alinhados à esquerda, com ou sem o grupo de exportação (lista vazia não exporta) */
@media(max-width:700px){.pg-devolucoes #produtos .head-actions{margin-left:0;width:100%}}
/* Devoluções por produto logo acima do empilhamento (701 a 740px): o nome cede largura e a tabela cabe sem rolar de lado (C1) */
@media(min-width:701px){.pg-devolucoes #produtos .prod{min-width:150px}}
/* selo "Acima do limite N": branco em #d64545 dava 4,4:1 (abaixo de AA); #c93a3a dá 5,1:1 (C4) */
.pg-devolucoes .cnt-badge.bad,.pg-devolucoes .seg a.on .cnt-badge.bad{background:#c93a3a}
/* celular: "alterar" (fim do subtítulo do card) e os links dentro das frases (Configurações, ver com os últimos 30 dias, CSV/Excel/PDF,
   Tiny ERP) com 40px de toque, sem mudar a linha (link inline) (C6) */
@media(max-width:700px){.pg-devolucoes #produtos .card-head small .link-under{padding:13px 0}.pg-estoque :is(.hint,.history-note,.table-more,.empty-box small) a:not(.btn),.pg-devolucoes .table-more a{padding:12px 4px;margin:0 -4px}}
/* KPIs até 950px: o 2º cartão (o valor em R$, o número mais longo) na linha toda e os dois últimos lado a lado, sem cartão sozinho (C3).
   Em 360px "R$ 12.842.504,00" cabia só cortado com "..." em meia largura (C2 para em 15px); Devoluções fica com "no período" lado a lado */
@media(max-width:950px){:is(.pg-estoque,.pg-devolucoes) .kpis>.kpi:nth-child(2){grid-column:1/-1}:is(.pg-estoque,.pg-devolucoes) .kpis>.kpi.main:first-child~.kpi:nth-child(4):last-child{grid-column:auto}}
/* Devoluções por produto empilhada: com "Valor devolvido" em 2 linhas, os valores da linha ficam na mesma altura (rótulo em cima, valor embaixo) */
@media(max-width:700px){.pg-devolucoes #produtos table.stack td.r{display:flex;flex-direction:column;justify-content:space-between}}
/* ===== fim: UX Estoque e Devoluções ===== */
/* ===== UX Tiny ERP e Status ===== */
/* Produtos no ERP empilhada (C1): nome; Disponível, Vendas 30d, Cobertura; Custo, Preço Tiny, Valor em estoque; Anúncios na linha toda */
@media(max-width:950px){.pg-tiny #produtos-erp table.stack td:nth-child(4),.pg-tiny #produtos-erp table.stack td:nth-child(5),.pg-tiny #produtos-erp table.stack td:nth-child(6){order:1}.pg-tiny #produtos-erp table.stack td:nth-child(2),.pg-tiny #produtos-erp table.stack td:nth-child(3),.pg-tiny #produtos-erp table.stack td:nth-child(8){order:2}.pg-tiny #produtos-erp table.stack td:nth-child(7){order:3;grid-column:1/-1}.pg-tiny #produtos-erp .dep-split{white-space:normal}}
/* De 951 a 1100px a tabela ainda é tabela e fica justa: o nome do produto cede largura (como table.compact), sem rolagem lateral */
@media(min-width:951px) and (max-width:1100px){.pg-tiny #produtos-erp .prod{min-width:150px}}
/* Conexão expirada ou autorização não concluída: reconectar com as chaves salvas */
.pg-tiny .reconnect{margin:6px 0 20px;border-color:#f3d9c8}.pg-tiny .reconnect h2{margin:0 0 6px}.pg-tiny .reconnect p{margin:0 0 14px}.pg-tiny .reconnect .hint{margin:12px 0 0}
/* Trocar chaves: aviso com "Cancelar" ao lado no computador e embaixo no celular */
.pg-tiny .trocar-note{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.pg-tiny .trocar-note>span{flex:1 1 320px}
/* Busca no celular: com "Limpar", o campo fica na linha toda e Buscar e Limpar lado a lado (Limpar nunca sozinho) */
@media(max-width:500px){.pg-tiny .search:has(>a.btn) .input{flex-basis:100%}.pg-tiny .search:has(>a.btn) .btn{flex:1 1 0;justify-content:center}}
/* Link dentro da frase da lista vazia: área de toque maior sem mudar a linha */
@media(max-width:700px){.pg-tiny table.items td.empty-row>a.link-under{display:inline;padding:12px 0}}
/* Anúncios sem vínculo: com o card em uma coluna, só os 4 mais vendidos ("Ver todos →" leva à lista completa; o 1º filho é o cabeçalho) */
@media(max-width:800px){.pg-tiny .unmatched-card>.order:nth-child(n+6){display:none}}
/* "Ver todos →" no tamanho dos outros links "ver mais" (o da Visão geral tem 12px), sem disputar com o título do card */
.pg-tiny .unmatched-card>.card-head .link-under{font-size:13px}
/* Celular: o título de cada anúncio sem vínculo ganha 40px de área de toque sem mudar a altura da linha (C6) */
@media(max-width:700px){.pg-tiny .unmatched-card .item a{display:inline-block;padding:12px 0;margin:-12px 0}}
/* Busca colada sem espaços (vários GTINs, um código longo): o termo repetido no subtítulo e na lista vazia quebra em vez de empurrar a página para o lado */
.pg-tiny #produtos-erp .card-head small,.pg-tiny #produtos-erp td.empty-row{overflow-wrap:anywhere}
/* Endereço de retorno: quebra depois das barras (<wbr>), não no meio da palavra; o link de convite de Configurações continua quebrando onde precisar */
.pg-tiny .copy-row code{word-break:normal;overflow-wrap:anywhere}
/* Status no celular: botões do resumo na largura toda e grupos com altura de toque (40px, C6) */
@media(max-width:500px){.pg-status .st-actions{width:100%;display:grid;grid-template-columns:1fr;gap:8px}.pg-status .st-actions .btn{justify-content:center}.pg-status details.st-group summary{min-height:40px}}
/* Apelido longo da conta do ML (sem espaços) quebra dentro do card em vez de criar rolagem lateral no celular */
.pg-status .sync-card b{overflow-wrap:anywhere}.pg-status .sync-card b>span{flex:none}
/* "← Voltar ao painel" / "← Voltar para Configurações" no fim da tela de conexão: link solto com 40px de toque no celular (C6) */
@media(max-width:700px){.pg-tiny .back-link{display:inline-flex;align-items:center;min-height:40px}}
/* Anúncios sem vínculo em uma coluna (até 800px): a linha "SKU ... não existe no Tiny · N vendidos" (nowrap) não define a largura mínima da coluna; a 320px o card passava da tela */
@media(max-width:800px){.pg-tiny .unmatched-card{grid-template-columns:minmax(0,1fr)}.pg-tiny .unmatched-card .order small{white-space:normal}}
/* Status no celular: as 48 barras do histórico do cron (3px + 3px de espaço) pediam 289px e passavam da tela abaixo de 360px; com 1px de espaço cabem até em 320px */
@media(max-width:500px){.pg-status .cron-hist{gap:1px}.pg-status .cron-hist span{min-width:2px}}
/* ===== fim: UX Tiny ERP e Status ===== */
/* ===== UX Configurações ===== */
/* aviso de salvo/erro movido para dentro da seção (app.js): largura toda, sem margem própria */
.pg-settings .set-body>.flash{width:100%;margin:0}
/* perfil Leitura: campos desabilitados parecem desabilitados (text-fill e opacity evitam o texto apagado do Safari) */
.pg-settings .input:disabled{background:#f6f7fa;color:#5d606c;-webkit-text-fill-color:#5d606c;opacity:1;border-color:var(--line);cursor:not-allowed}
/* celular: e-mail longo, nome de loja longo e selects não alargam o card (set-8) */
.pg-settings .set-main,.pg-settings .set-body{grid-template-columns:minmax(0,1fr)}
.pg-settings .set-body .inline .select{min-width:0;max-width:100%}
.pg-settings #loja-atual .inline .select{flex:1 1 180px}
.pg-settings .li .grow b,.pg-settings .li .grow small,.pg-settings .me-card b,.pg-settings .me-card small{overflow-wrap:anywhere}
.pg-settings .li .grow b>.pill{flex:none;white-space:nowrap;overflow-wrap:normal}
/* campos lado a lado na mesma altura, mesmo com dica de 2 linhas (set-10) */
.pg-settings .gform-2>.field,.pg-settings .gform-3>.field{display:flex;flex-direction:column}
.pg-settings .gform-2>.field>.suffix,.pg-settings .gform-3>.field>.suffix{margin-top:auto}
/* rótulo escuro, dica cinza e leve (set-11) */
.pg-settings .gform .field b{display:block;font-size:13px;color:var(--ink);font-weight:750}
.pg-settings .gform .field small{display:block;color:var(--muted);font-size:12px;margin-top:2px;font-weight:500}
/* valor junto da unidade; metas alinhadas à direita e grade na largura do card (set-12) */
.pg-settings .suffix .input{text-align:right;padding-right:34px}
.pg-settings .suffix.days .input{padding-right:50px}
.pg-settings .goals-grid .input.sm,.pg-settings .goals-grid .gh:not(:first-child){text-align:right}
.pg-settings .goals-grid .gh:not(:first-child){padding-right:11px}
.pg-settings .goals-grid .gh{white-space:nowrap}
.pg-settings .set-body>.goals-form{width:100%}
/* celular: a unidade do cabeçalho vai para a 2ª linha e o "• atual" para baixo do mês: o mês cabe numa linha e a grade não passa do card (360px) */
@media(max-width:500px){.pg-settings .goals-grid .gh{align-self:end}.pg-settings .goals-grid .gh .u{display:block}.pg-settings .goals-grid .gm.now::after{display:block}}
/* título da página na mesma posição e tamanho das outras abas (C25, glb-9) */
.pg-settings .page-head{display:flex;align-items:flex-end;margin:8px 0 28px}
.pg-settings .page-head h1{font-size:32px;margin:8px 0 4px}
@media(max-width:500px){.pg-settings .page-head h1{font-size:26px}}
/* menu de seções: marca a seção atual; no celular fica preso no topo (set-9) */
.pg-settings .set-nav a.on{background:#fff;color:var(--ink);box-shadow:inset 3px 0 0 var(--rinu-orange)}
@media(max-width:950px){
  .pg-settings .set-nav{position:sticky;top:0;z-index:15;background:var(--paper);padding:8px 0;scrollbar-width:none}
  .pg-settings .set-nav::-webkit-scrollbar{display:none}
  .pg-settings .set-main .set,.pg-settings #atividade,.pg-settings #minha-conta{scroll-margin-top:72px}
  .pg-settings .set-nav a.on{box-shadow:none;border-color:var(--rinu-orange);color:var(--ink)}
}
/* convites pendentes: o fundo creme respeita os cantos da lista; no celular a seta fica na linha do título (set-13) */
.pg-settings .list>.pending-group:last-child{overflow:hidden;border-radius:0 0 13px 13px}
@media(max-width:600px){.pg-settings .pending-group summary .status{display:none}.pg-settings .pending-group summary .grow{flex-basis:calc(100% - 76px)}}
/* Equipe: ⋯ com 40px de largura (alvo de toque); linha sem o ⋯ (a própria pessoa, o dono visto por um administrador): o papel fica na mesma coluna das outras linhas (⋯ de 40px + 12px) */
.pg-settings .more-menu summary{min-width:40px}
@media(min-width:601px){.pg-settings .li>form[data-autosubmit]:last-child{margin-right:52px}}
/* celular: chips do menu de seções e itens do ⋯ com 40px de altura (C6) */
@media(max-width:700px){.pg-settings .set-nav a{min-height:40px}.pg-settings .more-menu .menu button{min-height:40px}}
/* sem loja: o título do cartão é h2 (a página já tem o h1 "Configurações"), no tamanho de antes e sem o espaçamento apertado do h1 */
.pg-settings .card.login h2{font-size:26px;letter-spacing:-.5px;line-height:1.2;margin:18px 0 14px}
@media(max-width:500px){.pg-settings .card.login h2{font-size:22px}}
/* Atividade vazia: caixa tracejada na largura toda (set-19) */
.pg-settings .set-body>.empty-box{width:100%;border:1px dashed var(--line);border-radius:14px}
/* loja sem Tiny: a dica dos depósitos abre o formulário, sem a margem de cima da .hint (mesmo espaço das outras seções) */
.pg-settings .gform>input[type=hidden]+.hint{margin-top:0}
/* Tiny expirado: o nome da conta quebra a linha em vez de sumir em "…" no celular (o Client ID continua encurtado) */
.pg-settings .tiny-kv dd:not(.mono){white-space:normal;overflow-wrap:anywhere}
/* link gerado para um e-mail longo: o rótulo quebra dentro da caixa em vez de criar rolagem lateral no celular */
.pg-settings .link-box{grid-template-columns:minmax(0,1fr)}
.pg-settings .link-box>b{overflow-wrap:anywhere}
/* Client ID já encurtado no servidor ("tiny-api-abc…pi-abc"): em celular estreito (320 a 359px) quebra a linha em vez de perder o final com "…" */
@media(max-width:359px){.pg-settings .tiny-kv dd.mono{white-space:normal;overflow-wrap:anywhere}}
/* ===== fim: UX Configurações ===== */
/* ===== UX Entrada, convite e senha ===== */
/* e-mail lembrado longo: aparece inteiro (quebra em 2 linhas) em vez de alargar a coluna e cortar os botões (auth-4) */
:is(.pg-home,.pg-invite,.pg-reset) .auth-split>*,:is(.pg-home,.pg-invite,.pg-reset) .auth-form>*{min-width:0}
.pg-home .known-user b{white-space:normal;overflow-wrap:anywhere}
/* selo dos avisos de link: a bolinha acompanha a primeira linha quando o nome da loja quebra (auth-10) */
:is(.pg-invite,.pg-reset) .auth-card.notice .overline{display:block;line-height:1.6}
:is(.pg-invite,.pg-reset) .auth-card.notice .overline::before{display:inline-block;vertical-align:1px;margin-right:8px}
/* convite de equipe: o nome da loja é o h1 da página, no tamanho do antigo <b> (auth-27) */
.pg-invite .auth-side .store-card h1{font-size:18px;line-height:1.3;margin:0;letter-spacing:-.3px;color:var(--ink);overflow-wrap:anywhere}
/* títulos dos avisos de link e de "Senha alterada" sem letras grudadas, quebra equilibrada (auth-13) */
:is(.pg-invite,.pg-reset) .auth-card h1{letter-spacing:-.4px;text-wrap:balance}
/* destaque laranja do título nunca partido: "Mercado Livre!", "3 passos", "do seu jeito." (auth-15) */
:is(.pg-home,.pg-invite,.pg-reset) .auth-side h1 span{white-space:nowrap}
/* selo "só este e-mail" maior: o e-mail não passa por baixo dele (auth-26) */
.pg-invite .locked .input{padding-right:130px}
/* convite aberto já logado: "Você já faz parte desta loja" com o botão afastado do texto (auth-12) */
.pg-invite .auth-main>.plain+.btn.block{margin-top:18px}
/* loja nova no celular: painel escuro compacto como no login e na troca de senha, o formulário aparece antes (auth-11) */
@media(max-width:800px){
  .pg-invite .onboard .auth-side{padding:22px 22px 18px}
  .pg-invite .onboard .auth-side h1{font-size:22px;margin:8px 0 12px}
  .pg-invite .onboard .auth-side .by{margin-bottom:14px}
  .pg-invite .journey{margin:0}
  .pg-invite .journey li{padding-bottom:12px}
  .pg-invite .onboard .auth-side .exp{margin-top:8px}
}
/* "Dicas para uma boa senha" no celular com 40px de toque, como os outros controles (C6) */
@media(max-width:800px){.pg-reset .tips-box summary{padding:12px 0;min-height:40px}}
/* e-mail e nome longos (mensagem pronta, contato, selo do e-mail): aparecem inteiros, quebrando dentro da caixa, sem cortar nem rolar para o lado */
:is(.pg-home,.pg-invite,.pg-reset) :is(.forgot,.ask) blockquote{overflow-wrap:anywhere}
:is(.pg-invite,.pg-reset) .ask .contact>span:last-child{min-width:0;overflow-wrap:anywhere}
:is(.pg-invite,.pg-reset) :is(.who span:last-child,.ask .contact small){white-space:normal;word-break:break-all}
/* "só este e-mail" no cinza de apoio (C4): o #7b7e89 antigo dava 4:1 no branco */
.pg-invite .lock-chip{color:var(--muted)}
/* títulos do convite logado e a dica do login sem palavra sozinha na 2ª linha ("outra / pessoa", "peça um / ao dono") */
.pg-invite .auth-main h2,.pg-home .login-main .hint{text-wrap:balance}
/* e-mails longos nos avisos do convite ("Este convite é só para ...", "Você está logado como ..."): quebram dentro da caixa */
.pg-invite .auth-main .alert{overflow-wrap:anywhere}
/* celular: o selo "só este e-mail" desce para baixo do campo e o e-mail aparece inteiro (sem os 130px reservados ao selo) */
@media(max-width:500px){
  .pg-invite .locked .input{padding-right:14px}
  .pg-invite .locked .lock-chip{position:static;transform:none;display:inline-block;margin-top:6px}
}
/* "Manter conectado" e "Já tenho conta na RINU" com 40px de toque no celular sem mudar o espaço entre os campos (C6);
   no login, quando "Esqueci minha senha" vai para a linha de baixo, ela desce 8px para as áreas de toque não se sobreporem */
@media(max-width:800px){
  :is(.pg-home,.pg-invite) .switch{padding:9px 0;margin:-9px 0 -7px}
  .pg-home .login-row .switch{margin:-9px 0}
  .pg-home .login-row{row-gap:18px}
}
/* foco do teclado nos switches no laranja de texto (C6): o laranja da marca dá só 2,9:1 no branco */
:is(.pg-home,.pg-invite) .switch input:focus-visible+.track{outline-color:var(--link)}
/* "Copiar mensagem" e "Enviar pelo WhatsApp" lado a lado no celular: o texto que quebra em 2 linhas fica centrado */
@media(max-width:500px){:is(.pg-home,.pg-invite,.pg-reset) .ask-actions .btn{text-align:center}}
/* ===== fim: UX Entrada, convite e senha ===== */
/* ===== UX Exportar ===== */
/* exp-T3: grupo CSV / Excel / PDF (só export_buttons() gera .export-group) */
.export-group span{display:inline-flex;align-items:center;gap:6px;padding:0 10px 0 12px;color:var(--muted);font-weight:650}
.export-group span svg{flex:none}
.export-group a:hover{color:var(--link,#a65a28)}
.export-group a:focus-visible{outline:2px solid var(--link,#a65a28);outline-offset:-2px;border-radius:8px}
@media(max-width:700px){
  .export-group a{display:inline-flex;align-items:center;min-height:40px;padding:0 13px}
  .head-actions:has(.export-group){margin-left:0;width:100%}
}
/* ===== fim: UX Exportar ===== */
/* reputação do ML: um medidor e um veredito por métrica, com o limite oficial */
.rep-metric .rep-verdict{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:750;background:#eef0f3;color:#4a4d57}
.rep-metric .rep-verdict.ok{background:#e7f6ec;color:#1d6b3a}
.rep-metric .rep-verdict.warn{background:#fff3dc;color:#8a5a00}
.rep-metric .rep-verdict.bad{background:#fdecec;color:#a32929}
.rep-name small+small{margin-top:2px}
/* marcas: quadradinho com logo (site da marca, pelo Google) ou foto do produto mais vendido; sem imagem, a inicial */
.brand-thumb{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;border-radius:10px;background:#f6f7fa;overflow:hidden}
.brand-thumb>i{font-style:normal;font-weight:800;font-size:15px;color:var(--muted)}
.brand-thumb>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff}
.brand-thumb.logo>img{object-fit:contain;padding:5px}
.brand-cell{display:flex;align-items:center;gap:12px;min-width:0}
.brand-txt{flex:1 1 auto;min-width:0}
@media(max-width:600px){