:root{
  --bg:#F6F6F4;--surface:#FFFFFF;--surface-2:#FBFBFA;--line:#E6E6E2;--mist:#F0F0ED;--grid:#ECECE8;
  --ink:#0B0B0B;--ink2:#52514E;--ink3:#86857F;
  --accent:#C25A28;--accent-ink:#A84B1F;--tint:#F8E6E2;
  --s1:#C25A28;--s2:#2a78d6;--s3:#1baf7a;--s4:#6250d6;--neutral:#BDBCB6;
  --q1:#FBEDE5;--q2:#F3C9AE;--q3:#E39466;--q4:#C25A28;--q5:#7E3512;
  --good:#1F7A3E;--good-bg:#E5F2E8;--warn:#B07400;--warn-bg:#FBF0D9;--bad:#B4321E;--bad-bg:#FBE4DF;--info:#2a5fa8;--info-bg:#E6EEF8;
  --r-lg:20px;--r-md:14px;--r-sm:10px;--shadow:0 1px 2px rgba(20,20,15,.05),0 8px 24px rgba(20,20,15,.05);
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);font-family:Urbanist,"Segoe UI",sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;font-size:15px}
button{font:inherit;cursor:pointer;color:inherit}
a{color:inherit}
ul{list-style:none}
.num,.v,.tab{font-variant-numeric:tabular-nums}
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
/* sidebar */
.side{position:sticky;top:0;height:100vh;padding:20px 16px;border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:18px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:-.02em}
.brand i{width:28px;height:28px;border-radius:9px;background:var(--accent);display:grid;place-items:center;color:#fff;font-style:normal;font-size:13px;font-weight:700}
.client{display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}
.client .lg{width:34px;height:34px;border-radius:10px;background:#1d1d1b;color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}
.client b{display:block;font-size:14px}.client small{font-size:12px;color:var(--ink3)}
.nav{display:grid;gap:2px}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-sm);text-decoration:none;color:var(--ink2);font-weight:600;font-size:14px}
.nav a svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none}
.nav a.on{background:var(--tint);color:var(--ink)}
.nav a .soon{margin-left:auto;font-size:10px;font-weight:700;padding:2px 7px;border-radius:99px;background:var(--mist);color:var(--ink3);white-space:nowrap}
.side-foot{margin-top:auto;font-size:12px;color:var(--ink3);line-height:1.45}
.side-foot b{display:block;color:var(--ink2);font-size:13px}
/* main */
.main{padding:22px clamp(16px,3vw,40px) 60px;min-width:0}
.stamp{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:18px;padding:10px 14px;border-radius:var(--r-md);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font-size:13px;color:var(--ink2)}
.stamp b{color:var(--ink)}
.stamp .live{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--good)}
.stamp .live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--good)}
.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:18px}
.top h1{font-size:30px;font-weight:600;letter-spacing:-.03em;line-height:1.05}
.top p{margin-top:5px;color:var(--ink2);font-size:14px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.seg{display:inline-flex;flex-wrap:wrap;padding:3px;border-radius:99px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.seg button{border:0;background:none;padding:7px 13px;border-radius:99px;font-weight:600;font-size:13px;color:var(--ink2);white-space:nowrap}
.seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
.seg.sm button{padding:5px 11px;font-size:12.5px}
/* cards */
.grid{display:grid;gap:14px}
.mt{margin-top:14px}
.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:18px 20px;min-width:0}
.card h2{font-size:15px;font-weight:700;letter-spacing:-.01em}
.card .sub{font-size:12.5px;color:var(--ink3);margin-top:2px;line-height:1.4}
.card-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 12px;margin-bottom:14px}
.foot{margin-top:12px;font-size:12px;color:var(--ink3);line-height:1.45}
.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{position:relative;overflow:hidden}
.kpi .l{font-size:12.5px;font-weight:600;color:var(--ink2)}
.kpi .v{font-size:32px;font-weight:500;letter-spacing:-.04em;line-height:1.05;margin-top:6px;white-space:nowrap}
.kpi .row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.kpi .cmp{font-size:12px;color:var(--ink3)}
.kpi svg.spark{display:block;width:100%;height:34px;margin-top:10px}
.d{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}
.d.up{background:var(--good-bg);color:var(--good)}.d.down{background:var(--bad-bg);color:var(--bad)}.d.flat{background:var(--mist);color:var(--ink2)}
.kpi.hero{background:var(--ink);color:#fff}
.kpi.hero .l,.kpi.hero .cmp{color:rgba(255,255,255,.66)}
.row2{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
.row-eq{grid-template-columns:repeat(2,minmax(0,1fr))}
/* legend + tooltip */
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--ink2);font-weight:600}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.legend i.ln{height:2px;width:14px;border-radius:2px;vertical-align:3px;background:var(--ink)}
.tip{position:fixed;pointer-events:none;padding:10px 12px;border-radius:12px;background:var(--ink);color:#fff;font-size:12.5px;line-height:1.55;box-shadow:0 10px 30px rgba(0,0,0,.2);opacity:0;transition:opacity .1s;z-index:40;max-width:280px}
.tip b{font-weight:700}
.tip .tr{display:flex;justify-content:space-between;gap:14px}
.tip i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}
.tip .m{color:rgba(255,255,255,.62)}
svg text{font-family:Urbanist,"Segoe UI",sans-serif}
.chart{position:relative;min-width:0}
.chart svg{display:block}
/* ranked bars */
.rank{display:grid;gap:11px}
.rank .r{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13.5px}
.rank .r .n{min-width:0}
.rank .r .n b{font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank .r .n small{display:block;font-size:11.5px;color:var(--ink3);margin-top:1px}
.rank .bar{height:10px;border-radius:0 4px 4px 0;background:var(--mist);overflow:hidden}
.rank .bar span{display:block;height:100%;border-radius:0 4px 4px 0}
.rank .r em{font-style:normal;text-align:right;font-weight:700;white-space:nowrap}
.rank .r em small{display:block;font-weight:600;color:var(--ink3);font-size:11.5px}
.rank .r.off{color:var(--ink3)}
.rank .r.off .bar{background:repeating-linear-gradient(135deg,var(--mist) 0 6px,#fff 6px 10px)}
.rank .r[data-t]{cursor:default}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips button{border:0;padding:5px 11px;border-radius:99px;background:var(--mist);font-size:12.5px;font-weight:600;color:var(--ink2)}
.chips button[aria-pressed="true"]{background:var(--ink);color:#fff}
/* pipeline */
.pipe{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.pipe .st{position:relative;padding:12px 12px 14px;border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}
.pipe .st span{font-size:12px;color:var(--ink2);font-weight:700}
.pipe .st b{display:block;font-size:26px;font-weight:500;letter-spacing:-.03em;margin-top:2px}
.pipe .st small{display:block;margin-top:4px;font-size:11.5px;color:var(--ink3);line-height:1.35}
.pipe .st .pb{height:4px;border-radius:4px;background:var(--mist);margin-top:10px;overflow:hidden}
.pipe .st .pb i{display:block;height:100%;background:var(--accent);border-radius:4px}
.pipe .st.pend{background:none;box-shadow:inset 0 0 0 1.5px var(--line);border:0;background-image:repeating-linear-gradient(135deg,transparent 0 8px,rgba(0,0,0,.018) 8px 12px)}
.pipe .st.pend b{color:var(--ink3)}
.pipe .arrow{display:none}
/* map + heat */
.mapwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:18px;align-items:start}
.cities li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.cities li:last-child{border:0}
.cities li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cities li b{font-weight:700;white-space:nowrap}
.scale{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--ink3);margin-top:10px;flex-wrap:wrap}
.scale i{width:22px;height:10px;border-radius:3px;display:inline-block}
/* insights */
.ins{display:grid;gap:10px}
.ins li{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;padding:12px;border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);font-size:13.5px;line-height:1.4}
.ins li .ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--tint);color:var(--accent-ink);font-weight:700;font-size:14px}
.ins li b{font-weight:700}
.ins li small{display:block;color:var(--ink3);font-size:12px;margin-top:2px}
/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr.click{cursor:pointer}
.tbl tr.click:hover td,.tbl tr.click:focus-visible td{background:var(--surface-2)}
.tbl .num{text-align:right;white-space:nowrap}
.tbl td small{display:block;color:var(--ink3);font-size:12px}
.hm-only{display:none !important}
#sRows td:first-child{overflow-wrap:anywhere}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:99px;font-size:12px;font-weight:700;white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.p-good{background:var(--good-bg);color:var(--good)}.p-warn{background:var(--warn-bg);color:var(--warn)}.p-bad{background:var(--bad-bg);color:var(--bad)}.p-info{background:var(--info-bg);color:var(--info)}.p-mute{background:var(--mist);color:var(--ink2)}
.cdot{display:inline-flex;align-items:center;gap:7px;font-weight:600;white-space:nowrap}
.cdot i{width:9px;height:9px;border-radius:3px;flex:none}
.search{display:flex;align-items:center;gap:8px;padding:0 14px;border-radius:99px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);min-width:260px}
.search input{border:0;outline:0;background:none;font:inherit;font-size:13.5px;padding:9px 0;width:100%;color:var(--ink)}
.search:focus-within{box-shadow:inset 0 0 0 2px var(--ink)}
.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 12px 6px;font-size:13px;color:var(--ink3)}
.pager button{border:0;padding:7px 13px;border-radius:99px;background:var(--mist);font-weight:600;font-size:13px}
.pager button:disabled{opacity:.4;cursor:default}
/* drawer */
.scrim{position:fixed;inset:0;background:rgba(15,15,12,.28);opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(470px,100%);background:var(--surface);box-shadow:-20px 0 60px rgba(0,0,0,.12);transform:translateX(100%);transition:transform .25s cubic-bezier(.2,.8,.2,1);z-index:21;overflow:auto;padding:22px 24px 40px}
.open .scrim{opacity:1;pointer-events:auto}.open .drawer{transform:none}
.drawer .x{position:absolute;right:16px;top:16px;border:0;background:var(--mist);width:36px;height:36px;border-radius:50%;font-size:18px}
.drawer h3{font-size:24px;font-weight:600;letter-spacing:-.02em;margin-top:2px}
.dl{display:grid;grid-template-columns:118px 1fr;gap:9px 12px;margin-top:18px;font-size:13.5px}
.dl dt{color:var(--ink3);font-weight:600}
.items{margin-top:18px;border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}
.items p{display:flex;justify-content:space-between;gap:14px;padding:10px 14px;font-size:13.5px;border-bottom:1px solid var(--line)}
.items p span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.items p.tot{font-weight:700;border:0}
.items p.mut{color:var(--ink3)}
.tline{margin-top:22px}
.tline h4{font-size:13px;font-weight:700;margin-bottom:6px}
.tline .ev{display:grid;grid-template-columns:20px 1fr auto;gap:10px;padding:8px 0;font-size:13.5px;position:relative}
.tline .ev::before{content:"";position:absolute;left:5px;top:22px;bottom:-8px;width:2px;background:var(--line)}
.tline .ev:last-child::before{display:none}
.tline .ev i{width:12px;height:12px;border-radius:50%;margin-top:3px;background:var(--accent);box-shadow:0 0 0 4px var(--tint);position:relative;z-index:1}
.tline .ev.todo i{background:#fff;box-shadow:inset 0 0 0 2px var(--neutral)}
.tline .ev.todo{color:var(--ink3)}
.tline .ev small{color:var(--ink3)}
.tline .ev em{display:block;font-style:normal;font-size:12px;color:var(--ink3)}
/* shelf */
.shelf-k{grid-template-columns:repeat(4,minmax(0,1fr))}
.strip{position:relative}
/* empty + preview */
.empty{padding:26px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow)}
.empty h2{font-size:18px;margin-bottom:6px}
.empty p{color:var(--ink2);line-height:1.5;font-size:14px;max-width:62ch}
.empty ul{margin-top:12px;display:grid;gap:6px;font-size:13.5px;color:var(--ink2)}
.empty ul li::before{content:"·";margin-right:8px;color:var(--accent);font-weight:700}
.preview{position:relative;margin-top:16px;border-radius:var(--r-md);overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}
.preview::after{content:"Prévia do formato · sem dados";position:absolute;right:12px;top:12px;font-size:11px;font-weight:700;padding:4px 9px;border-radius:99px;background:var(--ink);color:#fff}
.preview .sk{filter:grayscale(1);opacity:.45;pointer-events:none}
.hide{display:none !important}
.mnav{display:none}
@media (max-width: 1180px){ .kpis,.shelf-k{grid-template-columns:repeat(2,minmax(0,1fr))} .row2,.row-eq{grid-template-columns:1fr} .pipe{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width: 760px){
  .app{grid-template-columns:1fr}
  .side{display:none}
  .main{padding:14px 16px 96px}
  .top h1{font-size:25px}
  .kpi .v{font-size:26px}
  .card{padding:16px}
  .search{min-width:0;width:100%}
  .tbl .hm{display:none}
  .hm-only{display:block !important}
  .pipe{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mapwrap{grid-template-columns:1fr}
  .rank .r{grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) auto}
  .tbl td,.tbl th{padding:10px 8px}
  .mnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));z-index:10}
  .mnav a{display:grid;justify-items:center;gap:3px;padding:6px 0;font-size:11px;font-weight:600;color:var(--ink3);text-decoration:none}
  .mnav a svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8}
  .mnav a.on{color:var(--accent-ink)}
}
/* roles, preview bar, user bar */
body[data-role="cliente"] .only-agrega,body:not([data-role="admin"]) .only-admin{display:none !important}
body:not([data-role="cliente"]) .only-cliente{display:none !important}
.ubar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.ubar .stamp{flex:1;margin:0;min-width:0}
.ubar .who{position:relative;margin-left:auto}
.ubar .who>button{display:flex;align-items:center;gap:10px;border:0;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);padding:5px 12px 5px 5px;border-radius:99px;font-size:13px;font-weight:600}
.av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;background:var(--accent)}
.av.agr{background:#1d1d1b}
.menu{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;padding:6px;border-radius:var(--r-md);background:var(--surface);box-shadow:0 12px 40px rgba(0,0,0,.14),inset 0 0 0 1px var(--line);z-index:15;display:none}
.menu.on{display:block}
.menu p{padding:8px 10px;font-size:12px;color:var(--ink3);line-height:1.4}
.menu a,.menu button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 10px;border:0;background:none;border-radius:var(--r-sm);text-align:left;text-decoration:none;font-size:13.5px;font-weight:600}
.menu a:hover,.menu button:hover{background:var(--mist)}
.menu .ck{color:var(--accent);font-weight:700}
.client{width:100%;border:0;text-align:left;font:inherit;color:inherit;position:relative}
body:not([data-role="cliente"]) .client{cursor:pointer}
body:not([data-role="cliente"]) .client:hover{box-shadow:inset 0 0 0 1.5px var(--ink3)}
.client .caret{margin-left:auto;color:var(--ink3);font-size:12px}
.side .menu{left:0;right:0;top:calc(100% + 6px)}
.side .cwrap{position:relative}
/* sign-in */
.login{display:none;position:fixed;inset:0;z-index:60;background:var(--bg);overflow:auto}
body.signin .login{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
body.signin .app,body.signin .mnav{display:none}
.login .art{position:relative;background:#141412;color:#fff;padding:44px clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:40px;overflow:hidden}
.login .art::after{content:"";position:absolute;right:-120px;bottom:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(closest-side,rgba(194,90,40,.55),rgba(194,90,40,0));pointer-events:none}
.login .art h2{font-size:clamp(30px,3.4vw,46px);font-weight:500;letter-spacing:-.04em;line-height:1.04;max-width:16ch;text-wrap:balance}
.login .art ul{display:grid;gap:12px;margin-top:26px;font-size:15px;color:rgba(255,255,255,.78)}
.login .art li{display:flex;gap:10px}
.login .art li::before{content:"";flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--accent)}
.login .art small{font-size:12.5px;color:rgba(255,255,255,.5);position:relative;z-index:1}
.login .form{display:grid;place-items:center;padding:40px 24px}
.login .box{width:min(400px,100%)}
.login h1{font-size:28px;font-weight:600;letter-spacing:-.03em}
.login .box>p{margin-top:6px;color:var(--ink2);font-size:14.5px;line-height:1.45}
.field{display:grid;gap:6px;margin-top:22px}
.field label{font-size:13px;font-weight:700}
.field input{font:inherit;font-size:15px;padding:13px 14px;border-radius:var(--r-md);border:0;box-shadow:inset 0 0 0 1.5px var(--line);background:var(--surface);outline:0}
.field input:focus{box-shadow:inset 0 0 0 2px var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:99px;padding:13px 20px;font-weight:700;font-size:14.5px;background:var(--ink);color:#fff;width:100%;margin-top:16px}
.btn:disabled{opacity:.35;cursor:default}
.btn.ghost{background:none;color:var(--ink2);box-shadow:inset 0 0 0 1.5px var(--line);width:auto;padding:10px 16px;margin:0}
.otp{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:22px}
.otp input{font:inherit;font-size:24px;font-weight:600;text-align:center;padding:12px 0;border-radius:var(--r-md);border:0;box-shadow:inset 0 0 0 1.5px var(--line);background:var(--surface);outline:0;width:100%}
.otp input:focus{box-shadow:inset 0 0 0 2px var(--ink)}
.otp.err input{box-shadow:inset 0 0 0 2px var(--bad)}
.msg-err{margin-top:10px;color:var(--bad);font-size:13px;font-weight:600}
.linkrow{display:flex;justify-content:space-between;gap:10px;margin-top:14px;font-size:13px;color:var(--ink3)}
.linkrow button{border:0;background:none;color:var(--ink2);font-weight:700;text-decoration:underline;font-size:13px;padding:0}
.legal{margin-top:26px;font-size:12px;color:var(--ink3);line-height:1.5}
/* sources + access */
.src{display:grid;gap:10px}
.src li{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:6px 16px;align-items:center;padding:14px 16px;border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow)}
.src li b{font-weight:700;font-size:14.5px}
.src li small{display:block;color:var(--ink3);font-size:12.5px;margin-top:2px;line-height:1.4}
.src li .when{font-size:13px;color:var(--ink2)}
.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.roles .card p{font-size:13px;color:var(--ink2);line-height:1.45;margin-top:6px}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;transition:.2s;background:var(--ink);color:#fff;padding:11px 16px;border-radius:99px;font-size:13.5px;font-weight:600;z-index:70;pointer-events:none;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.toast.on{opacity:1;transform:translate(-50%,0)}
.radio{display:grid;gap:8px;margin-top:6px}
.radio label{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border-radius:var(--r-md);box-shadow:inset 0 0 0 1.5px var(--line);font-size:13.5px;font-weight:600;cursor:pointer}
.radio label small{display:block;font-weight:500;color:var(--ink3);font-size:12px;margin-top:2px}
.radio input{margin-top:3px;accent-color:var(--ink)}
.field select{font:inherit;font-size:15px;padding:12px 14px;border-radius:var(--r-md);border:0;box-shadow:inset 0 0 0 1.5px var(--line);background:var(--surface)}
@media (max-width: 1180px){ .roles{grid-template-columns:1fr} }
@media (max-width: 760px){
  body.signin .login{grid-template-columns:1fr}
  .login .art{padding:28px 22px;gap:20px}
  .login .art ul,.login .art small{display:none}
  .src li{grid-template-columns:minmax(0,1fr) auto}
  .src li .when{grid-column:1/-1;order:3}
  .ubar{flex-direction:column-reverse;align-items:stretch}
  .ubar .who{margin-left:0;align-self:flex-end}
}
@media (prefers-reduced-motion: reduce){ *{transition:none !important} }
/* estados de carga e erro, Turnstile */
.state{padding:22px;border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink2);font-size:13.5px;line-height:1.5}
.state.err{background:var(--bad-bg);color:var(--bad);box-shadow:none;font-weight:600}
.state button{border:0;background:none;text-decoration:underline;font-weight:700;color:inherit;padding:0 0 0 6px}
.stamp.warn{background:var(--warn-bg);color:var(--warn)}
.stamp.warn .live{color:var(--warn)}.stamp.warn .live::before{background:var(--warn)}
.ts{margin-top:14px;min-height:65px}
.busy{opacity:.5;pointer-events:none}
.statebox:empty{display:none}
.statebox{margin-bottom:14px}
section.failed > :not(.top):not(.statebox){display:none}
section.loading > :not(.top):not(.statebox){opacity:.45;pointer-events:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.btn.sm{padding:6px 12px;font-size:12.5px}
